Update clang to r339409.

Change-Id: I800772d2d838223be1f6b40d490c4591b937fca2
diff --git a/linux-x64/clang/include/llvm/ADT/APFloat.h b/linux-x64/clang/include/llvm/ADT/APFloat.h
index 6c0b6ae..5c59af4 100644
--- a/linux-x64/clang/include/llvm/ADT/APFloat.h
+++ b/linux-x64/clang/include/llvm/ADT/APFloat.h
@@ -1215,7 +1215,7 @@
   return X;
 }
 
-/// \brief Returns the negated value of the argument.
+/// Returns the negated value of the argument.
 inline APFloat neg(APFloat X) {
   X.changeSign();
   return X;
diff --git a/linux-x64/clang/include/llvm/ADT/APInt.h b/linux-x64/clang/include/llvm/ADT/APInt.h
index 118c62e..684a257 100644
--- a/linux-x64/clang/include/llvm/ADT/APInt.h
+++ b/linux-x64/clang/include/llvm/ADT/APInt.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief This file implements a class to represent arbitrary precision
+/// This file implements a class to represent arbitrary precision
 /// integral constant values and operations on them.
 ///
 //===----------------------------------------------------------------------===//
@@ -31,6 +31,7 @@
 
 template <typename T> class SmallVectorImpl;
 template <typename T> class ArrayRef;
+template <typename T> class Optional;
 
 class APInt;
 
@@ -40,7 +41,7 @@
 //                              APInt Class
 //===----------------------------------------------------------------------===//
 
-/// \brief Class for arbitrary precision integers.
+/// Class for arbitrary precision integers.
 ///
 /// APInt is a functional replacement for common case unsigned integer type like
 /// "unsigned", "unsigned long" or "uint64_t", but also allows non-byte-width
@@ -78,6 +79,12 @@
     APINT_BITS_PER_WORD = APINT_WORD_SIZE * CHAR_BIT
   };
 
+  enum class Rounding {
+    DOWN,
+    TOWARD_ZERO,
+    UP,
+  };
+
   static const WordType WORD_MAX = ~WordType(0);
 
 private:
@@ -94,7 +101,7 @@
 
   friend class APSInt;
 
-  /// \brief Fast internal constructor
+  /// Fast internal constructor
   ///
   /// This constructor is used only internally for speed of construction of
   /// temporaries. It is unsafe for general use so it is not public.
@@ -102,19 +109,19 @@
     U.pVal = val;
   }
 
-  /// \brief Determine if this APInt just has one word to store value.
+  /// Determine if this APInt just has one word to store value.
   ///
   /// \returns true if the number of bits <= 64, false otherwise.
   bool isSingleWord() const { return BitWidth <= APINT_BITS_PER_WORD; }
 
-  /// \brief Determine which word a bit is in.
+  /// Determine which word a bit is in.
   ///
   /// \returns the word position for the specified bit position.
   static unsigned whichWord(unsigned bitPosition) {
     return bitPosition / APINT_BITS_PER_WORD;
   }
 
-  /// \brief Determine which bit in a word a bit is in.
+  /// Determine which bit in a word a bit is in.
   ///
   /// \returns the bit position in a word for the specified bit position
   /// in the APInt.
@@ -122,7 +129,7 @@
     return bitPosition % APINT_BITS_PER_WORD;
   }
 
-  /// \brief Get a single bit mask.
+  /// Get a single bit mask.
   ///
   /// \returns a uint64_t with only bit at "whichBit(bitPosition)" set
   /// This method generates and returns a uint64_t (word) mask for a single
@@ -132,7 +139,7 @@
     return 1ULL << whichBit(bitPosition);
   }
 
-  /// \brief Clear unused high order bits
+  /// Clear unused high order bits
   ///
   /// This method is used internally to clear the top "N" bits in the high order
   /// word that are not used by the APInt. This is needed after the most
@@ -151,7 +158,7 @@
     return *this;
   }
 
-  /// \brief Get the word corresponding to a bit position
+  /// Get the word corresponding to a bit position
   /// \returns the corresponding word for the specified bit position.
   uint64_t getWord(unsigned bitPosition) const {
     return isSingleWord() ? U.VAL : U.pVal[whichWord(bitPosition)];
@@ -162,7 +169,7 @@
   /// value of any bits upon return. Caller should populate the bits after.
   void reallocate(unsigned NewBitWidth);
 
-  /// \brief Convert a char array into an APInt
+  /// Convert a char array into an APInt
   ///
   /// \param radix 2, 8, 10, 16, or 36
   /// Converts a string into a number.  The string must be non-empty
@@ -176,7 +183,7 @@
   /// result to hold the input.
   void fromString(unsigned numBits, StringRef str, uint8_t radix);
 
-  /// \brief An internal division function for dividing APInts.
+  /// An internal division function for dividing APInts.
   ///
   /// This is used by the toString method to divide by the radix. It simply
   /// provides a more convenient form of divide for internal use since KnuthDiv
@@ -258,7 +265,7 @@
   /// \name Constructors
   /// @{
 
-  /// \brief Create a new APInt of numBits width, initialized as val.
+  /// Create a new APInt of numBits width, initialized as val.
   ///
   /// If isSigned is true then val is treated as if it were a signed value
   /// (i.e. as an int64_t) and the appropriate sign extension to the bit width
@@ -279,7 +286,7 @@
     }
   }
 
-  /// \brief Construct an APInt of numBits width, initialized as bigVal[].
+  /// Construct an APInt of numBits width, initialized as bigVal[].
   ///
   /// Note that bigVal.size() can be smaller or larger than the corresponding
   /// bit width but any extraneous bits will be dropped.
@@ -297,7 +304,7 @@
   /// constructor.
   APInt(unsigned numBits, unsigned numWords, const uint64_t bigVal[]);
 
-  /// \brief Construct an APInt from a string representation.
+  /// Construct an APInt from a string representation.
   ///
   /// This constructor interprets the string \p str in the given radix. The
   /// interpretation stops when the first character that is not suitable for the
@@ -311,7 +318,7 @@
   APInt(unsigned numBits, StringRef str, uint8_t radix);
 
   /// Simply makes *this a copy of that.
-  /// @brief Copy Constructor.
+  /// Copy Constructor.
   APInt(const APInt &that) : BitWidth(that.BitWidth) {
     if (isSingleWord())
       U.VAL = that.U.VAL;
@@ -319,26 +326,26 @@
       initSlowCase(that);
   }
 
-  /// \brief Move Constructor.
+  /// Move Constructor.
   APInt(APInt &&that) : BitWidth(that.BitWidth) {
     memcpy(&U, &that.U, sizeof(U));
     that.BitWidth = 0;
   }
 
-  /// \brief Destructor.
+  /// Destructor.
   ~APInt() {
     if (needsCleanup())
       delete[] U.pVal;
   }
 
-  /// \brief Default constructor that creates an uninteresting APInt
+  /// Default constructor that creates an uninteresting APInt
   /// representing a 1-bit zero value.
   ///
   /// This is useful for object deserialization (pair this with the static
   ///  method Read).
   explicit APInt() : BitWidth(1) { U.VAL = 0; }
 
-  /// \brief Returns whether this instance allocated memory.
+  /// Returns whether this instance allocated memory.
   bool needsCleanup() const { return !isSingleWord(); }
 
   /// Used to insert APInt objects, or objects that contain APInt objects, into
@@ -349,33 +356,33 @@
   /// \name Value Tests
   /// @{
 
-  /// \brief Determine sign of this APInt.
+  /// Determine sign of this APInt.
   ///
   /// This tests the high bit of this APInt to determine if it is set.
   ///
   /// \returns true if this APInt is negative, false otherwise
   bool isNegative() const { return (*this)[BitWidth - 1]; }
 
-  /// \brief Determine if this APInt Value is non-negative (>= 0)
+  /// Determine if this APInt Value is non-negative (>= 0)
   ///
   /// This tests the high bit of the APInt to determine if it is unset.
   bool isNonNegative() const { return !isNegative(); }
 
-  /// \brief Determine if sign bit of this APInt is set.
+  /// Determine if sign bit of this APInt is set.
   ///
   /// This tests the high bit of this APInt to determine if it is set.
   ///
   /// \returns true if this APInt has its sign bit set, false otherwise.
   bool isSignBitSet() const { return (*this)[BitWidth-1]; }
 
-  /// \brief Determine if sign bit of this APInt is clear.
+  /// Determine if sign bit of this APInt is clear.
   ///
   /// This tests the high bit of this APInt to determine if it is clear.
   ///
   /// \returns true if this APInt has its sign bit clear, false otherwise.
   bool isSignBitClear() const { return !isSignBitSet(); }
 
-  /// \brief Determine if this APInt Value is positive.
+  /// Determine if this APInt Value is positive.
   ///
   /// This tests if the value of this APInt is positive (> 0). Note
   /// that 0 is not a positive value.
@@ -383,7 +390,7 @@
   /// \returns true if this APInt is positive.
   bool isStrictlyPositive() const { return isNonNegative() && !isNullValue(); }
 
-  /// \brief Determine if all bits are set
+  /// Determine if all bits are set
   ///
   /// This checks to see if the value has all bits of the APInt are set or not.
   bool isAllOnesValue() const {
@@ -392,13 +399,13 @@
     return countTrailingOnesSlowCase() == BitWidth;
   }
 
-  /// \brief Determine if all bits are clear
+  /// Determine if all bits are clear
   ///
   /// This checks to see if the value has all bits of the APInt are clear or
   /// not.
   bool isNullValue() const { return !*this; }
 
-  /// \brief Determine if this is a value of 1.
+  /// Determine if this is a value of 1.
   ///
   /// This checks to see if the value of this APInt is one.
   bool isOneValue() const {
@@ -407,13 +414,13 @@
     return countLeadingZerosSlowCase() == BitWidth - 1;
   }
 
-  /// \brief Determine if this is the largest unsigned value.
+  /// Determine if this is the largest unsigned value.
   ///
   /// This checks to see if the value of this APInt is the maximum unsigned
   /// value for the APInt's bit width.
   bool isMaxValue() const { return isAllOnesValue(); }
 
-  /// \brief Determine if this is the largest signed value.
+  /// Determine if this is the largest signed value.
   ///
   /// This checks to see if the value of this APInt is the maximum signed
   /// value for the APInt's bit width.
@@ -423,13 +430,13 @@
     return !isNegative() && countTrailingOnesSlowCase() == BitWidth - 1;
   }
 
-  /// \brief Determine if this is the smallest unsigned value.
+  /// Determine if this is the smallest unsigned value.
   ///
   /// This checks to see if the value of this APInt is the minimum unsigned
   /// value for the APInt's bit width.
   bool isMinValue() const { return isNullValue(); }
 
-  /// \brief Determine if this is the smallest signed value.
+  /// Determine if this is the smallest signed value.
   ///
   /// This checks to see if the value of this APInt is the minimum signed
   /// value for the APInt's bit width.
@@ -439,19 +446,19 @@
     return isNegative() && countTrailingZerosSlowCase() == BitWidth - 1;
   }
 
-  /// \brief Check if this APInt has an N-bits unsigned integer value.
+  /// Check if this APInt has an N-bits unsigned integer value.
   bool isIntN(unsigned N) const {
     assert(N && "N == 0 ???");
     return getActiveBits() <= N;
   }
 
-  /// \brief Check if this APInt has an N-bits signed integer value.
+  /// Check if this APInt has an N-bits signed integer value.
   bool isSignedIntN(unsigned N) const {
     assert(N && "N == 0 ???");
     return getMinSignedBits() <= N;
   }
 
-  /// \brief Check if this APInt's value is a power of two greater than zero.
+  /// Check if this APInt's value is a power of two greater than zero.
   ///
   /// \returns true if the argument APInt value is a power of two > 0.
   bool isPowerOf2() const {
@@ -460,12 +467,12 @@
     return countPopulationSlowCase() == 1;
   }
 
-  /// \brief Check if the APInt's value is returned by getSignMask.
+  /// Check if the APInt's value is returned by getSignMask.
   ///
   /// \returns true if this is the value returned by getSignMask.
   bool isSignMask() const { return isMinSignedValue(); }
 
-  /// \brief Convert APInt to a boolean value.
+  /// Convert APInt to a boolean value.
   ///
   /// This converts the APInt to a boolean value as a test against zero.
   bool getBoolValue() const { return !!*this; }
@@ -476,7 +483,7 @@
     return ugt(Limit) ? Limit : getZExtValue();
   }
 
-  /// \brief Check if the APInt consists of a repeated bit pattern.
+  /// Check if the APInt consists of a repeated bit pattern.
   ///
   /// e.g. 0x01010101 satisfies isSplat(8).
   /// \param SplatSizeInBits The size of the pattern in bits. Must divide bit
@@ -505,7 +512,7 @@
     return (Ones > 0) && ((Ones + countLeadingZerosSlowCase()) == BitWidth);
   }
 
-  /// \brief Return true if this APInt value contains a sequence of ones with
+  /// Return true if this APInt value contains a sequence of ones with
   /// the remainder zero.
   bool isShiftedMask() const {
     if (isSingleWord())
@@ -519,29 +526,29 @@
   /// \name Value Generators
   /// @{
 
-  /// \brief Gets maximum unsigned value of APInt for specific bit width.
+  /// Gets maximum unsigned value of APInt for specific bit width.
   static APInt getMaxValue(unsigned numBits) {
     return getAllOnesValue(numBits);
   }
 
-  /// \brief Gets maximum signed value of APInt for a specific bit width.
+  /// Gets maximum signed value of APInt for a specific bit width.
   static APInt getSignedMaxValue(unsigned numBits) {
     APInt API = getAllOnesValue(numBits);
     API.clearBit(numBits - 1);
     return API;
   }
 
-  /// \brief Gets minimum unsigned value of APInt for a specific bit width.
+  /// Gets minimum unsigned value of APInt for a specific bit width.
   static APInt getMinValue(unsigned numBits) { return APInt(numBits, 0); }
 
-  /// \brief Gets minimum signed value of APInt for a specific bit width.
+  /// Gets minimum signed value of APInt for a specific bit width.
   static APInt getSignedMinValue(unsigned numBits) {
     APInt API(numBits, 0);
     API.setBit(numBits - 1);
     return API;
   }
 
-  /// \brief Get the SignMask for a specific bit width.
+  /// Get the SignMask for a specific bit width.
   ///
   /// This is just a wrapper function of getSignedMinValue(), and it helps code
   /// readability when we want to get a SignMask.
@@ -549,19 +556,19 @@
     return getSignedMinValue(BitWidth);
   }
 
-  /// \brief Get the all-ones value.
+  /// Get the all-ones value.
   ///
   /// \returns the all-ones value for an APInt of the specified bit-width.
   static APInt getAllOnesValue(unsigned numBits) {
     return APInt(numBits, WORD_MAX, true);
   }
 
-  /// \brief Get the '0' value.
+  /// Get the '0' value.
   ///
   /// \returns the '0' value for an APInt of the specified bit-width.
   static APInt getNullValue(unsigned numBits) { return APInt(numBits, 0); }
 
-  /// \brief Compute an APInt containing numBits highbits from this APInt.
+  /// Compute an APInt containing numBits highbits from this APInt.
   ///
   /// Get an APInt with the same BitWidth as this APInt, just zero mask
   /// the low bits and right shift to the least significant bit.
@@ -569,7 +576,7 @@
   /// \returns the high "numBits" bits of this APInt.
   APInt getHiBits(unsigned numBits) const;
 
-  /// \brief Compute an APInt containing numBits lowbits from this APInt.
+  /// Compute an APInt containing numBits lowbits from this APInt.
   ///
   /// Get an APInt with the same BitWidth as this APInt, just zero mask
   /// the high bits.
@@ -577,14 +584,14 @@
   /// \returns the low "numBits" bits of this APInt.
   APInt getLoBits(unsigned numBits) const;
 
-  /// \brief Return an APInt with exactly one bit set in the result.
+  /// Return an APInt with exactly one bit set in the result.
   static APInt getOneBitSet(unsigned numBits, unsigned BitNo) {
     APInt Res(numBits, 0);
     Res.setBit(BitNo);
     return Res;
   }
 
-  /// \brief Get a value with a block of bits set.
+  /// Get a value with a block of bits set.
   ///
   /// Constructs an APInt value that has a contiguous range of bits set. The
   /// bits from loBit (inclusive) to hiBit (exclusive) will be set. All other
@@ -603,7 +610,7 @@
     return Res;
   }
 
-  /// \brief Get a value with upper bits starting at loBit set.
+  /// Get a value with upper bits starting at loBit set.
   ///
   /// Constructs an APInt value that has a contiguous range of bits set. The
   /// bits from loBit (inclusive) to numBits (exclusive) will be set. All other
@@ -620,7 +627,7 @@
     return Res;
   }
 
-  /// \brief Get a value with high bits set
+  /// Get a value with high bits set
   ///
   /// Constructs an APInt value that has the top hiBitsSet bits set.
   ///
@@ -632,7 +639,7 @@
     return Res;
   }
 
-  /// \brief Get a value with low bits set
+  /// Get a value with low bits set
   ///
   /// Constructs an APInt value that has the bottom loBitsSet bits set.
   ///
@@ -644,10 +651,10 @@
     return Res;
   }
 
-  /// \brief Return a value containing V broadcasted over NewLen bits.
+  /// Return a value containing V broadcasted over NewLen bits.
   static APInt getSplat(unsigned NewLen, const APInt &V);
 
-  /// \brief Determine if two APInts have the same value, after zero-extending
+  /// Determine if two APInts have the same value, after zero-extending
   /// one of them (if needed!) to ensure that the bit-widths match.
   static bool isSameValue(const APInt &I1, const APInt &I2) {
     if (I1.getBitWidth() == I2.getBitWidth())
@@ -659,7 +666,7 @@
     return I1.zext(I2.getBitWidth()) == I2;
   }
 
-  /// \brief Overload to compute a hash_code for an APInt value.
+  /// Overload to compute a hash_code for an APInt value.
   friend hash_code hash_value(const APInt &Arg);
 
   /// This function returns a pointer to the internal storage of the APInt.
@@ -675,7 +682,7 @@
   /// \name Unary Operators
   /// @{
 
-  /// \brief Postfix increment operator.
+  /// Postfix increment operator.
   ///
   /// Increments *this by 1.
   ///
@@ -686,12 +693,12 @@
     return API;
   }
 
-  /// \brief Prefix increment operator.
+  /// Prefix increment operator.
   ///
   /// \returns *this incremented by one
   APInt &operator++();
 
-  /// \brief Postfix decrement operator.
+  /// Postfix decrement operator.
   ///
   /// Decrements *this by 1.
   ///
@@ -702,12 +709,12 @@
     return API;
   }
 
-  /// \brief Prefix decrement operator.
+  /// Prefix decrement operator.
   ///
   /// \returns *this decremented by one.
   APInt &operator--();
 
-  /// \brief Logical negation operator.
+  /// Logical negation operator.
   ///
   /// Performs logical negation operation on this APInt.
   ///
@@ -722,7 +729,7 @@
   /// \name Assignment Operators
   /// @{
 
-  /// \brief Copy assignment operator.
+  /// Copy assignment operator.
   ///
   /// \returns *this after assignment of RHS.
   APInt &operator=(const APInt &RHS) {
@@ -737,8 +744,13 @@
     return *this;
   }
 
-  /// @brief Move assignment operator.
+  /// Move assignment operator.
   APInt &operator=(APInt &&that) {
+#ifdef _MSC_VER
+    // The MSVC std::shuffle implementation still does self-assignment.
+    if (this == &that)
+      return *this;
+#endif
     assert(this != &that && "Self-move not supported");
     if (!isSingleWord())
       delete[] U.pVal;
@@ -753,7 +765,7 @@
     return *this;
   }
 
-  /// \brief Assignment operator.
+  /// Assignment operator.
   ///
   /// The RHS value is assigned to *this. If the significant bits in RHS exceed
   /// the bit width, the excess bits are truncated. If the bit width is larger
@@ -771,7 +783,7 @@
     return *this;
   }
 
-  /// \brief Bitwise AND assignment operator.
+  /// Bitwise AND assignment operator.
   ///
   /// Performs a bitwise AND operation on this APInt and RHS. The result is
   /// assigned to *this.
@@ -786,7 +798,7 @@
     return *this;
   }
 
-  /// \brief Bitwise AND assignment operator.
+  /// Bitwise AND assignment operator.
   ///
   /// Performs a bitwise AND operation on this APInt and RHS. RHS is
   /// logically zero-extended or truncated to match the bit-width of
@@ -801,7 +813,7 @@
     return *this;
   }
 
-  /// \brief Bitwise OR assignment operator.
+  /// Bitwise OR assignment operator.
   ///
   /// Performs a bitwise OR operation on this APInt and RHS. The result is
   /// assigned *this;
@@ -816,7 +828,7 @@
     return *this;
   }
 
-  /// \brief Bitwise OR assignment operator.
+  /// Bitwise OR assignment operator.
   ///
   /// Performs a bitwise OR operation on this APInt and RHS. RHS is
   /// logically zero-extended or truncated to match the bit-width of
@@ -831,7 +843,7 @@
     return *this;
   }
 
-  /// \brief Bitwise XOR assignment operator.
+  /// Bitwise XOR assignment operator.
   ///
   /// Performs a bitwise XOR operation on this APInt and RHS. The result is
   /// assigned to *this.
@@ -846,7 +858,7 @@
     return *this;
   }
 
-  /// \brief Bitwise XOR assignment operator.
+  /// Bitwise XOR assignment operator.
   ///
   /// Performs a bitwise XOR operation on this APInt and RHS. RHS is
   /// logically zero-extended or truncated to match the bit-width of
@@ -861,7 +873,7 @@
     return *this;
   }
 
-  /// \brief Multiplication assignment operator.
+  /// Multiplication assignment operator.
   ///
   /// Multiplies this APInt by RHS and assigns the result to *this.
   ///
@@ -869,7 +881,7 @@
   APInt &operator*=(const APInt &RHS);
   APInt &operator*=(uint64_t RHS);
 
-  /// \brief Addition assignment operator.
+  /// Addition assignment operator.
   ///
   /// Adds RHS to *this and assigns the result to *this.
   ///
@@ -877,7 +889,7 @@
   APInt &operator+=(const APInt &RHS);
   APInt &operator+=(uint64_t RHS);
 
-  /// \brief Subtraction assignment operator.
+  /// Subtraction assignment operator.
   ///
   /// Subtracts RHS from *this and assigns the result to *this.
   ///
@@ -885,7 +897,7 @@
   APInt &operator-=(const APInt &RHS);
   APInt &operator-=(uint64_t RHS);
 
-  /// \brief Left-shift assignment function.
+  /// Left-shift assignment function.
   ///
   /// Shifts *this left by shiftAmt and assigns the result to *this.
   ///
@@ -903,7 +915,7 @@
     return *this;
   }
 
-  /// \brief Left-shift assignment function.
+  /// Left-shift assignment function.
   ///
   /// Shifts *this left by shiftAmt and assigns the result to *this.
   ///
@@ -914,22 +926,22 @@
   /// \name Binary Operators
   /// @{
 
-  /// \brief Multiplication operator.
+  /// Multiplication operator.
   ///
   /// Multiplies this APInt by RHS and returns the result.
   APInt operator*(const APInt &RHS) const;
 
-  /// \brief Left logical shift operator.
+  /// Left logical shift operator.
   ///
   /// Shifts this APInt left by \p Bits and returns the result.
   APInt operator<<(unsigned Bits) const { return shl(Bits); }
 
-  /// \brief Left logical shift operator.
+  /// Left logical shift operator.
   ///
   /// Shifts this APInt left by \p Bits and returns the result.
   APInt operator<<(const APInt &Bits) const { return shl(Bits); }
 
-  /// \brief Arithmetic right-shift function.
+  /// Arithmetic right-shift function.
   ///
   /// Arithmetic right-shift this APInt by shiftAmt.
   APInt ashr(unsigned ShiftAmt) const {
@@ -953,7 +965,7 @@
     ashrSlowCase(ShiftAmt);
   }
 
-  /// \brief Logical right-shift function.
+  /// Logical right-shift function.
   ///
   /// Logical right-shift this APInt by shiftAmt.
   APInt lshr(unsigned shiftAmt) const {
@@ -975,7 +987,7 @@
     lshrSlowCase(ShiftAmt);
   }
 
-  /// \brief Left-shift function.
+  /// Left-shift function.
   ///
   /// Left-shift this APInt by shiftAmt.
   APInt shl(unsigned shiftAmt) const {
@@ -984,13 +996,13 @@
     return R;
   }
 
-  /// \brief Rotate left by rotateAmt.
+  /// Rotate left by rotateAmt.
   APInt rotl(unsigned rotateAmt) const;
 
-  /// \brief Rotate right by rotateAmt.
+  /// Rotate right by rotateAmt.
   APInt rotr(unsigned rotateAmt) const;
 
-  /// \brief Arithmetic right-shift function.
+  /// Arithmetic right-shift function.
   ///
   /// Arithmetic right-shift this APInt by shiftAmt.
   APInt ashr(const APInt &ShiftAmt) const {
@@ -1002,7 +1014,7 @@
   /// Arithmetic right-shift this APInt by shiftAmt in place.
   void ashrInPlace(const APInt &shiftAmt);
 
-  /// \brief Logical right-shift function.
+  /// Logical right-shift function.
   ///
   /// Logical right-shift this APInt by shiftAmt.
   APInt lshr(const APInt &ShiftAmt) const {
@@ -1014,7 +1026,7 @@
   /// Logical right-shift this APInt by ShiftAmt in place.
   void lshrInPlace(const APInt &ShiftAmt);
 
-  /// \brief Left-shift function.
+  /// Left-shift function.
   ///
   /// Left-shift this APInt by shiftAmt.
   APInt shl(const APInt &ShiftAmt) const {
@@ -1023,28 +1035,31 @@
     return R;
   }
 
-  /// \brief Rotate left by rotateAmt.
+  /// Rotate left by rotateAmt.
   APInt rotl(const APInt &rotateAmt) const;
 
-  /// \brief Rotate right by rotateAmt.
+  /// Rotate right by rotateAmt.
   APInt rotr(const APInt &rotateAmt) const;
 
-  /// \brief Unsigned division operation.
+  /// Unsigned division operation.
   ///
   /// Perform an unsigned divide operation on this APInt by RHS. Both this and
   /// RHS are treated as unsigned quantities for purposes of this division.
   ///
-  /// \returns a new APInt value containing the division result
+  /// \returns a new APInt value containing the division result, rounded towards
+  /// zero.
   APInt udiv(const APInt &RHS) const;
   APInt udiv(uint64_t RHS) const;
 
-  /// \brief Signed division function for APInt.
+  /// Signed division function for APInt.
   ///
   /// Signed divide this APInt by APInt RHS.
+  ///
+  /// The result is rounded towards zero.
   APInt sdiv(const APInt &RHS) const;
   APInt sdiv(int64_t RHS) const;
 
-  /// \brief Unsigned remainder operation.
+  /// Unsigned remainder operation.
   ///
   /// Perform an unsigned remainder operation on this APInt with RHS being the
   /// divisor. Both this and RHS are treated as unsigned quantities for purposes
@@ -1056,13 +1071,13 @@
   APInt urem(const APInt &RHS) const;
   uint64_t urem(uint64_t RHS) const;
 
-  /// \brief Function for signed remainder operation.
+  /// Function for signed remainder operation.
   ///
   /// Signed remainder operation on APInt.
   APInt srem(const APInt &RHS) const;
   int64_t srem(int64_t RHS) const;
 
-  /// \brief Dual division/remainder interface.
+  /// Dual division/remainder interface.
   ///
   /// Sometimes it is convenient to divide two APInt values and obtain both the
   /// quotient and remainder. This function does both operations in the same
@@ -1090,7 +1105,7 @@
   APInt sshl_ov(const APInt &Amt, bool &Overflow) const;
   APInt ushl_ov(const APInt &Amt, bool &Overflow) const;
 
-  /// \brief Array-indexing support.
+  /// Array-indexing support.
   ///
   /// \returns the bit value at bitPosition
   bool operator[](unsigned bitPosition) const {
@@ -1102,7 +1117,7 @@
   /// \name Comparison Operators
   /// @{
 
-  /// \brief Equality operator.
+  /// Equality operator.
   ///
   /// Compares this APInt with RHS for the validity of the equality
   /// relationship.
@@ -1113,7 +1128,7 @@
     return EqualSlowCase(RHS);
   }
 
-  /// \brief Equality operator.
+  /// Equality operator.
   ///
   /// Compares this APInt with a uint64_t for the validity of the equality
   /// relationship.
@@ -1123,7 +1138,7 @@
     return (isSingleWord() || getActiveBits() <= 64) && getZExtValue() == Val;
   }
 
-  /// \brief Equality comparison.
+  /// Equality comparison.
   ///
   /// Compares this APInt with RHS for the validity of the equality
   /// relationship.
@@ -1131,7 +1146,7 @@
   /// \returns true if *this == Val
   bool eq(const APInt &RHS) const { return (*this) == RHS; }
 
-  /// \brief Inequality operator.
+  /// Inequality operator.
   ///
   /// Compares this APInt with RHS for the validity of the inequality
   /// relationship.
@@ -1139,7 +1154,7 @@
   /// \returns true if *this != Val
   bool operator!=(const APInt &RHS) const { return !((*this) == RHS); }
 
-  /// \brief Inequality operator.
+  /// Inequality operator.
   ///
   /// Compares this APInt with a uint64_t for the validity of the inequality
   /// relationship.
@@ -1147,7 +1162,7 @@
   /// \returns true if *this != Val
   bool operator!=(uint64_t Val) const { return !((*this) == Val); }
 
-  /// \brief Inequality comparison
+  /// Inequality comparison
   ///
   /// Compares this APInt with RHS for the validity of the inequality
   /// relationship.
@@ -1155,7 +1170,7 @@
   /// \returns true if *this != Val
   bool ne(const APInt &RHS) const { return !((*this) == RHS); }
 
-  /// \brief Unsigned less than comparison
+  /// Unsigned less than comparison
   ///
   /// Regards both *this and RHS as unsigned quantities and compares them for
   /// the validity of the less-than relationship.
@@ -1163,7 +1178,7 @@
   /// \returns true if *this < RHS when both are considered unsigned.
   bool ult(const APInt &RHS) const { return compare(RHS) < 0; }
 
-  /// \brief Unsigned less than comparison
+  /// Unsigned less than comparison
   ///
   /// Regards both *this as an unsigned quantity and compares it with RHS for
   /// the validity of the less-than relationship.
@@ -1174,7 +1189,7 @@
     return (isSingleWord() || getActiveBits() <= 64) && getZExtValue() < RHS;
   }
 
-  /// \brief Signed less than comparison
+  /// Signed less than comparison
   ///
   /// Regards both *this and RHS as signed quantities and compares them for
   /// validity of the less-than relationship.
@@ -1182,7 +1197,7 @@
   /// \returns true if *this < RHS when both are considered signed.
   bool slt(const APInt &RHS) const { return compareSigned(RHS) < 0; }
 
-  /// \brief Signed less than comparison
+  /// Signed less than comparison
   ///
   /// Regards both *this as a signed quantity and compares it with RHS for
   /// the validity of the less-than relationship.
@@ -1193,7 +1208,7 @@
                                                         : getSExtValue() < RHS;
   }
 
-  /// \brief Unsigned less or equal comparison
+  /// Unsigned less or equal comparison
   ///
   /// Regards both *this and RHS as unsigned quantities and compares them for
   /// validity of the less-or-equal relationship.
@@ -1201,7 +1216,7 @@
   /// \returns true if *this <= RHS when both are considered unsigned.
   bool ule(const APInt &RHS) const { return compare(RHS) <= 0; }
 
-  /// \brief Unsigned less or equal comparison
+  /// Unsigned less or equal comparison
   ///
   /// Regards both *this as an unsigned quantity and compares it with RHS for
   /// the validity of the less-or-equal relationship.
@@ -1209,7 +1224,7 @@
   /// \returns true if *this <= RHS when considered unsigned.
   bool ule(uint64_t RHS) const { return !ugt(RHS); }
 
-  /// \brief Signed less or equal comparison
+  /// Signed less or equal comparison
   ///
   /// Regards both *this and RHS as signed quantities and compares them for
   /// validity of the less-or-equal relationship.
@@ -1217,7 +1232,7 @@
   /// \returns true if *this <= RHS when both are considered signed.
   bool sle(const APInt &RHS) const { return compareSigned(RHS) <= 0; }
 
-  /// \brief Signed less or equal comparison
+  /// Signed less or equal comparison
   ///
   /// Regards both *this as a signed quantity and compares it with RHS for the
   /// validity of the less-or-equal relationship.
@@ -1225,7 +1240,7 @@
   /// \returns true if *this <= RHS when considered signed.
   bool sle(uint64_t RHS) const { return !sgt(RHS); }
 
-  /// \brief Unsigned greather than comparison
+  /// Unsigned greather than comparison
   ///
   /// Regards both *this and RHS as unsigned quantities and compares them for
   /// the validity of the greater-than relationship.
@@ -1233,7 +1248,7 @@
   /// \returns true if *this > RHS when both are considered unsigned.
   bool ugt(const APInt &RHS) const { return !ule(RHS); }
 
-  /// \brief Unsigned greater than comparison
+  /// Unsigned greater than comparison
   ///
   /// Regards both *this as an unsigned quantity and compares it with RHS for
   /// the validity of the greater-than relationship.
@@ -1244,7 +1259,7 @@
     return (!isSingleWord() && getActiveBits() > 64) || getZExtValue() > RHS;
   }
 
-  /// \brief Signed greather than comparison
+  /// Signed greather than comparison
   ///
   /// Regards both *this and RHS as signed quantities and compares them for the
   /// validity of the greater-than relationship.
@@ -1252,7 +1267,7 @@
   /// \returns true if *this > RHS when both are considered signed.
   bool sgt(const APInt &RHS) const { return !sle(RHS); }
 
-  /// \brief Signed greater than comparison
+  /// Signed greater than comparison
   ///
   /// Regards both *this as a signed quantity and compares it with RHS for
   /// the validity of the greater-than relationship.
@@ -1263,7 +1278,7 @@
                                                         : getSExtValue() > RHS;
   }
 
-  /// \brief Unsigned greater or equal comparison
+  /// Unsigned greater or equal comparison
   ///
   /// Regards both *this and RHS as unsigned quantities and compares them for
   /// validity of the greater-or-equal relationship.
@@ -1271,7 +1286,7 @@
   /// \returns true if *this >= RHS when both are considered unsigned.
   bool uge(const APInt &RHS) const { return !ult(RHS); }
 
-  /// \brief Unsigned greater or equal comparison
+  /// Unsigned greater or equal comparison
   ///
   /// Regards both *this as an unsigned quantity and compares it with RHS for
   /// the validity of the greater-or-equal relationship.
@@ -1279,7 +1294,7 @@
   /// \returns true if *this >= RHS when considered unsigned.
   bool uge(uint64_t RHS) const { return !ult(RHS); }
 
-  /// \brief Signed greater or equal comparison
+  /// Signed greater or equal comparison
   ///
   /// Regards both *this and RHS as signed quantities and compares them for
   /// validity of the greater-or-equal relationship.
@@ -1287,7 +1302,7 @@
   /// \returns true if *this >= RHS when both are considered signed.
   bool sge(const APInt &RHS) const { return !slt(RHS); }
 
-  /// \brief Signed greater or equal comparison
+  /// Signed greater or equal comparison
   ///
   /// Regards both *this as a signed quantity and compares it with RHS for
   /// the validity of the greater-or-equal relationship.
@@ -1316,13 +1331,13 @@
   /// \name Resizing Operators
   /// @{
 
-  /// \brief Truncate to new width.
+  /// Truncate to new width.
   ///
   /// Truncate the APInt to a specified width. It is an error to specify a width
   /// that is greater than or equal to the current width.
   APInt trunc(unsigned width) const;
 
-  /// \brief Sign extend to a new width.
+  /// Sign extend to a new width.
   ///
   /// This operation sign extends the APInt to a new width. If the high order
   /// bit is set, the fill on the left will be done with 1 bits, otherwise zero.
@@ -1330,32 +1345,32 @@
   /// current width.
   APInt sext(unsigned width) const;
 
-  /// \brief Zero extend to a new width.
+  /// Zero extend to a new width.
   ///
   /// This operation zero extends the APInt to a new width. The high order bits
   /// are filled with 0 bits.  It is an error to specify a width that is less
   /// than or equal to the current width.
   APInt zext(unsigned width) const;
 
-  /// \brief Sign extend or truncate to width
+  /// Sign extend or truncate to width
   ///
   /// Make this APInt have the bit width given by \p width. The value is sign
   /// extended, truncated, or left alone to make it that width.
   APInt sextOrTrunc(unsigned width) const;
 
-  /// \brief Zero extend or truncate to width
+  /// Zero extend or truncate to width
   ///
   /// Make this APInt have the bit width given by \p width. The value is zero
   /// extended, truncated, or left alone to make it that width.
   APInt zextOrTrunc(unsigned width) const;
 
-  /// \brief Sign extend or truncate to width
+  /// Sign extend or truncate to width
   ///
   /// Make this APInt have the bit width given by \p width. The value is sign
   /// extended, or left alone to make it that width.
   APInt sextOrSelf(unsigned width) const;
 
-  /// \brief Zero extend or truncate to width
+  /// Zero extend or truncate to width
   ///
   /// Make this APInt have the bit width given by \p width. The value is zero
   /// extended, or left alone to make it that width.
@@ -1365,7 +1380,7 @@
   /// \name Bit Manipulation Operators
   /// @{
 
-  /// \brief Set every bit to 1.
+  /// Set every bit to 1.
   void setAllBits() {
     if (isSingleWord())
       U.VAL = WORD_MAX;
@@ -1376,7 +1391,7 @@
     clearUnusedBits();
   }
 
-  /// \brief Set a given bit to 1.
+  /// Set a given bit to 1.
   ///
   /// Set the given bit to 1 whose position is given as "bitPosition".
   void setBit(unsigned BitPosition) {
@@ -1427,7 +1442,7 @@
     return setBits(BitWidth - hiBits, BitWidth);
   }
 
-  /// \brief Set every bit to 0.
+  /// Set every bit to 0.
   void clearAllBits() {
     if (isSingleWord())
       U.VAL = 0;
@@ -1435,7 +1450,7 @@
       memset(U.pVal, 0, getNumWords() * APINT_WORD_SIZE);
   }
 
-  /// \brief Set a given bit to 0.
+  /// Set a given bit to 0.
   ///
   /// Set the given bit to 0 whose position is given as "bitPosition".
   void clearBit(unsigned BitPosition) {
@@ -1452,7 +1467,7 @@
     clearBit(BitWidth - 1);
   }
 
-  /// \brief Toggle every bit to its opposite value.
+  /// Toggle every bit to its opposite value.
   void flipAllBits() {
     if (isSingleWord()) {
       U.VAL ^= WORD_MAX;
@@ -1462,7 +1477,7 @@
     }
   }
 
-  /// \brief Toggles a given bit to its opposite value.
+  /// Toggles a given bit to its opposite value.
   ///
   /// Toggle a given bit to its opposite value whose position is given
   /// as "bitPosition".
@@ -1484,17 +1499,17 @@
   /// \name Value Characterization Functions
   /// @{
 
-  /// \brief Return the number of bits in the APInt.
+  /// Return the number of bits in the APInt.
   unsigned getBitWidth() const { return BitWidth; }
 
-  /// \brief Get the number of words.
+  /// Get the number of words.
   ///
   /// Here one word's bitwidth equals to that of uint64_t.
   ///
   /// \returns the number of words to hold the integer value of this APInt.
   unsigned getNumWords() const { return getNumWords(BitWidth); }
 
-  /// \brief Get the number of words.
+  /// Get the number of words.
   ///
   /// *NOTE* Here one word's bitwidth equals to that of uint64_t.
   ///
@@ -1504,14 +1519,14 @@
     return ((uint64_t)BitWidth + APINT_BITS_PER_WORD - 1) / APINT_BITS_PER_WORD;
   }
 
-  /// \brief Compute the number of active bits in the value
+  /// Compute the number of active bits in the value
   ///
   /// This function returns the number of active bits which is defined as the
   /// bit width minus the number of leading zeros. This is used in several
   /// computations to see how "wide" the value is.
   unsigned getActiveBits() const { return BitWidth - countLeadingZeros(); }
 
-  /// \brief Compute the number of active words in the value of this APInt.
+  /// Compute the number of active words in the value of this APInt.
   ///
   /// This is used in conjunction with getActiveData to extract the raw value of
   /// the APInt.
@@ -1520,7 +1535,7 @@
     return numActiveBits ? whichWord(numActiveBits - 1) + 1 : 1;
   }
 
-  /// \brief Get the minimum bit size for this signed APInt
+  /// Get the minimum bit size for this signed APInt
   ///
   /// Computes the minimum bit width for this APInt while considering it to be a
   /// signed (and probably negative) value. If the value is not negative, this
@@ -1534,7 +1549,7 @@
     return getActiveBits() + 1;
   }
 
-  /// \brief Get zero extended value
+  /// Get zero extended value
   ///
   /// This method attempts to return the value of this APInt as a zero extended
   /// uint64_t. The bitwidth must be <= 64 or the value must fit within a
@@ -1546,7 +1561,7 @@
     return U.pVal[0];
   }
 
-  /// \brief Get sign extended value
+  /// Get sign extended value
   ///
   /// This method attempts to return the value of this APInt as a sign extended
   /// int64_t. The bit width must be <= 64 or the value must fit within an
@@ -1558,13 +1573,13 @@
     return int64_t(U.pVal[0]);
   }
 
-  /// \brief Get bits required for string value.
+  /// Get bits required for string value.
   ///
   /// This method determines how many bits are required to hold the APInt
   /// equivalent of the string given by \p str.
   static unsigned getBitsNeeded(StringRef str, uint8_t radix);
 
-  /// \brief The APInt version of the countLeadingZeros functions in
+  /// The APInt version of the countLeadingZeros functions in
   ///   MathExtras.h.
   ///
   /// It counts the number of zeros from the most significant bit to the first
@@ -1580,7 +1595,7 @@
     return countLeadingZerosSlowCase();
   }
 
-  /// \brief Count the number of leading one bits.
+  /// Count the number of leading one bits.
   ///
   /// This function is an APInt version of the countLeadingOnes
   /// functions in MathExtras.h. It counts the number of ones from the most
@@ -1600,7 +1615,7 @@
     return isNegative() ? countLeadingOnes() : countLeadingZeros();
   }
 
-  /// \brief Count the number of trailing zero bits.
+  /// Count the number of trailing zero bits.
   ///
   /// This function is an APInt version of the countTrailingZeros
   /// functions in MathExtras.h. It counts the number of zeros from the least
@@ -1614,7 +1629,7 @@
     return countTrailingZerosSlowCase();
   }
 
-  /// \brief Count the number of trailing one bits.
+  /// Count the number of trailing one bits.
   ///
   /// This function is an APInt version of the countTrailingOnes
   /// functions in MathExtras.h. It counts the number of ones from the least
@@ -1628,7 +1643,7 @@
     return countTrailingOnesSlowCase();
   }
 
-  /// \brief Count the number of bits set.
+  /// Count the number of bits set.
   ///
   /// This function is an APInt version of the countPopulation functions
   /// in MathExtras.h. It counts the number of 1 bits in the APInt value.
@@ -1662,7 +1677,7 @@
     toString(Str, Radix, true, false);
   }
 
-  /// \brief Return the APInt as a std::string.
+  /// Return the APInt as a std::string.
   ///
   /// Note that this is an inefficient method.  It is better to pass in a
   /// SmallVector/SmallString to the methods above to avoid thrashing the heap
@@ -1676,16 +1691,16 @@
   /// Value.
   APInt reverseBits() const;
 
-  /// \brief Converts this APInt to a double value.
+  /// Converts this APInt to a double value.
   double roundToDouble(bool isSigned) const;
 
-  /// \brief Converts this unsigned APInt to a double value.
+  /// Converts this unsigned APInt to a double value.
   double roundToDouble() const { return roundToDouble(false); }
 
-  /// \brief Converts this signed APInt to a double value.
+  /// Converts this signed APInt to a double value.
   double signedRoundToDouble() const { return roundToDouble(true); }
 
-  /// \brief Converts APInt bits to a double
+  /// Converts APInt bits to a double
   ///
   /// The conversion does not do a translation from integer to double, it just
   /// re-interprets the bits as a double. Note that it is valid to do this on
@@ -1694,7 +1709,7 @@
     return BitsToDouble(getWord(0));
   }
 
-  /// \brief Converts APInt bits to a double
+  /// Converts APInt bits to a double
   ///
   /// The conversion does not do a translation from integer to float, it just
   /// re-interprets the bits as a float. Note that it is valid to do this on
@@ -1703,7 +1718,7 @@
     return BitsToFloat(getWord(0));
   }
 
-  /// \brief Converts a double to APInt bits.
+  /// Converts a double to APInt bits.
   ///
   /// The conversion does not do a translation from double to integer, it just
   /// re-interprets the bits of the double.
@@ -1711,7 +1726,7 @@
     return APInt(sizeof(double) * CHAR_BIT, DoubleToBits(V));
   }
 
-  /// \brief Converts a float to APInt bits.
+  /// Converts a float to APInt bits.
   ///
   /// The conversion does not do a translation from float to integer, it just
   /// re-interprets the bits of the float.
@@ -1770,10 +1785,10 @@
     return logBase2();
   }
 
-  /// \brief Compute the square root
+  /// Compute the square root
   APInt sqrt() const;
 
-  /// \brief Get the absolute value;
+  /// Get the absolute value;
   ///
   /// If *this is < 0 then return -(*this), otherwise *this;
   APInt abs() const {
@@ -1924,7 +1939,7 @@
   /// Set the least significant BITS and clear the rest.
   static void tcSetLeastSignificantBits(WordType *, unsigned, unsigned bits);
 
-  /// \brief debug method
+  /// debug method
   void dump() const;
 
   /// @}
@@ -1947,7 +1962,7 @@
 
 inline bool operator!=(uint64_t V1, const APInt &V2) { return V2 != V1; }
 
-/// \brief Unary bitwise complement operator.
+/// Unary bitwise complement operator.
 ///
 /// \returns an APInt that is the bitwise complement of \p v.
 inline APInt operator~(APInt v) {
@@ -2080,27 +2095,27 @@
 
 namespace APIntOps {
 
-/// \brief Determine the smaller of two APInts considered to be signed.
+/// Determine the smaller of two APInts considered to be signed.
 inline const APInt &smin(const APInt &A, const APInt &B) {
   return A.slt(B) ? A : B;
 }
 
-/// \brief Determine the larger of two APInts considered to be signed.
+/// Determine the larger of two APInts considered to be signed.
 inline const APInt &smax(const APInt &A, const APInt &B) {
   return A.sgt(B) ? A : B;
 }
 
-/// \brief Determine the smaller of two APInts considered to be signed.
+/// Determine the smaller of two APInts considered to be signed.
 inline const APInt &umin(const APInt &A, const APInt &B) {
   return A.ult(B) ? A : B;
 }
 
-/// \brief Determine the larger of two APInts considered to be unsigned.
+/// Determine the larger of two APInts considered to be unsigned.
 inline const APInt &umax(const APInt &A, const APInt &B) {
   return A.ugt(B) ? A : B;
 }
 
-/// \brief Compute GCD of two unsigned APInt values.
+/// Compute GCD of two unsigned APInt values.
 ///
 /// This function returns the greatest common divisor of the two APInt values
 /// using Stein's algorithm.
@@ -2108,44 +2123,85 @@
 /// \returns the greatest common divisor of A and B.
 APInt GreatestCommonDivisor(APInt A, APInt B);
 
-/// \brief Converts the given APInt to a double value.
+/// Converts the given APInt to a double value.
 ///
 /// Treats the APInt as an unsigned value for conversion purposes.
 inline double RoundAPIntToDouble(const APInt &APIVal) {
   return APIVal.roundToDouble();
 }
 
-/// \brief Converts the given APInt to a double value.
+/// Converts the given APInt to a double value.
 ///
 /// Treats the APInt as a signed value for conversion purposes.
 inline double RoundSignedAPIntToDouble(const APInt &APIVal) {
   return APIVal.signedRoundToDouble();
 }
 
-/// \brief Converts the given APInt to a float vlalue.
+/// Converts the given APInt to a float vlalue.
 inline float RoundAPIntToFloat(const APInt &APIVal) {
   return float(RoundAPIntToDouble(APIVal));
 }
 
-/// \brief Converts the given APInt to a float value.
+/// Converts the given APInt to a float value.
 ///
 /// Treast the APInt as a signed value for conversion purposes.
 inline float RoundSignedAPIntToFloat(const APInt &APIVal) {
   return float(APIVal.signedRoundToDouble());
 }
 
-/// \brief Converts the given double value into a APInt.
+/// Converts the given double value into a APInt.
 ///
 /// This function convert a double value to an APInt value.
 APInt RoundDoubleToAPInt(double Double, unsigned width);
 
-/// \brief Converts a float value into a APInt.
+/// Converts a float value into a APInt.
 ///
 /// Converts a float value into an APInt value.
 inline APInt RoundFloatToAPInt(float Float, unsigned width) {
   return RoundDoubleToAPInt(double(Float), width);
 }
 
+/// Return A unsign-divided by B, rounded by the given rounding mode.
+APInt RoundingUDiv(const APInt &A, const APInt &B, APInt::Rounding RM);
+
+/// Return A sign-divided by B, rounded by the given rounding mode.
+APInt RoundingSDiv(const APInt &A, const APInt &B, APInt::Rounding RM);
+
+/// Let q(n) = An^2 + Bn + C, and BW = bit width of the value range
+/// (e.g. 32 for i32).
+/// This function finds the smallest number n, such that
+/// (a) n >= 0 and q(n) = 0, or
+/// (b) n >= 1 and q(n-1) and q(n), when evaluated in the set of all
+///     integers, belong to two different intervals [Rk, Rk+R),
+///     where R = 2^BW, and k is an integer.
+/// The idea here is to find when q(n) "overflows" 2^BW, while at the
+/// same time "allowing" subtraction. In unsigned modulo arithmetic a
+/// subtraction (treated as addition of negated numbers) would always
+/// count as an overflow, but here we want to allow values to decrease
+/// and increase as long as they are within the same interval.
+/// Specifically, adding of two negative numbers should not cause an
+/// overflow (as long as the magnitude does not exceed the bith width).
+/// On the other hand, given a positive number, adding a negative
+/// number to it can give a negative result, which would cause the
+/// value to go from [-2^BW, 0) to [0, 2^BW). In that sense, zero is
+/// treated as a special case of an overflow.
+///
+/// This function returns None if after finding k that minimizes the
+/// positive solution to q(n) = kR, both solutions are contained between
+/// two consecutive integers.
+///
+/// There are cases where q(n) > T, and q(n+1) < T (assuming evaluation
+/// in arithmetic modulo 2^BW, and treating the values as signed) by the
+/// virtue of *signed* overflow. This function will *not* find such an n,
+/// however it may find a value of n satisfying the inequalities due to
+/// an *unsigned* overflow (if the values are treated as unsigned).
+/// To find a solution for a signed overflow, treat it as a problem of
+/// finding an unsigned overflow with a range with of BW-1.
+///
+/// The returned value may have a different bit width from the input
+/// coefficients.
+Optional<APInt> SolveQuadraticEquationWrap(APInt A, APInt B, APInt C,
+                                           unsigned RangeWidth);
 } // End of APIntOps namespace
 
 // See friend declaration above. This additional declaration is required in
diff --git a/linux-x64/clang/include/llvm/ADT/APSInt.h b/linux-x64/clang/include/llvm/ADT/APSInt.h
index dabbf33..7ee2c4c 100644
--- a/linux-x64/clang/include/llvm/ADT/APSInt.h
+++ b/linux-x64/clang/include/llvm/ADT/APSInt.h
@@ -72,7 +72,7 @@
   }
   using APInt::toString;
 
-  /// \brief Get the correctly-extended \c int64_t value.
+  /// Get the correctly-extended \c int64_t value.
   int64_t getExtValue() const {
     assert(getMinSignedBits() <= 64 && "Too many bits for int64_t");
     return isSigned() ? getSExtValue() : getZExtValue();
@@ -279,13 +279,13 @@
                            : APInt::getSignedMinValue(numBits), Unsigned);
   }
 
-  /// \brief Determine if two APSInts have the same value, zero- or
+  /// Determine if two APSInts have the same value, zero- or
   /// sign-extending as needed.
   static bool isSameValue(const APSInt &I1, const APSInt &I2) {
     return !compareValues(I1, I2);
   }
 
-  /// \brief Compare underlying values of two numbers.
+  /// Compare underlying values of two numbers.
   static int compareValues(const APSInt &I1, const APSInt &I2) {
     if (I1.getBitWidth() == I2.getBitWidth() && I1.isSigned() == I2.isSigned())
       return I1.IsUnsigned ? I1.compare(I2) : I1.compareSigned(I2);
diff --git a/linux-x64/clang/include/llvm/ADT/Any.h b/linux-x64/clang/include/llvm/ADT/Any.h
new file mode 100644
index 0000000..c64c399
--- /dev/null
+++ b/linux-x64/clang/include/llvm/ADT/Any.h
@@ -0,0 +1,150 @@
+//===- Any.h - Generic type erased holder of any type -----------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+//  This file provides Any, a non-template class modeled in the spirit of
+//  std::any.  The idea is to provide a type-safe replacement for C's void*.
+//  It can hold a value of any copy-constructible copy-assignable type
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ADT_ANY_H
+#define LLVM_ADT_ANY_H
+
+#include "llvm/ADT/STLExtras.h"
+
+#include <cassert>
+#include <memory>
+#include <type_traits>
+
+namespace llvm {
+
+class Any {
+  template <typename T> struct TypeId { static const char Id; };
+
+  struct StorageBase {
+    virtual ~StorageBase() = default;
+    virtual std::unique_ptr<StorageBase> clone() const = 0;
+    virtual const void *id() const = 0;
+  };
+
+  template <typename T> struct StorageImpl : public StorageBase {
+    explicit StorageImpl(const T &Value) : Value(Value) {}
+
+    explicit StorageImpl(T &&Value) : Value(std::move(Value)) {}
+
+    std::unique_ptr<StorageBase> clone() const override {
+      return llvm::make_unique<StorageImpl<T>>(Value);
+    }
+
+    const void *id() const override { return &TypeId<T>::Id; }
+
+    T Value;
+
+  private:
+    StorageImpl &operator=(const StorageImpl &Other) = delete;
+    StorageImpl(const StorageImpl &Other) = delete;
+  };
+
+public:
+  Any() = default;
+
+  Any(const Any &Other)
+      : Storage(Other.Storage ? Other.Storage->clone() : nullptr) {}
+
+  // When T is Any or T is not copy-constructible we need to explicitly disable
+  // the forwarding constructor so that the copy constructor gets selected
+  // instead.
+  template <
+      typename T,
+      typename std::enable_if<
+          llvm::conjunction<
+              llvm::negation<std::is_same<typename std::decay<T>::type, Any>>,
+              std::is_copy_constructible<typename std::decay<T>::type>>::value,
+          int>::type = 0>
+  Any(T &&Value) {
+    using U = typename std::decay<T>::type;
+    Storage = llvm::make_unique<StorageImpl<U>>(std::forward<T>(Value));
+  }
+
+  Any(Any &&Other) : Storage(std::move(Other.Storage)) {}
+
+  Any &swap(Any &Other) {
+    std::swap(Storage, Other.Storage);
+    return *this;
+  }
+
+  Any &operator=(Any Other) {
+    Storage = std::move(Other.Storage);
+    return *this;
+  }
+
+  bool hasValue() const { return !!Storage; }
+
+  void reset() { Storage.reset(); }
+
+private:
+  template <class T> friend T any_cast(const Any &Value);
+  template <class T> friend T any_cast(Any &Value);
+  template <class T> friend T any_cast(Any &&Value);
+  template <class T> friend const T *any_cast(const Any *Value);
+  template <class T> friend T *any_cast(Any *Value);
+  template <typename T> friend bool any_isa(const Any &Value);
+
+  std::unique_ptr<StorageBase> Storage;
+};
+
+template <typename T> const char Any::TypeId<T>::Id = 0;
+
+
+template <typename T> bool any_isa(const Any &Value) {
+  if (!Value.Storage)
+    return false;
+  using U =
+      typename std::remove_cv<typename std::remove_reference<T>::type>::type;
+  return Value.Storage->id() == &Any::TypeId<U>::Id;
+}
+
+template <class T> T any_cast(const Any &Value) {
+  using U =
+      typename std::remove_cv<typename std::remove_reference<T>::type>::type;
+  return static_cast<T>(*any_cast<U>(&Value));
+}
+
+template <class T> T any_cast(Any &Value) {
+  using U =
+      typename std::remove_cv<typename std::remove_reference<T>::type>::type;
+  return static_cast<T>(*any_cast<U>(&Value));
+}
+
+template <class T> T any_cast(Any &&Value) {
+  using U =
+      typename std::remove_cv<typename std::remove_reference<T>::type>::type;
+  return static_cast<T>(std::move(*any_cast<U>(&Value)));
+}
+
+template <class T> const T *any_cast(const Any *Value) {
+  using U =
+      typename std::remove_cv<typename std::remove_reference<T>::type>::type;
+  assert(Value && any_isa<T>(*Value) && "Bad any cast!");
+  if (!Value || !any_isa<U>(*Value))
+    return nullptr;
+  return &static_cast<Any::StorageImpl<U> &>(*Value->Storage).Value;
+}
+
+template <class T> T *any_cast(Any *Value) {
+  using U = typename std::decay<T>::type;
+  assert(Value && any_isa<U>(*Value) && "Bad any cast!");
+  if (!Value || !any_isa<U>(*Value))
+    return nullptr;
+  return &static_cast<Any::StorageImpl<U> &>(*Value->Storage).Value;
+}
+
+} // end namespace llvm
+
+#endif // LLVM_ADT_ANY_H
diff --git a/linux-x64/clang/include/llvm/ADT/ArrayRef.h b/linux-x64/clang/include/llvm/ADT/ArrayRef.h
index 5f7a769..9cb25b0 100644
--- a/linux-x64/clang/include/llvm/ADT/ArrayRef.h
+++ b/linux-x64/clang/include/llvm/ADT/ArrayRef.h
@@ -184,51 +184,51 @@
     /// slice(n) - Chop off the first N elements of the array.
     ArrayRef<T> slice(size_t N) const { return slice(N, size() - N); }
 
-    /// \brief Drop the first \p N elements of the array.
+    /// Drop the first \p N elements of the array.
     ArrayRef<T> drop_front(size_t N = 1) const {
       assert(size() >= N && "Dropping more elements than exist");
       return slice(N, size() - N);
     }
 
-    /// \brief Drop the last \p N elements of the array.
+    /// Drop the last \p N elements of the array.
     ArrayRef<T> drop_back(size_t N = 1) const {
       assert(size() >= N && "Dropping more elements than exist");
       return slice(0, size() - N);
     }
 
-    /// \brief Return a copy of *this with the first N elements satisfying the
+    /// Return a copy of *this with the first N elements satisfying the
     /// given predicate removed.
     template <class PredicateT> ArrayRef<T> drop_while(PredicateT Pred) const {
       return ArrayRef<T>(find_if_not(*this, Pred), end());
     }
 
-    /// \brief Return a copy of *this with the first N elements not satisfying
+    /// Return a copy of *this with the first N elements not satisfying
     /// the given predicate removed.
     template <class PredicateT> ArrayRef<T> drop_until(PredicateT Pred) const {
       return ArrayRef<T>(find_if(*this, Pred), end());
     }
 
-    /// \brief Return a copy of *this with only the first \p N elements.
+    /// Return a copy of *this with only the first \p N elements.
     ArrayRef<T> take_front(size_t N = 1) const {
       if (N >= size())
         return *this;
       return drop_back(size() - N);
     }
 
-    /// \brief Return a copy of *this with only the last \p N elements.
+    /// Return a copy of *this with only the last \p N elements.
     ArrayRef<T> take_back(size_t N = 1) const {
       if (N >= size())
         return *this;
       return drop_front(size() - N);
     }
 
-    /// \brief Return the first N elements of this Array that satisfy the given
+    /// Return the first N elements of this Array that satisfy the given
     /// predicate.
     template <class PredicateT> ArrayRef<T> take_while(PredicateT Pred) const {
       return ArrayRef<T>(begin(), find_if_not(*this, Pred));
     }
 
-    /// \brief Return the first N elements of this Array that don't satisfy the
+    /// Return the first N elements of this Array that don't satisfy the
     /// given predicate.
     template <class PredicateT> ArrayRef<T> take_until(PredicateT Pred) const {
       return ArrayRef<T>(begin(), find_if(*this, Pred));
@@ -358,7 +358,7 @@
       return slice(N, this->size() - N);
     }
 
-    /// \brief Drop the first \p N elements of the array.
+    /// Drop the first \p N elements of the array.
     MutableArrayRef<T> drop_front(size_t N = 1) const {
       assert(this->size() >= N && "Dropping more elements than exist");
       return slice(N, this->size() - N);
@@ -369,42 +369,42 @@
       return slice(0, this->size() - N);
     }
 
-    /// \brief Return a copy of *this with the first N elements satisfying the
+    /// Return a copy of *this with the first N elements satisfying the
     /// given predicate removed.
     template <class PredicateT>
     MutableArrayRef<T> drop_while(PredicateT Pred) const {
       return MutableArrayRef<T>(find_if_not(*this, Pred), end());
     }
 
-    /// \brief Return a copy of *this with the first N elements not satisfying
+    /// Return a copy of *this with the first N elements not satisfying
     /// the given predicate removed.
     template <class PredicateT>
     MutableArrayRef<T> drop_until(PredicateT Pred) const {
       return MutableArrayRef<T>(find_if(*this, Pred), end());
     }
 
-    /// \brief Return a copy of *this with only the first \p N elements.
+    /// Return a copy of *this with only the first \p N elements.
     MutableArrayRef<T> take_front(size_t N = 1) const {
       if (N >= this->size())
         return *this;
       return drop_back(this->size() - N);
     }
 
-    /// \brief Return a copy of *this with only the last \p N elements.
+    /// Return a copy of *this with only the last \p N elements.
     MutableArrayRef<T> take_back(size_t N = 1) const {
       if (N >= this->size())
         return *this;
       return drop_front(this->size() - N);
     }
 
-    /// \brief Return the first N elements of this Array that satisfy the given
+    /// Return the first N elements of this Array that satisfy the given
     /// predicate.
     template <class PredicateT>
     MutableArrayRef<T> take_while(PredicateT Pred) const {
       return MutableArrayRef<T>(begin(), find_if_not(*this, Pred));
     }
 
-    /// \brief Return the first N elements of this Array that don't satisfy the
+    /// Return the first N elements of this Array that don't satisfy the
     /// given predicate.
     template <class PredicateT>
     MutableArrayRef<T> take_until(PredicateT Pred) const {
diff --git a/linux-x64/clang/include/llvm/ADT/BitVector.h b/linux-x64/clang/include/llvm/ADT/BitVector.h
index 124c2a8..438c7d8 100644
--- a/linux-x64/clang/include/llvm/ADT/BitVector.h
+++ b/linux-x64/clang/include/llvm/ADT/BitVector.h
@@ -779,7 +779,7 @@
   }
 
 private:
-  /// \brief Perform a logical left shift of \p Count words by moving everything
+  /// Perform a logical left shift of \p Count words by moving everything
   /// \p Count words to the right in memory.
   ///
   /// While confusing, words are stored from least significant at Bits[0] to
@@ -810,7 +810,7 @@
     clear_unused_bits();
   }
 
-  /// \brief Perform a logical right shift of \p Count words by moving those
+  /// Perform a logical right shift of \p Count words by moving those
   /// words to the left in memory.  See wordShl for more information.
   ///
   void wordShr(uint32_t Count) {
diff --git a/linux-x64/clang/include/llvm/ADT/CachedHashString.h b/linux-x64/clang/include/llvm/ADT/CachedHashString.h
index a56a621..d8f0e7a 100644
--- a/linux-x64/clang/include/llvm/ADT/CachedHashString.h
+++ b/linux-x64/clang/include/llvm/ADT/CachedHashString.h
@@ -43,6 +43,7 @@
   }
 
   StringRef val() const { return StringRef(P, Size); }
+  const char *data() const { return P; }
   uint32_t size() const { return Size; }
   uint32_t hash() const { return Hash; }
 };
diff --git a/linux-x64/clang/include/llvm/ADT/DenseMap.h b/linux-x64/clang/include/llvm/ADT/DenseMap.h
index ba60b79..380f1db 100644
--- a/linux-x64/clang/include/llvm/ADT/DenseMap.h
+++ b/linux-x64/clang/include/llvm/ADT/DenseMap.h
@@ -393,7 +393,7 @@
     setNumTombstones(other.getNumTombstones());
 
     if (isPodLike<KeyT>::value && isPodLike<ValueT>::value)
-      memcpy(getBuckets(), other.getBuckets(),
+      memcpy(reinterpret_cast<void *>(getBuckets()), other.getBuckets(),
              getNumBuckets() * sizeof(BucketT));
     else
       for (size_t i = 0; i < getNumBuckets(); ++i) {
diff --git a/linux-x64/clang/include/llvm/ADT/DenseMapInfo.h b/linux-x64/clang/include/llvm/ADT/DenseMapInfo.h
index a96904c..5d12b42 100644
--- a/linux-x64/clang/include/llvm/ADT/DenseMapInfo.h
+++ b/linux-x64/clang/include/llvm/ADT/DenseMapInfo.h
@@ -262,6 +262,13 @@
   }
 };
 
+template <> struct DenseMapInfo<hash_code> {
+  static inline hash_code getEmptyKey() { return hash_code(-1); }
+  static inline hash_code getTombstoneKey() { return hash_code(-2); }
+  static unsigned getHashValue(hash_code val) { return val; }
+  static bool isEqual(hash_code LHS, hash_code RHS) { return LHS == RHS; }
+};
+
 } // end namespace llvm
 
 #endif // LLVM_ADT_DENSEMAPINFO_H
diff --git a/linux-x64/clang/include/llvm/ADT/DenseSet.h b/linux-x64/clang/include/llvm/ADT/DenseSet.h
index 7e5171c..b495e25 100644
--- a/linux-x64/clang/include/llvm/ADT/DenseSet.h
+++ b/linux-x64/clang/include/llvm/ADT/DenseSet.h
@@ -17,7 +17,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/Support/type_traits.h"
-#include <algorithm> 
+#include <algorithm>
 #include <cstddef>
 #include <initializer_list>
 #include <iterator>
diff --git a/linux-x64/clang/include/llvm/ADT/DepthFirstIterator.h b/linux-x64/clang/include/llvm/ADT/DepthFirstIterator.h
index e964d7f..1f3766d 100644
--- a/linux-x64/clang/include/llvm/ADT/DepthFirstIterator.h
+++ b/linux-x64/clang/include/llvm/ADT/DepthFirstIterator.h
@@ -177,7 +177,7 @@
     return *this;
   }
 
-  /// \brief Skips all children of the current node and traverses to next node
+  /// Skips all children of the current node and traverses to next node
   ///
   /// Note: This function takes care of incrementing the iterator. If you
   /// always increment and call this function, you risk walking off the end.
diff --git a/linux-x64/clang/include/llvm/ADT/EpochTracker.h b/linux-x64/clang/include/llvm/ADT/EpochTracker.h
index db39ba4..49ef192 100644
--- a/linux-x64/clang/include/llvm/ADT/EpochTracker.h
+++ b/linux-x64/clang/include/llvm/ADT/EpochTracker.h
@@ -17,7 +17,6 @@
 #define LLVM_ADT_EPOCH_TRACKER_H
 
 #include "llvm/Config/abi-breaking.h"
-#include "llvm/Config/llvm-config.h"
 
 #include <cstdint>
 
@@ -25,7 +24,7 @@
 
 #if LLVM_ENABLE_ABI_BREAKING_CHECKS
 
-/// \brief A base class for data structure classes wishing to make iterators
+/// A base class for data structure classes wishing to make iterators
 /// ("handles") pointing into themselves fail-fast.  When building without
 /// asserts, this class is empty and does nothing.
 ///
@@ -40,15 +39,15 @@
 public:
   DebugEpochBase() : Epoch(0) {}
 
-  /// \brief Calling incrementEpoch invalidates all handles pointing into the
+  /// Calling incrementEpoch invalidates all handles pointing into the
   /// calling instance.
   void incrementEpoch() { ++Epoch; }
 
-  /// \brief The destructor calls incrementEpoch to make use-after-free bugs
+  /// The destructor calls incrementEpoch to make use-after-free bugs
   /// more likely to crash deterministically.
   ~DebugEpochBase() { incrementEpoch(); }
 
-  /// \brief A base class for iterator classes ("handles") that wish to poll for
+  /// A base class for iterator classes ("handles") that wish to poll for
   /// iterator invalidating modifications in the underlying data structure.
   /// When LLVM is built without asserts, this class is empty and does nothing.
   ///
@@ -66,12 +65,12 @@
     explicit HandleBase(const DebugEpochBase *Parent)
         : EpochAddress(&Parent->Epoch), EpochAtCreation(Parent->Epoch) {}
 
-    /// \brief Returns true if the DebugEpochBase this Handle is linked to has
+    /// Returns true if the DebugEpochBase this Handle is linked to has
     /// not called incrementEpoch on itself since the creation of this
     /// HandleBase instance.
     bool isHandleInSync() const { return *EpochAddress == EpochAtCreation; }
 
-    /// \brief Returns a pointer to the epoch word stored in the data structure
+    /// Returns a pointer to the epoch word stored in the data structure
     /// this handle points into.  Can be used to check if two iterators point
     /// into the same data structure.
     const void *getEpochAddress() const { return EpochAddress; }
diff --git a/linux-x64/clang/include/llvm/ADT/FunctionExtras.h b/linux-x64/clang/include/llvm/ADT/FunctionExtras.h
new file mode 100644
index 0000000..2b75dc6
--- /dev/null
+++ b/linux-x64/clang/include/llvm/ADT/FunctionExtras.h
@@ -0,0 +1,293 @@
+//===- FunctionExtras.h - Function type erasure utilities -------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+/// \file
+/// This file provides a collection of function (or more generally, callable)
+/// type erasure utilities supplementing those provided by the standard library
+/// in `<function>`.
+///
+/// It provides `unique_function`, which works like `std::function` but supports
+/// move-only callable objects.
+///
+/// Future plans:
+/// - Add a `function` that provides const, volatile, and ref-qualified support,
+///   which doesn't work with `std::function`.
+/// - Provide support for specifying multiple signatures to type erase callable
+///   objects with an overload set, such as those produced by generic lambdas.
+/// - Expand to include a copyable utility that directly replaces std::function
+///   but brings the above improvements.
+///
+/// Note that LLVM's utilities are greatly simplified by not supporting
+/// allocators.
+///
+/// If the standard library ever begins to provide comparable facilities we can
+/// consider switching to those.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ADT_FUNCTION_EXTRAS_H
+#define LLVM_ADT_FUNCTION_EXTRAS_H
+
+#include "llvm/ADT/PointerIntPair.h"
+#include "llvm/ADT/PointerUnion.h"
+#include "llvm/Support/type_traits.h"
+#include <memory>
+
+namespace llvm {
+
+template <typename FunctionT> class unique_function;
+
+template <typename ReturnT, typename... ParamTs>
+class unique_function<ReturnT(ParamTs...)> {
+  static constexpr size_t InlineStorageSize = sizeof(void *) * 3;
+
+  // MSVC has a bug and ICEs if we give it a particular dependent value
+  // expression as part of the `std::conditional` below. To work around this,
+  // we build that into a template struct's constexpr bool.
+  template <typename T> struct IsSizeLessThanThresholdT {
+    static constexpr bool value = sizeof(T) <= (2 * sizeof(void *));
+  };
+
+  // Provide a type function to map parameters that won't observe extra copies
+  // or moves and which are small enough to likely pass in register to values
+  // and all other types to l-value reference types. We use this to compute the
+  // types used in our erased call utility to minimize copies and moves unless
+  // doing so would force things unnecessarily into memory.
+  //
+  // The heuristic used is related to common ABI register passing conventions.
+  // It doesn't have to be exact though, and in one way it is more strict
+  // because we want to still be able to observe either moves *or* copies.
+  template <typename T>
+  using AdjustedParamT = typename std::conditional<
+      !std::is_reference<T>::value &&
+          llvm::is_trivially_copy_constructible<T>::value &&
+          llvm::is_trivially_move_constructible<T>::value &&
+          IsSizeLessThanThresholdT<T>::value,
+      T, T &>::type;
+
+  // The type of the erased function pointer we use as a callback to dispatch to
+  // the stored callable when it is trivial to move and destroy.
+  using CallPtrT = ReturnT (*)(void *CallableAddr,
+                               AdjustedParamT<ParamTs>... Params);
+  using MovePtrT = void (*)(void *LHSCallableAddr, void *RHSCallableAddr);
+  using DestroyPtrT = void (*)(void *CallableAddr);
+
+  /// A struct to hold a single trivial callback with sufficient alignment for
+  /// our bitpacking.
+  struct alignas(8) TrivialCallback {
+    CallPtrT CallPtr;
+  };
+
+  /// A struct we use to aggregate three callbacks when we need full set of
+  /// operations.
+  struct alignas(8) NonTrivialCallbacks {
+    CallPtrT CallPtr;
+    MovePtrT MovePtr;
+    DestroyPtrT DestroyPtr;
+  };
+
+  // Create a pointer union between either a pointer to a static trivial call
+  // pointer in a struct or a pointer to a static struct of the call, move, and
+  // destroy pointers.
+  using CallbackPointerUnionT =
+      PointerUnion<TrivialCallback *, NonTrivialCallbacks *>;
+
+  // The main storage buffer. This will either have a pointer to out-of-line
+  // storage or an inline buffer storing the callable.
+  union StorageUnionT {
+    // For out-of-line storage we keep a pointer to the underlying storage and
+    // the size. This is enough to deallocate the memory.
+    struct OutOfLineStorageT {
+      void *StoragePtr;
+      size_t Size;
+      size_t Alignment;
+    } OutOfLineStorage;
+    static_assert(
+        sizeof(OutOfLineStorageT) <= InlineStorageSize,
+        "Should always use all of the out-of-line storage for inline storage!");
+
+    // For in-line storage, we just provide an aligned character buffer. We
+    // provide three pointers worth of storage here.
+    typename std::aligned_storage<InlineStorageSize, alignof(void *)>::type
+        InlineStorage;
+  } StorageUnion;
+
+  // A compressed pointer to either our dispatching callback or our table of
+  // dispatching callbacks and the flag for whether the callable itself is
+  // stored inline or not.
+  PointerIntPair<CallbackPointerUnionT, 1, bool> CallbackAndInlineFlag;
+
+  bool isInlineStorage() const { return CallbackAndInlineFlag.getInt(); }
+
+  bool isTrivialCallback() const {
+    return CallbackAndInlineFlag.getPointer().template is<TrivialCallback *>();
+  }
+
+  CallPtrT getTrivialCallback() const {
+    return CallbackAndInlineFlag.getPointer().template get<TrivialCallback *>()->CallPtr;
+  }
+
+  NonTrivialCallbacks *getNonTrivialCallbacks() const {
+    return CallbackAndInlineFlag.getPointer()
+        .template get<NonTrivialCallbacks *>();
+  }
+
+  void *getInlineStorage() { return &StorageUnion.InlineStorage; }
+
+  void *getOutOfLineStorage() {
+    return StorageUnion.OutOfLineStorage.StoragePtr;
+  }
+  size_t getOutOfLineStorageSize() const {
+    return StorageUnion.OutOfLineStorage.Size;
+  }
+  size_t getOutOfLineStorageAlignment() const {
+    return StorageUnion.OutOfLineStorage.Alignment;
+  }
+
+  void setOutOfLineStorage(void *Ptr, size_t Size, size_t Alignment) {
+    StorageUnion.OutOfLineStorage = {Ptr, Size, Alignment};
+  }
+
+  template <typename CallableT>
+  static ReturnT CallImpl(void *CallableAddr, AdjustedParamT<ParamTs>... Params) {
+    return (*reinterpret_cast<CallableT *>(CallableAddr))(
+        std::forward<ParamTs>(Params)...);
+  }
+
+  template <typename CallableT>
+  static void MoveImpl(void *LHSCallableAddr, void *RHSCallableAddr) noexcept {
+    new (LHSCallableAddr)
+        CallableT(std::move(*reinterpret_cast<CallableT *>(RHSCallableAddr)));
+  }
+
+  template <typename CallableT>
+  static void DestroyImpl(void *CallableAddr) noexcept {
+    reinterpret_cast<CallableT *>(CallableAddr)->~CallableT();
+  }
+
+public:
+  unique_function() = default;
+  unique_function(std::nullptr_t /*null_callable*/) {}
+
+  ~unique_function() {
+    if (!CallbackAndInlineFlag.getPointer())
+      return;
+
+    // Cache this value so we don't re-check it after type-erased operations.
+    bool IsInlineStorage = isInlineStorage();
+
+    if (!isTrivialCallback())
+      getNonTrivialCallbacks()->DestroyPtr(
+          IsInlineStorage ? getInlineStorage() : getOutOfLineStorage());
+
+    if (!IsInlineStorage)
+      deallocate_buffer(getOutOfLineStorage(), getOutOfLineStorageSize(),
+                        getOutOfLineStorageAlignment());
+  }
+
+  unique_function(unique_function &&RHS) noexcept {
+    // Copy the callback and inline flag.
+    CallbackAndInlineFlag = RHS.CallbackAndInlineFlag;
+
+    // If the RHS is empty, just copying the above is sufficient.
+    if (!RHS)
+      return;
+
+    if (!isInlineStorage()) {
+      // The out-of-line case is easiest to move.
+      StorageUnion.OutOfLineStorage = RHS.StorageUnion.OutOfLineStorage;
+    } else if (isTrivialCallback()) {
+      // Move is trivial, just memcpy the bytes across.
+      memcpy(getInlineStorage(), RHS.getInlineStorage(), InlineStorageSize);
+    } else {
+      // Non-trivial move, so dispatch to a type-erased implementation.
+      getNonTrivialCallbacks()->MovePtr(getInlineStorage(),
+                                        RHS.getInlineStorage());
+    }
+
+    // Clear the old callback and inline flag to get back to as-if-null.
+    RHS.CallbackAndInlineFlag = {};
+
+#ifndef NDEBUG
+    // In debug builds, we also scribble across the rest of the storage.
+    memset(RHS.getInlineStorage(), 0xAD, InlineStorageSize);
+#endif
+  }
+
+  unique_function &operator=(unique_function &&RHS) noexcept {
+    if (this == &RHS)
+      return *this;
+
+    // Because we don't try to provide any exception safety guarantees we can
+    // implement move assignment very simply by first destroying the current
+    // object and then move-constructing over top of it.
+    this->~unique_function();
+    new (this) unique_function(std::move(RHS));
+    return *this;
+  }
+
+  template <typename CallableT> unique_function(CallableT Callable) {
+    bool IsInlineStorage = true;
+    void *CallableAddr = getInlineStorage();
+    if (sizeof(CallableT) > InlineStorageSize ||
+        alignof(CallableT) > alignof(decltype(StorageUnion.InlineStorage))) {
+      IsInlineStorage = false;
+      // Allocate out-of-line storage. FIXME: Use an explicit alignment
+      // parameter in C++17 mode.
+      auto Size = sizeof(CallableT);
+      auto Alignment = alignof(CallableT);
+      CallableAddr = allocate_buffer(Size, Alignment);
+      setOutOfLineStorage(CallableAddr, Size, Alignment);
+    }
+
+    // Now move into the storage.
+    new (CallableAddr) CallableT(std::move(Callable));
+
+    // See if we can create a trivial callback. We need the callable to be
+    // trivially moved and trivially destroyed so that we don't have to store
+    // type erased callbacks for those operations.
+    //
+    // FIXME: We should use constexpr if here and below to avoid instantiating
+    // the non-trivial static objects when unnecessary. While the linker should
+    // remove them, it is still wasteful.
+    if (llvm::is_trivially_move_constructible<CallableT>::value &&
+        std::is_trivially_destructible<CallableT>::value) {
+      // We need to create a nicely aligned object. We use a static variable
+      // for this because it is a trivial struct.
+      static TrivialCallback Callback = { &CallImpl<CallableT> };
+
+      CallbackAndInlineFlag = {&Callback, IsInlineStorage};
+      return;
+    }
+
+    // Otherwise, we need to point at an object that contains all the different
+    // type erased behaviors needed. Create a static instance of the struct type
+    // here and then use a pointer to that.
+    static NonTrivialCallbacks Callbacks = {
+        &CallImpl<CallableT>, &MoveImpl<CallableT>, &DestroyImpl<CallableT>};
+
+    CallbackAndInlineFlag = {&Callbacks, IsInlineStorage};
+  }
+
+  ReturnT operator()(ParamTs... Params) {
+    void *CallableAddr =
+        isInlineStorage() ? getInlineStorage() : getOutOfLineStorage();
+
+    return (isTrivialCallback()
+                ? getTrivialCallback()
+                : getNonTrivialCallbacks()->CallPtr)(CallableAddr, Params...);
+  }
+
+  explicit operator bool() const {
+    return (bool)CallbackAndInlineFlag.getPointer();
+  }
+};
+
+} // end namespace llvm
+
+#endif // LLVM_ADT_FUNCTION_H
diff --git a/linux-x64/clang/include/llvm/ADT/GraphTraits.h b/linux-x64/clang/include/llvm/ADT/GraphTraits.h
index 27c647f..d39b50f 100644
--- a/linux-x64/clang/include/llvm/ADT/GraphTraits.h
+++ b/linux-x64/clang/include/llvm/ADT/GraphTraits.h
@@ -25,6 +25,13 @@
 // GraphTraits - This class should be specialized by different graph types...
 // which is why the default version is empty.
 //
+// This template evolved from supporting `BasicBlock` to also later supporting
+// more complex types (e.g. CFG and DomTree).
+//
+// GraphTraits can be used to create a view over a graph interpreting it
+// differently without requiring a copy of the original graph. This could
+// be achieved by carrying more data in NodeRef. See LoopBodyTraits for one
+// example.
 template<class GraphType>
 struct GraphTraits {
   // Elements to provide:
diff --git a/linux-x64/clang/include/llvm/ADT/Hashing.h b/linux-x64/clang/include/llvm/ADT/Hashing.h
index c3b5741..9f830ba 100644
--- a/linux-x64/clang/include/llvm/ADT/Hashing.h
+++ b/linux-x64/clang/include/llvm/ADT/Hashing.h
@@ -57,7 +57,7 @@
 
 namespace llvm {
 
-/// \brief An opaque object representing a hash code.
+/// An opaque object representing a hash code.
 ///
 /// This object represents the result of hashing some entity. It is intended to
 /// be used to implement hashtables or other hashing-based data structures.
@@ -73,14 +73,14 @@
   size_t value;
 
 public:
-  /// \brief Default construct a hash_code.
+  /// Default construct a hash_code.
   /// Note that this leaves the value uninitialized.
   hash_code() = default;
 
-  /// \brief Form a hash code directly from a numerical value.
+  /// Form a hash code directly from a numerical value.
   hash_code(size_t value) : value(value) {}
 
-  /// \brief Convert the hash code to its numerical value for use.
+  /// Convert the hash code to its numerical value for use.
   /*explicit*/ operator size_t() const { return value; }
 
   friend bool operator==(const hash_code &lhs, const hash_code &rhs) {
@@ -90,11 +90,11 @@
     return lhs.value != rhs.value;
   }
 
-  /// \brief Allow a hash_code to be directly run through hash_value.
+  /// Allow a hash_code to be directly run through hash_value.
   friend size_t hash_value(const hash_code &code) { return code.value; }
 };
 
-/// \brief Compute a hash_code for any integer value.
+/// Compute a hash_code for any integer value.
 ///
 /// Note that this function is intended to compute the same hash_code for
 /// a particular value without regard to the pre-promotion type. This is in
@@ -105,21 +105,21 @@
 typename std::enable_if<is_integral_or_enum<T>::value, hash_code>::type
 hash_value(T value);
 
-/// \brief Compute a hash_code for a pointer's address.
+/// Compute a hash_code for a pointer's address.
 ///
 /// N.B.: This hashes the *address*. Not the value and not the type.
 template <typename T> hash_code hash_value(const T *ptr);
 
-/// \brief Compute a hash_code for a pair of objects.
+/// Compute a hash_code for a pair of objects.
 template <typename T, typename U>
 hash_code hash_value(const std::pair<T, U> &arg);
 
-/// \brief Compute a hash_code for a standard string.
+/// Compute a hash_code for a standard string.
 template <typename T>
 hash_code hash_value(const std::basic_string<T> &arg);
 
 
-/// \brief Override the execution seed with a fixed value.
+/// Override the execution seed with a fixed value.
 ///
 /// This hashing library uses a per-execution seed designed to change on each
 /// run with high probability in order to ensure that the hash codes are not
@@ -164,7 +164,7 @@
 static const uint64_t k2 = 0x9ae16a3b2f90404fULL;
 static const uint64_t k3 = 0xc949d7c7509e6557ULL;
 
-/// \brief Bitwise right rotate.
+/// Bitwise right rotate.
 /// Normally this will compile to a single instruction, especially if the
 /// shift is a manifest constant.
 inline uint64_t rotate(uint64_t val, size_t shift) {
@@ -254,13 +254,13 @@
   return k2 ^ seed;
 }
 
-/// \brief The intermediate state used during hashing.
+/// The intermediate state used during hashing.
 /// Currently, the algorithm for computing hash codes is based on CityHash and
 /// keeps 56 bytes of arbitrary state.
 struct hash_state {
   uint64_t h0, h1, h2, h3, h4, h5, h6;
 
-  /// \brief Create a new hash_state structure and initialize it based on the
+  /// Create a new hash_state structure and initialize it based on the
   /// seed and the first 64-byte chunk.
   /// This effectively performs the initial mix.
   static hash_state create(const char *s, uint64_t seed) {
@@ -272,7 +272,7 @@
     return state;
   }
 
-  /// \brief Mix 32-bytes from the input sequence into the 16-bytes of 'a'
+  /// Mix 32-bytes from the input sequence into the 16-bytes of 'a'
   /// and 'b', including whatever is already in 'a' and 'b'.
   static void mix_32_bytes(const char *s, uint64_t &a, uint64_t &b) {
     a += fetch64(s);
@@ -284,7 +284,7 @@
     a += c;
   }
 
-  /// \brief Mix in a 64-byte buffer of data.
+  /// Mix in a 64-byte buffer of data.
   /// We mix all 64 bytes even when the chunk length is smaller, but we
   /// record the actual length.
   void mix(const char *s) {
@@ -302,7 +302,7 @@
     std::swap(h2, h0);
   }
 
-  /// \brief Compute the final 64-bit hash code value based on the current
+  /// Compute the final 64-bit hash code value based on the current
   /// state and the length of bytes hashed.
   uint64_t finalize(size_t length) {
     return hash_16_bytes(hash_16_bytes(h3, h5) + shift_mix(h1) * k1 + h2,
@@ -311,7 +311,7 @@
 };
 
 
-/// \brief A global, fixed seed-override variable.
+/// A global, fixed seed-override variable.
 ///
 /// This variable can be set using the \see llvm::set_fixed_execution_seed
 /// function. See that function for details. Do not, under any circumstances,
@@ -332,7 +332,7 @@
 }
 
 
-/// \brief Trait to indicate whether a type's bits can be hashed directly.
+/// Trait to indicate whether a type's bits can be hashed directly.
 ///
 /// A type trait which is true if we want to combine values for hashing by
 /// reading the underlying data. It is false if values of this type must
@@ -359,14 +359,14 @@
                                   (sizeof(T) + sizeof(U)) ==
                                    sizeof(std::pair<T, U>))> {};
 
-/// \brief Helper to get the hashable data representation for a type.
+/// Helper to get the hashable data representation for a type.
 /// This variant is enabled when the type itself can be used.
 template <typename T>
 typename std::enable_if<is_hashable_data<T>::value, T>::type
 get_hashable_data(const T &value) {
   return value;
 }
-/// \brief Helper to get the hashable data representation for a type.
+/// Helper to get the hashable data representation for a type.
 /// This variant is enabled when we must first call hash_value and use the
 /// result as our data.
 template <typename T>
@@ -376,7 +376,7 @@
   return hash_value(value);
 }
 
-/// \brief Helper to store data from a value into a buffer and advance the
+/// Helper to store data from a value into a buffer and advance the
 /// pointer into that buffer.
 ///
 /// This routine first checks whether there is enough space in the provided
@@ -395,7 +395,7 @@
   return true;
 }
 
-/// \brief Implement the combining of integral values into a hash_code.
+/// Implement the combining of integral values into a hash_code.
 ///
 /// This overload is selected when the value type of the iterator is
 /// integral. Rather than computing a hash_code for each object and then
@@ -435,7 +435,7 @@
   return state.finalize(length);
 }
 
-/// \brief Implement the combining of integral values into a hash_code.
+/// Implement the combining of integral values into a hash_code.
 ///
 /// This overload is selected when the value type of the iterator is integral
 /// and when the input iterator is actually a pointer. Rather than computing
@@ -470,7 +470,7 @@
 } // namespace hashing
 
 
-/// \brief Compute a hash_code for a sequence of values.
+/// Compute a hash_code for a sequence of values.
 ///
 /// This hashes a sequence of values. It produces the same hash_code as
 /// 'hash_combine(a, b, c, ...)', but can run over arbitrary sized sequences
@@ -486,7 +486,7 @@
 namespace hashing {
 namespace detail {
 
-/// \brief Helper class to manage the recursive combining of hash_combine
+/// Helper class to manage the recursive combining of hash_combine
 /// arguments.
 ///
 /// This class exists to manage the state and various calls involved in the
@@ -499,14 +499,14 @@
   const size_t seed;
 
 public:
-  /// \brief Construct a recursive hash combining helper.
+  /// Construct a recursive hash combining helper.
   ///
   /// This sets up the state for a recursive hash combine, including getting
   /// the seed and buffer setup.
   hash_combine_recursive_helper()
     : seed(get_execution_seed()) {}
 
-  /// \brief Combine one chunk of data into the current in-flight hash.
+  /// Combine one chunk of data into the current in-flight hash.
   ///
   /// This merges one chunk of data into the hash. First it tries to buffer
   /// the data. If the buffer is full, it hashes the buffer into its
@@ -547,7 +547,7 @@
     return buffer_ptr;
   }
 
-  /// \brief Recursive, variadic combining method.
+  /// Recursive, variadic combining method.
   ///
   /// This function recurses through each argument, combining that argument
   /// into a single hash.
@@ -560,7 +560,7 @@
     return combine(length, buffer_ptr, buffer_end, args...);
   }
 
-  /// \brief Base case for recursive, variadic combining.
+  /// Base case for recursive, variadic combining.
   ///
   /// The base case when combining arguments recursively is reached when all
   /// arguments have been handled. It flushes the remaining buffer and
@@ -588,7 +588,7 @@
 } // namespace detail
 } // namespace hashing
 
-/// \brief Combine values into a single hash_code.
+/// Combine values into a single hash_code.
 ///
 /// This routine accepts a varying number of arguments of any type. It will
 /// attempt to combine them into a single hash_code. For user-defined types it
@@ -610,7 +610,7 @@
 namespace hashing {
 namespace detail {
 
-/// \brief Helper to hash the value of a single integer.
+/// Helper to hash the value of a single integer.
 ///
 /// Overloads for smaller integer types are not provided to ensure consistent
 /// behavior in the presence of integral promotions. Essentially,
diff --git a/linux-x64/clang/include/llvm/ADT/ImmutableList.h b/linux-x64/clang/include/llvm/ADT/ImmutableList.h
index 60d63e0..1f5e981 100644
--- a/linux-x64/clang/include/llvm/ADT/ImmutableList.h
+++ b/linux-x64/clang/include/llvm/ADT/ImmutableList.h
@@ -166,7 +166,7 @@
     if (ownsAllocator()) delete &getAllocator();
   }
 
-  ImmutableList<T> concat(const T& Head, ImmutableList<T> Tail) {
+  LLVM_NODISCARD ImmutableList<T> concat(const T &Head, ImmutableList<T> Tail) {
     // Profile the new list to see if it already exists in our cache.
     FoldingSetNodeID ID;
     void* InsertPos;
@@ -188,7 +188,7 @@
     return L;
   }
 
-  ImmutableList<T> add(const T& D, ImmutableList<T> L) {
+  LLVM_NODISCARD ImmutableList<T> add(const T& D, ImmutableList<T> L) {
     return concat(D, L);
   }
 
diff --git a/linux-x64/clang/include/llvm/ADT/ImmutableMap.h b/linux-x64/clang/include/llvm/ADT/ImmutableMap.h
index 10d1e1f..cbc27ff 100644
--- a/linux-x64/clang/include/llvm/ADT/ImmutableMap.h
+++ b/linux-x64/clang/include/llvm/ADT/ImmutableMap.h
@@ -114,12 +114,13 @@
 
     ImmutableMap getEmptyMap() { return ImmutableMap(F.getEmptyTree()); }
 
-    ImmutableMap add(ImmutableMap Old, key_type_ref K, data_type_ref D) {
+    LLVM_NODISCARD ImmutableMap add(ImmutableMap Old, key_type_ref K,
+                                    data_type_ref D) {
       TreeTy *T = F.add(Old.Root, std::pair<key_type,data_type>(K,D));
       return ImmutableMap(Canonicalize ? F.getCanonicalTree(T): T);
     }
 
-    ImmutableMap remove(ImmutableMap Old, key_type_ref K) {
+    LLVM_NODISCARD ImmutableMap remove(ImmutableMap Old, key_type_ref K) {
       TreeTy *T = F.remove(Old.Root,K);
       return ImmutableMap(Canonicalize ? F.getCanonicalTree(T): T);
     }
diff --git a/linux-x64/clang/include/llvm/ADT/ImmutableSet.h b/linux-x64/clang/include/llvm/ADT/ImmutableSet.h
index 9d580c5..b1d5f4a 100644
--- a/linux-x64/clang/include/llvm/ADT/ImmutableSet.h
+++ b/linux-x64/clang/include/llvm/ADT/ImmutableSet.h
@@ -1017,7 +1017,7 @@
     ///  of this operation is logarithmic in the size of the original set.
     ///  The memory allocated to represent the set is released when the
     ///  factory object that created the set is destroyed.
-    ImmutableSet add(ImmutableSet Old, value_type_ref V) {
+    LLVM_NODISCARD ImmutableSet add(ImmutableSet Old, value_type_ref V) {
       TreeTy *NewT = F.add(Old.Root, V);
       return ImmutableSet(Canonicalize ? F.getCanonicalTree(NewT) : NewT);
     }
@@ -1029,7 +1029,7 @@
     ///  of this operation is logarithmic in the size of the original set.
     ///  The memory allocated to represent the set is released when the
     ///  factory object that created the set is destroyed.
-    ImmutableSet remove(ImmutableSet Old, value_type_ref V) {
+    LLVM_NODISCARD ImmutableSet remove(ImmutableSet Old, value_type_ref V) {
       TreeTy *NewT = F.remove(Old.Root, V);
       return ImmutableSet(Canonicalize ? F.getCanonicalTree(NewT) : NewT);
     }
diff --git a/linux-x64/clang/include/llvm/ADT/MapVector.h b/linux-x64/clang/include/llvm/ADT/MapVector.h
index f69f8fd..47b4987 100644
--- a/linux-x64/clang/include/llvm/ADT/MapVector.h
+++ b/linux-x64/clang/include/llvm/ADT/MapVector.h
@@ -39,6 +39,10 @@
   MapType Map;
   VectorType Vector;
 
+  static_assert(
+      std::is_integral<typename MapType::mapped_type>::value,
+      "The mapped_type of the specified Map must be an integral type");
+
 public:
   using value_type = typename VectorType::value_type;
   using size_type = typename VectorType::size_type;
@@ -93,9 +97,9 @@
   }
 
   ValueT &operator[](const KeyT &Key) {
-    std::pair<KeyT, unsigned> Pair = std::make_pair(Key, 0);
+    std::pair<KeyT, typename MapType::mapped_type> Pair = std::make_pair(Key, 0);
     std::pair<typename MapType::iterator, bool> Result = Map.insert(Pair);
-    unsigned &I = Result.first->second;
+    auto &I = Result.first->second;
     if (Result.second) {
       Vector.push_back(std::make_pair(Key, ValueT()));
       I = Vector.size() - 1;
@@ -112,9 +116,9 @@
   }
 
   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
-    std::pair<KeyT, unsigned> Pair = std::make_pair(KV.first, 0);
+    std::pair<KeyT, typename MapType::mapped_type> Pair = std::make_pair(KV.first, 0);
     std::pair<typename MapType::iterator, bool> Result = Map.insert(Pair);
-    unsigned &I = Result.first->second;
+    auto &I = Result.first->second;
     if (Result.second) {
       Vector.push_back(std::make_pair(KV.first, KV.second));
       I = Vector.size() - 1;
@@ -125,9 +129,9 @@
 
   std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
     // Copy KV.first into the map, then move it into the vector.
-    std::pair<KeyT, unsigned> Pair = std::make_pair(KV.first, 0);
+    std::pair<KeyT, typename MapType::mapped_type> Pair = std::make_pair(KV.first, 0);
     std::pair<typename MapType::iterator, bool> Result = Map.insert(Pair);
-    unsigned &I = Result.first->second;
+    auto &I = Result.first->second;
     if (Result.second) {
       Vector.push_back(std::move(KV));
       I = Vector.size() - 1;
@@ -153,14 +157,14 @@
                             (Vector.begin() + Pos->second);
   }
 
-  /// \brief Remove the last element from the vector.
+  /// Remove the last element from the vector.
   void pop_back() {
     typename MapType::iterator Pos = Map.find(Vector.back().first);
     Map.erase(Pos);
     Vector.pop_back();
   }
 
-  /// \brief Remove the element given by Iterator.
+  /// Remove the element given by Iterator.
   ///
   /// Returns an iterator to the element following the one which was removed,
   /// which may be end().
@@ -183,7 +187,7 @@
     return Next;
   }
 
-  /// \brief Remove all elements with the key value Key.
+  /// Remove all elements with the key value Key.
   ///
   /// Returns the number of elements removed.
   size_type erase(const KeyT &Key) {
@@ -194,7 +198,7 @@
     return 1;
   }
 
-  /// \brief Remove the elements that match the predicate.
+  /// Remove the elements that match the predicate.
   ///
   /// Erase all elements that match \c Pred in a single pass.  Takes linear
   /// time.
@@ -223,7 +227,7 @@
   Vector.erase(O, Vector.end());
 }
 
-/// \brief A MapVector that performs no allocations if smaller than a certain
+/// A MapVector that performs no allocations if smaller than a certain
 /// size.
 template <typename KeyT, typename ValueT, unsigned N>
 struct SmallMapVector
diff --git a/linux-x64/clang/include/llvm/ADT/None.h b/linux-x64/clang/include/llvm/ADT/None.h
index c7a99c6..4b6bc1e 100644
--- a/linux-x64/clang/include/llvm/ADT/None.h
+++ b/linux-x64/clang/include/llvm/ADT/None.h
@@ -17,7 +17,7 @@
 #define LLVM_ADT_NONE_H
 
 namespace llvm {
-/// \brief A simple null object to allow implicit construction of Optional<T>
+/// A simple null object to allow implicit construction of Optional<T>
 /// and similar types without having to spell out the specialization's name.
 // (constant value 1 in an attempt to workaround MSVC build issue... )
 enum class NoneType { None = 1 };
diff --git a/linux-x64/clang/include/llvm/ADT/PackedVector.h b/linux-x64/clang/include/llvm/ADT/PackedVector.h
index 95adc29..3d53c49 100644
--- a/linux-x64/clang/include/llvm/ADT/PackedVector.h
+++ b/linux-x64/clang/include/llvm/ADT/PackedVector.h
@@ -65,7 +65,7 @@
   }
 };
 
-/// \brief Store a vector of values using a specific number of bits for each
+/// Store a vector of values using a specific number of bits for each
 /// value. Both signed and unsigned types can be used, e.g
 /// @code
 ///   PackedVector<signed, 2> vec;
diff --git a/linux-x64/clang/include/llvm/ADT/SCCIterator.h b/linux-x64/clang/include/llvm/ADT/SCCIterator.h
index 784a58d..ab1dc46 100644
--- a/linux-x64/clang/include/llvm/ADT/SCCIterator.h
+++ b/linux-x64/clang/include/llvm/ADT/SCCIterator.h
@@ -33,7 +33,7 @@
 
 namespace llvm {
 
-/// \brief Enumerate the SCCs of a directed graph in reverse topological order
+/// Enumerate the SCCs of a directed graph in reverse topological order
 /// of the SCC DAG.
 ///
 /// This is implemented using Tarjan's DFS algorithm using an internal stack to
@@ -104,7 +104,7 @@
   }
   static scc_iterator end(const GraphT &) { return scc_iterator(); }
 
-  /// \brief Direct loop termination test which is more efficient than
+  /// Direct loop termination test which is more efficient than
   /// comparison with \c end().
   bool isAtEnd() const {
     assert(!CurrentSCC.empty() || VisitStack.empty());
@@ -125,7 +125,7 @@
     return CurrentSCC;
   }
 
-  /// \brief Test if the current SCC has a loop.
+  /// Test if the current SCC has a loop.
   ///
   /// If the SCC has more than one node, this is trivially true.  If not, it may
   /// still contain a loop if the node has an edge back to itself.
@@ -222,12 +222,12 @@
     return false;
   }
 
-/// \brief Construct the begin iterator for a deduced graph type T.
+/// Construct the begin iterator for a deduced graph type T.
 template <class T> scc_iterator<T> scc_begin(const T &G) {
   return scc_iterator<T>::begin(G);
 }
 
-/// \brief Construct the end iterator for a deduced graph type T.
+/// Construct the end iterator for a deduced graph type T.
 template <class T> scc_iterator<T> scc_end(const T &G) {
   return scc_iterator<T>::end(G);
 }
diff --git a/linux-x64/clang/include/llvm/ADT/STLExtras.h b/linux-x64/clang/include/llvm/ADT/STLExtras.h
index 051b900..03109a0 100644
--- a/linux-x64/clang/include/llvm/ADT/STLExtras.h
+++ b/linux-x64/clang/include/llvm/ADT/STLExtras.h
@@ -21,6 +21,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/iterator.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Config/abi-breaking.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <algorithm>
 #include <cassert>
@@ -58,6 +59,19 @@
 } // end namespace detail
 
 //===----------------------------------------------------------------------===//
+//     Extra additions to <type_traits>
+//===----------------------------------------------------------------------===//
+
+template <typename T>
+struct negation : std::integral_constant<bool, !bool(T::value)> {};
+
+template <typename...> struct conjunction : std::true_type {};
+template <typename B1> struct conjunction<B1> : B1 {};
+template <typename B1, typename... Bn>
+struct conjunction<B1, Bn...>
+    : std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
+
+//===----------------------------------------------------------------------===//
 //     Extra additions to <functional>
 //===----------------------------------------------------------------------===//
 
@@ -271,60 +285,121 @@
 ///   auto R = make_filter_range(A, [](int N) { return N % 2 == 1; });
 ///   // R contains { 1, 3 }.
 /// \endcode
-template <typename WrappedIteratorT, typename PredicateT>
-class filter_iterator
+///
+/// Note: filter_iterator_base implements support for forward iteration.
+/// filter_iterator_impl exists to provide support for bidirectional iteration,
+/// conditional on whether the wrapped iterator supports it.
+template <typename WrappedIteratorT, typename PredicateT, typename IterTag>
+class filter_iterator_base
     : public iterator_adaptor_base<
-          filter_iterator<WrappedIteratorT, PredicateT>, WrappedIteratorT,
+          filter_iterator_base<WrappedIteratorT, PredicateT, IterTag>,
+          WrappedIteratorT,
           typename std::common_type<
-              std::forward_iterator_tag,
-              typename std::iterator_traits<
-                  WrappedIteratorT>::iterator_category>::type> {
+              IterTag, typename std::iterator_traits<
+                           WrappedIteratorT>::iterator_category>::type> {
   using BaseT = iterator_adaptor_base<
-      filter_iterator<WrappedIteratorT, PredicateT>, WrappedIteratorT,
+      filter_iterator_base<WrappedIteratorT, PredicateT, IterTag>,
+      WrappedIteratorT,
       typename std::common_type<
-          std::forward_iterator_tag,
-          typename std::iterator_traits<WrappedIteratorT>::iterator_category>::
-          type>;
+          IterTag, typename std::iterator_traits<
+                       WrappedIteratorT>::iterator_category>::type>;
 
-  struct PayloadType {
-    WrappedIteratorT End;
-    PredicateT Pred;
-  };
-
-  Optional<PayloadType> Payload;
+protected:
+  WrappedIteratorT End;
+  PredicateT Pred;
 
   void findNextValid() {
-    assert(Payload && "Payload should be engaged when findNextValid is called");
-    while (this->I != Payload->End && !Payload->Pred(*this->I))
+    while (this->I != End && !Pred(*this->I))
       BaseT::operator++();
   }
 
-  // Construct the begin iterator. The begin iterator requires to know where end
-  // is, so that it can properly stop when it hits end.
-  filter_iterator(WrappedIteratorT Begin, WrappedIteratorT End, PredicateT Pred)
-      : BaseT(std::move(Begin)),
-        Payload(PayloadType{std::move(End), std::move(Pred)}) {
+  // Construct the iterator. The begin iterator needs to know where the end
+  // is, so that it can properly stop when it gets there. The end iterator only
+  // needs the predicate to support bidirectional iteration.
+  filter_iterator_base(WrappedIteratorT Begin, WrappedIteratorT End,
+                       PredicateT Pred)
+      : BaseT(Begin), End(End), Pred(Pred) {
     findNextValid();
   }
 
-  // Construct the end iterator. It's not incrementable, so Payload doesn't
-  // have to be engaged.
-  filter_iterator(WrappedIteratorT End) : BaseT(End) {}
-
 public:
   using BaseT::operator++;
 
-  filter_iterator &operator++() {
+  filter_iterator_base &operator++() {
     BaseT::operator++();
     findNextValid();
     return *this;
   }
-
-  template <typename RT, typename PT>
-  friend iterator_range<filter_iterator<detail::IterOfRange<RT>, PT>>
-  make_filter_range(RT &&, PT);
 };
 
+/// Specialization of filter_iterator_base for forward iteration only.
+template <typename WrappedIteratorT, typename PredicateT,
+          typename IterTag = std::forward_iterator_tag>
+class filter_iterator_impl
+    : public filter_iterator_base<WrappedIteratorT, PredicateT, IterTag> {
+  using BaseT = filter_iterator_base<WrappedIteratorT, PredicateT, IterTag>;
+
+public:
+  filter_iterator_impl(WrappedIteratorT Begin, WrappedIteratorT End,
+                       PredicateT Pred)
+      : BaseT(Begin, End, Pred) {}
+};
+
+/// Specialization of filter_iterator_base for bidirectional iteration.
+template <typename WrappedIteratorT, typename PredicateT>
+class filter_iterator_impl<WrappedIteratorT, PredicateT,
+                           std::bidirectional_iterator_tag>
+    : public filter_iterator_base<WrappedIteratorT, PredicateT,
+                                  std::bidirectional_iterator_tag> {
+  using BaseT = filter_iterator_base<WrappedIteratorT, PredicateT,
+                                     std::bidirectional_iterator_tag>;
+  void findPrevValid() {
+    while (!this->Pred(*this->I))
+      BaseT::operator--();
+  }
+
+public:
+  using BaseT::operator--;
+
+  filter_iterator_impl(WrappedIteratorT Begin, WrappedIteratorT End,
+                       PredicateT Pred)
+      : BaseT(Begin, End, Pred) {}
+
+  filter_iterator_impl &operator--() {
+    BaseT::operator--();
+    findPrevValid();
+    return *this;
+  }
+};
+
+namespace detail {
+
+template <bool is_bidirectional> struct fwd_or_bidi_tag_impl {
+  using type = std::forward_iterator_tag;
+};
+
+template <> struct fwd_or_bidi_tag_impl<true> {
+  using type = std::bidirectional_iterator_tag;
+};
+
+/// Helper which sets its type member to forward_iterator_tag if the category
+/// of \p IterT does not derive from bidirectional_iterator_tag, and to
+/// bidirectional_iterator_tag otherwise.
+template <typename IterT> struct fwd_or_bidi_tag {
+  using type = typename fwd_or_bidi_tag_impl<std::is_base_of<
+      std::bidirectional_iterator_tag,
+      typename std::iterator_traits<IterT>::iterator_category>::value>::type;
+};
+
+} // namespace detail
+
+/// Defines filter_iterator to a suitable specialization of
+/// filter_iterator_impl, based on the underlying iterator's category.
+template <typename WrappedIteratorT, typename PredicateT>
+using filter_iterator = filter_iterator_impl<
+    WrappedIteratorT, PredicateT,
+    typename detail::fwd_or_bidi_tag<WrappedIteratorT>::type>;
+
 /// Convenience function that takes a range of elements and a predicate,
 /// and return a new filter_iterator range.
 ///
@@ -337,10 +412,94 @@
 make_filter_range(RangeT &&Range, PredicateT Pred) {
   using FilterIteratorT =
       filter_iterator<detail::IterOfRange<RangeT>, PredicateT>;
-  return make_range(FilterIteratorT(std::begin(std::forward<RangeT>(Range)),
-                                    std::end(std::forward<RangeT>(Range)),
-                                    std::move(Pred)),
-                    FilterIteratorT(std::end(std::forward<RangeT>(Range))));
+  return make_range(
+      FilterIteratorT(std::begin(std::forward<RangeT>(Range)),
+                      std::end(std::forward<RangeT>(Range)), Pred),
+      FilterIteratorT(std::end(std::forward<RangeT>(Range)),
+                      std::end(std::forward<RangeT>(Range)), Pred));
+}
+
+/// A pseudo-iterator adaptor that is designed to implement "early increment"
+/// style loops.
+///
+/// This is *not a normal iterator* and should almost never be used directly. It
+/// is intended primarily to be used with range based for loops and some range
+/// algorithms.
+///
+/// The iterator isn't quite an `OutputIterator` or an `InputIterator` but
+/// somewhere between them. The constraints of these iterators are:
+///
+/// - On construction or after being incremented, it is comparable and
+///   dereferencable. It is *not* incrementable.
+/// - After being dereferenced, it is neither comparable nor dereferencable, it
+///   is only incrementable.
+///
+/// This means you can only dereference the iterator once, and you can only
+/// increment it once between dereferences.
+template <typename WrappedIteratorT>
+class early_inc_iterator_impl
+    : public iterator_adaptor_base<early_inc_iterator_impl<WrappedIteratorT>,
+                                   WrappedIteratorT, std::input_iterator_tag> {
+  using BaseT =
+      iterator_adaptor_base<early_inc_iterator_impl<WrappedIteratorT>,
+                            WrappedIteratorT, std::input_iterator_tag>;
+
+  using PointerT = typename std::iterator_traits<WrappedIteratorT>::pointer;
+
+protected:
+#if LLVM_ENABLE_ABI_BREAKING_CHECKS
+  bool IsEarlyIncremented = false;
+#endif
+
+public:
+  early_inc_iterator_impl(WrappedIteratorT I) : BaseT(I) {}
+
+  using BaseT::operator*;
+  typename BaseT::reference operator*() {
+#if LLVM_ENABLE_ABI_BREAKING_CHECKS
+    assert(!IsEarlyIncremented && "Cannot dereference twice!");
+    IsEarlyIncremented = true;
+#endif
+    return *(this->I)++;
+  }
+
+  using BaseT::operator++;
+  early_inc_iterator_impl &operator++() {
+#if LLVM_ENABLE_ABI_BREAKING_CHECKS
+    assert(IsEarlyIncremented && "Cannot increment before dereferencing!");
+    IsEarlyIncremented = false;
+#endif
+    return *this;
+  }
+
+  using BaseT::operator==;
+  bool operator==(const early_inc_iterator_impl &RHS) const {
+#if LLVM_ENABLE_ABI_BREAKING_CHECKS
+    assert(!IsEarlyIncremented && "Cannot compare after dereferencing!");
+#endif
+    return BaseT::operator==(RHS);
+  }
+};
+
+/// Make a range that does early increment to allow mutation of the underlying
+/// range without disrupting iteration.
+///
+/// The underlying iterator will be incremented immediately after it is
+/// dereferenced, allowing deletion of the current node or insertion of nodes to
+/// not disrupt iteration provided they do not invalidate the *next* iterator --
+/// the current iterator can be invalidated.
+///
+/// This requires a very exact pattern of use that is only really suitable to
+/// range based for loops and other range algorithms that explicitly guarantee
+/// to dereference exactly once each element, and to increment exactly once each
+/// element.
+template <typename RangeT>
+iterator_range<early_inc_iterator_impl<detail::IterOfRange<RangeT>>>
+make_early_inc_range(RangeT &&Range) {
+  using EarlyIncIteratorT =
+      early_inc_iterator_impl<detail::IterOfRange<RangeT>>;
+  return make_range(EarlyIncIteratorT(std::begin(std::forward<RangeT>(Range))),
+                    EarlyIncIteratorT(std::end(std::forward<RangeT>(Range))));
 }
 
 // forward declarations required by zip_shortest/zip_first
@@ -649,7 +808,7 @@
 //     Extra additions to <utility>
 //===----------------------------------------------------------------------===//
 
-/// \brief Function object to check whether the first component of a std::pair
+/// Function object to check whether the first component of a std::pair
 /// compares less than the first component of another std::pair.
 struct less_first {
   template <typename T> bool operator()(const T &lhs, const T &rhs) const {
@@ -657,7 +816,7 @@
   }
 };
 
-/// \brief Function object to check whether the second component of a std::pair
+/// Function object to check whether the second component of a std::pair
 /// compares less than the second component of another std::pair.
 struct less_second {
   template <typename T> bool operator()(const T &lhs, const T &rhs) const {
@@ -665,16 +824,29 @@
   }
 };
 
+/// \brief Function object to apply a binary function to the first component of
+/// a std::pair.
+template<typename FuncTy>
+struct on_first {
+  FuncTy func;
+
+  template <typename T>
+  auto operator()(const T &lhs, const T &rhs) const
+      -> decltype(func(lhs.first, rhs.first)) {
+    return func(lhs.first, rhs.first);
+  }
+};
+
 // A subset of N3658. More stuff can be added as-needed.
 
-/// \brief Represents a compile-time sequence of integers.
+/// Represents a compile-time sequence of integers.
 template <class T, T... I> struct integer_sequence {
   using value_type = T;
 
   static constexpr size_t size() { return sizeof...(I); }
 };
 
-/// \brief Alias for the common case of a sequence of size_ts.
+/// Alias for the common case of a sequence of size_ts.
 template <size_t... I>
 struct index_sequence : integer_sequence<std::size_t, I...> {};
 
@@ -683,7 +855,7 @@
 template <std::size_t... I>
 struct build_index_impl<0, I...> : index_sequence<I...> {};
 
-/// \brief Creates a compile-time integer sequence for a parameter pack.
+/// Creates a compile-time integer sequence for a parameter pack.
 template <class... Ts>
 struct index_sequence_for : build_index_impl<sizeof...(Ts)> {};
 
@@ -692,7 +864,7 @@
 template <int N> struct rank : rank<N - 1> {};
 template <> struct rank<0> {};
 
-/// \brief traits class for checking whether type T is one of any of the given
+/// traits class for checking whether type T is one of any of the given
 /// types in the variadic list.
 template <typename T, typename... Ts> struct is_one_of {
   static const bool value = false;
@@ -704,7 +876,7 @@
       std::is_same<T, U>::value || is_one_of<T, Ts...>::value;
 };
 
-/// \brief traits class for checking whether type T is a base class for all
+/// traits class for checking whether type T is a base class for all
 ///  the given types in the variadic list.
 template <typename T, typename... Ts> struct are_base_of {
   static const bool value = true;
@@ -943,7 +1115,7 @@
   return std::lower_bound(adl_begin(Range), adl_end(Range), I);
 }
 
-/// \brief Given a range of type R, iterate the entire range and return a
+/// Given a range of type R, iterate the entire range and return a
 /// SmallVector with elements of the vector.  This is useful, for example,
 /// when you want to iterate a range and then sort the results.
 template <unsigned Size, typename R>
@@ -964,13 +1136,25 @@
   C.erase(remove_if(C, P), C.end());
 }
 
+/// Get the size of a range. This is a wrapper function around std::distance
+/// which is only enabled when the operation is O(1).
+template <typename R>
+auto size(R &&Range, typename std::enable_if<
+                         std::is_same<typename std::iterator_traits<decltype(
+                                          Range.begin())>::iterator_category,
+                                      std::random_access_iterator_tag>::value,
+                         void>::type * = nullptr)
+    -> decltype(std::distance(Range.begin(), Range.end())) {
+  return std::distance(Range.begin(), Range.end());
+}
+
 //===----------------------------------------------------------------------===//
 //     Extra additions to <memory>
 //===----------------------------------------------------------------------===//
 
 // Implement make_unique according to N3656.
 
-/// \brief Constructs a `new T()` with the given args and returns a
+/// Constructs a `new T()` with the given args and returns a
 ///        `unique_ptr<T>` which owns the object.
 ///
 /// Example:
@@ -983,7 +1167,7 @@
   return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
 }
 
-/// \brief Constructs a `new T[n]` with the given args and returns a
+/// Constructs a `new T[n]` with the given args and returns a
 ///        `unique_ptr<T[]>` which owns the object.
 ///
 /// \param n size of the new array.
diff --git a/linux-x64/clang/include/llvm/ADT/SetVector.h b/linux-x64/clang/include/llvm/ADT/SetVector.h
index 04ed52f..3d67810 100644
--- a/linux-x64/clang/include/llvm/ADT/SetVector.h
+++ b/linux-x64/clang/include/llvm/ADT/SetVector.h
@@ -31,7 +31,7 @@
 
 namespace llvm {
 
-/// \brief A vector that has set insertion semantics.
+/// A vector that has set insertion semantics.
 ///
 /// This adapter class provides a way to keep a set of things that also has the
 /// property of a deterministic iteration order. The order of iteration is the
@@ -52,10 +52,10 @@
   using const_reverse_iterator = typename vector_type::const_reverse_iterator;
   using size_type = typename vector_type::size_type;
 
-  /// \brief Construct an empty SetVector
+  /// Construct an empty SetVector
   SetVector() = default;
 
-  /// \brief Initialize a SetVector with a range of elements
+  /// Initialize a SetVector with a range of elements
   template<typename It>
   SetVector(It Start, It End) {
     insert(Start, End);
@@ -69,75 +69,75 @@
     return std::move(vector_);
   }
 
-  /// \brief Determine if the SetVector is empty or not.
+  /// Determine if the SetVector is empty or not.
   bool empty() const {
     return vector_.empty();
   }
 
-  /// \brief Determine the number of elements in the SetVector.
+  /// Determine the number of elements in the SetVector.
   size_type size() const {
     return vector_.size();
   }
 
-  /// \brief Get an iterator to the beginning of the SetVector.
+  /// Get an iterator to the beginning of the SetVector.
   iterator begin() {
     return vector_.begin();
   }
 
-  /// \brief Get a const_iterator to the beginning of the SetVector.
+  /// Get a const_iterator to the beginning of the SetVector.
   const_iterator begin() const {
     return vector_.begin();
   }
 
-  /// \brief Get an iterator to the end of the SetVector.
+  /// Get an iterator to the end of the SetVector.
   iterator end() {
     return vector_.end();
   }
 
-  /// \brief Get a const_iterator to the end of the SetVector.
+  /// Get a const_iterator to the end of the SetVector.
   const_iterator end() const {
     return vector_.end();
   }
 
-  /// \brief Get an reverse_iterator to the end of the SetVector.
+  /// Get an reverse_iterator to the end of the SetVector.
   reverse_iterator rbegin() {
     return vector_.rbegin();
   }
 
-  /// \brief Get a const_reverse_iterator to the end of the SetVector.
+  /// Get a const_reverse_iterator to the end of the SetVector.
   const_reverse_iterator rbegin() const {
     return vector_.rbegin();
   }
 
-  /// \brief Get a reverse_iterator to the beginning of the SetVector.
+  /// Get a reverse_iterator to the beginning of the SetVector.
   reverse_iterator rend() {
     return vector_.rend();
   }
 
-  /// \brief Get a const_reverse_iterator to the beginning of the SetVector.
+  /// Get a const_reverse_iterator to the beginning of the SetVector.
   const_reverse_iterator rend() const {
     return vector_.rend();
   }
 
-  /// \brief Return the first element of the SetVector.
+  /// Return the first element of the SetVector.
   const T &front() const {
     assert(!empty() && "Cannot call front() on empty SetVector!");
     return vector_.front();
   }
 
-  /// \brief Return the last element of the SetVector.
+  /// Return the last element of the SetVector.
   const T &back() const {
     assert(!empty() && "Cannot call back() on empty SetVector!");
     return vector_.back();
   }
 
-  /// \brief Index into the SetVector.
+  /// Index into the SetVector.
   const_reference operator[](size_type n) const {
     assert(n < vector_.size() && "SetVector access out of range!");
     return vector_[n];
   }
 
-  /// \brief Insert a new element into the SetVector.
+  /// Insert a new element into the SetVector.
   /// \returns true if the element was inserted into the SetVector.
   bool insert(const value_type &X) {
     bool result = set_.insert(X).second;
@@ -146,7 +146,7 @@
     return result;
   }
 
-  /// \brief Insert a range of elements into the SetVector.
+  /// Insert a range of elements into the SetVector.
   template<typename It>
   void insert(It Start, It End) {
     for (; Start != End; ++Start)
@@ -154,7 +154,7 @@
         vector_.push_back(*Start);
   }
 
-  /// \brief Remove an item from the set vector.
+  /// Remove an item from the set vector.
   bool remove(const value_type& X) {
     if (set_.erase(X)) {
       typename vector_type::iterator I = find(vector_, X);
@@ -183,7 +183,7 @@
     return vector_.erase(NI);
   }
 
-  /// \brief Remove items from the set vector based on a predicate function.
+  /// Remove items from the set vector based on a predicate function.
   ///
   /// This is intended to be equivalent to the following code, if we could
   /// write it:
@@ -206,19 +206,19 @@
     return true;
   }
 
-  /// \brief Count the number of elements of a given key in the SetVector.
+  /// Count the number of elements of a given key in the SetVector.
   /// \returns 0 if the element is not in the SetVector, 1 if it is.
   size_type count(const key_type &key) const {
     return set_.count(key);
   }
 
-  /// \brief Completely clear the SetVector
+  /// Completely clear the SetVector
   void clear() {
     set_.clear();
     vector_.clear();
   }
 
-  /// \brief Remove the last element of the SetVector.
+  /// Remove the last element of the SetVector.
   void pop_back() {
     assert(!empty() && "Cannot remove an element from an empty SetVector!");
     set_.erase(back());
@@ -239,7 +239,7 @@
     return vector_ != that.vector_;
   }
 
-  /// \brief Compute This := This u S, return whether 'This' changed.
+  /// Compute This := This u S, return whether 'This' changed.
   /// TODO: We should be able to use set_union from SetOperations.h, but
   ///       SetVector interface is inconsistent with DenseSet.
   template <class STy>
@@ -254,7 +254,7 @@
     return Changed;
   }
 
-  /// \brief Compute This := This - B
+  /// Compute This := This - B
   /// TODO: We should be able to use set_subtract from SetOperations.h, but
   ///       SetVector interface is inconsistent with DenseSet.
   template <class STy>
@@ -265,7 +265,7 @@
   }
 
 private:
-  /// \brief A wrapper predicate designed for use with std::remove_if.
+  /// A wrapper predicate designed for use with std::remove_if.
   ///
   /// This predicate wraps a predicate suitable for use with std::remove_if to
   /// call set_.erase(x) on each element which is slated for removal.
@@ -292,7 +292,7 @@
   vector_type vector_;   ///< The vector.
 };
 
-/// \brief A SetVector that performs no allocations if smaller than
+/// A SetVector that performs no allocations if smaller than
 /// a certain size.
 template <typename T, unsigned N>
 class SmallSetVector
@@ -300,7 +300,7 @@
 public:
   SmallSetVector() = default;
 
-  /// \brief Initialize a SmallSetVector with a range of elements
+  /// Initialize a SmallSetVector with a range of elements
   template<typename It>
   SmallSetVector(It Start, It End) {
     this->insert(Start, End);
diff --git a/linux-x64/clang/include/llvm/ADT/SmallPtrSet.h b/linux-x64/clang/include/llvm/ADT/SmallPtrSet.h
index 78ea613..db08e40 100644
--- a/linux-x64/clang/include/llvm/ADT/SmallPtrSet.h
+++ b/linux-x64/clang/include/llvm/ADT/SmallPtrSet.h
@@ -335,7 +335,7 @@
   enum { Val = RoundUpToPowerOfTwoH<N, (N&(N-1)) == 0>::Val };
 };
 
-/// \brief A templated base class for \c SmallPtrSet which provides the
+/// A templated base class for \c SmallPtrSet which provides the
 /// typesafe interface that is common across all small sizes.
 ///
 /// This is particularly useful for passing around between interface boundaries
diff --git a/linux-x64/clang/include/llvm/ADT/SmallSet.h b/linux-x64/clang/include/llvm/ADT/SmallSet.h
index d52d0f0..5d84627 100644
--- a/linux-x64/clang/include/llvm/ADT/SmallSet.h
+++ b/linux-x64/clang/include/llvm/ADT/SmallSet.h
@@ -17,21 +17,120 @@
 #include "llvm/ADT/None.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/iterator.h"
 #include "llvm/Support/Compiler.h"
+#include "llvm/Support/type_traits.h"
 #include <cstddef>
 #include <functional>
 #include <set>
+#include <type_traits>
 #include <utility>
 
 namespace llvm {
 
+/// SmallSetIterator - This class implements a const_iterator for SmallSet by
+/// delegating to the underlying SmallVector or Set iterators.
+template <typename T, unsigned N, typename C>
+class SmallSetIterator
+    : public iterator_facade_base<SmallSetIterator<T, N, C>,
+                                  std::forward_iterator_tag, T> {
+private:
+  using SetIterTy = typename std::set<T, C>::const_iterator;
+  using VecIterTy = typename SmallVector<T, N>::const_iterator;
+  using SelfTy = SmallSetIterator<T, N, C>;
+
+  /// Iterators to the parts of the SmallSet containing the data. They are set
+  /// depending on isSmall.
+  union {
+    SetIterTy SetIter;
+    VecIterTy VecIter;
+  };
+
+  bool isSmall;
+
+public:
+  SmallSetIterator(SetIterTy SetIter) : SetIter(SetIter), isSmall(false) {}
+
+  SmallSetIterator(VecIterTy VecIter) : VecIter(VecIter), isSmall(true) {}
+
+  // Spell out destructor, copy/move constructor and assignment operators for
+  // MSVC STL, where set<T>::const_iterator is not trivially copy constructible.
+  ~SmallSetIterator() {
+    if (isSmall)
+      VecIter.~VecIterTy();
+    else
+      SetIter.~SetIterTy();
+  }
+
+  SmallSetIterator(const SmallSetIterator &Other) : isSmall(Other.isSmall) {
+    if (isSmall)
+      VecIter = Other.VecIter;
+    else
+      // Use placement new, to make sure SetIter is properly constructed, even
+      // if it is not trivially copy-able (e.g. in MSVC).
+      new (&SetIter) SetIterTy(Other.SetIter);
+  }
+
+  SmallSetIterator(SmallSetIterator &&Other) : isSmall(Other.isSmall) {
+    if (isSmall)
+      VecIter = std::move(Other.VecIter);
+    else
+      // Use placement new, to make sure SetIter is properly constructed, even
+      // if it is not trivially copy-able (e.g. in MSVC).
+      new (&SetIter) SetIterTy(std::move(Other.SetIter));
+  }
+
+  SmallSetIterator& operator=(const SmallSetIterator& Other) {
+    // Call destructor for SetIter, so it gets properly destroyed if it is
+    // not trivially destructible in case we are setting VecIter.
+    if (!isSmall)
+      SetIter.~SetIterTy();
+
+    isSmall = Other.isSmall;
+    if (isSmall)
+      VecIter = Other.VecIter;
+    else
+      new (&SetIter) SetIterTy(Other.SetIter);
+    return *this;
+  }
+
+  SmallSetIterator& operator=(SmallSetIterator&& Other) {
+    // Call destructor for SetIter, so it gets properly destroyed if it is
+    // not trivially destructible in case we are setting VecIter.
+    if (!isSmall)
+      SetIter.~SetIterTy();
+
+    isSmall = Other.isSmall;
+    if (isSmall)
+      VecIter = std::move(Other.VecIter);
+    else
+      new (&SetIter) SetIterTy(std::move(Other.SetIter));
+    return *this;
+  }
+
+  bool operator==(const SmallSetIterator &RHS) const {
+    if (isSmall != RHS.isSmall)
+      return false;
+    if (isSmall)
+      return VecIter == RHS.VecIter;
+    return SetIter == RHS.SetIter;
+  }
+
+  SmallSetIterator &operator++() { // Preincrement
+    if (isSmall)
+      VecIter++;
+    else
+      SetIter++;
+    return *this;
+  }
+
+  const T &operator*() const { return isSmall ? *VecIter : *SetIter; }
+};
+
 /// SmallSet - This maintains a set of unique values, optimizing for the case
 /// when the set is small (less than N).  In this case, the set can be
 /// maintained with no mallocs.  If the set gets large, we expand to using an
 /// std::set to maintain reasonable lookup times.
-///
-/// Note that this set does not provide a way to iterate over members in the
-/// set.
 template <typename T, unsigned N, typename C = std::less<T>>
 class SmallSet {
   /// Use a SmallVector to hold the elements here (even though it will never
@@ -50,6 +149,7 @@
 
 public:
   using size_type = size_t;
+  using const_iterator = SmallSetIterator<T, N, C>;
 
   SmallSet() = default;
 
@@ -121,6 +221,18 @@
     Set.clear();
   }
 
+  const_iterator begin() const {
+    if (isSmall())
+      return {Vector.begin()};
+    return {Set.begin()};
+  }
+
+  const_iterator end() const {
+    if (isSmall())
+      return {Vector.end()};
+    return {Set.end()};
+  }
+
 private:
   bool isSmall() const { return Set.empty(); }
 
diff --git a/linux-x64/clang/include/llvm/ADT/SmallVector.h b/linux-x64/clang/include/llvm/ADT/SmallVector.h
index 3d17e70..e4ddd12 100644
--- a/linux-x64/clang/include/llvm/ADT/SmallVector.h
+++ b/linux-x64/clang/include/llvm/ADT/SmallVector.h
@@ -18,6 +18,7 @@
 #include "llvm/Support/AlignOf.h"
 #include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
+#include "llvm/Support/MemAlloc.h"
 #include "llvm/Support/type_traits.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <algorithm>
@@ -37,28 +38,42 @@
 /// This is all the non-templated stuff common to all SmallVectors.
 class SmallVectorBase {
 protected:
-  void *BeginX, *EndX, *CapacityX;
+  void *BeginX;
+  unsigned Size = 0, Capacity;
 
-protected:
-  SmallVectorBase(void *FirstEl, size_t Size)
-    : BeginX(FirstEl), EndX(FirstEl), CapacityX((char*)FirstEl+Size) {}
+  SmallVectorBase() = delete;
+  SmallVectorBase(void *FirstEl, size_t Capacity)
+      : BeginX(FirstEl), Capacity(Capacity) {}
 
   /// This is an implementation of the grow() method which only works
   /// on POD-like data types and is out of line to reduce code duplication.
-  void grow_pod(void *FirstEl, size_t MinSizeInBytes, size_t TSize);
+  void grow_pod(void *FirstEl, size_t MinCapacity, size_t TSize);
 
 public:
-  /// This returns size()*sizeof(T).
-  size_t size_in_bytes() const {
-    return size_t((char*)EndX - (char*)BeginX);
-  }
+  size_t size() const { return Size; }
+  size_t capacity() const { return Capacity; }
 
-  /// capacity_in_bytes - This returns capacity()*sizeof(T).
-  size_t capacity_in_bytes() const {
-    return size_t((char*)CapacityX - (char*)BeginX);
-  }
+  LLVM_NODISCARD bool empty() const { return !Size; }
 
-  LLVM_NODISCARD bool empty() const { return BeginX == EndX; }
+  /// Set the array size to \p N, which the current array must have enough
+  /// capacity for.
+  ///
+  /// This does not construct or destroy any elements in the vector.
+  ///
+  /// Clients can use this in conjunction with capacity() to write past the end
+  /// of the buffer when they know that more elements are available, and only
+  /// update the size later. This avoids the cost of value initializing elements
+  /// which will only be overwritten.
+  void set_size(size_t Size) {
+    assert(Size <= capacity());
+    this->Size = Size;
+  }
+};
+
+/// Figure out the offset of the first element.
+template <class T, typename = void> struct SmallVectorAlignmentAndSize {
+  AlignedCharArrayUnion<SmallVectorBase> Base;
+  AlignedCharArrayUnion<T> FirstEl;
 };
 
 /// This is the part of SmallVectorTemplateBase which does not depend on whether
@@ -66,36 +81,34 @@
 /// to avoid unnecessarily requiring T to be complete.
 template <typename T, typename = void>
 class SmallVectorTemplateCommon : public SmallVectorBase {
-private:
-  template <typename, unsigned> friend struct SmallVectorStorage;
-
-  // Allocate raw space for N elements of type T.  If T has a ctor or dtor, we
-  // don't want it to be automatically run, so we need to represent the space as
-  // something else.  Use an array of char of sufficient alignment.
-  using U = AlignedCharArrayUnion<T>;
-  U FirstEl;
+  /// Find the address of the first element.  For this pointer math to be valid
+  /// with small-size of 0 for T with lots of alignment, it's important that
+  /// SmallVectorStorage is properly-aligned even for small-size of 0.
+  void *getFirstEl() const {
+    return const_cast<void *>(reinterpret_cast<const void *>(
+        reinterpret_cast<const char *>(this) +
+        offsetof(SmallVectorAlignmentAndSize<T>, FirstEl)));
+  }
   // Space after 'FirstEl' is clobbered, do not add any instance vars after it.
 
 protected:
-  SmallVectorTemplateCommon(size_t Size) : SmallVectorBase(&FirstEl, Size) {}
+  SmallVectorTemplateCommon(size_t Size)
+      : SmallVectorBase(getFirstEl(), Size) {}
 
-  void grow_pod(size_t MinSizeInBytes, size_t TSize) {
-    SmallVectorBase::grow_pod(&FirstEl, MinSizeInBytes, TSize);
+  void grow_pod(size_t MinCapacity, size_t TSize) {
+    SmallVectorBase::grow_pod(getFirstEl(), MinCapacity, TSize);
   }
 
   /// Return true if this is a smallvector which has not had dynamic
   /// memory allocated for it.
-  bool isSmall() const {
-    return BeginX == static_cast<const void*>(&FirstEl);
-  }
+  bool isSmall() const { return BeginX == getFirstEl(); }
 
   /// Put this vector in a state of being small.
   void resetToSmall() {
-    BeginX = EndX = CapacityX = &FirstEl;
+    BeginX = getFirstEl();
+    Size = Capacity = 0; // FIXME: Setting Capacity to 0 is suspect.
   }
 
-  void setEnd(T *P) { this->EndX = P; }
-
 public:
   using size_type = size_t;
   using difference_type = ptrdiff_t;
@@ -117,27 +130,20 @@
   LLVM_ATTRIBUTE_ALWAYS_INLINE
   const_iterator begin() const { return (const_iterator)this->BeginX; }
   LLVM_ATTRIBUTE_ALWAYS_INLINE
-  iterator end() { return (iterator)this->EndX; }
+  iterator end() { return begin() + size(); }
   LLVM_ATTRIBUTE_ALWAYS_INLINE
-  const_iterator end() const { return (const_iterator)this->EndX; }
+  const_iterator end() const { return begin() + size(); }
 
-protected:
-  iterator capacity_ptr() { return (iterator)this->CapacityX; }
-  const_iterator capacity_ptr() const { return (const_iterator)this->CapacityX;}
-
-public:
   // reverse iterator creation methods.
   reverse_iterator rbegin()            { return reverse_iterator(end()); }
   const_reverse_iterator rbegin() const{ return const_reverse_iterator(end()); }
   reverse_iterator rend()              { return reverse_iterator(begin()); }
   const_reverse_iterator rend() const { return const_reverse_iterator(begin());}
 
-  LLVM_ATTRIBUTE_ALWAYS_INLINE
-  size_type size() const { return end()-begin(); }
+  size_type size_in_bytes() const { return size() * sizeof(T); }
   size_type max_size() const { return size_type(-1) / sizeof(T); }
 
-  /// Return the total number of elements in the currently allocated buffer.
-  size_t capacity() const { return capacity_ptr() - begin(); }
+  size_t capacity_in_bytes() const { return capacity() * sizeof(T); }
 
   /// Return a pointer to the vector's buffer, even if empty().
   pointer data() { return pointer(begin()); }
@@ -210,21 +216,21 @@
 
 public:
   void push_back(const T &Elt) {
-    if (LLVM_UNLIKELY(this->EndX >= this->CapacityX))
+    if (LLVM_UNLIKELY(this->size() >= this->capacity()))
       this->grow();
     ::new ((void*) this->end()) T(Elt);
-    this->setEnd(this->end()+1);
+    this->set_size(this->size() + 1);
   }
 
   void push_back(T &&Elt) {
-    if (LLVM_UNLIKELY(this->EndX >= this->CapacityX))
+    if (LLVM_UNLIKELY(this->size() >= this->capacity()))
       this->grow();
     ::new ((void*) this->end()) T(::std::move(Elt));
-    this->setEnd(this->end()+1);
+    this->set_size(this->size() + 1);
   }
 
   void pop_back() {
-    this->setEnd(this->end()-1);
+    this->set_size(this->size() - 1);
     this->end()->~T();
   }
 };
@@ -232,15 +238,13 @@
 // Define this out-of-line to dissuade the C++ compiler from inlining it.
 template <typename T, bool isPodLike>
 void SmallVectorTemplateBase<T, isPodLike>::grow(size_t MinSize) {
-  size_t CurCapacity = this->capacity();
-  size_t CurSize = this->size();
+  if (MinSize > UINT32_MAX)
+    report_bad_alloc_error("SmallVector capacity overflow during allocation");
+
   // Always grow, even from zero.
-  size_t NewCapacity = size_t(NextPowerOf2(CurCapacity+2));
-  if (NewCapacity < MinSize)
-    NewCapacity = MinSize;
-  T *NewElts = static_cast<T*>(malloc(NewCapacity*sizeof(T)));
-  if (NewElts == nullptr)
-    report_bad_alloc_error("Allocation of SmallVector element failed.");
+  size_t NewCapacity = size_t(NextPowerOf2(this->capacity() + 2));
+  NewCapacity = std::min(std::max(NewCapacity, MinSize), size_t(UINT32_MAX));
+  T *NewElts = static_cast<T*>(llvm::safe_malloc(NewCapacity*sizeof(T)));
 
   // Move the elements over.
   this->uninitialized_move(this->begin(), this->end(), NewElts);
@@ -252,9 +256,8 @@
   if (!this->isSmall())
     free(this->begin());
 
-  this->setEnd(NewElts+CurSize);
   this->BeginX = NewElts;
-  this->CapacityX = this->begin()+NewCapacity;
+  this->Capacity = NewCapacity;
 }
 
 
@@ -296,26 +299,22 @@
     // use memcpy here. Note that I and E are iterators and thus might be
     // invalid for memcpy if they are equal.
     if (I != E)
-      memcpy(Dest, I, (E - I) * sizeof(T));
+      memcpy(reinterpret_cast<void *>(Dest), I, (E - I) * sizeof(T));
   }
 
   /// Double the size of the allocated memory, guaranteeing space for at
   /// least one more element or MinSize if specified.
-  void grow(size_t MinSize = 0) {
-    this->grow_pod(MinSize*sizeof(T), sizeof(T));
-  }
+  void grow(size_t MinSize = 0) { this->grow_pod(MinSize, sizeof(T)); }
 
 public:
   void push_back(const T &Elt) {
-    if (LLVM_UNLIKELY(this->EndX >= this->CapacityX))
+    if (LLVM_UNLIKELY(this->size() >= this->capacity()))
       this->grow();
-    memcpy(this->end(), &Elt, sizeof(T));
-    this->setEnd(this->end()+1);
+    memcpy(reinterpret_cast<void *>(this->end()), &Elt, sizeof(T));
+    this->set_size(this->size() + 1);
   }
 
-  void pop_back() {
-    this->setEnd(this->end()-1);
-  }
+  void pop_back() { this->set_size(this->size() - 1); }
 };
 
 /// This class consists of common code factored out of the SmallVector class to
@@ -332,8 +331,7 @@
 protected:
   // Default ctor - Initialize to empty.
   explicit SmallVectorImpl(unsigned N)
-    : SmallVectorTemplateBase<T, isPodLike<T>::value>(N*sizeof(T)) {
-  }
+      : SmallVectorTemplateBase<T, isPodLike<T>::value>(N) {}
 
 public:
   SmallVectorImpl(const SmallVectorImpl &) = delete;
@@ -347,31 +345,31 @@
 
   void clear() {
     this->destroy_range(this->begin(), this->end());
-    this->EndX = this->BeginX;
+    this->Size = 0;
   }
 
   void resize(size_type N) {
     if (N < this->size()) {
       this->destroy_range(this->begin()+N, this->end());
-      this->setEnd(this->begin()+N);
+      this->set_size(N);
     } else if (N > this->size()) {
       if (this->capacity() < N)
         this->grow(N);
       for (auto I = this->end(), E = this->begin() + N; I != E; ++I)
         new (&*I) T();
-      this->setEnd(this->begin()+N);
+      this->set_size(N);
     }
   }
 
   void resize(size_type N, const T &NV) {
     if (N < this->size()) {
       this->destroy_range(this->begin()+N, this->end());
-      this->setEnd(this->begin()+N);
+      this->set_size(N);
     } else if (N > this->size()) {
       if (this->capacity() < N)
         this->grow(N);
       std::uninitialized_fill(this->end(), this->begin()+N, NV);
-      this->setEnd(this->begin()+N);
+      this->set_size(N);
     }
   }
 
@@ -396,23 +394,23 @@
   void append(in_iter in_start, in_iter in_end) {
     size_type NumInputs = std::distance(in_start, in_end);
     // Grow allocated space if needed.
-    if (NumInputs > size_type(this->capacity_ptr()-this->end()))
+    if (NumInputs > this->capacity() - this->size())
       this->grow(this->size()+NumInputs);
 
     // Copy the new elements over.
     this->uninitialized_copy(in_start, in_end, this->end());
-    this->setEnd(this->end() + NumInputs);
+    this->set_size(this->size() + NumInputs);
   }
 
   /// Add the specified range to the end of the SmallVector.
   void append(size_type NumInputs, const T &Elt) {
     // Grow allocated space if needed.
-    if (NumInputs > size_type(this->capacity_ptr()-this->end()))
+    if (NumInputs > this->capacity() - this->size())
       this->grow(this->size()+NumInputs);
 
     // Copy the new elements over.
     std::uninitialized_fill_n(this->end(), NumInputs, Elt);
-    this->setEnd(this->end() + NumInputs);
+    this->set_size(this->size() + NumInputs);
   }
 
   void append(std::initializer_list<T> IL) {
@@ -426,7 +424,7 @@
     clear();
     if (this->capacity() < NumElts)
       this->grow(NumElts);
-    this->setEnd(this->begin()+NumElts);
+    this->set_size(NumElts);
     std::uninitialized_fill(this->begin(), this->end(), Elt);
   }
 
@@ -473,7 +471,7 @@
     iterator I = std::move(E, this->end(), S);
     // Drop the last elts.
     this->destroy_range(I, this->end());
-    this->setEnd(I);
+    this->set_size(I - this->begin());
     return(N);
   }
 
@@ -486,7 +484,7 @@
     assert(I >= this->begin() && "Insertion iterator is out of bounds.");
     assert(I <= this->end() && "Inserting past the end of the vector.");
 
-    if (this->EndX >= this->CapacityX) {
+    if (this->size() >= this->capacity()) {
       size_t EltNo = I-this->begin();
       this->grow();
       I = this->begin()+EltNo;
@@ -495,12 +493,12 @@
     ::new ((void*) this->end()) T(::std::move(this->back()));
     // Push everything else over.
     std::move_backward(I, this->end()-1, this->end());
-    this->setEnd(this->end()+1);
+    this->set_size(this->size() + 1);
 
     // If we just moved the element we're inserting, be sure to update
     // the reference.
     T *EltPtr = &Elt;
-    if (I <= EltPtr && EltPtr < this->EndX)
+    if (I <= EltPtr && EltPtr < this->end())
       ++EltPtr;
 
     *I = ::std::move(*EltPtr);
@@ -516,7 +514,7 @@
     assert(I >= this->begin() && "Insertion iterator is out of bounds.");
     assert(I <= this->end() && "Inserting past the end of the vector.");
 
-    if (this->EndX >= this->CapacityX) {
+    if (this->size() >= this->capacity()) {
       size_t EltNo = I-this->begin();
       this->grow();
       I = this->begin()+EltNo;
@@ -524,12 +522,12 @@
     ::new ((void*) this->end()) T(std::move(this->back()));
     // Push everything else over.
     std::move_backward(I, this->end()-1, this->end());
-    this->setEnd(this->end()+1);
+    this->set_size(this->size() + 1);
 
     // If we just moved the element we're inserting, be sure to update
     // the reference.
     const T *EltPtr = &Elt;
-    if (I <= EltPtr && EltPtr < this->EndX)
+    if (I <= EltPtr && EltPtr < this->end())
       ++EltPtr;
 
     *I = *EltPtr;
@@ -575,7 +573,7 @@
 
     // Move over the elements that we're about to overwrite.
     T *OldEnd = this->end();
-    this->setEnd(this->end() + NumToInsert);
+    this->set_size(this->size() + NumToInsert);
     size_t NumOverwritten = OldEnd-I;
     this->uninitialized_move(I, OldEnd, this->end()-NumOverwritten);
 
@@ -632,7 +630,7 @@
 
     // Move over the elements that we're about to overwrite.
     T *OldEnd = this->end();
-    this->setEnd(this->end() + NumToInsert);
+    this->set_size(this->size() + NumToInsert);
     size_t NumOverwritten = OldEnd-I;
     this->uninitialized_move(I, OldEnd, this->end()-NumOverwritten);
 
@@ -652,10 +650,10 @@
   }
 
   template <typename... ArgTypes> void emplace_back(ArgTypes &&... Args) {
-    if (LLVM_UNLIKELY(this->EndX >= this->CapacityX))
+    if (LLVM_UNLIKELY(this->size() >= this->capacity()))
       this->grow();
     ::new ((void *)this->end()) T(std::forward<ArgTypes>(Args)...);
-    this->setEnd(this->end() + 1);
+    this->set_size(this->size() + 1);
   }
 
   SmallVectorImpl &operator=(const SmallVectorImpl &RHS);
@@ -674,20 +672,6 @@
     return std::lexicographical_compare(this->begin(), this->end(),
                                         RHS.begin(), RHS.end());
   }
-
-  /// Set the array size to \p N, which the current array must have enough
-  /// capacity for.
-  ///
-  /// This does not construct or destroy any elements in the vector.
-  ///
-  /// Clients can use this in conjunction with capacity() to write past the end
-  /// of the buffer when they know that more elements are available, and only
-  /// update the size later. This avoids the cost of value initializing elements
-  /// which will only be overwritten.
-  void set_size(size_type N) {
-    assert(N <= this->capacity());
-    this->setEnd(this->begin() + N);
-  }
 };
 
 template <typename T>
@@ -697,8 +681,8 @@
   // We can only avoid copying elements if neither vector is small.
   if (!this->isSmall() && !RHS.isSmall()) {
     std::swap(this->BeginX, RHS.BeginX);
-    std::swap(this->EndX, RHS.EndX);
-    std::swap(this->CapacityX, RHS.CapacityX);
+    std::swap(this->Size, RHS.Size);
+    std::swap(this->Capacity, RHS.Capacity);
     return;
   }
   if (RHS.size() > this->capacity())
@@ -716,15 +700,15 @@
   if (this->size() > RHS.size()) {
     size_t EltDiff = this->size() - RHS.size();
     this->uninitialized_copy(this->begin()+NumShared, this->end(), RHS.end());
-    RHS.setEnd(RHS.end()+EltDiff);
+    RHS.set_size(RHS.size() + EltDiff);
     this->destroy_range(this->begin()+NumShared, this->end());
-    this->setEnd(this->begin()+NumShared);
+    this->set_size(NumShared);
   } else if (RHS.size() > this->size()) {
     size_t EltDiff = RHS.size() - this->size();
     this->uninitialized_copy(RHS.begin()+NumShared, RHS.end(), this->end());
-    this->setEnd(this->end() + EltDiff);
+    this->set_size(this->size() + EltDiff);
     this->destroy_range(RHS.begin()+NumShared, RHS.end());
-    RHS.setEnd(RHS.begin()+NumShared);
+    RHS.set_size(NumShared);
   }
 }
 
@@ -750,7 +734,7 @@
     this->destroy_range(NewEnd, this->end());
 
     // Trim.
-    this->setEnd(NewEnd);
+    this->set_size(RHSSize);
     return *this;
   }
 
@@ -760,7 +744,7 @@
   if (this->capacity() < RHSSize) {
     // Destroy current elements.
     this->destroy_range(this->begin(), this->end());
-    this->setEnd(this->begin());
+    this->set_size(0);
     CurSize = 0;
     this->grow(RHSSize);
   } else if (CurSize) {
@@ -773,7 +757,7 @@
                            this->begin()+CurSize);
 
   // Set end.
-  this->setEnd(this->begin()+RHSSize);
+  this->set_size(RHSSize);
   return *this;
 }
 
@@ -787,8 +771,8 @@
     this->destroy_range(this->begin(), this->end());
     if (!this->isSmall()) free(this->begin());
     this->BeginX = RHS.BeginX;
-    this->EndX = RHS.EndX;
-    this->CapacityX = RHS.CapacityX;
+    this->Size = RHS.Size;
+    this->Capacity = RHS.Capacity;
     RHS.resetToSmall();
     return *this;
   }
@@ -805,7 +789,7 @@
 
     // Destroy excess elements and trim the bounds.
     this->destroy_range(NewEnd, this->end());
-    this->setEnd(NewEnd);
+    this->set_size(RHSSize);
 
     // Clear the RHS.
     RHS.clear();
@@ -820,7 +804,7 @@
   if (this->capacity() < RHSSize) {
     // Destroy current elements.
     this->destroy_range(this->begin(), this->end());
-    this->setEnd(this->begin());
+    this->set_size(0);
     CurSize = 0;
     this->grow(RHSSize);
   } else if (CurSize) {
@@ -833,22 +817,23 @@
                            this->begin()+CurSize);
 
   // Set end.
-  this->setEnd(this->begin()+RHSSize);
+  this->set_size(RHSSize);
 
   RHS.clear();
   return *this;
 }
 
-/// Storage for the SmallVector elements which aren't contained in
-/// SmallVectorTemplateCommon. There are 'N-1' elements here. The remaining '1'
-/// element is in the base class. This is specialized for the N=1 and N=0 cases
+/// Storage for the SmallVector elements.  This is specialized for the N=0 case
 /// to avoid allocating unnecessary storage.
 template <typename T, unsigned N>
 struct SmallVectorStorage {
-  typename SmallVectorTemplateCommon<T>::U InlineElts[N - 1];
+  AlignedCharArrayUnion<T> InlineElts[N];
 };
-template <typename T> struct SmallVectorStorage<T, 1> {};
-template <typename T> struct SmallVectorStorage<T, 0> {};
+
+/// We need the storage to be properly aligned even for small-size of 0 so that
+/// the pointer math in \a SmallVectorTemplateCommon::getFirstEl() is
+/// well-defined.
+template <typename T> struct alignas(alignof(T)) SmallVectorStorage<T, 0> {};
 
 /// This is a 'vector' (really, a variable-sized array), optimized
 /// for the case when the array is small.  It contains some number of elements
@@ -859,10 +844,7 @@
 /// Note that this does not attempt to be exception safe.
 ///
 template <typename T, unsigned N>
-class SmallVector : public SmallVectorImpl<T> {
-  /// Inline space for elements which aren't stored in the base class.
-  SmallVectorStorage<T, N> Storage;
-
+class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
 public:
   SmallVector() : SmallVectorImpl<T>(N) {}
 
diff --git a/linux-x64/clang/include/llvm/ADT/Statistic.h b/linux-x64/clang/include/llvm/ADT/Statistic.h
index 3a08997..90c2eef 100644
--- a/linux-x64/clang/include/llvm/ADT/Statistic.h
+++ b/linux-x64/clang/include/llvm/ADT/Statistic.h
@@ -169,19 +169,19 @@
 #define STATISTIC(VARNAME, DESC)                                               \
   static llvm::Statistic VARNAME = {DEBUG_TYPE, #VARNAME, DESC, {0}, {false}}
 
-/// \brief Enable the collection and printing of statistics.
+/// Enable the collection and printing of statistics.
 void EnableStatistics(bool PrintOnExit = true);
 
-/// \brief Check if statistics are enabled.
+/// Check if statistics are enabled.
 bool AreStatisticsEnabled();
 
-/// \brief Return a file stream to print our output on.
+/// Return a file stream to print our output on.
 std::unique_ptr<raw_fd_ostream> CreateInfoOutputFile();
 
-/// \brief Print statistics to the file returned by CreateInfoOutputFile().
+/// Print statistics to the file returned by CreateInfoOutputFile().
 void PrintStatistics();
 
-/// \brief Print statistics to the given output stream.
+/// Print statistics to the given output stream.
 void PrintStatistics(raw_ostream &OS);
 
 /// Print statistics in JSON format. This does include all global timers (\see
@@ -190,7 +190,7 @@
 /// PrintStatisticsJSON().
 void PrintStatisticsJSON(raw_ostream &OS);
 
-/// \brief Get the statistics. This can be used to look up the value of
+/// Get the statistics. This can be used to look up the value of
 /// statistics without needing to parse JSON.
 ///
 /// This function does not prevent statistics being updated by other threads
@@ -199,7 +199,7 @@
 /// completes.
 const std::vector<std::pair<StringRef, unsigned>> GetStatistics();
 
-/// \brief Reset the statistics. This can be used to zero and de-register the
+/// Reset the statistics. This can be used to zero and de-register the
 /// statistics in order to measure a compilation.
 ///
 /// When this function begins to call destructors prior to returning, all
diff --git a/linux-x64/clang/include/llvm/ADT/StringExtras.h b/linux-x64/clang/include/llvm/ADT/StringExtras.h
index 45f6677..71b0e75 100644
--- a/linux-x64/clang/include/llvm/ADT/StringExtras.h
+++ b/linux-x64/clang/include/llvm/ADT/StringExtras.h
@@ -39,6 +39,16 @@
   return X < 10 ? '0' + X : HexChar + X - 10;
 }
 
+/// Given an array of c-style strings terminated by a null pointer, construct
+/// a vector of StringRefs representing the same strings without the terminating
+/// null string.
+inline std::vector<StringRef> toStringRefArray(const char *const *Strings) {
+  std::vector<StringRef> Result;
+  while (*Strings)
+    Result.push_back(*Strings++);
+  return Result;
+}
+
 /// Construct a string ref from a boolean.
 inline StringRef toStringRef(bool B) { return StringRef(B ? "true" : "false"); }
 
@@ -78,6 +88,26 @@
 /// lowercase letter as classified by "C" locale.
 inline bool isAlnum(char C) { return isAlpha(C) || isDigit(C); }
 
+/// Checks whether character \p C is valid ASCII (high bit is zero).
+inline bool isASCII(char C) { return static_cast<unsigned char>(C) <= 127; }
+
+/// Checks whether all characters in S are ASCII.
+inline bool isASCII(llvm::StringRef S) {
+  for (char C : S)
+    if (LLVM_UNLIKELY(!isASCII(C)))
+      return false;
+  return true;
+}
+
+/// Checks whether character \p C is printable.
+///
+/// Locale-independent version of the C standard library isprint whose results
+/// may differ on different platforms.
+inline bool isPrint(char C) {
+  unsigned char UC = static_cast<unsigned char>(C);
+  return (0x20 <= UC) && (UC <= 0x7E);
+}
+
 /// Returns the corresponding lowercase character if \p x is uppercase.
 inline char toLower(char x) {
   if (x >= 'A' && x <= 'Z')
@@ -157,7 +187,7 @@
   return Output;
 }
 
-/// \brief Convert the string \p S to an integer of the specified type using
+/// Convert the string \p S to an integer of the specified type using
 /// the radix \p Base.  If \p Base is 0, auto-detects the radix.
 /// Returns true if the number was successfully converted, false otherwise.
 template <typename N> bool to_integer(StringRef S, N &Num, unsigned Base = 0) {
@@ -251,9 +281,13 @@
   }
 }
 
-/// PrintEscapedString - Print each character of the specified string, escaping
-/// it if it is not printable or if it is an escape char.
-void PrintEscapedString(StringRef Name, raw_ostream &Out);
+/// Print each character of the specified string, escaping it if it is not
+/// printable or if it is an escape char.
+void printEscapedString(StringRef Name, raw_ostream &Out);
+
+/// Print each character of the specified string, escaping HTML special
+/// characters.
+void printHTMLEscaped(StringRef String, raw_ostream &Out);
 
 /// printLowerCase - Print each character as lowercase if it is uppercase.
 void printLowerCase(StringRef String, raw_ostream &Out);
diff --git a/linux-x64/clang/include/llvm/ADT/StringMap.h b/linux-x64/clang/include/llvm/ADT/StringMap.h
index d34d5ed..a9f83d3 100644
--- a/linux-x64/clang/include/llvm/ADT/StringMap.h
+++ b/linux-x64/clang/include/llvm/ADT/StringMap.h
@@ -164,9 +164,7 @@
 
     StringMapEntry *NewItem =
       static_cast<StringMapEntry*>(Allocator.Allocate(AllocSize,Alignment));
-
-    if (NewItem == nullptr)
-      report_bad_alloc_error("Allocation of StringMap entry failed.");
+    assert(NewItem && "Unhandled out-of-memory");
 
     // Construct the value.
     new (NewItem) StringMapEntry(KeyLength, std::forward<InitTy>(InitVals)...);
diff --git a/linux-x64/clang/include/llvm/ADT/StringRef.h b/linux-x64/clang/include/llvm/ADT/StringRef.h
index 3d2417a..a5ba5b5 100644
--- a/linux-x64/clang/include/llvm/ADT/StringRef.h
+++ b/linux-x64/clang/include/llvm/ADT/StringRef.h
@@ -201,7 +201,7 @@
     LLVM_NODISCARD
     int compare_numeric(StringRef RHS) const;
 
-    /// \brief Determine the edit distance between this string and another
+    /// Determine the edit distance between this string and another
     /// string.
     ///
     /// \param Other the string to compare this string against.
@@ -725,10 +725,7 @@
     /// \returns The split substrings.
     LLVM_NODISCARD
     std::pair<StringRef, StringRef> split(char Separator) const {
-      size_t Idx = find(Separator);
-      if (Idx == npos)
-        return std::make_pair(*this, StringRef());
-      return std::make_pair(slice(0, Idx), slice(Idx+1, npos));
+      return split(StringRef(&Separator, 1));
     }
 
     /// Split into two substrings around the first occurrence of a separator
@@ -749,6 +746,24 @@
       return std::make_pair(slice(0, Idx), slice(Idx + Separator.size(), npos));
     }
 
+    /// Split into two substrings around the last occurrence of a separator
+    /// string.
+    ///
+    /// If \p Separator is in the string, then the result is a pair (LHS, RHS)
+    /// such that (*this == LHS + Separator + RHS) is true and RHS is
+    /// minimal. If \p Separator is not in the string, then the result is a
+    /// pair (LHS, RHS) where (*this == LHS) and (RHS == "").
+    ///
+    /// \param Separator - The string to split on.
+    /// \return - The split substrings.
+    LLVM_NODISCARD
+    std::pair<StringRef, StringRef> rsplit(StringRef Separator) const {
+      size_t Idx = rfind(Separator);
+      if (Idx == npos)
+        return std::make_pair(*this, StringRef());
+      return std::make_pair(slice(0, Idx), slice(Idx + Separator.size(), npos));
+    }
+
     /// Split into substrings around the occurrences of a separator string.
     ///
     /// Each substring is stored in \p A. If \p MaxSplit is >= 0, at most
@@ -796,10 +811,7 @@
     /// \return - The split substrings.
     LLVM_NODISCARD
     std::pair<StringRef, StringRef> rsplit(char Separator) const {
-      size_t Idx = rfind(Separator);
-      if (Idx == npos)
-        return std::make_pair(*this, StringRef());
-      return std::make_pair(slice(0, Idx), slice(Idx+1, npos));
+      return rsplit(StringRef(&Separator, 1));
     }
 
     /// Return string with consecutive \p Char characters starting from the
@@ -912,7 +924,7 @@
 
   /// @}
 
-  /// \brief Compute a hash_code for a StringRef.
+  /// Compute a hash_code for a StringRef.
   LLVM_NODISCARD
   hash_code hash_value(StringRef S);
 
diff --git a/linux-x64/clang/include/llvm/ADT/StringSwitch.h b/linux-x64/clang/include/llvm/ADT/StringSwitch.h
index 9e07303..b7860b9 100644
--- a/linux-x64/clang/include/llvm/ADT/StringSwitch.h
+++ b/linux-x64/clang/include/llvm/ADT/StringSwitch.h
@@ -20,7 +20,7 @@
 
 namespace llvm {
 
-/// \brief A switch()-like statement whose cases are string literals.
+/// A switch()-like statement whose cases are string literals.
 ///
 /// The StringSwitch class is a simple form of a switch() statement that
 /// determines whether the given string matches one of the given string
@@ -41,10 +41,10 @@
 /// \endcode
 template<typename T, typename R = T>
 class StringSwitch {
-  /// \brief The string we are matching.
+  /// The string we are matching.
   const StringRef Str;
 
-  /// \brief The pointer to the result of this switch statement, once known,
+  /// The pointer to the result of this switch statement, once known,
   /// null before that.
   Optional<T> Result;
 
diff --git a/linux-x64/clang/include/llvm/ADT/TinyPtrVector.h b/linux-x64/clang/include/llvm/ADT/TinyPtrVector.h
index 73573d6..1b8e9aa 100644
--- a/linux-x64/clang/include/llvm/ADT/TinyPtrVector.h
+++ b/linux-x64/clang/include/llvm/ADT/TinyPtrVector.h
@@ -108,6 +108,12 @@
     return *this;
   }
 
+  TinyPtrVector(std::initializer_list<EltTy> IL)
+      : Val(IL.size() == 0
+                ? PtrUnion()
+                : IL.size() == 1 ? PtrUnion(*IL.begin())
+                                 : PtrUnion(new VecTy(IL.begin(), IL.end()))) {}
+
   /// Constructor from an ArrayRef.
   ///
   /// This also is a constructor for individual array elements due to the single
diff --git a/linux-x64/clang/include/llvm/ADT/Triple.h b/linux-x64/clang/include/llvm/ADT/Triple.h
index 8ba50d9..c95b16d 100644
--- a/linux-x64/clang/include/llvm/ADT/Triple.h
+++ b/linux-x64/clang/include/llvm/ADT/Triple.h
@@ -101,6 +101,7 @@
   enum SubArchType {
     NoSubArch,
 
+    ARMSubArch_v8_4a,
     ARMSubArch_v8_3a,
     ARMSubArch_v8_2a,
     ARMSubArch_v8_1a,
@@ -144,7 +145,8 @@
     AMD,
     Mesa,
     SUSE,
-    LastVendorType = SUSE
+    OpenEmbedded,
+    LastVendorType = OpenEmbedded
   };
   enum OSType {
     UnknownOS,
@@ -658,6 +660,21 @@
     return getArch() == Triple::aarch64 || getArch() == Triple::aarch64_be;
   }
 
+  /// Tests whether the target is MIPS 32-bit (little and big endian).
+  bool isMIPS32() const {
+    return getArch() == Triple::mips || getArch() == Triple::mipsel;
+  }
+
+  /// Tests whether the target is MIPS 64-bit (little and big endian).
+  bool isMIPS64() const {
+    return getArch() == Triple::mips64 || getArch() == Triple::mips64el;
+  }
+
+  /// Tests whether the target is MIPS (little and big endian, 32- or 64-bit).
+  bool isMIPS() const {
+    return isMIPS32() || isMIPS64();
+  }
+
   /// Tests whether the target supports comdat
   bool supportsCOMDAT() const {
     return !isOSBinFormatMachO();
diff --git a/linux-x64/clang/include/llvm/ADT/UniqueVector.h b/linux-x64/clang/include/llvm/ADT/UniqueVector.h
index b17fb23..c86bedd 100644
--- a/linux-x64/clang/include/llvm/ADT/UniqueVector.h
+++ b/linux-x64/clang/include/llvm/ADT/UniqueVector.h
@@ -72,16 +72,16 @@
     return Vector[ID - 1];
   }
 
-  /// \brief Return an iterator to the start of the vector.
+  /// Return an iterator to the start of the vector.
   iterator begin() { return Vector.begin(); }
 
-  /// \brief Return an iterator to the start of the vector.
+  /// Return an iterator to the start of the vector.
   const_iterator begin() const { return Vector.begin(); }
 
-  /// \brief Return an iterator to the end of the vector.
+  /// Return an iterator to the end of the vector.
   iterator end() { return Vector.end(); }
 
-  /// \brief Return an iterator to the end of the vector.
+  /// Return an iterator to the end of the vector.
   const_iterator end() const { return Vector.end(); }
 
   /// size - Returns the number of entries in the vector.
diff --git a/linux-x64/clang/include/llvm/ADT/VariadicFunction.h b/linux-x64/clang/include/llvm/ADT/VariadicFunction.h
index 403130c..9028abe 100644
--- a/linux-x64/clang/include/llvm/ADT/VariadicFunction.h
+++ b/linux-x64/clang/include/llvm/ADT/VariadicFunction.h
@@ -53,7 +53,7 @@
 #define LLVM_COMMA_JOIN31(x) LLVM_COMMA_JOIN30(x), x ## 30
 #define LLVM_COMMA_JOIN32(x) LLVM_COMMA_JOIN31(x), x ## 31
 
-/// \brief Class which can simulate a type-safe variadic function.
+/// Class which can simulate a type-safe variadic function.
 ///
 /// The VariadicFunction class template makes it easy to define
 /// type-safe variadic functions where all arguments have the same
diff --git a/linux-x64/clang/include/llvm/ADT/edit_distance.h b/linux-x64/clang/include/llvm/ADT/edit_distance.h
index 06a01b1..b2e8ec5 100644
--- a/linux-x64/clang/include/llvm/ADT/edit_distance.h
+++ b/linux-x64/clang/include/llvm/ADT/edit_distance.h
@@ -22,7 +22,7 @@
 
 namespace llvm {
 
-/// \brief Determine the edit distance between two sequences.
+/// Determine the edit distance between two sequences.
 ///
 /// \param FromArray the first sequence to compare.
 ///
diff --git a/linux-x64/clang/include/llvm/ADT/ilist.h b/linux-x64/clang/include/llvm/ADT/ilist.h
index a788f81..00bb6d5 100644
--- a/linux-x64/clang/include/llvm/ADT/ilist.h
+++ b/linux-x64/clang/include/llvm/ADT/ilist.h
@@ -84,21 +84,11 @@
 struct ilist_node_traits : ilist_alloc_traits<NodeTy>,
                            ilist_callback_traits<NodeTy> {};
 
-/// Default template traits for intrusive list.
-///
-/// By inheriting from this, you can easily use default implementations for all
-/// common operations.
-///
-/// TODO: Remove this customization point.  Specializing ilist_traits is
-/// already fully general.
-template <typename NodeTy>
-struct ilist_default_traits : public ilist_node_traits<NodeTy> {};
-
 /// Template traits for intrusive list.
 ///
 /// Customize callbacks and allocation semantics.
 template <typename NodeTy>
-struct ilist_traits : public ilist_default_traits<NodeTy> {};
+struct ilist_traits : public ilist_node_traits<NodeTy> {};
 
 /// Const traits should never be instantiated.
 template <typename Ty> struct ilist_traits<const Ty> {};
@@ -178,9 +168,6 @@
 class iplist_impl : public TraitsT, IntrusiveListT {
   typedef IntrusiveListT base_list_type;
 
-protected:
-  typedef iplist_impl iplist_impl_type;
-
 public:
   typedef typename base_list_type::pointer pointer;
   typedef typename base_list_type::const_pointer const_pointer;
@@ -369,26 +356,26 @@
 
   using base_list_type::sort;
 
-  /// \brief Get the previous node, or \c nullptr for the list head.
+  /// Get the previous node, or \c nullptr for the list head.
   pointer getPrevNode(reference N) const {
     auto I = N.getIterator();
     if (I == begin())
       return nullptr;
     return &*std::prev(I);
   }
-  /// \brief Get the previous node, or \c nullptr for the list head.
+  /// Get the previous node, or \c nullptr for the list head.
   const_pointer getPrevNode(const_reference N) const {
     return getPrevNode(const_cast<reference >(N));
   }
 
-  /// \brief Get the next node, or \c nullptr for the list tail.
+  /// Get the next node, or \c nullptr for the list tail.
   pointer getNextNode(reference N) const {
     auto Next = std::next(N.getIterator());
     if (Next == end())
       return nullptr;
     return &*Next;
   }
-  /// \brief Get the next node, or \c nullptr for the list tail.
+  /// Get the next node, or \c nullptr for the list tail.
   const_pointer getNextNode(const_reference N) const {
     return getNextNode(const_cast<reference >(N));
   }
@@ -402,7 +389,7 @@
 template <class T, class... Options>
 class iplist
     : public iplist_impl<simple_ilist<T, Options...>, ilist_traits<T>> {
-  typedef typename iplist::iplist_impl_type iplist_impl_type;
+  using iplist_impl_type = typename iplist::iplist_impl;
 
 public:
   iplist() = default;
diff --git a/linux-x64/clang/include/llvm/ADT/ilist_node.h b/linux-x64/clang/include/llvm/ADT/ilist_node.h
index 3362611..dd0e6b4 100644
--- a/linux-x64/clang/include/llvm/ADT/ilist_node.h
+++ b/linux-x64/clang/include/llvm/ADT/ilist_node.h
@@ -271,7 +271,7 @@
 public:
   /// @name Adjacent Node Accessors
   /// @{
-  /// \brief Get the previous node, or \c nullptr for the list head.
+  /// Get the previous node, or \c nullptr for the list head.
   NodeTy *getPrevNode() {
     // Should be separated to a reused function, but then we couldn't use auto
     // (and would need the type of the list).
@@ -280,12 +280,12 @@
     return List.getPrevNode(*static_cast<NodeTy *>(this));
   }
 
-  /// \brief Get the previous node, or \c nullptr for the list head.
+  /// Get the previous node, or \c nullptr for the list head.
   const NodeTy *getPrevNode() const {
     return const_cast<ilist_node_with_parent *>(this)->getPrevNode();
   }
 
-  /// \brief Get the next node, or \c nullptr for the list tail.
+  /// Get the next node, or \c nullptr for the list tail.
   NodeTy *getNextNode() {
     // Should be separated to a reused function, but then we couldn't use auto
     // (and would need the type of the list).
@@ -294,7 +294,7 @@
     return List.getNextNode(*static_cast<NodeTy *>(this));
   }
 
-  /// \brief Get the next node, or \c nullptr for the list tail.
+  /// Get the next node, or \c nullptr for the list tail.
   const NodeTy *getNextNode() const {
     return const_cast<ilist_node_with_parent *>(this)->getNextNode();
   }
diff --git a/linux-x64/clang/include/llvm/ADT/ilist_node_options.h b/linux-x64/clang/include/llvm/ADT/ilist_node_options.h
index c33df1e..7ff4005 100644
--- a/linux-x64/clang/include/llvm/ADT/ilist_node_options.h
+++ b/linux-x64/clang/include/llvm/ADT/ilist_node_options.h
@@ -11,7 +11,6 @@
 #define LLVM_ADT_ILIST_NODE_OPTIONS_H
 
 #include "llvm/Config/abi-breaking.h"
-#include "llvm/Config/llvm-config.h"
 
 #include <type_traits>
 
diff --git a/linux-x64/clang/include/llvm/ADT/iterator.h b/linux-x64/clang/include/llvm/ADT/iterator.h
index 711f8f2..549c522 100644
--- a/linux-x64/clang/include/llvm/ADT/iterator.h
+++ b/linux-x64/clang/include/llvm/ADT/iterator.h
@@ -19,7 +19,7 @@
 
 namespace llvm {
 
-/// \brief CRTP base class which implements the entire standard iterator facade
+/// CRTP base class which implements the entire standard iterator facade
 /// in terms of a minimal subset of the interface.
 ///
 /// Use this when it is reasonable to implement most of the iterator
@@ -183,7 +183,7 @@
   }
 };
 
-/// \brief CRTP base class for adapting an iterator to a different type.
+/// CRTP base class for adapting an iterator to a different type.
 ///
 /// This class can be used through CRTP to adapt one iterator into another.
 /// Typically this is done through providing in the derived class a custom \c
@@ -274,7 +274,7 @@
   ReferenceT operator*() const { return *I; }
 };
 
-/// \brief An iterator type that allows iterating over the pointees via some
+/// An iterator type that allows iterating over the pointees via some
 /// other iterator.
 ///
 /// The typical usage of this is to expose a type that iterates over Ts, but
@@ -288,7 +288,7 @@
               decltype(**std::declval<WrappedIteratorT>())>::type>
 struct pointee_iterator
     : iterator_adaptor_base<
-          pointee_iterator<WrappedIteratorT>, WrappedIteratorT,
+          pointee_iterator<WrappedIteratorT, T>, WrappedIteratorT,
           typename std::iterator_traits<WrappedIteratorT>::iterator_category,
           T> {
   pointee_iterator() = default;
@@ -311,7 +311,7 @@
 template <typename WrappedIteratorT,
           typename T = decltype(&*std::declval<WrappedIteratorT>())>
 class pointer_iterator
-    : public iterator_adaptor_base<pointer_iterator<WrappedIteratorT>,
+    : public iterator_adaptor_base<pointer_iterator<WrappedIteratorT, T>,
                                    WrappedIteratorT, T> {
   mutable T Ptr;
 
diff --git a/linux-x64/clang/include/llvm/ADT/iterator_range.h b/linux-x64/clang/include/llvm/ADT/iterator_range.h
index 3cbf619..2ba1286 100644
--- a/linux-x64/clang/include/llvm/ADT/iterator_range.h
+++ b/linux-x64/clang/include/llvm/ADT/iterator_range.h
@@ -24,7 +24,7 @@
 
 namespace llvm {
 
-/// \brief A range adaptor for a pair of iterators.
+/// A range adaptor for a pair of iterators.
 ///
 /// This just wraps two iterators into a range-compatible interface. Nothing
 /// fancy at all.
@@ -47,7 +47,7 @@
   IteratorT end() const { return end_iterator; }
 };
 
-/// \brief Convenience function for iterating over sub-ranges.
+/// Convenience function for iterating over sub-ranges.
 ///
 /// This provides a bit of syntactic sugar to make using sub-ranges
 /// in for loops a bit easier. Analogous to std::make_pair().
@@ -59,9 +59,10 @@
   return iterator_range<T>(std::move(p.first), std::move(p.second));
 }
 
-template<typename T>
-iterator_range<decltype(begin(std::declval<T>()))> drop_begin(T &&t, int n) {
-  return make_range(std::next(begin(t), n), end(t));
+template <typename T>
+iterator_range<decltype(adl_begin(std::declval<T>()))> drop_begin(T &&t,
+                                                                  int n) {
+  return make_range(std::next(adl_begin(t), n), adl_end(t));
 }
 }
 
diff --git a/linux-x64/clang/include/llvm/Analysis/AliasAnalysis.h b/linux-x64/clang/include/llvm/Analysis/AliasAnalysis.h
index ec4a90c..be3496b 100644
--- a/linux-x64/clang/include/llvm/Analysis/AliasAnalysis.h
+++ b/linux-x64/clang/include/llvm/Analysis/AliasAnalysis.h
@@ -91,6 +91,9 @@
   MustAlias,
 };
 
+/// << operator for AliasResult.
+raw_ostream &operator<<(raw_ostream &OS, AliasResult AR);
+
 /// Flags indicating whether a memory access modifies or references memory.
 ///
 /// This is no access at all, a modification, a reference, or both
@@ -325,8 +328,8 @@
   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB);
 
   /// A convenience wrapper around the primary \c alias interface.
-  AliasResult alias(const Value *V1, uint64_t V1Size, const Value *V2,
-                    uint64_t V2Size) {
+  AliasResult alias(const Value *V1, LocationSize V1Size, const Value *V2,
+                    LocationSize V2Size) {
     return alias(MemoryLocation(V1, V1Size), MemoryLocation(V2, V2Size));
   }
 
@@ -343,8 +346,8 @@
   }
 
   /// A convenience wrapper around the \c isNoAlias helper interface.
-  bool isNoAlias(const Value *V1, uint64_t V1Size, const Value *V2,
-                 uint64_t V2Size) {
+  bool isNoAlias(const Value *V1, LocationSize V1Size, const Value *V2,
+                 LocationSize V2Size) {
     return isNoAlias(MemoryLocation(V1, V1Size), MemoryLocation(V2, V2Size));
   }
 
@@ -501,7 +504,7 @@
 
   /// getModRefInfo (for call sites) - A convenience wrapper.
   ModRefInfo getModRefInfo(ImmutableCallSite CS, const Value *P,
-                           uint64_t Size) {
+                           LocationSize Size) {
     return getModRefInfo(CS, MemoryLocation(P, Size));
   }
 
@@ -512,7 +515,8 @@
   }
 
   /// getModRefInfo (for calls) - A convenience wrapper.
-  ModRefInfo getModRefInfo(const CallInst *C, const Value *P, uint64_t Size) {
+  ModRefInfo getModRefInfo(const CallInst *C, const Value *P,
+                           LocationSize Size) {
     return getModRefInfo(C, MemoryLocation(P, Size));
   }
 
@@ -523,7 +527,8 @@
   }
 
   /// getModRefInfo (for invokes) - A convenience wrapper.
-  ModRefInfo getModRefInfo(const InvokeInst *I, const Value *P, uint64_t Size) {
+  ModRefInfo getModRefInfo(const InvokeInst *I, const Value *P,
+                           LocationSize Size) {
     return getModRefInfo(I, MemoryLocation(P, Size));
   }
 
@@ -532,7 +537,8 @@
   ModRefInfo getModRefInfo(const LoadInst *L, const MemoryLocation &Loc);
 
   /// getModRefInfo (for loads) - A convenience wrapper.
-  ModRefInfo getModRefInfo(const LoadInst *L, const Value *P, uint64_t Size) {
+  ModRefInfo getModRefInfo(const LoadInst *L, const Value *P,
+                           LocationSize Size) {
     return getModRefInfo(L, MemoryLocation(P, Size));
   }
 
@@ -541,7 +547,8 @@
   ModRefInfo getModRefInfo(const StoreInst *S, const MemoryLocation &Loc);
 
   /// getModRefInfo (for stores) - A convenience wrapper.
-  ModRefInfo getModRefInfo(const StoreInst *S, const Value *P, uint64_t Size) {
+  ModRefInfo getModRefInfo(const StoreInst *S, const Value *P,
+                           LocationSize Size) {
     return getModRefInfo(S, MemoryLocation(P, Size));
   }
 
@@ -550,7 +557,8 @@
   ModRefInfo getModRefInfo(const FenceInst *S, const MemoryLocation &Loc);
 
   /// getModRefInfo (for fences) - A convenience wrapper.
-  ModRefInfo getModRefInfo(const FenceInst *S, const Value *P, uint64_t Size) {
+  ModRefInfo getModRefInfo(const FenceInst *S, const Value *P,
+                           LocationSize Size) {
     return getModRefInfo(S, MemoryLocation(P, Size));
   }
 
@@ -580,7 +588,8 @@
   ModRefInfo getModRefInfo(const VAArgInst *I, const MemoryLocation &Loc);
 
   /// getModRefInfo (for va_args) - A convenience wrapper.
-  ModRefInfo getModRefInfo(const VAArgInst *I, const Value *P, uint64_t Size) {
+  ModRefInfo getModRefInfo(const VAArgInst *I, const Value *P,
+                           LocationSize Size) {
     return getModRefInfo(I, MemoryLocation(P, Size));
   }
 
@@ -590,7 +599,7 @@
 
   /// getModRefInfo (for catchpads) - A convenience wrapper.
   ModRefInfo getModRefInfo(const CatchPadInst *I, const Value *P,
-                           uint64_t Size) {
+                           LocationSize Size) {
     return getModRefInfo(I, MemoryLocation(P, Size));
   }
 
@@ -600,7 +609,7 @@
 
   /// getModRefInfo (for catchrets) - A convenience wrapper.
   ModRefInfo getModRefInfo(const CatchReturnInst *I, const Value *P,
-                           uint64_t Size) {
+                           LocationSize Size) {
     return getModRefInfo(I, MemoryLocation(P, Size));
   }
 
@@ -646,7 +655,7 @@
 
   /// A convenience wrapper for constructing the memory location.
   ModRefInfo getModRefInfo(const Instruction *I, const Value *P,
-                           uint64_t Size) {
+                           LocationSize Size) {
     return getModRefInfo(I, MemoryLocation(P, Size));
   }
 
@@ -659,7 +668,7 @@
   ///   http://llvm.org/docs/AliasAnalysis.html#ModRefInfo
   ModRefInfo getModRefInfo(ImmutableCallSite CS1, ImmutableCallSite CS2);
 
-  /// \brief Return information about whether a particular call site modifies
+  /// Return information about whether a particular call site modifies
   /// or reads the specified memory location \p MemLoc before instruction \p I
   /// in a BasicBlock. An ordered basic block \p OBB can be used to speed up
   /// instruction ordering queries inside the BasicBlock containing \p I.
@@ -669,9 +678,9 @@
                                 const MemoryLocation &MemLoc, DominatorTree *DT,
                                 OrderedBasicBlock *OBB = nullptr);
 
-  /// \brief A convenience wrapper to synthesize a memory location.
+  /// A convenience wrapper to synthesize a memory location.
   ModRefInfo callCapturesBefore(const Instruction *I, const Value *P,
-                                uint64_t Size, DominatorTree *DT,
+                                LocationSize Size, DominatorTree *DT,
                                 OrderedBasicBlock *OBB = nullptr) {
     return callCapturesBefore(I, MemoryLocation(P, Size), DT, OBB);
   }
@@ -687,7 +696,7 @@
 
   /// A convenience wrapper synthesizing a memory location.
   bool canBasicBlockModify(const BasicBlock &BB, const Value *P,
-                           uint64_t Size) {
+                           LocationSize Size) {
     return canBasicBlockModify(BB, MemoryLocation(P, Size));
   }
 
@@ -702,7 +711,7 @@
 
   /// A convenience wrapper synthesizing a memory location.
   bool canInstructionRangeModRef(const Instruction &I1, const Instruction &I2,
-                                 const Value *Ptr, uint64_t Size,
+                                 const Value *Ptr, LocationSize Size,
                                  const ModRefInfo Mode) {
     return canInstructionRangeModRef(I1, I2, MemoryLocation(Ptr, Size), Mode);
   }
diff --git a/linux-x64/clang/include/llvm/Analysis/AliasAnalysisEvaluator.h b/linux-x64/clang/include/llvm/Analysis/AliasAnalysisEvaluator.h
index cd2f631..0941814 100644
--- a/linux-x64/clang/include/llvm/Analysis/AliasAnalysisEvaluator.h
+++ b/linux-x64/clang/include/llvm/Analysis/AliasAnalysisEvaluator.h
@@ -56,7 +56,7 @@
   }
   ~AAEvaluator();
 
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 
 private:
diff --git a/linux-x64/clang/include/llvm/Analysis/AliasSetTracker.h b/linux-x64/clang/include/llvm/Analysis/AliasSetTracker.h
index 7da3eba..0e6d229 100644
--- a/linux-x64/clang/include/llvm/Analysis/AliasSetTracker.h
+++ b/linux-x64/clang/include/llvm/Analysis/AliasSetTracker.h
@@ -37,8 +37,8 @@
 class AliasSetTracker;
 class BasicBlock;
 class LoadInst;
-class MemSetInst;
-class MemTransferInst;
+class AnyMemSetInst;
+class AnyMemTransferInst;
 class raw_ostream;
 class StoreInst;
 class VAArgInst;
@@ -52,7 +52,7 @@
     PointerRec **PrevInList = nullptr;
     PointerRec *NextInList = nullptr;
     AliasSet *AS = nullptr;
-    uint64_t Size = 0;
+    LocationSize Size = 0;
     AAMDNodes AAInfo;
 
   public:
@@ -69,7 +69,7 @@
       return &NextInList;
     }
 
-    bool updateSizeAndAAInfo(uint64_t NewSize, const AAMDNodes &NewAAInfo) {
+    bool updateSizeAndAAInfo(LocationSize NewSize, const AAMDNodes &NewAAInfo) {
       bool SizeChanged = false;
       if (NewSize > Size) {
         Size = NewSize;
@@ -91,7 +91,7 @@
       return SizeChanged;
     }
 
-    uint64_t getSize() const { return Size; }
+    LocationSize getSize() const { return Size; }
 
     /// Return the AAInfo, or null if there is no information or conflicting
     /// information.
@@ -224,6 +224,20 @@
   // track of the list's exact size.
   unsigned size() { return SetSize; }
 
+  /// If this alias set is known to contain a single instruction and *only* a
+  /// single unique instruction, return it.  Otherwise, return nullptr.
+  Instruction* getUniqueInstruction() {
+    if (size() != 0)
+      // Can't track source of pointer, might be many instruction
+      return nullptr;
+    if (AliasAny)
+      // May have collapses alias set
+      return nullptr;
+    if (1 != UnknownInsts.size())
+      return nullptr;
+    return cast<Instruction>(UnknownInsts[0]);
+  }
+
   void print(raw_ostream &OS) const;
   void dump() const;
 
@@ -247,7 +261,7 @@
     value_type *operator->() const { return &operator*(); }
 
     Value *getPointer() const { return CurNode->getValue(); }
-    uint64_t getSize() const { return CurNode->getSize(); }
+    LocationSize getSize() const { return CurNode->getSize(); }
     AAMDNodes getAAInfo() const { return CurNode->getAAInfo(); }
 
     iterator& operator++() {                // Preincrement
@@ -287,9 +301,8 @@
 
   void removeFromTracker(AliasSetTracker &AST);
 
-  void addPointer(AliasSetTracker &AST, PointerRec &Entry, uint64_t Size,
-                  const AAMDNodes &AAInfo,
-                  bool KnownMustAlias = false);
+  void addPointer(AliasSetTracker &AST, PointerRec &Entry, LocationSize Size,
+                  const AAMDNodes &AAInfo, bool KnownMustAlias = false);
   void addUnknownInst(Instruction *I, AliasAnalysis &AA);
 
   void removeUnknownInst(AliasSetTracker &AST, Instruction *I) {
@@ -309,8 +322,8 @@
 public:
   /// Return true if the specified pointer "may" (or must) alias one of the
   /// members in the set.
-  bool aliasesPointer(const Value *Ptr, uint64_t Size, const AAMDNodes &AAInfo,
-                      AliasAnalysis &AA) const;
+  bool aliasesPointer(const Value *Ptr, LocationSize Size,
+                      const AAMDNodes &AAInfo, AliasAnalysis &AA) const;
   bool aliasesUnknownInst(const Instruction *Inst, AliasAnalysis &AA) const;
 };
 
@@ -364,12 +377,12 @@
   /// These methods return true if inserting the instruction resulted in the
   /// addition of a new alias set (i.e., the pointer did not alias anything).
   ///
-  void add(Value *Ptr, uint64_t Size, const AAMDNodes &AAInfo); // Add a loc.
+  void add(Value *Ptr, LocationSize Size, const AAMDNodes &AAInfo); // Add a loc
   void add(LoadInst *LI);
   void add(StoreInst *SI);
   void add(VAArgInst *VAAI);
-  void add(MemSetInst *MSI);
-  void add(MemTransferInst *MTI);
+  void add(AnyMemSetInst *MSI);
+  void add(AnyMemTransferInst *MTI);
   void add(Instruction *I);       // Dispatch to one of the other add methods...
   void add(BasicBlock &BB);       // Add all instructions in basic block
   void add(const AliasSetTracker &AST); // Add alias relations from another AST
@@ -384,12 +397,12 @@
   /// argument is non-null, this method sets the value to true if a new alias
   /// set is created to contain the pointer (because the pointer didn't alias
   /// anything).
-  AliasSet &getAliasSetForPointer(Value *P, uint64_t Size,
+  AliasSet &getAliasSetForPointer(Value *P, LocationSize Size,
                                   const AAMDNodes &AAInfo);
 
   /// Return the alias set containing the location specified if one exists,
   /// otherwise return null.
-  AliasSet *getAliasSetForPointerIfExists(const Value *P, uint64_t Size,
+  AliasSet *getAliasSetForPointerIfExists(const Value *P, LocationSize Size,
                                           const AAMDNodes &AAInfo) {
     return mergeAliasSetsForPointer(P, Size, AAInfo);
   }
@@ -446,9 +459,9 @@
     return *Entry;
   }
 
-  AliasSet &addPointer(Value *P, uint64_t Size, const AAMDNodes &AAInfo,
+  AliasSet &addPointer(Value *P, LocationSize Size, const AAMDNodes &AAInfo,
                        AliasSet::AccessLattice E);
-  AliasSet *mergeAliasSetsForPointer(const Value *Ptr, uint64_t Size,
+  AliasSet *mergeAliasSetsForPointer(const Value *Ptr, LocationSize Size,
                                      const AAMDNodes &AAInfo);
 
   /// Merge all alias sets into a single set that is considered to alias any
diff --git a/linux-x64/clang/include/llvm/Analysis/AssumptionCache.h b/linux-x64/clang/include/llvm/Analysis/AssumptionCache.h
index c965e62..46538b1 100644
--- a/linux-x64/clang/include/llvm/Analysis/AssumptionCache.h
+++ b/linux-x64/clang/include/llvm/Analysis/AssumptionCache.h
@@ -32,20 +32,20 @@
 class raw_ostream;
 class Value;
 
-/// \brief A cache of @llvm.assume calls within a function.
+/// A cache of \@llvm.assume calls within a function.
 ///
 /// This cache provides fast lookup of assumptions within a function by caching
 /// them and amortizing the cost of scanning for them across all queries. Passes
 /// that create new assumptions are required to call registerAssumption() to
-/// register any new @llvm.assume calls that they create. Deletions of
-/// @llvm.assume calls do not require special handling.
+/// register any new \@llvm.assume calls that they create. Deletions of
+/// \@llvm.assume calls do not require special handling.
 class AssumptionCache {
-  /// \brief The function for which this cache is handling assumptions.
+  /// The function for which this cache is handling assumptions.
   ///
   /// We track this to lazily populate our assumptions.
   Function &F;
 
-  /// \brief Vector of weak value handles to calls of the @llvm.assume
+  /// Vector of weak value handles to calls of the \@llvm.assume
   /// intrinsic.
   SmallVector<WeakTrackingVH, 4> AssumeHandles;
 
@@ -64,7 +64,7 @@
 
   friend AffectedValueCallbackVH;
 
-  /// \brief A map of values about which an assumption might be providing
+  /// A map of values about which an assumption might be providing
   /// information to the relevant set of assumptions.
   using AffectedValuesMap =
       DenseMap<AffectedValueCallbackVH, SmallVector<WeakTrackingVH, 1>,
@@ -77,17 +77,17 @@
   /// Copy affected values in the cache for OV to be affected values for NV.
   void copyAffectedValuesInCache(Value *OV, Value *NV);
 
-  /// \brief Flag tracking whether we have scanned the function yet.
+  /// Flag tracking whether we have scanned the function yet.
   ///
   /// We want to be as lazy about this as possible, and so we scan the function
   /// at the last moment.
   bool Scanned = false;
 
-  /// \brief Scan the function for assumptions and add them to the cache.
+  /// Scan the function for assumptions and add them to the cache.
   void scanFunction();
 
 public:
-  /// \brief Construct an AssumptionCache from a function by scanning all of
+  /// Construct an AssumptionCache from a function by scanning all of
   /// its instructions.
   AssumptionCache(Function &F) : F(F) {}
 
@@ -98,17 +98,17 @@
     return false;
   }
 
-  /// \brief Add an @llvm.assume intrinsic to this function's cache.
+  /// Add an \@llvm.assume intrinsic to this function's cache.
   ///
   /// The call passed in must be an instruction within this function and must
   /// not already be in the cache.
   void registerAssumption(CallInst *CI);
 
-  /// \brief Update the cache of values being affected by this assumption (i.e.
+  /// Update the cache of values being affected by this assumption (i.e.
   /// the values about which this assumption provides information).
   void updateAffectedValues(CallInst *CI);
 
-  /// \brief Clear the cache of @llvm.assume intrinsics for a function.
+  /// Clear the cache of \@llvm.assume intrinsics for a function.
   ///
   /// It will be re-scanned the next time it is requested.
   void clear() {
@@ -117,7 +117,7 @@
     Scanned = false;
   }
 
-  /// \brief Access the list of assumption handles currently tracked for this
+  /// Access the list of assumption handles currently tracked for this
   /// function.
   ///
   /// Note that these produce weak handles that may be null. The caller must
@@ -131,7 +131,7 @@
     return AssumeHandles;
   }
 
-  /// \brief Access the list of assumptions which affect this value.
+  /// Access the list of assumptions which affect this value.
   MutableArrayRef<WeakTrackingVH> assumptionsFor(const Value *V) {
     if (!Scanned)
       scanFunction();
@@ -144,7 +144,7 @@
   }
 };
 
-/// \brief A function analysis which provides an \c AssumptionCache.
+/// A function analysis which provides an \c AssumptionCache.
 ///
 /// This analysis is intended for use with the new pass manager and will vend
 /// assumption caches for a given function.
@@ -161,7 +161,7 @@
   }
 };
 
-/// \brief Printer pass for the \c AssumptionAnalysis results.
+/// Printer pass for the \c AssumptionAnalysis results.
 class AssumptionPrinterPass : public PassInfoMixin<AssumptionPrinterPass> {
   raw_ostream &OS;
 
@@ -171,7 +171,7 @@
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief An immutable pass that tracks lazily created \c AssumptionCache
+/// An immutable pass that tracks lazily created \c AssumptionCache
 /// objects.
 ///
 /// This is essentially a workaround for the legacy pass manager's weaknesses
@@ -203,7 +203,7 @@
   FunctionCallsMap AssumptionCaches;
 
 public:
-  /// \brief Get the cached assumptions for a function.
+  /// Get the cached assumptions for a function.
   ///
   /// If no assumptions are cached, this will scan the function. Otherwise, the
   /// existing cache will be returned.
diff --git a/linux-x64/clang/include/llvm/Analysis/BasicAliasAnalysis.h b/linux-x64/clang/include/llvm/Analysis/BasicAliasAnalysis.h
index 42e5e97..6344e84 100644
--- a/linux-x64/clang/include/llvm/Analysis/BasicAliasAnalysis.h
+++ b/linux-x64/clang/include/llvm/Analysis/BasicAliasAnalysis.h
@@ -43,6 +43,7 @@
 class PHINode;
 class SelectInst;
 class TargetLibraryInfo;
+class PhiValues;
 class Value;
 
 /// This is the AA result object for the basic, local, and stateless alias
@@ -55,26 +56,30 @@
   friend AAResultBase<BasicAAResult>;
 
   const DataLayout &DL;
+  const Function &F;
   const TargetLibraryInfo &TLI;
   AssumptionCache &AC;
   DominatorTree *DT;
   LoopInfo *LI;
+  PhiValues *PV;
 
 public:
-  BasicAAResult(const DataLayout &DL, const TargetLibraryInfo &TLI,
-                AssumptionCache &AC, DominatorTree *DT = nullptr,
-                LoopInfo *LI = nullptr)
-      : AAResultBase(), DL(DL), TLI(TLI), AC(AC), DT(DT), LI(LI) {}
+  BasicAAResult(const DataLayout &DL, const Function &F,
+                const TargetLibraryInfo &TLI, AssumptionCache &AC,
+                DominatorTree *DT = nullptr, LoopInfo *LI = nullptr,
+                PhiValues *PV = nullptr)
+      : AAResultBase(), DL(DL), F(F), TLI(TLI), AC(AC), DT(DT), LI(LI), PV(PV)
+        {}
 
   BasicAAResult(const BasicAAResult &Arg)
-      : AAResultBase(Arg), DL(Arg.DL), TLI(Arg.TLI), AC(Arg.AC), DT(Arg.DT),
-        LI(Arg.LI) {}
+      : AAResultBase(Arg), DL(Arg.DL), F(Arg.F), TLI(Arg.TLI), AC(Arg.AC),
+        DT(Arg.DT),  LI(Arg.LI), PV(Arg.PV) {}
   BasicAAResult(BasicAAResult &&Arg)
-      : AAResultBase(std::move(Arg)), DL(Arg.DL), TLI(Arg.TLI), AC(Arg.AC),
-        DT(Arg.DT), LI(Arg.LI) {}
+      : AAResultBase(std::move(Arg)), DL(Arg.DL), F(Arg.F), TLI(Arg.TLI),
+        AC(Arg.AC), DT(Arg.DT), LI(Arg.LI), PV(Arg.PV) {}
 
   /// Handle invalidation events in the new pass manager.
-  bool invalidate(Function &F, const PreservedAnalyses &PA,
+  bool invalidate(Function &Fn, const PreservedAnalyses &PA,
                   FunctionAnalysisManager::Invalidator &Inv);
 
   AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB);
@@ -94,7 +99,7 @@
 
   /// Returns the behavior when calling the given function. For use when the
   /// call site is not known.
-  FunctionModRefBehavior getModRefBehavior(const Function *F);
+  FunctionModRefBehavior getModRefBehavior(const Function *Fn);
 
 private:
   // A linear transformation of a Value; this class represents ZExt(SExt(V,
@@ -171,9 +176,9 @@
 
   static bool isGEPBaseAtNegativeOffset(const GEPOperator *GEPOp,
       const DecomposedGEP &DecompGEP, const DecomposedGEP &DecompObject,
-      uint64_t ObjectAccessSize);
+      LocationSize ObjectAccessSize);
 
-  /// \brief A Heuristic for aliasGEP that searches for a constant offset
+  /// A Heuristic for aliasGEP that searches for a constant offset
   /// between the variables.
   ///
   /// GetLinearExpression has some limitations, as generally zext(%x + 1)
@@ -183,31 +188,33 @@
   /// the addition overflows.
   bool
   constantOffsetHeuristic(const SmallVectorImpl<VariableGEPIndex> &VarIndices,
-                          uint64_t V1Size, uint64_t V2Size, int64_t BaseOffset,
-                          AssumptionCache *AC, DominatorTree *DT);
+                          LocationSize V1Size, LocationSize V2Size,
+                          int64_t BaseOffset, AssumptionCache *AC,
+                          DominatorTree *DT);
 
   bool isValueEqualInPotentialCycles(const Value *V1, const Value *V2);
 
   void GetIndexDifference(SmallVectorImpl<VariableGEPIndex> &Dest,
                           const SmallVectorImpl<VariableGEPIndex> &Src);
 
-  AliasResult aliasGEP(const GEPOperator *V1, uint64_t V1Size,
+  AliasResult aliasGEP(const GEPOperator *V1, LocationSize V1Size,
                        const AAMDNodes &V1AAInfo, const Value *V2,
-                       uint64_t V2Size, const AAMDNodes &V2AAInfo,
+                       LocationSize V2Size, const AAMDNodes &V2AAInfo,
                        const Value *UnderlyingV1, const Value *UnderlyingV2);
 
-  AliasResult aliasPHI(const PHINode *PN, uint64_t PNSize,
+  AliasResult aliasPHI(const PHINode *PN, LocationSize PNSize,
                        const AAMDNodes &PNAAInfo, const Value *V2,
-                       uint64_t V2Size, const AAMDNodes &V2AAInfo,
+                       LocationSize V2Size, const AAMDNodes &V2AAInfo,
                        const Value *UnderV2);
 
-  AliasResult aliasSelect(const SelectInst *SI, uint64_t SISize,
+  AliasResult aliasSelect(const SelectInst *SI, LocationSize SISize,
                           const AAMDNodes &SIAAInfo, const Value *V2,
-                          uint64_t V2Size, const AAMDNodes &V2AAInfo,
+                          LocationSize V2Size, const AAMDNodes &V2AAInfo,
                           const Value *UnderV2);
 
-  AliasResult aliasCheck(const Value *V1, uint64_t V1Size, AAMDNodes V1AATag,
-                         const Value *V2, uint64_t V2Size, AAMDNodes V2AATag,
+  AliasResult aliasCheck(const Value *V1, LocationSize V1Size,
+                         AAMDNodes V1AATag, const Value *V2,
+                         LocationSize V2Size, AAMDNodes V2AATag,
                          const Value *O1 = nullptr, const Value *O2 = nullptr);
 };
 
diff --git a/linux-x64/clang/include/llvm/Analysis/BlockFrequencyInfo.h b/linux-x64/clang/include/llvm/Analysis/BlockFrequencyInfo.h
index 89370cb..ca12db6 100644
--- a/linux-x64/clang/include/llvm/Analysis/BlockFrequencyInfo.h
+++ b/linux-x64/clang/include/llvm/Analysis/BlockFrequencyInfo.h
@@ -65,17 +65,17 @@
   /// floating points.
   BlockFrequency getBlockFreq(const BasicBlock *BB) const;
 
-  /// \brief Returns the estimated profile count of \p BB.
+  /// Returns the estimated profile count of \p BB.
   /// This computes the relative block frequency of \p BB and multiplies it by
   /// the enclosing function's count (if available) and returns the value.
   Optional<uint64_t> getBlockProfileCount(const BasicBlock *BB) const;
 
-  /// \brief Returns the estimated profile count of \p Freq.
+  /// Returns the estimated profile count of \p Freq.
   /// This uses the frequency \p Freq and multiplies it by
   /// the enclosing function's count (if available) and returns the value.
   Optional<uint64_t> getProfileCountFromFreq(uint64_t Freq) const;
 
-  /// \brief Returns true if \p BB is an irreducible loop header
+  /// Returns true if \p BB is an irreducible loop header
   /// block. Otherwise false.
   bool isIrrLoopHeader(const BasicBlock *BB);
 
@@ -105,7 +105,7 @@
   void print(raw_ostream &OS) const;
 };
 
-/// \brief Analysis pass which computes \c BlockFrequencyInfo.
+/// Analysis pass which computes \c BlockFrequencyInfo.
 class BlockFrequencyAnalysis
     : public AnalysisInfoMixin<BlockFrequencyAnalysis> {
   friend AnalysisInfoMixin<BlockFrequencyAnalysis>;
@@ -113,14 +113,14 @@
   static AnalysisKey Key;
 
 public:
-  /// \brief Provide the result type for this analysis pass.
+  /// Provide the result type for this analysis pass.
   using Result = BlockFrequencyInfo;
 
-  /// \brief Run the analysis pass over a function and produce BFI.
+  /// Run the analysis pass over a function and produce BFI.
   Result run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Printer pass for the \c BlockFrequencyInfo results.
+/// Printer pass for the \c BlockFrequencyInfo results.
 class BlockFrequencyPrinterPass
     : public PassInfoMixin<BlockFrequencyPrinterPass> {
   raw_ostream &OS;
@@ -131,7 +131,7 @@
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Legacy analysis pass which computes \c BlockFrequencyInfo.
+/// Legacy analysis pass which computes \c BlockFrequencyInfo.
 class BlockFrequencyInfoWrapperPass : public FunctionPass {
   BlockFrequencyInfo BFI;
 
diff --git a/linux-x64/clang/include/llvm/Analysis/BlockFrequencyInfoImpl.h b/linux-x64/clang/include/llvm/Analysis/BlockFrequencyInfoImpl.h
index 40c40b8..25b2efd 100644
--- a/linux-x64/clang/include/llvm/Analysis/BlockFrequencyInfoImpl.h
+++ b/linux-x64/clang/include/llvm/Analysis/BlockFrequencyInfoImpl.h
@@ -66,7 +66,7 @@
 // This is part of a workaround for a GCC 4.7 crash on lambdas.
 template <class BT> struct BlockEdgesAdder;
 
-/// \brief Mass of a block.
+/// Mass of a block.
 ///
 /// This class implements a sort of fixed-point fraction always between 0.0 and
 /// 1.0.  getMass() == std::numeric_limits<uint64_t>::max() indicates a value of
@@ -100,7 +100,7 @@
 
   bool operator!() const { return isEmpty(); }
 
-  /// \brief Add another mass.
+  /// Add another mass.
   ///
   /// Adds another mass, saturating at \a isFull() rather than overflowing.
   BlockMass &operator+=(BlockMass X) {
@@ -109,7 +109,7 @@
     return *this;
   }
 
-  /// \brief Subtract another mass.
+  /// Subtract another mass.
   ///
   /// Subtracts another mass, saturating at \a isEmpty() rather than
   /// undeflowing.
@@ -131,7 +131,7 @@
   bool operator<(BlockMass X) const { return Mass < X.Mass; }
   bool operator>(BlockMass X) const { return Mass > X.Mass; }
 
-  /// \brief Convert to scaled number.
+  /// Convert to scaled number.
   ///
   /// Convert to \a ScaledNumber.  \a isFull() gives 1.0, while \a isEmpty()
   /// gives slightly above 0.0.
@@ -164,7 +164,7 @@
   static const bool value = true;
 };
 
-/// \brief Base class for BlockFrequencyInfoImpl
+/// Base class for BlockFrequencyInfoImpl
 ///
 /// BlockFrequencyInfoImplBase has supporting data structures and some
 /// algorithms for BlockFrequencyInfoImplBase.  Only algorithms that depend on
@@ -177,7 +177,7 @@
   using Scaled64 = ScaledNumber<uint64_t>;
   using BlockMass = bfi_detail::BlockMass;
 
-  /// \brief Representative of a block.
+  /// Representative of a block.
   ///
   /// This is a simple wrapper around an index into the reverse-post-order
   /// traversal of the blocks.
@@ -206,13 +206,13 @@
     }
   };
 
-  /// \brief Stats about a block itself.
+  /// Stats about a block itself.
   struct FrequencyData {
     Scaled64 Scaled;
     uint64_t Integer;
   };
 
-  /// \brief Data about a loop.
+  /// Data about a loop.
   ///
   /// Contains the data necessary to represent a loop as a pseudo-node once it's
   /// packaged.
@@ -270,7 +270,7 @@
     }
   };
 
-  /// \brief Index of loop information.
+  /// Index of loop information.
   struct WorkingData {
     BlockNode Node;           ///< This node.
     LoopData *Loop = nullptr; ///< The loop this block is inside.
@@ -293,7 +293,7 @@
       return Loop->Parent->Parent;
     }
 
-    /// \brief Resolve a node to its representative.
+    /// Resolve a node to its representative.
     ///
     /// Get the node currently representing Node, which could be a containing
     /// loop.
@@ -320,7 +320,7 @@
       return L;
     }
 
-    /// \brief Get the appropriate mass for a node.
+    /// Get the appropriate mass for a node.
     ///
     /// Get appropriate mass for Node.  If Node is a loop-header (whose loop
     /// has been packaged), returns the mass of its pseudo-node.  If it's a
@@ -333,19 +333,19 @@
       return Loop->Parent->Mass;
     }
 
-    /// \brief Has ContainingLoop been packaged up?
+    /// Has ContainingLoop been packaged up?
     bool isPackaged() const { return getResolvedNode() != Node; }
 
-    /// \brief Has Loop been packaged up?
+    /// Has Loop been packaged up?
     bool isAPackage() const { return isLoopHeader() && Loop->IsPackaged; }
 
-    /// \brief Has Loop been packaged up twice?
+    /// Has Loop been packaged up twice?
     bool isADoublePackage() const {
       return isDoubleLoopHeader() && Loop->Parent->IsPackaged;
     }
   };
 
-  /// \brief Unscaled probability weight.
+  /// Unscaled probability weight.
   ///
   /// Probability weight for an edge in the graph (including the
   /// successor/target node).
@@ -369,7 +369,7 @@
         : Type(Type), TargetNode(TargetNode), Amount(Amount) {}
   };
 
-  /// \brief Distribution of unscaled probability weight.
+  /// Distribution of unscaled probability weight.
   ///
   /// Distribution of unscaled probability weight to a set of successors.
   ///
@@ -398,7 +398,7 @@
       add(Node, Amount, Weight::Backedge);
     }
 
-    /// \brief Normalize the distribution.
+    /// Normalize the distribution.
     ///
     /// Combines multiple edges to the same \a Weight::TargetNode and scales
     /// down so that \a Total fits into 32-bits.
@@ -413,26 +413,26 @@
     void add(const BlockNode &Node, uint64_t Amount, Weight::DistType Type);
   };
 
-  /// \brief Data about each block.  This is used downstream.
+  /// Data about each block.  This is used downstream.
   std::vector<FrequencyData> Freqs;
 
-  /// \brief Whether each block is an irreducible loop header.
+  /// Whether each block is an irreducible loop header.
   /// This is used downstream.
   SparseBitVector<> IsIrrLoopHeader;
 
-  /// \brief Loop data: see initializeLoops().
+  /// Loop data: see initializeLoops().
   std::vector<WorkingData> Working;
 
-  /// \brief Indexed information about loops.
+  /// Indexed information about loops.
   std::list<LoopData> Loops;
 
-  /// \brief Virtual destructor.
+  /// Virtual destructor.
   ///
   /// Need a virtual destructor to mask the compiler warning about
   /// getBlockName().
   virtual ~BlockFrequencyInfoImplBase() = default;
 
-  /// \brief Add all edges out of a packaged loop to the distribution.
+  /// Add all edges out of a packaged loop to the distribution.
   ///
   /// Adds all edges from LocalLoopHead to Dist.  Calls addToDist() to add each
   /// successor edge.
@@ -441,7 +441,7 @@
   bool addLoopSuccessorsToDist(const LoopData *OuterLoop, LoopData &Loop,
                                Distribution &Dist);
 
-  /// \brief Add an edge to the distribution.
+  /// Add an edge to the distribution.
   ///
   /// Adds an edge to Succ to Dist.  If \c LoopHead.isValid(), then whether the
   /// edge is local/exit/backedge is in the context of LoopHead.  Otherwise,
@@ -457,7 +457,7 @@
     return *Working[Head.Index].Loop;
   }
 
-  /// \brief Analyze irreducible SCCs.
+  /// Analyze irreducible SCCs.
   ///
   /// Separate irreducible SCCs from \c G, which is an explict graph of \c
   /// OuterLoop (or the top-level function, if \c OuterLoop is \c nullptr).
@@ -468,7 +468,7 @@
   analyzeIrreducible(const bfi_detail::IrreducibleGraph &G, LoopData *OuterLoop,
                      std::list<LoopData>::iterator Insert);
 
-  /// \brief Update a loop after packaging irreducible SCCs inside of it.
+  /// Update a loop after packaging irreducible SCCs inside of it.
   ///
   /// Update \c OuterLoop.  Before finding irreducible control flow, it was
   /// partway through \a computeMassInLoop(), so \a LoopData::Exits and \a
@@ -476,7 +476,7 @@
   /// up need to be removed from \a OuterLoop::Nodes.
   void updateLoopWithIrreducible(LoopData &OuterLoop);
 
-  /// \brief Distribute mass according to a distribution.
+  /// Distribute mass according to a distribution.
   ///
   /// Distributes the mass in Source according to Dist.  If LoopHead.isValid(),
   /// backedges and exits are stored in its entry in Loops.
@@ -485,7 +485,7 @@
   void distributeMass(const BlockNode &Source, LoopData *OuterLoop,
                       Distribution &Dist);
 
-  /// \brief Compute the loop scale for a loop.
+  /// Compute the loop scale for a loop.
   void computeLoopScale(LoopData &Loop);
 
   /// Adjust the mass of all headers in an irreducible loop.
@@ -500,19 +500,19 @@
 
   void distributeIrrLoopHeaderMass(Distribution &Dist);
 
-  /// \brief Package up a loop.
+  /// Package up a loop.
   void packageLoop(LoopData &Loop);
 
-  /// \brief Unwrap loops.
+  /// Unwrap loops.
   void unwrapLoops();
 
-  /// \brief Finalize frequency metrics.
+  /// Finalize frequency metrics.
   ///
   /// Calculates final frequencies and cleans up no-longer-needed data
   /// structures.
   void finalizeMetrics();
 
-  /// \brief Clear all memory.
+  /// Clear all memory.
   void clear();
 
   virtual std::string getBlockName(const BlockNode &Node) const;
@@ -560,7 +560,7 @@
   using LoopInfoT = MachineLoopInfo;
 };
 
-/// \brief Get the name of a MachineBasicBlock.
+/// Get the name of a MachineBasicBlock.
 ///
 /// Get the name of a MachineBasicBlock.  It's templated so that including from
 /// CodeGen is unnecessary (that would be a layering issue).
@@ -574,13 +574,13 @@
     return (MachineName + "[" + BB->getName() + "]").str();
   return MachineName.str();
 }
-/// \brief Get the name of a BasicBlock.
+/// Get the name of a BasicBlock.
 template <> inline std::string getBlockName(const BasicBlock *BB) {
   assert(BB && "Unexpected nullptr");
   return BB->getName().str();
 }
 
-/// \brief Graph of irreducible control flow.
+/// Graph of irreducible control flow.
 ///
 /// This graph is used for determining the SCCs in a loop (or top-level
 /// function) that has irreducible control flow.
@@ -619,7 +619,7 @@
   std::vector<IrrNode> Nodes;
   SmallDenseMap<uint32_t, IrrNode *, 4> Lookup;
 
-  /// \brief Construct an explicit graph containing irreducible control flow.
+  /// Construct an explicit graph containing irreducible control flow.
   ///
   /// Construct an explicit graph of the control flow in \c OuterLoop (or the
   /// top-level function, if \c OuterLoop is \c nullptr).  Uses \c
@@ -687,7 +687,7 @@
 
 } // end namespace bfi_detail
 
-/// \brief Shared implementation for block frequency analysis.
+/// Shared implementation for block frequency analysis.
 ///
 /// This is a shared implementation of BlockFrequencyInfo and
 /// MachineBlockFrequencyInfo, and calculates the relative frequencies of
@@ -878,12 +878,12 @@
     return RPOT[Node.Index];
   }
 
-  /// \brief Run (and save) a post-order traversal.
+  /// Run (and save) a post-order traversal.
   ///
   /// Saves a reverse post-order traversal of all the nodes in \a F.
   void initializeRPOT();
 
-  /// \brief Initialize loop data.
+  /// Initialize loop data.
   ///
   /// Build up \a Loops using \a LoopInfo.  \a LoopInfo gives us a mapping from
   /// each block to the deepest loop it's in, but we need the inverse.  For each
@@ -892,7 +892,7 @@
   /// the loop that are not in sub-loops.
   void initializeLoops();
 
-  /// \brief Propagate to a block's successors.
+  /// Propagate to a block's successors.
   ///
   /// In the context of distributing mass through \c OuterLoop, divide the mass
   /// currently assigned to \c Node between its successors.
@@ -900,7 +900,7 @@
   /// \return \c true unless there's an irreducible backedge.
   bool propagateMassToSuccessors(LoopData *OuterLoop, const BlockNode &Node);
 
-  /// \brief Compute mass in a particular loop.
+  /// Compute mass in a particular loop.
   ///
   /// Assign mass to \c Loop's header, and then for each block in \c Loop in
   /// reverse post-order, distribute mass to its successors.  Only visits nodes
@@ -910,7 +910,7 @@
   /// \return \c true unless there's an irreducible backedge.
   bool computeMassInLoop(LoopData &Loop);
 
-  /// \brief Try to compute mass in the top-level function.
+  /// Try to compute mass in the top-level function.
   ///
   /// Assign mass to the entry block, and then for each block in reverse
   /// post-order, distribute mass to its successors.  Skips nodes that have
@@ -920,7 +920,7 @@
   /// \return \c true unless there's an irreducible backedge.
   bool tryToComputeMassInFunction();
 
-  /// \brief Compute mass in (and package up) irreducible SCCs.
+  /// Compute mass in (and package up) irreducible SCCs.
   ///
   /// Find the irreducible SCCs in \c OuterLoop, add them to \a Loops (in front
   /// of \c Insert), and call \a computeMassInLoop() on each of them.
@@ -935,7 +935,7 @@
   void computeIrreducibleMass(LoopData *OuterLoop,
                               std::list<LoopData>::iterator Insert);
 
-  /// \brief Compute mass in all loops.
+  /// Compute mass in all loops.
   ///
   /// For each loop bottom-up, call \a computeMassInLoop().
   ///
@@ -946,7 +946,7 @@
   /// \post \a computeMassInLoop() has returned \c true for every loop.
   void computeMassInLoops();
 
-  /// \brief Compute mass in the top-level function.
+  /// Compute mass in the top-level function.
   ///
   /// Uses \a tryToComputeMassInFunction() and \a computeIrreducibleMass() to
   /// compute mass in the top-level function.
@@ -994,7 +994,7 @@
 
   const BranchProbabilityInfoT &getBPI() const { return *BPI; }
 
-  /// \brief Print the frequencies for the current function.
+  /// Print the frequencies for the current function.
   ///
   /// Prints the frequencies for the blocks in the current function.
   ///
@@ -1030,8 +1030,9 @@
   Nodes.clear();
 
   // Initialize.
-  DEBUG(dbgs() << "\nblock-frequency: " << F.getName() << "\n================="
-               << std::string(F.getName().size(), '=') << "\n");
+  LLVM_DEBUG(dbgs() << "\nblock-frequency: " << F.getName()
+                    << "\n================="
+                    << std::string(F.getName().size(), '=') << "\n");
   initializeRPOT();
   initializeLoops();
 
@@ -1067,10 +1068,11 @@
   assert(RPOT.size() - 1 <= BlockNode::getMaxIndex() &&
          "More nodes in function than Block Frequency Info supports");
 
-  DEBUG(dbgs() << "reverse-post-order-traversal\n");
+  LLVM_DEBUG(dbgs() << "reverse-post-order-traversal\n");
   for (rpot_iterator I = rpot_begin(), E = rpot_end(); I != E; ++I) {
     BlockNode Node = getNode(I);
-    DEBUG(dbgs() << " - " << getIndex(I) << ": " << getBlockName(Node) << "\n");
+    LLVM_DEBUG(dbgs() << " - " << getIndex(I) << ": " << getBlockName(Node)
+                      << "\n");
     Nodes[*I] = Node;
   }
 
@@ -1081,7 +1083,7 @@
 }
 
 template <class BT> void BlockFrequencyInfoImpl<BT>::initializeLoops() {
-  DEBUG(dbgs() << "loop-detection\n");
+  LLVM_DEBUG(dbgs() << "loop-detection\n");
   if (LI->empty())
     return;
 
@@ -1099,7 +1101,7 @@
 
     Loops.emplace_back(Parent, Header);
     Working[Header.Index].Loop = &Loops.back();
-    DEBUG(dbgs() << " - loop = " << getBlockName(Header) << "\n");
+    LLVM_DEBUG(dbgs() << " - loop = " << getBlockName(Header) << "\n");
 
     for (const LoopT *L : *Loop)
       Q.emplace_back(L, &Loops.back());
@@ -1128,8 +1130,8 @@
 
     Working[Index].Loop = HeaderData.Loop;
     HeaderData.Loop->Nodes.push_back(Index);
-    DEBUG(dbgs() << " - loop = " << getBlockName(Header)
-                 << ": member = " << getBlockName(Index) << "\n");
+    LLVM_DEBUG(dbgs() << " - loop = " << getBlockName(Header)
+                      << ": member = " << getBlockName(Index) << "\n");
   }
 }
 
@@ -1150,10 +1152,10 @@
 template <class BT>
 bool BlockFrequencyInfoImpl<BT>::computeMassInLoop(LoopData &Loop) {
   // Compute mass in loop.
-  DEBUG(dbgs() << "compute-mass-in-loop: " << getLoopName(Loop) << "\n");
+  LLVM_DEBUG(dbgs() << "compute-mass-in-loop: " << getLoopName(Loop) << "\n");
 
   if (Loop.isIrreducible()) {
-    DEBUG(dbgs() << "isIrreducible = true\n");
+    LLVM_DEBUG(dbgs() << "isIrreducible = true\n");
     Distribution Dist;
     unsigned NumHeadersWithWeight = 0;
     Optional<uint64_t> MinHeaderWeight;
@@ -1165,14 +1167,14 @@
       IsIrrLoopHeader.set(Loop.Nodes[H].Index);
       Optional<uint64_t> HeaderWeight = Block->getIrrLoopHeaderWeight();
       if (!HeaderWeight) {
-        DEBUG(dbgs() << "Missing irr loop header metadata on "
-              << getBlockName(HeaderNode) << "\n");
+        LLVM_DEBUG(dbgs() << "Missing irr loop header metadata on "
+                          << getBlockName(HeaderNode) << "\n");
         HeadersWithoutWeight.insert(H);
         continue;
       }
-      DEBUG(dbgs() << getBlockName(HeaderNode)
-            << " has irr loop header weight " << HeaderWeight.getValue()
-            << "\n");
+      LLVM_DEBUG(dbgs() << getBlockName(HeaderNode)
+                        << " has irr loop header weight "
+                        << HeaderWeight.getValue() << "\n");
       NumHeadersWithWeight++;
       uint64_t HeaderWeightValue = HeaderWeight.getValue();
       if (!MinHeaderWeight || HeaderWeightValue < MinHeaderWeight)
@@ -1194,8 +1196,8 @@
       assert(!getBlock(HeaderNode)->getIrrLoopHeaderWeight() &&
              "Shouldn't have a weight metadata");
       uint64_t MinWeight = MinHeaderWeight.getValue();
-      DEBUG(dbgs() << "Giving weight " << MinWeight
-            << " to " << getBlockName(HeaderNode) << "\n");
+      LLVM_DEBUG(dbgs() << "Giving weight " << MinWeight << " to "
+                        << getBlockName(HeaderNode) << "\n");
       if (MinWeight)
         Dist.addLocal(HeaderNode, MinWeight);
     }
@@ -1224,7 +1226,7 @@
 template <class BT>
 bool BlockFrequencyInfoImpl<BT>::tryToComputeMassInFunction() {
   // Compute mass in function.
-  DEBUG(dbgs() << "compute-mass-in-function\n");
+  LLVM_DEBUG(dbgs() << "compute-mass-in-function\n");
   assert(!Working.empty() && "no blocks in function");
   assert(!Working[0].isLoopHeader() && "entry block is a loop header");
 
@@ -1276,9 +1278,10 @@
 template <class BT>
 void BlockFrequencyInfoImpl<BT>::computeIrreducibleMass(
     LoopData *OuterLoop, std::list<LoopData>::iterator Insert) {
-  DEBUG(dbgs() << "analyze-irreducible-in-";
-        if (OuterLoop) dbgs() << "loop: " << getLoopName(*OuterLoop) << "\n";
-        else dbgs() << "function\n");
+  LLVM_DEBUG(dbgs() << "analyze-irreducible-in-";
+             if (OuterLoop) dbgs()
+             << "loop: " << getLoopName(*OuterLoop) << "\n";
+             else dbgs() << "function\n");
 
   using namespace bfi_detail;
 
@@ -1304,7 +1307,7 @@
 bool
 BlockFrequencyInfoImpl<BT>::propagateMassToSuccessors(LoopData *OuterLoop,
                                                       const BlockNode &Node) {
-  DEBUG(dbgs() << " - node: " << getBlockName(Node) << "\n");
+  LLVM_DEBUG(dbgs() << " - node: " << getBlockName(Node) << "\n");
   // Calculate probability for successors.
   Distribution Dist;
   if (auto *Loop = Working[Node.Index].getPackagedLoop()) {
diff --git a/linux-x64/clang/include/llvm/Analysis/BranchProbabilityInfo.h b/linux-x64/clang/include/llvm/Analysis/BranchProbabilityInfo.h
index 417b649..45277db 100644
--- a/linux-x64/clang/include/llvm/Analysis/BranchProbabilityInfo.h
+++ b/linux-x64/clang/include/llvm/Analysis/BranchProbabilityInfo.h
@@ -38,7 +38,7 @@
 class TargetLibraryInfo;
 class Value;
 
-/// \brief Analysis providing branch probability information.
+/// Analysis providing branch probability information.
 ///
 /// This is a function analysis which provides information on the relative
 /// probabilities of each "edge" in the function's CFG where such an edge is
@@ -79,7 +79,7 @@
 
   void print(raw_ostream &OS) const;
 
-  /// \brief Get an edge's probability, relative to other out-edges of the Src.
+  /// Get an edge's probability, relative to other out-edges of the Src.
   ///
   /// This routine provides access to the fractional probability between zero
   /// (0%) and one (100%) of this edge executing, relative to other edges
@@ -88,7 +88,7 @@
   BranchProbability getEdgeProbability(const BasicBlock *Src,
                                        unsigned IndexInSuccessors) const;
 
-  /// \brief Get the probability of going from Src to Dst.
+  /// Get the probability of going from Src to Dst.
   ///
   /// It returns the sum of all probabilities for edges from Src to Dst.
   BranchProbability getEdgeProbability(const BasicBlock *Src,
@@ -97,19 +97,19 @@
   BranchProbability getEdgeProbability(const BasicBlock *Src,
                                        succ_const_iterator Dst) const;
 
-  /// \brief Test if an edge is hot relative to other out-edges of the Src.
+  /// Test if an edge is hot relative to other out-edges of the Src.
   ///
   /// Check whether this edge out of the source block is 'hot'. We define hot
   /// as having a relative probability >= 80%.
   bool isEdgeHot(const BasicBlock *Src, const BasicBlock *Dst) const;
 
-  /// \brief Retrieve the hot successor of a block if one exists.
+  /// Retrieve the hot successor of a block if one exists.
   ///
   /// Given a basic block, look through its successors and if one exists for
   /// which \see isEdgeHot would return true, return that successor block.
   const BasicBlock *getHotSucc(const BasicBlock *BB) const;
 
-  /// \brief Print an edge's probability.
+  /// Print an edge's probability.
   ///
   /// Retrieves an edge's probability similarly to \see getEdgeProbability, but
   /// then prints that probability to the provided stream. That stream is then
@@ -117,7 +117,7 @@
   raw_ostream &printEdgeProbability(raw_ostream &OS, const BasicBlock *Src,
                                     const BasicBlock *Dst) const;
 
-  /// \brief Set the raw edge probability for the given edge.
+  /// Set the raw edge probability for the given edge.
   ///
   /// This allows a pass to explicitly set the edge probability for an edge. It
   /// can be used when updating the CFG to update and preserve the branch
@@ -179,13 +179,13 @@
 
   DenseMap<Edge, BranchProbability> Probs;
 
-  /// \brief Track the last function we run over for printing.
+  /// Track the last function we run over for printing.
   const Function *LastF;
 
-  /// \brief Track the set of blocks directly succeeded by a returning block.
+  /// Track the set of blocks directly succeeded by a returning block.
   SmallPtrSet<const BasicBlock *, 16> PostDominatedByUnreachable;
 
-  /// \brief Track the set of blocks that always lead to a cold call.
+  /// Track the set of blocks that always lead to a cold call.
   SmallPtrSet<const BasicBlock *, 16> PostDominatedByColdCall;
 
   void updatePostDominatedByUnreachable(const BasicBlock *BB);
@@ -201,7 +201,7 @@
   bool calcInvokeHeuristics(const BasicBlock *BB);
 };
 
-/// \brief Analysis pass which computes \c BranchProbabilityInfo.
+/// Analysis pass which computes \c BranchProbabilityInfo.
 class BranchProbabilityAnalysis
     : public AnalysisInfoMixin<BranchProbabilityAnalysis> {
   friend AnalysisInfoMixin<BranchProbabilityAnalysis>;
@@ -209,14 +209,14 @@
   static AnalysisKey Key;
 
 public:
-  /// \brief Provide the result type for this analysis pass.
+  /// Provide the result type for this analysis pass.
   using Result = BranchProbabilityInfo;
 
-  /// \brief Run the analysis pass over a function and produce BPI.
+  /// Run the analysis pass over a function and produce BPI.
   BranchProbabilityInfo run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Printer pass for the \c BranchProbabilityAnalysis results.
+/// Printer pass for the \c BranchProbabilityAnalysis results.
 class BranchProbabilityPrinterPass
     : public PassInfoMixin<BranchProbabilityPrinterPass> {
   raw_ostream &OS;
@@ -227,7 +227,7 @@
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Legacy analysis pass which computes \c BranchProbabilityInfo.
+/// Legacy analysis pass which computes \c BranchProbabilityInfo.
 class BranchProbabilityInfoWrapperPass : public FunctionPass {
   BranchProbabilityInfo BPI;
 
diff --git a/linux-x64/clang/include/llvm/Analysis/CFG.h b/linux-x64/clang/include/llvm/Analysis/CFG.h
index d569464..cccdd16 100644
--- a/linux-x64/clang/include/llvm/Analysis/CFG.h
+++ b/linux-x64/clang/include/llvm/Analysis/CFG.h
@@ -49,7 +49,7 @@
 bool isCriticalEdge(const TerminatorInst *TI, unsigned SuccNum,
                     bool AllowIdenticalEdges = false);
 
-/// \brief Determine whether instruction 'To' is reachable from 'From',
+/// Determine whether instruction 'To' is reachable from 'From',
 /// returning true if uncertain.
 ///
 /// Determine whether there is a path from From to To within a single function.
@@ -68,7 +68,7 @@
                             const DominatorTree *DT = nullptr,
                             const LoopInfo *LI = nullptr);
 
-/// \brief Determine whether block 'To' is reachable from 'From', returning
+/// Determine whether block 'To' is reachable from 'From', returning
 /// true if uncertain.
 ///
 /// Determine whether there is a path from From to To within a single function.
@@ -78,7 +78,7 @@
                             const DominatorTree *DT = nullptr,
                             const LoopInfo *LI = nullptr);
 
-/// \brief Determine whether there is at least one path from a block in
+/// Determine whether there is at least one path from a block in
 /// 'Worklist' to 'StopBB', returning true if uncertain.
 ///
 /// Determine whether there is a path from at least one block in Worklist to
@@ -90,7 +90,7 @@
                                     const DominatorTree *DT = nullptr,
                                     const LoopInfo *LI = nullptr);
 
-/// \brief Return true if the control flow in \p RPOTraversal is irreducible.
+/// Return true if the control flow in \p RPOTraversal is irreducible.
 ///
 /// This is a generic implementation to detect CFG irreducibility based on loop
 /// info analysis. It can be used for any kind of CFG (Loop, MachineLoop,
diff --git a/linux-x64/clang/include/llvm/Analysis/CFLAndersAliasAnalysis.h b/linux-x64/clang/include/llvm/Analysis/CFLAndersAliasAnalysis.h
index 6239d53..8ae7255 100644
--- a/linux-x64/clang/include/llvm/Analysis/CFLAndersAliasAnalysis.h
+++ b/linux-x64/clang/include/llvm/Analysis/CFLAndersAliasAnalysis.h
@@ -56,7 +56,7 @@
   /// Evict the given function from cache
   void evict(const Function *Fn);
 
-  /// \brief Get the alias summary for the given function
+  /// Get the alias summary for the given function
   /// Return nullptr if the summary is not found or not available
   const cflaa::AliasSummary *getAliasSummary(const Function &);
 
@@ -64,19 +64,19 @@
   AliasResult alias(const MemoryLocation &, const MemoryLocation &);
 
 private:
-  /// \brief Ensures that the given function is available in the cache.
+  /// Ensures that the given function is available in the cache.
   /// Returns the appropriate entry from the cache.
   const Optional<FunctionInfo> &ensureCached(const Function &);
 
-  /// \brief Inserts the given Function into the cache.
+  /// Inserts the given Function into the cache.
   void scan(const Function &);
 
-  /// \brief Build summary for a given function
+  /// Build summary for a given function
   FunctionInfo buildInfoFrom(const Function &);
 
   const TargetLibraryInfo &TLI;
 
-  /// \brief Cached mapping of Functions to their StratifiedSets.
+  /// Cached mapping of Functions to their StratifiedSets.
   /// If a function's sets are currently being built, it is marked
   /// in the cache as an Optional without a value. This way, if we
   /// have any kind of recursion, it is discernable from a function
diff --git a/linux-x64/clang/include/llvm/Analysis/CFLSteensAliasAnalysis.h b/linux-x64/clang/include/llvm/Analysis/CFLSteensAliasAnalysis.h
index ee9e290..09e366f 100644
--- a/linux-x64/clang/include/llvm/Analysis/CFLSteensAliasAnalysis.h
+++ b/linux-x64/clang/include/llvm/Analysis/CFLSteensAliasAnalysis.h
@@ -55,16 +55,16 @@
     return false;
   }
 
-  /// \brief Inserts the given Function into the cache.
+  /// Inserts the given Function into the cache.
   void scan(Function *Fn);
 
   void evict(Function *Fn);
 
-  /// \brief Ensures that the given function is available in the cache.
+  /// Ensures that the given function is available in the cache.
   /// Returns the appropriate entry from the cache.
   const Optional<FunctionInfo> &ensureCached(Function *Fn);
 
-  /// \brief Get the alias summary for the given function
+  /// Get the alias summary for the given function
   /// Return nullptr if the summary is not found or not available
   const cflaa::AliasSummary *getAliasSummary(Function &Fn);
 
@@ -92,7 +92,7 @@
 private:
   const TargetLibraryInfo &TLI;
 
-  /// \brief Cached mapping of Functions to their StratifiedSets.
+  /// Cached mapping of Functions to their StratifiedSets.
   /// If a function's sets are currently being built, it is marked
   /// in the cache as an Optional without a value. This way, if we
   /// have any kind of recursion, it is discernable from a function
diff --git a/linux-x64/clang/include/llvm/Analysis/CGSCCPassManager.h b/linux-x64/clang/include/llvm/Analysis/CGSCCPassManager.h
index 457d5a0..5e83ea2 100644
--- a/linux-x64/clang/include/llvm/Analysis/CGSCCPassManager.h
+++ b/linux-x64/clang/include/llvm/Analysis/CGSCCPassManager.h
@@ -119,7 +119,7 @@
 
 extern template class AnalysisManager<LazyCallGraph::SCC, LazyCallGraph &>;
 
-/// \brief The CGSCC analysis manager.
+/// The CGSCC analysis manager.
 ///
 /// See the documentation for the AnalysisManager template for detail
 /// documentation. This type serves as a convenient way to refer to this
@@ -140,7 +140,7 @@
 extern template class PassManager<LazyCallGraph::SCC, CGSCCAnalysisManager,
                                   LazyCallGraph &, CGSCCUpdateResult &>;
 
-/// \brief The CGSCC pass manager.
+/// The CGSCC pass manager.
 ///
 /// See the documentation for the PassManager template for details. It runs
 /// a sequence of SCC passes over each SCC that the manager is run over. This
@@ -175,10 +175,10 @@
   explicit Result(CGSCCAnalysisManager &InnerAM, LazyCallGraph &G)
       : InnerAM(&InnerAM), G(&G) {}
 
-  /// \brief Accessor for the analysis manager.
+  /// Accessor for the analysis manager.
   CGSCCAnalysisManager &getManager() { return *InnerAM; }
 
-  /// \brief Handler for invalidation of the Module.
+  /// Handler for invalidation of the Module.
   ///
   /// If the proxy analysis itself is preserved, then we assume that the set of
   /// SCCs in the Module hasn't changed. Thus any pointers to SCCs in the
@@ -302,7 +302,7 @@
       &InlinedInternalEdges;
 };
 
-/// \brief The core module pass which does a post-order walk of the SCCs and
+/// The core module pass which does a post-order walk of the SCCs and
 /// runs a CGSCC pass over each one.
 ///
 /// Designed to allow composition of a CGSCCPass(Manager) and
@@ -338,7 +338,7 @@
     return *this;
   }
 
-  /// \brief Runs the CGSCC pass across every SCC in the module.
+  /// Runs the CGSCC pass across every SCC in the module.
   PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM) {
     // Setup the CGSCC analysis manager from its proxy.
     CGSCCAnalysisManager &CGAM =
@@ -387,15 +387,15 @@
       do {
         LazyCallGraph::RefSCC *RC = RCWorklist.pop_back_val();
         if (InvalidRefSCCSet.count(RC)) {
-          DEBUG(dbgs() << "Skipping an invalid RefSCC...\n");
+          LLVM_DEBUG(dbgs() << "Skipping an invalid RefSCC...\n");
           continue;
         }
 
         assert(CWorklist.empty() &&
                "Should always start with an empty SCC worklist");
 
-        DEBUG(dbgs() << "Running an SCC pass across the RefSCC: " << *RC
-                     << "\n");
+        LLVM_DEBUG(dbgs() << "Running an SCC pass across the RefSCC: " << *RC
+                          << "\n");
 
         // Push the initial SCCs in reverse post-order as we'll pop off the
         // back and so see this in post-order.
@@ -409,12 +409,13 @@
           // other RefSCCs should be queued above, so we just need to skip both
           // scenarios here.
           if (InvalidSCCSet.count(C)) {
-            DEBUG(dbgs() << "Skipping an invalid SCC...\n");
+            LLVM_DEBUG(dbgs() << "Skipping an invalid SCC...\n");
             continue;
           }
           if (&C->getOuterRefSCC() != RC) {
-            DEBUG(dbgs() << "Skipping an SCC that is now part of some other "
-                            "RefSCC...\n");
+            LLVM_DEBUG(dbgs()
+                       << "Skipping an SCC that is now part of some other "
+                          "RefSCC...\n");
             continue;
           }
 
@@ -436,7 +437,8 @@
             // If the CGSCC pass wasn't able to provide a valid updated SCC,
             // the current SCC may simply need to be skipped if invalid.
             if (UR.InvalidatedSCCs.count(C)) {
-              DEBUG(dbgs() << "Skipping invalidated root or island SCC!\n");
+              LLVM_DEBUG(dbgs()
+                         << "Skipping invalidated root or island SCC!\n");
               break;
             }
             // Check that we didn't miss any update scenario.
@@ -464,9 +466,10 @@
             // FIXME: If we ever start having RefSCC passes, we'll want to
             // iterate there too.
             if (UR.UpdatedC)
-              DEBUG(dbgs() << "Re-running SCC passes after a refinement of the "
-                              "current SCC: "
-                           << *UR.UpdatedC << "\n");
+              LLVM_DEBUG(dbgs()
+                         << "Re-running SCC passes after a refinement of the "
+                            "current SCC: "
+                         << *UR.UpdatedC << "\n");
 
             // Note that both `C` and `RC` may at this point refer to deleted,
             // invalid SCC and RefSCCs respectively. But we will short circuit
@@ -494,7 +497,7 @@
   CGSCCPassT Pass;
 };
 
-/// \brief A function to deduce a function pass type and wrap it in the
+/// A function to deduce a function pass type and wrap it in the
 /// templated adaptor.
 template <typename CGSCCPassT>
 ModuleToPostOrderCGSCCPassAdaptor<CGSCCPassT>
@@ -517,7 +520,7 @@
   public:
     explicit Result(FunctionAnalysisManager &FAM) : FAM(&FAM) {}
 
-    /// \brief Accessor for the analysis manager.
+    /// Accessor for the analysis manager.
     FunctionAnalysisManager &getManager() { return *FAM; }
 
     bool invalidate(LazyCallGraph::SCC &C, const PreservedAnalyses &PA,
@@ -552,7 +555,7 @@
     LazyCallGraph &G, LazyCallGraph::SCC &C, LazyCallGraph::Node &N,
     CGSCCAnalysisManager &AM, CGSCCUpdateResult &UR);
 
-/// \brief Adaptor that maps from a SCC to its functions.
+/// Adaptor that maps from a SCC to its functions.
 ///
 /// Designed to allow composition of a FunctionPass(Manager) and
 /// a CGSCCPassManager. Note that if this pass is constructed with a pointer
@@ -585,7 +588,7 @@
     return *this;
   }
 
-  /// \brief Runs the function pass across every function in the module.
+  /// Runs the function pass across every function in the module.
   PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
                         LazyCallGraph &CG, CGSCCUpdateResult &UR) {
     // Setup the function analysis manager from its proxy.
@@ -601,7 +604,8 @@
     // a pointer we can overwrite.
     LazyCallGraph::SCC *CurrentC = &C;
 
-    DEBUG(dbgs() << "Running function passes across an SCC: " << C << "\n");
+    LLVM_DEBUG(dbgs() << "Running function passes across an SCC: " << C
+                      << "\n");
 
     PreservedAnalyses PA = PreservedAnalyses::all();
     for (LazyCallGraph::Node *N : Nodes) {
@@ -652,7 +656,7 @@
   FunctionPassT Pass;
 };
 
-/// \brief A function to deduce a function pass type and wrap it in the
+/// A function to deduce a function pass type and wrap it in the
 /// templated adaptor.
 template <typename FunctionPassT>
 CGSCCToFunctionPassAdaptor<FunctionPassT>
@@ -757,9 +761,9 @@
         if (!F)
           return false;
 
-        DEBUG(dbgs() << "Found devirutalized call from "
-                     << CS.getParent()->getParent()->getName() << " to "
-                     << F->getName() << "\n");
+        LLVM_DEBUG(dbgs() << "Found devirutalized call from "
+                          << CS.getParent()->getParent()->getName() << " to "
+                          << F->getName() << "\n");
 
         // We now have a direct call where previously we had an indirect call,
         // so iterate to process this devirtualization site.
@@ -793,16 +797,18 @@
 
       // Otherwise, if we've already hit our max, we're done.
       if (Iteration >= MaxIterations) {
-        DEBUG(dbgs() << "Found another devirtualization after hitting the max "
-                        "number of repetitions ("
-                     << MaxIterations << ") on SCC: " << *C << "\n");
+        LLVM_DEBUG(
+            dbgs() << "Found another devirtualization after hitting the max "
+                      "number of repetitions ("
+                   << MaxIterations << ") on SCC: " << *C << "\n");
         PA.intersect(std::move(PassPA));
         break;
       }
 
-      DEBUG(dbgs()
-            << "Repeating an SCC pass after finding a devirtualization in: "
-            << *C << "\n");
+      LLVM_DEBUG(
+          dbgs()
+          << "Repeating an SCC pass after finding a devirtualization in: " << *C
+          << "\n");
 
       // Move over the new call counts in preparation for iterating.
       CallCounts = std::move(NewCallCounts);
@@ -824,7 +830,7 @@
   int MaxIterations;
 };
 
-/// \brief A function to deduce a function pass type and wrap it in the
+/// A function to deduce a function pass type and wrap it in the
 /// templated adaptor.
 template <typename PassT>
 DevirtSCCRepeatedPass<PassT> createDevirtSCCRepeatedPass(PassT Pass,
diff --git a/linux-x64/clang/include/llvm/Analysis/CallGraph.h b/linux-x64/clang/include/llvm/Analysis/CallGraph.h
index 8efc85f..f109cf2 100644
--- a/linux-x64/clang/include/llvm/Analysis/CallGraph.h
+++ b/linux-x64/clang/include/llvm/Analysis/CallGraph.h
@@ -66,7 +66,7 @@
 class Module;
 class raw_ostream;
 
-/// \brief The basic data container for the call graph of a \c Module of IR.
+/// The basic data container for the call graph of a \c Module of IR.
 ///
 /// This class exposes both the interface to the call graph for a module of IR.
 ///
@@ -77,25 +77,25 @@
   using FunctionMapTy =
       std::map<const Function *, std::unique_ptr<CallGraphNode>>;
 
-  /// \brief A map from \c Function* to \c CallGraphNode*.
+  /// A map from \c Function* to \c CallGraphNode*.
   FunctionMapTy FunctionMap;
 
-  /// \brief This node has edges to all external functions and those internal
+  /// This node has edges to all external functions and those internal
   /// functions that have their address taken.
   CallGraphNode *ExternalCallingNode;
 
-  /// \brief This node has edges to it from all functions making indirect calls
+  /// This node has edges to it from all functions making indirect calls
   /// or calling an external function.
   std::unique_ptr<CallGraphNode> CallsExternalNode;
 
-  /// \brief Replace the function represented by this node by another.
+  /// Replace the function represented by this node by another.
   ///
   /// This does not rescan the body of the function, so it is suitable when
   /// splicing the body of one function to another while also updating all
   /// callers from the old function to the new.
   void spliceFunction(const Function *From, const Function *To);
 
-  /// \brief Add a function to the call graph, and link the node to all of the
+  /// Add a function to the call graph, and link the node to all of the
   /// functions that it calls.
   void addToCallGraph(Function *F);
 
@@ -110,7 +110,7 @@
   using iterator = FunctionMapTy::iterator;
   using const_iterator = FunctionMapTy::const_iterator;
 
-  /// \brief Returns the module the call graph corresponds to.
+  /// Returns the module the call graph corresponds to.
   Module &getModule() const { return M; }
 
   inline iterator begin() { return FunctionMap.begin(); }
@@ -118,21 +118,21 @@
   inline const_iterator begin() const { return FunctionMap.begin(); }
   inline const_iterator end() const { return FunctionMap.end(); }
 
-  /// \brief Returns the call graph node for the provided function.
+  /// Returns the call graph node for the provided function.
   inline const CallGraphNode *operator[](const Function *F) const {
     const_iterator I = FunctionMap.find(F);
     assert(I != FunctionMap.end() && "Function not in callgraph!");
     return I->second.get();
   }
 
-  /// \brief Returns the call graph node for the provided function.
+  /// Returns the call graph node for the provided function.
   inline CallGraphNode *operator[](const Function *F) {
     const_iterator I = FunctionMap.find(F);
     assert(I != FunctionMap.end() && "Function not in callgraph!");
     return I->second.get();
   }
 
-  /// \brief Returns the \c CallGraphNode which is used to represent
+  /// Returns the \c CallGraphNode which is used to represent
   /// undetermined calls into the callgraph.
   CallGraphNode *getExternalCallingNode() const { return ExternalCallingNode; }
 
@@ -145,7 +145,7 @@
   // modified.
   //
 
-  /// \brief Unlink the function from this module, returning it.
+  /// Unlink the function from this module, returning it.
   ///
   /// Because this removes the function from the module, the call graph node is
   /// destroyed.  This is only valid if the function does not call any other
@@ -153,25 +153,25 @@
   /// this is to dropAllReferences before calling this.
   Function *removeFunctionFromModule(CallGraphNode *CGN);
 
-  /// \brief Similar to operator[], but this will insert a new CallGraphNode for
+  /// Similar to operator[], but this will insert a new CallGraphNode for
   /// \c F if one does not already exist.
   CallGraphNode *getOrInsertFunction(const Function *F);
 };
 
-/// \brief A node in the call graph for a module.
+/// A node in the call graph for a module.
 ///
 /// Typically represents a function in the call graph. There are also special
 /// "null" nodes used to represent theoretical entries in the call graph.
 class CallGraphNode {
 public:
-  /// \brief A pair of the calling instruction (a call or invoke)
+  /// A pair of the calling instruction (a call or invoke)
   /// and the call graph node being called.
   using CallRecord = std::pair<WeakTrackingVH, CallGraphNode *>;
 
 public:
   using CalledFunctionsVector = std::vector<CallRecord>;
 
-  /// \brief Creates a node for the specified function.
+  /// Creates a node for the specified function.
   inline CallGraphNode(Function *F) : F(F) {}
 
   CallGraphNode(const CallGraphNode &) = delete;
@@ -184,7 +184,7 @@
   using iterator = std::vector<CallRecord>::iterator;
   using const_iterator = std::vector<CallRecord>::const_iterator;
 
-  /// \brief Returns the function that this call graph node represents.
+  /// Returns the function that this call graph node represents.
   Function *getFunction() const { return F; }
 
   inline iterator begin() { return CalledFunctions.begin(); }
@@ -194,17 +194,17 @@
   inline bool empty() const { return CalledFunctions.empty(); }
   inline unsigned size() const { return (unsigned)CalledFunctions.size(); }
 
-  /// \brief Returns the number of other CallGraphNodes in this CallGraph that
+  /// Returns the number of other CallGraphNodes in this CallGraph that
   /// reference this node in their callee list.
   unsigned getNumReferences() const { return NumReferences; }
 
-  /// \brief Returns the i'th called function.
+  /// Returns the i'th called function.
   CallGraphNode *operator[](unsigned i) const {
     assert(i < CalledFunctions.size() && "Invalid index");
     return CalledFunctions[i].second;
   }
 
-  /// \brief Print out this call graph node.
+  /// Print out this call graph node.
   void dump() const;
   void print(raw_ostream &OS) const;
 
@@ -213,7 +213,7 @@
   // modified
   //
 
-  /// \brief Removes all edges from this CallGraphNode to any functions it
+  /// Removes all edges from this CallGraphNode to any functions it
   /// calls.
   void removeAllCalledFunctions() {
     while (!CalledFunctions.empty()) {
@@ -222,14 +222,14 @@
     }
   }
 
-  /// \brief Moves all the callee information from N to this node.
+  /// Moves all the callee information from N to this node.
   void stealCalledFunctionsFrom(CallGraphNode *N) {
     assert(CalledFunctions.empty() &&
            "Cannot steal callsite information if I already have some");
     std::swap(CalledFunctions, N->CalledFunctions);
   }
 
-  /// \brief Adds a function to the list of functions called by this one.
+  /// Adds a function to the list of functions called by this one.
   void addCalledFunction(CallSite CS, CallGraphNode *M) {
     assert(!CS.getInstruction() || !CS.getCalledFunction() ||
            !CS.getCalledFunction()->isIntrinsic() ||
@@ -244,23 +244,23 @@
     CalledFunctions.pop_back();
   }
 
-  /// \brief Removes the edge in the node for the specified call site.
+  /// Removes the edge in the node for the specified call site.
   ///
   /// Note that this method takes linear time, so it should be used sparingly.
   void removeCallEdgeFor(CallSite CS);
 
-  /// \brief Removes all call edges from this node to the specified callee
+  /// Removes all call edges from this node to the specified callee
   /// function.
   ///
   /// This takes more time to execute than removeCallEdgeTo, so it should not
   /// be used unless necessary.
   void removeAnyCallEdgeTo(CallGraphNode *Callee);
 
-  /// \brief Removes one edge associated with a null callsite from this node to
+  /// Removes one edge associated with a null callsite from this node to
   /// the specified callee function.
   void removeOneAbstractEdgeTo(CallGraphNode *Callee);
 
-  /// \brief Replaces the edge in the node for the specified call site with a
+  /// Replaces the edge in the node for the specified call site with a
   /// new one.
   ///
   /// Note that this method takes linear time, so it should be used sparingly.
@@ -273,18 +273,18 @@
 
   std::vector<CallRecord> CalledFunctions;
 
-  /// \brief The number of times that this CallGraphNode occurs in the
+  /// The number of times that this CallGraphNode occurs in the
   /// CalledFunctions array of this or other CallGraphNodes.
   unsigned NumReferences = 0;
 
   void DropRef() { --NumReferences; }
   void AddRef() { ++NumReferences; }
 
-  /// \brief A special function that should only be used by the CallGraph class.
+  /// A special function that should only be used by the CallGraph class.
   void allReferencesDropped() { NumReferences = 0; }
 };
 
-/// \brief An analysis pass to compute the \c CallGraph for a \c Module.
+/// An analysis pass to compute the \c CallGraph for a \c Module.
 ///
 /// This class implements the concept of an analysis pass used by the \c
 /// ModuleAnalysisManager to run an analysis over a module and cache the
@@ -295,16 +295,16 @@
   static AnalysisKey Key;
 
 public:
-  /// \brief A formulaic type to inform clients of the result type.
+  /// A formulaic type to inform clients of the result type.
   using Result = CallGraph;
 
-  /// \brief Compute the \c CallGraph for the module \c M.
+  /// Compute the \c CallGraph for the module \c M.
   ///
   /// The real work here is done in the \c CallGraph constructor.
   CallGraph run(Module &M, ModuleAnalysisManager &) { return CallGraph(M); }
 };
 
-/// \brief Printer pass for the \c CallGraphAnalysis results.
+/// Printer pass for the \c CallGraphAnalysis results.
 class CallGraphPrinterPass : public PassInfoMixin<CallGraphPrinterPass> {
   raw_ostream &OS;
 
@@ -314,7 +314,7 @@
   PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
 };
 
-/// \brief The \c ModulePass which wraps up a \c CallGraph and the logic to
+/// The \c ModulePass which wraps up a \c CallGraph and the logic to
 /// build it.
 ///
 /// This class exposes both the interface to the call graph container and the
@@ -330,7 +330,7 @@
   CallGraphWrapperPass();
   ~CallGraphWrapperPass() override;
 
-  /// \brief The internal \c CallGraph around which the rest of this interface
+  /// The internal \c CallGraph around which the rest of this interface
   /// is wrapped.
   const CallGraph &getCallGraph() const { return *G; }
   CallGraph &getCallGraph() { return *G; }
@@ -338,7 +338,7 @@
   using iterator = CallGraph::iterator;
   using const_iterator = CallGraph::const_iterator;
 
-  /// \brief Returns the module the call graph corresponds to.
+  /// Returns the module the call graph corresponds to.
   Module &getModule() const { return G->getModule(); }
 
   inline iterator begin() { return G->begin(); }
@@ -346,15 +346,15 @@
   inline const_iterator begin() const { return G->begin(); }
   inline const_iterator end() const { return G->end(); }
 
-  /// \brief Returns the call graph node for the provided function.
+  /// Returns the call graph node for the provided function.
   inline const CallGraphNode *operator[](const Function *F) const {
     return (*G)[F];
   }
 
-  /// \brief Returns the call graph node for the provided function.
+  /// Returns the call graph node for the provided function.
   inline CallGraphNode *operator[](const Function *F) { return (*G)[F]; }
 
-  /// \brief Returns the \c CallGraphNode which is used to represent
+  /// Returns the \c CallGraphNode which is used to represent
   /// undetermined calls into the callgraph.
   CallGraphNode *getExternalCallingNode() const {
     return G->getExternalCallingNode();
@@ -369,7 +369,7 @@
   // modified.
   //
 
-  /// \brief Unlink the function from this module, returning it.
+  /// Unlink the function from this module, returning it.
   ///
   /// Because this removes the function from the module, the call graph node is
   /// destroyed.  This is only valid if the function does not call any other
@@ -379,7 +379,7 @@
     return G->removeFunctionFromModule(CGN);
   }
 
-  /// \brief Similar to operator[], but this will insert a new CallGraphNode for
+  /// Similar to operator[], but this will insert a new CallGraphNode for
   /// \c F if one does not already exist.
   CallGraphNode *getOrInsertFunction(const Function *F) {
     return G->getOrInsertFunction(F);
diff --git a/linux-x64/clang/include/llvm/Analysis/CaptureTracking.h b/linux-x64/clang/include/llvm/Analysis/CaptureTracking.h
index 8d2c095..7a869a5 100644
--- a/linux-x64/clang/include/llvm/Analysis/CaptureTracking.h
+++ b/linux-x64/clang/include/llvm/Analysis/CaptureTracking.h
@@ -46,7 +46,7 @@
   /// to speed up capture-tracker queries.
   bool PointerMayBeCapturedBefore(const Value *V, bool ReturnCaptures,
                                   bool StoreCaptures, const Instruction *I,
-                                  DominatorTree *DT, bool IncludeI = false,
+                                  const DominatorTree *DT, bool IncludeI = false,
                                   OrderedBasicBlock *OBB = nullptr);
 
   /// This callback is used in conjunction with PointerMayBeCaptured. In
diff --git a/linux-x64/clang/include/llvm/Analysis/CodeMetrics.h b/linux-x64/clang/include/llvm/Analysis/CodeMetrics.h
index 9e861ac..7529022 100644
--- a/linux-x64/clang/include/llvm/Analysis/CodeMetrics.h
+++ b/linux-x64/clang/include/llvm/Analysis/CodeMetrics.h
@@ -29,7 +29,7 @@
 class TargetTransformInfo;
 class Value;
 
-/// \brief Check whether a call will lower to something small.
+/// Check whether a call will lower to something small.
 ///
 /// This tests checks whether this callsite will lower to something
 /// significantly cheaper than a traditional call, often a single
@@ -37,64 +37,64 @@
 /// return true, so will this function.
 bool callIsSmall(ImmutableCallSite CS);
 
-/// \brief Utility to calculate the size and a few similar metrics for a set
+/// Utility to calculate the size and a few similar metrics for a set
 /// of basic blocks.
 struct CodeMetrics {
-  /// \brief True if this function contains a call to setjmp or other functions
+  /// True if this function contains a call to setjmp or other functions
   /// with attribute "returns twice" without having the attribute itself.
   bool exposesReturnsTwice = false;
 
-  /// \brief True if this function calls itself.
+  /// True if this function calls itself.
   bool isRecursive = false;
 
-  /// \brief True if this function cannot be duplicated.
+  /// True if this function cannot be duplicated.
   ///
   /// True if this function contains one or more indirect branches, or it contains
   /// one or more 'noduplicate' instructions.
   bool notDuplicatable = false;
 
-  /// \brief True if this function contains a call to a convergent function.
+  /// True if this function contains a call to a convergent function.
   bool convergent = false;
 
-  /// \brief True if this function calls alloca (in the C sense).
+  /// True if this function calls alloca (in the C sense).
   bool usesDynamicAlloca = false;
 
-  /// \brief Number of instructions in the analyzed blocks.
+  /// Number of instructions in the analyzed blocks.
   unsigned NumInsts = false;
 
-  /// \brief Number of analyzed blocks.
+  /// Number of analyzed blocks.
   unsigned NumBlocks = false;
 
-  /// \brief Keeps track of basic block code size estimates.
+  /// Keeps track of basic block code size estimates.
   DenseMap<const BasicBlock *, unsigned> NumBBInsts;
 
-  /// \brief Keep track of the number of calls to 'big' functions.
+  /// Keep track of the number of calls to 'big' functions.
   unsigned NumCalls = false;
 
-  /// \brief The number of calls to internal functions with a single caller.
+  /// The number of calls to internal functions with a single caller.
   ///
   /// These are likely targets for future inlining, likely exposed by
   /// interleaved devirtualization.
   unsigned NumInlineCandidates = 0;
 
-  /// \brief How many instructions produce vector values.
+  /// How many instructions produce vector values.
   ///
   /// The inliner is more aggressive with inlining vector kernels.
   unsigned NumVectorInsts = 0;
 
-  /// \brief How many 'ret' instructions the blocks contain.
+  /// How many 'ret' instructions the blocks contain.
   unsigned NumRets = 0;
 
-  /// \brief Add information about a block to the current state.
+  /// Add information about a block to the current state.
   void analyzeBasicBlock(const BasicBlock *BB, const TargetTransformInfo &TTI,
                          const SmallPtrSetImpl<const Value*> &EphValues);
 
-  /// \brief Collect a loop's ephemeral values (those used only by an assume
+  /// Collect a loop's ephemeral values (those used only by an assume
   /// or similar intrinsics in the loop).
   static void collectEphemeralValues(const Loop *L, AssumptionCache *AC,
                                      SmallPtrSetImpl<const Value *> &EphValues);
 
-  /// \brief Collect a functions's ephemeral values (those used only by an
+  /// Collect a functions's ephemeral values (those used only by an
   /// assume or similar intrinsics in the function).
   static void collectEphemeralValues(const Function *L, AssumptionCache *AC,
                                      SmallPtrSetImpl<const Value *> &EphValues);
diff --git a/linux-x64/clang/include/llvm/Analysis/ConstantFolding.h b/linux-x64/clang/include/llvm/Analysis/ConstantFolding.h
index 354b557..192c1ab 100644
--- a/linux-x64/clang/include/llvm/Analysis/ConstantFolding.h
+++ b/linux-x64/clang/include/llvm/Analysis/ConstantFolding.h
@@ -73,19 +73,19 @@
                                 Constant *RHS, const DataLayout &DL,
                                 const TargetLibraryInfo *TLI = nullptr);
 
-/// \brief Attempt to constant fold a binary operation with the specified
+/// Attempt to constant fold a binary operation with the specified
 /// operands.  If it fails, it returns a constant expression of the specified
 /// operands.
 Constant *ConstantFoldBinaryOpOperands(unsigned Opcode, Constant *LHS,
                                        Constant *RHS, const DataLayout &DL);
 
-/// \brief Attempt to constant fold a select instruction with the specified
+/// Attempt to constant fold a select instruction with the specified
 /// operands. The constant result is returned if successful; if not, null is
 /// returned.
 Constant *ConstantFoldSelectInstruction(Constant *Cond, Constant *V1,
                                         Constant *V2);
 
-/// \brief Attempt to constant fold a cast with the specified operand.  If it
+/// Attempt to constant fold a cast with the specified operand.  If it
 /// fails, it returns a constant expression of the specified operand.
 Constant *ConstantFoldCastOperand(unsigned Opcode, Constant *C, Type *DestTy,
                                   const DataLayout &DL);
@@ -96,25 +96,25 @@
 Constant *ConstantFoldInsertValueInstruction(Constant *Agg, Constant *Val,
                                              ArrayRef<unsigned> Idxs);
 
-/// \brief Attempt to constant fold an extractvalue instruction with the
+/// Attempt to constant fold an extractvalue instruction with the
 /// specified operands and indices.  The constant result is returned if
 /// successful; if not, null is returned.
 Constant *ConstantFoldExtractValueInstruction(Constant *Agg,
                                               ArrayRef<unsigned> Idxs);
 
-/// \brief Attempt to constant fold an insertelement instruction with the
+/// Attempt to constant fold an insertelement instruction with the
 /// specified operands and indices.  The constant result is returned if
 /// successful; if not, null is returned.
 Constant *ConstantFoldInsertElementInstruction(Constant *Val,
                                                Constant *Elt,
                                                Constant *Idx);
 
-/// \brief Attempt to constant fold an extractelement instruction with the
+/// Attempt to constant fold an extractelement instruction with the
 /// specified operands and indices.  The constant result is returned if
 /// successful; if not, null is returned.
 Constant *ConstantFoldExtractElementInstruction(Constant *Val, Constant *Idx);
 
-/// \brief Attempt to constant fold a shufflevector instruction with the
+/// Attempt to constant fold a shufflevector instruction with the
 /// specified operands and indices.  The constant result is returned if
 /// successful; if not, null is returned.
 Constant *ConstantFoldShuffleVectorInstruction(Constant *V1, Constant *V2,
@@ -153,7 +153,7 @@
 Constant *ConstantFoldLoadThroughBitcast(Constant *C, Type *DestTy,
                                          const DataLayout &DL);
 
-/// \brief Check whether the given call has no side-effects.
+/// Check whether the given call has no side-effects.
 /// Specifically checks for math routimes which sometimes set errno.
 bool isMathLibCallNoop(CallSite CS, const TargetLibraryInfo *TLI);
 }
diff --git a/linux-x64/clang/include/llvm/Analysis/DOTGraphTraitsPass.h b/linux-x64/clang/include/llvm/Analysis/DOTGraphTraitsPass.h
index 39f9c39..b7447a0 100644
--- a/linux-x64/clang/include/llvm/Analysis/DOTGraphTraitsPass.h
+++ b/linux-x64/clang/include/llvm/Analysis/DOTGraphTraitsPass.h
@@ -20,7 +20,7 @@
 
 namespace llvm {
 
-/// \brief Default traits class for extracting a graph from an analysis pass.
+/// Default traits class for extracting a graph from an analysis pass.
 ///
 /// This assumes that 'GraphT' is 'AnalysisT *' and so just passes it through.
 template <typename AnalysisT, typename GraphT = AnalysisT *>
@@ -36,7 +36,7 @@
   DOTGraphTraitsViewer(StringRef GraphName, char &ID)
       : FunctionPass(ID), Name(GraphName) {}
 
-  /// @brief Return true if this function should be processed.
+  /// Return true if this function should be processed.
   ///
   /// An implementation of this class my override this function to indicate that
   /// only certain functions should be viewed.
@@ -78,7 +78,7 @@
   DOTGraphTraitsPrinter(StringRef GraphName, char &ID)
       : FunctionPass(ID), Name(GraphName) {}
 
-  /// @brief Return true if this function should be processed.
+  /// Return true if this function should be processed.
   ///
   /// An implementation of this class my override this function to indicate that
   /// only certain functions should be printed.
diff --git a/linux-x64/clang/include/llvm/Analysis/DemandedBits.h b/linux-x64/clang/include/llvm/Analysis/DemandedBits.h
index ab86682..d438460 100644
--- a/linux-x64/clang/include/llvm/Analysis/DemandedBits.h
+++ b/linux-x64/clang/include/llvm/Analysis/DemandedBits.h
@@ -96,15 +96,15 @@
   static AnalysisKey Key;
 
 public:
-  /// \brief Provide the result type for this analysis pass.
+  /// Provide the result type for this analysis pass.
   using Result = DemandedBits;
 
-  /// \brief Run the analysis pass over a function and produce demanded bits
+  /// Run the analysis pass over a function and produce demanded bits
   /// information.
   DemandedBits run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Printer pass for DemandedBits
+/// Printer pass for DemandedBits
 class DemandedBitsPrinterPass : public PassInfoMixin<DemandedBitsPrinterPass> {
   raw_ostream &OS;
 
diff --git a/linux-x64/clang/include/llvm/Analysis/DependenceAnalysis.h b/linux-x64/clang/include/llvm/Analysis/DependenceAnalysis.h
index 90f33b8..c8ec737 100644
--- a/linux-x64/clang/include/llvm/Analysis/DependenceAnalysis.h
+++ b/linux-x64/clang/include/llvm/Analysis/DependenceAnalysis.h
@@ -557,6 +557,17 @@
                           const SCEV *X,
                           const SCEV *Y) const;
 
+    /// isKnownLessThan - Compare to see if S is less than Size
+    /// Another wrapper for isKnownNegative(S - max(Size, 1)) with some extra
+    /// checking if S is an AddRec and we can prove lessthan using the loop
+    /// bounds.
+    bool isKnownLessThan(const SCEV *S, const SCEV *Size) const;
+
+    /// isKnownNonNegative - Compare to see if S is known not to be negative
+    /// Uses the fact that S comes from Ptr, which may be an inbound GEP,
+    /// Proving there is no wrapping going on.
+    bool isKnownNonNegative(const SCEV *S, const Value *Ptr) const;
+
     /// collectUpperBound - All subscripts are the same type (on my machine,
     /// an i64). The loop bound may be a smaller type. collectUpperBound
     /// find the bound, if available, and zero extends it to the Type T.
@@ -914,7 +925,7 @@
                         SmallVectorImpl<Subscript> &Pair);
   }; // class DependenceInfo
 
-  /// \brief AnalysisPass to compute dependence information in a function
+  /// AnalysisPass to compute dependence information in a function
   class DependenceAnalysis : public AnalysisInfoMixin<DependenceAnalysis> {
   public:
     typedef DependenceInfo Result;
@@ -925,7 +936,7 @@
     friend struct AnalysisInfoMixin<DependenceAnalysis>;
   }; // class DependenceAnalysis
 
-  /// \brief Legacy pass manager pass to access dependence information
+  /// Legacy pass manager pass to access dependence information
   class DependenceAnalysisWrapperPass : public FunctionPass {
   public:
     static char ID; // Class identification, replacement for typeinfo
diff --git a/linux-x64/clang/include/llvm/Analysis/DivergenceAnalysis.h b/linux-x64/clang/include/llvm/Analysis/DivergenceAnalysis.h
index dd3c68e..328c864 100644
--- a/linux-x64/clang/include/llvm/Analysis/DivergenceAnalysis.h
+++ b/linux-x64/clang/include/llvm/Analysis/DivergenceAnalysis.h
@@ -37,12 +37,21 @@
   // Print all divergent branches in the function.
   void print(raw_ostream &OS, const Module *) const override;
 
-  // Returns true if V is divergent.
+  // Returns true if V is divergent at its definition.
+  //
+  // Even if this function returns false, V may still be divergent when used
+  // in a different basic block.
   bool isDivergent(const Value *V) const { return DivergentValues.count(V); }
 
   // Returns true if V is uniform/non-divergent.
+  //
+  // Even if this function returns true, V may still be divergent when used
+  // in a different basic block.
   bool isUniform(const Value *V) const { return !isDivergent(V); }
 
+  // Keep the analysis results uptodate by removing an erased value.
+  void removeValue(const Value *V) { DivergentValues.erase(V); }
+
 private:
   // Stores all divergent values.
   DenseSet<const Value *> DivergentValues;
diff --git a/linux-x64/clang/include/llvm/Analysis/DominanceFrontier.h b/linux-x64/clang/include/llvm/Analysis/DominanceFrontier.h
index a304dff..d94c420 100644
--- a/linux-x64/clang/include/llvm/Analysis/DominanceFrontier.h
+++ b/linux-x64/clang/include/llvm/Analysis/DominanceFrontier.h
@@ -19,6 +19,7 @@
 #define LLVM_ANALYSIS_DOMINANCEFRONTIER_H
 
 #include "llvm/ADT/GraphTraits.h"
+#include "llvm/Config/llvm-config.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/GenericDomTree.h"
@@ -179,7 +180,7 @@
 extern template class DominanceFrontierBase<BasicBlock, true>;
 extern template class ForwardDominanceFrontierBase<BasicBlock>;
 
-/// \brief Analysis pass which computes a \c DominanceFrontier.
+/// Analysis pass which computes a \c DominanceFrontier.
 class DominanceFrontierAnalysis
     : public AnalysisInfoMixin<DominanceFrontierAnalysis> {
   friend AnalysisInfoMixin<DominanceFrontierAnalysis>;
@@ -187,14 +188,14 @@
   static AnalysisKey Key;
 
 public:
-  /// \brief Provide the result type for this analysis pass.
+  /// Provide the result type for this analysis pass.
   using Result = DominanceFrontier;
 
-  /// \brief Run the analysis pass over a function and produce a dominator tree.
+  /// Run the analysis pass over a function and produce a dominator tree.
   DominanceFrontier run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Printer pass for the \c DominanceFrontier.
+/// Printer pass for the \c DominanceFrontier.
 class DominanceFrontierPrinterPass
     : public PassInfoMixin<DominanceFrontierPrinterPass> {
   raw_ostream &OS;
diff --git a/linux-x64/clang/include/llvm/Analysis/DominanceFrontierImpl.h b/linux-x64/clang/include/llvm/Analysis/DominanceFrontierImpl.h
index dffb2e0..99224c0 100644
--- a/linux-x64/clang/include/llvm/Analysis/DominanceFrontierImpl.h
+++ b/linux-x64/clang/include/llvm/Analysis/DominanceFrontierImpl.h
@@ -21,6 +21,7 @@
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/Analysis/DominanceFrontier.h"
+#include "llvm/Config/llvm-config.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/GenericDomTree.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/linux-x64/clang/include/llvm/Analysis/EHPersonalities.h b/linux-x64/clang/include/llvm/Analysis/EHPersonalities.h
index 2c45ab4..fe0e65b 100644
--- a/linux-x64/clang/include/llvm/Analysis/EHPersonalities.h
+++ b/linux-x64/clang/include/llvm/Analysis/EHPersonalities.h
@@ -32,10 +32,11 @@
   MSVC_Win64SEH,
   MSVC_CXX,
   CoreCLR,
-  Rust
+  Rust,
+  Wasm_CXX
 };
 
-/// \brief See if the given exception handling personality function is one
+/// See if the given exception handling personality function is one
 /// that we understand.  If so, return a description of it; otherwise return
 /// Unknown.
 EHPersonality classifyEHPersonality(const Value *Pers);
@@ -44,7 +45,7 @@
 
 EHPersonality getDefaultEHPersonality(const Triple &T);
 
-/// \brief Returns true if this personality function catches asynchronous
+/// Returns true if this personality function catches asynchronous
 /// exceptions.
 inline bool isAsynchronousEHPersonality(EHPersonality Pers) {
   // The two SEH personality functions can catch asynch exceptions. We assume
@@ -59,7 +60,7 @@
   llvm_unreachable("invalid enum");
 }
 
-/// \brief Returns true if this is a personality function that invokes
+/// Returns true if this is a personality function that invokes
 /// handler funclets (which must return to it).
 inline bool isFuncletEHPersonality(EHPersonality Pers) {
   switch (Pers) {
@@ -74,7 +75,23 @@
   llvm_unreachable("invalid enum");
 }
 
-/// \brief Return true if this personality may be safely removed if there
+/// Returns true if this personality uses scope-style EH IR instructions:
+/// catchswitch, catchpad/ret, and cleanuppad/ret.
+inline bool isScopedEHPersonality(EHPersonality Pers) {
+  switch (Pers) {
+  case EHPersonality::MSVC_CXX:
+  case EHPersonality::MSVC_X86SEH:
+  case EHPersonality::MSVC_Win64SEH:
+  case EHPersonality::CoreCLR:
+  case EHPersonality::Wasm_CXX:
+    return true;
+  default:
+    return false;
+  }
+  llvm_unreachable("invalid enum");
+}
+
+/// Return true if this personality may be safely removed if there
 /// are no invoke instructions remaining in the current function.
 inline bool isNoOpWithoutInvoke(EHPersonality Pers) {
   switch (Pers) {
@@ -91,7 +108,7 @@
 
 typedef TinyPtrVector<BasicBlock *> ColorVector;
 
-/// \brief If an EH funclet personality is in use (see isFuncletEHPersonality),
+/// If an EH funclet personality is in use (see isFuncletEHPersonality),
 /// this will recompute which blocks are in which funclet. It is possible that
 /// some blocks are in multiple funclets. Consider this analysis to be
 /// expensive.
diff --git a/linux-x64/clang/include/llvm/Analysis/IndirectCallPromotionAnalysis.h b/linux-x64/clang/include/llvm/Analysis/IndirectCallPromotionAnalysis.h
index 8b1c101..be3a284 100644
--- a/linux-x64/clang/include/llvm/Analysis/IndirectCallPromotionAnalysis.h
+++ b/linux-x64/clang/include/llvm/Analysis/IndirectCallPromotionAnalysis.h
@@ -48,7 +48,7 @@
 public:
   ICallPromotionAnalysis();
 
-  /// \brief Returns reference to array of InstrProfValueData for the given
+  /// Returns reference to array of InstrProfValueData for the given
   /// instruction \p I.
   ///
   /// The \p NumVals, \p TotalCount and \p NumCandidates
diff --git a/linux-x64/clang/include/llvm/Analysis/InlineCost.h b/linux-x64/clang/include/llvm/Analysis/InlineCost.h
index 138d3ac..529fb75 100644
--- a/linux-x64/clang/include/llvm/Analysis/InlineCost.h
+++ b/linux-x64/clang/include/llvm/Analysis/InlineCost.h
@@ -52,7 +52,7 @@
 const unsigned TotalAllocaSizeRecursiveCaller = 1024;
 }
 
-/// \brief Represents the cost of inlining a function.
+/// Represents the cost of inlining a function.
 ///
 /// This supports special values for functions which should "always" or
 /// "never" be inlined. Otherwise, the cost represents a unitless amount;
@@ -68,14 +68,21 @@
     NeverInlineCost = INT_MAX
   };
 
-  /// \brief The estimated cost of inlining this callsite.
+  /// The estimated cost of inlining this callsite.
   const int Cost;
 
-  /// \brief The adjusted threshold against which this cost was computed.
+  /// The adjusted threshold against which this cost was computed.
   const int Threshold;
 
+  /// Must be set for Always and Never instances.
+  const char *Reason = nullptr;
+
   // Trivial constructor, interesting logic in the factory functions below.
-  InlineCost(int Cost, int Threshold) : Cost(Cost), Threshold(Threshold) {}
+  InlineCost(int Cost, int Threshold, const char *Reason = nullptr)
+      : Cost(Cost), Threshold(Threshold), Reason(Reason) {
+    assert((isVariable() || Reason) &&
+           "Reason must be provided for Never or Always");
+  }
 
 public:
   static InlineCost get(int Cost, int Threshold) {
@@ -83,14 +90,14 @@
     assert(Cost < NeverInlineCost && "Cost crosses sentinel value");
     return InlineCost(Cost, Threshold);
   }
-  static InlineCost getAlways() {
-    return InlineCost(AlwaysInlineCost, 0);
+  static InlineCost getAlways(const char *Reason) {
+    return InlineCost(AlwaysInlineCost, 0, Reason);
   }
-  static InlineCost getNever() {
-    return InlineCost(NeverInlineCost, 0);
+  static InlineCost getNever(const char *Reason) {
+    return InlineCost(NeverInlineCost, 0, Reason);
   }
 
-  /// \brief Test whether the inline cost is low enough for inlining.
+  /// Test whether the inline cost is low enough for inlining.
   explicit operator bool() const {
     return Cost < Threshold;
   }
@@ -99,25 +106,43 @@
   bool isNever() const { return Cost == NeverInlineCost; }
   bool isVariable() const { return !isAlways() && !isNever(); }
 
-  /// \brief Get the inline cost estimate.
+  /// Get the inline cost estimate.
   /// It is an error to call this on an "always" or "never" InlineCost.
   int getCost() const {
     assert(isVariable() && "Invalid access of InlineCost");
     return Cost;
   }
 
-  /// \brief Get the threshold against which the cost was computed
+  /// Get the threshold against which the cost was computed
   int getThreshold() const {
     assert(isVariable() && "Invalid access of InlineCost");
     return Threshold;
   }
 
-  /// \brief Get the cost delta from the threshold for inlining.
+  /// Get the reason of Always or Never.
+  const char *getReason() const {
+    assert((Reason || isVariable()) &&
+           "InlineCost reason must be set for Always or Never");
+    return Reason;
+  }
+
+  /// Get the cost delta from the threshold for inlining.
   /// Only valid if the cost is of the variable kind. Returns a negative
   /// value if the cost is too high to inline.
   int getCostDelta() const { return Threshold - getCost(); }
 };
 
+/// InlineResult is basically true or false. For false results the message
+/// describes a reason why it is decided not to inline.
+struct InlineResult {
+  const char *message = nullptr;
+  InlineResult(bool result, const char *message = nullptr)
+      : message(result ? nullptr : (message ? message : "cost > threshold")) {}
+  InlineResult(const char *message = nullptr) : message(message) {}
+  operator bool() const { return !message; }
+  operator const char *() const { return message; }
+};
+
 /// Thresholds to tune inline cost analysis. The inline cost analysis decides
 /// the condition to apply a threshold and applies it. Otherwise,
 /// DefaultThreshold is used. If a threshold is Optional, it is applied only
@@ -178,7 +203,7 @@
 /// and the call/return instruction.
 int getCallsiteCost(CallSite CS, const DataLayout &DL);
 
-/// \brief Get an InlineCost object representing the cost of inlining this
+/// Get an InlineCost object representing the cost of inlining this
 /// callsite.
 ///
 /// Note that a default threshold is passed into this function. This threshold
@@ -195,7 +220,7 @@
     Optional<function_ref<BlockFrequencyInfo &(Function &)>> GetBFI,
     ProfileSummaryInfo *PSI, OptimizationRemarkEmitter *ORE = nullptr);
 
-/// \brief Get an InlineCost with the callee explicitly specified.
+/// Get an InlineCost with the callee explicitly specified.
 /// This allows you to calculate the cost of inlining a function via a
 /// pointer. This behaves exactly as the version with no explicit callee
 /// parameter in all other respects.
@@ -207,7 +232,7 @@
               Optional<function_ref<BlockFrequencyInfo &(Function &)>> GetBFI,
               ProfileSummaryInfo *PSI, OptimizationRemarkEmitter *ORE);
 
-/// \brief Minimal filter to detect invalid constructs for inlining.
+/// Minimal filter to detect invalid constructs for inlining.
 bool isInlineViable(Function &Callee);
 }
 
diff --git a/linux-x64/clang/include/llvm/Analysis/IteratedDominanceFrontier.h b/linux-x64/clang/include/llvm/Analysis/IteratedDominanceFrontier.h
index edaf4e9..6b19507 100644
--- a/linux-x64/clang/include/llvm/Analysis/IteratedDominanceFrontier.h
+++ b/linux-x64/clang/include/llvm/Analysis/IteratedDominanceFrontier.h
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 //
-/// \brief Compute iterated dominance frontiers using a linear time algorithm.
+/// Compute iterated dominance frontiers using a linear time algorithm.
 ///
 /// The algorithm used here is based on:
 ///
@@ -32,7 +32,7 @@
 
 namespace llvm {
 
-/// \brief Determine the iterated dominance frontier, given a set of defining
+/// Determine the iterated dominance frontier, given a set of defining
 /// blocks, and optionally, a set of live-in blocks.
 ///
 /// In turn, the results can be used to place phi nodes.
@@ -48,7 +48,7 @@
   IDFCalculator(DominatorTreeBase<BasicBlock, IsPostDom> &DT)
       : DT(DT), useLiveIn(false) {}
 
-  /// \brief Give the IDF calculator the set of blocks in which the value is
+  /// Give the IDF calculator the set of blocks in which the value is
   /// defined.  This is equivalent to the set of starting blocks it should be
   /// calculating the IDF for (though later gets pruned based on liveness).
   ///
@@ -57,7 +57,7 @@
     DefBlocks = &Blocks;
   }
 
-  /// \brief Give the IDF calculator the set of blocks in which the value is
+  /// Give the IDF calculator the set of blocks in which the value is
   /// live on entry to the block.   This is used to prune the IDF calculation to
   /// not include blocks where any phi insertion would be dead.
   ///
@@ -68,14 +68,14 @@
     useLiveIn = true;
   }
 
-  /// \brief Reset the live-in block set to be empty, and tell the IDF
+  /// Reset the live-in block set to be empty, and tell the IDF
   /// calculator to not use liveness anymore.
   void resetLiveInBlocks() {
     LiveInBlocks = nullptr;
     useLiveIn = false;
   }
 
-  /// \brief Calculate iterated dominance frontiers
+  /// Calculate iterated dominance frontiers
   ///
   /// This uses the linear-time phi algorithm based on DJ-graphs mentioned in
   /// the file-level comment.  It performs DF->IDF pruning using the live-in
diff --git a/linux-x64/clang/include/llvm/Analysis/LazyBlockFrequencyInfo.h b/linux-x64/clang/include/llvm/Analysis/LazyBlockFrequencyInfo.h
index 71ce084..d1afb63 100644
--- a/linux-x64/clang/include/llvm/Analysis/LazyBlockFrequencyInfo.h
+++ b/linux-x64/clang/include/llvm/Analysis/LazyBlockFrequencyInfo.h
@@ -75,7 +75,7 @@
   const LoopInfoT *LI;
 };
 
-/// \brief This is an alternative analysis pass to
+/// This is an alternative analysis pass to
 /// BlockFrequencyInfoWrapperPass.  The difference is that with this pass the
 /// block frequencies are not computed when the analysis pass is executed but
 /// rather when the BFI result is explicitly requested by the analysis client.
@@ -109,10 +109,10 @@
 
   LazyBlockFrequencyInfoPass();
 
-  /// \brief Compute and return the block frequencies.
+  /// Compute and return the block frequencies.
   BlockFrequencyInfo &getBFI() { return LBFI.getCalculated(); }
 
-  /// \brief Compute and return the block frequencies.
+  /// Compute and return the block frequencies.
   const BlockFrequencyInfo &getBFI() const { return LBFI.getCalculated(); }
 
   void getAnalysisUsage(AnalysisUsage &AU) const override;
@@ -126,7 +126,7 @@
   void print(raw_ostream &OS, const Module *M) const override;
 };
 
-/// \brief Helper for client passes to initialize dependent passes for LBFI.
+/// Helper for client passes to initialize dependent passes for LBFI.
 void initializeLazyBFIPassPass(PassRegistry &Registry);
 }
 #endif
diff --git a/linux-x64/clang/include/llvm/Analysis/LazyBranchProbabilityInfo.h b/linux-x64/clang/include/llvm/Analysis/LazyBranchProbabilityInfo.h
index e1d404b..9e6bcfe 100644
--- a/linux-x64/clang/include/llvm/Analysis/LazyBranchProbabilityInfo.h
+++ b/linux-x64/clang/include/llvm/Analysis/LazyBranchProbabilityInfo.h
@@ -26,7 +26,7 @@
 class LoopInfo;
 class TargetLibraryInfo;
 
-/// \brief This is an alternative analysis pass to
+/// This is an alternative analysis pass to
 /// BranchProbabilityInfoWrapperPass.  The difference is that with this pass the
 /// branch probabilities are not computed when the analysis pass is executed but
 /// rather when the BPI results is explicitly requested by the analysis client.
@@ -89,10 +89,10 @@
 
   LazyBranchProbabilityInfoPass();
 
-  /// \brief Compute and return the branch probabilities.
+  /// Compute and return the branch probabilities.
   BranchProbabilityInfo &getBPI() { return LBPI->getCalculated(); }
 
-  /// \brief Compute and return the branch probabilities.
+  /// Compute and return the branch probabilities.
   const BranchProbabilityInfo &getBPI() const { return LBPI->getCalculated(); }
 
   void getAnalysisUsage(AnalysisUsage &AU) const override;
@@ -106,10 +106,10 @@
   void print(raw_ostream &OS, const Module *M) const override;
 };
 
-/// \brief Helper for client passes to initialize dependent passes for LBPI.
+/// Helper for client passes to initialize dependent passes for LBPI.
 void initializeLazyBPIPassPass(PassRegistry &Registry);
 
-/// \brief Simple trait class that provides a mapping between BPI passes and the
+/// Simple trait class that provides a mapping between BPI passes and the
 /// corresponding BPInfo.
 template <typename PassT> struct BPIPassTrait {
   static PassT &getBPI(PassT *P) { return *P; }
diff --git a/linux-x64/clang/include/llvm/Analysis/LazyValueInfo.h b/linux-x64/clang/include/llvm/Analysis/LazyValueInfo.h
index cea5bf0..1a4fdb5 100644
--- a/linux-x64/clang/include/llvm/Analysis/LazyValueInfo.h
+++ b/linux-x64/clang/include/llvm/Analysis/LazyValueInfo.h
@@ -128,7 +128,7 @@
                   FunctionAnalysisManager::Invalidator &Inv);
 };
 
-/// \brief Analysis to compute lazy value information.
+/// Analysis to compute lazy value information.
 class LazyValueAnalysis : public AnalysisInfoMixin<LazyValueAnalysis> {
 public:
   typedef LazyValueInfo Result;
diff --git a/linux-x64/clang/include/llvm/Analysis/Lint.h b/linux-x64/clang/include/llvm/Analysis/Lint.h
index 7c88b13..db5919f 100644
--- a/linux-x64/clang/include/llvm/Analysis/Lint.h
+++ b/linux-x64/clang/include/llvm/Analysis/Lint.h
@@ -26,12 +26,12 @@
 class Module;
 class Function;
 
-/// @brief Create a lint pass.
+/// Create a lint pass.
 ///
 /// Check a module or function.
 FunctionPass *createLintPass();
 
-/// @brief Check a module.
+/// Check a module.
 ///
 /// This should only be used for debugging, because it plays games with
 /// PassManagers and stuff.
diff --git a/linux-x64/clang/include/llvm/Analysis/LoopAccessAnalysis.h b/linux-x64/clang/include/llvm/Analysis/LoopAccessAnalysis.h
index 28154c8..d27b3e4 100644
--- a/linux-x64/clang/include/llvm/Analysis/LoopAccessAnalysis.h
+++ b/linux-x64/clang/include/llvm/Analysis/LoopAccessAnalysis.h
@@ -38,25 +38,25 @@
 class LoopAccessInfo;
 class OptimizationRemarkEmitter;
 
-/// \brief Collection of parameters shared beetween the Loop Vectorizer and the
+/// Collection of parameters shared beetween the Loop Vectorizer and the
 /// Loop Access Analysis.
 struct VectorizerParams {
-  /// \brief Maximum SIMD width.
+  /// Maximum SIMD width.
   static const unsigned MaxVectorWidth;
 
-  /// \brief VF as overridden by the user.
+  /// VF as overridden by the user.
   static unsigned VectorizationFactor;
-  /// \brief Interleave factor as overridden by the user.
+  /// Interleave factor as overridden by the user.
   static unsigned VectorizationInterleave;
-  /// \brief True if force-vector-interleave was specified by the user.
+  /// True if force-vector-interleave was specified by the user.
   static bool isInterleaveForced();
 
-  /// \\brief When performing memory disambiguation checks at runtime do not
+  /// \When performing memory disambiguation checks at runtime do not
   /// make more than this number of comparisons.
   static unsigned RuntimeMemoryCheckThreshold;
 };
 
-/// \brief Checks memory dependences among accesses to the same underlying
+/// Checks memory dependences among accesses to the same underlying
 /// object to determine whether there vectorization is legal or not (and at
 /// which vectorization factor).
 ///
@@ -94,12 +94,12 @@
 public:
   typedef PointerIntPair<Value *, 1, bool> MemAccessInfo;
   typedef SmallVector<MemAccessInfo, 8> MemAccessInfoList;
-  /// \brief Set of potential dependent memory accesses.
+  /// Set of potential dependent memory accesses.
   typedef EquivalenceClasses<MemAccessInfo> DepCandidates;
 
-  /// \brief Dependece between memory access instructions.
+  /// Dependece between memory access instructions.
   struct Dependence {
-    /// \brief The type of the dependence.
+    /// The type of the dependence.
     enum DepType {
       // No dependence.
       NoDep,
@@ -127,36 +127,36 @@
       BackwardVectorizableButPreventsForwarding
     };
 
-    /// \brief String version of the types.
+    /// String version of the types.
     static const char *DepName[];
 
-    /// \brief Index of the source of the dependence in the InstMap vector.
+    /// Index of the source of the dependence in the InstMap vector.
     unsigned Source;
-    /// \brief Index of the destination of the dependence in the InstMap vector.
+    /// Index of the destination of the dependence in the InstMap vector.
     unsigned Destination;
-    /// \brief The type of the dependence.
+    /// The type of the dependence.
     DepType Type;
 
     Dependence(unsigned Source, unsigned Destination, DepType Type)
         : Source(Source), Destination(Destination), Type(Type) {}
 
-    /// \brief Return the source instruction of the dependence.
+    /// Return the source instruction of the dependence.
     Instruction *getSource(const LoopAccessInfo &LAI) const;
-    /// \brief Return the destination instruction of the dependence.
+    /// Return the destination instruction of the dependence.
     Instruction *getDestination(const LoopAccessInfo &LAI) const;
 
-    /// \brief Dependence types that don't prevent vectorization.
+    /// Dependence types that don't prevent vectorization.
     static bool isSafeForVectorization(DepType Type);
 
-    /// \brief Lexically forward dependence.
+    /// Lexically forward dependence.
     bool isForward() const;
-    /// \brief Lexically backward dependence.
+    /// Lexically backward dependence.
     bool isBackward() const;
 
-    /// \brief May be a lexically backward dependence type (includes Unknown).
+    /// May be a lexically backward dependence type (includes Unknown).
     bool isPossiblyBackward() const;
 
-    /// \brief Print the dependence.  \p Instr is used to map the instruction
+    /// Print the dependence.  \p Instr is used to map the instruction
     /// indices to instructions.
     void print(raw_ostream &OS, unsigned Depth,
                const SmallVectorImpl<Instruction *> &Instrs) const;
@@ -167,7 +167,7 @@
         ShouldRetryWithRuntimeCheck(false), SafeForVectorization(true),
         RecordDependences(true) {}
 
-  /// \brief Register the location (instructions are given increasing numbers)
+  /// Register the location (instructions are given increasing numbers)
   /// of a write access.
   void addAccess(StoreInst *SI) {
     Value *Ptr = SI->getPointerOperand();
@@ -176,7 +176,7 @@
     ++AccessIdx;
   }
 
-  /// \brief Register the location (instructions are given increasing numbers)
+  /// Register the location (instructions are given increasing numbers)
   /// of a write access.
   void addAccess(LoadInst *LI) {
     Value *Ptr = LI->getPointerOperand();
@@ -185,29 +185,29 @@
     ++AccessIdx;
   }
 
-  /// \brief Check whether the dependencies between the accesses are safe.
+  /// Check whether the dependencies between the accesses are safe.
   ///
   /// Only checks sets with elements in \p CheckDeps.
   bool areDepsSafe(DepCandidates &AccessSets, MemAccessInfoList &CheckDeps,
                    const ValueToValueMap &Strides);
 
-  /// \brief No memory dependence was encountered that would inhibit
+  /// No memory dependence was encountered that would inhibit
   /// vectorization.
   bool isSafeForVectorization() const { return SafeForVectorization; }
 
-  /// \brief The maximum number of bytes of a vector register we can vectorize
+  /// The maximum number of bytes of a vector register we can vectorize
   /// the accesses safely with.
   uint64_t getMaxSafeDepDistBytes() { return MaxSafeDepDistBytes; }
 
-  /// \brief Return the number of elements that are safe to operate on
+  /// Return the number of elements that are safe to operate on
   /// simultaneously, multiplied by the size of the element in bits.
   uint64_t getMaxSafeRegisterWidth() const { return MaxSafeRegisterWidth; }
 
-  /// \brief In same cases when the dependency check fails we can still
+  /// In same cases when the dependency check fails we can still
   /// vectorize the loop with a dynamic array access check.
   bool shouldRetryWithRuntimeCheck() { return ShouldRetryWithRuntimeCheck; }
 
-  /// \brief Returns the memory dependences.  If null is returned we exceeded
+  /// Returns the memory dependences.  If null is returned we exceeded
   /// the MaxDependences threshold and this information is not
   /// available.
   const SmallVectorImpl<Dependence> *getDependences() const {
@@ -216,13 +216,13 @@
 
   void clearDependences() { Dependences.clear(); }
 
-  /// \brief The vector of memory access instructions.  The indices are used as
+  /// The vector of memory access instructions.  The indices are used as
   /// instruction identifiers in the Dependence class.
   const SmallVectorImpl<Instruction *> &getMemoryInstructions() const {
     return InstMap;
   }
 
-  /// \brief Generate a mapping between the memory instructions and their
+  /// Generate a mapping between the memory instructions and their
   /// indices according to program order.
   DenseMap<Instruction *, unsigned> generateInstructionOrderMap() const {
     DenseMap<Instruction *, unsigned> OrderMap;
@@ -233,7 +233,7 @@
     return OrderMap;
   }
 
-  /// \brief Find the set of instructions that read or write via \p Ptr.
+  /// Find the set of instructions that read or write via \p Ptr.
   SmallVector<Instruction *, 4> getInstructionsForAccess(Value *Ptr,
                                                          bool isWrite) const;
 
@@ -247,42 +247,42 @@
   PredicatedScalarEvolution &PSE;
   const Loop *InnermostLoop;
 
-  /// \brief Maps access locations (ptr, read/write) to program order.
+  /// Maps access locations (ptr, read/write) to program order.
   DenseMap<MemAccessInfo, std::vector<unsigned> > Accesses;
 
-  /// \brief Memory access instructions in program order.
+  /// Memory access instructions in program order.
   SmallVector<Instruction *, 16> InstMap;
 
-  /// \brief The program order index to be used for the next instruction.
+  /// The program order index to be used for the next instruction.
   unsigned AccessIdx;
 
   // We can access this many bytes in parallel safely.
   uint64_t MaxSafeDepDistBytes;
 
-  /// \brief Number of elements (from consecutive iterations) that are safe to
+  /// Number of elements (from consecutive iterations) that are safe to
   /// operate on simultaneously, multiplied by the size of the element in bits.
   /// The size of the element is taken from the memory access that is most
   /// restrictive.
   uint64_t MaxSafeRegisterWidth;
 
-  /// \brief If we see a non-constant dependence distance we can still try to
+  /// If we see a non-constant dependence distance we can still try to
   /// vectorize this loop with runtime checks.
   bool ShouldRetryWithRuntimeCheck;
 
-  /// \brief No memory dependence was encountered that would inhibit
+  /// No memory dependence was encountered that would inhibit
   /// vectorization.
   bool SafeForVectorization;
 
-  //// \brief True if Dependences reflects the dependences in the
+  //// True if Dependences reflects the dependences in the
   //// loop.  If false we exceeded MaxDependences and
   //// Dependences is invalid.
   bool RecordDependences;
 
-  /// \brief Memory dependences collected during the analysis.  Only valid if
+  /// Memory dependences collected during the analysis.  Only valid if
   /// RecordDependences is true.
   SmallVector<Dependence, 8> Dependences;
 
-  /// \brief Check whether there is a plausible dependence between the two
+  /// Check whether there is a plausible dependence between the two
   /// accesses.
   ///
   /// Access \p A must happen before \p B in program order. The two indices
@@ -298,7 +298,7 @@
                                   const MemAccessInfo &B, unsigned BIdx,
                                   const ValueToValueMap &Strides);
 
-  /// \brief Check whether the data dependence could prevent store-load
+  /// Check whether the data dependence could prevent store-load
   /// forwarding.
   ///
   /// \return false if we shouldn't vectorize at all or avoid larger
@@ -306,7 +306,7 @@
   bool couldPreventStoreLoadForward(uint64_t Distance, uint64_t TypeByteSize);
 };
 
-/// \brief Holds information about the memory runtime legality checks to verify
+/// Holds information about the memory runtime legality checks to verify
 /// that a group of pointers do not overlap.
 class RuntimePointerChecking {
 public:
@@ -355,13 +355,13 @@
               unsigned ASId, const ValueToValueMap &Strides,
               PredicatedScalarEvolution &PSE);
 
-  /// \brief No run-time memory checking is necessary.
+  /// No run-time memory checking is necessary.
   bool empty() const { return Pointers.empty(); }
 
   /// A grouping of pointers. A single memcheck is required between
   /// two groups.
   struct CheckingPtrGroup {
-    /// \brief Create a new pointer checking group containing a single
+    /// Create a new pointer checking group containing a single
     /// pointer, with index \p Index in RtCheck.
     CheckingPtrGroup(unsigned Index, RuntimePointerChecking &RtCheck)
         : RtCheck(RtCheck), High(RtCheck.Pointers[Index].End),
@@ -369,7 +369,7 @@
       Members.push_back(Index);
     }
 
-    /// \brief Tries to add the pointer recorded in RtCheck at index
+    /// Tries to add the pointer recorded in RtCheck at index
     /// \p Index to this pointer checking group. We can only add a pointer
     /// to a checking group if we will still be able to get
     /// the upper and lower bounds of the check. Returns true in case
@@ -390,7 +390,7 @@
     SmallVector<unsigned, 2> Members;
   };
 
-  /// \brief A memcheck which made up of a pair of grouped pointers.
+  /// A memcheck which made up of a pair of grouped pointers.
   ///
   /// These *have* to be const for now, since checks are generated from
   /// CheckingPtrGroups in LAI::addRuntimeChecks which is a const member
@@ -399,24 +399,24 @@
   typedef std::pair<const CheckingPtrGroup *, const CheckingPtrGroup *>
       PointerCheck;
 
-  /// \brief Generate the checks and store it.  This also performs the grouping
+  /// Generate the checks and store it.  This also performs the grouping
   /// of pointers to reduce the number of memchecks necessary.
   void generateChecks(MemoryDepChecker::DepCandidates &DepCands,
                       bool UseDependencies);
 
-  /// \brief Returns the checks that generateChecks created.
+  /// Returns the checks that generateChecks created.
   const SmallVector<PointerCheck, 4> &getChecks() const { return Checks; }
 
-  /// \brief Decide if we need to add a check between two groups of pointers,
+  /// Decide if we need to add a check between two groups of pointers,
   /// according to needsChecking.
   bool needsChecking(const CheckingPtrGroup &M,
                      const CheckingPtrGroup &N) const;
 
-  /// \brief Returns the number of run-time checks required according to
+  /// Returns the number of run-time checks required according to
   /// needsChecking.
   unsigned getNumberOfChecks() const { return Checks.size(); }
 
-  /// \brief Print the list run-time memory checks necessary.
+  /// Print the list run-time memory checks necessary.
   void print(raw_ostream &OS, unsigned Depth = 0) const;
 
   /// Print \p Checks.
@@ -432,7 +432,7 @@
   /// Holds a partitioning of pointers into "check groups".
   SmallVector<CheckingPtrGroup, 2> CheckingGroups;
 
-  /// \brief Check if pointers are in the same partition
+  /// Check if pointers are in the same partition
   ///
   /// \p PtrToPartition contains the partition number for pointers (-1 if the
   /// pointer belongs to multiple partitions).
@@ -440,17 +440,17 @@
   arePointersInSamePartition(const SmallVectorImpl<int> &PtrToPartition,
                              unsigned PtrIdx1, unsigned PtrIdx2);
 
-  /// \brief Decide whether we need to issue a run-time check for pointer at
+  /// Decide whether we need to issue a run-time check for pointer at
   /// index \p I and \p J to prove their independence.
   bool needsChecking(unsigned I, unsigned J) const;
 
-  /// \brief Return PointerInfo for pointer at index \p PtrIdx.
+  /// Return PointerInfo for pointer at index \p PtrIdx.
   const PointerInfo &getPointerInfo(unsigned PtrIdx) const {
     return Pointers[PtrIdx];
   }
 
 private:
-  /// \brief Groups pointers such that a single memcheck is required
+  /// Groups pointers such that a single memcheck is required
   /// between two different groups. This will clear the CheckingGroups vector
   /// and re-compute it. We will only group dependecies if \p UseDependencies
   /// is true, otherwise we will create a separate group for each pointer.
@@ -464,12 +464,12 @@
   /// Holds a pointer to the ScalarEvolution analysis.
   ScalarEvolution *SE;
 
-  /// \brief Set of run-time checks required to establish independence of
+  /// Set of run-time checks required to establish independence of
   /// otherwise may-aliasing pointers in the loop.
   SmallVector<PointerCheck, 4> Checks;
 };
 
-/// \brief Drive the analysis of memory accesses in the loop
+/// Drive the analysis of memory accesses in the loop
 ///
 /// This class is responsible for analyzing the memory accesses of a loop.  It
 /// collects the accesses and then its main helper the AccessAnalysis class
@@ -503,7 +503,7 @@
     return PtrRtChecking.get();
   }
 
-  /// \brief Number of memchecks required to prove independence of otherwise
+  /// Number of memchecks required to prove independence of otherwise
   /// may-alias pointers.
   unsigned getNumRuntimePointerChecks() const {
     return PtrRtChecking->getNumberOfChecks();
@@ -521,7 +521,7 @@
   unsigned getNumStores() const { return NumStores; }
   unsigned getNumLoads() const { return NumLoads;}
 
-  /// \brief Add code that checks at runtime if the accessed arrays overlap.
+  /// Add code that checks at runtime if the accessed arrays overlap.
   ///
   /// Returns a pair of instructions where the first element is the first
   /// instruction generated in possibly a sequence of instructions and the
@@ -529,7 +529,7 @@
   std::pair<Instruction *, Instruction *>
   addRuntimeChecks(Instruction *Loc) const;
 
-  /// \brief Generete the instructions for the checks in \p PointerChecks.
+  /// Generete the instructions for the checks in \p PointerChecks.
   ///
   /// Returns a pair of instructions where the first element is the first
   /// instruction generated in possibly a sequence of instructions and the
@@ -539,32 +539,32 @@
                    const SmallVectorImpl<RuntimePointerChecking::PointerCheck>
                        &PointerChecks) const;
 
-  /// \brief The diagnostics report generated for the analysis.  E.g. why we
+  /// The diagnostics report generated for the analysis.  E.g. why we
   /// couldn't analyze the loop.
   const OptimizationRemarkAnalysis *getReport() const { return Report.get(); }
 
-  /// \brief the Memory Dependence Checker which can determine the
+  /// the Memory Dependence Checker which can determine the
   /// loop-independent and loop-carried dependences between memory accesses.
   const MemoryDepChecker &getDepChecker() const { return *DepChecker; }
 
-  /// \brief Return the list of instructions that use \p Ptr to read or write
+  /// Return the list of instructions that use \p Ptr to read or write
   /// memory.
   SmallVector<Instruction *, 4> getInstructionsForAccess(Value *Ptr,
                                                          bool isWrite) const {
     return DepChecker->getInstructionsForAccess(Ptr, isWrite);
   }
 
-  /// \brief If an access has a symbolic strides, this maps the pointer value to
+  /// If an access has a symbolic strides, this maps the pointer value to
   /// the stride symbol.
   const ValueToValueMap &getSymbolicStrides() const { return SymbolicStrides; }
 
-  /// \brief Pointer has a symbolic stride.
+  /// Pointer has a symbolic stride.
   bool hasStride(Value *V) const { return StrideSet.count(V); }
 
-  /// \brief Print the information about the memory accesses in the loop.
+  /// Print the information about the memory accesses in the loop.
   void print(raw_ostream &OS, unsigned Depth = 0) const;
 
-  /// \brief Checks existence of store to invariant address inside loop.
+  /// Checks existence of store to invariant address inside loop.
   /// If the loop has any store to invariant address, then it returns true,
   /// else returns false.
   bool hasStoreToLoopInvariantAddress() const {
@@ -579,15 +579,15 @@
   const PredicatedScalarEvolution &getPSE() const { return *PSE; }
 
 private:
-  /// \brief Analyze the loop.
+  /// Analyze the loop.
   void analyzeLoop(AliasAnalysis *AA, LoopInfo *LI,
                    const TargetLibraryInfo *TLI, DominatorTree *DT);
 
-  /// \brief Check if the structure of the loop allows it to be analyzed by this
+  /// Check if the structure of the loop allows it to be analyzed by this
   /// pass.
   bool canAnalyzeLoop();
 
-  /// \brief Save the analysis remark.
+  /// Save the analysis remark.
   ///
   /// LAA does not directly emits the remarks.  Instead it stores it which the
   /// client can retrieve and presents as its own analysis
@@ -595,7 +595,7 @@
   OptimizationRemarkAnalysis &recordAnalysis(StringRef RemarkName,
                                              Instruction *Instr = nullptr);
 
-  /// \brief Collect memory access with loop invariant strides.
+  /// Collect memory access with loop invariant strides.
   ///
   /// Looks for accesses like "a[i * StrideA]" where "StrideA" is loop
   /// invariant.
@@ -607,7 +607,7 @@
   /// at runtime. Using std::unique_ptr to make using move ctor simpler.
   std::unique_ptr<RuntimePointerChecking> PtrRtChecking;
 
-  /// \brief the Memory Dependence Checker which can determine the
+  /// the Memory Dependence Checker which can determine the
   /// loop-independent and loop-carried dependences between memory accesses.
   std::unique_ptr<MemoryDepChecker> DepChecker;
 
@@ -618,28 +618,28 @@
 
   uint64_t MaxSafeDepDistBytes;
 
-  /// \brief Cache the result of analyzeLoop.
+  /// Cache the result of analyzeLoop.
   bool CanVecMem;
 
-  /// \brief Indicator for storing to uniform addresses.
+  /// Indicator for storing to uniform addresses.
   /// If a loop has write to a loop invariant address then it should be true.
   bool StoreToLoopInvariantAddress;
 
-  /// \brief The diagnostics report generated for the analysis.  E.g. why we
+  /// The diagnostics report generated for the analysis.  E.g. why we
   /// couldn't analyze the loop.
   std::unique_ptr<OptimizationRemarkAnalysis> Report;
 
-  /// \brief If an access has a symbolic strides, this maps the pointer value to
+  /// If an access has a symbolic strides, this maps the pointer value to
   /// the stride symbol.
   ValueToValueMap SymbolicStrides;
 
-  /// \brief Set of symbolic strides values.
+  /// Set of symbolic strides values.
   SmallPtrSet<Value *, 8> StrideSet;
 };
 
 Value *stripIntegerCast(Value *V);
 
-/// \brief Return the SCEV corresponding to a pointer with the symbolic stride
+/// Return the SCEV corresponding to a pointer with the symbolic stride
 /// replaced with constant one, assuming the SCEV predicate associated with
 /// \p PSE is true.
 ///
@@ -653,7 +653,7 @@
                                       const ValueToValueMap &PtrToStride,
                                       Value *Ptr, Value *OrigPtr = nullptr);
 
-/// \brief If the pointer has a constant stride return it in units of its
+/// If the pointer has a constant stride return it in units of its
 /// element size.  Otherwise return zero.
 ///
 /// Ensure that it does not wrap in the address space, assuming the predicate
@@ -667,12 +667,26 @@
                      const ValueToValueMap &StridesMap = ValueToValueMap(),
                      bool Assume = false, bool ShouldCheckWrap = true);
 
-/// \brief Returns true if the memory operations \p A and \p B are consecutive.
-/// This is a simple API that does not depend on the analysis pass. 
+/// Attempt to sort the pointers in \p VL and return the sorted indices
+/// in \p SortedIndices, if reordering is required.
+///
+/// Returns 'true' if sorting is legal, otherwise returns 'false'.
+///
+/// For example, for a given \p VL of memory accesses in program order, a[i+4],
+/// a[i+0], a[i+1] and a[i+7], this function will sort the \p VL and save the
+/// sorted indices in \p SortedIndices as a[i+0], a[i+1], a[i+4], a[i+7] and
+/// saves the mask for actual memory accesses in program order in
+/// \p SortedIndices as <1,2,0,3>
+bool sortPtrAccesses(ArrayRef<Value *> VL, const DataLayout &DL,
+                     ScalarEvolution &SE,
+                     SmallVectorImpl<unsigned> &SortedIndices);
+
+/// Returns true if the memory operations \p A and \p B are consecutive.
+/// This is a simple API that does not depend on the analysis pass.
 bool isConsecutiveAccess(Value *A, Value *B, const DataLayout &DL,
                          ScalarEvolution &SE, bool CheckType = true);
 
-/// \brief This analysis provides dependence information for the memory accesses
+/// This analysis provides dependence information for the memory accesses
 /// of a loop.
 ///
 /// It runs the analysis for a loop on demand.  This can be initiated by
@@ -691,7 +705,7 @@
 
   void getAnalysisUsage(AnalysisUsage &AU) const override;
 
-  /// \brief Query the result of the loop access information for the loop \p L.
+  /// Query the result of the loop access information for the loop \p L.
   ///
   /// If there is no cached result available run the analysis.
   const LoopAccessInfo &getInfo(Loop *L);
@@ -701,11 +715,11 @@
     LoopAccessInfoMap.clear();
   }
 
-  /// \brief Print the result of the analysis when invoked with -analyze.
+  /// Print the result of the analysis when invoked with -analyze.
   void print(raw_ostream &OS, const Module *M = nullptr) const override;
 
 private:
-  /// \brief The cache.
+  /// The cache.
   DenseMap<Loop *, std::unique_ptr<LoopAccessInfo>> LoopAccessInfoMap;
 
   // The used analysis passes.
@@ -716,11 +730,11 @@
   LoopInfo *LI;
 };
 
-/// \brief This analysis provides dependence information for the memory
+/// This analysis provides dependence information for the memory
 /// accesses of a loop.
 ///
 /// It runs the analysis for a loop on demand.  This can be initiated by
-/// querying the loop access info via AM.getResult<LoopAccessAnalysis>. 
+/// querying the loop access info via AM.getResult<LoopAccessAnalysis>.
 /// getResult return a LoopAccessInfo object.  See this class for the
 /// specifics of what information is provided.
 class LoopAccessAnalysis
diff --git a/linux-x64/clang/include/llvm/Analysis/LoopAnalysisManager.h b/linux-x64/clang/include/llvm/Analysis/LoopAnalysisManager.h
index 417ee97..00e562c 100644
--- a/linux-x64/clang/include/llvm/Analysis/LoopAnalysisManager.h
+++ b/linux-x64/clang/include/llvm/Analysis/LoopAnalysisManager.h
@@ -69,7 +69,7 @@
 extern template class AllAnalysesOn<Loop>;
 
 extern template class AnalysisManager<Loop, LoopStandardAnalysisResults &>;
-/// \brief The loop analysis manager.
+/// The loop analysis manager.
 ///
 /// See the documentation for the AnalysisManager template for detail
 /// documentation. This typedef serves as a convenient way to refer to this
diff --git a/linux-x64/clang/include/llvm/Analysis/LoopInfo.h b/linux-x64/clang/include/llvm/Analysis/LoopInfo.h
index 28afc39..30b29d6 100644
--- a/linux-x64/clang/include/llvm/Analysis/LoopInfo.h
+++ b/linux-x64/clang/include/llvm/Analysis/LoopInfo.h
@@ -178,6 +178,12 @@
     return DenseBlockSet;
   }
 
+  /// Return a direct, immutable handle to the blocks set.
+  const SmallPtrSetImpl<const BlockT *> &getBlocksSet() const {
+    assert(!isInvalid() && "Loop not in a valid state!");
+    return DenseBlockSet;
+  }
+
   /// Return true if this loop is no longer valid.  The only valid use of this
   /// helper is "assert(L.isInvalid())" or equivalent, since IsInvalid is set to
   /// true by the destructor.  In other words, if this accessor returns true,
@@ -255,6 +261,20 @@
   /// Otherwise return null.
   BlockT *getExitBlock() const;
 
+  /// Return true if no exit block for the loop has a predecessor that is
+  /// outside the loop.
+  bool hasDedicatedExits() const;
+
+  /// Return all unique successor blocks of this loop.
+  /// These are the blocks _outside of the current loop_ which are branched to.
+  /// This assumes that loop exits are in canonical form, i.e. all exits are
+  /// dedicated exits.
+  void getUniqueExitBlocks(SmallVectorImpl<BlockT *> &ExitBlocks) const;
+
+  /// If getUniqueExitBlocks would return exactly one block, return that block.
+  /// Otherwise return null.
+  BlockT *getUniqueExitBlock() const;
+
   /// Edge type.
   typedef std::pair<const BlockT *, const BlockT *> Edge;
 
@@ -438,7 +458,7 @@
 /// in the CFG are necessarily loops.
 class Loop : public LoopBase<BasicBlock, Loop> {
 public:
-  /// \brief A range representing the start and end location of a loop.
+  /// A range representing the start and end location of a loop.
   class LocRange {
     DebugLoc Start;
     DebugLoc End;
@@ -452,7 +472,7 @@
     const DebugLoc &getStart() const { return Start; }
     const DebugLoc &getEnd() const { return End; }
 
-    /// \brief Check for null.
+    /// Check for null.
     ///
     explicit operator bool() const { return Start && End; }
   };
@@ -527,7 +547,7 @@
   ///
   /// If this loop contains the same llvm.loop metadata on each branch to the
   /// header then the node is returned. If any latch instruction does not
-  /// contain llvm.loop or or if multiple latches contain different nodes then
+  /// contain llvm.loop or if multiple latches contain different nodes then
   /// 0 is returned.
   MDNode *getLoopID() const;
   /// Set the llvm.loop loop id metadata for this loop.
@@ -547,20 +567,6 @@
   /// unrolling pass is run more than once (which it generally is).
   void setLoopAlreadyUnrolled();
 
-  /// Return true if no exit block for the loop has a predecessor that is
-  /// outside the loop.
-  bool hasDedicatedExits() const;
-
-  /// Return all unique successor blocks of this loop.
-  /// These are the blocks _outside of the current loop_ which are branched to.
-  /// This assumes that loop exits are in canonical form, i.e. all exits are
-  /// dedicated exits.
-  void getUniqueExitBlocks(SmallVectorImpl<BasicBlock *> &ExitBlocks) const;
-
-  /// If getUniqueExitBlocks would return exactly one block, return that block.
-  /// Otherwise return null.
-  BasicBlock *getUniqueExitBlock() const;
-
   void dump() const;
   void dumpVerbose() const;
 
@@ -929,7 +935,7 @@
   static ChildIteratorType child_end(NodeRef N) { return N->end(); }
 };
 
-/// \brief Analysis pass that exposes the \c LoopInfo for a function.
+/// Analysis pass that exposes the \c LoopInfo for a function.
 class LoopAnalysis : public AnalysisInfoMixin<LoopAnalysis> {
   friend AnalysisInfoMixin<LoopAnalysis>;
   static AnalysisKey Key;
@@ -940,7 +946,7 @@
   LoopInfo run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Printer pass for the \c LoopAnalysis results.
+/// Printer pass for the \c LoopAnalysis results.
 class LoopPrinterPass : public PassInfoMixin<LoopPrinterPass> {
   raw_ostream &OS;
 
@@ -949,12 +955,12 @@
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Verifier pass for the \c LoopAnalysis results.
+/// Verifier pass for the \c LoopAnalysis results.
 struct LoopVerifierPass : public PassInfoMixin<LoopVerifierPass> {
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief The legacy pass manager's analysis pass to compute loop information.
+/// The legacy pass manager's analysis pass to compute loop information.
 class LoopInfoWrapperPass : public FunctionPass {
   LoopInfo LI;
 
@@ -968,7 +974,7 @@
   LoopInfo &getLoopInfo() { return LI; }
   const LoopInfo &getLoopInfo() const { return LI; }
 
-  /// \brief Calculate the natural loop information for a given function.
+  /// Calculate the natural loop information for a given function.
   bool runOnFunction(Function &F) override;
 
   void verifyAnalysis() const override;
diff --git a/linux-x64/clang/include/llvm/Analysis/LoopInfoImpl.h b/linux-x64/clang/include/llvm/Analysis/LoopInfoImpl.h
index b3a16b5..9413898 100644
--- a/linux-x64/clang/include/llvm/Analysis/LoopInfoImpl.h
+++ b/linux-x64/clang/include/llvm/Analysis/LoopInfoImpl.h
@@ -82,6 +82,74 @@
   return nullptr;
 }
 
+template <class BlockT, class LoopT>
+bool LoopBase<BlockT, LoopT>::hasDedicatedExits() const {
+  // Each predecessor of each exit block of a normal loop is contained
+  // within the loop.
+  SmallVector<BlockT *, 4> ExitBlocks;
+  getExitBlocks(ExitBlocks);
+  for (BlockT *EB : ExitBlocks)
+    for (BlockT *Predecessor : children<Inverse<BlockT *>>(EB))
+      if (!contains(Predecessor))
+        return false;
+  // All the requirements are met.
+  return true;
+}
+
+template <class BlockT, class LoopT>
+void LoopBase<BlockT, LoopT>::getUniqueExitBlocks(
+    SmallVectorImpl<BlockT *> &ExitBlocks) const {
+  typedef GraphTraits<BlockT *> BlockTraits;
+  typedef GraphTraits<Inverse<BlockT *>> InvBlockTraits;
+
+  assert(hasDedicatedExits() &&
+         "getUniqueExitBlocks assumes the loop has canonical form exits!");
+
+  SmallVector<BlockT *, 32> SwitchExitBlocks;
+  for (BlockT *Block : this->blocks()) {
+    SwitchExitBlocks.clear();
+    for (BlockT *Successor : children<BlockT *>(Block)) {
+      // If block is inside the loop then it is not an exit block.
+      if (contains(Successor))
+        continue;
+
+      BlockT *FirstPred = *InvBlockTraits::child_begin(Successor);
+
+      // If current basic block is this exit block's first predecessor then only
+      // insert exit block in to the output ExitBlocks vector. This ensures that
+      // same exit block is not inserted twice into ExitBlocks vector.
+      if (Block != FirstPred)
+        continue;
+
+      // If a terminator has more then two successors, for example SwitchInst,
+      // then it is possible that there are multiple edges from current block to
+      // one exit block.
+      if (std::distance(BlockTraits::child_begin(Block),
+                        BlockTraits::child_end(Block)) <= 2) {
+        ExitBlocks.push_back(Successor);
+        continue;
+      }
+
+      // In case of multiple edges from current block to exit block, collect
+      // only one edge in ExitBlocks. Use switchExitBlocks to keep track of
+      // duplicate edges.
+      if (!is_contained(SwitchExitBlocks, Successor)) {
+        SwitchExitBlocks.push_back(Successor);
+        ExitBlocks.push_back(Successor);
+      }
+    }
+  }
+}
+
+template <class BlockT, class LoopT>
+BlockT *LoopBase<BlockT, LoopT>::getUniqueExitBlock() const {
+  SmallVector<BlockT *, 8> UniqueExitBlocks;
+  getUniqueExitBlocks(UniqueExitBlocks);
+  if (UniqueExitBlocks.size() == 1)
+    return UniqueExitBlocks[0];
+  return nullptr;
+}
+
 /// getExitEdges - Return all pairs of (_inside_block_,_outside_block_).
 template <class BlockT, class LoopT>
 void LoopBase<BlockT, LoopT>::getExitEdges(
@@ -572,8 +640,8 @@
 
 template <typename T>
 bool compareVectors(std::vector<T> &BB1, std::vector<T> &BB2) {
-  std::sort(BB1.begin(), BB1.end());
-  std::sort(BB2.begin(), BB2.end());
+  llvm::sort(BB1.begin(), BB1.end());
+  llvm::sort(BB2.begin(), BB2.end());
   return BB1 == BB2;
 }
 
@@ -617,6 +685,15 @@
   std::vector<BlockT *> OtherBBs = OtherL->getBlocks();
   assert(compareVectors(BBs, OtherBBs) &&
          "Mismatched basic blocks in the loops!");
+
+  const SmallPtrSetImpl<const BlockT *> &BlocksSet = L->getBlocksSet();
+  const SmallPtrSetImpl<const BlockT *> &OtherBlocksSet = L->getBlocksSet();
+  assert(BlocksSet.size() == OtherBlocksSet.size() &&
+         std::all_of(BlocksSet.begin(), BlocksSet.end(),
+                     [&OtherBlocksSet](const BlockT *BB) {
+                       return OtherBlocksSet.count(BB);
+                     }) &&
+         "Mismatched basic blocks in BlocksSets!");
 }
 #endif
 
@@ -636,6 +713,9 @@
     LoopT *L = Entry.second;
     assert(Loops.count(L) && "orphaned loop");
     assert(L->contains(BB) && "orphaned block");
+    for (LoopT *ChildLoop : *L)
+      assert(!ChildLoop->contains(BB) &&
+             "BBMap should point to the innermost loop containing BB");
   }
 
   // Recompute LoopInfo to verify loops structure.
diff --git a/linux-x64/clang/include/llvm/Analysis/LoopUnrollAnalyzer.h b/linux-x64/clang/include/llvm/Analysis/LoopUnrollAnalyzer.h
index 80f3e5f..f45bf0b 100644
--- a/linux-x64/clang/include/llvm/Analysis/LoopUnrollAnalyzer.h
+++ b/linux-x64/clang/include/llvm/Analysis/LoopUnrollAnalyzer.h
@@ -57,7 +57,7 @@
   using Base::visit;
 
 private:
-  /// \brief A cache of pointer bases and constant-folded offsets corresponding
+  /// A cache of pointer bases and constant-folded offsets corresponding
   /// to GEP (or derived from GEP) instructions.
   ///
   /// In order to find the base pointer one needs to perform non-trivial
@@ -65,11 +65,11 @@
   /// results saved.
   DenseMap<Value *, SimplifiedAddress> SimplifiedAddresses;
 
-  /// \brief SCEV expression corresponding to number of currently simulated
+  /// SCEV expression corresponding to number of currently simulated
   /// iteration.
   const SCEV *IterationNumber;
 
-  /// \brief A Value->Constant map for keeping values that we managed to
+  /// A Value->Constant map for keeping values that we managed to
   /// constant-fold on the given iteration.
   ///
   /// While we walk the loop instructions, we build up and maintain a mapping
diff --git a/linux-x64/clang/include/llvm/Analysis/MemoryBuiltins.h b/linux-x64/clang/include/llvm/Analysis/MemoryBuiltins.h
index 7d53e34..5418128 100644
--- a/linux-x64/clang/include/llvm/Analysis/MemoryBuiltins.h
+++ b/linux-x64/clang/include/llvm/Analysis/MemoryBuiltins.h
@@ -53,33 +53,33 @@
 class UndefValue;
 class Value;
 
-/// \brief Tests if a value is a call or invoke to a library function that
+/// Tests if a value is a call or invoke to a library function that
 /// allocates or reallocates memory (either malloc, calloc, realloc, or strdup
 /// like).
 bool isAllocationFn(const Value *V, const TargetLibraryInfo *TLI,
                     bool LookThroughBitCast = false);
 
-/// \brief Tests if a value is a call or invoke to a function that returns a
+/// Tests if a value is a call or invoke to a function that returns a
 /// NoAlias pointer (including malloc/calloc/realloc/strdup-like functions).
 bool isNoAliasFn(const Value *V, const TargetLibraryInfo *TLI,
                  bool LookThroughBitCast = false);
 
-/// \brief Tests if a value is a call or invoke to a library function that
+/// Tests if a value is a call or invoke to a library function that
 /// allocates uninitialized memory (such as malloc).
 bool isMallocLikeFn(const Value *V, const TargetLibraryInfo *TLI,
                     bool LookThroughBitCast = false);
 
-/// \brief Tests if a value is a call or invoke to a library function that
+/// Tests if a value is a call or invoke to a library function that
 /// allocates zero-filled memory (such as calloc).
 bool isCallocLikeFn(const Value *V, const TargetLibraryInfo *TLI,
                     bool LookThroughBitCast = false);
 
-/// \brief Tests if a value is a call or invoke to a library function that
+/// Tests if a value is a call or invoke to a library function that
 /// allocates memory similar to malloc or calloc.
 bool isMallocOrCallocLikeFn(const Value *V, const TargetLibraryInfo *TLI,
                             bool LookThroughBitCast = false);
 
-/// \brief Tests if a value is a call or invoke to a library function that
+/// Tests if a value is a call or invoke to a library function that
 /// allocates memory (either malloc, calloc, or strdup like).
 bool isAllocLikeFn(const Value *V, const TargetLibraryInfo *TLI,
                    bool LookThroughBitCast = false);
@@ -170,14 +170,14 @@
   bool NullIsUnknownSize = false;
 };
 
-/// \brief Compute the size of the object pointed by Ptr. Returns true and the
+/// Compute the size of the object pointed by Ptr. Returns true and the
 /// object size in Size if successful, and false otherwise. In this context, by
 /// object we mean the region of memory starting at Ptr to the end of the
 /// underlying object pointed to by Ptr.
 bool getObjectSize(const Value *Ptr, uint64_t &Size, const DataLayout &DL,
                    const TargetLibraryInfo *TLI, ObjectSizeOpts Opts = {});
 
-/// Try to turn a call to @llvm.objectsize into an integer value of the given
+/// Try to turn a call to \@llvm.objectsize into an integer value of the given
 /// Type. Returns null on failure.
 /// If MustSucceed is true, this function will not return null, and may return
 /// conservative values governed by the second argument of the call to
@@ -189,7 +189,7 @@
 
 using SizeOffsetType = std::pair<APInt, APInt>;
 
-/// \brief Evaluate the size and offset of an object pointed to by a Value*
+/// Evaluate the size and offset of an object pointed to by a Value*
 /// statically. Fails if size or offset are not known at compile time.
 class ObjectSizeOffsetVisitor
   : public InstVisitor<ObjectSizeOffsetVisitor, SizeOffsetType> {
@@ -248,7 +248,7 @@
 
 using SizeOffsetEvalType = std::pair<Value *, Value *>;
 
-/// \brief Evaluate the size and offset of an object pointed to by a Value*.
+/// Evaluate the size and offset of an object pointed to by a Value*.
 /// May create code to compute the result at run-time.
 class ObjectSizeOffsetEvaluator
   : public InstVisitor<ObjectSizeOffsetEvaluator, SizeOffsetEvalType> {
diff --git a/linux-x64/clang/include/llvm/Analysis/MemoryDependenceAnalysis.h b/linux-x64/clang/include/llvm/Analysis/MemoryDependenceAnalysis.h
index c297452..1c40cff 100644
--- a/linux-x64/clang/include/llvm/Analysis/MemoryDependenceAnalysis.h
+++ b/linux-x64/clang/include/llvm/Analysis/MemoryDependenceAnalysis.h
@@ -26,6 +26,7 @@
 #include "llvm/IR/Metadata.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/PredIteratorCache.h"
+#include "llvm/IR/ValueHandle.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
@@ -43,6 +44,7 @@
 class LoadInst;
 class PHITransAddr;
 class TargetLibraryInfo;
+class PhiValues;
 class Value;
 
 /// A memory dependence query can return one of three different answers.
@@ -302,7 +304,7 @@
     /// The maximum size of the dereferences of the pointer.
     ///
     /// May be UnknownSize if the sizes are unknown.
-    uint64_t Size = MemoryLocation::UnknownSize;
+    LocationSize Size = MemoryLocation::UnknownSize;
     /// The AA tags associated with dereferences of the pointer.
     ///
     /// The members may be null if there are no tags or conflicting tags.
@@ -314,7 +316,10 @@
   /// Cache storing single nonlocal def for the instruction.
   /// It is set when nonlocal def would be found in function returning only
   /// local dependencies.
-  DenseMap<Instruction *, NonLocalDepResult> NonLocalDefsCache;
+  DenseMap<AssertingVH<const Value>, NonLocalDepResult> NonLocalDefsCache;
+  using ReverseNonLocalDefsCacheTy =
+    DenseMap<Instruction *, SmallPtrSet<const Value*, 4>>;
+  ReverseNonLocalDefsCacheTy ReverseNonLocalDefsCache;
 
   /// This map stores the cached results of doing a pointer lookup at the
   /// bottom of a block.
@@ -356,13 +361,14 @@
   AssumptionCache &AC;
   const TargetLibraryInfo &TLI;
   DominatorTree &DT;
+  PhiValues &PV;
   PredIteratorCache PredCache;
 
 public:
   MemoryDependenceResults(AliasAnalysis &AA, AssumptionCache &AC,
                           const TargetLibraryInfo &TLI,
-                          DominatorTree &DT)
-      : AA(AA), AC(AC), TLI(TLI), DT(DT) {}
+                          DominatorTree &DT, PhiValues &PV)
+      : AA(AA), AC(AC), TLI(TLI), DT(DT), PV(PV) {}
 
   /// Handle invalidation in the new PM.
   bool invalidate(Function &F, const PreservedAnalyses &PA,
diff --git a/linux-x64/clang/include/llvm/Analysis/MemoryLocation.h b/linux-x64/clang/include/llvm/Analysis/MemoryLocation.h
index c108074..6b68000 100644
--- a/linux-x64/clang/include/llvm/Analysis/MemoryLocation.h
+++ b/linux-x64/clang/include/llvm/Analysis/MemoryLocation.h
@@ -27,8 +27,16 @@
 class StoreInst;
 class MemTransferInst;
 class MemIntrinsic;
+class AtomicMemTransferInst;
+class AtomicMemIntrinsic;
+class AnyMemTransferInst;
+class AnyMemIntrinsic;
 class TargetLibraryInfo;
 
+// Represents the size of a MemoryLocation. Logically, it's an
+// Optional<uint64_t>, with a special UnknownSize value from `MemoryLocation`.
+using LocationSize = uint64_t;
+
 /// Representation for a specific memory location.
 ///
 /// This abstraction can be used to represent a specific location in memory.
@@ -55,7 +63,7 @@
   /// virtual address space, because there are restrictions on stepping out of
   /// one object and into another. See
   /// http://llvm.org/docs/LangRef.html#pointeraliasing
-  uint64_t Size;
+  LocationSize Size;
 
   /// The metadata nodes which describes the aliasing of the location (each
   /// member is null if that kind of information is unavailable).
@@ -90,17 +98,21 @@
 
   /// Return a location representing the source of a memory transfer.
   static MemoryLocation getForSource(const MemTransferInst *MTI);
+  static MemoryLocation getForSource(const AtomicMemTransferInst *MTI);
+  static MemoryLocation getForSource(const AnyMemTransferInst *MTI);
 
   /// Return a location representing the destination of a memory set or
   /// transfer.
   static MemoryLocation getForDest(const MemIntrinsic *MI);
+  static MemoryLocation getForDest(const AtomicMemIntrinsic *MI);
+  static MemoryLocation getForDest(const AnyMemIntrinsic *MI);
 
   /// Return a location representing a particular argument of a call.
   static MemoryLocation getForArgument(ImmutableCallSite CS, unsigned ArgIdx,
                                        const TargetLibraryInfo &TLI);
 
   explicit MemoryLocation(const Value *Ptr = nullptr,
-                          uint64_t Size = UnknownSize,
+                          LocationSize Size = UnknownSize,
                           const AAMDNodes &AATags = AAMDNodes())
       : Ptr(Ptr), Size(Size), AATags(AATags) {}
 
@@ -110,7 +122,7 @@
     return Copy;
   }
 
-  MemoryLocation getWithNewSize(uint64_t NewSize) const {
+  MemoryLocation getWithNewSize(LocationSize NewSize) const {
     MemoryLocation Copy(*this);
     Copy.Size = NewSize;
     return Copy;
@@ -137,7 +149,7 @@
   }
   static unsigned getHashValue(const MemoryLocation &Val) {
     return DenseMapInfo<const Value *>::getHashValue(Val.Ptr) ^
-           DenseMapInfo<uint64_t>::getHashValue(Val.Size) ^
+           DenseMapInfo<LocationSize>::getHashValue(Val.Size) ^
            DenseMapInfo<AAMDNodes>::getHashValue(Val.AATags);
   }
   static bool isEqual(const MemoryLocation &LHS, const MemoryLocation &RHS) {
diff --git a/linux-x64/clang/include/llvm/Analysis/MemorySSA.h b/linux-x64/clang/include/llvm/Analysis/MemorySSA.h
index 2899890..d445e44 100644
--- a/linux-x64/clang/include/llvm/Analysis/MemorySSA.h
+++ b/linux-x64/clang/include/llvm/Analysis/MemorySSA.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 //
 /// \file
-/// \brief This file exposes an interface to building/using memory SSA to
+/// This file exposes an interface to building/using memory SSA to
 /// walk memory instructions using a use/def graph.
 ///
 /// Memory SSA class builds an SSA form that links together memory access
@@ -130,7 +130,7 @@
 using const_memoryaccess_def_iterator =
     memoryaccess_def_iterator_base<const MemoryAccess>;
 
-// \brief The base for all memory accesses. All memory accesses in a block are
+// The base for all memory accesses. All memory accesses in a block are
 // linked together using an intrusive list.
 class MemoryAccess
     : public DerivedUser,
@@ -159,11 +159,11 @@
   void print(raw_ostream &OS) const;
   void dump() const;
 
-  /// \brief The user iterators for a memory access
+  /// The user iterators for a memory access
   using iterator = user_iterator;
   using const_iterator = const_user_iterator;
 
-  /// \brief This iterator walks over all of the defs in a given
+  /// This iterator walks over all of the defs in a given
   /// MemoryAccess. For MemoryPhi nodes, this walks arguments. For
   /// MemoryUse/MemoryDef, this walks the defining access.
   memoryaccess_def_iterator defs_begin();
@@ -171,7 +171,7 @@
   memoryaccess_def_iterator defs_end();
   const_memoryaccess_def_iterator defs_end() const;
 
-  /// \brief Get the iterators for the all access list and the defs only list
+  /// Get the iterators for the all access list and the defs only list
   /// We default to the all access list.
   AllAccessType::self_iterator getIterator() {
     return this->AllAccessType::getIterator();
@@ -205,11 +205,11 @@
   friend class MemoryUse;
   friend class MemoryUseOrDef;
 
-  /// \brief Used by MemorySSA to change the block of a MemoryAccess when it is
+  /// Used by MemorySSA to change the block of a MemoryAccess when it is
   /// moved.
   void setBlock(BasicBlock *BB) { Block = BB; }
 
-  /// \brief Used for debugging and tracking things about MemoryAccesses.
+  /// Used for debugging and tracking things about MemoryAccesses.
   /// Guaranteed unique among MemoryAccesses, no guarantees otherwise.
   inline unsigned getID() const;
 
@@ -235,7 +235,7 @@
   return OS;
 }
 
-/// \brief Class that has the common methods + fields of memory uses/defs. It's
+/// Class that has the common methods + fields of memory uses/defs. It's
 /// a little awkward to have, but there are many cases where we want either a
 /// use or def, and there are many cases where uses are needed (defs aren't
 /// acceptable), and vice-versa.
@@ -248,10 +248,10 @@
 
   DECLARE_TRANSPARENT_OPERAND_ACCESSORS(MemoryAccess);
 
-  /// \brief Get the instruction that this MemoryUse represents.
+  /// Get the instruction that this MemoryUse represents.
   Instruction *getMemoryInst() const { return MemoryInstruction; }
 
-  /// \brief Get the access that produces the memory state used by this Use.
+  /// Get the access that produces the memory state used by this Use.
   MemoryAccess *getDefiningAccess() const { return getOperand(0); }
 
   static bool classof(const Value *MA) {
@@ -270,7 +270,7 @@
     return OptimizedAccessAlias;
   }
 
-  /// \brief Reset the ID of what this MemoryUse was optimized to, causing it to
+  /// Reset the ID of what this MemoryUse was optimized to, causing it to
   /// be rewalked by the walker if necessary.
   /// This really should only be called by tests.
   inline void resetOptimized();
@@ -313,7 +313,7 @@
     : public FixedNumOperandTraits<MemoryUseOrDef, 1> {};
 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(MemoryUseOrDef, MemoryAccess)
 
-/// \brief Represents read-only accesses to memory
+/// Represents read-only accesses to memory
 ///
 /// In particular, the set of Instructions that will be represented by
 /// MemoryUse's is exactly the set of Instructions for which
@@ -364,7 +364,7 @@
 struct OperandTraits<MemoryUse> : public FixedNumOperandTraits<MemoryUse, 1> {};
 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(MemoryUse, MemoryAccess)
 
-/// \brief Represents a read-write access to memory, whether it is a must-alias,
+/// Represents a read-write access to memory, whether it is a must-alias,
 /// or a may-alias.
 ///
 /// In particular, the set of Instructions that will be represented by
@@ -424,7 +424,7 @@
 struct OperandTraits<MemoryDef> : public FixedNumOperandTraits<MemoryDef, 1> {};
 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(MemoryDef, MemoryAccess)
 
-/// \brief Represents phi nodes for memory accesses.
+/// Represents phi nodes for memory accesses.
 ///
 /// These have the same semantic as regular phi nodes, with the exception that
 /// only one phi will ever exist in a given basic block.
@@ -504,10 +504,10 @@
 
   const_op_range incoming_values() const { return operands(); }
 
-  /// \brief Return the number of incoming edges
+  /// Return the number of incoming edges
   unsigned getNumIncomingValues() const { return getNumOperands(); }
 
-  /// \brief Return incoming value number x
+  /// Return incoming value number x
   MemoryAccess *getIncomingValue(unsigned I) const { return getOperand(I); }
   void setIncomingValue(unsigned I, MemoryAccess *V) {
     assert(V && "PHI node got a null value!");
@@ -517,17 +517,17 @@
   static unsigned getOperandNumForIncomingValue(unsigned I) { return I; }
   static unsigned getIncomingValueNumForOperand(unsigned I) { return I; }
 
-  /// \brief Return incoming basic block number @p i.
+  /// Return incoming basic block number @p i.
   BasicBlock *getIncomingBlock(unsigned I) const { return block_begin()[I]; }
 
-  /// \brief Return incoming basic block corresponding
+  /// Return incoming basic block corresponding
   /// to an operand of the PHI.
   BasicBlock *getIncomingBlock(const Use &U) const {
     assert(this == U.getUser() && "Iterator doesn't point to PHI's Uses?");
     return getIncomingBlock(unsigned(&U - op_begin()));
   }
 
-  /// \brief Return incoming basic block corresponding
+  /// Return incoming basic block corresponding
   /// to value use iterator.
   BasicBlock *getIncomingBlock(MemoryAccess::const_user_iterator I) const {
     return getIncomingBlock(I.getUse());
@@ -538,7 +538,7 @@
     block_begin()[I] = BB;
   }
 
-  /// \brief Add an incoming value to the end of the PHI list
+  /// Add an incoming value to the end of the PHI list
   void addIncoming(MemoryAccess *V, BasicBlock *BB) {
     if (getNumOperands() == ReservedSpace)
       growOperands(); // Get more space!
@@ -548,7 +548,7 @@
     setIncomingBlock(getNumOperands() - 1, BB);
   }
 
-  /// \brief Return the first index of the specified basic
+  /// Return the first index of the specified basic
   /// block in the value list for this PHI.  Returns -1 if no instance.
   int getBasicBlockIndex(const BasicBlock *BB) const {
     for (unsigned I = 0, E = getNumOperands(); I != E; ++I)
@@ -557,12 +557,53 @@
     return -1;
   }
 
-  Value *getIncomingValueForBlock(const BasicBlock *BB) const {
+  MemoryAccess *getIncomingValueForBlock(const BasicBlock *BB) const {
     int Idx = getBasicBlockIndex(BB);
     assert(Idx >= 0 && "Invalid basic block argument!");
     return getIncomingValue(Idx);
   }
 
+  // After deleting incoming position I, the order of incoming may be changed.
+  void unorderedDeleteIncoming(unsigned I) {
+    unsigned E = getNumOperands();
+    assert(I < E && "Cannot remove out of bounds Phi entry.");
+    // MemoryPhi must have at least two incoming values, otherwise the MemoryPhi
+    // itself should be deleted.
+    assert(E >= 2 && "Cannot only remove incoming values in MemoryPhis with "
+                     "at least 2 values.");
+    setIncomingValue(I, getIncomingValue(E - 1));
+    setIncomingBlock(I, block_begin()[E - 1]);
+    setOperand(E - 1, nullptr);
+    block_begin()[E - 1] = nullptr;
+    setNumHungOffUseOperands(getNumOperands() - 1);
+  }
+
+  // After deleting entries that satisfy Pred, remaining entries may have
+  // changed order.
+  template <typename Fn> void unorderedDeleteIncomingIf(Fn &&Pred) {
+    for (unsigned I = 0, E = getNumOperands(); I != E; ++I)
+      if (Pred(getIncomingValue(I), getIncomingBlock(I))) {
+        unorderedDeleteIncoming(I);
+        E = getNumOperands();
+        --I;
+      }
+    assert(getNumOperands() >= 1 &&
+           "Cannot remove all incoming blocks in a MemoryPhi.");
+  }
+
+  // After deleting incoming block BB, the incoming blocks order may be changed.
+  void unorderedDeleteIncomingBlock(const BasicBlock *BB) {
+    unorderedDeleteIncomingIf(
+        [&](const MemoryAccess *, const BasicBlock *B) { return BB == B; });
+  }
+
+  // After deleting incoming memory access MA, the incoming accesses order may
+  // be changed.
+  void unorderedDeleteIncomingValue(const MemoryAccess *MA) {
+    unorderedDeleteIncomingIf(
+        [&](const MemoryAccess *M, const BasicBlock *) { return MA == M; });
+  }
+
   static bool classof(const Value *V) {
     return V->getValueID() == MemoryPhiVal;
   }
@@ -574,7 +615,7 @@
 protected:
   friend class MemorySSA;
 
-  /// \brief this is more complicated than the generic
+  /// this is more complicated than the generic
   /// User::allocHungoffUses, because we have to allocate Uses for the incoming
   /// values and pointers to the incoming blocks, all in one allocation.
   void allocHungoffUses(unsigned N) {
@@ -586,7 +627,7 @@
   const unsigned ID;
   unsigned ReservedSpace;
 
-  /// \brief This grows the operand list in response to a push_back style of
+  /// This grows the operand list in response to a push_back style of
   /// operation.  This grows the number of ops by 1.5 times.
   void growOperands() {
     unsigned E = getNumOperands();
@@ -635,7 +676,7 @@
 template <> struct OperandTraits<MemoryPhi> : public HungoffOperandTraits<2> {};
 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(MemoryPhi, MemoryAccess)
 
-/// \brief Encapsulates MemorySSA, including all data associated with memory
+/// Encapsulates MemorySSA, including all data associated with memory
 /// accesses.
 class MemorySSA {
 public:
@@ -644,7 +685,7 @@
 
   MemorySSAWalker *getWalker();
 
-  /// \brief Given a memory Mod/Ref'ing instruction, get the MemorySSA
+  /// Given a memory Mod/Ref'ing instruction, get the MemorySSA
   /// access associated with it. If passed a basic block gets the memory phi
   /// node that exists for that block, if there is one. Otherwise, this will get
   /// a MemoryUseOrDef.
@@ -654,7 +695,7 @@
   void dump() const;
   void print(raw_ostream &) const;
 
-  /// \brief Return true if \p MA represents the live on entry value
+  /// Return true if \p MA represents the live on entry value
   ///
   /// Loads and stores from pointer arguments and other global values may be
   /// defined by memory operations that do not occur in the current function, so
@@ -678,14 +719,14 @@
   using DefsList =
       simple_ilist<MemoryAccess, ilist_tag<MSSAHelpers::DefsOnlyTag>>;
 
-  /// \brief Return the list of MemoryAccess's for a given basic block.
+  /// Return the list of MemoryAccess's for a given basic block.
   ///
   /// This list is not modifiable by the user.
   const AccessList *getBlockAccesses(const BasicBlock *BB) const {
     return getWritableBlockAccesses(BB);
   }
 
-  /// \brief Return the list of MemoryDef's and MemoryPhi's for a given basic
+  /// Return the list of MemoryDef's and MemoryPhi's for a given basic
   /// block.
   ///
   /// This list is not modifiable by the user.
@@ -693,19 +734,19 @@
     return getWritableBlockDefs(BB);
   }
 
-  /// \brief Given two memory accesses in the same basic block, determine
+  /// Given two memory accesses in the same basic block, determine
   /// whether MemoryAccess \p A dominates MemoryAccess \p B.
   bool locallyDominates(const MemoryAccess *A, const MemoryAccess *B) const;
 
-  /// \brief Given two memory accesses in potentially different blocks,
+  /// Given two memory accesses in potentially different blocks,
   /// determine whether MemoryAccess \p A dominates MemoryAccess \p B.
   bool dominates(const MemoryAccess *A, const MemoryAccess *B) const;
 
-  /// \brief Given a MemoryAccess and a Use, determine whether MemoryAccess \p A
+  /// Given a MemoryAccess and a Use, determine whether MemoryAccess \p A
   /// dominates Use \p B.
   bool dominates(const MemoryAccess *A, const Use &B) const;
 
-  /// \brief Verify that MemorySSA is self consistent (IE definitions dominate
+  /// Verify that MemorySSA is self consistent (IE definitions dominate
   /// all uses, uses appear in the right places).  This is used by unit tests.
   void verifyMemorySSA() const;
 
@@ -722,6 +763,7 @@
   void verifyDefUses(Function &F) const;
   void verifyDomination(Function &F) const;
   void verifyOrdering(Function &F) const;
+  void verifyDominationNumbers(const Function &F) const;
 
   // This is used by the use optimizer and updater.
   AccessList *getWritableBlockAccesses(const BasicBlock *BB) const {
@@ -740,7 +782,7 @@
   // relies on the updater to fixup what it breaks, so it is not public.
 
   void moveTo(MemoryUseOrDef *What, BasicBlock *BB, AccessList::iterator Where);
-  void moveTo(MemoryUseOrDef *What, BasicBlock *BB, InsertionPlace Point);
+  void moveTo(MemoryAccess *What, BasicBlock *BB, InsertionPlace Point);
 
   // Rename the dominator tree branch rooted at BB.
   void renamePass(BasicBlock *BB, MemoryAccess *IncomingVal,
@@ -776,8 +818,7 @@
   MemoryPhi *createMemoryPhi(BasicBlock *BB);
   MemoryUseOrDef *createNewAccess(Instruction *);
   MemoryAccess *findDominatingDef(BasicBlock *, enum InsertionPlace);
-  void placePHINodes(const SmallPtrSetImpl<BasicBlock *> &,
-                     const DenseMap<const BasicBlock *, unsigned int> &);
+  void placePHINodes(const SmallPtrSetImpl<BasicBlock *> &);
   MemoryAccess *renameBlock(BasicBlock *, MemoryAccess *, bool);
   void renameSuccessorPhis(BasicBlock *, MemoryAccess *, bool);
   void renamePass(DomTreeNode *, MemoryAccess *IncomingVal,
@@ -859,7 +900,7 @@
   Result run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Printer pass for \c MemorySSA.
+/// Printer pass for \c MemorySSA.
 class MemorySSAPrinterPass : public PassInfoMixin<MemorySSAPrinterPass> {
   raw_ostream &OS;
 
@@ -869,12 +910,12 @@
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Verifier pass for \c MemorySSA.
+/// Verifier pass for \c MemorySSA.
 struct MemorySSAVerifierPass : PassInfoMixin<MemorySSAVerifierPass> {
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Legacy analysis pass which computes \c MemorySSA.
+/// Legacy analysis pass which computes \c MemorySSA.
 class MemorySSAWrapperPass : public FunctionPass {
 public:
   MemorySSAWrapperPass();
@@ -895,7 +936,7 @@
   std::unique_ptr<MemorySSA> MSSA;
 };
 
-/// \brief This is the generic walker interface for walkers of MemorySSA.
+/// This is the generic walker interface for walkers of MemorySSA.
 /// Walkers are used to be able to further disambiguate the def-use chains
 /// MemorySSA gives you, or otherwise produce better info than MemorySSA gives
 /// you.
@@ -913,7 +954,7 @@
 
   using MemoryAccessSet = SmallVector<MemoryAccess *, 8>;
 
-  /// \brief Given a memory Mod/Ref/ModRef'ing instruction, calling this
+  /// Given a memory Mod/Ref/ModRef'ing instruction, calling this
   /// will give you the nearest dominating MemoryAccess that Mod's the location
   /// the instruction accesses (by skipping any def which AA can prove does not
   /// alias the location(s) accessed by the instruction given).
@@ -945,7 +986,7 @@
   /// but takes a MemoryAccess instead of an Instruction.
   virtual MemoryAccess *getClobberingMemoryAccess(MemoryAccess *) = 0;
 
-  /// \brief Given a potentially clobbering memory access and a new location,
+  /// Given a potentially clobbering memory access and a new location,
   /// calling this will give you the nearest dominating clobbering MemoryAccess
   /// (by skipping non-aliasing def links).
   ///
@@ -959,7 +1000,7 @@
   virtual MemoryAccess *getClobberingMemoryAccess(MemoryAccess *,
                                                   const MemoryLocation &) = 0;
 
-  /// \brief Given a memory access, invalidate anything this walker knows about
+  /// Given a memory access, invalidate anything this walker knows about
   /// that access.
   /// This API is used by walkers that store information to perform basic cache
   /// invalidation.  This will be called by MemorySSA at appropriate times for
@@ -974,7 +1015,7 @@
   MemorySSA *MSSA;
 };
 
-/// \brief A MemorySSAWalker that does no alias queries, or anything else. It
+/// A MemorySSAWalker that does no alias queries, or anything else. It
 /// simply returns the links as they were constructed by the builder.
 class DoNothingMemorySSAWalker final : public MemorySSAWalker {
 public:
@@ -990,7 +1031,7 @@
 using MemoryAccessPair = std::pair<MemoryAccess *, MemoryLocation>;
 using ConstMemoryAccessPair = std::pair<const MemoryAccess *, MemoryLocation>;
 
-/// \brief Iterator base class used to implement const and non-const iterators
+/// Iterator base class used to implement const and non-const iterators
 /// over the defining accesses of a MemoryAccess.
 template <class T>
 class memoryaccess_def_iterator_base
@@ -1063,7 +1104,7 @@
   return const_memoryaccess_def_iterator();
 }
 
-/// \brief GraphTraits for a MemoryAccess, which walks defs in the normal case,
+/// GraphTraits for a MemoryAccess, which walks defs in the normal case,
 /// and uses in the inverse case.
 template <> struct GraphTraits<MemoryAccess *> {
   using NodeRef = MemoryAccess *;
@@ -1083,7 +1124,7 @@
   static ChildIteratorType child_end(NodeRef N) { return N->user_end(); }
 };
 
-/// \brief Provide an iterator that walks defs, giving both the memory access,
+/// Provide an iterator that walks defs, giving both the memory access,
 /// and the current pointer location, updating the pointer location as it
 /// changes due to phi node translation.
 ///
diff --git a/linux-x64/clang/include/llvm/Analysis/MemorySSAUpdater.h b/linux-x64/clang/include/llvm/Analysis/MemorySSAUpdater.h
index 3f4ef06..38f08c1 100644
--- a/linux-x64/clang/include/llvm/Analysis/MemorySSAUpdater.h
+++ b/linux-x64/clang/include/llvm/Analysis/MemorySSAUpdater.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 //
 // \file
-// \brief An automatic updater for MemorySSA that handles arbitrary insertion,
+// An automatic updater for MemorySSA that handles arbitrary insertion,
 // deletion, and moves.  It performs phi insertion where necessary, and
 // automatically updates the MemorySSA IR to be correct.
 // While updating loads or removing instructions is often easy enough to not
@@ -33,6 +33,7 @@
 #define LLVM_ANALYSIS_MEMORYSSAUPDATER_H
 
 #include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/SmallSet.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Analysis/MemorySSA.h"
 #include "llvm/IR/BasicBlock.h"
@@ -59,8 +60,13 @@
 class MemorySSAUpdater {
 private:
   MemorySSA *MSSA;
-  SmallVector<MemoryPhi *, 8> InsertedPHIs;
+
+  /// We use WeakVH rather than a costly deletion to deal with dangling pointers.
+  /// MemoryPhis are created eagerly and sometimes get zapped shortly afterwards.
+  SmallVector<WeakVH, 16> InsertedPHIs;
+
   SmallPtrSet<BasicBlock *, 8> VisitedBlocks;
+  SmallSet<AssertingVH<MemoryPhi>, 8> NonOptPhis;
 
 public:
   MemorySSAUpdater(MemorySSA *MSSA) : MSSA(MSSA) {}
@@ -87,6 +93,45 @@
   void moveAfter(MemoryUseOrDef *What, MemoryUseOrDef *Where);
   void moveToPlace(MemoryUseOrDef *What, BasicBlock *BB,
                    MemorySSA::InsertionPlace Where);
+  /// `From` block was spliced into `From` and `To`.
+  /// Move all accesses from `From` to `To` starting at instruction `Start`.
+  /// `To` is newly created BB, so empty of MemorySSA::MemoryAccesses.
+  /// Edges are already updated, so successors of `To` with MPhi nodes need to
+  /// update incoming block.
+  /// |------|        |------|
+  /// | From |        | From |
+  /// |      |        |------|
+  /// |      |           ||
+  /// |      |   =>      \/
+  /// |      |        |------|  <- Start
+  /// |      |        |  To  |
+  /// |------|        |------|
+  void moveAllAfterSpliceBlocks(BasicBlock *From, BasicBlock *To,
+                                Instruction *Start);
+  /// `From` block was merged into `To`. All instructions were moved and
+  /// `From` is an empty block with successor edges; `From` is about to be
+  /// deleted. Move all accesses from `From` to `To` starting at instruction
+  /// `Start`. `To` may have multiple successors, `From` has a single
+  /// predecessor. `From` may have successors with MPhi nodes, replace their
+  /// incoming block with `To`.
+  /// |------|        |------|
+  /// |  To  |        |  To  |
+  /// |------|        |      |
+  ///    ||      =>   |      |
+  ///    \/           |      |
+  /// |------|        |      |  <- Start
+  /// | From |        |      |
+  /// |------|        |------|
+  void moveAllAfterMergeBlocks(BasicBlock *From, BasicBlock *To,
+                               Instruction *Start);
+  /// BasicBlock Old had New, an empty BasicBlock, added directly before it,
+  /// and the predecessors in Preds that used to point to Old, now point to
+  /// New. If New is the only predecessor, move Old's Phi, if present, to New.
+  /// Otherwise, add a new Phi in New with appropriate incoming values, and
+  /// update the incoming values in Old's Phi node too, if present.
+  void
+  wireOldPredecessorsToNewImmediatePredecessor(BasicBlock *Old, BasicBlock *New,
+                                               ArrayRef<BasicBlock *> Preds);
 
   // The below are utility functions. Other than creation of accesses to pass
   // to insertDef, and removeAccess to remove accesses, you should generally
@@ -94,7 +139,7 @@
   // the edge cases right, and the above calls already operate in near-optimal
   // time bounds.
 
-  /// \brief Create a MemoryAccess in MemorySSA at a specified point in a block,
+  /// Create a MemoryAccess in MemorySSA at a specified point in a block,
   /// with a specified clobbering definition.
   ///
   /// Returns the new MemoryAccess.
@@ -111,7 +156,7 @@
                                        const BasicBlock *BB,
                                        MemorySSA::InsertionPlace Point);
 
-  /// \brief Create a MemoryAccess in MemorySSA before or after an existing
+  /// Create a MemoryAccess in MemorySSA before or after an existing
   /// MemoryAccess.
   ///
   /// Returns the new MemoryAccess.
@@ -128,7 +173,7 @@
                                           MemoryAccess *Definition,
                                           MemoryAccess *InsertPt);
 
-  /// \brief Remove a MemoryAccess from MemorySSA, including updating all
+  /// Remove a MemoryAccess from MemorySSA, including updating all
   /// definitions and uses.
   /// This should be called when a memory instruction that has a MemoryAccess
   /// associated with it is erased from the program.  For example, if a store or
@@ -136,10 +181,33 @@
   /// on the MemoryAccess for that store/load.
   void removeMemoryAccess(MemoryAccess *);
 
+  /// Remove MemoryAccess for a given instruction, if a MemoryAccess exists.
+  /// This should be called when an instruction (load/store) is deleted from
+  /// the program.
+  void removeMemoryAccess(const Instruction *I) {
+    if (MemoryAccess *MA = MSSA->getMemoryAccess(I))
+      removeMemoryAccess(MA);
+  }
+
+  /// Remove all MemoryAcceses in a set of BasicBlocks about to be deleted.
+  /// Assumption we make here: all uses of deleted defs and phi must either
+  /// occur in blocks about to be deleted (thus will be deleted as well), or
+  /// they occur in phis that will simply lose an incoming value.
+  /// Deleted blocks still have successor info, but their predecessor edges and
+  /// Phi nodes may already be updated. Instructions in DeadBlocks should be
+  /// deleted after this call.
+  void removeBlocks(const SmallPtrSetImpl<BasicBlock *> &DeadBlocks);
+
+  /// Get handle on MemorySSA.
+  MemorySSA* getMemorySSA() const { return MSSA; }
+
 private:
   // Move What before Where in the MemorySSA IR.
   template <class WhereType>
   void moveTo(MemoryUseOrDef *What, BasicBlock *BB, WhereType Where);
+  // Move all memory accesses from `From` to `To` starting at `Start`.
+  // Restrictions apply, see public wrappers of this method.
+  void moveAllAccesses(BasicBlock *From, BasicBlock *To, Instruction *Start);
   MemoryAccess *getPreviousDef(MemoryAccess *);
   MemoryAccess *getPreviousDefInBlock(MemoryAccess *);
   MemoryAccess *
@@ -151,7 +219,7 @@
   MemoryAccess *recursePhi(MemoryAccess *Phi);
   template <class RangeType>
   MemoryAccess *tryRemoveTrivialPhi(MemoryPhi *Phi, RangeType &Operands);
-  void fixupDefs(const SmallVectorImpl<MemoryAccess *> &);
+  void fixupDefs(const SmallVectorImpl<WeakVH> &);
 };
 } // end namespace llvm
 
diff --git a/linux-x64/clang/include/llvm/Analysis/MustExecute.h b/linux-x64/clang/include/llvm/Analysis/MustExecute.h
index fb48bb6..97ad76d 100644
--- a/linux-x64/clang/include/llvm/Analysis/MustExecute.h
+++ b/linux-x64/clang/include/llvm/Analysis/MustExecute.h
@@ -10,7 +10,7 @@
 /// Contains a collection of routines for determining if a given instruction is
 /// guaranteed to execute if a given point in control flow is reached.  The most
 /// common example is an instruction within a loop being provably executed if we
-/// branch to the header of it's containing loop.  
+/// branch to the header of it's containing loop.
 ///
 //===----------------------------------------------------------------------===//
 
@@ -30,7 +30,7 @@
 class DominatorTree;
 class Loop;
 
-/// \brief Captures loop safety information.
+/// Captures loop safety information.
 /// It keep information for loop & its header may throw exception or otherwise
 /// exit abnormaly on any iteration of the loop which might actually execute
 /// at runtime.  The primary way to consume this infromation is via
@@ -46,7 +46,7 @@
   LoopSafetyInfo() = default;
 };
 
-/// \brief Computes safety information for a loop checks loop body & header for
+/// Computes safety information for a loop checks loop body & header for
 /// the possibility of may throw exception, it takes LoopSafetyInfo and loop as
 /// argument. Updates safety information in LoopSafetyInfo argument.
 /// Note: This is defined to clear and reinitialize an already initialized
@@ -58,7 +58,7 @@
 bool isGuaranteedToExecute(const Instruction &Inst, const DominatorTree *DT,
                            const Loop *CurLoop,
                            const LoopSafetyInfo *SafetyInfo);
-  
+
 }
 
 #endif
diff --git a/linux-x64/clang/include/llvm/Analysis/ObjCARCAliasAnalysis.h b/linux-x64/clang/include/llvm/Analysis/ObjCARCAliasAnalysis.h
index db524ff..559c77c 100644
--- a/linux-x64/clang/include/llvm/Analysis/ObjCARCAliasAnalysis.h
+++ b/linux-x64/clang/include/llvm/Analysis/ObjCARCAliasAnalysis.h
@@ -29,7 +29,7 @@
 namespace llvm {
 namespace objcarc {
 
-/// \brief This is a simple alias analysis implementation that uses knowledge
+/// This is a simple alias analysis implementation that uses knowledge
 /// of ARC constructs to answer queries.
 ///
 /// TODO: This class could be generalized to know about other ObjC-specific
diff --git a/linux-x64/clang/include/llvm/Analysis/ObjCARCAnalysisUtils.h b/linux-x64/clang/include/llvm/Analysis/ObjCARCAnalysisUtils.h
index 096573f..07beb0b 100644
--- a/linux-x64/clang/include/llvm/Analysis/ObjCARCAnalysisUtils.h
+++ b/linux-x64/clang/include/llvm/Analysis/ObjCARCAnalysisUtils.h
@@ -34,6 +34,7 @@
 #include "llvm/IR/InstIterator.h"
 #include "llvm/IR/LLVMContext.h"
 #include "llvm/IR/Module.h"
+#include "llvm/IR/ValueHandle.h"
 #include "llvm/Pass.h"
 
 namespace llvm {
@@ -43,10 +44,10 @@
 namespace llvm {
 namespace objcarc {
 
-/// \brief A handy option to enable/disable all ARC Optimizations.
+/// A handy option to enable/disable all ARC Optimizations.
 extern bool EnableARCOpts;
 
-/// \brief Test if the given module looks interesting to run ARC optimization
+/// Test if the given module looks interesting to run ARC optimization
 /// on.
 inline bool ModuleHasARC(const Module &M) {
   return
@@ -71,7 +72,7 @@
     M.getNamedValue("clang.arc.use");
 }
 
-/// \brief This is a wrapper around getUnderlyingObject which also knows how to
+/// This is a wrapper around getUnderlyingObject which also knows how to
 /// look through objc_retain and objc_autorelease calls, which we know to return
 /// their argument verbatim.
 inline const Value *GetUnderlyingObjCPtr(const Value *V,
@@ -89,11 +90,13 @@
 /// A wrapper for GetUnderlyingObjCPtr used for results memoization.
 inline const Value *
 GetUnderlyingObjCPtrCached(const Value *V, const DataLayout &DL,
-                           DenseMap<const Value *, const Value *> &Cache) {
+                           DenseMap<const Value *, WeakTrackingVH> &Cache) {
   if (auto InCache = Cache.lookup(V))
     return InCache;
 
-  return Cache[V] = GetUnderlyingObjCPtr(V, DL);
+  const Value *Computed = GetUnderlyingObjCPtr(V, DL);
+  Cache[V] = const_cast<Value *>(Computed);
+  return Computed;
 }
 
 /// The RCIdentity root of a value \p V is a dominating value U for which
@@ -129,7 +132,7 @@
   return const_cast<Value *>(GetRCIdentityRoot((const Value *)V));
 }
 
-/// \brief Assuming the given instruction is one of the special calls such as
+/// Assuming the given instruction is one of the special calls such as
 /// objc_retain or objc_release, return the RCIdentity root of the argument of
 /// the call.
 inline Value *GetArgRCIdentityRoot(Value *Inst) {
@@ -146,7 +149,7 @@
      cast<GetElementPtrInst>(I)->hasAllZeroIndices());
 }
 
-/// \brief Test whether the given value is possible a retainable object pointer.
+/// Test whether the given value is possible a retainable object pointer.
 inline bool IsPotentialRetainableObjPtr(const Value *Op) {
   // Pointers to static or stack storage are not valid retainable object
   // pointers.
@@ -191,7 +194,7 @@
   return true;
 }
 
-/// \brief Helper for GetARCInstKind. Determines what kind of construct CS
+/// Helper for GetARCInstKind. Determines what kind of construct CS
 /// is.
 inline ARCInstKind GetCallSiteClass(ImmutableCallSite CS) {
   for (ImmutableCallSite::arg_iterator I = CS.arg_begin(), E = CS.arg_end();
@@ -202,7 +205,7 @@
   return CS.onlyReadsMemory() ? ARCInstKind::None : ARCInstKind::Call;
 }
 
-/// \brief Return true if this value refers to a distinct and identifiable
+/// Return true if this value refers to a distinct and identifiable
 /// object.
 ///
 /// This is similar to AliasAnalysis's isIdentifiedObject, except that it uses
diff --git a/linux-x64/clang/include/llvm/Analysis/ObjCARCInstKind.h b/linux-x64/clang/include/llvm/Analysis/ObjCARCInstKind.h
index 02ff035..0b92d8b 100644
--- a/linux-x64/clang/include/llvm/Analysis/ObjCARCInstKind.h
+++ b/linux-x64/clang/include/llvm/Analysis/ObjCARCInstKind.h
@@ -18,7 +18,7 @@
 
 /// \enum ARCInstKind
 ///
-/// \brief Equivalence classes of instructions in the ARC Model.
+/// Equivalence classes of instructions in the ARC Model.
 ///
 /// Since we do not have "instructions" to represent ARC concepts in LLVM IR,
 /// we instead operate on equivalence classes of instructions.
@@ -57,32 +57,32 @@
 
 raw_ostream &operator<<(raw_ostream &OS, const ARCInstKind Class);
 
-/// \brief Test if the given class is a kind of user.
+/// Test if the given class is a kind of user.
 bool IsUser(ARCInstKind Class);
 
-/// \brief Test if the given class is objc_retain or equivalent.
+/// Test if the given class is objc_retain or equivalent.
 bool IsRetain(ARCInstKind Class);
 
-/// \brief Test if the given class is objc_autorelease or equivalent.
+/// Test if the given class is objc_autorelease or equivalent.
 bool IsAutorelease(ARCInstKind Class);
 
-/// \brief Test if the given class represents instructions which return their
+/// Test if the given class represents instructions which return their
 /// argument verbatim.
 bool IsForwarding(ARCInstKind Class);
 
-/// \brief Test if the given class represents instructions which do nothing if
+/// Test if the given class represents instructions which do nothing if
 /// passed a null pointer.
 bool IsNoopOnNull(ARCInstKind Class);
 
-/// \brief Test if the given class represents instructions which are always safe
+/// Test if the given class represents instructions which are always safe
 /// to mark with the "tail" keyword.
 bool IsAlwaysTail(ARCInstKind Class);
 
-/// \brief Test if the given class represents instructions which are never safe
+/// Test if the given class represents instructions which are never safe
 /// to mark with the "tail" keyword.
 bool IsNeverTail(ARCInstKind Class);
 
-/// \brief Test if the given class represents instructions which are always safe
+/// Test if the given class represents instructions which are always safe
 /// to mark with the nounwind attribute.
 bool IsNoThrow(ARCInstKind Class);
 
@@ -90,11 +90,11 @@
 /// autoreleasepool pop.
 bool CanInterruptRV(ARCInstKind Class);
 
-/// \brief Determine if F is one of the special known Functions.  If it isn't,
+/// Determine if F is one of the special known Functions.  If it isn't,
 /// return ARCInstKind::CallOrUser.
 ARCInstKind GetFunctionClass(const Function *F);
 
-/// \brief Determine which objc runtime call instruction class V belongs to.
+/// Determine which objc runtime call instruction class V belongs to.
 ///
 /// This is similar to GetARCInstKind except that it only detects objc
 /// runtime calls. This allows it to be faster.
diff --git a/linux-x64/clang/include/llvm/Analysis/OptimizationRemarkEmitter.h b/linux-x64/clang/include/llvm/Analysis/OptimizationRemarkEmitter.h
index 26f32ac..fa83869 100644
--- a/linux-x64/clang/include/llvm/Analysis/OptimizationRemarkEmitter.h
+++ b/linux-x64/clang/include/llvm/Analysis/OptimizationRemarkEmitter.h
@@ -40,7 +40,7 @@
   OptimizationRemarkEmitter(const Function *F, BlockFrequencyInfo *BFI)
       : F(F), BFI(BFI) {}
 
-  /// \brief This variant can be used to generate ORE on demand (without the
+  /// This variant can be used to generate ORE on demand (without the
   /// analysis pass).
   ///
   /// Note that this ctor has a very different cost depending on whether
@@ -66,11 +66,11 @@
   bool invalidate(Function &F, const PreservedAnalyses &PA,
                   FunctionAnalysisManager::Invalidator &Inv);
 
-  /// \brief Output the remark via the diagnostic handler and to the
+  /// Output the remark via the diagnostic handler and to the
   /// optimization record file.
   void emit(DiagnosticInfoOptimizationBase &OptDiag);
 
-  /// \brief Take a lambda that returns a remark which will be emitted.  Second
+  /// Take a lambda that returns a remark which will be emitted.  Second
   /// argument is only used to restrict this to functions.
   template <typename T>
   void emit(T RemarkBuilder, decltype(RemarkBuilder()) * = nullptr) {
@@ -85,7 +85,7 @@
     }
   }
 
-  /// \brief Whether we allow for extra compile-time budget to perform more
+  /// Whether we allow for extra compile-time budget to perform more
   /// analysis to produce fewer false positives.
   ///
   /// This is useful when reporting missed optimizations.  In this case we can
@@ -112,7 +112,7 @@
   /// Similar but use value from \p OptDiag and update hotness there.
   void computeHotness(DiagnosticInfoIROptimization &OptDiag);
 
-  /// \brief Only allow verbose messages if we know we're filtering by hotness
+  /// Only allow verbose messages if we know we're filtering by hotness
   /// (BFI is only set in this case).
   bool shouldEmitVerbose() { return BFI != nullptr; }
 
@@ -120,7 +120,7 @@
   void operator=(const OptimizationRemarkEmitter &) = delete;
 };
 
-/// \brief Add a small namespace to avoid name clashes with the classes used in
+/// Add a small namespace to avoid name clashes with the classes used in
 /// the streaming interface.  We want these to be short for better
 /// write/readability.
 namespace ore {
@@ -158,10 +158,10 @@
   static AnalysisKey Key;
 
 public:
-  /// \brief Provide the result typedef for this analysis pass.
+  /// Provide the result typedef for this analysis pass.
   typedef OptimizationRemarkEmitter Result;
 
-  /// \brief Run the analysis pass over a function and produce BFI.
+  /// Run the analysis pass over a function and produce BFI.
   Result run(Function &F, FunctionAnalysisManager &AM);
 };
 }
diff --git a/linux-x64/clang/include/llvm/Analysis/OrderedBasicBlock.h b/linux-x64/clang/include/llvm/Analysis/OrderedBasicBlock.h
index 2e716af..0776aa6 100644
--- a/linux-x64/clang/include/llvm/Analysis/OrderedBasicBlock.h
+++ b/linux-x64/clang/include/llvm/Analysis/OrderedBasicBlock.h
@@ -33,28 +33,28 @@
 
 class OrderedBasicBlock {
 private:
-  /// \brief Map a instruction to its position in a BasicBlock.
+  /// Map a instruction to its position in a BasicBlock.
   SmallDenseMap<const Instruction *, unsigned, 32> NumberedInsts;
 
-  /// \brief Keep track of last instruction inserted into \p NumberedInsts.
+  /// Keep track of last instruction inserted into \p NumberedInsts.
   /// It speeds up queries for uncached instructions by providing a start point
   /// for new queries in OrderedBasicBlock::comesBefore.
   BasicBlock::const_iterator LastInstFound;
 
-  /// \brief The position/number to tag the next instruction to be found.
+  /// The position/number to tag the next instruction to be found.
   unsigned NextInstPos;
 
-  /// \brief The source BasicBlock to map.
+  /// The source BasicBlock to map.
   const BasicBlock *BB;
 
-  /// \brief Given no cached results, find if \p A comes before \p B in \p BB.
+  /// Given no cached results, find if \p A comes before \p B in \p BB.
   /// Cache and number out instruction while walking \p BB.
   bool comesBefore(const Instruction *A, const Instruction *B);
 
 public:
   OrderedBasicBlock(const BasicBlock *BasicB);
 
-  /// \brief Find out whether \p A dominates \p B, meaning whether \p A
+  /// Find out whether \p A dominates \p B, meaning whether \p A
   /// comes before \p B in \p BB. This is a simplification that considers
   /// cached instruction positions and ignores other basic blocks, being
   /// only relevant to compare relative instructions positions inside \p BB.
diff --git a/linux-x64/clang/include/llvm/Analysis/PHITransAddr.h b/linux-x64/clang/include/llvm/Analysis/PHITransAddr.h
index f0f34f3..0a335b6 100644
--- a/linux-x64/clang/include/llvm/Analysis/PHITransAddr.h
+++ b/linux-x64/clang/include/llvm/Analysis/PHITransAddr.h
@@ -43,7 +43,7 @@
   /// TLI - The target library info if known, otherwise null.
   const TargetLibraryInfo *TLI;
 
-  /// A cache of @llvm.assume calls used by SimplifyInstruction.
+  /// A cache of \@llvm.assume calls used by SimplifyInstruction.
   AssumptionCache *AC;
 
   /// InstInputs - The inputs for our symbolic address.
diff --git a/linux-x64/clang/include/llvm/Analysis/PhiValues.h b/linux-x64/clang/include/llvm/Analysis/PhiValues.h
new file mode 100644
index 0000000..6607b32
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Analysis/PhiValues.h
@@ -0,0 +1,143 @@
+//===- PhiValues.h - Phi Value Analysis -------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the PhiValues class, and associated passes, which can be
+// used to find the underlying values of the phis in a function, i.e. the
+// non-phi values that can be found by traversing the phi graph.
+//
+// This information is computed lazily and cached. If new phis are added to the
+// function they are handled correctly, but if an existing phi has its operands
+// modified PhiValues has to be notified by calling invalidateValue.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ANALYSIS_PHIVALUES_H
+#define LLVM_ANALYSIS_PHIVALUES_H
+
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/DenseSet.h"
+#include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/IR/PassManager.h"
+#include "llvm/IR/ValueHandle.h"
+#include "llvm/Pass.h"
+
+namespace llvm {
+
+class Use;
+class Value;
+class PHINode;
+class Function;
+
+/// Class for calculating and caching the underlying values of phis in a
+/// function.
+///
+/// Initially the PhiValues is empty, and gets incrementally populated whenever
+/// it is queried.
+class PhiValues {
+public:
+  using ValueSet = SmallPtrSet<Value *, 4>;
+
+  /// Construct an empty PhiValues.
+  PhiValues(const Function &F) : F(F) {}
+
+  /// Get the underlying values of a phi.
+  ///
+  /// This returns the cached value if PN has previously been processed,
+  /// otherwise it processes it first.
+  const ValueSet &getValuesForPhi(const PHINode *PN);
+
+  /// Notify PhiValues that the cached information using V is no longer valid
+  ///
+  /// Whenever a phi has its operands modified the cached values for that phi
+  /// (and the phis that use that phi) become invalid. A user of PhiValues has
+  /// to notify it of this by calling invalidateValue on either the operand or
+  /// the phi, which will then clear the relevant cached information.
+  void invalidateValue(const Value *V);
+
+  /// Free the memory used by this class.
+  void releaseMemory();
+
+  /// Print out the values currently in the cache.
+  void print(raw_ostream &OS) const;
+
+  /// Handle invalidation events in the new pass manager.
+  bool invalidate(Function &, const PreservedAnalyses &,
+                  FunctionAnalysisManager::Invalidator &);
+
+private:
+  using PhiSet = SmallPtrSet<const PHINode *, 4>;
+  using ConstValueSet = SmallPtrSet<const Value *, 4>;
+
+  /// The next depth number to be used by processPhi.
+  unsigned int NextDepthNumber = 1;
+
+  /// Depth numbers of phis. Phis with the same depth number are part of the
+  /// same strongly connected component.
+  DenseMap<const PHINode *, unsigned int> DepthMap;
+
+  /// Non-phi values reachable from each component.
+  DenseMap<unsigned int, ValueSet> NonPhiReachableMap;
+
+  /// All values reachable from each component.
+  DenseMap<unsigned int, ConstValueSet> ReachableMap;
+
+  /// The function that the PhiValues is for.
+  const Function &F;
+
+  /// Process a phi so that its entries in the depth and reachable maps are
+  /// fully populated.
+  void processPhi(const PHINode *PN, SmallVector<const PHINode *, 8> &Stack);
+};
+
+/// The analysis pass which yields a PhiValues
+///
+/// The analysis does nothing by itself, and just returns an empty PhiValues
+/// which will get filled in as it's used.
+class PhiValuesAnalysis : public AnalysisInfoMixin<PhiValuesAnalysis> {
+  friend AnalysisInfoMixin<PhiValuesAnalysis>;
+  static AnalysisKey Key;
+
+public:
+  using Result = PhiValues;
+  PhiValues run(Function &F, FunctionAnalysisManager &);
+};
+
+/// A pass for printing the PhiValues for a function.
+///
+/// This pass doesn't print whatever information the PhiValues happens to hold,
+/// but instead first uses the PhiValues to analyze all the phis in the function
+/// so the complete information is printed.
+class PhiValuesPrinterPass : public PassInfoMixin<PhiValuesPrinterPass> {
+  raw_ostream &OS;
+
+public:
+  explicit PhiValuesPrinterPass(raw_ostream &OS) : OS(OS) {}
+  PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
+};
+
+/// Wrapper pass for the legacy pass manager
+class PhiValuesWrapperPass : public FunctionPass {
+  std::unique_ptr<PhiValues> Result;
+
+public:
+  static char ID;
+  PhiValuesWrapperPass();
+
+  PhiValues &getResult() { return *Result; }
+  const PhiValues &getResult() const { return *Result; }
+
+  bool runOnFunction(Function &F) override;
+  void releaseMemory() override;
+  void getAnalysisUsage(AnalysisUsage &AU) const override;
+};
+
+} // namespace llvm
+
+#endif
diff --git a/linux-x64/clang/include/llvm/Analysis/PostDominators.h b/linux-x64/clang/include/llvm/Analysis/PostDominators.h
index 9a8c4d7..f2dc8d1 100644
--- a/linux-x64/clang/include/llvm/Analysis/PostDominators.h
+++ b/linux-x64/clang/include/llvm/Analysis/PostDominators.h
@@ -30,12 +30,14 @@
 public:
   using Base = PostDomTreeBase<BasicBlock>;
 
+  PostDominatorTree() = default;
+  explicit PostDominatorTree(Function &F) { recalculate(F); }
   /// Handle invalidation explicitly.
   bool invalidate(Function &F, const PreservedAnalyses &PA,
                   FunctionAnalysisManager::Invalidator &);
 };
 
-/// \brief Analysis pass which computes a \c PostDominatorTree.
+/// Analysis pass which computes a \c PostDominatorTree.
 class PostDominatorTreeAnalysis
     : public AnalysisInfoMixin<PostDominatorTreeAnalysis> {
   friend AnalysisInfoMixin<PostDominatorTreeAnalysis>;
@@ -43,15 +45,15 @@
   static AnalysisKey Key;
 
 public:
-  /// \brief Provide the result type for this analysis pass.
+  /// Provide the result type for this analysis pass.
   using Result = PostDominatorTree;
 
-  /// \brief Run the analysis pass over a function and produce a post dominator
+  /// Run the analysis pass over a function and produce a post dominator
   ///        tree.
   PostDominatorTree run(Function &F, FunctionAnalysisManager &);
 };
 
-/// \brief Printer pass for the \c PostDominatorTree.
+/// Printer pass for the \c PostDominatorTree.
 class PostDominatorTreePrinterPass
     : public PassInfoMixin<PostDominatorTreePrinterPass> {
   raw_ostream &OS;
diff --git a/linux-x64/clang/include/llvm/Analysis/ProfileSummaryInfo.h b/linux-x64/clang/include/llvm/Analysis/ProfileSummaryInfo.h
index 2930334..58b67e7 100644
--- a/linux-x64/clang/include/llvm/Analysis/ProfileSummaryInfo.h
+++ b/linux-x64/clang/include/llvm/Analysis/ProfileSummaryInfo.h
@@ -31,7 +31,7 @@
 class BlockFrequencyInfo;
 class CallSite;
 class ProfileSummary;
-/// \brief Analysis providing profile information.
+/// Analysis providing profile information.
 ///
 /// This is an immutable analysis pass that provides ability to query global
 /// (program-level) profile information. The main APIs are isHotCount and
@@ -59,16 +59,16 @@
   ProfileSummaryInfo(ProfileSummaryInfo &&Arg)
       : M(Arg.M), Summary(std::move(Arg.Summary)) {}
 
-  /// \brief Returns true if profile summary is available.
+  /// Returns true if profile summary is available.
   bool hasProfileSummary() { return computeSummary(); }
 
-  /// \brief Returns true if module \c M has sample profile.
+  /// Returns true if module \c M has sample profile.
   bool hasSampleProfile() {
     return hasProfileSummary() &&
            Summary->getKind() == ProfileSummary::PSK_Sample;
   }
 
-  /// \brief Returns true if module \c M has instrumentation profile.
+  /// Returns true if module \c M has instrumentation profile.
   bool hasInstrumentationProfile() {
     return hasProfileSummary() &&
            Summary->getKind() == ProfileSummary::PSK_Instr;
@@ -90,31 +90,37 @@
                                      BlockFrequencyInfo *BFI);
   /// Returns true if the working set size of the code is considered huge.
   bool hasHugeWorkingSetSize();
-  /// \brief Returns true if \p F has hot function entry.
+  /// Returns true if \p F has hot function entry.
   bool isFunctionEntryHot(const Function *F);
   /// Returns true if \p F contains hot code.
   bool isFunctionHotInCallGraph(const Function *F, BlockFrequencyInfo &BFI);
-  /// \brief Returns true if \p F has cold function entry.
+  /// Returns true if \p F has cold function entry.
   bool isFunctionEntryCold(const Function *F);
   /// Returns true if \p F contains only cold code.
   bool isFunctionColdInCallGraph(const Function *F, BlockFrequencyInfo &BFI);
-  /// \brief Returns true if \p F is a hot function.
+  /// Returns true if \p F is a hot function.
   bool isHotCount(uint64_t C);
-  /// \brief Returns true if count \p C is considered cold.
+  /// Returns true if count \p C is considered cold.
   bool isColdCount(uint64_t C);
-  /// \brief Returns true if BasicBlock \p B is considered hot.
+  /// Returns true if BasicBlock \p B is considered hot.
   bool isHotBB(const BasicBlock *B, BlockFrequencyInfo *BFI);
-  /// \brief Returns true if BasicBlock \p B is considered cold.
+  /// Returns true if BasicBlock \p B is considered cold.
   bool isColdBB(const BasicBlock *B, BlockFrequencyInfo *BFI);
-  /// \brief Returns true if CallSite \p CS is considered hot.
+  /// Returns true if CallSite \p CS is considered hot.
   bool isHotCallSite(const CallSite &CS, BlockFrequencyInfo *BFI);
-  /// \brief Returns true if Callsite \p CS is considered cold.
+  /// Returns true if Callsite \p CS is considered cold.
   bool isColdCallSite(const CallSite &CS, BlockFrequencyInfo *BFI);
-  /// \brief Returns HotCountThreshold if set.
+  /// Returns HotCountThreshold if set. Recompute HotCountThreshold
+  /// if not set.
+  uint64_t getOrCompHotCountThreshold();
+  /// Returns ColdCountThreshold if set. Recompute HotCountThreshold
+  /// if not set.
+  uint64_t getOrCompColdCountThreshold();
+  /// Returns HotCountThreshold if set.
   uint64_t getHotCountThreshold() {
     return HotCountThreshold ? HotCountThreshold.getValue() : 0;
   }
-  /// \brief Returns ColdCountThreshold if set.
+  /// Returns ColdCountThreshold if set.
   uint64_t getColdCountThreshold() {
     return ColdCountThreshold ? ColdCountThreshold.getValue() : 0;
   }
@@ -152,7 +158,7 @@
   static AnalysisKey Key;
 };
 
-/// \brief Printer pass that uses \c ProfileSummaryAnalysis.
+/// Printer pass that uses \c ProfileSummaryAnalysis.
 class ProfileSummaryPrinterPass
     : public PassInfoMixin<ProfileSummaryPrinterPass> {
   raw_ostream &OS;
diff --git a/linux-x64/clang/include/llvm/Analysis/PtrUseVisitor.h b/linux-x64/clang/include/llvm/Analysis/PtrUseVisitor.h
index f934aa6..b34b25c 100644
--- a/linux-x64/clang/include/llvm/Analysis/PtrUseVisitor.h
+++ b/linux-x64/clang/include/llvm/Analysis/PtrUseVisitor.h
@@ -47,7 +47,7 @@
 
 namespace detail {
 
-/// \brief Implementation of non-dependent functionality for \c PtrUseVisitor.
+/// Implementation of non-dependent functionality for \c PtrUseVisitor.
 ///
 /// See \c PtrUseVisitor for the public interface and detailed comments about
 /// usage. This class is just a helper base class which is not templated and
@@ -55,7 +55,7 @@
 /// PtrUseVisitor.
 class PtrUseVisitorBase {
 public:
-  /// \brief This class provides information about the result of a visit.
+  /// This class provides information about the result of a visit.
   ///
   /// After walking all the users (recursively) of a pointer, the basic
   /// infrastructure records some commonly useful information such as escape
@@ -64,7 +64,7 @@
   public:
     PtrInfo() : AbortedInfo(nullptr, false), EscapedInfo(nullptr, false) {}
 
-    /// \brief Reset the pointer info, clearing all state.
+    /// Reset the pointer info, clearing all state.
     void reset() {
       AbortedInfo.setPointer(nullptr);
       AbortedInfo.setInt(false);
@@ -72,37 +72,37 @@
       EscapedInfo.setInt(false);
     }
 
-    /// \brief Did we abort the visit early?
+    /// Did we abort the visit early?
     bool isAborted() const { return AbortedInfo.getInt(); }
 
-    /// \brief Is the pointer escaped at some point?
+    /// Is the pointer escaped at some point?
     bool isEscaped() const { return EscapedInfo.getInt(); }
 
-    /// \brief Get the instruction causing the visit to abort.
+    /// Get the instruction causing the visit to abort.
     /// \returns a pointer to the instruction causing the abort if one is
     /// available; otherwise returns null.
     Instruction *getAbortingInst() const { return AbortedInfo.getPointer(); }
 
-    /// \brief Get the instruction causing the pointer to escape.
+    /// Get the instruction causing the pointer to escape.
     /// \returns a pointer to the instruction which escapes the pointer if one
     /// is available; otherwise returns null.
     Instruction *getEscapingInst() const { return EscapedInfo.getPointer(); }
 
-    /// \brief Mark the visit as aborted. Intended for use in a void return.
+    /// Mark the visit as aborted. Intended for use in a void return.
     /// \param I The instruction which caused the visit to abort, if available.
     void setAborted(Instruction *I = nullptr) {
       AbortedInfo.setInt(true);
       AbortedInfo.setPointer(I);
     }
 
-    /// \brief Mark the pointer as escaped. Intended for use in a void return.
+    /// Mark the pointer as escaped. Intended for use in a void return.
     /// \param I The instruction which escapes the pointer, if available.
     void setEscaped(Instruction *I = nullptr) {
       EscapedInfo.setInt(true);
       EscapedInfo.setPointer(I);
     }
 
-    /// \brief Mark the pointer as escaped, and the visit as aborted. Intended
+    /// Mark the pointer as escaped, and the visit as aborted. Intended
     /// for use in a void return.
     /// \param I The instruction which both escapes the pointer and aborts the
     /// visit, if available.
@@ -121,10 +121,10 @@
   /// \name Visitation infrastructure
   /// @{
 
-  /// \brief The info collected about the pointer being visited thus far.
+  /// The info collected about the pointer being visited thus far.
   PtrInfo PI;
 
-  /// \brief A struct of the data needed to visit a particular use.
+  /// A struct of the data needed to visit a particular use.
   ///
   /// This is used to maintain a worklist fo to-visit uses. This is used to
   /// make the visit be iterative rather than recursive.
@@ -135,10 +135,10 @@
     APInt Offset;
   };
 
-  /// \brief The worklist of to-visit uses.
+  /// The worklist of to-visit uses.
   SmallVector<UseToVisit, 8> Worklist;
 
-  /// \brief A set of visited uses to break cycles in unreachable code.
+  /// A set of visited uses to break cycles in unreachable code.
   SmallPtrSet<Use *, 8> VisitedUses;
 
   /// @}
@@ -147,14 +147,14 @@
   /// This state is reset for each instruction visited.
   /// @{
 
-  /// \brief The use currently being visited.
+  /// The use currently being visited.
   Use *U;
 
-  /// \brief True if we have a known constant offset for the use currently
+  /// True if we have a known constant offset for the use currently
   /// being visited.
   bool IsOffsetKnown;
 
-  /// \brief The constant offset of the use if that is known.
+  /// The constant offset of the use if that is known.
   APInt Offset;
 
   /// @}
@@ -163,13 +163,13 @@
   /// class, we can't create instances directly of this class.
   PtrUseVisitorBase(const DataLayout &DL) : DL(DL) {}
 
-  /// \brief Enqueue the users of this instruction in the visit worklist.
+  /// Enqueue the users of this instruction in the visit worklist.
   ///
   /// This will visit the users with the same offset of the current visit
   /// (including an unknown offset if that is the current state).
   void enqueueUsers(Instruction &I);
 
-  /// \brief Walk the operands of a GEP and adjust the offset as appropriate.
+  /// Walk the operands of a GEP and adjust the offset as appropriate.
   ///
   /// This routine does the heavy lifting of the pointer walk by computing
   /// offsets and looking through GEPs.
@@ -178,7 +178,7 @@
 
 } // end namespace detail
 
-/// \brief A base class for visitors over the uses of a pointer value.
+/// A base class for visitors over the uses of a pointer value.
 ///
 /// Once constructed, a user can call \c visit on a pointer value, and this
 /// will walk its uses and visit each instruction using an InstVisitor. It also
@@ -216,7 +216,7 @@
                   "Must pass the derived type to this template!");
   }
 
-  /// \brief Recursively visit the uses of the given pointer.
+  /// Recursively visit the uses of the given pointer.
   /// \returns An info struct about the pointer. See \c PtrInfo for details.
   PtrInfo visitPtr(Instruction &I) {
     // This must be a pointer type. Get an integer type suitable to hold
diff --git a/linux-x64/clang/include/llvm/Analysis/RegionInfo.h b/linux-x64/clang/include/llvm/Analysis/RegionInfo.h
index 4bf64d1..27f6cc1 100644
--- a/linux-x64/clang/include/llvm/Analysis/RegionInfo.h
+++ b/linux-x64/clang/include/llvm/Analysis/RegionInfo.h
@@ -42,6 +42,7 @@
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/PointerIntPair.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Config/llvm-config.h"
 #include "llvm/IR/BasicBlock.h"
 #include "llvm/IR/Dominators.h"
 #include "llvm/IR/PassManager.h"
@@ -102,7 +103,7 @@
   }
 };
 
-/// @brief Marker class to iterate over the elements of a Region in flat mode.
+/// Marker class to iterate over the elements of a Region in flat mode.
 ///
 /// The class is used to either iterate in Flat mode or by not using it to not
 /// iterate in Flat mode.  During a Flat mode iteration all Regions are entered
@@ -112,7 +113,7 @@
 template <class GraphType>
 class FlatIt {};
 
-/// @brief A RegionNode represents a subregion or a BasicBlock that is part of a
+/// A RegionNode represents a subregion or a BasicBlock that is part of a
 /// Region.
 template <class Tr>
 class RegionNodeBase {
@@ -135,12 +136,12 @@
   /// RegionNode.
   PointerIntPair<BlockT *, 1, bool> entry;
 
-  /// @brief The parent Region of this RegionNode.
+  /// The parent Region of this RegionNode.
   /// @see getParent()
   RegionT *parent;
 
 protected:
-  /// @brief Create a RegionNode.
+  /// Create a RegionNode.
   ///
   /// @param Parent      The parent of this RegionNode.
   /// @param Entry       The entry BasicBlock of the RegionNode.  If this
@@ -156,7 +157,7 @@
   RegionNodeBase(const RegionNodeBase &) = delete;
   RegionNodeBase &operator=(const RegionNodeBase &) = delete;
 
-  /// @brief Get the parent Region of this RegionNode.
+  /// Get the parent Region of this RegionNode.
   ///
   /// The parent Region is the Region this RegionNode belongs to. If for
   /// example a BasicBlock is element of two Regions, there exist two
@@ -166,7 +167,7 @@
   /// @return Get the parent Region of this RegionNode.
   inline RegionT *getParent() const { return parent; }
 
-  /// @brief Get the entry BasicBlock of this RegionNode.
+  /// Get the entry BasicBlock of this RegionNode.
   ///
   /// If this RegionNode represents a BasicBlock this is just the BasicBlock
   /// itself, otherwise we return the entry BasicBlock of the Subregion
@@ -174,7 +175,7 @@
   /// @return The entry BasicBlock of this RegionNode.
   inline BlockT *getEntry() const { return entry.getPointer(); }
 
-  /// @brief Get the content of this RegionNode.
+  /// Get the content of this RegionNode.
   ///
   /// This can be either a BasicBlock or a subregion. Before calling getNodeAs()
   /// check the type of the content with the isSubRegion() function call.
@@ -182,7 +183,7 @@
   /// @return The content of this RegionNode.
   template <class T> inline T *getNodeAs() const;
 
-  /// @brief Is this RegionNode a subregion?
+  /// Is this RegionNode a subregion?
   ///
   /// @return True if it contains a subregion. False if it contains a
   ///         BasicBlock.
@@ -190,7 +191,7 @@
 };
 
 //===----------------------------------------------------------------------===//
-/// @brief A single entry single exit Region.
+/// A single entry single exit Region.
 ///
 /// A Region is a connected subgraph of a control flow graph that has exactly
 /// two connections to the remaining graph. It can be used to analyze or
@@ -301,7 +302,7 @@
   void verifyRegionNest() const;
 
 public:
-  /// @brief Create a new region.
+  /// Create a new region.
   ///
   /// @param Entry  The entry basic block of the region.
   /// @param Exit   The exit basic block of the region.
@@ -318,25 +319,25 @@
   /// Delete the Region and all its subregions.
   ~RegionBase();
 
-  /// @brief Get the entry BasicBlock of the Region.
+  /// Get the entry BasicBlock of the Region.
   /// @return The entry BasicBlock of the region.
   BlockT *getEntry() const {
     return RegionNodeBase<Tr>::getEntry();
   }
 
-  /// @brief Replace the entry basic block of the region with the new basic
+  /// Replace the entry basic block of the region with the new basic
   ///        block.
   ///
   /// @param BB  The new entry basic block of the region.
   void replaceEntry(BlockT *BB);
 
-  /// @brief Replace the exit basic block of the region with the new basic
+  /// Replace the exit basic block of the region with the new basic
   ///        block.
   ///
   /// @param BB  The new exit basic block of the region.
   void replaceExit(BlockT *BB);
 
-  /// @brief Recursively replace the entry basic block of the region.
+  /// Recursively replace the entry basic block of the region.
   ///
   /// This function replaces the entry basic block with a new basic block. It
   /// also updates all child regions that have the same entry basic block as
@@ -345,7 +346,7 @@
   /// @param NewEntry The new entry basic block.
   void replaceEntryRecursive(BlockT *NewEntry);
 
-  /// @brief Recursively replace the exit basic block of the region.
+  /// Recursively replace the exit basic block of the region.
   ///
   /// This function replaces the exit basic block with a new basic block. It
   /// also updates all child regions that have the same exit basic block as
@@ -354,38 +355,38 @@
   /// @param NewExit The new exit basic block.
   void replaceExitRecursive(BlockT *NewExit);
 
-  /// @brief Get the exit BasicBlock of the Region.
+  /// Get the exit BasicBlock of the Region.
   /// @return The exit BasicBlock of the Region, NULL if this is the TopLevel
   ///         Region.
   BlockT *getExit() const { return exit; }
 
-  /// @brief Get the parent of the Region.
+  /// Get the parent of the Region.
   /// @return The parent of the Region or NULL if this is a top level
   ///         Region.
   RegionT *getParent() const {
     return RegionNodeBase<Tr>::getParent();
   }
 
-  /// @brief Get the RegionNode representing the current Region.
+  /// Get the RegionNode representing the current Region.
   /// @return The RegionNode representing the current Region.
   RegionNodeT *getNode() const {
     return const_cast<RegionNodeT *>(
         reinterpret_cast<const RegionNodeT *>(this));
   }
 
-  /// @brief Get the nesting level of this Region.
+  /// Get the nesting level of this Region.
   ///
   /// An toplevel Region has depth 0.
   ///
   /// @return The depth of the region.
   unsigned getDepth() const;
 
-  /// @brief Check if a Region is the TopLevel region.
+  /// Check if a Region is the TopLevel region.
   ///
   /// The toplevel region represents the whole function.
   bool isTopLevelRegion() const { return exit == nullptr; }
 
-  /// @brief Return a new (non-canonical) region, that is obtained by joining
+  /// Return a new (non-canonical) region, that is obtained by joining
   ///        this region with its predecessors.
   ///
   /// @return A region also starting at getEntry(), but reaching to the next
@@ -393,43 +394,43 @@
   ///         NULL if such a basic block does not exist.
   RegionT *getExpandedRegion() const;
 
-  /// @brief Return the first block of this region's single entry edge,
+  /// Return the first block of this region's single entry edge,
   ///        if existing.
   ///
   /// @return The BasicBlock starting this region's single entry edge,
   ///         else NULL.
   BlockT *getEnteringBlock() const;
 
-  /// @brief Return the first block of this region's single exit edge,
+  /// Return the first block of this region's single exit edge,
   ///        if existing.
   ///
   /// @return The BasicBlock starting this region's single exit edge,
   ///         else NULL.
   BlockT *getExitingBlock() const;
 
-  /// @brief Collect all blocks of this region's single exit edge, if existing.
+  /// Collect all blocks of this region's single exit edge, if existing.
   ///
   /// @return True if this region contains all the predecessors of the exit.
   bool getExitingBlocks(SmallVectorImpl<BlockT *> &Exitings) const;
 
-  /// @brief Is this a simple region?
+  /// Is this a simple region?
   ///
   /// A region is simple if it has exactly one exit and one entry edge.
   ///
   /// @return True if the Region is simple.
   bool isSimple() const;
 
-  /// @brief Returns the name of the Region.
+  /// Returns the name of the Region.
   /// @return The Name of the Region.
   std::string getNameStr() const;
 
-  /// @brief Return the RegionInfo object, that belongs to this Region.
+  /// Return the RegionInfo object, that belongs to this Region.
   RegionInfoT *getRegionInfo() const { return RI; }
 
   /// PrintStyle - Print region in difference ways.
   enum PrintStyle { PrintNone, PrintBB, PrintRN };
 
-  /// @brief Print the region.
+  /// Print the region.
   ///
   /// @param OS The output stream the Region is printed to.
   /// @param printTree Print also the tree of subregions.
@@ -438,17 +439,17 @@
              PrintStyle Style = PrintNone) const;
 
 #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
-  /// @brief Print the region to stderr.
+  /// Print the region to stderr.
   void dump() const;
 #endif
 
-  /// @brief Check if the region contains a BasicBlock.
+  /// Check if the region contains a BasicBlock.
   ///
   /// @param BB The BasicBlock that might be contained in this Region.
   /// @return True if the block is contained in the region otherwise false.
   bool contains(const BlockT *BB) const;
 
-  /// @brief Check if the region contains another region.
+  /// Check if the region contains another region.
   ///
   /// @param SubRegion The region that might be contained in this Region.
   /// @return True if SubRegion is contained in the region otherwise false.
@@ -462,14 +463,14 @@
             SubRegion->getExit() == getExit());
   }
 
-  /// @brief Check if the region contains an Instruction.
+  /// Check if the region contains an Instruction.
   ///
   /// @param Inst The Instruction that might be contained in this region.
   /// @return True if the Instruction is contained in the region otherwise
   /// false.
   bool contains(const InstT *Inst) const { return contains(Inst->getParent()); }
 
-  /// @brief Check if the region contains a loop.
+  /// Check if the region contains a loop.
   ///
   /// @param L The loop that might be contained in this region.
   /// @return True if the loop is contained in the region otherwise false.
@@ -478,7 +479,7 @@
   ///         In that case true is returned.
   bool contains(const LoopT *L) const;
 
-  /// @brief Get the outermost loop in the region that contains a loop.
+  /// Get the outermost loop in the region that contains a loop.
   ///
   /// Find for a Loop L the outermost loop OuterL that is a parent loop of L
   /// and is itself contained in the region.
@@ -488,7 +489,7 @@
   ///         exist or if the region describes the whole function.
   LoopT *outermostLoopInRegion(LoopT *L) const;
 
-  /// @brief Get the outermost loop in the region that contains a basic block.
+  /// Get the outermost loop in the region that contains a basic block.
   ///
   /// Find for a basic block BB the outermost loop L that contains BB and is
   /// itself contained in the region.
@@ -499,13 +500,13 @@
   ///         exist or if the region describes the whole function.
   LoopT *outermostLoopInRegion(LoopInfoT *LI, BlockT *BB) const;
 
-  /// @brief Get the subregion that starts at a BasicBlock
+  /// Get the subregion that starts at a BasicBlock
   ///
   /// @param BB The BasicBlock the subregion should start.
   /// @return The Subregion if available, otherwise NULL.
   RegionT *getSubRegionNode(BlockT *BB) const;
 
-  /// @brief Get the RegionNode for a BasicBlock
+  /// Get the RegionNode for a BasicBlock
   ///
   /// @param BB The BasicBlock at which the RegionNode should start.
   /// @return If available, the RegionNode that represents the subregion
@@ -513,38 +514,38 @@
   ///         representing BB.
   RegionNodeT *getNode(BlockT *BB) const;
 
-  /// @brief Get the BasicBlock RegionNode for a BasicBlock
+  /// Get the BasicBlock RegionNode for a BasicBlock
   ///
   /// @param BB The BasicBlock for which the RegionNode is requested.
   /// @return The RegionNode representing the BB.
   RegionNodeT *getBBNode(BlockT *BB) const;
 
-  /// @brief Add a new subregion to this Region.
+  /// Add a new subregion to this Region.
   ///
   /// @param SubRegion The new subregion that will be added.
   /// @param moveChildren Move the children of this region, that are also
   ///                     contained in SubRegion into SubRegion.
   void addSubRegion(RegionT *SubRegion, bool moveChildren = false);
 
-  /// @brief Remove a subregion from this Region.
+  /// Remove a subregion from this Region.
   ///
   /// The subregion is not deleted, as it will probably be inserted into another
   /// region.
   /// @param SubRegion The SubRegion that will be removed.
   RegionT *removeSubRegion(RegionT *SubRegion);
 
-  /// @brief Move all direct child nodes of this Region to another Region.
+  /// Move all direct child nodes of this Region to another Region.
   ///
   /// @param To The Region the child nodes will be transferred to.
   void transferChildrenTo(RegionT *To);
 
-  /// @brief Verify if the region is a correct region.
+  /// Verify if the region is a correct region.
   ///
   /// Check if this is a correctly build Region. This is an expensive check, as
   /// the complete CFG of the Region will be walked.
   void verifyRegion() const;
 
-  /// @brief Clear the cache for BB RegionNodes.
+  /// Clear the cache for BB RegionNodes.
   ///
   /// After calling this function the BasicBlock RegionNodes will be stored at
   /// different memory locations. RegionNodes obtained before this function is
@@ -620,12 +621,12 @@
   using block_range = iterator_range<block_iterator>;
   using const_block_range = iterator_range<const_block_iterator>;
 
-  /// @brief Returns a range view of the basic blocks in the region.
+  /// Returns a range view of the basic blocks in the region.
   inline block_range blocks() {
     return block_range(block_begin(), block_end());
   }
 
-  /// @brief Returns a range view of the basic blocks in the region.
+  /// Returns a range view of the basic blocks in the region.
   ///
   /// This is the 'const' version of the range view.
   inline const_block_range blocks() const {
@@ -667,7 +668,7 @@
 inline raw_ostream &operator<<(raw_ostream &OS, const RegionNodeBase<Tr> &Node);
 
 //===----------------------------------------------------------------------===//
-/// @brief Analysis that detects all canonical Regions.
+/// Analysis that detects all canonical Regions.
 ///
 /// The RegionInfo pass detects all canonical regions in a function. The Regions
 /// are connected using the parent relation. This builds a Program Structure
@@ -725,7 +726,7 @@
   BBtoRegionMap BBtoRegion;
 
 protected:
-  /// \brief Update refences to a RegionInfoT held by the RegionT managed here
+  /// Update refences to a RegionInfoT held by the RegionT managed here
   ///
   /// This is a post-move helper. Regions hold references to the owning
   /// RegionInfo object. After a move these need to be fixed.
@@ -739,7 +740,7 @@
   }
 
 private:
-  /// \brief Wipe this region tree's state without releasing any resources.
+  /// Wipe this region tree's state without releasing any resources.
   ///
   /// This is essentially a post-move helper only. It leaves the object in an
   /// assignable and destroyable state, but otherwise invalid.
@@ -811,40 +812,40 @@
 
   void releaseMemory();
 
-  /// @brief Get the smallest region that contains a BasicBlock.
+  /// Get the smallest region that contains a BasicBlock.
   ///
   /// @param BB The basic block.
   /// @return The smallest region, that contains BB or NULL, if there is no
   /// region containing BB.
   RegionT *getRegionFor(BlockT *BB) const;
 
-  /// @brief  Set the smallest region that surrounds a basic block.
+  ///  Set the smallest region that surrounds a basic block.
   ///
   /// @param BB The basic block surrounded by a region.
   /// @param R The smallest region that surrounds BB.
   void setRegionFor(BlockT *BB, RegionT *R);
 
-  /// @brief A shortcut for getRegionFor().
+  /// A shortcut for getRegionFor().
   ///
   /// @param BB The basic block.
   /// @return The smallest region, that contains BB or NULL, if there is no
   /// region containing BB.
   RegionT *operator[](BlockT *BB) const;
 
-  /// @brief Return the exit of the maximal refined region, that starts at a
+  /// Return the exit of the maximal refined region, that starts at a
   /// BasicBlock.
   ///
   /// @param BB The BasicBlock the refined region starts.
   BlockT *getMaxRegionExit(BlockT *BB) const;
 
-  /// @brief Find the smallest region that contains two regions.
+  /// Find the smallest region that contains two regions.
   ///
   /// @param A The first region.
   /// @param B The second region.
   /// @return The smallest region containing A and B.
   RegionT *getCommonRegion(RegionT *A, RegionT *B) const;
 
-  /// @brief Find the smallest region that contains two basic blocks.
+  /// Find the smallest region that contains two basic blocks.
   ///
   /// @param A The first basic block.
   /// @param B The second basic block.
@@ -853,13 +854,13 @@
     return getCommonRegion(getRegionFor(A), getRegionFor(B));
   }
 
-  /// @brief Find the smallest region that contains a set of regions.
+  /// Find the smallest region that contains a set of regions.
   ///
   /// @param Regions A vector of regions.
   /// @return The smallest region that contains all regions in Regions.
   RegionT *getCommonRegion(SmallVectorImpl<RegionT *> &Regions) const;
 
-  /// @brief Find the smallest region that contains a set of basic blocks.
+  /// Find the smallest region that contains a set of basic blocks.
   ///
   /// @param BBs A vector of basic blocks.
   /// @return The smallest region that contains all basic blocks in BBS.
@@ -867,7 +868,7 @@
 
   RegionT *getTopLevelRegion() const { return TopLevelRegion; }
 
-  /// @brief Clear the Node Cache for all Regions.
+  /// Clear the Node Cache for all Regions.
   ///
   /// @see Region::clearNodeCache()
   void clearNodeCache() {
@@ -930,12 +931,12 @@
                    DominanceFrontier *DF);
 
 #ifndef NDEBUG
-  /// @brief Opens a viewer to show the GraphViz visualization of the regions.
+  /// Opens a viewer to show the GraphViz visualization of the regions.
   ///
   /// Useful during debugging as an alternative to dump().
   void view();
 
-  /// @brief Opens a viewer to show the GraphViz visualization of this region
+  /// Opens a viewer to show the GraphViz visualization of this region
   /// without instructions in the BasicBlocks.
   ///
   /// Useful during debugging as an alternative to dump().
@@ -967,7 +968,7 @@
   //@}
 };
 
-/// \brief Analysis pass that exposes the \c RegionInfo for a function.
+/// Analysis pass that exposes the \c RegionInfo for a function.
 class RegionInfoAnalysis : public AnalysisInfoMixin<RegionInfoAnalysis> {
   friend AnalysisInfoMixin<RegionInfoAnalysis>;
 
@@ -979,7 +980,7 @@
   RegionInfo run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Printer pass for the \c RegionInfo.
+/// Printer pass for the \c RegionInfo.
 class RegionInfoPrinterPass : public PassInfoMixin<RegionInfoPrinterPass> {
   raw_ostream &OS;
 
@@ -989,7 +990,7 @@
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Verifier pass for the \c RegionInfo.
+/// Verifier pass for the \c RegionInfo.
 struct RegionInfoVerifierPass : PassInfoMixin<RegionInfoVerifierPass> {
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
diff --git a/linux-x64/clang/include/llvm/Analysis/RegionInfoImpl.h b/linux-x64/clang/include/llvm/Analysis/RegionInfoImpl.h
index eb6baac..5904214 100644
--- a/linux-x64/clang/include/llvm/Analysis/RegionInfoImpl.h
+++ b/linux-x64/clang/include/llvm/Analysis/RegionInfoImpl.h
@@ -22,6 +22,7 @@
 #include "llvm/Analysis/PostDominators.h"
 #include "llvm/Analysis/RegionInfo.h"
 #include "llvm/Analysis/RegionIterator.h"
+#include "llvm/Config/llvm-config.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/raw_ostream.h"
@@ -674,7 +675,7 @@
 #ifdef EXPENSIVE_CHECKS
   region->verifyRegion();
 #else
-  DEBUG(region->verifyRegion());
+  LLVM_DEBUG(region->verifyRegion());
 #endif
 
   updateStatistics(region);
diff --git a/linux-x64/clang/include/llvm/Analysis/RegionIterator.h b/linux-x64/clang/include/llvm/Analysis/RegionIterator.h
index 4f823cc..4fd92fc 100644
--- a/linux-x64/clang/include/llvm/Analysis/RegionIterator.h
+++ b/linux-x64/clang/include/llvm/Analysis/RegionIterator.h
@@ -26,7 +26,7 @@
 class BasicBlock;
 
 //===----------------------------------------------------------------------===//
-/// @brief Hierarchical RegionNode successor iterator.
+/// Hierarchical RegionNode successor iterator.
 ///
 /// This iterator iterates over all successors of a RegionNode.
 ///
@@ -102,7 +102,7 @@
   using Self = RNSuccIterator<NodeRef, BlockT, RegionT>;
   using value_type = typename super::value_type;
 
-  /// @brief Create begin iterator of a RegionNode.
+  /// Create begin iterator of a RegionNode.
   inline RNSuccIterator(NodeRef node)
       : Node(node, node->isSubRegion() ? ItRgBegin : ItBB),
         BItor(BlockTraits::child_begin(node->getEntry())) {
@@ -115,7 +115,7 @@
       advanceRegionSucc();
   }
 
-  /// @brief Create an end iterator.
+  /// Create an end iterator.
   inline RNSuccIterator(NodeRef node, bool)
       : Node(node, node->isSubRegion() ? ItRgEnd : ItBB),
         BItor(BlockTraits::child_end(node->getEntry())) {}
@@ -158,7 +158,7 @@
 };
 
 //===----------------------------------------------------------------------===//
-/// @brief Flat RegionNode iterator.
+/// Flat RegionNode iterator.
 ///
 /// The Flat Region iterator will iterate over all BasicBlock RegionNodes that
 /// are contained in the Region and its subregions. This is close to a virtual
@@ -177,7 +177,7 @@
   using Self = RNSuccIterator<FlatIt<NodeRef>, BlockT, RegionT>;
   using value_type = typename super::value_type;
 
-  /// @brief Create the iterator from a RegionNode.
+  /// Create the iterator from a RegionNode.
   ///
   /// Note that the incoming node must be a bb node, otherwise it will trigger
   /// an assertion when we try to get a BasicBlock.
@@ -193,7 +193,7 @@
       ++Itor;
   }
 
-  /// @brief Create an end iterator
+  /// Create an end iterator
   inline RNSuccIterator(NodeRef node, bool)
       : Node(node), Itor(BlockTraits::child_end(node->getEntry())) {
     assert(!Node->isSubRegion() &&
diff --git a/linux-x64/clang/include/llvm/Analysis/RegionPass.h b/linux-x64/clang/include/llvm/Analysis/RegionPass.h
index 515b362..b3da91c 100644
--- a/linux-x64/clang/include/llvm/Analysis/RegionPass.h
+++ b/linux-x64/clang/include/llvm/Analysis/RegionPass.h
@@ -28,7 +28,7 @@
 class Function;
 
 //===----------------------------------------------------------------------===//
-/// @brief A pass that runs on each Region in a function.
+/// A pass that runs on each Region in a function.
 ///
 /// RegionPass is managed by RGPassManager.
 class RegionPass : public Pass {
@@ -39,7 +39,7 @@
   /// @name To be implemented by every RegionPass
   ///
   //@{
-  /// @brief Run the pass on a specific Region
+  /// Run the pass on a specific Region
   ///
   /// Accessing regions not contained in the current region is not allowed.
   ///
@@ -49,7 +49,7 @@
   /// @return True if the pass modifies this Region.
   virtual bool runOnRegion(Region *R, RGPassManager &RGM) = 0;
 
-  /// @brief Get a pass to print the LLVM IR in the region.
+  /// Get a pass to print the LLVM IR in the region.
   ///
   /// @param O      The output stream to print the Region.
   /// @param Banner The banner to separate different printed passes.
@@ -85,7 +85,7 @@
   bool skipRegion(Region &R) const;
 };
 
-/// @brief The pass manager to schedule RegionPasses.
+/// The pass manager to schedule RegionPasses.
 class RGPassManager : public FunctionPass, public PMDataManager {
   std::deque<Region*> RQ;
   bool skipThisRegion;
@@ -97,7 +97,7 @@
   static char ID;
   explicit RGPassManager();
 
-  /// @brief Execute all of the passes scheduled for execution.
+  /// Execute all of the passes scheduled for execution.
   ///
   /// @return True if any of the passes modifies the function.
   bool runOnFunction(Function &F) override;
@@ -111,10 +111,10 @@
   PMDataManager *getAsPMDataManager() override { return this; }
   Pass *getAsPass() override { return this; }
 
-  /// @brief Print passes managed by this manager.
+  /// Print passes managed by this manager.
   void dumpPassStructure(unsigned Offset) override;
 
-  /// @brief Get passes contained by this manager.
+  /// Get passes contained by this manager.
   Pass *getContainedPass(unsigned N) {
     assert(N < PassVector.size() && "Pass number out of range!");
     Pass *FP = static_cast<Pass *>(PassVector[N]);
diff --git a/linux-x64/clang/include/llvm/Analysis/RegionPrinter.h b/linux-x64/clang/include/llvm/Analysis/RegionPrinter.h
index 8f0035c..e132eae 100644
--- a/linux-x64/clang/include/llvm/Analysis/RegionPrinter.h
+++ b/linux-x64/clang/include/llvm/Analysis/RegionPrinter.h
@@ -26,7 +26,7 @@
   FunctionPass *createRegionOnlyPrinterPass();
 
 #ifndef NDEBUG
-  /// @brief Open a viewer to display the GraphViz vizualization of the analysis
+  /// Open a viewer to display the GraphViz vizualization of the analysis
   /// result.
   ///
   /// Practical to call in the debugger.
@@ -35,7 +35,7 @@
   /// @param RI The analysis to display.
   void viewRegion(llvm::RegionInfo *RI);
 
-  /// @brief Analyze the regions of a function and open its GraphViz
+  /// Analyze the regions of a function and open its GraphViz
   /// visualization in a viewer.
   ///
   /// Useful to call in the debugger.
@@ -46,7 +46,7 @@
   /// @param F Function to analyze.
   void viewRegion(const llvm::Function *F);
 
-  /// @brief Open a viewer to display the GraphViz vizualization of the analysis
+  /// Open a viewer to display the GraphViz vizualization of the analysis
   /// result.
   ///
   /// Useful to call in the debugger.
@@ -55,7 +55,7 @@
   /// @param RI The analysis to display.
   void viewRegionOnly(llvm::RegionInfo *RI);
 
-  /// @brief Analyze the regions of a function and open its GraphViz
+  /// Analyze the regions of a function and open its GraphViz
   /// visualization in a viewer.
   ///
   /// Useful to call in the debugger.
diff --git a/linux-x64/clang/include/llvm/Analysis/ScalarEvolution.h b/linux-x64/clang/include/llvm/Analysis/ScalarEvolution.h
index 7a43b81..89918e3 100644
--- a/linux-x64/clang/include/llvm/Analysis/ScalarEvolution.h
+++ b/linux-x64/clang/include/llvm/Analysis/ScalarEvolution.h
@@ -587,7 +587,9 @@
   const SCEV *getUMaxExpr(const SCEV *LHS, const SCEV *RHS);
   const SCEV *getUMaxExpr(SmallVectorImpl<const SCEV *> &Operands);
   const SCEV *getSMinExpr(const SCEV *LHS, const SCEV *RHS);
+  const SCEV *getSMinExpr(SmallVectorImpl<const SCEV *> &Operands);
   const SCEV *getUMinExpr(const SCEV *LHS, const SCEV *RHS);
+  const SCEV *getUMinExpr(SmallVectorImpl<const SCEV *> &Operands);
   const SCEV *getUnknown(Value *V);
   const SCEV *getCouldNotCompute();
 
@@ -650,6 +652,10 @@
   /// then perform a umin operation with them.
   const SCEV *getUMinFromMismatchedTypes(const SCEV *LHS, const SCEV *RHS);
 
+  /// Promote the operands to the wider of the types using zero-extension, and
+  /// then perform a umin operation with them. N-ary function.
+  const SCEV *getUMinFromMismatchedTypes(SmallVectorImpl<const SCEV *> &Ops);
+
   /// Transitively follow the chain of pointer-type operands until reaching a
   /// SCEV that does not have a single pointer operand. This returns a
   /// SCEVUnknown pointer for well-formed pointer-type expressions, but corner
@@ -764,6 +770,12 @@
   /// loop bodies.
   void forgetLoop(const Loop *L);
 
+  // This method invokes forgetLoop for the outermost loop of the given loop
+  // \p L, making ScalarEvolution forget about all this subtree. This needs to
+  // be done whenever we make a transform that may affect the parameters of the
+  // outer loop, such as exit counts for branches.
+  void forgetTopmostLoop(const Loop *L);
+
   /// This method should be called by the client when it has changed a value
   /// in a way that may effect its value, or which may disconnect it from a
   /// def-use chain linking it to a loop.
@@ -1085,7 +1097,7 @@
   /// The target library information for the target we are targeting.
   TargetLibraryInfo &TLI;
 
-  /// The tracker for @llvm.assume intrinsics in this function.
+  /// The tracker for \@llvm.assume intrinsics in this function.
   AssumptionCache &AC;
 
   /// The dominator tree.
@@ -1142,6 +1154,9 @@
   /// Mark SCEVUnknown Phis currently being processed by getRangeRef.
   SmallPtrSet<const PHINode *, 6> PendingPhiRanges;
 
+  // Mark SCEVUnknown Phis currently being processed by isImpliedViaMerge.
+  SmallPtrSet<const PHINode *, 6> PendingMerges;
+
   /// Set to true by isLoopBackedgeGuardedByCond when we're walking the set of
   /// conditions dominating the backedge of a loop.
   bool WalkingBEDominatingConds = false;
@@ -1667,6 +1682,18 @@
                                           const SCEV *FoundLHS,
                                           const SCEV *FoundRHS);
 
+  /// Test whether the condition described by Pred, LHS, and RHS is true
+  /// whenever the condition described by Pred, FoundLHS, and FoundRHS is
+  /// true.
+  ///
+  /// This routine tries to figure out predicate for Phis which are SCEVUnknown
+  /// if it is true for every possible incoming value from their respective
+  /// basic blocks.
+  bool isImpliedViaMerge(ICmpInst::Predicate Pred,
+                         const SCEV *LHS, const SCEV *RHS,
+                         const SCEV *FoundLHS, const SCEV *FoundRHS,
+                         unsigned Depth);
+
   /// If we know that the specified Phi is in the header of its containing
   /// loop, we know the loop executes a constant number of times, and the PHI
   /// node is just a recurrence involving constants, fold it.
@@ -1806,6 +1833,9 @@
   const SCEV *getOrCreateMulExpr(SmallVectorImpl<const SCEV *> &Ops,
                                  SCEV::NoWrapFlags Flags);
 
+  /// Return x if \p Val is f(x) where f is a 1-1 function.
+  const SCEV *stripInjectiveFunctions(const SCEV *Val) const;
+
   /// Find all of the loops transitively used in \p S, and fill \p LoopsUsed.
   /// A loop is considered "used" by an expression if it contains
   /// an add rec on said loop.
@@ -1815,6 +1845,10 @@
   /// accordingly.
   void addToLoopUseLists(const SCEV *S);
 
+  /// Try to match the pattern generated by getURemExpr(A, B). If successful,
+  /// Assign A and B to LHS and RHS, respectively.
+  bool matchURem(const SCEV *Expr, const SCEV *&LHS, const SCEV *&RHS);
+
   FoldingSet<SCEV> UniqueSCEVs;
   FoldingSet<SCEVPredicate> UniquePreds;
   BumpPtrAllocator SCEVAllocator;
diff --git a/linux-x64/clang/include/llvm/Analysis/ScalarEvolutionExpander.h b/linux-x64/clang/include/llvm/Analysis/ScalarEvolutionExpander.h
index 3df04e9..58d4268 100644
--- a/linux-x64/clang/include/llvm/Analysis/ScalarEvolutionExpander.h
+++ b/linux-x64/clang/include/llvm/Analysis/ScalarEvolutionExpander.h
@@ -321,7 +321,7 @@
 
     /// Arrange for there to be a cast of V to Ty at IP, reusing an existing
     /// cast if a suitable one exists, moving an existing cast if a suitable one
-    /// exists but isn't in the right place, or or creating a new one.
+    /// exists but isn't in the right place, or creating a new one.
     Value *ReuseOrCreateCast(Value *V, Type *Ty,
                              Instruction::CastOps Op,
                              BasicBlock::iterator IP);
@@ -335,6 +335,7 @@
     Value *expandAddToGEP(const SCEV *const *op_begin,
                           const SCEV *const *op_end,
                           PointerType *PTy, Type *Ty, Value *V);
+    Value *expandAddToGEP(const SCEV *Op, PointerType *PTy, Type *Ty, Value *V);
 
     /// Find a previous Value in ExprValueMap for expand.
     ScalarEvolution::ValueOffsetPair
diff --git a/linux-x64/clang/include/llvm/Analysis/SparsePropagation.h b/linux-x64/clang/include/llvm/Analysis/SparsePropagation.h
index 1b8df03..defcf96 100644
--- a/linux-x64/clang/include/llvm/Analysis/SparsePropagation.h
+++ b/linux-x64/clang/include/llvm/Analysis/SparsePropagation.h
@@ -238,7 +238,7 @@
   // If this value is untracked, don't add it to the map.
   if (LV == LatticeFunc->getUntrackedVal())
     return LV;
-  return ValueState[Key] = LV;
+  return ValueState[Key] = std::move(LV);
 }
 
 template <class LatticeKey, class LatticeVal, class KeyInfo>
@@ -250,7 +250,7 @@
 
   // Update the state of the given LatticeKey and add its corresponding LLVM
   // value to the work list.
-  ValueState[Key] = LV;
+  ValueState[Key] = std::move(LV);
   if (Value *V = KeyInfo::getValueFromLatticeKey(Key))
     ValueWorkList.push_back(V);
 }
@@ -260,7 +260,7 @@
     BasicBlock *BB) {
   if (!BBExecutable.insert(BB).second)
     return;
-  DEBUG(dbgs() << "Marking Block Executable: " << BB->getName() << "\n");
+  LLVM_DEBUG(dbgs() << "Marking Block Executable: " << BB->getName() << "\n");
   BBWorkList.push_back(BB); // Add the block to the work list!
 }
 
@@ -270,8 +270,8 @@
   if (!KnownFeasibleEdges.insert(Edge(Source, Dest)).second)
     return; // This edge is already known to be executable!
 
-  DEBUG(dbgs() << "Marking Edge Executable: " << Source->getName() << " -> "
-               << Dest->getName() << "\n");
+  LLVM_DEBUG(dbgs() << "Marking Edge Executable: " << Source->getName()
+                    << " -> " << Dest->getName() << "\n");
 
   if (BBExecutable.count(Dest)) {
     // The destination is already executable, but we just made an edge
@@ -318,7 +318,7 @@
 
     Constant *C =
         dyn_cast_or_null<Constant>(LatticeFunc->GetValueFromLatticeVal(
-            BCValue, BI->getCondition()->getType()));
+            std::move(BCValue), BI->getCondition()->getType()));
     if (!C || !isa<ConstantInt>(C)) {
       // Non-constant values can go either way.
       Succs[0] = Succs[1] = true;
@@ -360,7 +360,7 @@
     return;
 
   Constant *C = dyn_cast_or_null<Constant>(LatticeFunc->GetValueFromLatticeVal(
-      SCValue, SI.getCondition()->getType()));
+      std::move(SCValue), SI.getCondition()->getType()));
   if (!C || !isa<ConstantInt>(C)) {
     // All destinations are executable!
     Succs.assign(TI.getNumSuccessors(), true);
@@ -408,7 +408,8 @@
     LatticeFunc->ComputeInstructionState(PN, ChangedValues, *this);
     for (auto &ChangedValue : ChangedValues)
       if (ChangedValue.second != LatticeFunc->getUntrackedVal())
-        UpdateState(ChangedValue.first, ChangedValue.second);
+        UpdateState(std::move(ChangedValue.first),
+                    std::move(ChangedValue.second));
     return;
   }
 
@@ -477,7 +478,7 @@
       Value *V = ValueWorkList.back();
       ValueWorkList.pop_back();
 
-      DEBUG(dbgs() << "\nPopped off V-WL: " << *V << "\n");
+      LLVM_DEBUG(dbgs() << "\nPopped off V-WL: " << *V << "\n");
 
       // "V" got into the work list because it made a transition. See if any
       // users are both live and in need of updating.
@@ -492,7 +493,7 @@
       BasicBlock *BB = BBWorkList.back();
       BBWorkList.pop_back();
 
-      DEBUG(dbgs() << "\nPopped off BBWL: " << *BB);
+      LLVM_DEBUG(dbgs() << "\nPopped off BBWL: " << *BB);
 
       // Notify all instructions in this basic block that they are newly
       // executable.
diff --git a/linux-x64/clang/include/llvm/Analysis/TargetLibraryInfo.def b/linux-x64/clang/include/llvm/Analysis/TargetLibraryInfo.def
index a461ed8..f94debb 100644
--- a/linux-x64/clang/include/llvm/Analysis/TargetLibraryInfo.def
+++ b/linux-x64/clang/include/llvm/Analysis/TargetLibraryInfo.def
@@ -119,6 +119,12 @@
 /// void operator delete[](void*, nothrow);
 TLI_DEFINE_ENUM_INTERNAL(ZdaPvRKSt9nothrow_t)
 TLI_DEFINE_STRING_INTERNAL("_ZdaPvRKSt9nothrow_t")
+/// void operator delete[](void*, align_val_t);
+TLI_DEFINE_ENUM_INTERNAL(ZdaPvSt11align_val_t)
+TLI_DEFINE_STRING_INTERNAL("_ZdaPvSt11align_val_t")
+/// void operator delete[](void*, align_val_t, nothrow)
+TLI_DEFINE_ENUM_INTERNAL(ZdaPvSt11align_val_tRKSt9nothrow_t)
+TLI_DEFINE_STRING_INTERNAL("_ZdaPvSt11align_val_tRKSt9nothrow_t")
 /// void operator delete[](void*, unsigned int);
 TLI_DEFINE_ENUM_INTERNAL(ZdaPvj)
 TLI_DEFINE_STRING_INTERNAL("_ZdaPvj")
@@ -131,6 +137,12 @@
 /// void operator delete(void*, nothrow);
 TLI_DEFINE_ENUM_INTERNAL(ZdlPvRKSt9nothrow_t)
 TLI_DEFINE_STRING_INTERNAL("_ZdlPvRKSt9nothrow_t")
+/// void operator delete(void*, align_val_t)
+TLI_DEFINE_ENUM_INTERNAL(ZdlPvSt11align_val_t)
+TLI_DEFINE_STRING_INTERNAL("_ZdlPvSt11align_val_t")
+/// void operator delete(void*, align_val_t, nothrow)
+TLI_DEFINE_ENUM_INTERNAL(ZdlPvSt11align_val_tRKSt9nothrow_t)
+TLI_DEFINE_STRING_INTERNAL("_ZdlPvSt11align_val_tRKSt9nothrow_t")
 /// void operator delete(void*, unsigned int);
 TLI_DEFINE_ENUM_INTERNAL(ZdlPvj)
 TLI_DEFINE_STRING_INTERNAL("_ZdlPvj")
@@ -143,24 +155,48 @@
 /// void *new[](unsigned int, nothrow);
 TLI_DEFINE_ENUM_INTERNAL(ZnajRKSt9nothrow_t)
 TLI_DEFINE_STRING_INTERNAL("_ZnajRKSt9nothrow_t")
+/// void *new[](unsigned int, align_val_t)
+TLI_DEFINE_ENUM_INTERNAL(ZnajSt11align_val_t)
+TLI_DEFINE_STRING_INTERNAL("_ZnajSt11align_val_t")
+/// void *new[](unsigned int, align_val_t, nothrow)
+TLI_DEFINE_ENUM_INTERNAL(ZnajSt11align_val_tRKSt9nothrow_t)
+TLI_DEFINE_STRING_INTERNAL("_ZnajSt11align_val_tRKSt9nothrow_t")
 /// void *new[](unsigned long);
 TLI_DEFINE_ENUM_INTERNAL(Znam)
 TLI_DEFINE_STRING_INTERNAL("_Znam")
 /// void *new[](unsigned long, nothrow);
 TLI_DEFINE_ENUM_INTERNAL(ZnamRKSt9nothrow_t)
 TLI_DEFINE_STRING_INTERNAL("_ZnamRKSt9nothrow_t")
+/// void *new[](unsigned long, align_val_t)
+TLI_DEFINE_ENUM_INTERNAL(ZnamSt11align_val_t)
+TLI_DEFINE_STRING_INTERNAL("_ZnamSt11align_val_t")
+/// void *new[](unsigned long, align_val_t, nothrow)
+TLI_DEFINE_ENUM_INTERNAL(ZnamSt11align_val_tRKSt9nothrow_t)
+TLI_DEFINE_STRING_INTERNAL("_ZnamSt11align_val_tRKSt9nothrow_t")
 /// void *new(unsigned int);
 TLI_DEFINE_ENUM_INTERNAL(Znwj)
 TLI_DEFINE_STRING_INTERNAL("_Znwj")
 /// void *new(unsigned int, nothrow);
 TLI_DEFINE_ENUM_INTERNAL(ZnwjRKSt9nothrow_t)
 TLI_DEFINE_STRING_INTERNAL("_ZnwjRKSt9nothrow_t")
+/// void *new(unsigned int, align_val_t)
+TLI_DEFINE_ENUM_INTERNAL(ZnwjSt11align_val_t)
+TLI_DEFINE_STRING_INTERNAL("_ZnwjSt11align_val_t")
+/// void *new(unsigned int, align_val_t, nothrow)
+TLI_DEFINE_ENUM_INTERNAL(ZnwjSt11align_val_tRKSt9nothrow_t)
+TLI_DEFINE_STRING_INTERNAL("_ZnwjSt11align_val_tRKSt9nothrow_t")
 /// void *new(unsigned long);
 TLI_DEFINE_ENUM_INTERNAL(Znwm)
 TLI_DEFINE_STRING_INTERNAL("_Znwm")
 /// void *new(unsigned long, nothrow);
 TLI_DEFINE_ENUM_INTERNAL(ZnwmRKSt9nothrow_t)
 TLI_DEFINE_STRING_INTERNAL("_ZnwmRKSt9nothrow_t")
+/// void *new(unsigned long, align_val_t)
+TLI_DEFINE_ENUM_INTERNAL(ZnwmSt11align_val_t)
+TLI_DEFINE_STRING_INTERNAL("_ZnwmSt11align_val_t")
+/// void *new(unsigned long, align_val_t, nothrow)
+TLI_DEFINE_ENUM_INTERNAL(ZnwmSt11align_val_tRKSt9nothrow_t)
+TLI_DEFINE_STRING_INTERNAL("_ZnwmSt11align_val_tRKSt9nothrow_t")
 /// double __acos_finite(double x);
 TLI_DEFINE_ENUM_INTERNAL(acos_finite)
 TLI_DEFINE_STRING_INTERNAL("__acos_finite")
@@ -601,12 +637,18 @@
 /// int fgetc(FILE *stream);
 TLI_DEFINE_ENUM_INTERNAL(fgetc)
 TLI_DEFINE_STRING_INTERNAL("fgetc")
+/// int fgetc_unlocked(FILE *stream);
+TLI_DEFINE_ENUM_INTERNAL(fgetc_unlocked)
+TLI_DEFINE_STRING_INTERNAL("fgetc_unlocked")
 /// int fgetpos(FILE *stream, fpos_t *pos);
 TLI_DEFINE_ENUM_INTERNAL(fgetpos)
 TLI_DEFINE_STRING_INTERNAL("fgetpos")
 /// char *fgets(char *s, int n, FILE *stream);
 TLI_DEFINE_ENUM_INTERNAL(fgets)
 TLI_DEFINE_STRING_INTERNAL("fgets")
+/// char *fgets_unlocked(char *s, int n, FILE *stream);
+TLI_DEFINE_ENUM_INTERNAL(fgets_unlocked)
+TLI_DEFINE_STRING_INTERNAL("fgets_unlocked")
 /// int fileno(FILE *stream);
 TLI_DEFINE_ENUM_INTERNAL(fileno)
 TLI_DEFINE_STRING_INTERNAL("fileno")
@@ -673,12 +715,21 @@
 /// int fputc(int c, FILE *stream);
 TLI_DEFINE_ENUM_INTERNAL(fputc)
 TLI_DEFINE_STRING_INTERNAL("fputc")
+/// int fputc_unlocked(int c, FILE *stream);
+TLI_DEFINE_ENUM_INTERNAL(fputc_unlocked)
+TLI_DEFINE_STRING_INTERNAL("fputc_unlocked")
 /// int fputs(const char *s, FILE *stream);
 TLI_DEFINE_ENUM_INTERNAL(fputs)
 TLI_DEFINE_STRING_INTERNAL("fputs")
+/// int fputs_unlocked(const char *s, FILE *stream);
+TLI_DEFINE_ENUM_INTERNAL(fputs_unlocked)
+TLI_DEFINE_STRING_INTERNAL("fputs_unlocked")
 /// size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream);
 TLI_DEFINE_ENUM_INTERNAL(fread)
 TLI_DEFINE_STRING_INTERNAL("fread")
+/// size_t fread_unlocked(void *ptr, size_t size, size_t nitems, FILE *stream);
+TLI_DEFINE_ENUM_INTERNAL(fread_unlocked)
+TLI_DEFINE_STRING_INTERNAL("fread_unlocked")
 /// void free(void *ptr);
 TLI_DEFINE_ENUM_INTERNAL(free)
 TLI_DEFINE_STRING_INTERNAL("free")
@@ -736,6 +787,9 @@
 /// size_t fwrite(const void *ptr, size_t size, size_t nitems, FILE *stream);
 TLI_DEFINE_ENUM_INTERNAL(fwrite)
 TLI_DEFINE_STRING_INTERNAL("fwrite")
+/// size_t fwrite_unlocked(const void *ptr, size_t size, size_t nitems, FILE *stream);
+TLI_DEFINE_ENUM_INTERNAL(fwrite_unlocked)
+TLI_DEFINE_STRING_INTERNAL("fwrite_unlocked")
 /// int getc(FILE *stream);
 TLI_DEFINE_ENUM_INTERNAL(getc)
 TLI_DEFINE_STRING_INTERNAL("getc")
@@ -745,6 +799,9 @@
 /// int getchar(void);
 TLI_DEFINE_ENUM_INTERNAL(getchar)
 TLI_DEFINE_STRING_INTERNAL("getchar")
+/// int getchar_unlocked(void);
+TLI_DEFINE_ENUM_INTERNAL(getchar_unlocked)
+TLI_DEFINE_STRING_INTERNAL("getchar_unlocked")
 /// char *getenv(const char *name);
 TLI_DEFINE_ENUM_INTERNAL(getenv)
 TLI_DEFINE_STRING_INTERNAL("getenv")
@@ -950,9 +1007,15 @@
 /// int putc(int c, FILE *stream);
 TLI_DEFINE_ENUM_INTERNAL(putc)
 TLI_DEFINE_STRING_INTERNAL("putc")
+/// int putc_unlocked(int c, FILE *stream);
+TLI_DEFINE_ENUM_INTERNAL(putc_unlocked)
+TLI_DEFINE_STRING_INTERNAL("putc_unlocked")
 /// int putchar(int c);
 TLI_DEFINE_ENUM_INTERNAL(putchar)
 TLI_DEFINE_STRING_INTERNAL("putchar")
+/// int putchar_unlocked(int c);
+TLI_DEFINE_ENUM_INTERNAL(putchar_unlocked)
+TLI_DEFINE_STRING_INTERNAL("putchar_unlocked")
 /// int puts(const char *s);
 TLI_DEFINE_ENUM_INTERNAL(puts)
 TLI_DEFINE_STRING_INTERNAL("puts")
diff --git a/linux-x64/clang/include/llvm/Analysis/TargetTransformInfo.h b/linux-x64/clang/include/llvm/Analysis/TargetTransformInfo.h
index 9e9c661..59657cc 100644
--- a/linux-x64/clang/include/llvm/Analysis/TargetTransformInfo.h
+++ b/linux-x64/clang/include/llvm/Analysis/TargetTransformInfo.h
@@ -49,7 +49,7 @@
 class User;
 class Value;
 
-/// \brief Information about a load/store intrinsic defined by the target.
+/// Information about a load/store intrinsic defined by the target.
 struct MemIntrinsicInfo {
   /// This is the pointer that the intrinsic is loading from or storing to.
   /// If this is non-null, then analysis/optimization passes can assume that
@@ -73,18 +73,18 @@
   }
 };
 
-/// \brief This pass provides access to the codegen interfaces that are needed
+/// This pass provides access to the codegen interfaces that are needed
 /// for IR-level transformations.
 class TargetTransformInfo {
 public:
-  /// \brief Construct a TTI object using a type implementing the \c Concept
+  /// Construct a TTI object using a type implementing the \c Concept
   /// API below.
   ///
   /// This is used by targets to construct a TTI wrapping their target-specific
   /// implementaion that encodes appropriate costs for their target.
   template <typename T> TargetTransformInfo(T Impl);
 
-  /// \brief Construct a baseline TTI object using a minimal implementation of
+  /// Construct a baseline TTI object using a minimal implementation of
   /// the \c Concept API below.
   ///
   /// The TTI implementation will reflect the information in the DataLayout
@@ -99,7 +99,7 @@
   // out-of-line.
   ~TargetTransformInfo();
 
-  /// \brief Handle the invalidation of this information.
+  /// Handle the invalidation of this information.
   ///
   /// When used as a result of \c TargetIRAnalysis this method will be called
   /// when the function this was computed for changes. When it returns false,
@@ -114,7 +114,7 @@
   /// \name Generic Target Information
   /// @{
 
-  /// \brief The kind of cost model.
+  /// The kind of cost model.
   ///
   /// There are several different cost models that can be customized by the
   /// target. The normalization of each cost model may be target specific.
@@ -124,7 +124,7 @@
     TCK_CodeSize         ///< Instruction code size.
   };
 
-  /// \brief Query the cost of a specified instruction.
+  /// Query the cost of a specified instruction.
   ///
   /// Clients should use this interface to query the cost of an existing
   /// instruction. The instruction must have a valid parent (basic block).
@@ -145,7 +145,7 @@
     llvm_unreachable("Unknown instruction cost kind");
   }
 
-  /// \brief Underlying constants for 'cost' values in this interface.
+  /// Underlying constants for 'cost' values in this interface.
   ///
   /// Many APIs in this interface return a cost. This enum defines the
   /// fundamental values that should be used to interpret (and produce) those
@@ -169,7 +169,7 @@
     TCC_Expensive = 4 ///< The cost of a 'div' instruction on x86.
   };
 
-  /// \brief Estimate the cost of a specific operation when lowered.
+  /// Estimate the cost of a specific operation when lowered.
   ///
   /// Note that this is designed to work on an arbitrary synthetic opcode, and
   /// thus work for hypothetical queries before an instruction has even been
@@ -185,7 +185,7 @@
   /// comments for a detailed explanation of the cost values.
   int getOperationCost(unsigned Opcode, Type *Ty, Type *OpTy = nullptr) const;
 
-  /// \brief Estimate the cost of a GEP operation when lowered.
+  /// Estimate the cost of a GEP operation when lowered.
   ///
   /// The contract for this function is the same as \c getOperationCost except
   /// that it supports an interface that provides extra information specific to
@@ -193,14 +193,14 @@
   int getGEPCost(Type *PointeeType, const Value *Ptr,
                  ArrayRef<const Value *> Operands) const;
 
-  /// \brief Estimate the cost of a EXT operation when lowered.
+  /// Estimate the cost of a EXT operation when lowered.
   ///
   /// The contract for this function is the same as \c getOperationCost except
   /// that it supports an interface that provides extra information specific to
   /// the EXT operation.
   int getExtCost(const Instruction *I, const Value *Src) const;
 
-  /// \brief Estimate the cost of a function call when lowered.
+  /// Estimate the cost of a function call when lowered.
   ///
   /// The contract for this is the same as \c getOperationCost except that it
   /// supports an interface that provides extra information specific to call
@@ -211,13 +211,13 @@
   /// The latter is only interesting for varargs function types.
   int getCallCost(FunctionType *FTy, int NumArgs = -1) const;
 
-  /// \brief Estimate the cost of calling a specific function when lowered.
+  /// Estimate the cost of calling a specific function when lowered.
   ///
   /// This overload adds the ability to reason about the particular function
   /// being called in the event it is a library call with special lowering.
   int getCallCost(const Function *F, int NumArgs = -1) const;
 
-  /// \brief Estimate the cost of calling a specific function when lowered.
+  /// Estimate the cost of calling a specific function when lowered.
   ///
   /// This overload allows specifying a set of candidate argument values.
   int getCallCost(const Function *F, ArrayRef<const Value *> Arguments) const;
@@ -230,13 +230,13 @@
   /// individual classes of instructions would be better.
   unsigned getInliningThresholdMultiplier() const;
 
-  /// \brief Estimate the cost of an intrinsic when lowered.
+  /// Estimate the cost of an intrinsic when lowered.
   ///
   /// Mirrors the \c getCallCost method but uses an intrinsic identifier.
   int getIntrinsicCost(Intrinsic::ID IID, Type *RetTy,
                        ArrayRef<Type *> ParamTys) const;
 
-  /// \brief Estimate the cost of an intrinsic when lowered.
+  /// Estimate the cost of an intrinsic when lowered.
   ///
   /// Mirrors the \c getCallCost method but uses an intrinsic identifier.
   int getIntrinsicCost(Intrinsic::ID IID, Type *RetTy,
@@ -248,7 +248,7 @@
   unsigned getEstimatedNumberOfCaseClusters(const SwitchInst &SI,
                                             unsigned &JTSize) const;
 
-  /// \brief Estimate the cost of a given IR user when lowered.
+  /// Estimate the cost of a given IR user when lowered.
   ///
   /// This can estimate the cost of either a ConstantExpr or Instruction when
   /// lowered. It has two primary advantages over the \c getOperationCost and
@@ -271,7 +271,7 @@
   /// comments for a detailed explanation of the cost values.
   int getUserCost(const User *U, ArrayRef<const Value *> Operands) const;
 
-  /// \brief This is a helper function which calls the two-argument getUserCost
+  /// This is a helper function which calls the two-argument getUserCost
   /// with \p Operands which are the current operands U has.
   int getUserCost(const User *U) const {
     SmallVector<const Value *, 4> Operands(U->value_op_begin(),
@@ -279,14 +279,14 @@
     return getUserCost(U, Operands);
   }
 
-  /// \brief Return true if branch divergence exists.
+  /// Return true if branch divergence exists.
   ///
   /// Branch divergence has a significantly negative impact on GPU performance
   /// when threads in the same wavefront take different paths due to conditional
   /// branches.
   bool hasBranchDivergence() const;
 
-  /// \brief Returns whether V is a source of divergence.
+  /// Returns whether V is a source of divergence.
   ///
   /// This function provides the target-dependent information for
   /// the target-independent DivergenceAnalysis. DivergenceAnalysis first
@@ -294,7 +294,7 @@
   /// starting with the sources of divergence.
   bool isSourceOfDivergence(const Value *V) const;
 
-  // \brief Returns true for the target specific
+  // Returns true for the target specific
   // set of operations which produce uniform result
   // even taking non-unform arguments
   bool isAlwaysUniform(const Value *V) const;
@@ -317,7 +317,7 @@
   /// optimize away.
   unsigned getFlatAddressSpace() const;
 
-  /// \brief Test whether calls to a function lower to actual program function
+  /// Test whether calls to a function lower to actual program function
   /// calls.
   ///
   /// The idea is to test whether the program is likely to require a 'call'
@@ -422,9 +422,16 @@
     bool AllowPeeling;
     /// Allow unrolling of all the iterations of the runtime loop remainder.
     bool UnrollRemainder;
+    /// Allow unroll and jam. Used to enable unroll and jam for the target.
+    bool UnrollAndJam;
+    /// Threshold for unroll and jam, for inner loop size. The 'Threshold'
+    /// value above is used during unroll and jam for the outer loop size.
+    /// This value is used in the same manner to limit the size of the inner
+    /// loop.
+    unsigned UnrollAndJamInnerLoopThreshold;
   };
 
-  /// \brief Get target-customized preferences for the generic loop unrolling
+  /// Get target-customized preferences for the generic loop unrolling
   /// transformation. The caller will initialize UP with the current
   /// target-independent defaults.
   void getUnrollingPreferences(Loop *L, ScalarEvolution &,
@@ -435,7 +442,7 @@
   /// \name Scalar Target Information
   /// @{
 
-  /// \brief Flags indicating the kind of support for population count.
+  /// Flags indicating the kind of support for population count.
   ///
   /// Compared to the SW implementation, HW support is supposed to
   /// significantly boost the performance when the population is dense, and it
@@ -445,18 +452,18 @@
   /// considered as "Slow".
   enum PopcntSupportKind { PSK_Software, PSK_SlowHardware, PSK_FastHardware };
 
-  /// \brief Return true if the specified immediate is legal add immediate, that
+  /// Return true if the specified immediate is legal add immediate, that
   /// is the target has add instructions which can add a register with the
   /// immediate without having to materialize the immediate into a register.
   bool isLegalAddImmediate(int64_t Imm) const;
 
-  /// \brief Return true if the specified immediate is legal icmp immediate,
+  /// Return true if the specified immediate is legal icmp immediate,
   /// that is the target has icmp instructions which can compare a register
   /// against the immediate without having to materialize the immediate into a
   /// register.
   bool isLegalICmpImmediate(int64_t Imm) const;
 
-  /// \brief Return true if the addressing mode represented by AM is legal for
+  /// Return true if the addressing mode represented by AM is legal for
   /// this target, for a load/store of the specified type.
   /// The type may be VoidTy, in which case only return true if the addressing
   /// mode is legal for a load/store of any legal type.
@@ -467,7 +474,7 @@
                              unsigned AddrSpace = 0,
                              Instruction *I = nullptr) const;
 
-  /// \brief Return true if LSR cost of C1 is lower than C1.
+  /// Return true if LSR cost of C1 is lower than C1.
   bool isLSRCostLess(TargetTransformInfo::LSRCost &C1,
                      TargetTransformInfo::LSRCost &C2) const;
 
@@ -480,12 +487,12 @@
   /// addressing mode expressions.
   bool shouldFavorPostInc() const;
 
-  /// \brief Return true if the target supports masked load/store
+  /// Return true if the target supports masked load/store
   /// AVX2 and AVX-512 targets allow masks for consecutive load and store
   bool isLegalMaskedStore(Type *DataType) const;
   bool isLegalMaskedLoad(Type *DataType) const;
 
-  /// \brief Return true if the target supports masked gather/scatter
+  /// Return true if the target supports masked gather/scatter
   /// AVX-512 fully supports gather and scatter for vectors with 32 and 64
   /// bits scalar type.
   bool isLegalMaskedScatter(Type *DataType) const;
@@ -508,7 +515,7 @@
   /// Return true if target doesn't mind addresses in vectors.
   bool prefersVectorizedAddressing() const;
 
-  /// \brief Return the cost of the scaling factor used in the addressing
+  /// Return the cost of the scaling factor used in the addressing
   /// mode represented by AM for this target, for a load/store
   /// of the specified type.
   /// If the AM is supported, the return value must be >= 0.
@@ -518,41 +525,41 @@
                            bool HasBaseReg, int64_t Scale,
                            unsigned AddrSpace = 0) const;
 
-  /// \brief Return true if the loop strength reduce pass should make
+  /// Return true if the loop strength reduce pass should make
   /// Instruction* based TTI queries to isLegalAddressingMode(). This is
   /// needed on SystemZ, where e.g. a memcpy can only have a 12 bit unsigned
   /// immediate offset and no index register.
   bool LSRWithInstrQueries() const;
 
-  /// \brief Return true if it's free to truncate a value of type Ty1 to type
+  /// Return true if it's free to truncate a value of type Ty1 to type
   /// Ty2. e.g. On x86 it's free to truncate a i32 value in register EAX to i16
   /// by referencing its sub-register AX.
   bool isTruncateFree(Type *Ty1, Type *Ty2) const;
 
-  /// \brief Return true if it is profitable to hoist instruction in the
+  /// Return true if it is profitable to hoist instruction in the
   /// then/else to before if.
   bool isProfitableToHoist(Instruction *I) const;
 
   bool useAA() const;
 
-  /// \brief Return true if this type is legal.
+  /// Return true if this type is legal.
   bool isTypeLegal(Type *Ty) const;
 
-  /// \brief Returns the target's jmp_buf alignment in bytes.
+  /// Returns the target's jmp_buf alignment in bytes.
   unsigned getJumpBufAlignment() const;
 
-  /// \brief Returns the target's jmp_buf size in bytes.
+  /// Returns the target's jmp_buf size in bytes.
   unsigned getJumpBufSize() const;
 
-  /// \brief Return true if switches should be turned into lookup tables for the
+  /// Return true if switches should be turned into lookup tables for the
   /// target.
   bool shouldBuildLookupTables() const;
 
-  /// \brief Return true if switches should be turned into lookup tables
+  /// Return true if switches should be turned into lookup tables
   /// containing this constant value for the target.
   bool shouldBuildLookupTablesForConstant(Constant *C) const;
 
-  /// \brief Return true if the input function which is cold at all call sites,
+  /// Return true if the input function which is cold at all call sites,
   ///  should use coldcc calling convention.
   bool useColdCCForColdCall(Function &F) const;
 
@@ -566,10 +573,10 @@
   /// the scalarization cost of a load/store.
   bool supportsEfficientVectorElementLoadStore() const;
 
-  /// \brief Don't restrict interleaved unrolling to small loops.
+  /// Don't restrict interleaved unrolling to small loops.
   bool enableAggressiveInterleaving(bool LoopHasReductions) const;
 
-  /// \brief If not nullptr, enable inline expansion of memcmp. IsZeroCmp is
+  /// If not nullptr, enable inline expansion of memcmp. IsZeroCmp is
   /// true if this is the expansion of memcmp(p1, p2, s) == 0.
   struct MemCmpExpansionOptions {
     // The list of available load sizes (in bytes), sorted in decreasing order.
@@ -577,10 +584,10 @@
   };
   const MemCmpExpansionOptions *enableMemCmpExpansion(bool IsZeroCmp) const;
 
-  /// \brief Enable matching of interleaved access groups.
+  /// Enable matching of interleaved access groups.
   bool enableInterleavedAccessVectorization() const;
 
-  /// \brief Indicate that it is potentially unsafe to automatically vectorize
+  /// Indicate that it is potentially unsafe to automatically vectorize
   /// floating-point operations because the semantics of vector and scalar
   /// floating-point semantics may differ. For example, ARM NEON v7 SIMD math
   /// does not support IEEE-754 denormal numbers, while depending on the
@@ -589,16 +596,16 @@
   /// operations, shuffles, or casts.
   bool isFPVectorizationPotentiallyUnsafe() const;
 
-  /// \brief Determine if the target supports unaligned memory accesses.
+  /// Determine if the target supports unaligned memory accesses.
   bool allowsMisalignedMemoryAccesses(LLVMContext &Context,
                                       unsigned BitWidth, unsigned AddressSpace = 0,
                                       unsigned Alignment = 1,
                                       bool *Fast = nullptr) const;
 
-  /// \brief Return hardware support for population count.
+  /// Return hardware support for population count.
   PopcntSupportKind getPopcntSupport(unsigned IntTyWidthInBit) const;
 
-  /// \brief Return true if the hardware has a fast square-root instruction.
+  /// Return true if the hardware has a fast square-root instruction.
   bool haveFastSqrt(Type *Ty) const;
 
   /// Return true if it is faster to check if a floating-point value is NaN
@@ -607,15 +614,15 @@
   /// generally as cheap as checking for ordered/unordered.
   bool isFCmpOrdCheaperThanFCmpZero(Type *Ty) const;
 
-  /// \brief Return the expected cost of supporting the floating point operation
+  /// Return the expected cost of supporting the floating point operation
   /// of the specified type.
   int getFPOpCost(Type *Ty) const;
 
-  /// \brief Return the expected cost of materializing for the given integer
+  /// Return the expected cost of materializing for the given integer
   /// immediate of the specified type.
   int getIntImmCost(const APInt &Imm, Type *Ty) const;
 
-  /// \brief Return the expected cost of materialization for the given integer
+  /// Return the expected cost of materialization for the given integer
   /// immediate of the specified type for a given instruction. The cost can be
   /// zero if the immediate can be folded into the specified instruction.
   int getIntImmCost(unsigned Opc, unsigned Idx, const APInt &Imm,
@@ -623,7 +630,7 @@
   int getIntImmCost(Intrinsic::ID IID, unsigned Idx, const APInt &Imm,
                     Type *Ty) const;
 
-  /// \brief Return the expected cost for the given integer when optimising
+  /// Return the expected cost for the given integer when optimising
   /// for size. This is different than the other integer immediate cost
   /// functions in that it is subtarget agnostic. This is useful when you e.g.
   /// target one ISA such as Aarch32 but smaller encodings could be possible
@@ -637,11 +644,14 @@
   /// \name Vector Target Information
   /// @{
 
-  /// \brief The various kinds of shuffle patterns for vector queries.
+  /// The various kinds of shuffle patterns for vector queries.
   enum ShuffleKind {
     SK_Broadcast,       ///< Broadcast element 0 to all other elements.
     SK_Reverse,         ///< Reverse the order of the vector.
-    SK_Alternate,       ///< Choose alternate elements from vector.
+    SK_Select,          ///< Selects elements from the corresponding lane of
+                        ///< either source operand. This is equivalent to a
+                        ///< vector select with a constant condition operand.
+    SK_Transpose,       ///< Transpose two vectors.
     SK_InsertSubvector, ///< InsertSubvector. Index indicates start offset.
     SK_ExtractSubvector,///< ExtractSubvector Index indicates start offset.
     SK_PermuteTwoSrc,   ///< Merge elements from two source vectors into one
@@ -650,7 +660,7 @@
                         ///< shuffle mask.
   };
 
-  /// \brief Additional information about an operand's possible values.
+  /// Additional information about an operand's possible values.
   enum OperandValueKind {
     OK_AnyValue,               // Operand can have any value.
     OK_UniformValue,           // Operand is uniform (splat of a value).
@@ -658,7 +668,7 @@
     OK_NonUniformConstantValue // Operand is a non uniform constant value.
   };
 
-  /// \brief Additional properties of an operand's values.
+  /// Additional properties of an operand's values.
   enum OperandValueProperties { OP_None = 0, OP_PowerOf2 = 1 };
 
   /// \return The number of scalar or vector registers that the target has.
@@ -680,6 +690,11 @@
   /// size of the widest element type.
   bool shouldMaximizeVectorBandwidth(bool OptSize) const;
 
+  /// \return The minimum vectorization factor for types of given element
+  /// bit width, or 0 if there is no mimimum VF. The returned value only
+  /// applies when shouldMaximizeVectorBandwidth returns true.
+  unsigned getMinimumVF(unsigned ElemWidth) const;
+
   /// \return True if it should be considered for address type promotion.
   /// \p AllowPromotionWithoutCommonHeader Set true if promoting \p I is
   /// profitable without finding other extensions fed by the same input.
@@ -806,7 +821,7 @@
                                  ArrayRef<unsigned> Indices, unsigned Alignment,
                                  unsigned AddressSpace) const;
 
-  /// \brief Calculate the cost of performing a vector reduction.
+  /// Calculate the cost of performing a vector reduction.
   ///
   /// This is the cost of reducing the vector value of type \p Ty to a scalar
   /// value using the operation denoted by \p Opcode. The form of the reduction
@@ -900,7 +915,7 @@
   bool areInlineCompatible(const Function *Caller,
                            const Function *Callee) const;
 
-  /// \brief The type of load/store indexing.
+  /// The type of load/store indexing.
   enum MemIndexedMode {
     MIM_Unindexed,  ///< No indexing.
     MIM_PreInc,     ///< Pre-incrementing.
@@ -966,19 +981,19 @@
   /// @}
 
 private:
-  /// \brief Estimate the latency of specified instruction.
+  /// Estimate the latency of specified instruction.
   /// Returns 1 as the default value.
   int getInstructionLatency(const Instruction *I) const;
 
-  /// \brief Returns the expected throughput cost of the instruction.
+  /// Returns the expected throughput cost of the instruction.
   /// Returns -1 if the cost is unknown.
   int getInstructionThroughput(const Instruction *I) const;
 
-  /// \brief The abstract base class used to type erase specific TTI
+  /// The abstract base class used to type erase specific TTI
   /// implementations.
   class Concept;
 
-  /// \brief The template model for the base class which wraps a concrete
+  /// The template model for the base class which wraps a concrete
   /// implementation in a type erased interface.
   template <typename T> class Model;
 
@@ -1074,6 +1089,7 @@
   virtual unsigned getRegisterBitWidth(bool Vector) const = 0;
   virtual unsigned getMinVectorRegisterBitWidth() = 0;
   virtual bool shouldMaximizeVectorBandwidth(bool OptSize) const = 0;
+  virtual unsigned getMinimumVF(unsigned ElemWidth) const = 0;
   virtual bool shouldConsiderAddressTypePromotion(
       const Instruction &I, bool &AllowPromotionWithoutCommonHeader) = 0;
   virtual unsigned getCacheLineSize() = 0;
@@ -1373,6 +1389,9 @@
   bool shouldMaximizeVectorBandwidth(bool OptSize) const override {
     return Impl.shouldMaximizeVectorBandwidth(OptSize);
   }
+  unsigned getMinimumVF(unsigned ElemWidth) const override {
+    return Impl.getMinimumVF(ElemWidth);
+  }
   bool shouldConsiderAddressTypePromotion(
       const Instruction &I, bool &AllowPromotionWithoutCommonHeader) override {
     return Impl.shouldConsiderAddressTypePromotion(
@@ -1564,7 +1583,7 @@
 TargetTransformInfo::TargetTransformInfo(T Impl)
     : TTIImpl(new Model<T>(Impl)) {}
 
-/// \brief Analysis pass providing the \c TargetTransformInfo.
+/// Analysis pass providing the \c TargetTransformInfo.
 ///
 /// The core idea of the TargetIRAnalysis is to expose an interface through
 /// which LLVM targets can analyze and provide information about the middle
@@ -1579,13 +1598,13 @@
 public:
   typedef TargetTransformInfo Result;
 
-  /// \brief Default construct a target IR analysis.
+  /// Default construct a target IR analysis.
   ///
   /// This will use the module's datalayout to construct a baseline
   /// conservative TTI result.
   TargetIRAnalysis();
 
-  /// \brief Construct an IR analysis pass around a target-provide callback.
+  /// Construct an IR analysis pass around a target-provide callback.
   ///
   /// The callback will be called with a particular function for which the TTI
   /// is needed and must return a TTI object for that function.
@@ -1611,7 +1630,7 @@
   friend AnalysisInfoMixin<TargetIRAnalysis>;
   static AnalysisKey Key;
 
-  /// \brief The callback used to produce a result.
+  /// The callback used to produce a result.
   ///
   /// We use a completely opaque callback so that targets can provide whatever
   /// mechanism they desire for constructing the TTI for a given function.
@@ -1623,11 +1642,11 @@
   /// the external TargetMachine, and that reference needs to never dangle.
   std::function<Result(const Function &)> TTICallback;
 
-  /// \brief Helper function used as the callback in the default constructor.
+  /// Helper function used as the callback in the default constructor.
   static Result getDefaultTTI(const Function &F);
 };
 
-/// \brief Wrapper pass for TargetTransformInfo.
+/// Wrapper pass for TargetTransformInfo.
 ///
 /// This pass can be constructed from a TTI object which it stores internally
 /// and is queried by passes.
@@ -1640,7 +1659,7 @@
 public:
   static char ID;
 
-  /// \brief We must provide a default constructor for the pass but it should
+  /// We must provide a default constructor for the pass but it should
   /// never be used.
   ///
   /// Use the constructor below or call one of the creation routines.
@@ -1651,7 +1670,7 @@
   TargetTransformInfo &getTTI(const Function &F);
 };
 
-/// \brief Create an analysis pass wrapper around a TTI object.
+/// Create an analysis pass wrapper around a TTI object.
 ///
 /// This analysis pass just holds the TTI instance and makes it available to
 /// clients.
diff --git a/linux-x64/clang/include/llvm/Analysis/TargetTransformInfoImpl.h b/linux-x64/clang/include/llvm/Analysis/TargetTransformInfoImpl.h
index df4f853..d80ae1d 100644
--- a/linux-x64/clang/include/llvm/Analysis/TargetTransformInfoImpl.h
+++ b/linux-x64/clang/include/llvm/Analysis/TargetTransformInfoImpl.h
@@ -27,7 +27,7 @@
 
 namespace llvm {
 
-/// \brief Base class for use as a mix-in that aids implementing
+/// Base class for use as a mix-in that aids implementing
 /// a TargetTransformInfo-compatible class.
 class TargetTransformInfoImplBase {
 protected:
@@ -155,6 +155,7 @@
     case Intrinsic::sideeffect:
     case Intrinsic::dbg_declare:
     case Intrinsic::dbg_value:
+    case Intrinsic::dbg_label:
     case Intrinsic::invariant_start:
     case Intrinsic::invariant_end:
     case Intrinsic::lifetime_start:
@@ -325,7 +326,7 @@
   bool haveFastSqrt(Type *Ty) { return false; }
 
   bool isFCmpOrdCheaperThanFCmpZero(Type *Ty) { return true; }
-  
+
   unsigned getFPOpCost(Type *Ty) { return TargetTransformInfo::TCC_Basic; }
 
   int getIntImmCodeSizeCost(unsigned Opcode, unsigned Idx, const APInt &Imm,
@@ -353,6 +354,8 @@
 
   bool shouldMaximizeVectorBandwidth(bool OptSize) const { return false; }
 
+  unsigned getMinimumVF(unsigned ElemWidth) const { return 0; }
+
   bool
   shouldConsiderAddressTypePromotion(const Instruction &I,
                                      bool &AllowPromotionWithoutCommonHeader) {
@@ -649,7 +652,7 @@
   }
 };
 
-/// \brief CRTP base class for use as a mix-in that aids implementing
+/// CRTP base class for use as a mix-in that aids implementing
 /// a TargetTransformInfo-compatible class.
 template <typename T>
 class TargetTransformInfoImplCRTPBase : public TargetTransformInfoImplBase {
diff --git a/linux-x64/clang/include/llvm/Analysis/TypeMetadataUtils.h b/linux-x64/clang/include/llvm/Analysis/TypeMetadataUtils.h
index 422e153..6764563 100644
--- a/linux-x64/clang/include/llvm/Analysis/TypeMetadataUtils.h
+++ b/linux-x64/clang/include/llvm/Analysis/TypeMetadataUtils.h
@@ -35,13 +35,13 @@
   CallSite CS;
 };
 
-/// Given a call to the intrinsic @llvm.type.test, find all devirtualizable
+/// Given a call to the intrinsic \@llvm.type.test, find all devirtualizable
 /// call sites based on the call and return them in DevirtCalls.
 void findDevirtualizableCallsForTypeTest(
     SmallVectorImpl<DevirtCallSite> &DevirtCalls,
     SmallVectorImpl<CallInst *> &Assumes, const CallInst *CI);
 
-/// Given a call to the intrinsic @llvm.type.checked.load, find all
+/// Given a call to the intrinsic \@llvm.type.checked.load, find all
 /// devirtualizable call sites based on the call and return them in DevirtCalls.
 void findDevirtualizableCallsForTypeCheckedLoad(
     SmallVectorImpl<DevirtCallSite> &DevirtCalls,
diff --git a/linux-x64/clang/include/llvm/Analysis/Utils/Local.h b/linux-x64/clang/include/llvm/Analysis/Utils/Local.h
index 42a654d..b4141bb 100644
--- a/linux-x64/clang/include/llvm/Analysis/Utils/Local.h
+++ b/linux-x64/clang/include/llvm/Analysis/Utils/Local.h
@@ -15,241 +15,11 @@
 #ifndef LLVM_ANALYSIS_UTILS_LOCAL_H
 #define LLVM_ANALYSIS_UTILS_LOCAL_H
 
-#include "llvm/ADT/ArrayRef.h"
-#include "llvm/ADT/SmallPtrSet.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/TinyPtrVector.h"
-#include "llvm/Analysis/AliasAnalysis.h"
-#include "llvm/IR/CallSite.h"
-#include "llvm/IR/Constant.h"
-#include "llvm/IR/Constants.h"
 #include "llvm/IR/DataLayout.h"
-#include "llvm/IR/Dominators.h"
 #include "llvm/IR/GetElementPtrTypeIterator.h"
-#include "llvm/IR/Operator.h"
-#include "llvm/IR/Type.h"
-#include "llvm/IR/User.h"
-#include "llvm/IR/Value.h"
-#include "llvm/Support/Casting.h"
-#include <cstdint>
-#include <limits>
 
 namespace llvm {
 
-class AllocaInst;
-class AssumptionCache;
-class BasicBlock;
-class BranchInst;
-class CallInst;
-class DbgInfoIntrinsic;
-class DbgValueInst;
-class DIBuilder;
-class Function;
-class Instruction;
-class LazyValueInfo;
-class LoadInst;
-class MDNode;
-class PHINode;
-class StoreInst;
-class TargetLibraryInfo;
-class TargetTransformInfo;
-
-/// A set of parameters used to control the transforms in the SimplifyCFG pass.
-/// Options may change depending on the position in the optimization pipeline.
-/// For example, canonical form that includes switches and branches may later be
-/// replaced by lookup tables and selects.
-struct SimplifyCFGOptions {
-  int BonusInstThreshold;
-  bool ForwardSwitchCondToPhi;
-  bool ConvertSwitchToLookupTable;
-  bool NeedCanonicalLoop;
-  bool SinkCommonInsts;
-  AssumptionCache *AC;
-
-  SimplifyCFGOptions(unsigned BonusThreshold = 1,
-                     bool ForwardSwitchCond = false,
-                     bool SwitchToLookup = false, bool CanonicalLoops = true,
-                     bool SinkCommon = false,
-                     AssumptionCache *AssumpCache = nullptr)
-      : BonusInstThreshold(BonusThreshold),
-        ForwardSwitchCondToPhi(ForwardSwitchCond),
-        ConvertSwitchToLookupTable(SwitchToLookup),
-        NeedCanonicalLoop(CanonicalLoops),
-        SinkCommonInsts(SinkCommon),
-        AC(AssumpCache) {}
-
-  // Support 'builder' pattern to set members by name at construction time.
-  SimplifyCFGOptions &bonusInstThreshold(int I) {
-    BonusInstThreshold = I;
-    return *this;
-  }
-  SimplifyCFGOptions &forwardSwitchCondToPhi(bool B) {
-    ForwardSwitchCondToPhi = B;
-    return *this;
-  }
-  SimplifyCFGOptions &convertSwitchToLookupTable(bool B) {
-    ConvertSwitchToLookupTable = B;
-    return *this;
-  }
-  SimplifyCFGOptions &needCanonicalLoops(bool B) {
-    NeedCanonicalLoop = B;
-    return *this;
-  }
-  SimplifyCFGOptions &sinkCommonInsts(bool B) {
-    SinkCommonInsts = B;
-    return *this;
-  }
-  SimplifyCFGOptions &setAssumptionCache(AssumptionCache *Cache) {
-    AC = Cache;
-    return *this;
-  }
-};
-
-//===----------------------------------------------------------------------===//
-//  Local constant propagation.
-//
-
-/// If a terminator instruction is predicated on a constant value, convert it
-/// into an unconditional branch to the constant destination.
-/// This is a nontrivial operation because the successors of this basic block
-/// must have their PHI nodes updated.
-/// Also calls RecursivelyDeleteTriviallyDeadInstructions() on any branch/switch
-/// conditions and indirectbr addresses this might make dead if
-/// DeleteDeadConditions is true.
-bool ConstantFoldTerminator(BasicBlock *BB, bool DeleteDeadConditions = false,
-                            const TargetLibraryInfo *TLI = nullptr,
-                            DeferredDominance *DDT = nullptr);
-
-//===----------------------------------------------------------------------===//
-//  Local dead code elimination.
-//
-
-/// Return true if the result produced by the instruction is not used, and the
-/// instruction has no side effects.
-bool isInstructionTriviallyDead(Instruction *I,
-                                const TargetLibraryInfo *TLI = nullptr);
-
-/// Return true if the result produced by the instruction would have no side
-/// effects if it was not used. This is equivalent to checking whether
-/// isInstructionTriviallyDead would be true if the use count was 0.
-bool wouldInstructionBeTriviallyDead(Instruction *I,
-                                     const TargetLibraryInfo *TLI = nullptr);
-
-/// If the specified value is a trivially dead instruction, delete it.
-/// If that makes any of its operands trivially dead, delete them too,
-/// recursively. Return true if any instructions were deleted.
-bool RecursivelyDeleteTriviallyDeadInstructions(Value *V,
-                                        const TargetLibraryInfo *TLI = nullptr);
-
-/// If the specified value is an effectively dead PHI node, due to being a
-/// def-use chain of single-use nodes that either forms a cycle or is terminated
-/// by a trivially dead instruction, delete it. If that makes any of its
-/// operands trivially dead, delete them too, recursively. Return true if a
-/// change was made.
-bool RecursivelyDeleteDeadPHINode(PHINode *PN,
-                                  const TargetLibraryInfo *TLI = nullptr);
-
-/// Scan the specified basic block and try to simplify any instructions in it
-/// and recursively delete dead instructions.
-///
-/// This returns true if it changed the code, note that it can delete
-/// instructions in other blocks as well in this block.
-bool SimplifyInstructionsInBlock(BasicBlock *BB,
-                                 const TargetLibraryInfo *TLI = nullptr);
-
-//===----------------------------------------------------------------------===//
-//  Control Flow Graph Restructuring.
-//
-
-/// Like BasicBlock::removePredecessor, this method is called when we're about
-/// to delete Pred as a predecessor of BB. If BB contains any PHI nodes, this
-/// drops the entries in the PHI nodes for Pred.
-///
-/// Unlike the removePredecessor method, this attempts to simplify uses of PHI
-/// nodes that collapse into identity values.  For example, if we have:
-///   x = phi(1, 0, 0, 0)
-///   y = and x, z
-///
-/// .. and delete the predecessor corresponding to the '1', this will attempt to
-/// recursively fold the 'and' to 0.
-void RemovePredecessorAndSimplify(BasicBlock *BB, BasicBlock *Pred,
-                                  DeferredDominance *DDT = nullptr);
-
-/// BB is a block with one predecessor and its predecessor is known to have one
-/// successor (BB!). Eliminate the edge between them, moving the instructions in
-/// the predecessor into BB. This deletes the predecessor block.
-void MergeBasicBlockIntoOnlyPred(BasicBlock *BB, DominatorTree *DT = nullptr,
-                                 DeferredDominance *DDT = nullptr);
-
-/// BB is known to contain an unconditional branch, and contains no instructions
-/// other than PHI nodes, potential debug intrinsics and the branch. If
-/// possible, eliminate BB by rewriting all the predecessors to branch to the
-/// successor block and return true. If we can't transform, return false.
-bool TryToSimplifyUncondBranchFromEmptyBlock(BasicBlock *BB,
-                                             DeferredDominance *DDT = nullptr);
-
-/// Check for and eliminate duplicate PHI nodes in this block. This doesn't try
-/// to be clever about PHI nodes which differ only in the order of the incoming
-/// values, but instcombine orders them so it usually won't matter.
-bool EliminateDuplicatePHINodes(BasicBlock *BB);
-
-/// This function is used to do simplification of a CFG.  For example, it
-/// adjusts branches to branches to eliminate the extra hop, it eliminates
-/// unreachable basic blocks, and does other peephole optimization of the CFG.
-/// It returns true if a modification was made, possibly deleting the basic
-/// block that was pointed to. LoopHeaders is an optional input parameter
-/// providing the set of loop headers that SimplifyCFG should not eliminate.
-bool simplifyCFG(BasicBlock *BB, const TargetTransformInfo &TTI,
-                 const SimplifyCFGOptions &Options = {},
-                 SmallPtrSetImpl<BasicBlock *> *LoopHeaders = nullptr);
-
-/// This function is used to flatten a CFG. For example, it uses parallel-and
-/// and parallel-or mode to collapse if-conditions and merge if-regions with
-/// identical statements.
-bool FlattenCFG(BasicBlock *BB, AliasAnalysis *AA = nullptr);
-
-/// If this basic block is ONLY a setcc and a branch, and if a predecessor
-/// branches to us and one of our successors, fold the setcc into the
-/// predecessor and use logical operations to pick the right destination.
-bool FoldBranchToCommonDest(BranchInst *BI, unsigned BonusInstThreshold = 1);
-
-/// This function takes a virtual register computed by an Instruction and
-/// replaces it with a slot in the stack frame, allocated via alloca.
-/// This allows the CFG to be changed around without fear of invalidating the
-/// SSA information for the value. It returns the pointer to the alloca inserted
-/// to create a stack slot for X.
-AllocaInst *DemoteRegToStack(Instruction &X,
-                             bool VolatileLoads = false,
-                             Instruction *AllocaPoint = nullptr);
-
-/// This function takes a virtual register computed by a phi node and replaces
-/// it with a slot in the stack frame, allocated via alloca. The phi node is
-/// deleted and it returns the pointer to the alloca inserted.
-AllocaInst *DemotePHIToStack(PHINode *P, Instruction *AllocaPoint = nullptr);
-
-/// Try to ensure that the alignment of \p V is at least \p PrefAlign bytes. If
-/// the owning object can be modified and has an alignment less than \p
-/// PrefAlign, it will be increased and \p PrefAlign returned. If the alignment
-/// cannot be increased, the known alignment of the value is returned.
-///
-/// It is not always possible to modify the alignment of the underlying object,
-/// so if alignment is important, a more reliable approach is to simply align
-/// all global variables and allocation instructions to their preferred
-/// alignment from the beginning.
-unsigned getOrEnforceKnownAlignment(Value *V, unsigned PrefAlign,
-                                    const DataLayout &DL,
-                                    const Instruction *CxtI = nullptr,
-                                    AssumptionCache *AC = nullptr,
-                                    const DominatorTree *DT = nullptr);
-
-/// Try to infer an alignment for the specified pointer.
-inline unsigned getKnownAlignment(Value *V, const DataLayout &DL,
-                                  const Instruction *CxtI = nullptr,
-                                  AssumptionCache *AC = nullptr,
-                                  const DominatorTree *DT = nullptr) {
-  return getOrEnforceKnownAlignment(V, 0, DL, CxtI, AC, DT);
-}
-
 /// Given a getelementptr instruction/constantexpr, emit the code necessary to
 /// compute the offset from the base pointer (without adding in the base
 /// pointer). Return the result as a signed integer of intptr size.
@@ -316,192 +86,6 @@
   return Result;
 }
 
-///===---------------------------------------------------------------------===//
-///  Dbg Intrinsic utilities
-///
-
-/// Inserts a llvm.dbg.value intrinsic before a store to an alloca'd value
-/// that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic.
-void ConvertDebugDeclareToDebugValue(DbgInfoIntrinsic *DII,
-                                     StoreInst *SI, DIBuilder &Builder);
-
-/// Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value
-/// that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic.
-void ConvertDebugDeclareToDebugValue(DbgInfoIntrinsic *DII,
-                                     LoadInst *LI, DIBuilder &Builder);
-
-/// Inserts a llvm.dbg.value intrinsic after a phi that has an associated
-/// llvm.dbg.declare or llvm.dbg.addr intrinsic.
-void ConvertDebugDeclareToDebugValue(DbgInfoIntrinsic *DII,
-                                     PHINode *LI, DIBuilder &Builder);
-
-/// Lowers llvm.dbg.declare intrinsics into appropriate set of
-/// llvm.dbg.value intrinsics.
-bool LowerDbgDeclare(Function &F);
-
-/// Propagate dbg.value intrinsics through the newly inserted PHIs.
-void insertDebugValuesForPHIs(BasicBlock *BB,
-                              SmallVectorImpl<PHINode *> &InsertedPHIs);
-
-/// Finds all intrinsics declaring local variables as living in the memory that
-/// 'V' points to. This may include a mix of dbg.declare and
-/// dbg.addr intrinsics.
-TinyPtrVector<DbgInfoIntrinsic *> FindDbgAddrUses(Value *V);
-
-/// Finds the llvm.dbg.value intrinsics describing a value.
-void findDbgValues(SmallVectorImpl<DbgValueInst *> &DbgValues, Value *V);
-
-/// Finds the debug info intrinsics describing a value.
-void findDbgUsers(SmallVectorImpl<DbgInfoIntrinsic *> &DbgInsts, Value *V);
-
-/// Replaces llvm.dbg.declare instruction when the address it
-/// describes is replaced with a new value. If Deref is true, an
-/// additional DW_OP_deref is prepended to the expression. If Offset
-/// is non-zero, a constant displacement is added to the expression
-/// (between the optional Deref operations). Offset can be negative.
-bool replaceDbgDeclare(Value *Address, Value *NewAddress,
-                       Instruction *InsertBefore, DIBuilder &Builder,
-                       bool DerefBefore, int Offset, bool DerefAfter);
-
-/// Replaces llvm.dbg.declare instruction when the alloca it describes
-/// is replaced with a new value. If Deref is true, an additional
-/// DW_OP_deref is prepended to the expression. If Offset is non-zero,
-/// a constant displacement is added to the expression (between the
-/// optional Deref operations). Offset can be negative. The new
-/// llvm.dbg.declare is inserted immediately before AI.
-bool replaceDbgDeclareForAlloca(AllocaInst *AI, Value *NewAllocaAddress,
-                                DIBuilder &Builder, bool DerefBefore,
-                                int Offset, bool DerefAfter);
-
-/// Replaces multiple llvm.dbg.value instructions when the alloca it describes
-/// is replaced with a new value. If Offset is non-zero, a constant displacement
-/// is added to the expression (after the mandatory Deref). Offset can be
-/// negative. New llvm.dbg.value instructions are inserted at the locations of
-/// the instructions they replace.
-void replaceDbgValueForAlloca(AllocaInst *AI, Value *NewAllocaAddress,
-                              DIBuilder &Builder, int Offset = 0);
-
-/// Assuming the instruction \p I is going to be deleted, attempt to salvage any
-/// dbg.value intrinsics referring to \p I by rewriting its effect into a
-/// DIExpression.
-void salvageDebugInfo(Instruction &I);
-
-/// Remove all instructions from a basic block other than it's terminator
-/// and any present EH pad instructions.
-unsigned removeAllNonTerminatorAndEHPadInstructions(BasicBlock *BB);
-
-/// Insert an unreachable instruction before the specified
-/// instruction, making it and the rest of the code in the block dead.
-unsigned changeToUnreachable(Instruction *I, bool UseLLVMTrap,
-                             bool PreserveLCSSA = false,
-                             DeferredDominance *DDT = nullptr);
-
-/// Convert the CallInst to InvokeInst with the specified unwind edge basic
-/// block.  This also splits the basic block where CI is located, because
-/// InvokeInst is a terminator instruction.  Returns the newly split basic
-/// block.
-BasicBlock *changeToInvokeAndSplitBasicBlock(CallInst *CI,
-                                             BasicBlock *UnwindEdge);
-
-/// Replace 'BB's terminator with one that does not have an unwind successor
-/// block. Rewrites `invoke` to `call`, etc. Updates any PHIs in unwind
-/// successor.
-///
-/// \param BB  Block whose terminator will be replaced.  Its terminator must
-///            have an unwind successor.
-void removeUnwindEdge(BasicBlock *BB, DeferredDominance *DDT = nullptr);
-
-/// Remove all blocks that can not be reached from the function's entry.
-///
-/// Returns true if any basic block was removed.
-bool removeUnreachableBlocks(Function &F, LazyValueInfo *LVI = nullptr,
-                             DeferredDominance *DDT = nullptr);
-
-/// Combine the metadata of two instructions so that K can replace J
-///
-/// Metadata not listed as known via KnownIDs is removed
-void combineMetadata(Instruction *K, const Instruction *J, ArrayRef<unsigned> KnownIDs);
-
-/// Combine the metadata of two instructions so that K can replace J. This
-/// specifically handles the case of CSE-like transformations.
-///
-/// Unknown metadata is removed.
-void combineMetadataForCSE(Instruction *K, const Instruction *J);
-
-// Replace each use of 'From' with 'To', if that use does not belong to basic
-// block where 'From' is defined. Returns the number of replacements made.
-unsigned replaceNonLocalUsesWith(Instruction *From, Value *To);
-
-/// Replace each use of 'From' with 'To' if that use is dominated by
-/// the given edge.  Returns the number of replacements made.
-unsigned replaceDominatedUsesWith(Value *From, Value *To, DominatorTree &DT,
-                                  const BasicBlockEdge &Edge);
-/// Replace each use of 'From' with 'To' if that use is dominated by
-/// the end of the given BasicBlock. Returns the number of replacements made.
-unsigned replaceDominatedUsesWith(Value *From, Value *To, DominatorTree &DT,
-                                  const BasicBlock *BB);
-
-/// Return true if the CallSite CS calls a gc leaf function.
-///
-/// A leaf function is a function that does not safepoint the thread during its
-/// execution.  During a call or invoke to such a function, the callers stack
-/// does not have to be made parseable.
-///
-/// Most passes can and should ignore this information, and it is only used
-/// during lowering by the GC infrastructure.
-bool callsGCLeafFunction(ImmutableCallSite CS, const TargetLibraryInfo &TLI);
-
-/// Copy a nonnull metadata node to a new load instruction.
-///
-/// This handles mapping it to range metadata if the new load is an integer
-/// load instead of a pointer load.
-void copyNonnullMetadata(const LoadInst &OldLI, MDNode *N, LoadInst &NewLI);
-
-/// Copy a range metadata node to a new load instruction.
-///
-/// This handles mapping it to nonnull metadata if the new load is a pointer
-/// load instead of an integer load and the range doesn't cover null.
-void copyRangeMetadata(const DataLayout &DL, const LoadInst &OldLI, MDNode *N,
-                       LoadInst &NewLI);
-
-//===----------------------------------------------------------------------===//
-//  Intrinsic pattern matching
-//
-
-/// Try to match a bswap or bitreverse idiom.
-///
-/// If an idiom is matched, an intrinsic call is inserted before \c I. Any added
-/// instructions are returned in \c InsertedInsts. They will all have been added
-/// to a basic block.
-///
-/// A bitreverse idiom normally requires around 2*BW nodes to be searched (where
-/// BW is the bitwidth of the integer type). A bswap idiom requires anywhere up
-/// to BW / 4 nodes to be searched, so is significantly faster.
-///
-/// This function returns true on a successful match or false otherwise.
-bool recognizeBSwapOrBitReverseIdiom(
-    Instruction *I, bool MatchBSwaps, bool MatchBitReversals,
-    SmallVectorImpl<Instruction *> &InsertedInsts);
-
-//===----------------------------------------------------------------------===//
-//  Sanitizer utilities
-//
-
-/// Given a CallInst, check if it calls a string function known to CodeGen,
-/// and mark it with NoBuiltin if so.  To be used by sanitizers that intend
-/// to intercept string functions and want to avoid converting them to target
-/// specific instructions.
-void maybeMarkSanitizerLibraryCallNoBuiltin(CallInst *CI,
-                                            const TargetLibraryInfo *TLI);
-
-//===----------------------------------------------------------------------===//
-//  Transform predicates
-//
-
-/// Given an instruction, is it legal to set operand OpIdx to a non-constant
-/// value?
-bool canReplaceOperandWithVariable(const Instruction *I, unsigned OpIdx);
-
-} // end namespace llvm
+}
 
 #endif // LLVM_TRANSFORMS_UTILS_LOCAL_H
diff --git a/linux-x64/clang/include/llvm/Analysis/ValueLattice.h b/linux-x64/clang/include/llvm/Analysis/ValueLattice.h
index c943fd1..0744ca6 100644
--- a/linux-x64/clang/include/llvm/Analysis/ValueLattice.h
+++ b/linux-x64/clang/include/llvm/Analysis/ValueLattice.h
@@ -275,6 +275,8 @@
     ConstantRange NewR = getConstantRange().unionWith(RHS.getConstantRange());
     if (NewR.isFullSet())
       markOverdefined();
+    else if (NewR == getConstantRange())
+      return false;
     else
       markConstantRange(std::move(NewR));
     return true;
diff --git a/linux-x64/clang/include/llvm/Analysis/ValueTracking.h b/linux-x64/clang/include/llvm/Analysis/ValueTracking.h
index ced95df..99b47fb 100644
--- a/linux-x64/clang/include/llvm/Analysis/ValueTracking.h
+++ b/linux-x64/clang/include/llvm/Analysis/ValueTracking.h
@@ -101,6 +101,12 @@
                       const Instruction *CxtI = nullptr,
                       const DominatorTree *DT = nullptr);
 
+  /// Return true if the two given values are negation.
+  /// Currently can recoginze Value pair:
+  /// 1: <X, Y> if X = sub (0, Y) or Y = sub (0, X)
+  /// 2: <X, Y> if X = sub (A, B) and Y = sub (B, A)
+  bool isKnownNegation(const Value *X, const Value *Y, bool NeedNSW = false);
+
   /// Returns true if the give value is known to be non-negative.
   bool isKnownNonNegative(const Value *V, const DataLayout &DL,
                           unsigned Depth = 0,
@@ -188,7 +194,8 @@
   /// Return true if the floating-point scalar value is not a NaN or if the
   /// floating-point vector value has no NaN elements. Return false if a value
   /// could ever be NaN.
-  bool isKnownNeverNaN(const Value *V);
+  bool isKnownNeverNaN(const Value *V, const TargetLibraryInfo *TLI,
+                       unsigned Depth = 0);
 
   /// Return true if we can prove that the specified FP value's sign bit is 0.
   ///
@@ -276,6 +283,22 @@
   /// pointer, return 'len+1'.  If we can't, return 0.
   uint64_t GetStringLength(const Value *V, unsigned CharSize = 8);
 
+  /// This function returns call pointer argument that is considered the same by
+  /// aliasing rules. You CAN'T use it to replace one value with another.
+  const Value *getArgumentAliasingToReturnedPointer(ImmutableCallSite CS);
+  inline Value *getArgumentAliasingToReturnedPointer(CallSite CS) {
+    return const_cast<Value *>(
+        getArgumentAliasingToReturnedPointer(ImmutableCallSite(CS)));
+  }
+
+  // {launder,strip}.invariant.group returns pointer that aliases its argument,
+  // and it only captures pointer by returning it.
+  // These intrinsics are not marked as nocapture, because returning is
+  // considered as capture. The arguments are not marked as returned neither,
+  // because it would make it useless.
+  bool isIntrinsicReturningPointerAliasingArgumentWithoutCapturing(
+      ImmutableCallSite CS);
+
   /// This method strips off any GEP address adjustments and pointer casts from
   /// the specified value, returning the original object being addressed. Note
   /// that the returned value has pointer type if the specified value does. If
@@ -288,7 +311,7 @@
     return GetUnderlyingObject(const_cast<Value *>(V), DL, MaxLookup);
   }
 
-  /// \brief This method is similar to GetUnderlyingObject except that it can
+  /// This method is similar to GetUnderlyingObject except that it can
   /// look through phi and select instructions and return multiple objects.
   ///
   /// If LoopInfo is passed, loop phis are further analyzed.  If a pointer
@@ -384,6 +407,11 @@
                                                AssumptionCache *AC,
                                                const Instruction *CxtI,
                                                const DominatorTree *DT);
+  OverflowResult computeOverflowForSignedMul(const Value *LHS, const Value *RHS,
+                                             const DataLayout &DL,
+                                             AssumptionCache *AC,
+                                             const Instruction *CxtI,
+                                             const DominatorTree *DT);
   OverflowResult computeOverflowForUnsignedAdd(const Value *LHS,
                                                const Value *RHS,
                                                const DataLayout &DL,
@@ -401,6 +429,16 @@
                                              AssumptionCache *AC = nullptr,
                                              const Instruction *CxtI = nullptr,
                                              const DominatorTree *DT = nullptr);
+  OverflowResult computeOverflowForUnsignedSub(const Value *LHS, const Value *RHS,
+                                               const DataLayout &DL,
+                                               AssumptionCache *AC,
+                                               const Instruction *CxtI,
+                                               const DominatorTree *DT);
+  OverflowResult computeOverflowForSignedSub(const Value *LHS, const Value *RHS,
+                                             const DataLayout &DL,
+                                             AssumptionCache *AC,
+                                             const Instruction *CxtI,
+                                             const DominatorTree *DT);
 
   /// Returns true if the arithmetic part of the \p II 's result is
   /// used only along the paths control dependent on the computation
@@ -427,7 +465,7 @@
   /// This is equivelent to saying that all instructions within the basic block
   /// are guaranteed to transfer execution to their successor within the basic
   /// block. This has the same assumptions w.r.t. undefined behavior as the
-  /// instruction variant of this function. 
+  /// instruction variant of this function.
   bool isGuaranteedToTransferExecutionToSuccessor(const BasicBlock *BB);
 
   /// Return true if this function can prove that the instruction I
@@ -461,7 +499,7 @@
   /// the parent of I.
   bool programUndefinedIfFullPoison(const Instruction *PoisonI);
 
-  /// \brief Specific patterns of select instructions we can match.
+  /// Specific patterns of select instructions we can match.
   enum SelectPatternFlavor {
     SPF_UNKNOWN = 0,
     SPF_SMIN,                   /// Signed minimum
@@ -474,7 +512,7 @@
     SPF_NABS                    /// Negated absolute value
   };
 
-  /// \brief Behavior when a floating point min/max is given one NaN and one
+  /// Behavior when a floating point min/max is given one NaN and one
   /// non-NaN as input.
   enum SelectPatternNaNBehavior {
     SPNB_NA = 0,                /// NaN behavior not applicable.
@@ -502,6 +540,9 @@
   /// Pattern match integer [SU]MIN, [SU]MAX and ABS idioms, returning the kind
   /// and providing the out parameter results if we successfully match.
   ///
+  /// For ABS/NABS, LHS will be set to the input to the abs idiom. RHS will be
+  /// the negation instruction from the idiom.
+  ///
   /// If CastOp is not nullptr, also match MIN/MAX idioms where the type does
   /// not match that of the original select. If this is the case, the cast
   /// operation (one of Trunc,SExt,Zext) that must be done to transform the
diff --git a/linux-x64/clang/include/llvm/Analysis/VectorUtils.h b/linux-x64/clang/include/llvm/Analysis/VectorUtils.h
index 6315e84..9fde36d 100644
--- a/linux-x64/clang/include/llvm/Analysis/VectorUtils.h
+++ b/linux-x64/clang/include/llvm/Analysis/VectorUtils.h
@@ -33,50 +33,50 @@
 enum ID : unsigned;
 }
 
-/// \brief Identify if the intrinsic is trivially vectorizable.
+/// Identify if the intrinsic is trivially vectorizable.
 /// This method returns true if the intrinsic's argument types are all
 /// scalars for the scalar form of the intrinsic and all vectors for
 /// the vector form of the intrinsic.
 bool isTriviallyVectorizable(Intrinsic::ID ID);
 
-/// \brief Identifies if the intrinsic has a scalar operand. It checks for
+/// Identifies if the intrinsic has a scalar operand. It checks for
 /// ctlz,cttz and powi special intrinsics whose argument is scalar.
 bool hasVectorInstrinsicScalarOpd(Intrinsic::ID ID, unsigned ScalarOpdIdx);
 
-/// \brief Returns intrinsic ID for call.
+/// Returns intrinsic ID for call.
 /// For the input call instruction it finds mapping intrinsic and returns
 /// its intrinsic ID, in case it does not found it return not_intrinsic.
 Intrinsic::ID getVectorIntrinsicIDForCall(const CallInst *CI,
                                           const TargetLibraryInfo *TLI);
 
-/// \brief Find the operand of the GEP that should be checked for consecutive
+/// Find the operand of the GEP that should be checked for consecutive
 /// stores. This ignores trailing indices that have no effect on the final
 /// pointer.
 unsigned getGEPInductionOperand(const GetElementPtrInst *Gep);
 
-/// \brief If the argument is a GEP, then returns the operand identified by
+/// If the argument is a GEP, then returns the operand identified by
 /// getGEPInductionOperand. However, if there is some other non-loop-invariant
 /// operand, it returns that instead.
 Value *stripGetElementPtr(Value *Ptr, ScalarEvolution *SE, Loop *Lp);
 
-/// \brief If a value has only one user that is a CastInst, return it.
+/// If a value has only one user that is a CastInst, return it.
 Value *getUniqueCastUse(Value *Ptr, Loop *Lp, Type *Ty);
 
-/// \brief Get the stride of a pointer access in a loop. Looks for symbolic
+/// Get the stride of a pointer access in a loop. Looks for symbolic
 /// strides "a[i*stride]". Returns the symbolic stride, or null otherwise.
 Value *getStrideFromPointer(Value *Ptr, ScalarEvolution *SE, Loop *Lp);
 
-/// \brief Given a vector and an element number, see if the scalar value is
+/// Given a vector and an element number, see if the scalar value is
 /// already around as a register, for example if it were inserted then extracted
 /// from the vector.
 Value *findScalarElement(Value *V, unsigned EltNo);
 
-/// \brief Get splat value if the input is a splat vector or return nullptr.
+/// Get splat value if the input is a splat vector or return nullptr.
 /// The value may be extracted from a splat constants vector or from
 /// a sequence of instructions that broadcast a single value into a vector.
 const Value *getSplatValue(const Value *V);
 
-/// \brief Compute a map of integer instructions to their minimum legal type
+/// Compute a map of integer instructions to their minimum legal type
 /// size.
 ///
 /// C semantics force sub-int-sized values (e.g. i8, i16) to be promoted to int
@@ -124,7 +124,7 @@
 /// This function always sets a (possibly null) value for each K in Kinds.
 Instruction *propagateMetadata(Instruction *I, ArrayRef<Value *> VL);
 
-/// \brief Create an interleave shuffle mask.
+/// Create an interleave shuffle mask.
 ///
 /// This function creates a shuffle mask for interleaving \p NumVecs vectors of
 /// vectorization factor \p VF into a single wide vector. The mask is of the
@@ -138,7 +138,7 @@
 Constant *createInterleaveMask(IRBuilder<> &Builder, unsigned VF,
                                unsigned NumVecs);
 
-/// \brief Create a stride shuffle mask.
+/// Create a stride shuffle mask.
 ///
 /// This function creates a shuffle mask whose elements begin at \p Start and
 /// are incremented by \p Stride. The mask can be used to deinterleave an
@@ -153,7 +153,7 @@
 Constant *createStrideMask(IRBuilder<> &Builder, unsigned Start,
                            unsigned Stride, unsigned VF);
 
-/// \brief Create a sequential shuffle mask.
+/// Create a sequential shuffle mask.
 ///
 /// This function creates shuffle mask whose elements are sequential and begin
 /// at \p Start.  The mask contains \p NumInts integers and is padded with \p
@@ -167,7 +167,7 @@
 Constant *createSequentialMask(IRBuilder<> &Builder, unsigned Start,
                                unsigned NumInts, unsigned NumUndefs);
 
-/// \brief Concatenate a list of vectors.
+/// Concatenate a list of vectors.
 ///
 /// This function generates code that concatenate the vectors in \p Vecs into a
 /// single large vector. The number of vectors should be greater than one, and
diff --git a/linux-x64/clang/include/llvm/AsmParser/Parser.h b/linux-x64/clang/include/llvm/AsmParser/Parser.h
index 4e22101..285a7c0 100644
--- a/linux-x64/clang/include/llvm/AsmParser/Parser.h
+++ b/linux-x64/clang/include/llvm/AsmParser/Parser.h
@@ -21,18 +21,19 @@
 class Constant;
 class LLVMContext;
 class Module;
+class ModuleSummaryIndex;
 struct SlotMapping;
 class SMDiagnostic;
 class Type;
 
-/// This function is the main interface to the LLVM Assembly Parser. It parses
+/// This function is a main interface to the LLVM Assembly Parser. It parses
 /// an ASCII file that (presumably) contains LLVM Assembly code. It returns a
 /// Module (intermediate representation) with the corresponding features. Note
 /// that this does not verify that the generated Module is valid, so you should
 /// run the verifier after parsing the file to check that it is okay.
-/// \brief Parse LLVM Assembly from a file
+/// Parse LLVM Assembly from a file
 /// \param Filename The name of the file to parse
-/// \param Error Error result info.
+/// \param Err Error result info.
 /// \param Context Context in which to allocate globals info.
 /// \param Slots The optional slot mapping that will be initialized during
 ///              parsing.
@@ -41,7 +42,7 @@
 ///                         for use inside the LLVM testuite!
 /// \param DataLayoutString Override datalayout in the llvm assembly.
 std::unique_ptr<Module>
-parseAssemblyFile(StringRef Filename, SMDiagnostic &Error, LLVMContext &Context,
+parseAssemblyFile(StringRef Filename, SMDiagnostic &Err, LLVMContext &Context,
                   SlotMapping *Slots = nullptr, bool UpgradeDebugInfo = true,
                   StringRef DataLayoutString = "");
 
@@ -50,9 +51,9 @@
 /// Module (intermediate representation) with the corresponding features. Note
 /// that this does not verify that the generated Module is valid, so you should
 /// run the verifier after parsing the file to check that it is okay.
-/// \brief Parse LLVM Assembly from a string
+/// Parse LLVM Assembly from a string
 /// \param AsmString The string containing assembly
-/// \param Error Error result info.
+/// \param Err Error result info.
 /// \param Context Context in which to allocate globals info.
 /// \param Slots The optional slot mapping that will be initialized during
 ///              parsing.
@@ -61,14 +62,54 @@
 ///                         for use inside the LLVM testuite!
 /// \param DataLayoutString Override datalayout in the llvm assembly.
 std::unique_ptr<Module> parseAssemblyString(StringRef AsmString,
-                                            SMDiagnostic &Error,
+                                            SMDiagnostic &Err,
                                             LLVMContext &Context,
                                             SlotMapping *Slots = nullptr,
                                             bool UpgradeDebugInfo = true,
                                             StringRef DataLayoutString = "");
 
+/// Holds the Module and ModuleSummaryIndex returned by the interfaces
+/// that parse both.
+struct ParsedModuleAndIndex {
+  std::unique_ptr<Module> Mod;
+  std::unique_ptr<ModuleSummaryIndex> Index;
+};
+
+/// This function is a main interface to the LLVM Assembly Parser. It parses
+/// an ASCII file that (presumably) contains LLVM Assembly code, including
+/// a module summary. It returns a Module (intermediate representation) and
+/// a ModuleSummaryIndex with the corresponding features. Note that this does
+/// not verify that the generated Module or Index are valid, so you should
+/// run the verifier after parsing the file to check that they are okay.
+/// Parse LLVM Assembly from a file
+/// \param Filename The name of the file to parse
+/// \param Err Error result info.
+/// \param Context Context in which to allocate globals info.
+/// \param Slots The optional slot mapping that will be initialized during
+///              parsing.
+/// \param UpgradeDebugInfo Run UpgradeDebugInfo, which runs the Verifier.
+///                         This option should only be set to false by llvm-as
+///                         for use inside the LLVM testuite!
+/// \param DataLayoutString Override datalayout in the llvm assembly.
+ParsedModuleAndIndex
+parseAssemblyFileWithIndex(StringRef Filename, SMDiagnostic &Err,
+                           LLVMContext &Context, SlotMapping *Slots = nullptr,
+                           bool UpgradeDebugInfo = true,
+                           StringRef DataLayoutString = "");
+
+/// This function is a main interface to the LLVM Assembly Parser. It parses
+/// an ASCII file that (presumably) contains LLVM Assembly code for a module
+/// summary. It returns a a ModuleSummaryIndex with the corresponding features.
+/// Note that this does not verify that the generated Index is valid, so you
+/// should run the verifier after parsing the file to check that it is okay.
+/// Parse LLVM Assembly Index from a file
+/// \param Filename The name of the file to parse
+/// \param Err Error result info.
+std::unique_ptr<ModuleSummaryIndex>
+parseSummaryIndexAssemblyFile(StringRef Filename, SMDiagnostic &Err);
+
 /// parseAssemblyFile and parseAssemblyString are wrappers around this function.
-/// \brief Parse LLVM Assembly from a MemoryBuffer.
+/// Parse LLVM Assembly from a MemoryBuffer.
 /// \param F The MemoryBuffer containing assembly
 /// \param Err Error result info.
 /// \param Slots The optional slot mapping that will be initialized during
@@ -83,6 +124,34 @@
                                       bool UpgradeDebugInfo = true,
                                       StringRef DataLayoutString = "");
 
+/// Parse LLVM Assembly including the summary index from a MemoryBuffer.
+///
+/// \param F The MemoryBuffer containing assembly with summary
+/// \param Err Error result info.
+/// \param Slots The optional slot mapping that will be initialized during
+///              parsing.
+/// \param UpgradeDebugInfo Run UpgradeDebugInfo, which runs the Verifier.
+///                         This option should only be set to false by llvm-as
+///                         for use inside the LLVM testuite!
+/// \param DataLayoutString Override datalayout in the llvm assembly.
+///
+/// parseAssemblyFileWithIndex is a wrapper around this function.
+ParsedModuleAndIndex parseAssemblyWithIndex(MemoryBufferRef F,
+                                            SMDiagnostic &Err,
+                                            LLVMContext &Context,
+                                            SlotMapping *Slots = nullptr,
+                                            bool UpgradeDebugInfo = true,
+                                            StringRef DataLayoutString = "");
+
+/// Parse LLVM Assembly for summary index from a MemoryBuffer.
+///
+/// \param F The MemoryBuffer containing assembly with summary
+/// \param Err Error result info.
+///
+/// parseSummaryIndexAssemblyFile is a wrapper around this function.
+std::unique_ptr<ModuleSummaryIndex>
+parseSummaryIndexAssembly(MemoryBufferRef F, SMDiagnostic &Err);
+
 /// This function is the low-level interface to the LLVM Assembly Parser.
 /// This is kept as an independent function instead of being inlined into
 /// parseAssembly for the convenience of interactive users that want to add
@@ -90,6 +159,7 @@
 ///
 /// \param F The MemoryBuffer containing assembly
 /// \param M The module to add data to.
+/// \param Index The index to add data to.
 /// \param Err Error result info.
 /// \param Slots The optional slot mapping that will be initialized during
 ///              parsing.
@@ -98,8 +168,8 @@
 ///                         This option should only be set to false by llvm-as
 ///                         for use inside the LLVM testuite!
 /// \param DataLayoutString Override datalayout in the llvm assembly.
-bool parseAssemblyInto(MemoryBufferRef F, Module &M, SMDiagnostic &Err,
-                       SlotMapping *Slots = nullptr,
+bool parseAssemblyInto(MemoryBufferRef F, Module *M, ModuleSummaryIndex *Index,
+                       SMDiagnostic &Err, SlotMapping *Slots = nullptr,
                        bool UpgradeDebugInfo = true,
                        StringRef DataLayoutString = "");
 
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/COFF.h b/linux-x64/clang/include/llvm/BinaryFormat/COFF.h
index 4d726aa..7b973c0 100644
--- a/linux-x64/clang/include/llvm/BinaryFormat/COFF.h
+++ b/linux-x64/clang/include/llvm/BinaryFormat/COFF.h
@@ -463,7 +463,7 @@
   AuxiliarySectionDefinition SectionDefinition;
 };
 
-/// @brief The Import Directory Table.
+/// The Import Directory Table.
 ///
 /// There is a single array of these and one entry per imported DLL.
 struct ImportDirectoryTableEntry {
@@ -474,7 +474,7 @@
   uint32_t ImportAddressTableRVA;
 };
 
-/// @brief The PE32 Import Lookup Table.
+/// The PE32 Import Lookup Table.
 ///
 /// There is an array of these for each imported DLL. It represents either
 /// the ordinal to import from the target DLL, or a name to lookup and import
@@ -485,32 +485,32 @@
 struct ImportLookupTableEntry32 {
   uint32_t data;
 
-  /// @brief Is this entry specified by ordinal, or name?
+  /// Is this entry specified by ordinal, or name?
   bool isOrdinal() const { return data & 0x80000000; }
 
-  /// @brief Get the ordinal value of this entry. isOrdinal must be true.
+  /// Get the ordinal value of this entry. isOrdinal must be true.
   uint16_t getOrdinal() const {
     assert(isOrdinal() && "ILT entry is not an ordinal!");
     return data & 0xFFFF;
   }
 
-  /// @brief Set the ordinal value and set isOrdinal to true.
+  /// Set the ordinal value and set isOrdinal to true.
   void setOrdinal(uint16_t o) {
     data = o;
     data |= 0x80000000;
   }
 
-  /// @brief Get the Hint/Name entry RVA. isOrdinal must be false.
+  /// Get the Hint/Name entry RVA. isOrdinal must be false.
   uint32_t getHintNameRVA() const {
     assert(!isOrdinal() && "ILT entry is not a Hint/Name RVA!");
     return data;
   }
 
-  /// @brief Set the Hint/Name entry RVA and set isOrdinal to false.
+  /// Set the Hint/Name entry RVA and set isOrdinal to false.
   void setHintNameRVA(uint32_t rva) { data = rva; }
 };
 
-/// @brief The DOS compatible header at the front of all PEs.
+/// The DOS compatible header at the front of all PEs.
 struct DOSHeader {
   uint16_t Magic;
   uint16_t UsedBytesInTheLastPage;
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/Dwarf.def b/linux-x64/clang/include/llvm/BinaryFormat/Dwarf.def
index 57e2596..944c5dd 100644
--- a/linux-x64/clang/include/llvm/BinaryFormat/Dwarf.def
+++ b/linux-x64/clang/include/llvm/BinaryFormat/Dwarf.def
@@ -856,6 +856,7 @@
 // TODO: Add Mach-O and COFF names.
 // Official DWARF sections.
 HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev")
+HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr")
 HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges")
 HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info")
 HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types")
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/Dwarf.h b/linux-x64/clang/include/llvm/BinaryFormat/Dwarf.h
index 15724a9..9036f40 100644
--- a/linux-x64/clang/include/llvm/BinaryFormat/Dwarf.h
+++ b/linux-x64/clang/include/llvm/BinaryFormat/Dwarf.h
@@ -540,6 +540,10 @@
 /// for attribute Attr.
 StringRef AttributeValueString(uint16_t Attr, unsigned Val);
 
+/// Returns the symbolic string representing Val when used as a value
+/// for atom Atom.
+StringRef AtomValueString(uint16_t Atom, unsigned Val);
+
 /// Describes an entry of the various gnu_pub* debug sections.
 ///
 /// The gnu_pub* kind looks like:
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/DynamicTags.def b/linux-x64/clang/include/llvm/BinaryFormat/DynamicTags.def
index c39f38a..2e15cc3 100644
--- a/linux-x64/clang/include/llvm/BinaryFormat/DynamicTags.def
+++ b/linux-x64/clang/include/llvm/BinaryFormat/DynamicTags.def
@@ -16,6 +16,11 @@
 #define MIPS_DYNAMIC_TAG_DEFINED
 #endif
 
+#ifndef PPC64_DYNAMIC_TAG
+#define PPC64_DYNAMIC_TAG(name, value) DYNAMIC_TAG(name, value)
+#define PPC64_DYNAMIC_TAG_DEFINED
+#endif
+
 #ifndef DYNAMIC_TAG_MARKER
 #define DYNAMIC_TAG_MARKER(name, value) DYNAMIC_TAG(name, value)
 #define DYNAMIC_TAG_MARKER_DEFINED
@@ -58,6 +63,14 @@
 DYNAMIC_TAG(PREINIT_ARRAY, 32)   // Pointer to array of preinit functions.
 DYNAMIC_TAG(PREINIT_ARRAYSZ, 33) // Size of the DT_PREINIT_ARRAY array.
 
+DYNAMIC_TAG(SYMTAB_SHNDX, 34) // Address of the SHT_SYMTAB_SHNDX section.
+
+// Experimental support for SHT_RELR sections. For details, see proposal
+// at https://groups.google.com/forum/#!topic/generic-abi/bX460iggiKg
+DYNAMIC_TAG(RELRSZ, 35)  // Size of Relr relocation table.
+DYNAMIC_TAG(RELR, 36)    // Address of relocation table (Relr entries).
+DYNAMIC_TAG(RELRENT, 37) // Size of a Relr relocation entry.
+
 DYNAMIC_TAG_MARKER(LOOS, 0x60000000)   // Start of environment specific tags.
 DYNAMIC_TAG_MARKER(HIOS, 0x6FFFFFFF)   // End of environment specific tags.
 DYNAMIC_TAG_MARKER(LOPROC, 0x70000000) // Start of processor specific tags.
@@ -70,6 +83,12 @@
 DYNAMIC_TAG(ANDROID_RELA, 0x60000011)
 DYNAMIC_TAG(ANDROID_RELASZ, 0x60000012)
 
+// Android's experimental support for SHT_RELR sections.
+// https://android.googlesource.com/platform/bionic/+/b7feec74547f84559a1467aca02708ff61346d2a/libc/include/elf.h#253
+DYNAMIC_TAG(ANDROID_RELR, 0x6FFFE000)      // Address of relocation table (Relr entries).
+DYNAMIC_TAG(ANDROID_RELRSZ, 0x6FFFE001)    // Size of Relr relocation table.
+DYNAMIC_TAG(ANDROID_RELRENT, 0x6FFFE003)   // Size of a Relr relocation entry.
+
 DYNAMIC_TAG(GNU_HASH, 0x6FFFFEF5)    // Reference to the GNU hash table.
 DYNAMIC_TAG(TLSDESC_PLT, 0x6FFFFEF6) // Location of PLT entry for TLS
                                      // descriptor resolver calls.
@@ -171,6 +190,10 @@
 MIPS_DYNAMIC_TAG(MIPS_RLD_MAP_REL, 0x70000035)  // Relative offset of run time loader
                                                 // map, used for debugging.
 
+// PPC64 specific dynamic table entries.
+PPC64_DYNAMIC_TAG(PPC64_GLINK, 0x70000000) // Address of 32 bytes before the
+                                           // first glink lazy resolver stub.
+
 // Sun machine-independent extensions.
 DYNAMIC_TAG(AUXILIARY, 0x7FFFFFFD) // Shared object to load before self
 DYNAMIC_TAG(FILTER, 0x7FFFFFFF)    // Shared object to get values from
@@ -181,7 +204,13 @@
 #endif
 #ifdef MIPS_DYNAMIC_TAG_DEFINED
 #undef MIPS_DYNAMIC_TAG
+#undef MIPS_DYNAMIC_TAG_DEFINED
 #endif
 #ifdef HEXAGON_DYNAMIC_TAG_DEFINED
 #undef HEXAGON_DYNAMIC_TAG
+#undef HEXAGON_DYNAMIC_TAG_DEFINED
+#endif
+#ifdef PPC64_DYNAMIC_TAG_DEFINED
+#undef PPC64_DYNAMIC_TAG
+#undef PPC64_DYNAMIC_TAG_DEFINED
 #endif
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/ELF.h b/linux-x64/clang/include/llvm/BinaryFormat/ELF.h
index 4651e51..2e77877 100644
--- a/linux-x64/clang/include/llvm/BinaryFormat/ELF.h
+++ b/linux-x64/clang/include/llvm/BinaryFormat/ELF.h
@@ -312,11 +312,6 @@
   EM_RISCV = 243,         // RISC-V
   EM_LANAI = 244,         // Lanai 32-bit processor
   EM_BPF = 247,           // Linux kernel bpf virtual machine
-
-  // A request has been made to the maintainer of the official registry for
-  // such numbers for an official value for WebAssembly. As soon as one is
-  // allocated, this enum will be updated to use it.
-  EM_WEBASSEMBLY = 0x4157, // WebAssembly architecture
 };
 
 // Object file classes.
@@ -418,8 +413,10 @@
 
 // ARM Specific e_flags
 enum : unsigned {
-  EF_ARM_SOFT_FLOAT = 0x00000200U,
-  EF_ARM_VFP_FLOAT = 0x00000400U,
+  EF_ARM_SOFT_FLOAT = 0x00000200U,     // Legacy pre EABI_VER5
+  EF_ARM_ABI_FLOAT_SOFT = 0x00000200U, // EABI_VER5
+  EF_ARM_VFP_FLOAT = 0x00000400U,      // Legacy pre EABI_VER5
+  EF_ARM_ABI_FLOAT_HARD = 0x00000400U, // EABI_VER5
   EF_ARM_EABI_UNKNOWN = 0x00000000U,
   EF_ARM_EABI_VER1 = 0x01000000U,
   EF_ARM_EABI_VER2 = 0x02000000U,
@@ -644,11 +641,6 @@
 #include "ELFRelocs/Sparc.def"
 };
 
-// ELF Relocation types for WebAssembly
-enum {
-#include "ELFRelocs/WebAssembly.def"
-};
-
 // AMDGPU specific e_flags.
 enum : unsigned {
   // Processor selection mask for EF_AMDGPU_MACH_* values.
@@ -658,8 +650,7 @@
   EF_AMDGPU_MACH_NONE = 0x000,
 
   // R600-based processors.
-  EF_AMDGPU_MACH_R600_FIRST = 0x001,
-  EF_AMDGPU_MACH_R600_LAST = 0x010,
+
   // Radeon HD 2000/3000 Series (R600).
   EF_AMDGPU_MACH_R600_R600 = 0x001,
   EF_AMDGPU_MACH_R600_R630 = 0x002,
@@ -685,9 +676,12 @@
   EF_AMDGPU_MACH_R600_RESERVED_FIRST = 0x011,
   EF_AMDGPU_MACH_R600_RESERVED_LAST = 0x01f,
 
+  // First/last R600-based processors.
+  EF_AMDGPU_MACH_R600_FIRST = EF_AMDGPU_MACH_R600_R600,
+  EF_AMDGPU_MACH_R600_LAST = EF_AMDGPU_MACH_R600_TURKS,
+
   // AMDGCN-based processors.
-  EF_AMDGPU_MACH_AMDGCN_FIRST = 0x020,
-  EF_AMDGPU_MACH_AMDGCN_LAST = 0x02d,
+
   // AMDGCN GFX6.
   EF_AMDGPU_MACH_AMDGCN_GFX600 = 0x020,
   EF_AMDGPU_MACH_AMDGCN_GFX601 = 0x021,
@@ -705,12 +699,16 @@
   // AMDGCN GFX9.
   EF_AMDGPU_MACH_AMDGCN_GFX900 = 0x02c,
   EF_AMDGPU_MACH_AMDGCN_GFX902 = 0x02d,
+  EF_AMDGPU_MACH_AMDGCN_GFX904 = 0x02e,
+  EF_AMDGPU_MACH_AMDGCN_GFX906 = 0x02f,
 
   // Reserved for AMDGCN-based processors.
   EF_AMDGPU_MACH_AMDGCN_RESERVED0 = 0x027,
-  EF_AMDGPU_MACH_AMDGCN_RESERVED1 = 0x02e,
-  EF_AMDGPU_MACH_AMDGCN_RESERVED2 = 0x02f,
-  EF_AMDGPU_MACH_AMDGCN_RESERVED3 = 0x030,
+  EF_AMDGPU_MACH_AMDGCN_RESERVED1 = 0x030,
+
+  // First/last AMDGCN-based processors.
+  EF_AMDGPU_MACH_AMDGCN_FIRST = EF_AMDGPU_MACH_AMDGCN_GFX600,
+  EF_AMDGPU_MACH_AMDGCN_LAST = EF_AMDGPU_MACH_AMDGCN_GFX906,
 
   // Indicates if the xnack target feature is enabled for all code contained in
   // the object.
@@ -790,6 +788,9 @@
   SHT_PREINIT_ARRAY = 16,               // Pointers to pre-init functions.
   SHT_GROUP = 17,                       // Section group.
   SHT_SYMTAB_SHNDX = 18,                // Indices for SHN_XINDEX entries.
+  // Experimental support for SHT_RELR sections. For details, see proposal
+  // at https://groups.google.com/forum/#!topic/generic-abi/bX460iggiKg
+  SHT_RELR = 19,                        // Relocation entries; only offsets.
   SHT_LOOS = 0x60000000,                // Lowest operating system-specific type.
   // Android packed relocation section types.
   // https://android.googlesource.com/platform/bionic/+/6f12bfece5dcc01325e0abba56a46b1bcf991c69/tools/relocation_packer/src/elf_file.cc#37
@@ -797,6 +798,12 @@
   SHT_ANDROID_RELA = 0x60000002,
   SHT_LLVM_ODRTAB = 0x6fff4c00,         // LLVM ODR table.
   SHT_LLVM_LINKER_OPTIONS = 0x6fff4c01, // LLVM Linker Options.
+  SHT_LLVM_CALL_GRAPH_PROFILE = 0x6fff4c02, // LLVM Call Graph Profile.
+  SHT_LLVM_ADDRSIG = 0x6fff4c03,        // List of address-significant symbols
+                                        // for safe ICF.
+  // Android's experimental support for SHT_RELR sections.
+  // https://android.googlesource.com/platform/bionic/+/b7feec74547f84559a1467aca02708ff61346d2a/libc/include/elf.h#512
+  SHT_ANDROID_RELR = 0x6fffff00,        // Relocation entries; only offsets.
   SHT_GNU_ATTRIBUTES = 0x6ffffff5,      // Object attributes.
   SHT_GNU_HASH = 0x6ffffff6,            // GNU-style hash table.
   SHT_GNU_verdef = 0x6ffffffd,          // GNU version definitions.
@@ -1060,6 +1067,9 @@
   }
 };
 
+// Relocation entry without explicit addend or info (relative relocations only).
+typedef Elf32_Word Elf32_Relr; // offset/bitmap for relative relocations
+
 // Relocation entry, without explicit addend.
 struct Elf64_Rel {
   Elf64_Addr r_offset; // Location (file byte offset, or program virtual addr).
@@ -1093,6 +1103,9 @@
   }
 };
 
+// Relocation entry without explicit addend or info (relative relocations only).
+typedef Elf64_Xword Elf64_Relr; // offset/bitmap for relative relocations
+
 // Program header for ELF32.
 struct Elf32_Phdr {
   Elf32_Word p_type;   // Type of segment
@@ -1156,9 +1169,6 @@
   PT_MIPS_RTPROC = 0x70000001,   // Runtime procedure table.
   PT_MIPS_OPTIONS = 0x70000002,  // Options segment.
   PT_MIPS_ABIFLAGS = 0x70000003, // Abiflags segment.
-
-  // WebAssembly program header types.
-  PT_WEBASSEMBLY_FUNCTIONS = PT_LOPROC + 0, // Function definitions.
 };
 
 // Segment flag bits.
@@ -1299,9 +1309,16 @@
 };
 
 // Property types used in GNU_PROPERTY_TYPE_0 notes.
-enum {
+enum : unsigned {
   GNU_PROPERTY_STACK_SIZE = 1,
   GNU_PROPERTY_NO_COPY_ON_PROTECTED = 2,
+  GNU_PROPERTY_X86_FEATURE_1_AND = 0xc0000002
+};
+
+// CET properties
+enum {
+  GNU_PROPERTY_X86_FEATURE_1_IBT = 1 << 0,
+  GNU_PROPERTY_X86_FEATURE_1_SHSTK = 1 << 1
 };
 
 // AMDGPU specific notes.
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def b/linux-x64/clang/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def
index 3a47c5a..8c5b482 100644
--- a/linux-x64/clang/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def
+++ b/linux-x64/clang/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def
@@ -89,6 +89,13 @@
 #undef R_PPC64_DTPREL16_HIGHESTA
 #undef R_PPC64_TLSGD
 #undef R_PPC64_TLSLD
+#undef R_PPC64_ADDR16_HIGH
+#undef R_PPC64_ADDR16_HIGHA
+#undef R_PPC64_TPREL16_HIGH
+#undef R_PPC64_TPREL16_HIGHA
+#undef R_PPC64_DTPREL16_HIGH
+#undef R_PPC64_DTPREL16_HIGHA
+#undef R_PPC64_IRELATIVE
 #undef R_PPC64_REL16
 #undef R_PPC64_REL16_LO
 #undef R_PPC64_REL16_HI
@@ -175,6 +182,13 @@
 ELF_RELOC(R_PPC64_DTPREL16_HIGHESTA,    106)
 ELF_RELOC(R_PPC64_TLSGD,                107)
 ELF_RELOC(R_PPC64_TLSLD,                108)
+ELF_RELOC(R_PPC64_ADDR16_HIGH,          110)
+ELF_RELOC(R_PPC64_ADDR16_HIGHA,         111)
+ELF_RELOC(R_PPC64_TPREL16_HIGH,         112)
+ELF_RELOC(R_PPC64_TPREL16_HIGHA,        113)
+ELF_RELOC(R_PPC64_DTPREL16_HIGH,        114)
+ELF_RELOC(R_PPC64_DTPREL16_HIGHA,       115)
+ELF_RELOC(R_PPC64_IRELATIVE,            248)
 ELF_RELOC(R_PPC64_REL16,                249)
 ELF_RELOC(R_PPC64_REL16_LO,             250)
 ELF_RELOC(R_PPC64_REL16_HI,             251)
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/ELFRelocs/WebAssembly.def b/linux-x64/clang/include/llvm/BinaryFormat/ELFRelocs/WebAssembly.def
deleted file mode 100644
index 9a34349..0000000
--- a/linux-x64/clang/include/llvm/BinaryFormat/ELFRelocs/WebAssembly.def
+++ /dev/null
@@ -1,8 +0,0 @@
-
-#ifndef ELF_RELOC
-#error "ELF_RELOC must be defined"
-#endif
-
-ELF_RELOC(R_WEBASSEMBLY_NONE,          0)
-ELF_RELOC(R_WEBASSEMBLY_DATA,          1)
-ELF_RELOC(R_WEBASSEMBLY_FUNCTION,      2)
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/MachO.h b/linux-x64/clang/include/llvm/BinaryFormat/MachO.h
index 060fbe1..c5294c7 100644
--- a/linux-x64/clang/include/llvm/BinaryFormat/MachO.h
+++ b/linux-x64/clang/include/llvm/BinaryFormat/MachO.h
@@ -1973,9 +1973,11 @@
 // Define a union of all load command structs
 #define LOAD_COMMAND_STRUCT(LCStruct) LCStruct LCStruct##_data;
 
-union macho_load_command {
+LLVM_PACKED_START
+union alignas(4) macho_load_command {
 #include "llvm/BinaryFormat/MachO.def"
 };
+LLVM_PACKED_END
 
 } // end namespace MachO
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/Magic.h b/linux-x64/clang/include/llvm/BinaryFormat/Magic.h
index 4ac826e..04801f8 100644
--- a/linux-x64/clang/include/llvm/BinaryFormat/Magic.h
+++ b/linux-x64/clang/include/llvm/BinaryFormat/Magic.h
@@ -59,10 +59,10 @@
   Impl V = unknown;
 };
 
-/// @brief Identify the type of a binary file based on how magical it is.
+/// Identify the type of a binary file based on how magical it is.
 file_magic identify_magic(StringRef magic);
 
-/// @brief Get and identify \a path's type based on its content.
+/// Get and identify \a path's type based on its content.
 ///
 /// @param path Input path.
 /// @param result Set to the type of file, or file_magic::unknown.
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/Wasm.h b/linux-x64/clang/include/llvm/BinaryFormat/Wasm.h
index 91b217f..fa5448d 100644
--- a/linux-x64/clang/include/llvm/BinaryFormat/Wasm.h
+++ b/linux-x64/clang/include/llvm/BinaryFormat/Wasm.h
@@ -24,6 +24,8 @@
 const char WasmMagic[] = {'\0', 'a', 's', 'm'};
 // Wasm binary format version
 const uint32_t WasmVersion = 0x1;
+// Wasm linking metadata version
+const uint32_t WasmMetadataVersion = 0x1;
 // Wasm uses a 64k page size
 const uint32_t WasmPageSize = 65536;
 
@@ -74,7 +76,7 @@
   uint32_t Index;
   WasmGlobalType Type;
   WasmInitExpr InitExpr;
-  StringRef Name; // from the "linking" or "names" section
+  StringRef SymbolName; // from the "linking" section
 };
 
 struct WasmImport {
@@ -100,7 +102,9 @@
   ArrayRef<uint8_t> Body;
   uint32_t CodeSectionOffset;
   uint32_t Size;
-  StringRef Name; // from the "linking" or "names" section
+  uint32_t CodeOffset;  // start of Locals and Body
+  StringRef SymbolName; // from the "linking" section
+  StringRef DebugName; // from the "name" section
   uint32_t Comdat; // from the "comdat info" section
 };
 
@@ -108,7 +112,7 @@
   uint32_t MemoryIndex;
   WasmInitExpr Offset;
   ArrayRef<uint8_t> Content;
-  StringRef Name;
+  StringRef Name; // from the "segment info" section
   uint32_t Alignment;
   uint32_t Flags;
   uint32_t Comdat; // from the "comdat info" section
@@ -144,8 +148,9 @@
   StringRef Name;
   uint8_t Kind;
   uint32_t Flags;
+  StringRef Module; // For undefined symbols the module name of the import
   union {
-    // For function or global symbols, the index in function of global index
+    // For function or global symbols, the index in function or global index
     // space.
     uint32_t ElementIndex;
     // For a data symbols, the address of the data relative to segment.
@@ -159,6 +164,7 @@
 };
 
 struct WasmLinkingData {
+  uint32_t Version;
   std::vector<WasmInitFunc> InitFunctions;
   std::vector<StringRef> Comdats;
   std::vector<WasmSymbolInfo> SymbolTable;
@@ -245,8 +251,9 @@
 // Kind codes used in the custom "linking" section in the WASM_SYMBOL_TABLE
 enum WasmSymbolType : unsigned {
   WASM_SYMBOL_TYPE_FUNCTION = 0x0,
-  WASM_SYMBOL_TYPE_DATA     = 0x1,
-  WASM_SYMBOL_TYPE_GLOBAL   = 0x2,
+  WASM_SYMBOL_TYPE_DATA = 0x1,
+  WASM_SYMBOL_TYPE_GLOBAL = 0x2,
+  WASM_SYMBOL_TYPE_SECTION = 0x3,
 };
 
 const unsigned WASM_SYMBOL_BINDING_MASK       = 0x3;
@@ -284,6 +291,9 @@
   return !(LHS == RHS);
 }
 
+std::string toString(wasm::WasmSymbolType type);
+std::string relocTypetoString(uint32_t type);
+
 } // end namespace wasm
 } // end namespace llvm
 
diff --git a/linux-x64/clang/include/llvm/BinaryFormat/WasmRelocs.def b/linux-x64/clang/include/llvm/BinaryFormat/WasmRelocs.def
index d6f0e42..8ffd51e 100644
--- a/linux-x64/clang/include/llvm/BinaryFormat/WasmRelocs.def
+++ b/linux-x64/clang/include/llvm/BinaryFormat/WasmRelocs.def
@@ -11,3 +11,5 @@
 WASM_RELOC(R_WEBASSEMBLY_MEMORY_ADDR_I32,      5)
 WASM_RELOC(R_WEBASSEMBLY_TYPE_INDEX_LEB,       6)
 WASM_RELOC(R_WEBASSEMBLY_GLOBAL_INDEX_LEB,     7)
+WASM_RELOC(R_WEBASSEMBLY_FUNCTION_OFFSET_I32,  8)
+WASM_RELOC(R_WEBASSEMBLY_SECTION_OFFSET_I32,   9)
diff --git a/linux-x64/clang/include/llvm/Bitcode/BitcodeWriter.h b/linux-x64/clang/include/llvm/Bitcode/BitcodeWriter.h
index fa32295..0010cf6 100644
--- a/linux-x64/clang/include/llvm/Bitcode/BitcodeWriter.h
+++ b/linux-x64/clang/include/llvm/Bitcode/BitcodeWriter.h
@@ -105,7 +105,7 @@
         const std::map<std::string, GVSummaryMapTy> *ModuleToSummariesForIndex);
   };
 
-  /// \brief Write the specified module to the specified raw output stream.
+  /// Write the specified module to the specified raw output stream.
   ///
   /// For streams where it matters, the given stream should be in "binary"
   /// mode.
diff --git a/linux-x64/clang/include/llvm/Bitcode/BitcodeWriterPass.h b/linux-x64/clang/include/llvm/Bitcode/BitcodeWriterPass.h
index 9ac6fba..05044c9 100644
--- a/linux-x64/clang/include/llvm/Bitcode/BitcodeWriterPass.h
+++ b/linux-x64/clang/include/llvm/Bitcode/BitcodeWriterPass.h
@@ -21,9 +21,10 @@
 namespace llvm {
 class Module;
 class ModulePass;
+class Pass;
 class raw_ostream;
 
-/// \brief Create and return a pass that writes the module to the specified
+/// Create and return a pass that writes the module to the specified
 /// ostream. Note that this pass is designed for use with the legacy pass
 /// manager.
 ///
@@ -40,7 +41,10 @@
                                     bool EmitSummaryIndex = false,
                                     bool EmitModuleHash = false);
 
-/// \brief Pass for writing a module of IR out to a bitcode file.
+/// Check whether a pass is a BitcodeWriterPass.
+bool isBitcodeWriterPass(Pass *P);
+
+/// Pass for writing a module of IR out to a bitcode file.
 ///
 /// Note that this is intended for use with the new pass manager. To construct
 /// a pass for the legacy pass manager, use the function above.
@@ -51,7 +55,7 @@
   bool EmitModuleHash;
 
 public:
-  /// \brief Construct a bitcode writer pass around a particular output stream.
+  /// Construct a bitcode writer pass around a particular output stream.
   ///
   /// If \c ShouldPreserveUseListOrder, encode use-list order so it can be
   /// reproduced when deserialized.
@@ -65,7 +69,7 @@
       : OS(OS), ShouldPreserveUseListOrder(ShouldPreserveUseListOrder),
   EmitSummaryIndex(EmitSummaryIndex), EmitModuleHash(EmitModuleHash) {}
 
-  /// \brief Run the bitcode writer pass, and output the module to the selected
+  /// Run the bitcode writer pass, and output the module to the selected
   /// output stream.
   PreservedAnalyses run(Module &M, ModuleAnalysisManager &);
 };
diff --git a/linux-x64/clang/include/llvm/Bitcode/BitstreamReader.h b/linux-x64/clang/include/llvm/Bitcode/BitstreamReader.h
index b484fa2..72e7619 100644
--- a/linux-x64/clang/include/llvm/Bitcode/BitstreamReader.h
+++ b/linux-x64/clang/include/llvm/Bitcode/BitstreamReader.h
@@ -429,7 +429,7 @@
     // don't care what code widths are used inside of it.
     ReadVBR(bitc::CodeLenWidth);
     SkipToFourByteBoundary();
-    unsigned NumFourBytes = Read(bitc::BlockSizeWidth);
+    size_t NumFourBytes = Read(bitc::BlockSizeWidth);
 
     // Check that the block wasn't partially defined, and that the offset isn't
     // bogus.
diff --git a/linux-x64/clang/include/llvm/Bitcode/BitstreamWriter.h b/linux-x64/clang/include/llvm/Bitcode/BitstreamWriter.h
index e276db5..c854769 100644
--- a/linux-x64/clang/include/llvm/Bitcode/BitstreamWriter.h
+++ b/linux-x64/clang/include/llvm/Bitcode/BitstreamWriter.h
@@ -90,10 +90,10 @@
     assert(BlockScope.empty() && CurAbbrevs.empty() && "Block imbalance");
   }
 
-  /// \brief Retrieve the current position in the stream, in bits.
+  /// Retrieve the current position in the stream, in bits.
   uint64_t GetCurrentBitNo() const { return GetBufferOffset() * 8 + CurBit; }
 
-  /// \brief Retrieve the number of bits currently used to encode an abbrev ID.
+  /// Retrieve the number of bits currently used to encode an abbrev ID.
   unsigned GetAbbrevIDWidth() const { return CurCodeSize; }
 
   //===--------------------------------------------------------------------===//
diff --git a/linux-x64/clang/include/llvm/Bitcode/LLVMBitCodes.h b/linux-x64/clang/include/llvm/Bitcode/LLVMBitCodes.h
index f3500e1..6723cf4 100644
--- a/linux-x64/clang/include/llvm/Bitcode/LLVMBitCodes.h
+++ b/linux-x64/clang/include/llvm/Bitcode/LLVMBitCodes.h
@@ -310,6 +310,7 @@
   METADATA_GLOBAL_VAR_EXPR = 37,        // [distinct, var, expr]
   METADATA_INDEX_OFFSET = 38,           // [offset]
   METADATA_INDEX = 39,                  // [bitpos]
+  METADATA_LABEL = 40,                  // [distinct, scope, name, file, line]
 };
 
 // The constants block (CONSTANTS_BLOCK_ID) describes emission for each
@@ -589,6 +590,7 @@
   ATTR_KIND_SANITIZE_HWADDRESS = 55,
   ATTR_KIND_NOCF_CHECK = 56,
   ATTR_KIND_OPT_FOR_FUZZING = 57,
+  ATTR_KIND_SHADOWCALLSTACK = 58,
 };
 
 enum ComdatSelectionKindCodes {
diff --git a/linux-x64/clang/include/llvm/CodeGen/AccelTable.h b/linux-x64/clang/include/llvm/CodeGen/AccelTable.h
index ec850a8..1392858 100644
--- a/linux-x64/clang/include/llvm/CodeGen/AccelTable.h
+++ b/linux-x64/clang/include/llvm/CodeGen/AccelTable.h
@@ -108,6 +108,8 @@
 namespace llvm {
 
 class AsmPrinter;
+class DwarfCompileUnit;
+class DwarfDebug;
 
 /// Interface which the different types of accelerator table data have to
 /// conform. It serves as a base class for different values of the template
@@ -120,8 +122,8 @@
     return order() < Other.order();
   }
 
-  // Subclasses should implement:
-  // static uint32_t hash(StringRef Name);
+    // Subclasses should implement:
+    // static uint32_t hash(StringRef Name);
 
 #ifndef NDEBUG
   virtual void print(raw_ostream &OS) const = 0;
@@ -244,6 +246,54 @@
   static uint32_t hash(StringRef Buffer) { return djbHash(Buffer); }
 };
 
+/// The Data class implementation for DWARF v5 accelerator table. Unlike the
+/// Apple Data classes, this class is just a DIE wrapper, and does not know to
+/// serialize itself. The complete serialization logic is in the
+/// emitDWARF5AccelTable function.
+class DWARF5AccelTableData : public AccelTableData {
+public:
+  static uint32_t hash(StringRef Name) { return caseFoldingDjbHash(Name); }
+
+  DWARF5AccelTableData(const DIE &Die) : Die(Die) {}
+
+#ifndef NDEBUG
+  void print(raw_ostream &OS) const override;
+#endif
+
+  const DIE &getDie() const { return Die; }
+  uint64_t getDieOffset() const { return Die.getOffset(); }
+  unsigned getDieTag() const { return Die.getTag(); }
+
+protected:
+  const DIE &Die;
+
+  uint64_t order() const override { return Die.getOffset(); }
+};
+
+class DWARF5AccelTableStaticData : public AccelTableData {
+public:
+  static uint32_t hash(StringRef Name) { return caseFoldingDjbHash(Name); }
+
+  DWARF5AccelTableStaticData(uint64_t DieOffset, unsigned DieTag,
+                             unsigned CUIndex)
+      : DieOffset(DieOffset), DieTag(DieTag), CUIndex(CUIndex) {}
+
+#ifndef NDEBUG
+  void print(raw_ostream &OS) const override;
+#endif
+
+  uint64_t getDieOffset() const { return DieOffset; }
+  unsigned getDieTag() const { return DieTag; }
+  unsigned getCUIndex() const { return CUIndex; }
+
+protected:
+  uint64_t DieOffset;
+  unsigned DieTag;
+  unsigned CUIndex;
+
+  uint64_t order() const override { return DieOffset; }
+};
+
 void emitAppleAccelTableImpl(AsmPrinter *Asm, AccelTableBase &Contents,
                              StringRef Prefix, const MCSymbol *SecBegin,
                              ArrayRef<AppleAccelTableData::Atom> Atoms);
@@ -258,11 +308,22 @@
   emitAppleAccelTableImpl(Asm, Contents, Prefix, SecBegin, DataT::Atoms);
 }
 
+void emitDWARF5AccelTable(AsmPrinter *Asm,
+                          AccelTable<DWARF5AccelTableData> &Contents,
+                          const DwarfDebug &DD,
+                          ArrayRef<std::unique_ptr<DwarfCompileUnit>> CUs);
+
+void emitDWARF5AccelTable(
+    AsmPrinter *Asm, AccelTable<DWARF5AccelTableStaticData> &Contents,
+    ArrayRef<MCSymbol *> CUs,
+    llvm::function_ref<unsigned(const DWARF5AccelTableStaticData &)>
+        getCUIndexForEntry);
+
 /// Accelerator table data implementation for simple Apple accelerator tables
 /// with just a DIE reference.
 class AppleAccelTableOffsetData : public AppleAccelTableData {
 public:
-  AppleAccelTableOffsetData(const DIE *D) : Die(D) {}
+  AppleAccelTableOffsetData(const DIE &D) : Die(D) {}
 
   void emit(AsmPrinter *Asm) const override;
 
@@ -279,15 +340,15 @@
   void print(raw_ostream &OS) const override;
 #endif
 protected:
-  uint64_t order() const override { return Die->getOffset(); }
+  uint64_t order() const override { return Die.getOffset(); }
 
-  const DIE *Die;
+  const DIE &Die;
 };
 
 /// Accelerator table data implementation for Apple type accelerator tables.
 class AppleAccelTableTypeData : public AppleAccelTableOffsetData {
 public:
-  AppleAccelTableTypeData(const DIE *D) : AppleAccelTableOffsetData(D) {}
+  AppleAccelTableTypeData(const DIE &D) : AppleAccelTableOffsetData(D) {}
 
   void emit(AsmPrinter *Asm) const override;
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/Analysis.h b/linux-x64/clang/include/llvm/CodeGen/Analysis.h
index ba88f1f..d77aee6 100644
--- a/linux-x64/clang/include/llvm/CodeGen/Analysis.h
+++ b/linux-x64/clang/include/llvm/CodeGen/Analysis.h
@@ -36,7 +36,7 @@
 class SelectionDAG;
 struct EVT;
 
-/// \brief Compute the linearized index of a member in a nested
+/// Compute the linearized index of a member in a nested
 /// aggregate/struct/array.
 ///
 /// Given an LLVM IR aggregate type and a sequence of insertvalue or
@@ -124,7 +124,7 @@
                                      const TargetLoweringBase &TLI);
 
 DenseMap<const MachineBasicBlock *, int>
-getFuncletMembership(const MachineFunction &MF);
+getEHScopeMembership(const MachineFunction &MF);
 
 } // End llvm namespace
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/AsmPrinter.h b/linux-x64/clang/include/llvm/CodeGen/AsmPrinter.h
index 3d3bd3a..b605638 100644
--- a/linux-x64/clang/include/llvm/CodeGen/AsmPrinter.h
+++ b/linux-x64/clang/include/llvm/CodeGen/AsmPrinter.h
@@ -50,6 +50,7 @@
 class GlobalVariable;
 class MachineBasicBlock;
 class MachineConstantPoolValue;
+class MachineDominatorTree;
 class MachineFunction;
 class MachineInstr;
 class MachineJumpTableInfo;
@@ -92,11 +93,17 @@
   std::unique_ptr<MCStreamer> OutStreamer;
 
   /// The current machine function.
-  const MachineFunction *MF = nullptr;
+  MachineFunction *MF = nullptr;
 
   /// This is a pointer to the current MachineModuleInfo.
   MachineModuleInfo *MMI = nullptr;
 
+  /// This is a pointer to the current MachineLoopInfo.
+  MachineDominatorTree *MDT = nullptr;
+
+  /// This is a pointer to the current MachineLoopInfo.
+  MachineLoopInfo *MLI = nullptr;
+
   /// Optimization remark emitter.
   MachineOptimizationRemarkEmitter *ORE;
 
@@ -130,9 +137,6 @@
 
   static char ID;
 
-  /// If VerboseAsm is set, a pointer to the loop info for this function.
-  MachineLoopInfo *LI = nullptr;
-
   struct HandlerInfo {
     AsmPrinterHandler *Handler;
     const char *TimerName;
@@ -161,6 +165,12 @@
   };
 
 private:
+  /// If generated on the fly this own the instance.
+  std::unique_ptr<MachineDominatorTree> OwnedMDT;
+
+  /// If generated on the fly this own the instance.
+  std::unique_ptr<MachineLoopInfo> OwnedMLI;
+
   /// Structure for generating diagnostics for inline assembly. Only initialised
   /// when necessary.
   mutable std::unique_ptr<SrcMgrDiagInfo> DiagInfo;
@@ -191,6 +201,10 @@
   /// Return a unique ID for the current function.
   unsigned getFunctionNumber() const;
 
+  /// Return symbol for the function pseudo stack if the stack frame is not a
+  /// register based.
+  virtual const MCSymbol *getFunctionFrameSymbol() const { return nullptr; }
+
   MCSymbol *getFunctionBegin() const { return CurrentFnBegin; }
   MCSymbol *getFunctionEnd() const { return CurrentFnEnd; }
   MCSymbol *getCurExceptionSym();
@@ -228,6 +242,7 @@
     TAIL_CALL = 2,
     LOG_ARGS_ENTER = 3,
     CUSTOM_EVENT = 4,
+    TYPED_EVENT = 5,
   };
 
   // The table will contain these structs that point to the sled, the function
@@ -327,15 +342,15 @@
   /// global value is specified, and if that global has an explicit alignment
   /// requested, it will override the alignment request if required for
   /// correctness.
-  void EmitAlignment(unsigned NumBits, const GlobalObject *GO = nullptr) const;
+  void EmitAlignment(unsigned NumBits, const GlobalObject *GV = nullptr) const;
 
   /// Lower the specified LLVM Constant to an MCExpr.
   virtual const MCExpr *lowerConstant(const Constant *CV);
 
-  /// \brief Print a general LLVM constant to the .s file.
+  /// Print a general LLVM constant to the .s file.
   void EmitGlobalConstant(const DataLayout &DL, const Constant *CV);
 
-  /// \brief Unnamed constant global variables solely contaning a pointer to
+  /// Unnamed constant global variables solely contaning a pointer to
   /// another globals variable act like a global variable "proxy", or GOT
   /// equivalents, i.e., it's only used to hold the address of the latter. One
   /// optimization is to replace accesses to these proxies by using the GOT
@@ -345,7 +360,7 @@
   /// accesses to GOT entries.
   void computeGlobalGOTEquivs(Module &M);
 
-  /// \brief Constant expressions using GOT equivalent globals may not be
+  /// Constant expressions using GOT equivalent globals may not be
   /// eligible for PC relative GOT entry conversion, in such cases we need to
   /// emit the proxies we previously omitted in EmitGlobalVariable.
   void emitGlobalGOTEquivs();
@@ -452,6 +467,9 @@
   /// Emit a long directive and value.
   void emitInt32(int Value) const;
 
+  /// Emit a long long directive and value.
+  void emitInt64(uint64_t Value) const;
+
   /// Emit something like ".long Hi-Lo" where the size in bytes of the directive
   /// is specified by Size and Hi/Lo specify the labels.  This implicitly uses
   /// .set if it is available.
@@ -530,10 +548,10 @@
   // Dwarf Lowering Routines
   //===------------------------------------------------------------------===//
 
-  /// \brief Emit frame instruction to describe the layout of the frame.
+  /// Emit frame instruction to describe the layout of the frame.
   void emitCFIInstruction(const MCCFIInstruction &Inst) const;
 
-  /// \brief Emit Dwarf abbreviation table.
+  /// Emit Dwarf abbreviation table.
   template <typename T> void emitDwarfAbbrevs(const T &Abbrevs) const {
     // For each abbreviation.
     for (const auto &Abbrev : Abbrevs)
@@ -545,7 +563,7 @@
 
   void emitDwarfAbbrev(const DIEAbbrev &Abbrev) const;
 
-  /// \brief Recursively emit Dwarf DIE tree.
+  /// Recursively emit Dwarf DIE tree.
   void emitDwarfDIE(const DIE &Die) const;
 
   //===------------------------------------------------------------------===//
@@ -632,10 +650,9 @@
   void EmitXXStructorList(const DataLayout &DL, const Constant *List,
                           bool isCtor);
 
-  GCMetadataPrinter *GetOrCreateGCPrinter(GCStrategy &C);
+  GCMetadataPrinter *GetOrCreateGCPrinter(GCStrategy &S);
   /// Emit GlobalAlias or GlobalIFunc.
-  void emitGlobalIndirectSymbol(Module &M,
-                                const GlobalIndirectSymbol& GIS);
+  void emitGlobalIndirectSymbol(Module &M, const GlobalIndirectSymbol &GIS);
   void setupCodePaddingContext(const MachineBasicBlock &MBB,
                                MCCodePaddingContext &Context) const;
 };
diff --git a/linux-x64/clang/include/llvm/CodeGen/AtomicExpandUtils.h b/linux-x64/clang/include/llvm/CodeGen/AtomicExpandUtils.h
index 1f9c96b..b1adf66 100644
--- a/linux-x64/clang/include/llvm/CodeGen/AtomicExpandUtils.h
+++ b/linux-x64/clang/include/llvm/CodeGen/AtomicExpandUtils.h
@@ -26,7 +26,7 @@
     function_ref<void(IRBuilder<> &, Value *, Value *, Value *, AtomicOrdering,
                       Value *&, Value *&)>;
 
-/// \brief Expand an atomic RMW instruction into a loop utilizing
+/// Expand an atomic RMW instruction into a loop utilizing
 /// cmpxchg. You'll want to make sure your target machine likes cmpxchg
 /// instructions in the first place and that there isn't another, better,
 /// transformation available (for example AArch32/AArch64 have linked loads).
@@ -58,7 +58,7 @@
 ///     [...]
 ///
 /// Returns true if the containing function was modified.
-bool expandAtomicRMWToCmpXchg(AtomicRMWInst *AI, CreateCmpXchgInstFun Factory);
+bool expandAtomicRMWToCmpXchg(AtomicRMWInst *AI, CreateCmpXchgInstFun CreateCmpXchg);
 
 } // end namespace llvm
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/BasicTTIImpl.h b/linux-x64/clang/include/llvm/CodeGen/BasicTTIImpl.h
index 9096263..f76a242 100644
--- a/linux-x64/clang/include/llvm/CodeGen/BasicTTIImpl.h
+++ b/linux-x64/clang/include/llvm/CodeGen/BasicTTIImpl.h
@@ -65,7 +65,7 @@
 
 extern cl::opt<unsigned> PartialUnrollingThreshold;
 
-/// \brief Base class which can be used to help build a TTI implementation.
+/// Base class which can be used to help build a TTI implementation.
 ///
 /// This class provides as much implementation of the TTI interface as is
 /// possible using the target independent parts of the code generator.
@@ -101,12 +101,12 @@
     return Cost;
   }
 
-  /// \brief Local query method delegates up to T which *must* implement this!
+  /// Local query method delegates up to T which *must* implement this!
   const TargetSubtargetInfo *getST() const {
     return static_cast<const T *>(this)->getST();
   }
 
-  /// \brief Local query method delegates up to T which *must* implement this!
+  /// Local query method delegates up to T which *must* implement this!
   const TargetLoweringBase *getTLI() const {
     return static_cast<const T *>(this)->getTLI();
   }
@@ -553,11 +553,15 @@
 
   unsigned getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index,
                           Type *SubTp) {
-    if (Kind == TTI::SK_Alternate || Kind == TTI::SK_PermuteTwoSrc ||
-        Kind == TTI::SK_PermuteSingleSrc) {
+    switch (Kind) {
+    case TTI::SK_Select:
+    case TTI::SK_Transpose:
+    case TTI::SK_PermuteSingleSrc:
+    case TTI::SK_PermuteTwoSrc:
       return getPermuteShuffleOverhead(Tp);
+    default:
+      return 1;
     }
-    return 1;
   }
 
   unsigned getCastInstrCost(unsigned Opcode, Type *Dst, Type *Src,
@@ -1200,7 +1204,7 @@
     return SingleCallCost;
   }
 
-  /// \brief Compute a cost of the given call instruction.
+  /// Compute a cost of the given call instruction.
   ///
   /// Compute the cost of calling function F with return type RetTy and
   /// argument types Tys. F might be nullptr, in this case the cost of an
@@ -1361,7 +1365,7 @@
   /// @}
 };
 
-/// \brief Concrete BasicTTIImpl that can be used if no further customization
+/// Concrete BasicTTIImpl that can be used if no further customization
 /// is needed.
 class BasicTTIImpl : public BasicTTIImplBase<BasicTTIImpl> {
   using BaseT = BasicTTIImplBase<BasicTTIImpl>;
@@ -1375,7 +1379,7 @@
   const TargetLoweringBase *getTLI() const { return TLI; }
 
 public:
-  explicit BasicTTIImpl(const TargetMachine *ST, const Function &F);
+  explicit BasicTTIImpl(const TargetMachine *TM, const Function &F);
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/CodeGen/CalcSpillWeights.h b/linux-x64/clang/include/llvm/CodeGen/CalcSpillWeights.h
index d9e8206..f85767f 100644
--- a/linux-x64/clang/include/llvm/CodeGen/CalcSpillWeights.h
+++ b/linux-x64/clang/include/llvm/CodeGen/CalcSpillWeights.h
@@ -22,7 +22,7 @@
 class MachineLoopInfo;
 class VirtRegMap;
 
-  /// \brief Normalize the spill weight of a live interval
+  /// Normalize the spill weight of a live interval
   ///
   /// The spill weight of a live interval is computed as:
   ///
@@ -42,7 +42,7 @@
     return UseDefFreq / (Size + 25*SlotIndex::InstrDist);
   }
 
-  /// \brief Calculate auxiliary information for a virtual register such as its
+  /// Calculate auxiliary information for a virtual register such as its
   /// spill weight and allocation hint.
   class VirtRegAuxInfo {
   public:
@@ -64,10 +64,10 @@
                    NormalizingFn norm = normalizeSpillWeight)
         : MF(mf), LIS(lis), VRM(vrm), Loops(loops), MBFI(mbfi), normalize(norm) {}
 
-    /// \brief (re)compute li's spill weight and allocation hint.
+    /// (re)compute li's spill weight and allocation hint.
     void calculateSpillWeightAndHint(LiveInterval &li);
 
-    /// \brief Compute future expected spill weight of a split artifact of li
+    /// Compute future expected spill weight of a split artifact of li
     /// that will span between start and end slot indexes.
     /// \param li     The live interval to be split.
     /// \param start  The expected begining of the split artifact. Instructions
@@ -78,7 +78,7 @@
     /// negative weight for unspillable li.
     float futureWeight(LiveInterval &li, SlotIndex start, SlotIndex end);
 
-    /// \brief Helper function for weight calculations.
+    /// Helper function for weight calculations.
     /// (Re)compute li's spill weight and allocation hint, or, for non null
     /// start and end - compute future expected spill weight of a split
     /// artifact of li that will span between start and end slot indexes.
@@ -94,7 +94,7 @@
                            SlotIndex *end = nullptr);
   };
 
-  /// \brief Compute spill weights and allocation hints for all virtual register
+  /// Compute spill weights and allocation hints for all virtual register
   /// live intervals.
   void calculateSpillWeightsAndHints(LiveIntervals &LIS, MachineFunction &MF,
                                      VirtRegMap *VRM,
diff --git a/linux-x64/clang/include/llvm/CodeGen/CallingConvLower.h b/linux-x64/clang/include/llvm/CodeGen/CallingConvLower.h
index d30a273..efcf80b 100644
--- a/linux-x64/clang/include/llvm/CodeGen/CallingConvLower.h
+++ b/linux-x64/clang/include/llvm/CodeGen/CallingConvLower.h
@@ -304,7 +304,7 @@
   /// CheckReturn - Analyze the return values of a function, returning
   /// true if the return can be performed without sret-demotion, and
   /// false otherwise.
-  bool CheckReturn(const SmallVectorImpl<ISD::OutputArg> &ArgsFlags,
+  bool CheckReturn(const SmallVectorImpl<ISD::OutputArg> &Outs,
                    CCAssignFn Fn);
 
   /// AnalyzeCallOperands - Analyze the outgoing arguments to a call,
diff --git a/linux-x64/clang/include/llvm/CodeGen/CommandFlags.def b/linux-x64/clang/include/llvm/CodeGen/CommandFlags.inc
similarity index 97%
rename from linux-x64/clang/include/llvm/CodeGen/CommandFlags.def
rename to linux-x64/clang/include/llvm/CodeGen/CommandFlags.inc
index 3708c04..7d2d167 100644
--- a/linux-x64/clang/include/llvm/CodeGen/CommandFlags.def
+++ b/linux-x64/clang/include/llvm/CodeGen/CommandFlags.inc
@@ -17,7 +17,7 @@
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/Intrinsics.h"
 #include "llvm/IR/Module.h"
-#include "llvm/MC/MCTargetOptionsCommandFlags.def"
+#include "llvm/MC/MCTargetOptionsCommandFlags.inc"
 #include "llvm/MC/SubtargetFeature.h"
 #include "llvm/Support/CodeGen.h"
 #include "llvm/Support/CommandLine.h"
@@ -261,6 +261,10 @@
     "stack-size-section",
     cl::desc("Emit a section containing stack size metadata"), cl::init(false));
 
+static cl::opt<bool>
+    EnableAddrsig("addrsig", cl::desc("Emit an address-significance table"),
+                  cl::init(false));
+
 // Common utility function tightly tied to the options listed here. Initializes
 // a TargetOptions object with CodeGen flags and returns it.
 static TargetOptions InitTargetOptionsFromCodeGenFlags() {
@@ -289,6 +293,7 @@
   Options.ExplicitEmulatedTLS = EmulatedTLS.getNumOccurrences() > 0;
   Options.ExceptionModel = ExceptionModel;
   Options.EmitStackSizeSection = EnableStackSizeSection;
+  Options.EmitAddrsig = EnableAddrsig;
 
   Options.MCOptions = InitMCTargetOptionsFromFlags();
 
@@ -349,7 +354,7 @@
   return Features.getFeatures();
 }
 
-/// \brief Set function attributes of functions in Module M based on CPU,
+/// Set function attributes of functions in Module M based on CPU,
 /// Features, and command line flags.
 LLVM_ATTRIBUTE_UNUSED static void
 setFunctionAttributes(StringRef CPU, StringRef Features, Module &M) {
diff --git a/linux-x64/clang/include/llvm/CodeGen/CostTable.h b/linux-x64/clang/include/llvm/CodeGen/CostTable.h
index 0fc16d3..48ad769 100644
--- a/linux-x64/clang/include/llvm/CodeGen/CostTable.h
+++ b/linux-x64/clang/include/llvm/CodeGen/CostTable.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief Cost tables and simple lookup functions
+/// Cost tables and simple lookup functions
 ///
 //===----------------------------------------------------------------------===//
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/DIE.h b/linux-x64/clang/include/llvm/CodeGen/DIE.h
index f809fc9..7d486b1 100644
--- a/linux-x64/clang/include/llvm/CodeGen/DIE.h
+++ b/linux-x64/clang/include/llvm/CodeGen/DIE.h
@@ -136,7 +136,7 @@
   /// The bump allocator to use when creating DIEAbbrev objects in the uniqued
   /// storage container.
   BumpPtrAllocator &Alloc;
-  /// \brief FoldingSet that uniques the abbreviations.
+  /// FoldingSet that uniques the abbreviations.
   FoldingSet<DIEAbbrev> AbbreviationsSet;
   /// A list of all the unique abbreviations in use.
   std::vector<DIEAbbrev *> Abbreviations;
@@ -190,7 +190,7 @@
   uint64_t getValue() const { return Integer; }
   void setValue(uint64_t Val) { Integer = Val; }
 
-  void EmitValue(const AsmPrinter *AP, dwarf::Form Form) const;
+  void EmitValue(const AsmPrinter *Asm, dwarf::Form Form) const;
   unsigned SizeOf(const AsmPrinter *AP, dwarf::Form Form) const;
 
   void print(raw_ostream &O) const;
@@ -868,7 +868,7 @@
     return dwarf::DW_FORM_block;
   }
 
-  void EmitValue(const AsmPrinter *AP, dwarf::Form Form) const;
+  void EmitValue(const AsmPrinter *Asm, dwarf::Form Form) const;
   unsigned SizeOf(const AsmPrinter *AP, dwarf::Form Form) const;
 
   void print(raw_ostream &O) const;
@@ -899,7 +899,7 @@
     return dwarf::DW_FORM_block;
   }
 
-  void EmitValue(const AsmPrinter *AP, dwarf::Form Form) const;
+  void EmitValue(const AsmPrinter *Asm, dwarf::Form Form) const;
   unsigned SizeOf(const AsmPrinter *AP, dwarf::Form Form) const;
 
   void print(raw_ostream &O) const;
diff --git a/linux-x64/clang/include/llvm/CodeGen/DwarfStringPoolEntry.h b/linux-x64/clang/include/llvm/CodeGen/DwarfStringPoolEntry.h
index e6c0483..8b1a7af 100644
--- a/linux-x64/clang/include/llvm/CodeGen/DwarfStringPoolEntry.h
+++ b/linux-x64/clang/include/llvm/CodeGen/DwarfStringPoolEntry.h
@@ -10,6 +10,7 @@
 #ifndef LLVM_CODEGEN_DWARFSTRINGPOOLENTRY_H
 #define LLVM_CODEGEN_DWARFSTRINGPOOLENTRY_H
 
+#include "llvm/ADT/PointerIntPair.h"
 #include "llvm/ADT/StringMap.h"
 
 namespace llvm {
@@ -18,34 +19,52 @@
 
 /// Data for a string pool entry.
 struct DwarfStringPoolEntry {
+  static constexpr unsigned NotIndexed = -1;
+
   MCSymbol *Symbol;
   unsigned Offset;
   unsigned Index;
+
+  bool isIndexed() const { return Index != NotIndexed; }
 };
 
 /// String pool entry reference.
-struct DwarfStringPoolEntryRef {
-  const StringMapEntry<DwarfStringPoolEntry> *I = nullptr;
+class DwarfStringPoolEntryRef {
+  PointerIntPair<const StringMapEntry<DwarfStringPoolEntry> *, 1, bool>
+      MapEntryAndIndexed;
+
+  const StringMapEntry<DwarfStringPoolEntry> *getMapEntry() const {
+    return MapEntryAndIndexed.getPointer();
+  }
 
 public:
   DwarfStringPoolEntryRef() = default;
-  explicit DwarfStringPoolEntryRef(
-      const StringMapEntry<DwarfStringPoolEntry> &I)
-      : I(&I) {}
+  DwarfStringPoolEntryRef(const StringMapEntry<DwarfStringPoolEntry> &Entry,
+                          bool Indexed)
+      : MapEntryAndIndexed(&Entry, Indexed) {}
 
-  explicit operator bool() const { return I; }
+  explicit operator bool() const { return getMapEntry(); }
   MCSymbol *getSymbol() const {
-    assert(I->second.Symbol && "No symbol available!");
-    return I->second.Symbol;
+    assert(getMapEntry()->second.Symbol && "No symbol available!");
+    return getMapEntry()->second.Symbol;
   }
-  unsigned getOffset() const { return I->second.Offset; }
-  unsigned getIndex() const { return I->second.Index; }
-  StringRef getString() const { return I->first(); }
+  unsigned getOffset() const { return getMapEntry()->second.Offset; }
+  bool isIndexed() const { return MapEntryAndIndexed.getInt(); }
+  unsigned getIndex() const {
+    assert(isIndexed());
+    assert(getMapEntry()->getValue().isIndexed());
+    return getMapEntry()->second.Index;
+  }
+  StringRef getString() const { return getMapEntry()->first(); }
   /// Return the entire string pool entry for convenience.
-  DwarfStringPoolEntry getEntry() const { return I->getValue(); }
+  DwarfStringPoolEntry getEntry() const { return getMapEntry()->getValue(); }
 
-  bool operator==(const DwarfStringPoolEntryRef &X) const { return I == X.I; }
-  bool operator!=(const DwarfStringPoolEntryRef &X) const { return I != X.I; }
+  bool operator==(const DwarfStringPoolEntryRef &X) const {
+    return getMapEntry() == X.getMapEntry();
+  }
+  bool operator!=(const DwarfStringPoolEntryRef &X) const {
+    return getMapEntry() != X.getMapEntry();
+  }
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/CodeGen/FastISel.h b/linux-x64/clang/include/llvm/CodeGen/FastISel.h
index 772bd6c..865d8a8 100644
--- a/linux-x64/clang/include/llvm/CodeGen/FastISel.h
+++ b/linux-x64/clang/include/llvm/CodeGen/FastISel.h
@@ -61,7 +61,7 @@
 class User;
 class Value;
 
-/// \brief This is a fast-path instruction selection class that generates poor
+/// This is a fast-path instruction selection class that generates poor
 /// code and doesn't support illegal types or non-trivial lowering, but runs
 /// quickly.
 class FastISel {
@@ -78,7 +78,7 @@
     bool IsReturnValueUsed : 1;
     bool IsPatchPoint : 1;
 
-    // \brief IsTailCall Should be modified by implementations of FastLowerCall
+    // IsTailCall Should be modified by implementations of FastLowerCall
     // that perform tail call conversions.
     bool IsTailCall = false;
 
@@ -215,70 +215,74 @@
   const TargetLibraryInfo *LibInfo;
   bool SkipTargetIndependentISel;
 
-  /// \brief The position of the last instruction for materializing constants
+  /// The position of the last instruction for materializing constants
   /// for use in the current block. It resets to EmitStartPt when it makes sense
   /// (for example, it's usually profitable to avoid function calls between the
   /// definition and the use)
   MachineInstr *LastLocalValue;
 
-  /// \brief The top most instruction in the current block that is allowed for
+  /// The top most instruction in the current block that is allowed for
   /// emitting local variables. LastLocalValue resets to EmitStartPt when it
   /// makes sense (for example, on function calls)
   MachineInstr *EmitStartPt;
 
+  /// Last local value flush point. On a subsequent flush, no local value will
+  /// sink past this point.
+  MachineBasicBlock::iterator LastFlushPoint;
+
 public:
   virtual ~FastISel();
 
-  /// \brief Return the position of the last instruction emitted for
+  /// Return the position of the last instruction emitted for
   /// materializing constants for use in the current block.
   MachineInstr *getLastLocalValue() { return LastLocalValue; }
 
-  /// \brief Update the position of the last instruction emitted for
+  /// Update the position of the last instruction emitted for
   /// materializing constants for use in the current block.
   void setLastLocalValue(MachineInstr *I) {
     EmitStartPt = I;
     LastLocalValue = I;
   }
 
-  /// \brief Set the current block to which generated machine instructions will
+  /// Set the current block to which generated machine instructions will
   /// be appended.
   void startNewBlock();
 
   /// Flush the local value map and sink local values if possible.
   void finishBasicBlock();
 
-  /// \brief Return current debug location information.
+  /// Return current debug location information.
   DebugLoc getCurDebugLoc() const { return DbgLoc; }
 
-  /// \brief Do "fast" instruction selection for function arguments and append
+  /// Do "fast" instruction selection for function arguments and append
   /// the machine instructions to the current block. Returns true when
   /// successful.
   bool lowerArguments();
 
-  /// \brief Do "fast" instruction selection for the given LLVM IR instruction
+  /// Do "fast" instruction selection for the given LLVM IR instruction
   /// and append the generated machine instructions to the current block.
   /// Returns true if selection was successful.
   bool selectInstruction(const Instruction *I);
 
-  /// \brief Do "fast" instruction selection for the given LLVM IR operator
+  /// Do "fast" instruction selection for the given LLVM IR operator
   /// (Instruction or ConstantExpr), and append generated machine instructions
   /// to the current block. Return true if selection was successful.
   bool selectOperator(const User *I, unsigned Opcode);
 
-  /// \brief Create a virtual register and arrange for it to be assigned the
+  /// Create a virtual register and arrange for it to be assigned the
   /// value for the given LLVM value.
   unsigned getRegForValue(const Value *V);
 
-  /// \brief Look up the value to see if its value is already cached in a
+  /// Look up the value to see if its value is already cached in a
   /// register. It may be defined by instructions across blocks or defined
   /// locally.
   unsigned lookUpRegForValue(const Value *V);
 
-  /// \brief This is a wrapper around getRegForValue that also takes care of
+  /// This is a wrapper around getRegForValue that also takes care of
   /// truncating or sign-extending the given getelementptr index value.
-  std::pair<unsigned, bool> getRegForGEPIndex(const Value *V);
+  std::pair<unsigned, bool> getRegForGEPIndex(const Value *Idx);
 
-  /// \brief We're checking to see if we can fold \p LI into \p FoldInst. Note
+  /// We're checking to see if we can fold \p LI into \p FoldInst. Note
   /// that we could have a sequence where multiple LLVM IR instructions are
   /// folded into the same machineinstr.  For example we could have:
   ///
@@ -292,7 +296,7 @@
   /// If we succeed folding, return true.
   bool tryToFoldLoad(const LoadInst *LI, const Instruction *FoldInst);
 
-  /// \brief The specified machine instr operand is a vreg, and that vreg is
+  /// The specified machine instr operand is a vreg, and that vreg is
   /// being provided by the specified load instruction.  If possible, try to
   /// fold the load as an operand to the instruction, returning true if
   /// possible.
@@ -303,11 +307,11 @@
     return false;
   }
 
-  /// \brief Reset InsertPt to prepare for inserting instructions into the
+  /// Reset InsertPt to prepare for inserting instructions into the
   /// current block.
   void recomputeInsertPt();
 
-  /// \brief Remove all dead instructions between the I and E.
+  /// Remove all dead instructions between the I and E.
   void removeDeadCode(MachineBasicBlock::iterator I,
                       MachineBasicBlock::iterator E);
 
@@ -316,11 +320,11 @@
     DebugLoc DL;
   };
 
-  /// \brief Prepare InsertPt to begin inserting instructions into the local
+  /// Prepare InsertPt to begin inserting instructions into the local
   /// value area and return the old insert position.
   SavePoint enterLocalValueArea();
 
-  /// \brief Reset InsertPt to the given old insert position.
+  /// Reset InsertPt to the given old insert position.
   void leaveLocalValueArea(SavePoint Old);
 
 protected:
@@ -328,45 +332,45 @@
                     const TargetLibraryInfo *LibInfo,
                     bool SkipTargetIndependentISel = false);
 
-  /// \brief This method is called by target-independent code when the normal
+  /// This method is called by target-independent code when the normal
   /// FastISel process fails to select an instruction. This gives targets a
   /// chance to emit code for anything that doesn't fit into FastISel's
   /// framework. It returns true if it was successful.
   virtual bool fastSelectInstruction(const Instruction *I) = 0;
 
-  /// \brief This method is called by target-independent code to do target-
+  /// This method is called by target-independent code to do target-
   /// specific argument lowering. It returns true if it was successful.
   virtual bool fastLowerArguments();
 
-  /// \brief This method is called by target-independent code to do target-
+  /// This method is called by target-independent code to do target-
   /// specific call lowering. It returns true if it was successful.
   virtual bool fastLowerCall(CallLoweringInfo &CLI);
 
-  /// \brief This method is called by target-independent code to do target-
+  /// This method is called by target-independent code to do target-
   /// specific intrinsic lowering. It returns true if it was successful.
   virtual bool fastLowerIntrinsicCall(const IntrinsicInst *II);
 
-  /// \brief This method is called by target-independent code to request that an
+  /// This method is called by target-independent code to request that an
   /// instruction with the given type and opcode be emitted.
   virtual unsigned fastEmit_(MVT VT, MVT RetVT, unsigned Opcode);
 
-  /// \brief This method is called by target-independent code to request that an
+  /// This method is called by target-independent code to request that an
   /// instruction with the given type, opcode, and register operand be emitted.
   virtual unsigned fastEmit_r(MVT VT, MVT RetVT, unsigned Opcode, unsigned Op0,
                               bool Op0IsKill);
 
-  /// \brief This method is called by target-independent code to request that an
+  /// This method is called by target-independent code to request that an
   /// instruction with the given type, opcode, and register operands be emitted.
   virtual unsigned fastEmit_rr(MVT VT, MVT RetVT, unsigned Opcode, unsigned Op0,
                                bool Op0IsKill, unsigned Op1, bool Op1IsKill);
 
-  /// \brief This method is called by target-independent code to request that an
+  /// This method is called by target-independent code to request that an
   /// instruction with the given type, opcode, and register and immediate
   /// operands be emitted.
   virtual unsigned fastEmit_ri(MVT VT, MVT RetVT, unsigned Opcode, unsigned Op0,
                                bool Op0IsKill, uint64_t Imm);
 
-  /// \brief This method is a wrapper of fastEmit_ri.
+  /// This method is a wrapper of fastEmit_ri.
   ///
   /// It first tries to emit an instruction with an immediate operand using
   /// fastEmit_ri.  If that fails, it materializes the immediate into a register
@@ -374,89 +378,89 @@
   unsigned fastEmit_ri_(MVT VT, unsigned Opcode, unsigned Op0, bool Op0IsKill,
                         uint64_t Imm, MVT ImmType);
 
-  /// \brief This method is called by target-independent code to request that an
+  /// This method is called by target-independent code to request that an
   /// instruction with the given type, opcode, and immediate operand be emitted.
   virtual unsigned fastEmit_i(MVT VT, MVT RetVT, unsigned Opcode, uint64_t Imm);
 
-  /// \brief This method is called by target-independent code to request that an
+  /// This method is called by target-independent code to request that an
   /// instruction with the given type, opcode, and floating-point immediate
   /// operand be emitted.
   virtual unsigned fastEmit_f(MVT VT, MVT RetVT, unsigned Opcode,
                               const ConstantFP *FPImm);
 
-  /// \brief Emit a MachineInstr with no operands and a result register in the
+  /// Emit a MachineInstr with no operands and a result register in the
   /// given register class.
   unsigned fastEmitInst_(unsigned MachineInstOpcode,
                          const TargetRegisterClass *RC);
 
-  /// \brief Emit a MachineInstr with one register operand and a result register
+  /// Emit a MachineInstr with one register operand and a result register
   /// in the given register class.
   unsigned fastEmitInst_r(unsigned MachineInstOpcode,
                           const TargetRegisterClass *RC, unsigned Op0,
                           bool Op0IsKill);
 
-  /// \brief Emit a MachineInstr with two register operands and a result
+  /// Emit a MachineInstr with two register operands and a result
   /// register in the given register class.
   unsigned fastEmitInst_rr(unsigned MachineInstOpcode,
                            const TargetRegisterClass *RC, unsigned Op0,
                            bool Op0IsKill, unsigned Op1, bool Op1IsKill);
 
-  /// \brief Emit a MachineInstr with three register operands and a result
+  /// Emit a MachineInstr with three register operands and a result
   /// register in the given register class.
   unsigned fastEmitInst_rrr(unsigned MachineInstOpcode,
                             const TargetRegisterClass *RC, unsigned Op0,
                             bool Op0IsKill, unsigned Op1, bool Op1IsKill,
                             unsigned Op2, bool Op2IsKill);
 
-  /// \brief Emit a MachineInstr with a register operand, an immediate, and a
+  /// Emit a MachineInstr with a register operand, an immediate, and a
   /// result register in the given register class.
   unsigned fastEmitInst_ri(unsigned MachineInstOpcode,
                            const TargetRegisterClass *RC, unsigned Op0,
                            bool Op0IsKill, uint64_t Imm);
 
-  /// \brief Emit a MachineInstr with one register operand and two immediate
+  /// Emit a MachineInstr with one register operand and two immediate
   /// operands.
   unsigned fastEmitInst_rii(unsigned MachineInstOpcode,
                             const TargetRegisterClass *RC, unsigned Op0,
                             bool Op0IsKill, uint64_t Imm1, uint64_t Imm2);
 
-  /// \brief Emit a MachineInstr with a floating point immediate, and a result
+  /// Emit a MachineInstr with a floating point immediate, and a result
   /// register in the given register class.
   unsigned fastEmitInst_f(unsigned MachineInstOpcode,
                           const TargetRegisterClass *RC,
                           const ConstantFP *FPImm);
 
-  /// \brief Emit a MachineInstr with two register operands, an immediate, and a
+  /// Emit a MachineInstr with two register operands, an immediate, and a
   /// result register in the given register class.
   unsigned fastEmitInst_rri(unsigned MachineInstOpcode,
                             const TargetRegisterClass *RC, unsigned Op0,
                             bool Op0IsKill, unsigned Op1, bool Op1IsKill,
                             uint64_t Imm);
 
-  /// \brief Emit a MachineInstr with a single immediate operand, and a result
+  /// Emit a MachineInstr with a single immediate operand, and a result
   /// register in the given register class.
-  unsigned fastEmitInst_i(unsigned MachineInstrOpcode,
+  unsigned fastEmitInst_i(unsigned MachineInstOpcode,
                           const TargetRegisterClass *RC, uint64_t Imm);
 
-  /// \brief Emit a MachineInstr for an extract_subreg from a specified index of
+  /// Emit a MachineInstr for an extract_subreg from a specified index of
   /// a superregister to a specified type.
   unsigned fastEmitInst_extractsubreg(MVT RetVT, unsigned Op0, bool Op0IsKill,
                                       uint32_t Idx);
 
-  /// \brief Emit MachineInstrs to compute the value of Op with all but the
+  /// Emit MachineInstrs to compute the value of Op with all but the
   /// least significant bit set to zero.
   unsigned fastEmitZExtFromI1(MVT VT, unsigned Op0, bool Op0IsKill);
 
-  /// \brief Emit an unconditional branch to the given block, unless it is the
+  /// Emit an unconditional branch to the given block, unless it is the
   /// immediate (fall-through) successor, and update the CFG.
-  void fastEmitBranch(MachineBasicBlock *MBB, const DebugLoc &DL);
+  void fastEmitBranch(MachineBasicBlock *MSucc, const DebugLoc &DbgLoc);
 
   /// Emit an unconditional branch to \p FalseMBB, obtains the branch weight
   /// and adds TrueMBB and FalseMBB to the successor list.
   void finishCondBranch(const BasicBlock *BranchBB, MachineBasicBlock *TrueMBB,
                         MachineBasicBlock *FalseMBB);
 
-  /// \brief Update the value map to include the new mapping for this
+  /// Update the value map to include the new mapping for this
   /// instruction, or insert an extra copy to get the result in a previous
   /// determined register.
   ///
@@ -467,26 +471,26 @@
 
   unsigned createResultReg(const TargetRegisterClass *RC);
 
-  /// \brief Try to constrain Op so that it is usable by argument OpNum of the
+  /// Try to constrain Op so that it is usable by argument OpNum of the
   /// provided MCInstrDesc. If this fails, create a new virtual register in the
   /// correct class and COPY the value there.
   unsigned constrainOperandRegClass(const MCInstrDesc &II, unsigned Op,
                                     unsigned OpNum);
 
-  /// \brief Emit a constant in a register using target-specific logic, such as
+  /// Emit a constant in a register using target-specific logic, such as
   /// constant pool loads.
   virtual unsigned fastMaterializeConstant(const Constant *C) { return 0; }
 
-  /// \brief Emit an alloca address in a register using target-specific logic.
+  /// Emit an alloca address in a register using target-specific logic.
   virtual unsigned fastMaterializeAlloca(const AllocaInst *C) { return 0; }
 
-  /// \brief Emit the floating-point constant +0.0 in a register using target-
+  /// Emit the floating-point constant +0.0 in a register using target-
   /// specific logic.
   virtual unsigned fastMaterializeFloatZero(const ConstantFP *CF) {
     return 0;
   }
 
-  /// \brief Check if \c Add is an add that can be safely folded into \c GEP.
+  /// Check if \c Add is an add that can be safely folded into \c GEP.
   ///
   /// \c Add can be folded into \c GEP if:
   /// - \c Add is an add,
@@ -495,16 +499,16 @@
   /// - \c Add has a constant operand.
   bool canFoldAddIntoGEP(const User *GEP, const Value *Add);
 
-  /// \brief Test whether the given value has exactly one use.
+  /// Test whether the given value has exactly one use.
   bool hasTrivialKill(const Value *V);
 
-  /// \brief Create a machine mem operand from the given instruction.
+  /// Create a machine mem operand from the given instruction.
   MachineMemOperand *createMachineMemOperandFor(const Instruction *I) const;
 
   CmpInst::Predicate optimizeCmpPredicate(const CmpInst *CI) const;
 
   bool lowerCallTo(const CallInst *CI, MCSymbol *Symbol, unsigned NumArgs);
-  bool lowerCallTo(const CallInst *CI, const char *SymbolName,
+  bool lowerCallTo(const CallInst *CI, const char *SymName,
                    unsigned NumArgs);
   bool lowerCallTo(CallLoweringInfo &CLI);
 
@@ -521,23 +525,24 @@
   }
 
   bool lowerCall(const CallInst *I);
-  /// \brief Select and emit code for a binary operator instruction, which has
+  /// Select and emit code for a binary operator instruction, which has
   /// an opcode which directly corresponds to the given ISD opcode.
   bool selectBinaryOp(const User *I, unsigned ISDOpcode);
   bool selectFNeg(const User *I);
   bool selectGetElementPtr(const User *I);
   bool selectStackmap(const CallInst *I);
   bool selectPatchpoint(const CallInst *I);
-  bool selectCall(const User *Call);
+  bool selectCall(const User *I);
   bool selectIntrinsicCall(const IntrinsicInst *II);
   bool selectBitCast(const User *I);
   bool selectCast(const User *I, unsigned Opcode);
-  bool selectExtractValue(const User *I);
+  bool selectExtractValue(const User *U);
   bool selectInsertValue(const User *I);
   bool selectXRayCustomEvent(const CallInst *II);
+  bool selectXRayTypedEvent(const CallInst *II);
 
 private:
-  /// \brief Handle PHI nodes in successor blocks.
+  /// Handle PHI nodes in successor blocks.
   ///
   /// Emit code to ensure constants are copied into registers when needed.
   /// Remember the virtual registers that need to be added to the Machine PHI
@@ -546,21 +551,21 @@
   /// correspond to a different MBB than the end.
   bool handlePHINodesInSuccessorBlocks(const BasicBlock *LLVMBB);
 
-  /// \brief Helper for materializeRegForValue to materialize a constant in a
+  /// Helper for materializeRegForValue to materialize a constant in a
   /// target-independent way.
   unsigned materializeConstant(const Value *V, MVT VT);
 
-  /// \brief Helper for getRegForVale. This function is called when the value
+  /// Helper for getRegForVale. This function is called when the value
   /// isn't already available in a register and must be materialized with new
   /// instructions.
   unsigned materializeRegForValue(const Value *V, MVT VT);
 
-  /// \brief Clears LocalValueMap and moves the area for the new local variables
+  /// Clears LocalValueMap and moves the area for the new local variables
   /// to the beginning of the block. It helps to avoid spilling cached variables
   /// across heavy instructions like calls.
   void flushLocalValueMap();
 
-  /// \brief Removes dead local value instructions after SavedLastLocalvalue.
+  /// Removes dead local value instructions after SavedLastLocalvalue.
   void removeDeadLocalValueCode(MachineInstr *SavedLastLocalValue);
 
   struct InstOrderMap {
@@ -568,7 +573,8 @@
     MachineInstr *FirstTerminator = nullptr;
     unsigned FirstTerminatorOrder = std::numeric_limits<unsigned>::max();
 
-    void initialize(MachineBasicBlock *MBB);
+    void initialize(MachineBasicBlock *MBB,
+                    MachineBasicBlock::iterator LastFlushPoint);
   };
 
   /// Sinks the local value materialization instruction LocalMI to its first use
@@ -576,10 +582,10 @@
   void sinkLocalValueMaterialization(MachineInstr &LocalMI, unsigned DefReg,
                                      InstOrderMap &OrderMap);
 
-  /// \brief Insertion point before trying to select the current instruction.
+  /// Insertion point before trying to select the current instruction.
   MachineBasicBlock::iterator SavedInsertPt;
 
-  /// \brief Add a stackmap or patchpoint intrinsic call's live variable
+  /// Add a stackmap or patchpoint intrinsic call's live variable
   /// operands to a stackmap or patchpoint machine instruction.
   bool addStackMapLiveVars(SmallVectorImpl<MachineOperand> &Ops,
                            const CallInst *CI, unsigned StartIdx);
diff --git a/linux-x64/clang/include/llvm/CodeGen/FunctionLoweringInfo.h b/linux-x64/clang/include/llvm/CodeGen/FunctionLoweringInfo.h
index 2da00b7..5fe4f89 100644
--- a/linux-x64/clang/include/llvm/CodeGen/FunctionLoweringInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/FunctionLoweringInfo.h
@@ -1,4 +1,4 @@
-//===- FunctionLoweringInfo.h - Lower functions from LLVM IR to CodeGen ---===//
+//===- FunctionLoweringInfo.h - Lower functions from LLVM IR ---*- C++ -*--===//
 //
 //                     The LLVM Compiler Infrastructure
 //
diff --git a/linux-x64/clang/include/llvm/CodeGen/GCStrategy.h b/linux-x64/clang/include/llvm/CodeGen/GCStrategy.h
index 16168e7..f835bac 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GCStrategy.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GCStrategy.h
@@ -104,13 +104,13 @@
   const std::string &getName() const { return Name; }
 
   /// By default, write barriers are replaced with simple store
-  /// instructions. If true, you must provide a custom pass to lower 
-  /// calls to @llvm.gcwrite.
+  /// instructions. If true, you must provide a custom pass to lower
+  /// calls to \@llvm.gcwrite.
   bool customWriteBarrier() const { return CustomWriteBarriers; }
 
   /// By default, read barriers are replaced with simple load
-  /// instructions. If true, you must provide a custom pass to lower 
-  /// calls to @llvm.gcread.
+  /// instructions. If true, you must provide a custom pass to lower
+  /// calls to \@llvm.gcread.
   bool customReadBarrier() const { return CustomReadBarriers; }
 
   /// Returns true if this strategy is expecting the use of gc.statepoints,
@@ -146,8 +146,8 @@
   }
 
   /// By default, roots are left for the code generator so it can generate a
-  /// stack map. If true, you must provide a custom pass to lower 
-  /// calls to @llvm.gcroot.
+  /// stack map. If true, you must provide a custom pass to lower
+  /// calls to \@llvm.gcroot.
   bool customRoots() const { return CustomRoots; }
 
   /// If set, gcroot intrinsics should initialize their allocas to null
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/CallLowering.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/CallLowering.h
index 8d91cc4..32980ce 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/CallLowering.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/CallLowering.h
@@ -123,7 +123,7 @@
   }
 
   template <typename FuncInfoTy>
-  void setArgFlags(ArgInfo &Arg, unsigned OpNum, const DataLayout &DL,
+  void setArgFlags(ArgInfo &Arg, unsigned OpIdx, const DataLayout &DL,
                    const FuncInfoTy &FuncInfo) const;
 
   /// Invoke Handler::assignArg on each of the given \p Args and then use
@@ -131,19 +131,19 @@
   ///
   /// \return True if everything has succeeded, false otherwise.
   bool handleAssignments(MachineIRBuilder &MIRBuilder, ArrayRef<ArgInfo> Args,
-                         ValueHandler &Callback) const;
+                         ValueHandler &Handler) const;
 
 public:
   CallLowering(const TargetLowering *TLI) : TLI(TLI) {}
   virtual ~CallLowering() = default;
 
   /// This hook must be implemented to lower outgoing return values, described
-  /// by \p Val, into the specified virtual register \p VReg.
+  /// by \p Val, into the specified virtual registers \p VRegs.
   /// This hook is used by GlobalISel.
   ///
   /// \return True if the lowering succeeds, false otherwise.
-  virtual bool lowerReturn(MachineIRBuilder &MIRBuilder,
-                           const Value *Val, unsigned VReg) const {
+  virtual bool lowerReturn(MachineIRBuilder &MIRBuilder, const Value *Val,
+                           ArrayRef<unsigned> VRegs) const {
     return false;
   }
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h
new file mode 100644
index 0000000..8d61f9a
--- /dev/null
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h
@@ -0,0 +1,134 @@
+//===-- llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h  --*- C++ -*-==//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+/// \file
+/// This file implements a version of MachineIRBuilder which does trivial
+/// constant folding.
+//===----------------------------------------------------------------------===//
+#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
+#include "llvm/CodeGen/GlobalISel/Utils.h"
+
+namespace llvm {
+
+static Optional<APInt> ConstantFoldBinOp(unsigned Opcode, const unsigned Op1,
+                                         const unsigned Op2,
+                                         const MachineRegisterInfo &MRI) {
+  auto MaybeOp1Cst = getConstantVRegVal(Op1, MRI);
+  auto MaybeOp2Cst = getConstantVRegVal(Op2, MRI);
+  if (MaybeOp1Cst && MaybeOp2Cst) {
+    LLT Ty = MRI.getType(Op1);
+    APInt C1(Ty.getSizeInBits(), *MaybeOp1Cst, true);
+    APInt C2(Ty.getSizeInBits(), *MaybeOp2Cst, true);
+    switch (Opcode) {
+    default:
+      break;
+    case TargetOpcode::G_ADD:
+      return C1 + C2;
+    case TargetOpcode::G_AND:
+      return C1 & C2;
+    case TargetOpcode::G_ASHR:
+      return C1.ashr(C2);
+    case TargetOpcode::G_LSHR:
+      return C1.lshr(C2);
+    case TargetOpcode::G_MUL:
+      return C1 * C2;
+    case TargetOpcode::G_OR:
+      return C1 | C2;
+    case TargetOpcode::G_SHL:
+      return C1 << C2;
+    case TargetOpcode::G_SUB:
+      return C1 - C2;
+    case TargetOpcode::G_XOR:
+      return C1 ^ C2;
+    case TargetOpcode::G_UDIV:
+      if (!C2.getBoolValue())
+        break;
+      return C1.udiv(C2);
+    case TargetOpcode::G_SDIV:
+      if (!C2.getBoolValue())
+        break;
+      return C1.sdiv(C2);
+    case TargetOpcode::G_UREM:
+      if (!C2.getBoolValue())
+        break;
+      return C1.urem(C2);
+    case TargetOpcode::G_SREM:
+      if (!C2.getBoolValue())
+        break;
+      return C1.srem(C2);
+    }
+  }
+  return None;
+}
+
+/// An MIRBuilder which does trivial constant folding of binary ops.
+/// Calls to buildInstr will also try to constant fold binary ops.
+class ConstantFoldingMIRBuilder
+    : public FoldableInstructionsBuilder<ConstantFoldingMIRBuilder> {
+public:
+  // Pull in base class constructors.
+  using FoldableInstructionsBuilder<
+      ConstantFoldingMIRBuilder>::FoldableInstructionsBuilder;
+  // Unhide buildInstr
+  using FoldableInstructionsBuilder<ConstantFoldingMIRBuilder>::buildInstr;
+
+  // Implement buildBinaryOp required by FoldableInstructionsBuilder which
+  // tries to constant fold.
+  MachineInstrBuilder buildBinaryOp(unsigned Opcode, unsigned Dst,
+                                    unsigned Src0, unsigned Src1) {
+    validateBinaryOp(Dst, Src0, Src1);
+    auto MaybeCst = ConstantFoldBinOp(Opcode, Src0, Src1, getMF().getRegInfo());
+    if (MaybeCst)
+      return buildConstant(Dst, MaybeCst->getSExtValue());
+    return buildInstr(Opcode).addDef(Dst).addUse(Src0).addUse(Src1);
+  }
+
+  template <typename DstTy, typename UseArg1Ty, typename UseArg2Ty>
+  MachineInstrBuilder buildInstr(unsigned Opc, DstTy &&Ty, UseArg1Ty &&Arg1,
+                                 UseArg2Ty &&Arg2) {
+    unsigned Dst = getDestFromArg(Ty);
+    return buildInstr(Opc, Dst, getRegFromArg(std::forward<UseArg1Ty>(Arg1)),
+                      getRegFromArg(std::forward<UseArg2Ty>(Arg2)));
+  }
+
+  // Try to provide an overload for buildInstr for binary ops in order to
+  // constant fold.
+  MachineInstrBuilder buildInstr(unsigned Opc, unsigned Dst, unsigned Src0,
+                                 unsigned Src1) {
+    switch (Opc) {
+    default:
+      break;
+    case TargetOpcode::G_ADD:
+    case TargetOpcode::G_AND:
+    case TargetOpcode::G_ASHR:
+    case TargetOpcode::G_LSHR:
+    case TargetOpcode::G_MUL:
+    case TargetOpcode::G_OR:
+    case TargetOpcode::G_SHL:
+    case TargetOpcode::G_SUB:
+    case TargetOpcode::G_XOR:
+    case TargetOpcode::G_UDIV:
+    case TargetOpcode::G_SDIV:
+    case TargetOpcode::G_UREM:
+    case TargetOpcode::G_SREM: {
+      return buildBinaryOp(Opc, Dst, Src0, Src1);
+    }
+    }
+    return buildInstr(Opc).addDef(Dst).addUse(Src0).addUse(Src1);
+  }
+
+  // Fallback implementation of buildInstr.
+  template <typename DstTy, typename... UseArgsTy>
+  MachineInstrBuilder buildInstr(unsigned Opc, DstTy &&Ty,
+                                 UseArgsTy &&... Args) {
+    auto MIB = buildInstr(Opc).addDef(getDestFromArg(Ty));
+    addUsesFromArgs(MIB, std::forward<UseArgsTy>(Args)...);
+    return MIB;
+  }
+};
+} // namespace llvm
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/IRTranslator.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/IRTranslator.h
index 7061c01..f355396 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/IRTranslator.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/IRTranslator.h
@@ -24,6 +24,7 @@
 #include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
 #include "llvm/CodeGen/GlobalISel/Types.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Allocator.h"
 #include "llvm/IR/Intrinsics.h"
 #include <memory>
 #include <utility>
@@ -63,9 +64,83 @@
   /// Interface used to lower the everything related to calls.
   const CallLowering *CLI;
 
-  /// Mapping of the values of the current LLVM IR function
-  /// to the related virtual registers.
-  ValueToVReg ValToVReg;
+  /// This class contains the mapping between the Values to vreg related data.
+  class ValueToVRegInfo {
+  public:
+    ValueToVRegInfo() = default;
+
+    using VRegListT = SmallVector<unsigned, 1>;
+    using OffsetListT = SmallVector<uint64_t, 1>;
+
+    using const_vreg_iterator =
+        DenseMap<const Value *, VRegListT *>::const_iterator;
+    using const_offset_iterator =
+        DenseMap<const Value *, OffsetListT *>::const_iterator;
+
+    inline const_vreg_iterator vregs_end() const { return ValToVRegs.end(); }
+
+    VRegListT *getVRegs(const Value &V) {
+      auto It = ValToVRegs.find(&V);
+      if (It != ValToVRegs.end())
+        return It->second;
+
+      return insertVRegs(V);
+    }
+
+    OffsetListT *getOffsets(const Value &V) {
+      auto It = TypeToOffsets.find(V.getType());
+      if (It != TypeToOffsets.end())
+        return It->second;
+
+      return insertOffsets(V);
+    }
+
+    const_vreg_iterator findVRegs(const Value &V) const {
+      return ValToVRegs.find(&V);
+    }
+
+    bool contains(const Value &V) const {
+      return ValToVRegs.find(&V) != ValToVRegs.end();
+    }
+
+    void reset() {
+      ValToVRegs.clear();
+      TypeToOffsets.clear();
+      VRegAlloc.DestroyAll();
+      OffsetAlloc.DestroyAll();
+    }
+
+  private:
+    VRegListT *insertVRegs(const Value &V) {
+      assert(ValToVRegs.find(&V) == ValToVRegs.end() && "Value already exists");
+
+      // We placement new using our fast allocator since we never try to free
+      // the vectors until translation is finished.
+      auto *VRegList = new (VRegAlloc.Allocate()) VRegListT();
+      ValToVRegs[&V] = VRegList;
+      return VRegList;
+    }
+
+    OffsetListT *insertOffsets(const Value &V) {
+      assert(TypeToOffsets.find(V.getType()) == TypeToOffsets.end() &&
+             "Type already exists");
+
+      auto *OffsetList = new (OffsetAlloc.Allocate()) OffsetListT();
+      TypeToOffsets[V.getType()] = OffsetList;
+      return OffsetList;
+    }
+    SpecificBumpPtrAllocator<VRegListT> VRegAlloc;
+    SpecificBumpPtrAllocator<OffsetListT> OffsetAlloc;
+
+    // We store pointers to vectors here since references may be invalidated
+    // while we hold them if we stored the vectors directly.
+    DenseMap<const Value *, VRegListT*> ValToVRegs;
+    DenseMap<const Type *, OffsetListT*> TypeToOffsets;
+  };
+
+  /// Mapping of the values of the current LLVM IR function to the related
+  /// virtual registers and offsets.
+  ValueToVRegInfo VMap;
 
   // N.b. it's not completely obvious that this will be sufficient for every
   // LLVM IR construct (with "invoke" being the obvious candidate to mess up our
@@ -82,7 +157,8 @@
 
   // List of stubbed PHI instructions, for values and basic blocks to be filled
   // in once all MachineBasicBlocks have been created.
-  SmallVector<std::pair<const PHINode *, MachineInstr *>, 4> PendingPHIs;
+  SmallVector<std::pair<const PHINode *, SmallVector<MachineInstr *, 1>>, 4>
+      PendingPHIs;
 
   /// Record of what frame index has been allocated to specified allocas for
   /// this function.
@@ -99,7 +175,7 @@
   /// The general algorithm is:
   /// 1. Look for a virtual register for each operand or
   ///    create one.
-  /// 2 Update the ValToVReg accordingly.
+  /// 2 Update the VMap accordingly.
   /// 2.alt. For constant arguments, if they are compile time constants,
   ///   produce an immediate in the right operand and do not touch
   ///   ValToReg. Actually we will go with a virtual register for each
@@ -134,7 +210,7 @@
 
   /// Translate an LLVM string intrinsic (memcpy, memset, ...).
   bool translateMemfunc(const CallInst &CI, MachineIRBuilder &MIRBuilder,
-                        unsigned Intrinsic);
+                        unsigned ID);
 
   void getStackGuard(unsigned DstReg, MachineIRBuilder &MIRBuilder);
 
@@ -146,6 +222,19 @@
 
   bool translateInlineAsm(const CallInst &CI, MachineIRBuilder &MIRBuilder);
 
+  // FIXME: temporary function to expose previous interface to call lowering
+  // until it is refactored.
+  /// Combines all component registers of \p V into a single scalar with size
+  /// "max(Offsets) + last size".
+  unsigned packRegs(const Value &V, MachineIRBuilder &MIRBuilder);
+
+  void unpackRegs(const Value &V, unsigned Src, MachineIRBuilder &MIRBuilder);
+
+  /// Returns true if the value should be split into multiple LLTs.
+  /// If \p Offsets is given then the split type's offsets will be stored in it.
+  bool valueIsSplit(const Value &V,
+                    SmallVectorImpl<uint64_t> *Offsets = nullptr);
+
   /// Translate call instruction.
   /// \pre \p U is a call instruction.
   bool translateCall(const User &U, MachineIRBuilder &MIRBuilder);
@@ -310,6 +399,9 @@
 
   bool translateShuffleVector(const User &U, MachineIRBuilder &MIRBuilder);
 
+  bool translateAtomicCmpXchg(const User &U, MachineIRBuilder &MIRBuilder);
+  bool translateAtomicRMW(const User &U, MachineIRBuilder &MIRBuilder);
+
   // Stubs to keep the compiler happy while we implement the rest of the
   // translation.
   bool translateResume(const User &U, MachineIRBuilder &MIRBuilder) {
@@ -327,14 +419,8 @@
   bool translateFence(const User &U, MachineIRBuilder &MIRBuilder) {
     return false;
   }
-  bool translateAtomicCmpXchg(const User &U, MachineIRBuilder &MIRBuilder) {
-    return false;
-  }
-  bool translateAtomicRMW(const User &U, MachineIRBuilder &MIRBuilder) {
-    return false;
-  }
   bool translateAddrSpaceCast(const User &U, MachineIRBuilder &MIRBuilder) {
-    return false;
+    return translateCast(TargetOpcode::G_ADDRSPACE_CAST, U, MIRBuilder);
   }
   bool translateCleanupPad(const User &U, MachineIRBuilder &MIRBuilder) {
     return false;
@@ -381,9 +467,24 @@
   // * Clear the different maps.
   void finalizeFunction();
 
-  /// Get the VReg that represents \p Val.
-  /// If such VReg does not exist, it is created.
-  unsigned getOrCreateVReg(const Value &Val);
+  /// Get the VRegs that represent \p Val.
+  /// Non-aggregate types have just one corresponding VReg and the list can be
+  /// used as a single "unsigned". Aggregates get flattened. If such VRegs do
+  /// not exist, they are created.
+  ArrayRef<unsigned> getOrCreateVRegs(const Value &Val);
+
+  unsigned getOrCreateVReg(const Value &Val) {
+    auto Regs = getOrCreateVRegs(Val);
+    if (Regs.empty())
+      return 0;
+    assert(Regs.size() == 1 &&
+           "attempt to get single VReg for aggregate or void");
+    return Regs[0];
+  }
+
+  /// Allocate some vregs and offsets in the VMap. Then populate just the
+  /// offsets while leaving the vregs empty.
+  ValueToVRegInfo::VRegListT &allocateVRegs(const Value &Val);
 
   /// Get the frame index that represents \p Val.
   /// If such VReg does not exist, it is created.
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/InstructionSelector.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
index eacd135..471def7 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/CodeGenCoverage.h"
+#include "llvm/Support/LowLevelTypeImpl.h"
 #include <bitset>
 #include <cstddef>
 #include <cstdint>
@@ -31,7 +32,6 @@
 
 class APInt;
 class APFloat;
-class LLT;
 class MachineInstr;
 class MachineInstrBuilder;
 class MachineFunction;
@@ -81,6 +81,23 @@
   ///        failed match.
   GIM_Try,
 
+  /// Switch over the opcode on the specified instruction
+  /// - InsnID - Instruction ID
+  /// - LowerBound - numerically minimum opcode supported
+  /// - UpperBound - numerically maximum + 1 opcode supported
+  /// - Default - failure jump target
+  /// - JumpTable... - (UpperBound - LowerBound) (at least 2) jump targets
+  GIM_SwitchOpcode,
+
+  /// Switch over the LLT on the specified instruction operand
+  /// - InsnID - Instruction ID
+  /// - OpIdx - Operand index
+  /// - LowerBound - numerically minimum Type ID supported
+  /// - UpperBound - numerically maximum + 1 Type ID supported
+  /// - Default - failure jump target
+  /// - JumpTable... - (UpperBound - LowerBound) (at least 2) jump targets
+  GIM_SwitchType,
+
   /// Record the specified instruction
   /// - NewInsnID - Instruction ID to define
   /// - InsnID - Instruction ID
@@ -117,6 +134,23 @@
   GIM_CheckAtomicOrdering,
   GIM_CheckAtomicOrderingOrStrongerThan,
   GIM_CheckAtomicOrderingWeakerThan,
+  /// Check the size of the memory access for the given machine memory operand.
+  /// - InsnID - Instruction ID
+  /// - MMOIdx - MMO index
+  /// - Size - The size in bytes of the memory access
+  GIM_CheckMemorySizeEqualTo,
+  /// Check the size of the memory access for the given machine memory operand
+  /// against the size of an operand.
+  /// - InsnID - Instruction ID
+  /// - MMOIdx - MMO index
+  /// - OpIdx - The operand index to compare the MMO against
+  GIM_CheckMemorySizeEqualToLLT,
+  GIM_CheckMemorySizeLessThanLLT,
+  GIM_CheckMemorySizeGreaterThanLLT,
+  /// Check a generic C++ instruction predicate
+  /// - InsnID - Instruction ID
+  /// - PredicateID - The ID of the predicate function to call
+  GIM_CheckCxxInsnPredicate,
 
   /// Check the type for the specified operand
   /// - InsnID - Instruction ID
@@ -133,12 +167,14 @@
   /// - OpIdx - Operand index
   /// - Expected register bank (specified as a register class)
   GIM_CheckRegBankForClass,
+
   /// Check the operand matches a complex predicate
   /// - InsnID - Instruction ID
   /// - OpIdx - Operand index
   /// - RendererID - The renderer to hold the result
   /// - Complex predicate ID
   GIM_CheckComplexPattern,
+
   /// Check the operand is a specific integer
   /// - InsnID - Instruction ID
   /// - OpIdx - Operand index
@@ -155,6 +191,7 @@
   /// - OpIdx - Operand index
   /// - Expected Intrinsic ID
   GIM_CheckIntrinsicID,
+
   /// Check the specified operand is an MBB
   /// - InsnID - Instruction ID
   /// - OpIdx - Operand index
@@ -183,6 +220,7 @@
   /// - OldInsnID - Instruction ID to mutate
   /// - NewOpcode - The new opcode to use
   GIR_MutateOpcode,
+
   /// Build a new instruction
   /// - InsnID - Instruction ID to define
   /// - Opcode - The new opcode to use
@@ -193,6 +231,7 @@
   /// - OldInsnID - Instruction ID to copy from
   /// - OpIdx - The operand to copy
   GIR_Copy,
+
   /// Copy an operand to the specified instruction or add a zero register if the
   /// operand is a zero immediate.
   /// - NewInsnID - Instruction ID to modify
@@ -206,6 +245,7 @@
   /// - OpIdx - The operand to copy
   /// - SubRegIdx - The subregister to copy
   GIR_CopySubReg,
+
   /// Add an implicit register def to the specified instruction
   /// - InsnID - Instruction ID to modify
   /// - RegNum - The register to add
@@ -218,10 +258,13 @@
   /// - InsnID - Instruction ID to modify
   /// - RegNum - The register to add
   GIR_AddRegister,
+
   /// Add a temporary register to the specified instruction
   /// - InsnID - Instruction ID to modify
   /// - TempRegID - The temporary register ID to add
+  /// - TempRegFlags - The register flags to set
   GIR_AddTempRegister,
+
   /// Add an immediate to the specified instruction
   /// - InsnID - Instruction ID to modify
   /// - Imm - The immediate to add
@@ -230,6 +273,7 @@
   /// - InsnID - Instruction ID to modify
   /// - RendererID - The renderer to call
   GIR_ComplexRenderer,
+
   /// Render sub-operands of complex operands to the specified instruction
   /// - InsnID - Instruction ID to modify
   /// - RendererID - The renderer to call
@@ -247,24 +291,34 @@
   /// The operand index is implicitly 1.
   GIR_CopyConstantAsSImm,
 
+  /// Render a G_FCONSTANT operator as a sign-extended immediate.
+  /// - NewInsnID - Instruction ID to modify
+  /// - OldInsnID - Instruction ID to copy from
+  /// The operand index is implicitly 1.
+  GIR_CopyFConstantAsFPImm,
+
   /// Constrain an instruction operand to a register class.
   /// - InsnID - Instruction ID to modify
   /// - OpIdx - Operand index
   /// - RCEnum - Register class enumeration value
   GIR_ConstrainOperandRC,
+
   /// Constrain an instructions operands according to the instruction
   /// description.
   /// - InsnID - Instruction ID to modify
   GIR_ConstrainSelectedInstOperands,
+
   /// Merge all memory operands into instruction.
   /// - InsnID - Instruction ID to modify
   /// - MergeInsnID... - One or more Instruction ID to merge into the result.
   /// - GIU_MergeMemOperands_EndOfList - Terminates the list of instructions to
   ///                                    merge.
   GIR_MergeMemOperands,
+
   /// Erase from parent.
   /// - InsnID - Instruction ID to erase
   GIR_EraseFromParent,
+
   /// Create a new temporary register that's not constrained.
   /// - TempRegID - The temporary register ID to initialize.
   /// - Expected type
@@ -276,6 +330,9 @@
   /// Increment the rule coverage counter.
   /// - RuleID - The ID of the rule that was covered.
   GIR_Coverage,
+
+  /// Keeping track of the number of the GI opcodes. Must be the last entry.
+  GIU_NumOpcodes,
 };
 
 enum {
@@ -319,10 +376,24 @@
   template <class PredicateBitset, class ComplexMatcherMemFn,
             class CustomRendererFn>
   struct ISelInfoTy {
+    ISelInfoTy(const LLT *TypeObjects, size_t NumTypeObjects,
+               const PredicateBitset *FeatureBitsets,
+               const ComplexMatcherMemFn *ComplexPredicates,
+               const CustomRendererFn *CustomRenderers)
+        : TypeObjects(TypeObjects),
+          FeatureBitsets(FeatureBitsets),
+          ComplexPredicates(ComplexPredicates),
+          CustomRenderers(CustomRenderers) {
+
+      for (size_t I = 0; I < NumTypeObjects; ++I)
+        TypeIDMap[TypeObjects[I]] = I;
+    }
     const LLT *TypeObjects;
     const PredicateBitset *FeatureBitsets;
     const ComplexMatcherMemFn *ComplexPredicates;
     const CustomRendererFn *CustomRenderers;
+
+    SmallDenseMap<LLT, unsigned, 64> TypeIDMap;
   };
 
 protected:
@@ -341,14 +412,25 @@
       const RegisterBankInfo &RBI, const PredicateBitset &AvailableFeatures,
       CodeGenCoverage &CoverageInfo) const;
 
+  virtual const int64_t *getMatchTable() const {
+    llvm_unreachable("Should have been overridden by tablegen if used");
+  }
+
   virtual bool testImmPredicate_I64(unsigned, int64_t) const {
-    llvm_unreachable("Subclasses must override this to use tablegen");
+    llvm_unreachable(
+        "Subclasses must override this with a tablegen-erated function");
   }
   virtual bool testImmPredicate_APInt(unsigned, const APInt &) const {
-    llvm_unreachable("Subclasses must override this to use tablegen");
+    llvm_unreachable(
+        "Subclasses must override this with a tablegen-erated function");
   }
   virtual bool testImmPredicate_APFloat(unsigned, const APFloat &) const {
-    llvm_unreachable("Subclasses must override this to use tablegen");
+    llvm_unreachable(
+        "Subclasses must override this with a tablegen-erated function");
+  }
+  virtual bool testMIPredicate_MI(unsigned, const MachineInstr &) const {
+    llvm_unreachable(
+        "Subclasses must override this with a tablegen-erated function");
   }
 
   /// Constrain a register operand of an instruction \p I to a specified
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
index f7593ba..2003a79 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
@@ -41,6 +41,7 @@
   GIPFP_I64_Invalid = 0,
   GIPFP_APInt_Invalid = 0,
   GIPFP_APFloat_Invalid = 0,
+  GIPFP_MI_Invalid = 0,
 };
 
 template <class TgtInstructionSelector, class PredicateBitset,
@@ -53,8 +54,9 @@
     MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI,
     const RegisterBankInfo &RBI, const PredicateBitset &AvailableFeatures,
     CodeGenCoverage &CoverageInfo) const {
+
   uint64_t CurrentIdx = 0;
-  SmallVector<uint64_t, 8> OnFailResumeAt;
+  SmallVector<uint64_t, 4> OnFailResumeAt;
 
   enum RejectAction { RejectAndGiveUp, RejectAndResume };
   auto handleReject = [&]() -> RejectAction {
@@ -62,8 +64,7 @@
                     dbgs() << CurrentIdx << ": Rejected\n");
     if (OnFailResumeAt.empty())
       return RejectAndGiveUp;
-    CurrentIdx = OnFailResumeAt.back();
-    OnFailResumeAt.pop_back();
+    CurrentIdx = OnFailResumeAt.pop_back_val();
     DEBUG_WITH_TYPE(TgtInstructionSelector::getName(),
                     dbgs() << CurrentIdx << ": Resume at " << CurrentIdx << " ("
                            << OnFailResumeAt.size() << " try-blocks remain)\n");
@@ -72,7 +73,8 @@
 
   while (true) {
     assert(CurrentIdx != ~0u && "Invalid MatchTable index");
-    switch (MatchTable[CurrentIdx++]) {
+    int64_t MatcherOpcode = MatchTable[CurrentIdx++];
+    switch (MatcherOpcode) {
     case GIM_Try: {
       DEBUG_WITH_TYPE(TgtInstructionSelector::getName(),
                       dbgs() << CurrentIdx << ": Begin try-block\n");
@@ -138,12 +140,13 @@
       int64_t InsnID = MatchTable[CurrentIdx++];
       int64_t Expected = MatchTable[CurrentIdx++];
 
+      assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
       unsigned Opcode = State.MIs[InsnID]->getOpcode();
+
       DEBUG_WITH_TYPE(TgtInstructionSelector::getName(),
                       dbgs() << CurrentIdx << ": GIM_CheckOpcode(MIs[" << InsnID
                              << "], ExpectedOpcode=" << Expected
                              << ") // Got=" << Opcode << "\n");
-      assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
       if (Opcode != Expected) {
         if (handleReject() == RejectAndGiveUp)
           return false;
@@ -151,6 +154,77 @@
       break;
     }
 
+    case GIM_SwitchOpcode: {
+      int64_t InsnID = MatchTable[CurrentIdx++];
+      int64_t LowerBound = MatchTable[CurrentIdx++];
+      int64_t UpperBound = MatchTable[CurrentIdx++];
+      int64_t Default = MatchTable[CurrentIdx++];
+
+      assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
+      const int64_t Opcode = State.MIs[InsnID]->getOpcode();
+
+      DEBUG_WITH_TYPE(TgtInstructionSelector::getName(), {
+        dbgs() << CurrentIdx << ": GIM_SwitchOpcode(MIs[" << InsnID << "], ["
+               << LowerBound << ", " << UpperBound << "), Default=" << Default
+               << ", JumpTable...) // Got=" << Opcode << "\n";
+      });
+      if (Opcode < LowerBound || UpperBound <= Opcode) {
+        CurrentIdx = Default;
+        break;
+      }
+      CurrentIdx = MatchTable[CurrentIdx + (Opcode - LowerBound)];
+      if (!CurrentIdx) {
+        CurrentIdx = Default;
+	break;
+      }
+      OnFailResumeAt.push_back(Default);
+      break;
+    }
+
+    case GIM_SwitchType: {
+      int64_t InsnID = MatchTable[CurrentIdx++];
+      int64_t OpIdx = MatchTable[CurrentIdx++];
+      int64_t LowerBound = MatchTable[CurrentIdx++];
+      int64_t UpperBound = MatchTable[CurrentIdx++];
+      int64_t Default = MatchTable[CurrentIdx++];
+
+      assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
+      MachineOperand &MO = State.MIs[InsnID]->getOperand(OpIdx);
+
+      DEBUG_WITH_TYPE(TgtInstructionSelector::getName(), {
+        dbgs() << CurrentIdx << ": GIM_SwitchType(MIs[" << InsnID
+               << "]->getOperand(" << OpIdx << "), [" << LowerBound << ", "
+               << UpperBound << "), Default=" << Default
+               << ", JumpTable...) // Got=";
+        if (!MO.isReg())
+          dbgs() << "Not a VReg\n";
+        else
+          dbgs() << MRI.getType(MO.getReg()) << "\n";
+      });
+      if (!MO.isReg()) {
+        CurrentIdx = Default;
+        break;
+      }
+      const LLT Ty = MRI.getType(MO.getReg());
+      const auto TyI = ISelInfo.TypeIDMap.find(Ty);
+      if (TyI == ISelInfo.TypeIDMap.end()) {
+        CurrentIdx = Default;
+        break;
+      }
+      const int64_t TypeID = TyI->second;
+      if (TypeID < LowerBound || UpperBound <= TypeID) {
+        CurrentIdx = Default;
+        break;
+      }
+      CurrentIdx = MatchTable[CurrentIdx + (TypeID - LowerBound)];
+      if (!CurrentIdx) {
+        CurrentIdx = Default;
+        break;
+      }
+      OnFailResumeAt.push_back(Default);
+      break;
+    }
+
     case GIM_CheckNumOperands: {
       int64_t InsnID = MatchTable[CurrentIdx++];
       int64_t Expected = MatchTable[CurrentIdx++];
@@ -196,7 +270,8 @@
                           << CurrentIdx << ": GIM_CheckAPIntImmPredicate(MIs["
                           << InsnID << "], Predicate=" << Predicate << ")\n");
       assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
-      assert(State.MIs[InsnID]->getOpcode() && "Expected G_CONSTANT");
+      assert(State.MIs[InsnID]->getOpcode() == TargetOpcode::G_CONSTANT &&
+             "Expected G_CONSTANT");
       assert(Predicate > GIPFP_APInt_Invalid && "Expected a valid predicate");
       APInt Value;
       if (State.MIs[InsnID]->getOperand(1).isCImm())
@@ -228,6 +303,21 @@
           return false;
       break;
     }
+    case GIM_CheckCxxInsnPredicate: {
+      int64_t InsnID = MatchTable[CurrentIdx++];
+      int64_t Predicate = MatchTable[CurrentIdx++];
+      DEBUG_WITH_TYPE(TgtInstructionSelector::getName(),
+                      dbgs()
+                          << CurrentIdx << ": GIM_CheckCxxPredicate(MIs["
+                          << InsnID << "], Predicate=" << Predicate << ")\n");
+      assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
+      assert(Predicate > GIPFP_MI_Invalid && "Expected a valid predicate");
+
+      if (!testMIPredicate_MI(Predicate, *State.MIs[InsnID]))
+        if (handleReject() == RejectAndGiveUp)
+          return false;
+      break;
+    }
     case GIM_CheckAtomicOrdering: {
       int64_t InsnID = MatchTable[CurrentIdx++];
       AtomicOrdering Ordering = (AtomicOrdering)MatchTable[CurrentIdx++];
@@ -235,7 +325,6 @@
                       dbgs() << CurrentIdx << ": GIM_CheckAtomicOrdering(MIs["
                              << InsnID << "], " << (uint64_t)Ordering << ")\n");
       assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
-
       if (!State.MIs[InsnID]->hasOneMemOperand())
         if (handleReject() == RejectAndGiveUp)
           return false;
@@ -254,7 +343,6 @@
                              << ": GIM_CheckAtomicOrderingOrStrongerThan(MIs["
                              << InsnID << "], " << (uint64_t)Ordering << ")\n");
       assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
-
       if (!State.MIs[InsnID]->hasOneMemOperand())
         if (handleReject() == RejectAndGiveUp)
           return false;
@@ -273,7 +361,6 @@
                              << ": GIM_CheckAtomicOrderingWeakerThan(MIs["
                              << InsnID << "], " << (uint64_t)Ordering << ")\n");
       assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
-
       if (!State.MIs[InsnID]->hasOneMemOperand())
         if (handleReject() == RejectAndGiveUp)
           return false;
@@ -284,6 +371,87 @@
             return false;
       break;
     }
+    case GIM_CheckMemorySizeEqualTo: {
+      int64_t InsnID = MatchTable[CurrentIdx++];
+      int64_t MMOIdx = MatchTable[CurrentIdx++];
+      uint64_t Size = MatchTable[CurrentIdx++];
+
+      DEBUG_WITH_TYPE(TgtInstructionSelector::getName(),
+                      dbgs() << CurrentIdx
+                             << ": GIM_CheckMemorySizeEqual(MIs[" << InsnID
+                             << "]->memoperands() + " << MMOIdx
+                             << ", Size=" << Size << ")\n");
+      assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
+
+      if (State.MIs[InsnID]->getNumMemOperands() <= MMOIdx) {
+        if (handleReject() == RejectAndGiveUp)
+          return false;
+        break;
+      }
+
+      MachineMemOperand *MMO = *(State.MIs[InsnID]->memoperands_begin() + MMOIdx);
+
+      DEBUG_WITH_TYPE(TgtInstructionSelector::getName(),
+                      dbgs() << MMO->getSize() << " bytes vs " << Size
+                             << " bytes\n");
+      if (MMO->getSize() != Size)
+        if (handleReject() == RejectAndGiveUp)
+          return false;
+
+      break;
+    }
+    case GIM_CheckMemorySizeEqualToLLT:
+    case GIM_CheckMemorySizeLessThanLLT:
+    case GIM_CheckMemorySizeGreaterThanLLT: {
+      int64_t InsnID = MatchTable[CurrentIdx++];
+      int64_t MMOIdx = MatchTable[CurrentIdx++];
+      int64_t OpIdx = MatchTable[CurrentIdx++];
+
+      DEBUG_WITH_TYPE(
+          TgtInstructionSelector::getName(),
+          dbgs() << CurrentIdx << ": GIM_CheckMemorySize"
+                 << (MatcherOpcode == GIM_CheckMemorySizeEqualToLLT
+                         ? "EqualTo"
+                         : MatcherOpcode == GIM_CheckMemorySizeGreaterThanLLT
+                               ? "GreaterThan"
+                               : "LessThan")
+                 << "LLT(MIs[" << InsnID << "]->memoperands() + " << MMOIdx
+                 << ", OpIdx=" << OpIdx << ")\n");
+      assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
+
+      MachineOperand &MO = State.MIs[InsnID]->getOperand(OpIdx);
+      if (!MO.isReg()) {
+        DEBUG_WITH_TYPE(TgtInstructionSelector::getName(),
+                        dbgs() << CurrentIdx << ": Not a register\n");
+        if (handleReject() == RejectAndGiveUp)
+          return false;
+        break;
+      }
+
+      if (State.MIs[InsnID]->getNumMemOperands() <= MMOIdx) {
+        if (handleReject() == RejectAndGiveUp)
+          return false;
+        break;
+      }
+
+      MachineMemOperand *MMO = *(State.MIs[InsnID]->memoperands_begin() + MMOIdx);
+
+      unsigned Size = MRI.getType(MO.getReg()).getSizeInBits();
+      if (MatcherOpcode == GIM_CheckMemorySizeEqualToLLT &&
+          MMO->getSize() * 8 != Size) {
+        if (handleReject() == RejectAndGiveUp)
+          return false;
+      } else if (MatcherOpcode == GIM_CheckMemorySizeLessThanLLT &&
+                 MMO->getSize() * 8 >= Size) {
+        if (handleReject() == RejectAndGiveUp)
+          return false;
+      } else if (MatcherOpcode == GIM_CheckMemorySizeGreaterThanLLT &&
+                 MMO->getSize() * 8 <= Size)
+        if (handleReject() == RejectAndGiveUp)
+          return false;
+
+      break;
+    }
     case GIM_CheckType: {
       int64_t InsnID = MatchTable[CurrentIdx++];
       int64_t OpIdx = MatchTable[CurrentIdx++];
@@ -293,7 +461,6 @@
                              << "]->getOperand(" << OpIdx
                              << "), TypeID=" << TypeID << ")\n");
       assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
-
       MachineOperand &MO = State.MIs[InsnID]->getOperand(OpIdx);
       if (!MO.isReg() ||
           MRI.getType(MO.getReg()) != ISelInfo.TypeObjects[TypeID]) {
@@ -312,7 +479,6 @@
                              << InsnID << "]->getOperand(" << OpIdx
                              << "), SizeInBits=" << SizeInBits << ")\n");
       assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
-
       // iPTR must be looked up in the target.
       if (SizeInBits == 0) {
         MachineFunction *MF = State.MIs[InsnID]->getParent()->getParent();
@@ -384,7 +550,6 @@
                              << InsnID << "]->getOperand(" << OpIdx
                              << "), Value=" << Value << ")\n");
       assert(State.MIs[InsnID] != nullptr && "Used insn before defined");
-
       MachineOperand &MO = State.MIs[InsnID]->getOperand(OpIdx);
       if (MO.isReg()) {
         // isOperandImmEqual() will sign-extend to 64-bits, so should we.
@@ -480,7 +645,7 @@
     }
     case GIM_Reject:
       DEBUG_WITH_TYPE(TgtInstructionSelector::getName(),
-                      dbgs() << CurrentIdx << ": GIM_Reject");
+                      dbgs() << CurrentIdx << ": GIM_Reject\n");
       if (handleReject() == RejectAndGiveUp)
         return false;
       break;
@@ -662,6 +827,23 @@
       break;
     }
 
+    // TODO: Needs a test case once we have a pattern that uses this.
+    case GIR_CopyFConstantAsFPImm: {
+      int64_t NewInsnID = MatchTable[CurrentIdx++];
+      int64_t OldInsnID = MatchTable[CurrentIdx++];
+      assert(OutMIs[NewInsnID] && "Attempted to add to undefined instruction");
+      assert(State.MIs[OldInsnID]->getOpcode() == TargetOpcode::G_FCONSTANT && "Expected G_FCONSTANT");
+      if (State.MIs[OldInsnID]->getOperand(1).isFPImm())
+        OutMIs[NewInsnID].addFPImm(
+            State.MIs[OldInsnID]->getOperand(1).getFPImm());
+      else
+        llvm_unreachable("Expected FPImm operand");
+      DEBUG_WITH_TYPE(TgtInstructionSelector::getName(),
+                      dbgs() << CurrentIdx << ": GIR_CopyFPConstantAsFPImm(OutMIs["
+                             << NewInsnID << "], MIs[" << OldInsnID << "])\n");
+      break;
+    }
+
     case GIR_CustomRenderer: {
       int64_t InsnID = MatchTable[CurrentIdx++];
       int64_t OldInsnID = MatchTable[CurrentIdx++];
@@ -755,7 +937,7 @@
 
     case GIR_Done:
       DEBUG_WITH_TYPE(TgtInstructionSelector::getName(),
-                      dbgs() << CurrentIdx << ": GIR_Done");
+                      dbgs() << CurrentIdx << ": GIR_Done\n");
       return true;
 
     default:
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
index a1f564b..8735876 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
@@ -38,7 +38,7 @@
       return false;
     if (MachineInstr *DefMI = getOpcodeDef(TargetOpcode::G_TRUNC,
                                            MI.getOperand(1).getReg(), MRI)) {
-      DEBUG(dbgs() << ".. Combine MI: " << MI;);
+      LLVM_DEBUG(dbgs() << ".. Combine MI: " << MI;);
       unsigned DstReg = MI.getOperand(0).getReg();
       unsigned SrcReg = DefMI->getOperand(1).getReg();
       Builder.setInstr(MI);
@@ -62,7 +62,7 @@
       if (isInstUnsupported({TargetOpcode::G_AND, {DstTy}}) ||
           isInstUnsupported({TargetOpcode::G_CONSTANT, {DstTy}}))
         return false;
-      DEBUG(dbgs() << ".. Combine MI: " << MI;);
+      LLVM_DEBUG(dbgs() << ".. Combine MI: " << MI;);
       Builder.setInstr(MI);
       unsigned ZExtSrc = MI.getOperand(1).getReg();
       LLT ZExtSrcTy = MRI.getType(ZExtSrc);
@@ -91,7 +91,7 @@
           isInstUnsupported({TargetOpcode::G_ASHR, {DstTy}}) ||
           isInstUnsupported({TargetOpcode::G_CONSTANT, {DstTy}}))
         return false;
-      DEBUG(dbgs() << ".. Combine MI: " << MI;);
+      LLVM_DEBUG(dbgs() << ".. Combine MI: " << MI;);
       Builder.setInstr(MI);
       unsigned SExtSrc = MI.getOperand(1).getReg();
       LLT SExtSrcTy = MRI.getType(SExtSrc);
@@ -123,7 +123,7 @@
       LLT DstTy = MRI.getType(DstReg);
       if (isInstUnsupported({TargetOpcode::G_IMPLICIT_DEF, {DstTy}}))
         return false;
-      DEBUG(dbgs() << ".. Combine EXT(IMPLICIT_DEF) " << MI;);
+      LLVM_DEBUG(dbgs() << ".. Combine EXT(IMPLICIT_DEF) " << MI;);
       Builder.setInstr(MI);
       Builder.buildInstr(TargetOpcode::G_IMPLICIT_DEF, DstReg);
       markInstAndDefDead(MI, *DefMI, DeadInsts);
@@ -139,9 +139,9 @@
       return false;
 
     unsigned NumDefs = MI.getNumOperands() - 1;
-    unsigned SrcReg = MI.getOperand(NumDefs).getReg();
-    MachineInstr *MergeI = MRI.getVRegDef(SrcReg);
-    if (!MergeI || (MergeI->getOpcode() != TargetOpcode::G_MERGE_VALUES))
+    MachineInstr *MergeI = getOpcodeDef(TargetOpcode::G_MERGE_VALUES,
+                                        MI.getOperand(NumDefs).getReg(), MRI);
+    if (!MergeI)
       return false;
 
     const unsigned NumMergeRegs = MergeI->getNumOperands() - 1;
@@ -253,11 +253,8 @@
     // and as a result, %3, %2, %1 are dead.
     MachineInstr *PrevMI = &MI;
     while (PrevMI != &DefMI) {
-      // If we're dealing with G_UNMERGE_VALUES, tryCombineMerges doesn't really try
-      // to fold copies in between and we can ignore them here.
-      if (PrevMI->getOpcode() == TargetOpcode::G_UNMERGE_VALUES)
-        break;
-      unsigned PrevRegSrc = PrevMI->getOperand(1).getReg();
+      unsigned PrevRegSrc =
+          PrevMI->getOperand(PrevMI->getNumOperands() - 1).getReg();
       MachineInstr *TmpDef = MRI.getVRegDef(PrevRegSrc);
       if (MRI.hasOneUse(PrevRegSrc)) {
         if (TmpDef != &DefMI) {
@@ -269,9 +266,7 @@
         break;
       PrevMI = TmpDef;
     }
-    if ((PrevMI == &DefMI ||
-         DefMI.getOpcode() == TargetOpcode::G_MERGE_VALUES) &&
-        MRI.hasOneUse(DefMI.getOperand(0).getReg()))
+    if (PrevMI == &DefMI && MRI.hasOneUse(DefMI.getOperand(0).getReg()))
       DeadInsts.push_back(&DefMI);
   }
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
index 8bd8a9d..d122e67 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
@@ -93,12 +93,24 @@
   const LegalizerInfo &getLegalizerInfo() const { return LI; }
 
 private:
+  /// Legalize a single operand \p OpIdx of the machine instruction \p MI as a
+  /// Use by extending the operand's type to \p WideTy using the specified \p
+  /// ExtOpcode for the extension instruction, and replacing the vreg of the
+  /// operand in place.
+  void widenScalarSrc(MachineInstr &MI, LLT WideTy, unsigned OpIdx,
+                      unsigned ExtOpcode);
+
+  /// Legalize a single operand \p OpIdx of the machine instruction \p MI as a
+  /// Def by extending the operand's type to \p WideTy and truncating it back
+  /// with the \p TruncOpcode, and replacing the vreg of the operand in place.
+  void widenScalarDst(MachineInstr &MI, LLT WideTy, unsigned OpIdx = 0,
+                      unsigned TruncOpcode = TargetOpcode::G_TRUNC);
 
   /// Helper function to split a wide generic register into bitwise blocks with
   /// the given Type (which implies the number of blocks needed). The generic
   /// registers created are appended to Ops, starting at bit 0 of Reg.
   void extractParts(unsigned Reg, LLT Ty, int NumParts,
-                    SmallVectorImpl<unsigned> &Ops);
+                    SmallVectorImpl<unsigned> &VRegs);
 
   MachineRegisterInfo &MRI;
   const LegalizerInfo &LI;
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
index 117c791..a8c2608 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/None.h"
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/ADT/SmallBitVector.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/TargetOpcodes.h"
@@ -37,6 +38,7 @@
 class MachineInstr;
 class MachineIRBuilder;
 class MachineRegisterInfo;
+class MCInstrInfo;
 
 namespace LegalizeActions {
 enum LegalizeAction : std::uint8_t {
@@ -118,6 +120,21 @@
   unsigned Opcode;
   ArrayRef<LLT> Types;
 
+  struct MemDesc {
+    uint64_t Size;
+    AtomicOrdering Ordering;
+  };
+
+  /// Operations which require memory can use this to place requirements on the
+  /// memory type for each MMO.
+  ArrayRef<MemDesc> MMODescrs;
+
+  constexpr LegalityQuery(unsigned Opcode, const ArrayRef<LLT> Types,
+                          const ArrayRef<MemDesc> MMODescrs)
+      : Opcode(Opcode), Types(Types), MMODescrs(MMODescrs) {}
+  constexpr LegalityQuery(unsigned Opcode, const ArrayRef<LLT> Types)
+      : LegalityQuery(Opcode, Types, {}) {}
+
   raw_ostream &print(raw_ostream &OS) const;
 };
 
@@ -147,8 +164,31 @@
     std::function<std::pair<unsigned, LLT>(const LegalityQuery &)>;
 
 namespace LegalityPredicates {
+struct TypePairAndMemSize {
+  LLT Type0;
+  LLT Type1;
+  uint64_t MemSize;
+
+  bool operator==(const TypePairAndMemSize &Other) const {
+    return Type0 == Other.Type0 && Type1 == Other.Type1 &&
+           MemSize == Other.MemSize;
+  }
+};
+
 /// True iff P0 and P1 are true.
-LegalityPredicate all(LegalityPredicate P0, LegalityPredicate P1);
+template<typename Predicate>
+Predicate all(Predicate P0, Predicate P1) {
+  return [=](const LegalityQuery &Query) {
+    return P0(Query) && P1(Query);
+  };
+}
+/// True iff all given predicates are true.
+template<typename Predicate, typename... Args>
+Predicate all(Predicate P0, Predicate P1, Args... args) {
+  return all(all(P0, P1), args...);
+}
+/// True iff the given type index is the specified types.
+LegalityPredicate typeIs(unsigned TypeIdx, LLT TypesInit);
 /// True iff the given type index is one of the specified types.
 LegalityPredicate typeInSet(unsigned TypeIdx,
                             std::initializer_list<LLT> TypesInit);
@@ -157,6 +197,11 @@
 LegalityPredicate
 typePairInSet(unsigned TypeIdx0, unsigned TypeIdx1,
               std::initializer_list<std::pair<LLT, LLT>> TypesInit);
+/// True iff the given types for the given pair of type indexes is one of the
+/// specified type pairs.
+LegalityPredicate typePairAndMemSizeInSet(
+    unsigned TypeIdx0, unsigned TypeIdx1, unsigned MMOIdx,
+    std::initializer_list<TypePairAndMemSize> TypesAndMemSizeInit);
 /// True iff the specified type index is a scalar.
 LegalityPredicate isScalar(unsigned TypeIdx);
 /// True iff the specified type index is a scalar that's narrower than the given
@@ -168,14 +213,22 @@
 /// True iff the specified type index is a scalar whose size is not a power of
 /// 2.
 LegalityPredicate sizeNotPow2(unsigned TypeIdx);
+/// True iff the specified MMO index has a size that is not a power of 2
+LegalityPredicate memSizeInBytesNotPow2(unsigned MMOIdx);
 /// True iff the specified type index is a vector whose element count is not a
 /// power of 2.
 LegalityPredicate numElementsNotPow2(unsigned TypeIdx);
+/// True iff the specified MMO index has at an atomic ordering of at Ordering or
+/// stronger.
+LegalityPredicate atomicOrderingAtLeastOrStrongerThan(unsigned MMOIdx,
+                                                      AtomicOrdering Ordering);
 } // end namespace LegalityPredicates
 
 namespace LegalizeMutations {
 /// Select this specific type for the given type index.
 LegalizeMutation changeTo(unsigned TypeIdx, LLT Ty);
+/// Keep the same type as the given type index.
+LegalizeMutation changeTo(unsigned TypeIdx, unsigned FromTypeIdx);
 /// Widen the type for the given type index to the next power of 2.
 LegalizeMutation widenScalarToNextPow2(unsigned TypeIdx, unsigned Min = 0);
 /// Add more elements to the type for the given type index to the next power of
@@ -219,6 +272,33 @@
   bool IsAliasedByAnother;
   SmallVector<LegalizeRule, 2> Rules;
 
+#ifndef NDEBUG
+  /// If bit I is set, this rule set contains a rule that may handle (predicate
+  /// or perform an action upon (or both)) the type index I. The uncertainty
+  /// comes from free-form rules executing user-provided lambda functions. We
+  /// conservatively assume such rules do the right thing and cover all type
+  /// indices. The bitset is intentionally 1 bit wider than it absolutely needs
+  /// to be to distinguish such cases from the cases where all type indices are
+  /// individually handled.
+  SmallBitVector TypeIdxsCovered{MCOI::OPERAND_LAST_GENERIC -
+                                 MCOI::OPERAND_FIRST_GENERIC + 2};
+#endif
+
+  unsigned typeIdx(unsigned TypeIdx) {
+    assert(TypeIdx <=
+               (MCOI::OPERAND_LAST_GENERIC - MCOI::OPERAND_FIRST_GENERIC) &&
+           "Type Index is out of bounds");
+#ifndef NDEBUG
+    TypeIdxsCovered.set(TypeIdx);
+#endif
+    return TypeIdx;
+  }
+  void markAllTypeIdxsAsCovered() {
+#ifndef NDEBUG
+    TypeIdxsCovered.set();
+#endif
+  }
+
   void add(const LegalizeRule &Rule) {
     assert(AliasOf == 0 &&
            "RuleSet is aliased, change the representative opcode instead");
@@ -235,7 +315,7 @@
     return *this;
   }
   /// Use the given action when the predicate is true.
-  /// Action should not be an action that requires mutation.
+  /// Action should be an action that requires mutation.
   LegalizeRuleSet &actionIf(LegalizeAction Action, LegalityPredicate Predicate,
                             LegalizeMutation Mutation) {
     add({Predicate, Action, Mutation});
@@ -246,16 +326,33 @@
   LegalizeRuleSet &actionFor(LegalizeAction Action,
                              std::initializer_list<LLT> Types) {
     using namespace LegalityPredicates;
-    return actionIf(Action, typeInSet(0, Types));
+    return actionIf(Action, typeInSet(typeIdx(0), Types));
+  }
+  /// Use the given action when type index 0 is any type in the given list.
+  /// Action should be an action that requires mutation.
+  LegalizeRuleSet &actionFor(LegalizeAction Action,
+                             std::initializer_list<LLT> Types,
+                             LegalizeMutation Mutation) {
+    using namespace LegalityPredicates;
+    return actionIf(Action, typeInSet(typeIdx(0), Types), Mutation);
   }
   /// Use the given action when type indexes 0 and 1 is any type pair in the
   /// given list.
   /// Action should not be an action that requires mutation.
-  LegalizeRuleSet &
-  actionFor(LegalizeAction Action,
-            std::initializer_list<std::pair<LLT, LLT>> Types) {
+  LegalizeRuleSet &actionFor(LegalizeAction Action,
+                             std::initializer_list<std::pair<LLT, LLT>> Types) {
     using namespace LegalityPredicates;
-    return actionIf(Action, typePairInSet(0, 1, Types));
+    return actionIf(Action, typePairInSet(typeIdx(0), typeIdx(1), Types));
+  }
+  /// Use the given action when type indexes 0 and 1 is any type pair in the
+  /// given list.
+  /// Action should be an action that requires mutation.
+  LegalizeRuleSet &actionFor(LegalizeAction Action,
+                             std::initializer_list<std::pair<LLT, LLT>> Types,
+                             LegalizeMutation Mutation) {
+    using namespace LegalityPredicates;
+    return actionIf(Action, typePairInSet(typeIdx(0), typeIdx(1), Types),
+                    Mutation);
   }
   /// Use the given action when type indexes 0 and 1 are both in the given list.
   /// That is, the type pair is in the cartesian product of the list.
@@ -263,10 +360,11 @@
   LegalizeRuleSet &actionForCartesianProduct(LegalizeAction Action,
                                              std::initializer_list<LLT> Types) {
     using namespace LegalityPredicates;
-    return actionIf(Action, all(typeInSet(0, Types), typeInSet(1, Types)));
+    return actionIf(Action, all(typeInSet(typeIdx(0), Types),
+                                typeInSet(typeIdx(1), Types)));
   }
-  /// Use the given action when type indexes 0 and 1 are both their respective
-  /// lists.
+  /// Use the given action when type indexes 0 and 1 are both in their
+  /// respective lists.
   /// That is, the type pair is in the cartesian product of the lists
   /// Action should not be an action that requires mutation.
   LegalizeRuleSet &
@@ -274,7 +372,20 @@
                             std::initializer_list<LLT> Types0,
                             std::initializer_list<LLT> Types1) {
     using namespace LegalityPredicates;
-    return actionIf(Action, all(typeInSet(0, Types0), typeInSet(1, Types1)));
+    return actionIf(Action, all(typeInSet(typeIdx(0), Types0),
+                                typeInSet(typeIdx(1), Types1)));
+  }
+  /// Use the given action when type indexes 0, 1, and 2 are all in their
+  /// respective lists.
+  /// That is, the type triple is in the cartesian product of the lists
+  /// Action should not be an action that requires mutation.
+  LegalizeRuleSet &actionForCartesianProduct(
+      LegalizeAction Action, std::initializer_list<LLT> Types0,
+      std::initializer_list<LLT> Types1, std::initializer_list<LLT> Types2) {
+    using namespace LegalityPredicates;
+    return actionIf(Action, all(typeInSet(typeIdx(0), Types0),
+                                all(typeInSet(typeIdx(1), Types1),
+                                    typeInSet(typeIdx(2), Types2))));
   }
 
 public:
@@ -292,6 +403,9 @@
 
   /// The instruction is legal if predicate is true.
   LegalizeRuleSet &legalIf(LegalityPredicate Predicate) {
+    // We have no choice but conservatively assume that the free-form
+    // user-provided Predicate properly handles all type indices:
+    markAllTypeIdxsAsCovered();
     return actionIf(LegalizeAction::Legal, Predicate);
   }
   /// The instruction is legal when type index 0 is any type in the given list.
@@ -303,6 +417,15 @@
   LegalizeRuleSet &legalFor(std::initializer_list<std::pair<LLT, LLT>> Types) {
     return actionFor(LegalizeAction::Legal, Types);
   }
+  /// The instruction is legal when type indexes 0 and 1 along with the memory
+  /// size is any type and size tuple in the given list.
+  LegalizeRuleSet &legalForTypesWithMemSize(
+      std::initializer_list<LegalityPredicates::TypePairAndMemSize>
+          TypesAndMemSize) {
+    return actionIf(LegalizeAction::Legal,
+                    LegalityPredicates::typePairAndMemSizeInSet(
+                        typeIdx(0), typeIdx(1), /*MMOIdx*/ 0, TypesAndMemSize));
+  }
   /// The instruction is legal when type indexes 0 and 1 are both in the given
   /// list. That is, the type pair is in the cartesian product of the list.
   LegalizeRuleSet &legalForCartesianProduct(std::initializer_list<LLT> Types) {
@@ -315,8 +438,77 @@
     return actionForCartesianProduct(LegalizeAction::Legal, Types0, Types1);
   }
 
+  /// The instruction is lowered.
+  LegalizeRuleSet &lower() {
+    using namespace LegalizeMutations;
+    // We have no choice but conservatively assume that predicate-less lowering
+    // properly handles all type indices by design:
+    markAllTypeIdxsAsCovered();
+    return actionIf(LegalizeAction::Lower, always);
+  }
+  /// The instruction is lowered if predicate is true. Keep type index 0 as the
+  /// same type.
+  LegalizeRuleSet &lowerIf(LegalityPredicate Predicate) {
+    using namespace LegalizeMutations;
+    // We have no choice but conservatively assume that lowering with a
+    // free-form user provided Predicate properly handles all type indices:
+    markAllTypeIdxsAsCovered();
+    return actionIf(LegalizeAction::Lower, Predicate);
+  }
+  /// The instruction is lowered if predicate is true.
+  LegalizeRuleSet &lowerIf(LegalityPredicate Predicate,
+                           LegalizeMutation Mutation) {
+    // We have no choice but conservatively assume that lowering with a
+    // free-form user provided Predicate properly handles all type indices:
+    markAllTypeIdxsAsCovered();
+    return actionIf(LegalizeAction::Lower, Predicate, Mutation);
+  }
+  /// The instruction is lowered when type index 0 is any type in the given
+  /// list. Keep type index 0 as the same type.
+  LegalizeRuleSet &lowerFor(std::initializer_list<LLT> Types) {
+    return actionFor(LegalizeAction::Lower, Types,
+                     LegalizeMutations::changeTo(0, 0));
+  }
+  /// The instruction is lowered when type index 0 is any type in the given
+  /// list.
+  LegalizeRuleSet &lowerFor(std::initializer_list<LLT> Types,
+                            LegalizeMutation Mutation) {
+    return actionFor(LegalizeAction::Lower, Types, Mutation);
+  }
+  /// The instruction is lowered when type indexes 0 and 1 is any type pair in
+  /// the given list. Keep type index 0 as the same type.
+  LegalizeRuleSet &lowerFor(std::initializer_list<std::pair<LLT, LLT>> Types) {
+    return actionFor(LegalizeAction::Lower, Types,
+                     LegalizeMutations::changeTo(0, 0));
+  }
+  /// The instruction is lowered when type indexes 0 and 1 is any type pair in
+  /// the given list.
+  LegalizeRuleSet &lowerFor(std::initializer_list<std::pair<LLT, LLT>> Types,
+                            LegalizeMutation Mutation) {
+    return actionFor(LegalizeAction::Lower, Types, Mutation);
+  }
+  /// The instruction is lowered when type indexes 0 and 1 are both in their
+  /// respective lists.
+  LegalizeRuleSet &lowerForCartesianProduct(std::initializer_list<LLT> Types0,
+                                            std::initializer_list<LLT> Types1) {
+    using namespace LegalityPredicates;
+    return actionForCartesianProduct(LegalizeAction::Lower, Types0, Types1);
+  }
+  /// The instruction is lowered when when type indexes 0, 1, and 2 are all in
+  /// their respective lists.
+  LegalizeRuleSet &lowerForCartesianProduct(std::initializer_list<LLT> Types0,
+                                            std::initializer_list<LLT> Types1,
+                                            std::initializer_list<LLT> Types2) {
+    using namespace LegalityPredicates;
+    return actionForCartesianProduct(LegalizeAction::Lower, Types0, Types1,
+                                     Types2);
+  }
+
   /// Like legalIf, but for the Libcall action.
   LegalizeRuleSet &libcallIf(LegalityPredicate Predicate) {
+    // We have no choice but conservatively assume that a libcall with a
+    // free-form user provided Predicate properly handles all type indices:
+    markAllTypeIdxsAsCovered();
     return actionIf(LegalizeAction::Libcall, Predicate);
   }
   LegalizeRuleSet &libcallFor(std::initializer_list<LLT> Types) {
@@ -340,12 +532,18 @@
   /// true.
   LegalizeRuleSet &widenScalarIf(LegalityPredicate Predicate,
                                  LegalizeMutation Mutation) {
+    // We have no choice but conservatively assume that an action with a
+    // free-form user provided Predicate properly handles all type indices:
+    markAllTypeIdxsAsCovered();
     return actionIf(LegalizeAction::WidenScalar, Predicate, Mutation);
   }
   /// Narrow the scalar to the one selected by the mutation if the predicate is
   /// true.
   LegalizeRuleSet &narrowScalarIf(LegalityPredicate Predicate,
                                   LegalizeMutation Mutation) {
+    // We have no choice but conservatively assume that an action with a
+    // free-form user provided Predicate properly handles all type indices:
+    markAllTypeIdxsAsCovered();
     return actionIf(LegalizeAction::NarrowScalar, Predicate, Mutation);
   }
 
@@ -353,12 +551,18 @@
   /// predicate is true.
   LegalizeRuleSet &moreElementsIf(LegalityPredicate Predicate,
                                   LegalizeMutation Mutation) {
+    // We have no choice but conservatively assume that an action with a
+    // free-form user provided Predicate properly handles all type indices:
+    markAllTypeIdxsAsCovered();
     return actionIf(LegalizeAction::MoreElements, Predicate, Mutation);
   }
   /// Remove elements to reach the type selected by the mutation if the
   /// predicate is true.
   LegalizeRuleSet &fewerElementsIf(LegalityPredicate Predicate,
                                    LegalizeMutation Mutation) {
+    // We have no choice but conservatively assume that an action with a
+    // free-form user provided Predicate properly handles all type indices:
+    markAllTypeIdxsAsCovered();
     return actionIf(LegalizeAction::FewerElements, Predicate, Mutation);
   }
 
@@ -369,8 +573,15 @@
   LegalizeRuleSet &unsupportedIf(LegalityPredicate Predicate) {
     return actionIf(LegalizeAction::Unsupported, Predicate);
   }
+  LegalizeRuleSet &unsupportedIfMemSizeNotPow2() {
+    return actionIf(LegalizeAction::Unsupported,
+                    LegalityPredicates::memSizeInBytesNotPow2(0));
+  }
 
   LegalizeRuleSet &customIf(LegalityPredicate Predicate) {
+    // We have no choice but conservatively assume that a custom action with a
+    // free-form user provided Predicate properly handles all type indices:
+    markAllTypeIdxsAsCovered();
     return actionIf(LegalizeAction::Custom, Predicate);
   }
   LegalizeRuleSet &customFor(std::initializer_list<LLT> Types) {
@@ -387,54 +598,57 @@
 
   /// Widen the scalar to the next power of two that is at least MinSize.
   /// No effect if the type is not a scalar or is a power of two.
-  LegalizeRuleSet &widenScalarToNextPow2(unsigned TypeIdx, unsigned MinSize = 0) {
+  LegalizeRuleSet &widenScalarToNextPow2(unsigned TypeIdx,
+                                         unsigned MinSize = 0) {
     using namespace LegalityPredicates;
-    return widenScalarIf(
-        sizeNotPow2(TypeIdx),
-        LegalizeMutations::widenScalarToNextPow2(TypeIdx, MinSize));
+    return actionIf(LegalizeAction::WidenScalar, sizeNotPow2(typeIdx(TypeIdx)),
+                    LegalizeMutations::widenScalarToNextPow2(TypeIdx, MinSize));
   }
 
   LegalizeRuleSet &narrowScalar(unsigned TypeIdx, LegalizeMutation Mutation) {
     using namespace LegalityPredicates;
-    return narrowScalarIf(isScalar(TypeIdx), Mutation);
+    return actionIf(LegalizeAction::NarrowScalar, isScalar(typeIdx(TypeIdx)),
+                    Mutation);
   }
 
   /// Ensure the scalar is at least as wide as Ty.
   LegalizeRuleSet &minScalar(unsigned TypeIdx, const LLT &Ty) {
     using namespace LegalityPredicates;
     using namespace LegalizeMutations;
-    return widenScalarIf(narrowerThan(TypeIdx, Ty.getSizeInBits()),
-                         changeTo(TypeIdx, Ty));
+    return actionIf(LegalizeAction::WidenScalar,
+                    narrowerThan(TypeIdx, Ty.getSizeInBits()),
+                    changeTo(typeIdx(TypeIdx), Ty));
   }
 
   /// Ensure the scalar is at most as wide as Ty.
   LegalizeRuleSet &maxScalar(unsigned TypeIdx, const LLT &Ty) {
     using namespace LegalityPredicates;
     using namespace LegalizeMutations;
-    return narrowScalarIf(widerThan(TypeIdx, Ty.getSizeInBits()),
-                          changeTo(TypeIdx, Ty));
+    return actionIf(LegalizeAction::NarrowScalar,
+                    widerThan(TypeIdx, Ty.getSizeInBits()),
+                    changeTo(typeIdx(TypeIdx), Ty));
   }
 
   /// Conditionally limit the maximum size of the scalar.
   /// For example, when the maximum size of one type depends on the size of
   /// another such as extracting N bits from an M bit container.
-  LegalizeRuleSet &maxScalarIf(LegalityPredicate Predicate, unsigned TypeIdx, const LLT &Ty) {
+  LegalizeRuleSet &maxScalarIf(LegalityPredicate Predicate, unsigned TypeIdx,
+                               const LLT &Ty) {
     using namespace LegalityPredicates;
     using namespace LegalizeMutations;
-    return narrowScalarIf(
-        [=](const LegalityQuery &Query) {
-          return widerThan(TypeIdx, Ty.getSizeInBits()) &&
-                 Predicate(Query);
-        },
-        changeTo(TypeIdx, Ty));
+    return actionIf(LegalizeAction::NarrowScalar,
+                    [=](const LegalityQuery &Query) {
+                      return widerThan(TypeIdx, Ty.getSizeInBits()) &&
+                             Predicate(Query);
+                    },
+                    changeTo(typeIdx(TypeIdx), Ty));
   }
 
   /// Limit the range of scalar sizes to MinTy and MaxTy.
-  LegalizeRuleSet &clampScalar(unsigned TypeIdx, const LLT &MinTy, const LLT &MaxTy) {
+  LegalizeRuleSet &clampScalar(unsigned TypeIdx, const LLT &MinTy,
+                               const LLT &MaxTy) {
     assert(MinTy.isScalar() && MaxTy.isScalar() && "Expected scalar types");
-
-    return minScalar(TypeIdx, MinTy)
-        .maxScalar(TypeIdx, MaxTy);
+    return minScalar(TypeIdx, MinTy).maxScalar(TypeIdx, MaxTy);
   }
 
   /// Add more elements to the vector to reach the next power of two.
@@ -442,17 +656,21 @@
   /// two.
   LegalizeRuleSet &moreElementsToNextPow2(unsigned TypeIdx) {
     using namespace LegalityPredicates;
-    return moreElementsIf(numElementsNotPow2(TypeIdx),
-                          LegalizeMutations::moreElementsToNextPow2(TypeIdx));
+    return actionIf(LegalizeAction::MoreElements,
+                    numElementsNotPow2(typeIdx(TypeIdx)),
+                    LegalizeMutations::moreElementsToNextPow2(TypeIdx));
   }
 
   /// Limit the number of elements in EltTy vectors to at least MinElements.
   LegalizeRuleSet &clampMinNumElements(unsigned TypeIdx, const LLT &EltTy,
                                        unsigned MinElements) {
-    return moreElementsIf(
+    // Mark the type index as covered:
+    typeIdx(TypeIdx);
+    return actionIf(
+        LegalizeAction::MoreElements,
         [=](const LegalityQuery &Query) {
           LLT VecTy = Query.Types[TypeIdx];
-          return VecTy.getElementType() == EltTy &&
+          return VecTy.isVector() && VecTy.getElementType() == EltTy &&
                  VecTy.getNumElements() < MinElements;
         },
         [=](const LegalityQuery &Query) {
@@ -464,10 +682,13 @@
   /// Limit the number of elements in EltTy vectors to at most MaxElements.
   LegalizeRuleSet &clampMaxNumElements(unsigned TypeIdx, const LLT &EltTy,
                                        unsigned MaxElements) {
-    return fewerElementsIf(
+    // Mark the type index as covered:
+    typeIdx(TypeIdx);
+    return actionIf(
+        LegalizeAction::FewerElements,
         [=](const LegalityQuery &Query) {
           LLT VecTy = Query.Types[TypeIdx];
-          return VecTy.getElementType() == EltTy &&
+          return VecTy.isVector() && VecTy.getElementType() == EltTy &&
                  VecTy.getNumElements() > MaxElements;
         },
         [=](const LegalityQuery &Query) {
@@ -499,6 +720,11 @@
     return *this;
   }
 
+  /// Check if there is no type index which is obviously not handled by the
+  /// LegalizeRuleSet in any way at all.
+  /// \pre Type indices of the opcode form a dense [0, \p NumTypeIdxs) set.
+  bool verifyTypeIdxsCoverage(unsigned NumTypeIdxs) const;
+
   /// Apply the ruleset to the given LegalityQuery.
   LegalizeActionStep apply(const LegalityQuery &Query) const;
 };
@@ -516,6 +742,10 @@
   /// before any query is made or incorrect results may be returned.
   void computeTables();
 
+  /// Perform simple self-diagnostic and assert if there is anything obviously
+  /// wrong with the actions set up.
+  void verify(const MCInstrInfo &MII) const;
+
   static bool needsLegalizingToDifferentSize(const LegalizeAction Action) {
     using namespace LegalizeActions;
     switch (Action) {
@@ -556,7 +786,7 @@
   /// setAction ({G_ADD, 0, LLT::scalar(32)}, Legal);
   /// setLegalizeScalarToDifferentSizeStrategy(
   ///   G_ADD, 0, widenToLargerTypesAndNarrowToLargest);
-  /// will end up defining getAction({G_ADD, 0, T}) to return the following 
+  /// will end up defining getAction({G_ADD, 0, T}) to return the following
   /// actions for different scalar types T:
   ///  LLT::scalar(1)..LLT::scalar(31): {WidenScalar, 0, LLT::scalar(32)}
   ///  LLT::scalar(32):                 {Legal, 0, LLT::scalar(32)}
@@ -584,7 +814,7 @@
     VectorElementSizeChangeStrategies[OpcodeIdx][TypeIdx] = S;
   }
 
-  /// A SizeChangeStrategy for the common case where legalization for a 
+  /// A SizeChangeStrategy for the common case where legalization for a
   /// particular operation consists of only supporting a specific set of type
   /// sizes. E.g.
   ///   setAction ({G_DIV, 0, LLT::scalar(32)}, Legal);
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/Localizer.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/Localizer.h
index 0a46eb9..1e2d476 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/Localizer.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/Localizer.h
@@ -70,6 +70,8 @@
         .set(MachineFunctionProperties::Property::RegBankSelected);
   }
 
+  void getAnalysisUsage(AnalysisUsage &AU) const override;
+
   bool runOnMachineFunction(MachineFunction &MF) override;
 };
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
index 797f5e5..f77f9a8 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
@@ -222,6 +222,12 @@
 }
 
 template <typename LHS, typename RHS>
+inline BinaryOp_match<LHS, RHS, TargetOpcode::G_FSUB, false>
+m_GFSub(const LHS &L, const RHS &R) {
+  return BinaryOp_match<LHS, RHS, TargetOpcode::G_FSUB, false>(L, R);
+}
+
+template <typename LHS, typename RHS>
 inline BinaryOp_match<LHS, RHS, TargetOpcode::G_AND, true>
 m_GAnd(const LHS &L, const RHS &R) {
   return BinaryOp_match<LHS, RHS, TargetOpcode::G_AND, true>(L, R);
@@ -305,6 +311,11 @@
 }
 
 template <typename SrcTy>
+inline UnaryOp_match<SrcTy, TargetOpcode::G_FNEG> m_GFNeg(const SrcTy &Src) {
+  return UnaryOp_match<SrcTy, TargetOpcode::G_FNEG>(Src);
+}
+
+template <typename SrcTy>
 inline UnaryOp_match<SrcTy, TargetOpcode::COPY> m_Copy(SrcTy &&Src) {
   return UnaryOp_match<SrcTy, TargetOpcode::COPY>(std::forward<SrcTy>(Src));
 }
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
index ef4e0ad..ac1673d 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
@@ -31,11 +31,10 @@
 class MachineInstr;
 class TargetInstrInfo;
 
-/// Helper class to build MachineInstr.
-/// It keeps internally the insertion point and debug location for all
-/// the new instructions we want to create.
-/// This information can be modify via the related setters.
-class MachineIRBuilder {
+/// Class which stores all the state required in a MachineIRBuilder.
+/// Since MachineIRBuilders will only store state in this object, it allows
+/// to transfer BuilderState between different kinds of MachineIRBuilders.
+struct MachineIRBuilderState {
   /// MachineFunction under construction.
   MachineFunction *MF;
   /// Information used to access the description of the opcodes.
@@ -52,15 +51,23 @@
   /// @}
 
   std::function<void(MachineInstr *)> InsertedInstr;
+};
 
+/// Helper class to build MachineInstr.
+/// It keeps internally the insertion point and debug location for all
+/// the new instructions we want to create.
+/// This information can be modify via the related setters.
+class MachineIRBuilderBase {
+
+  MachineIRBuilderState State;
   const TargetInstrInfo &getTII() {
-    assert(TII && "TargetInstrInfo is not set");
-    return *TII;
+    assert(State.TII && "TargetInstrInfo is not set");
+    return *State.TII;
   }
 
   void validateTruncExt(unsigned Dst, unsigned Src, bool IsExtend);
-  MachineInstrBuilder buildBinaryOp(unsigned Opcode, unsigned Res, unsigned Op0, unsigned Op1);
 
+protected:
   unsigned getDestFromArg(unsigned Reg) { return Reg; }
   unsigned getDestFromArg(LLT Ty) {
     return getMF().getRegInfo().createGenericVirtualRegister(Ty);
@@ -88,30 +95,41 @@
     return MIB->getOperand(0).getReg();
   }
 
+  void validateBinaryOp(unsigned Res, unsigned Op0, unsigned Op1);
+
 public:
   /// Some constructors for easy use.
-  MachineIRBuilder() = default;
-  MachineIRBuilder(MachineFunction &MF) { setMF(MF); }
-  MachineIRBuilder(MachineInstr &MI) : MachineIRBuilder(*MI.getMF()) {
+  MachineIRBuilderBase() = default;
+  MachineIRBuilderBase(MachineFunction &MF) { setMF(MF); }
+  MachineIRBuilderBase(MachineInstr &MI) : MachineIRBuilderBase(*MI.getMF()) {
     setInstr(MI);
   }
 
+  MachineIRBuilderBase(const MachineIRBuilderState &BState) : State(BState) {}
+
   /// Getter for the function we currently build.
   MachineFunction &getMF() {
-    assert(MF && "MachineFunction is not set");
-    return *MF;
+    assert(State.MF && "MachineFunction is not set");
+    return *State.MF;
   }
 
+  /// Getter for DebugLoc
+  const DebugLoc &getDL() { return State.DL; }
+
+  /// Getter for MRI
+  MachineRegisterInfo *getMRI() { return State.MRI; }
+
+  /// Getter for the State
+  MachineIRBuilderState &getState() { return State; }
+
   /// Getter for the basic block we currently build.
   MachineBasicBlock &getMBB() {
-    assert(MBB && "MachineBasicBlock is not set");
-    return *MBB;
+    assert(State.MBB && "MachineBasicBlock is not set");
+    return *State.MBB;
   }
 
   /// Current insertion point for new instructions.
-  MachineBasicBlock::iterator getInsertPt() {
-    return II;
-  }
+  MachineBasicBlock::iterator getInsertPt() { return State.II; }
 
   /// Set the insertion point before the specified position.
   /// \pre MBB must be in getMF().
@@ -136,15 +154,16 @@
   /// \name Control where instructions we create are recorded (typically for
   /// visiting again later during legalization).
   /// @{
+  void recordInsertion(MachineInstr *InsertedInstr) const;
   void recordInsertions(std::function<void(MachineInstr *)> InsertedInstr);
   void stopRecordingInsertions();
   /// @}
 
   /// Set the debug location to \p DL for all the next build instructions.
-  void setDebugLoc(const DebugLoc &DL) { this->DL = DL; }
+  void setDebugLoc(const DebugLoc &DL) { this->State.DL = DL; }
 
   /// Get the current instruction's debug location.
-  DebugLoc getDebugLoc() { return DL; }
+  DebugLoc getDebugLoc() { return State.DL; }
 
   /// Build and insert <empty> = \p Opcode <empty>.
   /// The insertion point is the one set by the last call of either
@@ -155,20 +174,6 @@
   /// \return a MachineInstrBuilder for the newly created instruction.
   MachineInstrBuilder buildInstr(unsigned Opcode);
 
-  /// DAG like Generic method for building arbitrary instructions as above.
-  /// \Opc opcode for the instruction.
-  /// \Ty Either LLT/TargetRegisterClass/unsigned types for Dst
-  /// \Args Variadic list of uses of types(unsigned/MachineInstrBuilder)
-  /// Uses of type MachineInstrBuilder will perform
-  /// getOperand(0).getReg() to convert to register.
-  template <typename DstTy, typename... UseArgsTy>
-  MachineInstrBuilder buildInstr(unsigned Opc, DstTy &&Ty,
-                                 UseArgsTy &&... Args) {
-    auto MIB = buildInstr(Opc).addDef(getDestFromArg(Ty));
-    addUsesFromArgs(MIB, std::forward<UseArgsTy>(Args)...);
-    return MIB;
-  }
-
   /// Build but don't insert <empty> = \p Opcode <empty>.
   ///
   /// \pre setMF, setBasicBlock or setMI  must have been called.
@@ -226,59 +231,6 @@
   /// \return a MachineInstrBuilder for the newly created instruction.
   MachineInstrBuilder buildGlobalValue(unsigned Res, const GlobalValue *GV);
 
-  /// Build and insert \p Res = G_ADD \p Op0, \p Op1
-  ///
-  /// G_ADD sets \p Res to the sum of integer parameters \p Op0 and \p Op1,
-  /// truncated to their width.
-  ///
-  /// \pre setBasicBlock or setMI must have been called.
-  /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
-  ///      with the same (scalar or vector) type).
-  ///
-  /// \return a MachineInstrBuilder for the newly created instruction.
-  MachineInstrBuilder buildAdd(unsigned Res, unsigned Op0,
-                               unsigned Op1);
-  template <typename DstTy, typename... UseArgsTy>
-  MachineInstrBuilder buildAdd(DstTy &&Ty, UseArgsTy &&... UseArgs) {
-    unsigned Res = getDestFromArg(Ty);
-    return buildAdd(Res, (getRegFromArg(UseArgs))...);
-  }
-
-  /// Build and insert \p Res = G_SUB \p Op0, \p Op1
-  ///
-  /// G_SUB sets \p Res to the sum of integer parameters \p Op0 and \p Op1,
-  /// truncated to their width.
-  ///
-  /// \pre setBasicBlock or setMI must have been called.
-  /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
-  ///      with the same (scalar or vector) type).
-  ///
-  /// \return a MachineInstrBuilder for the newly created instruction.
-  template <typename DstTy, typename... UseArgsTy>
-  MachineInstrBuilder buildSub(DstTy &&Ty, UseArgsTy &&... UseArgs) {
-    unsigned Res = getDestFromArg(Ty);
-    return buildSub(Res, (getRegFromArg(UseArgs))...);
-  }
-  MachineInstrBuilder buildSub(unsigned Res, unsigned Op0,
-                               unsigned Op1);
-
-  /// Build and insert \p Res = G_MUL \p Op0, \p Op1
-  ///
-  /// G_MUL sets \p Res to the sum of integer parameters \p Op0 and \p Op1,
-  /// truncated to their width.
-  ///
-  /// \pre setBasicBlock or setMI must have been called.
-  /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
-  ///      with the same (scalar or vector) type).
-  ///
-  /// \return a MachineInstrBuilder for the newly created instruction.
-  template <typename DstTy, typename... UseArgsTy>
-  MachineInstrBuilder buildMul(DstTy &&Ty, UseArgsTy &&... UseArgs) {
-    unsigned Res = getDestFromArg(Ty);
-    return buildMul(Res, (getRegFromArg(UseArgs))...);
-  }
-  MachineInstrBuilder buildMul(unsigned Res, unsigned Op0,
-                               unsigned Op1);
 
   /// Build and insert \p Res = G_GEP \p Op0, \p Op1
   ///
@@ -347,38 +299,6 @@
   MachineInstrBuilder buildUAdde(unsigned Res, unsigned CarryOut, unsigned Op0,
                                  unsigned Op1, unsigned CarryIn);
 
-  /// Build and insert \p Res = G_AND \p Op0, \p Op1
-  ///
-  /// G_AND sets \p Res to the bitwise and of integer parameters \p Op0 and \p
-  /// Op1.
-  ///
-  /// \pre setBasicBlock or setMI must have been called.
-  /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
-  ///      with the same (scalar or vector) type).
-  ///
-  /// \return a MachineInstrBuilder for the newly created instruction.
-  template <typename DstTy, typename... UseArgsTy>
-  MachineInstrBuilder buildAnd(DstTy &&Dst, UseArgsTy &&... UseArgs) {
-    return buildAnd(getDestFromArg(Dst), getRegFromArg(UseArgs)...);
-  }
-  MachineInstrBuilder buildAnd(unsigned Res, unsigned Op0,
-                               unsigned Op1);
-
-  /// Build and insert \p Res = G_OR \p Op0, \p Op1
-  ///
-  /// G_OR sets \p Res to the bitwise or of integer parameters \p Op0 and \p
-  /// Op1.
-  ///
-  /// \pre setBasicBlock or setMI must have been called.
-  /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
-  ///      with the same (scalar or vector) type).
-  ///
-  /// \return a MachineInstrBuilder for the newly created instruction.
-  template <typename DstTy, typename... UseArgsTy>
-  MachineInstrBuilder buildOr(DstTy &&Dst, UseArgsTy &&... UseArgs) {
-    return buildOr(getDestFromArg(Dst), getRegFromArg(UseArgs)...);
-  }
-  MachineInstrBuilder buildOr(unsigned Res, unsigned Op0, unsigned Op1);
 
   /// Build and insert \p Res = G_ANYEXT \p Op0
   ///
@@ -504,7 +424,7 @@
   /// \pre setBasicBlock or setMI must have been called.
   ///
   /// \return a MachineInstrBuilder for the newly created instruction.
-  MachineInstrBuilder buildBr(MachineBasicBlock &BB);
+  MachineInstrBuilder buildBr(MachineBasicBlock &Dest);
 
   /// Build and insert G_BRCOND \p Tst, \p Dest
   ///
@@ -518,7 +438,7 @@
   ///      depend on bit 0 (for now).
   ///
   /// \return The newly created instruction.
-  MachineInstrBuilder buildBrCond(unsigned Tst, MachineBasicBlock &BB);
+  MachineInstrBuilder buildBrCond(unsigned Tst, MachineBasicBlock &Dest);
 
   /// Build and insert G_BRINDIRECT \p Tgt
   ///
@@ -602,6 +522,18 @@
   MachineInstrBuilder buildLoad(unsigned Res, unsigned Addr,
                                 MachineMemOperand &MMO);
 
+  /// Build and insert `Res = <opcode> Addr, MMO`.
+  ///
+  /// Loads the value stored at \p Addr. Puts the result in \p Res.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p Res must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildLoadInstr(unsigned Opcode, unsigned Res,
+                                     unsigned Addr, MachineMemOperand &MMO);
+
   /// Build and insert `G_STORE Val, Addr, MMO`.
   ///
   /// Stores the value \p Val to \p Addr.
@@ -626,7 +558,7 @@
   template <typename DstType> MachineInstrBuilder buildUndef(DstType &&Res) {
     return buildUndef(getDestFromArg(Res));
   }
-  MachineInstrBuilder buildUndef(unsigned Dst);
+  MachineInstrBuilder buildUndef(unsigned Res);
 
   /// Build and insert instructions to put \p Ops together at the specified p
   /// Indices to form a larger register.
@@ -785,7 +717,28 @@
   MachineInstrBuilder buildExtractVectorElement(unsigned Res, unsigned Val,
                                                 unsigned Idx);
 
-  /// Build and insert `OldValRes = G_ATOMIC_CMPXCHG Addr, CmpVal, NewVal,
+  /// Build and insert `OldValRes<def>, SuccessRes<def> =
+  /// G_ATOMIC_CMPXCHG_WITH_SUCCESS Addr, CmpVal, NewVal, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with \p NewVal if it is currently
+  /// \p CmpVal otherwise leaves it unchanged. Puts the original value from \p
+  /// Addr in \p Res, along with an s1 indicating whether it was replaced.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register of scalar type.
+  /// \pre \p SuccessRes must be a generic virtual register of scalar type. It
+  ///      will be assigned 0 on failure and 1 on success.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, \p CmpVal, and \p NewVal must be generic virtual
+  ///      registers of the same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder
+  buildAtomicCmpXchgWithSuccess(unsigned OldValRes, unsigned SuccessRes,
+                                unsigned Addr, unsigned CmpVal, unsigned NewVal,
+                                MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMIC_CMPXCHG Addr, CmpVal, NewVal,
   /// MMO`.
   ///
   /// Atomically replace the value at \p Addr with \p NewVal if it is currently
@@ -802,6 +755,338 @@
   MachineInstrBuilder buildAtomicCmpXchg(unsigned OldValRes, unsigned Addr,
                                          unsigned CmpVal, unsigned NewVal,
                                          MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_<Opcode> Addr, Val, MMO`.
+  ///
+  /// Atomically read-modify-update the value at \p Addr with \p Val. Puts the
+  /// original value from \p Addr in \p OldValRes. The modification is
+  /// determined by the opcode.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMW(unsigned Opcode, unsigned OldValRes,
+                                     unsigned Addr, unsigned Val,
+                                     MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_XCHG Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with \p Val. Puts the original
+  /// value from \p Addr in \p OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWXchg(unsigned OldValRes, unsigned Addr,
+                                         unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_ADD Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with the addition of \p Val and
+  /// the original value. Puts the original value from \p Addr in \p OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWAdd(unsigned OldValRes, unsigned Addr,
+                                         unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_SUB Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with the subtraction of \p Val and
+  /// the original value. Puts the original value from \p Addr in \p OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWSub(unsigned OldValRes, unsigned Addr,
+                                         unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_AND Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with the bitwise and of \p Val and
+  /// the original value. Puts the original value from \p Addr in \p OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWAnd(unsigned OldValRes, unsigned Addr,
+                                         unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_NAND Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with the bitwise nand of \p Val
+  /// and the original value. Puts the original value from \p Addr in \p
+  /// OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWNand(unsigned OldValRes, unsigned Addr,
+                                         unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_OR Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with the bitwise or of \p Val and
+  /// the original value. Puts the original value from \p Addr in \p OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWOr(unsigned OldValRes, unsigned Addr,
+                                       unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_XOR Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with the bitwise xor of \p Val and
+  /// the original value. Puts the original value from \p Addr in \p OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWXor(unsigned OldValRes, unsigned Addr,
+                                        unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_MAX Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with the signed maximum of \p
+  /// Val and the original value. Puts the original value from \p Addr in \p
+  /// OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWMax(unsigned OldValRes, unsigned Addr,
+                                        unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_MIN Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with the signed minimum of \p
+  /// Val and the original value. Puts the original value from \p Addr in \p
+  /// OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWMin(unsigned OldValRes, unsigned Addr,
+                                        unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_UMAX Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with the unsigned maximum of \p
+  /// Val and the original value. Puts the original value from \p Addr in \p
+  /// OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWUmax(unsigned OldValRes, unsigned Addr,
+                                         unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert `OldValRes<def> = G_ATOMICRMW_UMIN Addr, Val, MMO`.
+  ///
+  /// Atomically replace the value at \p Addr with the unsigned minimum of \p
+  /// Val and the original value. Puts the original value from \p Addr in \p
+  /// OldValRes.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p OldValRes must be a generic virtual register.
+  /// \pre \p Addr must be a generic virtual register with pointer type.
+  /// \pre \p OldValRes, and \p Val must be generic virtual registers of the
+  ///      same type.
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildAtomicRMWUmin(unsigned OldValRes, unsigned Addr,
+                                         unsigned Val, MachineMemOperand &MMO);
+
+  /// Build and insert \p Res = G_BLOCK_ADDR \p BA
+  ///
+  /// G_BLOCK_ADDR computes the address of a basic block.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p Res must be a generic virtual register of a pointer type.
+  ///
+  /// \return The newly created instruction.
+  MachineInstrBuilder buildBlockAddress(unsigned Res, const BlockAddress *BA);
+};
+
+/// A CRTP class that contains methods for building instructions that can
+/// be constant folded. MachineIRBuilders that want to inherit from this will
+/// need to implement buildBinaryOp (for constant folding binary ops).
+/// Alternatively, they can implement buildInstr(Opc, Dst, Uses...) to perform
+/// additional folding for Opc.
+template <typename Base>
+class FoldableInstructionsBuilder : public MachineIRBuilderBase {
+  Base &base() { return static_cast<Base &>(*this); }
+
+public:
+  using MachineIRBuilderBase::MachineIRBuilderBase;
+  /// Build and insert \p Res = G_ADD \p Op0, \p Op1
+  ///
+  /// G_ADD sets \p Res to the sum of integer parameters \p Op0 and \p Op1,
+  /// truncated to their width.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
+  ///      with the same (scalar or vector) type).
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+
+  MachineInstrBuilder buildAdd(unsigned Dst, unsigned Src0, unsigned Src1) {
+    return base().buildBinaryOp(TargetOpcode::G_ADD, Dst, Src0, Src1);
+  }
+  template <typename DstTy, typename... UseArgsTy>
+  MachineInstrBuilder buildAdd(DstTy &&Ty, UseArgsTy &&... UseArgs) {
+    unsigned Res = base().getDestFromArg(Ty);
+    return base().buildAdd(Res, (base().getRegFromArg(UseArgs))...);
+  }
+
+  /// Build and insert \p Res = G_SUB \p Op0, \p Op1
+  ///
+  /// G_SUB sets \p Res to the sum of integer parameters \p Op0 and \p Op1,
+  /// truncated to their width.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
+  ///      with the same (scalar or vector) type).
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+
+  MachineInstrBuilder buildSub(unsigned Dst, unsigned Src0, unsigned Src1) {
+    return base().buildBinaryOp(TargetOpcode::G_SUB, Dst, Src0, Src1);
+  }
+  template <typename DstTy, typename... UseArgsTy>
+  MachineInstrBuilder buildSub(DstTy &&Ty, UseArgsTy &&... UseArgs) {
+    unsigned Res = base().getDestFromArg(Ty);
+    return base().buildSub(Res, (base().getRegFromArg(UseArgs))...);
+  }
+
+  /// Build and insert \p Res = G_MUL \p Op0, \p Op1
+  ///
+  /// G_MUL sets \p Res to the sum of integer parameters \p Op0 and \p Op1,
+  /// truncated to their width.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
+  ///      with the same (scalar or vector) type).
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildMul(unsigned Dst, unsigned Src0, unsigned Src1) {
+    return base().buildBinaryOp(TargetOpcode::G_MUL, Dst, Src0, Src1);
+  }
+  template <typename DstTy, typename... UseArgsTy>
+  MachineInstrBuilder buildMul(DstTy &&Ty, UseArgsTy &&... UseArgs) {
+    unsigned Res = base().getDestFromArg(Ty);
+    return base().buildMul(Res, (base().getRegFromArg(UseArgs))...);
+  }
+
+  /// Build and insert \p Res = G_AND \p Op0, \p Op1
+  ///
+  /// G_AND sets \p Res to the bitwise and of integer parameters \p Op0 and \p
+  /// Op1.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
+  ///      with the same (scalar or vector) type).
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+
+  MachineInstrBuilder buildAnd(unsigned Dst, unsigned Src0, unsigned Src1) {
+    return base().buildBinaryOp(TargetOpcode::G_AND, Dst, Src0, Src1);
+  }
+  template <typename DstTy, typename... UseArgsTy>
+  MachineInstrBuilder buildAnd(DstTy &&Ty, UseArgsTy &&... UseArgs) {
+    unsigned Res = base().getDestFromArg(Ty);
+    return base().buildAnd(Res, (base().getRegFromArg(UseArgs))...);
+  }
+
+  /// Build and insert \p Res = G_OR \p Op0, \p Op1
+  ///
+  /// G_OR sets \p Res to the bitwise or of integer parameters \p Op0 and \p
+  /// Op1.
+  ///
+  /// \pre setBasicBlock or setMI must have been called.
+  /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
+  ///      with the same (scalar or vector) type).
+  ///
+  /// \return a MachineInstrBuilder for the newly created instruction.
+  MachineInstrBuilder buildOr(unsigned Dst, unsigned Src0, unsigned Src1) {
+    return base().buildBinaryOp(TargetOpcode::G_OR, Dst, Src0, Src1);
+  }
+  template <typename DstTy, typename... UseArgsTy>
+  MachineInstrBuilder buildOr(DstTy &&Ty, UseArgsTy &&... UseArgs) {
+    unsigned Res = base().getDestFromArg(Ty);
+    return base().buildOr(Res, (base().getRegFromArg(UseArgs))...);
+  }
+};
+
+class MachineIRBuilder : public FoldableInstructionsBuilder<MachineIRBuilder> {
+public:
+  using FoldableInstructionsBuilder<
+      MachineIRBuilder>::FoldableInstructionsBuilder;
+  MachineInstrBuilder buildBinaryOp(unsigned Opcode, unsigned Dst,
+                                    unsigned Src0, unsigned Src1) {
+    validateBinaryOp(Dst, Src0, Src1);
+    return buildInstr(Opcode).addDef(Dst).addUse(Src0).addUse(Src1);
+  }
+  using FoldableInstructionsBuilder<MachineIRBuilder>::buildInstr;
+  /// DAG like Generic method for building arbitrary instructions as above.
+  /// \Opc opcode for the instruction.
+  /// \Ty Either LLT/TargetRegisterClass/unsigned types for Dst
+  /// \Args Variadic list of uses of types(unsigned/MachineInstrBuilder)
+  /// Uses of type MachineInstrBuilder will perform
+  /// getOperand(0).getReg() to convert to register.
+  template <typename DstTy, typename... UseArgsTy>
+  MachineInstrBuilder buildInstr(unsigned Opc, DstTy &&Ty,
+                                 UseArgsTy &&... Args) {
+    auto MIB = buildInstr(Opc).addDef(getDestFromArg(Ty));
+    addUsesFromArgs(MIB, std::forward<UseArgsTy>(Args)...);
+    return MIB;
+  }
 };
 
 } // End namespace llvm.
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/RegisterBank.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/RegisterBank.h
index 5d75842..d5612e1 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/RegisterBank.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/RegisterBank.h
@@ -42,7 +42,7 @@
 
 public:
   RegisterBank(unsigned ID, const char *Name, unsigned Size,
-               const uint32_t *ContainedRegClasses, unsigned NumRegClasses);
+               const uint32_t *CoveredClasses, unsigned NumRegClasses);
 
   /// Get the identifier of this register bank.
   unsigned getID() const { return ID; }
diff --git a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/Utils.h b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/Utils.h
index 837035f..51e3a27 100644
--- a/linux-x64/clang/include/llvm/CodeGen/GlobalISel/Utils.h
+++ b/linux-x64/clang/include/llvm/CodeGen/GlobalISel/Utils.h
@@ -19,6 +19,7 @@
 
 namespace llvm {
 
+class AnalysisUsage;
 class MachineFunction;
 class MachineInstr;
 class MachineOperand;
@@ -102,5 +103,10 @@
 
 /// Returns an APFloat from Val converted to the appropriate size.
 APFloat getAPFloatFromSize(double Val, unsigned Size);
+
+/// Modify analysis usage so it preserves passes required for the SelectionDAG
+/// fallback.
+void getSelectionDAGFallbackAnalysisUsage(AnalysisUsage &AU);
+
 } // End namespace llvm.
 #endif
diff --git a/linux-x64/clang/include/llvm/CodeGen/ISDOpcodes.h b/linux-x64/clang/include/llvm/CodeGen/ISDOpcodes.h
index ea94871..80bd796 100644
--- a/linux-x64/clang/include/llvm/CodeGen/ISDOpcodes.h
+++ b/linux-x64/clang/include/llvm/CodeGen/ISDOpcodes.h
@@ -377,6 +377,8 @@
     /// When the 1st operand is a vector, the shift amount must be in the same
     /// type. (TLI.getShiftAmountTy() will return the same type when the input
     /// type is a vector.)
+    /// For rotates, the shift amount is treated as an unsigned amount modulo
+    /// the element size of the first operand.
     SHL, SRA, SRL, ROTL, ROTR,
 
     /// Byte Swap and Counting operators.
@@ -412,19 +414,11 @@
     /// then the result type must also be a vector type.
     SETCC,
 
-    /// Like SetCC, ops #0 and #1 are the LHS and RHS operands to compare, and
-    /// op #2 is a *carry value*. This operator checks the result of
-    /// "LHS - RHS - Carry", and can be used to compare two wide integers:
-    /// (setcce lhshi rhshi (subc lhslo rhslo) cc). Only valid for integers.
-    /// FIXME: This node is deprecated in favor of SETCCCARRY.
-    /// It is kept around for now to provide a smooth transition path
-    /// toward the use of SETCCCARRY and will eventually be removed.
-    SETCCE,
-
     /// Like SetCC, ops #0 and #1 are the LHS and RHS operands to compare, but
     /// op #2 is a boolean indicating if there is an incoming carry. This
     /// operator checks the result of "LHS - RHS - Carry", and can be used to
-    /// compare two wide integers: (setcce lhshi rhshi (subc lhslo rhslo) cc).
+    /// compare two wide integers:
+    /// (setcccarry lhshi rhshi (subcarry lhslo rhslo) cc).
     /// Only valid for integers.
     SETCCCARRY,
 
@@ -495,7 +489,8 @@
     ZERO_EXTEND_VECTOR_INREG,
 
     /// FP_TO_[US]INT - Convert a floating point value to a signed or unsigned
-    /// integer.
+    /// integer. These have the same semantics as fptosi and fptoui in IR. If
+    /// the FP value cannot fit in the integer type, the results are undefined.
     FP_TO_SINT,
     FP_TO_UINT,
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/LatencyPriorityQueue.h b/linux-x64/clang/include/llvm/CodeGen/LatencyPriorityQueue.h
index 988e6d6..9b8d83c 100644
--- a/linux-x64/clang/include/llvm/CodeGen/LatencyPriorityQueue.h
+++ b/linux-x64/clang/include/llvm/CodeGen/LatencyPriorityQueue.h
@@ -17,6 +17,7 @@
 #define LLVM_CODEGEN_LATENCYPRIORITYQUEUE_H
 
 #include "llvm/CodeGen/ScheduleDAG.h"
+#include "llvm/Config/llvm-config.h"
 
 namespace llvm {
   class LatencyPriorityQueue;
@@ -26,7 +27,7 @@
     LatencyPriorityQueue *PQ;
     explicit latency_sort(LatencyPriorityQueue *pq) : PQ(pq) {}
 
-    bool operator()(const SUnit* left, const SUnit* right) const;
+    bool operator()(const SUnit* LHS, const SUnit* RHS) const;
   };
 
   class LatencyPriorityQueue : public SchedulingPriorityQueue {
@@ -83,11 +84,15 @@
 
     void remove(SUnit *SU) override;
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
+    LLVM_DUMP_METHOD void dump(ScheduleDAG *DAG) const override;
+#endif
+
     // scheduledNode - As nodes are scheduled, we look to see if there are any
     // successor nodes that have a single unscheduled predecessor.  If so, that
     // single predecessor has a higher priority, since scheduling it will make
     // the node available.
-    void scheduledNode(SUnit *Node) override;
+    void scheduledNode(SUnit *SU) override;
 
 private:
     void AdjustPriorityOfUnscheduledPreds(SUnit *SU);
diff --git a/linux-x64/clang/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h b/linux-x64/clang/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
index 848ee1d..221f16a 100644
--- a/linux-x64/clang/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
@@ -23,7 +23,7 @@
 #include "llvm/CodeGen/MachineLoopInfo.h"
 
 namespace llvm {
-/// \brief This is an alternative analysis pass to MachineBlockFrequencyInfo.
+/// This is an alternative analysis pass to MachineBlockFrequencyInfo.
 /// The difference is that with this pass, the block frequencies are not
 /// computed when the analysis pass is executed but rather when the BFI result
 /// is explicitly requested by the analysis client.
@@ -49,7 +49,7 @@
   /// The function.
   MachineFunction *MF = nullptr;
 
-  /// \brief Calculate MBFI and all other analyses that's not available and
+  /// Calculate MBFI and all other analyses that's not available and
   /// required by BFI.
   MachineBlockFrequencyInfo &calculateIfNotAvailable() const;
 
@@ -58,10 +58,10 @@
 
   LazyMachineBlockFrequencyInfoPass();
 
-  /// \brief Compute and return the block frequencies.
+  /// Compute and return the block frequencies.
   MachineBlockFrequencyInfo &getBFI() { return calculateIfNotAvailable(); }
 
-  /// \brief Compute and return the block frequencies.
+  /// Compute and return the block frequencies.
   const MachineBlockFrequencyInfo &getBFI() const {
     return calculateIfNotAvailable();
   }
diff --git a/linux-x64/clang/include/llvm/CodeGen/LiveInterval.h b/linux-x64/clang/include/llvm/CodeGen/LiveInterval.h
index f4fa872..cdf9ad2 100644
--- a/linux-x64/clang/include/llvm/CodeGen/LiveInterval.h
+++ b/linux-x64/clang/include/llvm/CodeGen/LiveInterval.h
@@ -326,7 +326,7 @@
     /// createDeadDef - Make sure the range has a value defined at Def.
     /// If one already exists, return it. Otherwise allocate a new value and
     /// add liveness for a dead def.
-    VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator &VNInfoAllocator);
+    VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator &VNIAlloc);
 
     /// Create a def of value @p VNI. Return @p VNI. If there already exists
     /// a definition at VNI->def, the value defined there must be @p VNI.
@@ -454,7 +454,7 @@
     /// overlapsFrom - Return true if the intersection of the two live ranges
     /// is not empty.  The specified iterator is a hint that we can begin
     /// scanning the Other range starting at I.
-    bool overlapsFrom(const LiveRange &Other, const_iterator I) const;
+    bool overlapsFrom(const LiveRange &Other, const_iterator StartPos) const;
 
     /// Returns true if all segments of the @p Other live range are completely
     /// covered by this live range.
@@ -482,7 +482,7 @@
     /// @p Use, return {nullptr, false}. If there is an "undef" before @p Use,
     /// return {nullptr, true}.
     std::pair<VNInfo*,bool> extendInBlock(ArrayRef<SlotIndex> Undefs,
-        SlotIndex StartIdx, SlotIndex Use);
+        SlotIndex StartIdx, SlotIndex Kill);
 
     /// Simplified version of the above "extendInBlock", which assumes that
     /// no register lanes are undefined by <def,read-undef> operands.
@@ -609,7 +609,7 @@
     void print(raw_ostream &OS) const;
     void dump() const;
 
-    /// \brief Walk the range and assert if any invariants fail to hold.
+    /// Walk the range and assert if any invariants fail to hold.
     ///
     /// Note that this is a no-op when asserts are disabled.
 #ifdef NDEBUG
@@ -791,7 +791,7 @@
     ///    L00E0 and L0010 and the L000F lane into L0007 and L0008. The Mod
     ///    function will be applied to the L0010 and L0008 subranges.
     void refineSubRanges(BumpPtrAllocator &Allocator, LaneBitmask LaneMask,
-                         std::function<void(LiveInterval::SubRange&)> Mod);
+                         std::function<void(LiveInterval::SubRange&)> Apply);
 
     bool operator<(const LiveInterval& other) const {
       const SlotIndex &thisIndex = beginIndex();
@@ -802,7 +802,7 @@
     void print(raw_ostream &OS) const;
     void dump() const;
 
-    /// \brief Walks the interval and assert if any invariants fail to hold.
+    /// Walks the interval and assert if any invariants fail to hold.
     ///
     /// Note that this is a no-op when asserts are disabled.
 #ifdef NDEBUG
diff --git a/linux-x64/clang/include/llvm/CodeGen/LiveIntervalUnion.h b/linux-x64/clang/include/llvm/CodeGen/LiveIntervalUnion.h
index b922e54..9e2799b 100644
--- a/linux-x64/clang/include/llvm/CodeGen/LiveIntervalUnion.h
+++ b/linux-x64/clang/include/llvm/CodeGen/LiveIntervalUnion.h
@@ -154,7 +154,7 @@
         unsigned MaxInterferingRegs = std::numeric_limits<unsigned>::max());
 
     // Was this virtual register visited during collectInterferingVRegs?
-    bool isSeenInterference(LiveInterval *VReg) const;
+    bool isSeenInterference(LiveInterval *VirtReg) const;
 
     // Did collectInterferingVRegs collect all interferences?
     bool seenAllInterferences() const { return SeenAllInterferences; }
diff --git a/linux-x64/clang/include/llvm/CodeGen/LiveIntervals.h b/linux-x64/clang/include/llvm/CodeGen/LiveIntervals.h
index 1150f3c..291a07a 100644
--- a/linux-x64/clang/include/llvm/CodeGen/LiveIntervals.h
+++ b/linux-x64/clang/include/llvm/CodeGen/LiveIntervals.h
@@ -105,7 +105,7 @@
     /// Calculate the spill weight to assign to a single instruction.
     static float getSpillWeight(bool isDef, bool isUse,
                                 const MachineBlockFrequencyInfo *MBFI,
-                                const MachineInstr &Instr);
+                                const MachineInstr &MI);
 
     /// Calculate the spill weight to assign to a single instruction.
     static float getSpillWeight(bool isDef, bool isUse,
@@ -462,6 +462,10 @@
     void computeRegUnitRange(LiveRange&, unsigned Unit);
     void computeVirtRegInterval(LiveInterval&);
 
+    using ShrinkToUsesWorkList = SmallVector<std::pair<SlotIndex, VNInfo*>, 16>;
+    void extendSegmentsToUses(LiveRange &Segments,
+                              ShrinkToUsesWorkList &WorkList, unsigned Reg,
+                              LaneBitmask LaneMask);
 
     /// Helper function for repairIntervalsInRange(), walks backwards and
     /// creates/modifies live segments in \p LR to match the operands found.
diff --git a/linux-x64/clang/include/llvm/CodeGen/LivePhysRegs.h b/linux-x64/clang/include/llvm/CodeGen/LivePhysRegs.h
index f9aab0d..301a450 100644
--- a/linux-x64/clang/include/llvm/CodeGen/LivePhysRegs.h
+++ b/linux-x64/clang/include/llvm/CodeGen/LivePhysRegs.h
@@ -44,7 +44,7 @@
 class MachineRegisterInfo;
 class raw_ostream;
 
-/// \brief A set of physical registers with utility functions to track liveness
+/// A set of physical registers with utility functions to track liveness
 /// when walking backward/forward through a basic block.
 class LivePhysRegs {
   const TargetRegisterInfo *TRI = nullptr;
@@ -84,7 +84,7 @@
       LiveRegs.insert(*SubRegs);
   }
 
-  /// \brief Removes a physical register, all its sub-registers, and all its
+  /// Removes a physical register, all its sub-registers, and all its
   /// super-registers from the set.
   void removeReg(unsigned Reg) {
     assert(TRI && "LivePhysRegs is not initialized.");
@@ -98,7 +98,7 @@
         SmallVectorImpl<std::pair<unsigned, const MachineOperand*>> *Clobbers =
         nullptr);
 
-  /// \brief Returns true if register \p Reg is contained in the set. This also
+  /// Returns true if register \p Reg is contained in the set. This also
   /// works if only the super register of \p Reg has been defined, because
   /// addReg() always adds all sub-registers to the set as well.
   /// Note: Returns false if just some sub registers are live, use available()
@@ -155,7 +155,7 @@
   void dump() const;
 
 private:
-  /// \brief Adds live-in registers from basic block \p MBB, taking associated
+  /// Adds live-in registers from basic block \p MBB, taking associated
   /// lane masks into consideration.
   void addBlockLiveIns(const MachineBasicBlock &MBB);
 
@@ -169,7 +169,7 @@
   return OS;
 }
 
-/// \brief Computes registers live-in to \p MBB assuming all of its successors
+/// Computes registers live-in to \p MBB assuming all of its successors
 /// live-in lists are up-to-date. Puts the result into the given LivePhysReg
 /// instance \p LiveRegs.
 void computeLiveIns(LivePhysRegs &LiveRegs, const MachineBasicBlock &MBB);
@@ -185,6 +185,13 @@
 void computeAndAddLiveIns(LivePhysRegs &LiveRegs,
                           MachineBasicBlock &MBB);
 
+/// Convenience function for recomputing live-in's for \p MBB.
+static inline void recomputeLiveIns(MachineBasicBlock &MBB) {
+  LivePhysRegs LPR;
+  MBB.clearLiveIns();
+  computeAndAddLiveIns(LPR, MBB);
+}
+
 } // end namespace llvm
 
 #endif // LLVM_CODEGEN_LIVEPHYSREGS_H
diff --git a/linux-x64/clang/include/llvm/CodeGen/LiveRangeEdit.h b/linux-x64/clang/include/llvm/CodeGen/LiveRangeEdit.h
index 82b1f0b..5383029 100644
--- a/linux-x64/clang/include/llvm/CodeGen/LiveRangeEdit.h
+++ b/linux-x64/clang/include/llvm/CodeGen/LiveRangeEdit.h
@@ -117,7 +117,7 @@
   /// registers are created.
   void MRI_NoteNewVirtualRegister(unsigned VReg) override;
 
-  /// \brief Check if MachineOperand \p MO is a last use/kill either in the
+  /// Check if MachineOperand \p MO is a last use/kill either in the
   /// main live range of \p LI or in one of the matching subregister ranges.
   bool useIsKill(const LiveInterval &LI, const MachineOperand &MO) const;
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/LiveRegUnits.h b/linux-x64/clang/include/llvm/CodeGen/LiveRegUnits.h
index dc4956d..2495459 100644
--- a/linux-x64/clang/include/llvm/CodeGen/LiveRegUnits.h
+++ b/linux-x64/clang/include/llvm/CodeGen/LiveRegUnits.h
@@ -16,6 +16,7 @@
 #define LLVM_CODEGEN_LIVEREGUNITS_H
 
 #include "llvm/ADT/BitVector.h"
+#include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/MC/LaneBitmask.h"
 #include "llvm/MC/MCRegisterInfo.h"
@@ -40,6 +41,36 @@
     init(TRI);
   }
 
+  /// For a machine instruction \p MI, adds all register units used in
+  /// \p UsedRegUnits and defined or clobbered in \p ModifiedRegUnits. This is
+  /// useful when walking over a range of instructions to track registers
+  /// used or defined seperately.
+  static void accumulateUsedDefed(const MachineInstr &MI,
+                                  LiveRegUnits &ModifiedRegUnits,
+                                  LiveRegUnits &UsedRegUnits,
+                                  const TargetRegisterInfo *TRI) {
+    for (ConstMIBundleOperands O(MI); O.isValid(); ++O) {
+      if (O->isRegMask())
+        ModifiedRegUnits.addRegsInMask(O->getRegMask());
+      if (!O->isReg())
+        continue;
+      unsigned Reg = O->getReg();
+      if (!TargetRegisterInfo::isPhysicalRegister(Reg))
+        continue;
+      if (O->isDef()) {
+        // Some architectures (e.g. AArch64 XZR/WZR) have registers that are
+        // constant and may be used as destinations to indicate the generated
+        // value is discarded. No need to track such case as a def.
+        if (!TRI->isConstantPhysReg(Reg))
+          ModifiedRegUnits.addReg(Reg);
+      } else {
+        assert(O->isUse() && "Reg operand not a def and not a use");
+        UsedRegUnits.addReg(Reg);
+      }
+    }
+    return;
+  }
+
   /// Initialize and clear the set.
   void init(const TargetRegisterInfo &TRI) {
     this->TRI = &TRI;
@@ -59,7 +90,7 @@
       Units.set(*Unit);
   }
 
-  /// \brief Adds register units covered by physical register \p Reg that are
+  /// Adds register units covered by physical register \p Reg that are
   /// part of the lanemask \p Mask.
   void addRegMasked(unsigned Reg, LaneBitmask Mask) {
     for (MCRegUnitMaskIterator Unit(Reg, TRI); Unit.isValid(); ++Unit) {
diff --git a/linux-x64/clang/include/llvm/CodeGen/LoopTraversal.h b/linux-x64/clang/include/llvm/CodeGen/LoopTraversal.h
index a816f6d..750da01 100644
--- a/linux-x64/clang/include/llvm/CodeGen/LoopTraversal.h
+++ b/linux-x64/clang/include/llvm/CodeGen/LoopTraversal.h
@@ -101,7 +101,7 @@
   };
   LoopTraversal() {}
 
-  /// \brief Identifies basic blocks that are part of loops and should to be
+  /// Identifies basic blocks that are part of loops and should to be
   ///  visited twice and returns efficient traversal order for all the blocks.
   typedef SmallVector<TraversedMBBInfo, 4> TraversalOrder;
   TraversalOrder traverse(MachineFunction &MF);
diff --git a/linux-x64/clang/include/llvm/CodeGen/MIRParser/MIRParser.h b/linux-x64/clang/include/llvm/CodeGen/MIRParser/MIRParser.h
index b631a8c..e199a1f 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MIRParser/MIRParser.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MIRParser/MIRParser.h
@@ -45,7 +45,7 @@
   /// \returns nullptr if a parsing error occurred.
   std::unique_ptr<Module> parseIRModule();
 
-  /// \brief Parses MachineFunctions in the MIR file and add them to the given
+  /// Parses MachineFunctions in the MIR file and add them to the given
   /// MachineModuleInfo \p MMI.
   ///
   /// \returns true if an error occurred.
diff --git a/linux-x64/clang/include/llvm/CodeGen/MIRPrinter.h b/linux-x64/clang/include/llvm/CodeGen/MIRPrinter.h
index c73adc3..078c4b2 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MIRPrinter.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MIRPrinter.h
@@ -38,7 +38,7 @@
 /// this funciton and the parser will use this function to construct a list if
 /// it is missing.
 void guessSuccessors(const MachineBasicBlock &MBB,
-                     SmallVectorImpl<MachineBasicBlock*> &Successors,
+                     SmallVectorImpl<MachineBasicBlock*> &Result,
                      bool &IsFallthrough);
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/CodeGen/MIRYamlMapping.h b/linux-x64/clang/include/llvm/CodeGen/MIRYamlMapping.h
index b75f9c8..7f46406 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MIRYamlMapping.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MIRYamlMapping.h
@@ -258,11 +258,11 @@
     YamlIO.mapOptional("callee-saved-restored", Object.CalleeSavedRestored,
                        true);
     YamlIO.mapOptional("local-offset", Object.LocalOffset, Optional<int64_t>());
-    YamlIO.mapOptional("di-variable", Object.DebugVar,
+    YamlIO.mapOptional("debug-info-variable", Object.DebugVar,
                        StringValue()); // Don't print it out when it's empty.
-    YamlIO.mapOptional("di-expression", Object.DebugExpr,
+    YamlIO.mapOptional("debug-info-expression", Object.DebugExpr,
                        StringValue()); // Don't print it out when it's empty.
-    YamlIO.mapOptional("di-location", Object.DebugLoc,
+    YamlIO.mapOptional("debug-info-location", Object.DebugLoc,
                        StringValue()); // Don't print it out when it's empty.
   }
 
@@ -283,6 +283,9 @@
   bool IsAliased = false;
   StringValue CalleeSavedRegister;
   bool CalleeSavedRestored = true;
+  StringValue DebugVar;
+  StringValue DebugExpr;
+  StringValue DebugLoc;
 
   bool operator==(const FixedMachineStackObject &Other) const {
     return ID == Other.ID && Type == Other.Type && Offset == Other.Offset &&
@@ -290,7 +293,9 @@
            StackID == Other.StackID &&
            IsImmutable == Other.IsImmutable && IsAliased == Other.IsAliased &&
            CalleeSavedRegister == Other.CalleeSavedRegister &&
-           CalleeSavedRestored == Other.CalleeSavedRestored;
+           CalleeSavedRestored == Other.CalleeSavedRestored &&
+           DebugVar == Other.DebugVar && DebugExpr == Other.DebugExpr
+           && DebugLoc == Other.DebugLoc;
   }
 };
 
@@ -321,6 +326,12 @@
                        StringValue()); // Don't print it out when it's empty.
     YamlIO.mapOptional("callee-saved-restored", Object.CalleeSavedRestored,
                      true);
+    YamlIO.mapOptional("debug-info-variable", Object.DebugVar,
+                       StringValue()); // Don't print it out when it's empty.
+    YamlIO.mapOptional("debug-info-expression", Object.DebugExpr,
+                       StringValue()); // Don't print it out when it's empty.
+    YamlIO.mapOptional("debug-info-location", Object.DebugLoc,
+                       StringValue()); // Don't print it out when it's empty.
   }
 
   static const bool flow = true;
@@ -417,6 +428,7 @@
   bool HasOpaqueSPAdjustment = false;
   bool HasVAStart = false;
   bool HasMustTailInVarArgFunc = false;
+  unsigned LocalFrameSize = 0;
   StringValue SavePoint;
   StringValue RestorePoint;
 
@@ -434,6 +446,7 @@
            HasOpaqueSPAdjustment == Other.HasOpaqueSPAdjustment &&
            HasVAStart == Other.HasVAStart &&
            HasMustTailInVarArgFunc == Other.HasMustTailInVarArgFunc &&
+           LocalFrameSize == Other.LocalFrameSize &&
            SavePoint == Other.SavePoint && RestorePoint == Other.RestorePoint;
   }
 };
@@ -457,6 +470,7 @@
     YamlIO.mapOptional("hasVAStart", MFI.HasVAStart, false);
     YamlIO.mapOptional("hasMustTailInVarArgFunc", MFI.HasMustTailInVarArgFunc,
                        false);
+    YamlIO.mapOptional("localFrameSize", MFI.LocalFrameSize, (unsigned)0);
     YamlIO.mapOptional("savePoint", MFI.SavePoint,
                        StringValue()); // Don't print it out when it's empty.
     YamlIO.mapOptional("restorePoint", MFI.RestorePoint,
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachORelocation.h b/linux-x64/clang/include/llvm/CodeGen/MachORelocation.h
index 8c9b7a8..cbb4969 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachORelocation.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachORelocation.h
@@ -27,15 +27,15 @@
     uint32_t r_symbolnum; // symbol index if r_extern == 1 else section index
     bool     r_pcrel;     // was relocated pc-relative already
     uint8_t  r_length;    // length = 2 ^ r_length
-    bool     r_extern;    // 
+    bool     r_extern;    //
     uint8_t  r_type;      // if not 0, machine-specific relocation type.
     bool     r_scattered; // 1 = scattered, 0 = non-scattered
     int32_t  r_value;     // the value the item to be relocated is referring
                           // to.
-  public:      
+  public:
     uint32_t getPackedFields() const {
       if (r_scattered)
-        return (1 << 31) | (r_pcrel << 30) | ((r_length & 3) << 28) | 
+        return (1 << 31) | (r_pcrel << 30) | ((r_length & 3) << 28) |
           ((r_type & 15) << 24) | (r_address & 0x00FFFFFF);
       else
         return (r_symbolnum << 8) | (r_pcrel << 7) | ((r_length & 3) << 5) |
@@ -45,8 +45,8 @@
     uint32_t getRawAddress() const { return r_address; }
 
     MachORelocation(uint32_t addr, uint32_t index, bool pcrel, uint8_t len,
-                    bool ext, uint8_t type, bool scattered = false, 
-                    int32_t value = 0) : 
+                    bool ext, uint8_t type, bool scattered = false,
+                    int32_t value = 0) :
       r_address(addr), r_symbolnum(index), r_pcrel(pcrel), r_length(len),
       r_extern(ext), r_type(type), r_scattered(scattered), r_value(value) {}
   };
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineBasicBlock.h b/linux-x64/clang/include/llvm/CodeGen/MachineBasicBlock.h
index f3130b6..ace33ef 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineBasicBlock.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineBasicBlock.h
@@ -58,7 +58,7 @@
 public:
   void addNodeToList(MachineInstr *N);
   void removeNodeFromList(MachineInstr *N);
-  void transferNodesFromList(ilist_traits &OldList, instr_iterator First,
+  void transferNodesFromList(ilist_traits &FromList, instr_iterator First,
                              instr_iterator Last);
   void deleteNode(MachineInstr *MI);
 };
@@ -115,13 +115,18 @@
   /// branch.
   bool AddressTaken = false;
 
+  /// Indicate that this basic block is the entry block of an EH scope, i.e.,
+  /// the block that used to have a catchpad or cleanuppad instruction in the
+  /// LLVM IR.
+  bool IsEHScopeEntry = false;
+
   /// Indicate that this basic block is the entry block of an EH funclet.
   bool IsEHFuncletEntry = false;
 
   /// Indicate that this basic block is the entry block of a cleanup funclet.
   bool IsCleanupFuncletEntry = false;
 
-  /// \brief since getSymbol is a relatively heavy-weight operation, the symbol
+  /// since getSymbol is a relatively heavy-weight operation, the symbol
   /// is only computed once and is cached.
   mutable MCSymbol *CachedMCSymbol = nullptr;
 
@@ -375,6 +380,14 @@
 
   bool hasEHPadSuccessor() const;
 
+  /// Returns true if this is the entry block of an EH scope, i.e., the block
+  /// that used to have a catchpad or cleanuppad instruction in the LLVM IR.
+  bool isEHScopeEntry() const { return IsEHScopeEntry; }
+
+  /// Indicates if this is the entry block of an EH scope, i.e., the block that
+  /// that used to have a catchpad or cleanuppad instruction in the LLVM IR.
+  void setIsEHScopeEntry(bool V = true) { IsEHScopeEntry = V; }
+
   /// Returns true if this is the entry block of an EH funclet.
   bool isEHFuncletEntry() const { return IsEHFuncletEntry; }
 
@@ -464,6 +477,11 @@
   /// probabilities may need to be normalized.
   void copySuccessor(MachineBasicBlock *Orig, succ_iterator I);
 
+  /// Split the old successor into old plus new and updates the probability
+  /// info.
+  void splitSuccessor(MachineBasicBlock *Old, MachineBasicBlock *New,
+                      bool NormalizeSuccProbs = false);
+
   /// Transfers all the successors from MBB to this machine basic block (i.e.,
   /// copies all the successors FromMBB and remove all the successors from
   /// FromMBB).
@@ -700,7 +718,7 @@
                             bool IsCond);
 
   /// Find the next valid DebugLoc starting at MBBI, skipping any DBG_VALUE
-  /// instructions.  Return UnknownLoc if there is none.
+  /// and DBG_LABEL instructions.  Return UnknownLoc if there is none.
   DebugLoc findDebugLoc(instr_iterator MBBI);
   DebugLoc findDebugLoc(iterator MBBI) {
     return findDebugLoc(MBBI.getInstrIterator());
@@ -897,7 +915,7 @@
 /// const_instr_iterator} and the respective reverse iterators.
 template<typename IterT>
 inline IterT skipDebugInstructionsForward(IterT It, IterT End) {
-  while (It != End && It->isDebugValue())
+  while (It != End && It->isDebugInstr())
     It++;
   return It;
 }
@@ -908,7 +926,7 @@
 /// const_instr_iterator} and the respective reverse iterators.
 template<class IterT>
 inline IterT skipDebugInstructionsBackward(IterT It, IterT Begin) {
-  while (It != Begin && It->isDebugValue())
+  while (It != Begin && It->isDebugInstr())
     It--;
   return It;
 }
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineConstantPool.h b/linux-x64/clang/include/llvm/CodeGen/MachineConstantPool.h
index 1705a0f..b0b5420 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineConstantPool.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineConstantPool.h
@@ -63,7 +63,7 @@
 /// This class is a data container for one entry in a MachineConstantPool.
 /// It contains a pointer to the value and an offset from the start of
 /// the constant pool.
-/// @brief An entry in a MachineConstantPool
+/// An entry in a MachineConstantPool
 class MachineConstantPoolEntry {
 public:
   /// The constant itself.
@@ -117,7 +117,7 @@
 /// the use of MO_ConstantPoolIndex values.  When emitting assembly or machine
 /// code, these virtual address references are converted to refer to the
 /// address of the function constant pool values.
-/// @brief The machine constant pool.
+/// The machine constant pool.
 class MachineConstantPool {
   unsigned PoolAlignment;       ///< The alignment for the pool.
   std::vector<MachineConstantPoolEntry> Constants; ///< The pool of constants.
@@ -128,7 +128,7 @@
   const DataLayout &getDataLayout() const { return DL; }
 
 public:
-  /// @brief The only constructor.
+  /// The only constructor.
   explicit MachineConstantPool(const DataLayout &DL)
       : PoolAlignment(1), DL(DL) {}
   ~MachineConstantPool();
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineDominanceFrontier.h b/linux-x64/clang/include/llvm/CodeGen/MachineDominanceFrontier.h
index ffbcc62..75d75bc 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineDominanceFrontier.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineDominanceFrontier.h
@@ -37,9 +37,9 @@
 
  MachineDominanceFrontier();
 
- DominanceFrontierBase<MachineBasicBlock, false> &getBase() { return Base; }
+ ForwardDominanceFrontierBase<MachineBasicBlock> &getBase() { return Base; }
 
-  const SmallVectorImpl<MachineBasicBlock *> &getRoots() const {
+ const SmallVectorImpl<MachineBasicBlock *> &getRoots() const {
    return Base.getRoots();
   }
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineDominators.h b/linux-x64/clang/include/llvm/CodeGen/MachineDominators.h
index af642d9..e3d3d16 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineDominators.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineDominators.h
@@ -45,7 +45,7 @@
 /// compute a normal dominator tree.
 ///
 class MachineDominatorTree : public MachineFunctionPass {
-  /// \brief Helper structure used to hold all the basic blocks
+  /// Helper structure used to hold all the basic blocks
   /// involved in the split of a critical edge.
   struct CriticalEdge {
     MachineBasicBlock *FromBB;
@@ -53,12 +53,12 @@
     MachineBasicBlock *NewBB;
   };
 
-  /// \brief Pile up all the critical edges to be split.
+  /// Pile up all the critical edges to be split.
   /// The splitting of a critical edge is local and thus, it is possible
   /// to apply several of those changes at the same time.
   mutable SmallVector<CriticalEdge, 32> CriticalEdgesToSplit;
 
-  /// \brief Remember all the basic blocks that are inserted during
+  /// Remember all the basic blocks that are inserted during
   /// edge splitting.
   /// Invariant: NewBBs == all the basic blocks contained in the NewBB
   /// field of all the elements of CriticalEdgesToSplit.
@@ -69,7 +69,7 @@
   /// The DominatorTreeBase that is used to compute a normal dominator tree
   std::unique_ptr<DomTreeBase<MachineBasicBlock>> DT;
 
-  /// \brief Apply all the recorded critical edges to the DT.
+  /// Apply all the recorded critical edges to the DT.
   /// This updates the underlying DT information in a way that uses
   /// the fast query path of DT as much as possible.
   ///
@@ -228,7 +228,7 @@
 
   void print(raw_ostream &OS, const Module*) const override;
 
-  /// \brief Record that the critical edge (FromBB, ToBB) has been
+  /// Record that the critical edge (FromBB, ToBB) has been
   /// split with NewBB.
   /// This is best to use this method instead of directly update the
   /// underlying information, because this helps mitigating the
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineFrameInfo.h b/linux-x64/clang/include/llvm/CodeGen/MachineFrameInfo.h
index f887517..2d6081f 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineFrameInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineFrameInfo.h
@@ -85,9 +85,23 @@
 /// stack offsets of the object, eliminating all MO_FrameIndex operands from
 /// the program.
 ///
-/// @brief Abstract Stack Frame Information
+/// Abstract Stack Frame Information
 class MachineFrameInfo {
+public:
+  /// Stack Smashing Protection (SSP) rules require that vulnerable stack
+  /// allocations are located close the stack protector.
+  enum SSPLayoutKind {
+    SSPLK_None,       ///< Did not trigger a stack protector.  No effect on data
+                      ///< layout.
+    SSPLK_LargeArray, ///< Array or nested array >= SSP-buffer-size.  Closest
+                      ///< to the stack protector.
+    SSPLK_SmallArray, ///< Array or nested array < SSP-buffer-size. 2nd closest
+                      ///< to the stack protector.
+    SSPLK_AddrOf      ///< The address of this allocation is exposed and
+                      ///< triggered protection.  3rd closest to the protector.
+  };
 
+private:
   // Represent a single object allocated on the stack.
   struct StackObject {
     // The offset of this object from the stack pointer on entry to
@@ -123,6 +137,9 @@
     /// necessarily reside in the same contiguous memory block as other stack
     /// objects. Objects with differing stack IDs should not be merged or
     /// replaced substituted for each other.
+    //
+    /// It is assumed a target uses consecutive, increasing stack IDs starting
+    /// from 1.
     uint8_t StackID;
 
     /// If this stack object is originated from an Alloca instruction
@@ -145,12 +162,15 @@
     /// If true, the object has been zero-extended.
     bool isSExt = false;
 
+    uint8_t SSPLayout;
+
     StackObject(uint64_t Size, unsigned Alignment, int64_t SPOffset,
                 bool IsImmutable, bool IsSpillSlot, const AllocaInst *Alloca,
                 bool IsAliased, uint8_t StackID = 0)
       : SPOffset(SPOffset), Size(Size), Alignment(Alignment),
         isImmutable(IsImmutable), isSpillSlot(IsSpillSlot),
-        StackID(StackID), Alloca(Alloca), isAliased(IsAliased) {}
+        StackID(StackID), Alloca(Alloca), isAliased(IsAliased),
+        SSPLayout(SSPLK_None) {}
   };
 
   /// The alignment of the stack.
@@ -485,6 +505,20 @@
     Objects[ObjectIdx+NumFixedObjects].SPOffset = SPOffset;
   }
 
+  SSPLayoutKind getObjectSSPLayout(int ObjectIdx) const {
+    assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
+           "Invalid Object Idx!");
+    return (SSPLayoutKind)Objects[ObjectIdx+NumFixedObjects].SSPLayout;
+  }
+
+  void setObjectSSPLayout(int ObjectIdx, SSPLayoutKind Kind) {
+    assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
+           "Invalid Object Idx!");
+    assert(!isDeadObjectIndex(ObjectIdx) &&
+           "Setting SSP layout for a dead object?");
+    Objects[ObjectIdx+NumFixedObjects].SSPLayout = Kind;
+  }
+
   /// Return the number of bytes that must be allocated to hold
   /// all of the fixed size frame objects.  This is only valid after
   /// Prolog/Epilog code insertion has finalized the stack frame layout.
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineFunction.h b/linux-x64/clang/include/llvm/CodeGen/MachineFunction.h
index 7d8b7eb..e8a4d52 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineFunction.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineFunction.h
@@ -73,6 +73,7 @@
 class TargetMachine;
 class TargetRegisterClass;
 class TargetSubtargetInfo;
+struct WasmEHFuncInfo;
 struct WinEHFuncInfo;
 
 template <> struct ilist_alloc_traits<MachineBasicBlock> {
@@ -80,8 +81,8 @@
 };
 
 template <> struct ilist_callback_traits<MachineBasicBlock> {
-  void addNodeToList(MachineBasicBlock* MBB);
-  void removeNodeFromList(MachineBasicBlock* MBB);
+  void addNodeToList(MachineBasicBlock* N);
+  void removeNodeFromList(MachineBasicBlock* N);
 
   template <class Iterator>
   void transferNodesFromList(ilist_callback_traits &OldList, Iterator, Iterator) {
@@ -96,7 +97,7 @@
 struct MachineFunctionInfo {
   virtual ~MachineFunctionInfo();
 
-  /// \brief Factory function: default behavior is to call new using the
+  /// Factory function: default behavior is to call new using the
   /// supplied allocator.
   ///
   /// This function can be overridden in a derive class.
@@ -245,6 +246,10 @@
   // Keep track of jump tables for switch instructions
   MachineJumpTableInfo *JumpTableInfo;
 
+  // Keeps track of Wasm exception handling related data. This will be null for
+  // functions that aren't using a wasm EH personality.
+  WasmEHFuncInfo *WasmEHInfo = nullptr;
+
   // Keeps track of Windows exception handling related data. This will be null
   // for functions that aren't using a funclet-based EH personality.
   WinEHFuncInfo *WinEHInfo = nullptr;
@@ -319,6 +324,7 @@
 
   bool CallsEHReturn = false;
   bool CallsUnwindInit = false;
+  bool HasEHScopes = false;
   bool HasEHFunclets = false;
 
   /// List of C++ TypeInfo used.
@@ -349,17 +355,18 @@
   struct VariableDbgInfo {
     const DILocalVariable *Var;
     const DIExpression *Expr;
-    unsigned Slot;
+    // The Slot can be negative for fixed stack objects.
+    int Slot;
     const DILocation *Loc;
 
     VariableDbgInfo(const DILocalVariable *Var, const DIExpression *Expr,
-                    unsigned Slot, const DILocation *Loc)
+                    int Slot, const DILocation *Loc)
         : Var(Var), Expr(Expr), Slot(Slot), Loc(Loc) {}
   };
   using VariableDbgInfoMapTy = SmallVector<VariableDbgInfo, 4>;
   VariableDbgInfoMapTy VariableDbgInfos;
 
-  MachineFunction(const Function &F, const TargetMachine &TM,
+  MachineFunction(const Function &F, const TargetMachine &Target,
                   const TargetSubtargetInfo &STI, unsigned FunctionNum,
                   MachineModuleInfo &MMI);
   MachineFunction(const MachineFunction &) = delete;
@@ -430,6 +437,12 @@
   MachineConstantPool *getConstantPool() { return ConstantPool; }
   const MachineConstantPool *getConstantPool() const { return ConstantPool; }
 
+  /// getWasmEHFuncInfo - Return information about how the current function uses
+  /// Wasm exception handling. Returns null for functions that don't use wasm
+  /// exception handling.
+  const WasmEHFuncInfo *getWasmEHFuncInfo() const { return WasmEHInfo; }
+  WasmEHFuncInfo *getWasmEHFuncInfo() { return WasmEHInfo; }
+
   /// getWinEHFuncInfo - Return information about how the current function uses
   /// Windows exception handling. Returns null for functions that don't use
   /// funclets for exception handling.
@@ -609,7 +622,7 @@
   //===--------------------------------------------------------------------===//
   // Internal functions used to automatically number MachineBasicBlocks
 
-  /// \brief Adds the MBB to the internal numbering. Returns the unique number
+  /// Adds the MBB to the internal numbering. Returns the unique number
   /// assigned to the MBB.
   unsigned addToMBBNumbering(MachineBasicBlock *MBB) {
     MBBNumbering.push_back(MBB);
@@ -695,14 +708,8 @@
     OperandRecycler.deallocate(Cap, Array);
   }
 
-  /// \brief Allocate and initialize a register mask with @p NumRegister bits.
-  uint32_t *allocateRegisterMask(unsigned NumRegister) {
-    unsigned Size = (NumRegister + 31) / 32;
-    uint32_t *Mask = Allocator.Allocate<uint32_t>(Size);
-    for (unsigned i = 0; i != Size; ++i)
-      Mask[i] = 0;
-    return Mask;
-  }
+  /// Allocate and initialize a register mask with @p NumRegister bits.
+  uint32_t *allocateRegMask();
 
   /// allocateMemRefsArray - Allocate an array to hold MachineMemOperand
   /// pointers.  This array is owned by the MachineFunction.
@@ -759,6 +766,9 @@
   bool callsUnwindInit() const { return CallsUnwindInit; }
   void setCallsUnwindInit(bool b) { CallsUnwindInit = b; }
 
+  bool hasEHScopes() const { return HasEHScopes; }
+  void setHasEHScopes(bool V) { HasEHScopes = V; }
+
   bool hasEHFunclets() const { return HasEHFunclets; }
   void setHasEHFunclets(bool V) { HasEHFunclets = V; }
 
@@ -793,7 +803,7 @@
   void addCleanup(MachineBasicBlock *LandingPad);
 
   void addSEHCatchHandler(MachineBasicBlock *LandingPad, const Function *Filter,
-                          const BlockAddress *RecoverLabel);
+                          const BlockAddress *RecoverBA);
 
   void addSEHCleanupHandler(MachineBasicBlock *LandingPad,
                             const Function *Cleanup);
@@ -860,7 +870,7 @@
 
   /// Collect information used to emit debugging information of a variable.
   void setVariableDbgInfo(const DILocalVariable *Var, const DIExpression *Expr,
-                          unsigned Slot, const DILocation *Loc) {
+                          int Slot, const DILocation *Loc) {
     VariableDbgInfos.emplace_back(Var, Expr, Slot, Loc);
   }
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineInstr.h b/linux-x64/clang/include/llvm/CodeGen/MachineInstr.h
index ea94be0..88e13cd 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineInstr.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineInstr.h
@@ -80,7 +80,21 @@
     FrameDestroy = 1 << 1,              // Instruction is used as a part of
                                         // function frame destruction code.
     BundledPred  = 1 << 2,              // Instruction has bundled predecessors.
-    BundledSucc  = 1 << 3               // Instruction has bundled successors.
+    BundledSucc  = 1 << 3,              // Instruction has bundled successors.
+    FmNoNans     = 1 << 4,              // Instruction does not support Fast
+                                        // math nan values.
+    FmNoInfs     = 1 << 5,              // Instruction does not support Fast
+                                        // math infinity values.
+    FmNsz        = 1 << 6,              // Instruction is not required to retain
+                                        // signed zero values.
+    FmArcp       = 1 << 7,              // Instruction supports Fast math
+                                        // reciprocal approximations.
+    FmContract   = 1 << 8,              // Instruction supports Fast math
+                                        // contraction operations like fma.
+    FmAfn        = 1 << 9,              // Instruction may map to Fast math
+                                        // instrinsic approximation.
+    FmReassoc    = 1 << 10              // Instruction supports Fast math
+                                        // reassociation of operand order.
   };
 
 private:
@@ -93,7 +107,7 @@
   using OperandCapacity = ArrayRecycler<MachineOperand>::Capacity;
   OperandCapacity CapOperands;          // Capacity of the Operands array.
 
-  uint8_t Flags = 0;                    // Various bits of additional
+  uint16_t Flags = 0;                   // Various bits of additional
                                         // information about machine
                                         // instruction.
 
@@ -127,7 +141,7 @@
   /// This constructor create a MachineInstr and add the implicit operands.
   /// It reserves space for number of operands specified by
   /// MCInstrDesc.  An explicit DebugLoc is supplied.
-  MachineInstr(MachineFunction &, const MCInstrDesc &MCID, DebugLoc dl,
+  MachineInstr(MachineFunction &, const MCInstrDesc &tid, DebugLoc dl,
                bool NoImp = false);
 
   // MachineInstrs are pool-allocated and owned by MachineFunction.
@@ -175,7 +189,7 @@
   }
 
   /// Return the MI flags bitvector.
-  uint8_t getFlags() const {
+  uint16_t getFlags() const {
     return Flags;
   }
 
@@ -186,7 +200,7 @@
 
   /// Set a MI flag.
   void setFlag(MIFlag Flag) {
-    Flags |= (uint8_t)Flag;
+    Flags |= (uint16_t)Flag;
   }
 
   void setFlags(unsigned flags) {
@@ -197,7 +211,7 @@
 
   /// clearFlag - Clear a MI flag.
   void clearFlag(MIFlag Flag) {
-    Flags &= ~((uint8_t)Flag);
+    Flags &= ~((uint16_t)Flag);
   }
 
   /// Return true if MI is in a bundle (but not the first MI in a bundle).
@@ -278,6 +292,10 @@
   /// this DBG_VALUE instruction.
   const DIExpression *getDebugExpression() const;
 
+  /// Return the debug label referenced by
+  /// this DBG_LABEL instruction.
+  const DILabel *getDebugLabel() const;
+
   /// Emit an error referring to the source location of this instruction.
   /// This should only be used for inline assembly that is somehow
   /// impossible to compile. Other errors should have been handled much
@@ -304,6 +322,11 @@
     return Operands[i];
   }
 
+  /// Returns the total number of definitions.
+  unsigned getNumDefs() const {
+    return getNumExplicitDefs() + MCID->getNumImplicitDefs();
+  }
+
   /// Return true if operand \p OpIdx is a subregister index.
   bool isOperandSubregIdx(unsigned OpIdx) const {
     assert(getOperand(OpIdx).getType() == MachineOperand::MO_Immediate &&
@@ -322,6 +345,9 @@
   /// Returns the number of non-implicit operands.
   unsigned getNumExplicitOperands() const;
 
+  /// Returns the number of non-implicit definitions.
+  unsigned getNumExplicitDefs() const;
+
   /// iterator/begin/end - Iterate over all operands of a machine instruction.
   using mop_iterator = MachineOperand *;
   using const_mop_iterator = const MachineOperand *;
@@ -356,31 +382,29 @@
   /// Implicit definition are not included!
   iterator_range<mop_iterator> defs() {
     return make_range(operands_begin(),
-                      operands_begin() + getDesc().getNumDefs());
+                      operands_begin() + getNumExplicitDefs());
   }
   /// \copydoc defs()
   iterator_range<const_mop_iterator> defs() const {
     return make_range(operands_begin(),
-                      operands_begin() + getDesc().getNumDefs());
+                      operands_begin() + getNumExplicitDefs());
   }
   /// Returns a range that includes all operands that are register uses.
   /// This may include unrelated operands which are not register uses.
   iterator_range<mop_iterator> uses() {
-    return make_range(operands_begin() + getDesc().getNumDefs(),
-                      operands_end());
+    return make_range(operands_begin() + getNumExplicitDefs(), operands_end());
   }
   /// \copydoc uses()
   iterator_range<const_mop_iterator> uses() const {
-    return make_range(operands_begin() + getDesc().getNumDefs(),
-                      operands_end());
+    return make_range(operands_begin() + getNumExplicitDefs(), operands_end());
   }
   iterator_range<mop_iterator> explicit_uses() {
-    return make_range(operands_begin() + getDesc().getNumDefs(),
-                      operands_begin() + getNumExplicitOperands() );
+    return make_range(operands_begin() + getNumExplicitDefs(),
+                      operands_begin() + getNumExplicitOperands());
   }
   iterator_range<const_mop_iterator> explicit_uses() const {
-    return make_range(operands_begin() + getDesc().getNumDefs(),
-                      operands_begin() + getNumExplicitOperands() );
+    return make_range(operands_begin() + getNumExplicitDefs(),
+                      operands_begin() + getNumExplicitOperands());
   }
 
   /// Returns the number of the operand iterator \p I points to.
@@ -529,6 +553,12 @@
     return hasProperty(MCID::MoveImm, Type);
   }
 
+  /// Return true if this instruction is a register move.
+  /// (including moving values from subreg to reg)
+  bool isMoveReg(QueryType Type = IgnoreBundle) const {
+    return hasProperty(MCID::MoveReg, Type);
+  }
+
   /// Return true if this instruction is a bitcast instruction.
   bool isBitcast(QueryType Type = IgnoreBundle) const {
     return hasProperty(MCID::Bitcast, Type);
@@ -576,7 +606,7 @@
     return hasProperty(MCID::FoldableAsLoad, Type);
   }
 
-  /// \brief Return true if this instruction behaves
+  /// Return true if this instruction behaves
   /// the same way as the generic REG_SEQUENCE instructions.
   /// E.g., on ARM,
   /// dX VMOVDRR rY, rZ
@@ -590,7 +620,7 @@
     return hasProperty(MCID::RegSequence, Type);
   }
 
-  /// \brief Return true if this instruction behaves
+  /// Return true if this instruction behaves
   /// the same way as the generic EXTRACT_SUBREG instructions.
   /// E.g., on ARM,
   /// rX, rY VMOVRRD dZ
@@ -605,7 +635,7 @@
     return hasProperty(MCID::ExtractSubreg, Type);
   }
 
-  /// \brief Return true if this instruction behaves
+  /// Return true if this instruction behaves
   /// the same way as the generic INSERT_SUBREG instructions.
   /// E.g., on ARM,
   /// dX = VSETLNi32 dY, rZ, Imm
@@ -817,6 +847,8 @@
   bool isPosition() const { return isLabel() || isCFIInstruction(); }
 
   bool isDebugValue() const { return getOpcode() == TargetOpcode::DBG_VALUE; }
+  bool isDebugLabel() const { return getOpcode() == TargetOpcode::DBG_LABEL; }
+  bool isDebugInstr() const { return isDebugValue() || isDebugLabel(); }
 
   /// A DBG_VALUE is indirect iff the first operand is a register and
   /// the second operand is an immediate.
@@ -893,6 +925,7 @@
     case TargetOpcode::EH_LABEL:
     case TargetOpcode::GC_LABEL:
     case TargetOpcode::DBG_VALUE:
+    case TargetOpcode::DBG_LABEL:
     case TargetOpcode::LIFETIME_START:
     case TargetOpcode::LIFETIME_END:
       return true;
@@ -1049,7 +1082,7 @@
                         const TargetInstrInfo *TII,
                         const TargetRegisterInfo *TRI) const;
 
-  /// \brief Applies the constraints (def/use) implied by this MI on \p Reg to
+  /// Applies the constraints (def/use) implied by this MI on \p Reg to
   /// the given \p CurRC.
   /// If \p ExploreBundle is set and MI is part of a bundle, all the
   /// instructions inside the bundle will be taken into account. In other words,
@@ -1066,7 +1099,7 @@
       const TargetInstrInfo *TII, const TargetRegisterInfo *TRI,
       bool ExploreBundle = false) const;
 
-  /// \brief Applies the constraints (def/use) implied by the \p OpIdx operand
+  /// Applies the constraints (def/use) implied by the \p OpIdx operand
   /// to the given \p CurRC.
   ///
   /// Returns the register class that satisfies both \p CurRC and the
@@ -1244,10 +1277,11 @@
   /// \p TII is used to print the opcode name.  If it's not present, but the
   /// MI is in a function, the opcode will be printed using the function's TII.
   void print(raw_ostream &OS, bool IsStandalone = true, bool SkipOpers = false,
-             bool SkipDebugLoc = false,
+             bool SkipDebugLoc = false, bool AddNewLine = true,
              const TargetInstrInfo *TII = nullptr) const;
   void print(raw_ostream &OS, ModuleSlotTracker &MST, bool IsStandalone = true,
              bool SkipOpers = false, bool SkipDebugLoc = false,
+             bool AddNewLine = true,
              const TargetInstrInfo *TII = nullptr) const;
   void dump() const;
   /// @}
@@ -1287,7 +1321,7 @@
 
   /// Erase an operand from an instruction, leaving it with one
   /// fewer operand than it started with.
-  void RemoveOperand(unsigned i);
+  void RemoveOperand(unsigned OpNo);
 
   /// Add a MachineMemOperand to the machine instruction.
   /// This function should be used only occasionally. The setMemRefs function
@@ -1320,7 +1354,7 @@
   /// Return the MIFlags which represent both MachineInstrs. This
   /// should be used when merging two MachineInstrs into one. This routine does
   /// not modify the MIFlags of this MachineInstr.
-  uint8_t mergeFlagsWith(const MachineInstr& Other) const;
+  uint16_t mergeFlagsWith(const MachineInstr& Other) const;
 
   /// Clear this MachineInstr's memory reference descriptor list.  This resets
   /// the memrefs to their most conservative state.  This should be used only
@@ -1362,7 +1396,7 @@
   /// Slow path for hasProperty when we're dealing with a bundle.
   bool hasPropertyInBundle(unsigned Mask, QueryType Type) const;
 
-  /// \brief Implements the logic of getRegClassConstraintEffectForVReg for the
+  /// Implements the logic of getRegClassConstraintEffectForVReg for the
   /// this MI and the given operand index \p OpIdx.
   /// If the related operand does not constrained Reg, this returns CurRC.
   const TargetRegisterClass *getRegClassConstraintEffectForVRegImpl(
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineInstrBuilder.h b/linux-x64/clang/include/llvm/CodeGen/MachineInstrBuilder.h
index 2df89b1..6656087 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineInstrBuilder.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineInstrBuilder.h
@@ -220,6 +220,9 @@
     assert((MI->isDebugValue() ? static_cast<bool>(MI->getDebugVariable())
                                : true) &&
            "first MDNode argument of a DBG_VALUE not a variable");
+    assert((MI->isDebugLabel() ? static_cast<bool>(MI->getDebugLabel())
+                               : true) &&
+           "first MDNode argument of a DBG_LABEL not a label");
     return *this;
   }
 
@@ -415,6 +418,13 @@
                             const MDNode *Expr);
 
 /// This version of the builder builds a DBG_VALUE intrinsic
+/// for a MachineOperand.
+MachineInstrBuilder BuildMI(MachineFunction &MF, const DebugLoc &DL,
+                            const MCInstrDesc &MCID, bool IsIndirect,
+                            MachineOperand &MO, const MDNode *Variable,
+                            const MDNode *Expr);
+
+/// This version of the builder builds a DBG_VALUE intrinsic
 /// for either a value in a register or a register-indirect
 /// address and inserts it at position I.
 MachineInstrBuilder BuildMI(MachineBasicBlock &BB,
@@ -423,6 +433,14 @@
                             unsigned Reg, const MDNode *Variable,
                             const MDNode *Expr);
 
+/// This version of the builder builds a DBG_VALUE intrinsic
+/// for a machine operand and inserts it at position I.
+MachineInstrBuilder BuildMI(MachineBasicBlock &BB,
+                            MachineBasicBlock::iterator I, const DebugLoc &DL,
+                            const MCInstrDesc &MCID, bool IsIndirect,
+                            MachineOperand &MO, const MDNode *Variable,
+                            const MDNode *Expr);
+
 /// Clone a DBG_VALUE whose value has been spilled to FrameIndex.
 MachineInstr *buildDbgValueForSpill(MachineBasicBlock &BB,
                                     MachineBasicBlock::iterator I,
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineLoopInfo.h b/linux-x64/clang/include/llvm/CodeGen/MachineLoopInfo.h
index 104655e..917fb90 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineLoopInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineLoopInfo.h
@@ -54,7 +54,7 @@
   /// that contains the header.
   MachineBasicBlock *getBottomBlock();
 
-  /// \brief Find the block that contains the loop control variable and the
+  /// Find the block that contains the loop control variable and the
   /// loop test. This will return the latch block if it's one of the exiting
   /// blocks. Otherwise, return the exiting block. Return 'null' when
   /// multiple exiting blocks are present.
@@ -97,7 +97,7 @@
 
   LoopInfoBase<MachineBasicBlock, MachineLoop>& getBase() { return LI; }
 
-  /// \brief Find the block that either is the loop preheader, or could
+  /// Find the block that either is the loop preheader, or could
   /// speculatively be used as the preheader. This is e.g. useful to place
   /// loop setup code. Code that cannot be speculated should not be placed
   /// here. SpeculativePreheader is controlling whether it also tries to
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineMemOperand.h b/linux-x64/clang/include/llvm/CodeGen/MachineMemOperand.h
index dea0d80..078ef7c 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineMemOperand.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineMemOperand.h
@@ -184,7 +184,7 @@
   /// atomic operations the atomic ordering requirements when store does not
   /// occur must also be specified.
   MachineMemOperand(MachinePointerInfo PtrInfo, Flags flags, uint64_t s,
-                    unsigned base_alignment,
+                    uint64_t a,
                     const AAMDNodes &AAInfo = AAMDNodes(),
                     const MDNode *Ranges = nullptr,
                     SyncScope::ID SSID = SyncScope::System,
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineModuleInfo.h b/linux-x64/clang/include/llvm/CodeGen/MachineModuleInfo.h
index 6be304f..554e890 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineModuleInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineModuleInfo.h
@@ -105,7 +105,7 @@
   /// basic block's address of label.
   MMIAddrLabelMap *AddrLabelSymbols;
 
-  // TODO: Ideally, what we'd like is to have a switch that allows emitting 
+  // TODO: Ideally, what we'd like is to have a switch that allows emitting
   // synchronous (precise at call-sites only) CFA into .eh_frame. However,
   // even under this switch, we'd like .debug_frame to be precise when using
   // -g. At this moment, there's no way to specify that some CFI directives
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineOperand.h b/linux-x64/clang/include/llvm/CodeGen/MachineOperand.h
index 4f0db1c..53e8889 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineOperand.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineOperand.h
@@ -295,6 +295,12 @@
              unsigned TiedOperandIdx, const TargetRegisterInfo *TRI,
              const TargetIntrinsicInfo *IntrinsicInfo) const;
 
+  /// Same as print(os, TRI, IntrinsicInfo), but allows to specify the low-level
+  /// type to be printed the same way the full version of print(...) does it.
+  void print(raw_ostream &os, LLT TypeToPrint,
+             const TargetRegisterInfo *TRI = nullptr,
+             const TargetIntrinsicInfo *IntrinsicInfo = nullptr) const;
+
   void dump() const;
 
   //===--------------------------------------------------------------------===//
@@ -610,6 +616,11 @@
     return Contents.RegMask;
   }
 
+  /// Returns number of elements needed for a regmask array.
+  static unsigned getRegMaskSize(unsigned NumRegs) {
+    return (NumRegs + 31) / 32;
+  }
+
   /// getRegLiveOut - Returns a bit mask of live-out registers.
   const uint32_t *getRegLiveOut() const {
     assert(isRegLiveOut() && "Wrong MachineOperand accessor");
@@ -630,6 +641,11 @@
     Contents.ImmVal = immVal;
   }
 
+  void setCImm(const ConstantInt *CI) {
+    assert(isCImm() && "Wrong MachineOperand mutator");
+    Contents.CI = CI;
+  }
+
   void setFPImm(const ConstantFP *CFP) {
     assert(isFPImm() && "Wrong MachineOperand mutator");
     Contents.CFP = CFP;
@@ -677,7 +693,7 @@
   /// should stay in sync with the hash_value overload below.
   bool isIdenticalTo(const MachineOperand &Other) const;
 
-  /// \brief MachineOperand hash_value overload.
+  /// MachineOperand hash_value overload.
   ///
   /// Note that this includes the same information in the hash that
   /// isIdenticalTo uses for comparison. It is thus suited for use in hash
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h b/linux-x64/clang/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h
index 2fdefbe..a7ce870 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h
@@ -24,7 +24,7 @@
 class MachineBlockFrequencyInfo;
 class MachineInstr;
 
-/// \brief Common features for diagnostics dealing with optimization remarks
+/// Common features for diagnostics dealing with optimization remarks
 /// that are used by machine passes.
 class DiagnosticInfoMIROptimization : public DiagnosticInfoOptimizationBase {
 public:
@@ -151,7 +151,7 @@
   /// Emit an optimization remark.
   void emit(DiagnosticInfoOptimizationBase &OptDiag);
 
-  /// \brief Whether we allow for extra compile-time budget to perform more
+  /// Whether we allow for extra compile-time budget to perform more
   /// analysis to be more informative.
   ///
   /// This is useful to enable additional missed optimizations to be reported
@@ -164,7 +164,7 @@
             .getDiagHandlerPtr()->isAnyRemarkEnabled(PassName));
   }
 
-  /// \brief Take a lambda that returns a remark which will be emitted.  Second
+  /// Take a lambda that returns a remark which will be emitted.  Second
   /// argument is only used to restrict this to functions.
   template <typename T>
   void emit(T RemarkBuilder, decltype(RemarkBuilder()) * = nullptr) {
@@ -192,7 +192,7 @@
   /// Similar but use value from \p OptDiag and update hotness there.
   void computeHotness(DiagnosticInfoMIROptimization &Remark);
 
-  /// \brief Only allow verbose messages if we know we're filtering by hotness
+  /// Only allow verbose messages if we know we're filtering by hotness
   /// (BFI is only set in this case).
   bool shouldEmitVerbose() { return MBFI != nullptr; }
 };
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineOutliner.h b/linux-x64/clang/include/llvm/CodeGen/MachineOutliner.h
new file mode 100644
index 0000000..95bfc24
--- /dev/null
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineOutliner.h
@@ -0,0 +1,240 @@
+//===---- MachineOutliner.h - Outliner data structures ------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+///
+/// \file
+/// Contains all data structures shared between the outliner implemented in
+/// MachineOutliner.cpp and target implementations of the outliner.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_MACHINEOUTLINER_H
+#define LLVM_MACHINEOUTLINER_H
+
+#include "llvm/CodeGen/LiveRegUnits.h"
+#include "llvm/CodeGen/MachineFunction.h"
+#include "llvm/CodeGen/TargetRegisterInfo.h"
+#include "llvm/CodeGen/LivePhysRegs.h"
+
+namespace llvm {
+namespace outliner {
+
+/// Represents how an instruction should be mapped by the outliner.
+/// \p Legal instructions are those which are safe to outline.
+/// \p LegalTerminator instructions are safe to outline, but only as the
+/// last instruction in a sequence.
+/// \p Illegal instructions are those which cannot be outlined.
+/// \p Invisible instructions are instructions which can be outlined, but
+/// shouldn't actually impact the outlining result.
+enum InstrType { Legal, LegalTerminator, Illegal, Invisible };
+
+/// An individual sequence of instructions to be replaced with a call to
+/// an outlined function.
+struct Candidate {
+private:
+  /// The start index of this \p Candidate in the instruction list.
+  unsigned StartIdx;
+
+  /// The number of instructions in this \p Candidate.
+  unsigned Len;
+
+  // The first instruction in this \p Candidate.
+  MachineBasicBlock::iterator FirstInst;
+
+  // The last instruction in this \p Candidate.
+  MachineBasicBlock::iterator LastInst;
+
+  // The basic block that contains this Candidate.
+  MachineBasicBlock *MBB;
+
+  /// Cost of calling an outlined function from this point as defined by the
+  /// target.
+  unsigned CallOverhead;
+
+public:
+  /// The index of this \p Candidate's \p OutlinedFunction in the list of
+  /// \p OutlinedFunctions.
+  unsigned FunctionIdx;
+
+  /// Set to false if the candidate overlapped with another candidate.
+  bool InCandidateList = true;
+
+  /// Identifier denoting the instructions to emit to call an outlined function
+  /// from this point. Defined by the target.
+  unsigned CallConstructionID;
+
+  /// Contains physical register liveness information for the MBB containing
+  /// this \p Candidate.
+  ///
+  /// This is optionally used by the target to calculate more fine-grained
+  /// cost model information.
+  LiveRegUnits LRU;
+
+  /// Contains the accumulated register liveness information for the
+  /// instructions in this \p Candidate.
+  ///
+  /// This is optionally used by the target to determine which registers have
+  /// been used across the sequence.
+  LiveRegUnits UsedInSequence;
+
+  /// Return the number of instructions in this Candidate.
+  unsigned getLength() const { return Len; }
+
+  /// Return the start index of this candidate.
+  unsigned getStartIdx() const { return StartIdx; }
+
+  /// Return the end index of this candidate.
+  unsigned getEndIdx() const { return StartIdx + Len - 1; }
+
+  /// Set the CallConstructionID and CallOverhead of this candidate to CID and
+  /// CO respectively.
+  void setCallInfo(unsigned CID, unsigned CO) {
+    CallConstructionID = CID;
+    CallOverhead = CO;
+  }
+
+  /// Returns the call overhead of this candidate if it is in the list.
+  unsigned getCallOverhead() const {
+    return InCandidateList ? CallOverhead : 0;
+  }
+
+  MachineBasicBlock::iterator &front() { return FirstInst; }
+  MachineBasicBlock::iterator &back() { return LastInst; }
+  MachineFunction *getMF() const { return MBB->getParent(); }
+  MachineBasicBlock *getMBB() const { return MBB; }
+
+  /// The number of instructions that would be saved by outlining every
+  /// candidate of this type.
+  ///
+  /// This is a fixed value which is not updated during the candidate pruning
+  /// process. It is only used for deciding which candidate to keep if two
+  /// candidates overlap. The true benefit is stored in the OutlinedFunction
+  /// for some given candidate.
+  unsigned Benefit = 0;
+
+  Candidate(unsigned StartIdx, unsigned Len,
+            MachineBasicBlock::iterator &FirstInst,
+            MachineBasicBlock::iterator &LastInst, MachineBasicBlock *MBB,
+            unsigned FunctionIdx)
+      : StartIdx(StartIdx), Len(Len), FirstInst(FirstInst), LastInst(LastInst),
+        MBB(MBB), FunctionIdx(FunctionIdx) {}
+  Candidate() {}
+
+  /// Used to ensure that \p Candidates are outlined in an order that
+  /// preserves the start and end indices of other \p Candidates.
+  bool operator<(const Candidate &RHS) const {
+    return getStartIdx() > RHS.getStartIdx();
+  }
+
+  /// Compute the registers that are live across this Candidate.
+  /// Used by targets that need this information for cost model calculation.
+  /// If a target does not need this information, then this should not be
+  /// called.
+  void initLRU(const TargetRegisterInfo &TRI) {
+    assert(MBB->getParent()->getRegInfo().tracksLiveness() &&
+           "Candidate's Machine Function must track liveness");
+    LRU.init(TRI);
+    LRU.addLiveOuts(*MBB);
+
+    // Compute liveness from the end of the block up to the beginning of the
+    // outlining candidate.
+    std::for_each(MBB->rbegin(), (MachineBasicBlock::reverse_iterator)front(),
+                  [this](MachineInstr &MI) { LRU.stepBackward(MI); });
+
+    // Walk over the sequence itself and figure out which registers were used
+    // in the sequence.
+    UsedInSequence.init(TRI);
+    std::for_each(front(), std::next(back()),
+                  [this](MachineInstr &MI) { UsedInSequence.accumulate(MI); });
+  }
+};
+
+/// The information necessary to create an outlined function for some
+/// class of candidate.
+struct OutlinedFunction {
+
+private:
+  /// The number of candidates for this \p OutlinedFunction.
+  unsigned OccurrenceCount = 0;
+
+public:
+  std::vector<std::shared_ptr<Candidate>> Candidates;
+
+  /// The actual outlined function created.
+  /// This is initialized after we go through and create the actual function.
+  MachineFunction *MF = nullptr;
+
+  /// A number assigned to this function which appears at the end of its name.
+  unsigned Name;
+
+  /// The sequence of integers corresponding to the instructions in this
+  /// function.
+  std::vector<unsigned> Sequence;
+
+  /// Represents the size of a sequence in bytes. (Some instructions vary
+  /// widely in size, so just counting the instructions isn't very useful.)
+  unsigned SequenceSize;
+
+  /// Target-defined overhead of constructing a frame for this function.
+  unsigned FrameOverhead;
+
+  /// Target-defined identifier for constructing a frame for this function.
+  unsigned FrameConstructionID;
+
+  /// Return the number of candidates for this \p OutlinedFunction.
+  unsigned getOccurrenceCount() { return OccurrenceCount; }
+
+  /// Decrement the occurrence count of this OutlinedFunction and return the
+  /// new count.
+  unsigned decrement() {
+    assert(OccurrenceCount > 0 && "Can't decrement an empty function!");
+    OccurrenceCount--;
+    return getOccurrenceCount();
+  }
+
+  /// Return the number of bytes it would take to outline this
+  /// function.
+  unsigned getOutliningCost() {
+    unsigned CallOverhead = 0;
+    for (std::shared_ptr<Candidate> &C : Candidates)
+      CallOverhead += C->getCallOverhead();
+    return CallOverhead + SequenceSize + FrameOverhead;
+  }
+
+  /// Return the size in bytes of the unoutlined sequences.
+  unsigned getNotOutlinedCost() { return OccurrenceCount * SequenceSize; }
+
+  /// Return the number of instructions that would be saved by outlining
+  /// this function.
+  unsigned getBenefit() {
+    unsigned NotOutlinedCost = getNotOutlinedCost();
+    unsigned OutlinedCost = getOutliningCost();
+    return (NotOutlinedCost < OutlinedCost) ? 0
+                                            : NotOutlinedCost - OutlinedCost;
+  }
+
+  OutlinedFunction(std::vector<Candidate> &Cands,
+                   unsigned SequenceSize, unsigned FrameOverhead,
+                   unsigned FrameConstructionID)
+      : SequenceSize(SequenceSize), FrameOverhead(FrameOverhead),
+        FrameConstructionID(FrameConstructionID) {
+    OccurrenceCount = Cands.size();
+    for (Candidate &C : Cands)
+      Candidates.push_back(std::make_shared<outliner::Candidate>(C));
+
+    unsigned B = getBenefit();
+    for (std::shared_ptr<Candidate> &C : Candidates)
+      C->Benefit = B;
+  }
+
+  OutlinedFunction() {}
+};
+} // namespace outliner
+} // namespace llvm
+
+#endif
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineRegisterInfo.h b/linux-x64/clang/include/llvm/CodeGen/MachineRegisterInfo.h
index b0dfd02..5bf4a49 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineRegisterInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineRegisterInfo.h
@@ -136,9 +136,9 @@
   /// started.
   BitVector ReservedRegs;
 
-  using VRegToTypeMap = DenseMap<unsigned, LLT>;
-  /// Map generic virtual registers to their actual size.
-  mutable std::unique_ptr<VRegToTypeMap> VRegToType;
+  using VRegToTypeMap = IndexedMap<LLT, VirtReg2IndexFunctor>;
+  /// Map generic virtual registers to their low-level type.
+  VRegToTypeMap VRegToType;
 
   /// Keep track of the physical registers that are live in to the function.
   /// Live in values are typically arguments in registers.  LiveIn values are
@@ -714,26 +714,23 @@
 
   /// createVirtualRegister - Create and return a new virtual register in the
   /// function with the specified register class.
-  unsigned createVirtualRegister(const TargetRegisterClass *RegClass);
+  unsigned createVirtualRegister(const TargetRegisterClass *RegClass,
+                                 StringRef Name = "");
 
-  /// Accessor for VRegToType. This accessor should only be used
-  /// by global-isel related work.
-  VRegToTypeMap &getVRegToType() const {
-    if (!VRegToType)
-      VRegToType.reset(new VRegToTypeMap);
-    return *VRegToType.get();
-  }
-
-  /// Get the low-level type of \p VReg or LLT{} if VReg is not a generic
+  /// Get the low-level type of \p Reg or LLT{} if Reg is not a generic
   /// (target independent) virtual register.
-  LLT getType(unsigned VReg) const;
+  LLT getType(unsigned Reg) const {
+    if (TargetRegisterInfo::isVirtualRegister(Reg) && VRegToType.inBounds(Reg))
+      return VRegToType[Reg];
+    return LLT{};
+  }
 
   /// Set the low-level type of \p VReg to \p Ty.
   void setType(unsigned VReg, LLT Ty);
 
   /// Create and return a new generic virtual register with low-level
   /// type \p Ty.
-  unsigned createGenericVirtualRegister(LLT Ty);
+  unsigned createGenericVirtualRegister(LLT Ty, StringRef Name = "");
 
   /// Remove all types associated to virtual registers (after instruction
   /// selection and constraining of all generic virtual registers).
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineSSAUpdater.h b/linux-x64/clang/include/llvm/CodeGen/MachineSSAUpdater.h
index b5ea208..5e91246 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineSSAUpdater.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineSSAUpdater.h
@@ -56,7 +56,7 @@
   /// MachineSSAUpdater constructor.  If InsertedPHIs is specified, it will be
   /// filled in with all PHI Nodes created by rewriting.
   explicit MachineSSAUpdater(MachineFunction &MF,
-                        SmallVectorImpl<MachineInstr*> *InsertedPHIs = nullptr);
+                        SmallVectorImpl<MachineInstr*> *NewPHI = nullptr);
   MachineSSAUpdater(const MachineSSAUpdater &) = delete;
   MachineSSAUpdater &operator=(const MachineSSAUpdater &) = delete;
   ~MachineSSAUpdater();
diff --git a/linux-x64/clang/include/llvm/CodeGen/MachineScheduler.h b/linux-x64/clang/include/llvm/CodeGen/MachineScheduler.h
index e327881..85ffa4e 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MachineScheduler.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MachineScheduler.h
@@ -237,7 +237,7 @@
   /// be scheduled at the bottom.
   virtual SUnit *pickNode(bool &IsTopNode) = 0;
 
-  /// \brief Scheduler callback to notify that a new subtree is scheduled.
+  /// Scheduler callback to notify that a new subtree is scheduled.
   virtual void scheduleTree(unsigned SubtreeID) {}
 
   /// Notify MachineSchedStrategy that ScheduleDAGMI has scheduled an
@@ -318,11 +318,11 @@
       Mutations.push_back(std::move(Mutation));
   }
 
-  /// \brief True if an edge can be added from PredSU to SuccSU without creating
+  /// True if an edge can be added from PredSU to SuccSU without creating
   /// a cycle.
   bool canAddEdge(SUnit *SuccSU, SUnit *PredSU);
 
-  /// \brief Add a DAG edge to the given SU with the given predecessor
+  /// Add a DAG edge to the given SU with the given predecessor
   /// dependence data.
   ///
   /// \returns true if the edge may be added without creating a cycle OR if an
@@ -374,7 +374,7 @@
   /// Reinsert debug_values recorded in ScheduleDAGInstrs::DbgValues.
   void placeDebugValues();
 
-  /// \brief dump the scheduled Sequence.
+  /// dump the scheduled Sequence.
   void dumpSchedule() const;
 
   // Lesser helpers...
@@ -445,7 +445,7 @@
   /// Return true if this DAG supports VReg liveness and RegPressure.
   bool hasVRegLiveness() const override { return true; }
 
-  /// \brief Return true if register pressure tracking is enabled.
+  /// Return true if register pressure tracking is enabled.
   bool isTrackingPressure() const { return ShouldTrackPressure; }
 
   /// Get current register pressure for the top scheduled instructions.
@@ -897,6 +897,28 @@
 #endif
 };
 
+// Utility functions used by heuristics in tryCandidate().
+bool tryLess(int TryVal, int CandVal,
+             GenericSchedulerBase::SchedCandidate &TryCand,
+             GenericSchedulerBase::SchedCandidate &Cand,
+             GenericSchedulerBase::CandReason Reason);
+bool tryGreater(int TryVal, int CandVal,
+                GenericSchedulerBase::SchedCandidate &TryCand,
+                GenericSchedulerBase::SchedCandidate &Cand,
+                GenericSchedulerBase::CandReason Reason);
+bool tryLatency(GenericSchedulerBase::SchedCandidate &TryCand,
+                GenericSchedulerBase::SchedCandidate &Cand,
+                SchedBoundary &Zone);
+bool tryPressure(const PressureChange &TryP,
+                 const PressureChange &CandP,
+                 GenericSchedulerBase::SchedCandidate &TryCand,
+                 GenericSchedulerBase::SchedCandidate &Cand,
+                 GenericSchedulerBase::CandReason Reason,
+                 const TargetRegisterInfo *TRI,
+                 const MachineFunction &MF);
+unsigned getWeakLeft(const SUnit *SU, bool isTop);
+int biasPhysRegCopy(const SUnit *SU, bool isTop);
+
 /// GenericScheduler shrinks the unscheduled zone using heuristics to balance
 /// the schedule.
 class GenericScheduler : public GenericSchedulerBase {
@@ -963,9 +985,8 @@
                      const RegPressureTracker &RPTracker,
                      RegPressureTracker &TempTracker);
 
-  void tryCandidate(SchedCandidate &Cand,
-                    SchedCandidate &TryCand,
-                    SchedBoundary *Zone);
+  virtual void tryCandidate(SchedCandidate &Cand, SchedCandidate &TryCand,
+                            SchedBoundary *Zone) const;
 
   SUnit *pickNodeBidirectional(bool &IsTopNode);
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/MacroFusion.h b/linux-x64/clang/include/llvm/CodeGen/MacroFusion.h
index dc105fd..a77226d 100644
--- a/linux-x64/clang/include/llvm/CodeGen/MacroFusion.h
+++ b/linux-x64/clang/include/llvm/CodeGen/MacroFusion.h
@@ -25,7 +25,7 @@
 class TargetInstrInfo;
 class TargetSubtargetInfo;
 
-/// \brief Check if the instr pair, FirstMI and SecondMI, should be fused
+/// Check if the instr pair, FirstMI and SecondMI, should be fused
 /// together. Given SecondMI, when FirstMI is unspecified, then check if
 /// SecondMI may be part of a fused pair at all.
 using ShouldSchedulePredTy = std::function<bool(const TargetInstrInfo &TII,
@@ -33,13 +33,13 @@
                                                 const MachineInstr *FirstMI,
                                                 const MachineInstr &SecondMI)>;
 
-/// \brief Create a DAG scheduling mutation to pair instructions back to back
+/// Create a DAG scheduling mutation to pair instructions back to back
 /// for instructions that benefit according to the target-specific
 /// shouldScheduleAdjacent predicate function.
 std::unique_ptr<ScheduleDAGMutation>
 createMacroFusionDAGMutation(ShouldSchedulePredTy shouldScheduleAdjacent);
 
-/// \brief Create a DAG scheduling mutation to pair branch instructions with one
+/// Create a DAG scheduling mutation to pair branch instructions with one
 /// of their predecessors back to back for instructions that benefit according
 /// to the target-specific shouldScheduleAdjacent predicate function.
 std::unique_ptr<ScheduleDAGMutation>
diff --git a/linux-x64/clang/include/llvm/CodeGen/PBQP/Graph.h b/linux-x64/clang/include/llvm/CodeGen/PBQP/Graph.h
index e94878c..a6d88b0 100644
--- a/linux-x64/clang/include/llvm/CodeGen/PBQP/Graph.h
+++ b/linux-x64/clang/include/llvm/CodeGen/PBQP/Graph.h
@@ -29,12 +29,12 @@
     using NodeId = unsigned;
     using EdgeId = unsigned;
 
-    /// @brief Returns a value representing an invalid (non-existent) node.
+    /// Returns a value representing an invalid (non-existent) node.
     static NodeId invalidNodeId() {
       return std::numeric_limits<NodeId>::max();
     }
 
-    /// @brief Returns a value representing an invalid (non-existent) edge.
+    /// Returns a value representing an invalid (non-existent) edge.
     static EdgeId invalidEdgeId() {
       return std::numeric_limits<EdgeId>::max();
     }
@@ -338,19 +338,19 @@
       const NodeEntry &NE;
     };
 
-    /// @brief Construct an empty PBQP graph.
+    /// Construct an empty PBQP graph.
     Graph() = default;
 
-    /// @brief Construct an empty PBQP graph with the given graph metadata.
+    /// Construct an empty PBQP graph with the given graph metadata.
     Graph(GraphMetadata Metadata) : Metadata(std::move(Metadata)) {}
 
-    /// @brief Get a reference to the graph metadata.
+    /// Get a reference to the graph metadata.
     GraphMetadata& getMetadata() { return Metadata; }
 
-    /// @brief Get a const-reference to the graph metadata.
+    /// Get a const-reference to the graph metadata.
     const GraphMetadata& getMetadata() const { return Metadata; }
 
-    /// @brief Lock this graph to the given solver instance in preparation
+    /// Lock this graph to the given solver instance in preparation
     /// for running the solver. This method will call solver.handleAddNode for
     /// each node in the graph, and handleAddEdge for each edge, to give the
     /// solver an opportunity to set up any requried metadata.
@@ -363,13 +363,13 @@
         Solver->handleAddEdge(EId);
     }
 
-    /// @brief Release from solver instance.
+    /// Release from solver instance.
     void unsetSolver() {
       assert(Solver && "Solver not set.");
       Solver = nullptr;
     }
 
-    /// @brief Add a node with the given costs.
+    /// Add a node with the given costs.
     /// @param Costs Cost vector for the new node.
     /// @return Node iterator for the added node.
     template <typename OtherVectorT>
@@ -382,7 +382,7 @@
       return NId;
     }
 
-    /// @brief Add a node bypassing the cost allocator.
+    /// Add a node bypassing the cost allocator.
     /// @param Costs Cost vector ptr for the new node (must be convertible to
     ///        VectorPtr).
     /// @return Node iterator for the added node.
@@ -401,7 +401,7 @@
       return NId;
     }
 
-    /// @brief Add an edge between the given nodes with the given costs.
+    /// Add an edge between the given nodes with the given costs.
     /// @param N1Id First node.
     /// @param N2Id Second node.
     /// @param Costs Cost matrix for new edge.
@@ -419,7 +419,7 @@
       return EId;
     }
 
-    /// @brief Add an edge bypassing the cost allocator.
+    /// Add an edge bypassing the cost allocator.
     /// @param N1Id First node.
     /// @param N2Id Second node.
     /// @param Costs Cost matrix for new edge.
@@ -444,7 +444,7 @@
       return EId;
     }
 
-    /// @brief Returns true if the graph is empty.
+    /// Returns true if the graph is empty.
     bool empty() const { return NodeIdSet(*this).empty(); }
 
     NodeIdSet nodeIds() const { return NodeIdSet(*this); }
@@ -452,15 +452,15 @@
 
     AdjEdgeIdSet adjEdgeIds(NodeId NId) { return AdjEdgeIdSet(getNode(NId)); }
 
-    /// @brief Get the number of nodes in the graph.
+    /// Get the number of nodes in the graph.
     /// @return Number of nodes in the graph.
     unsigned getNumNodes() const { return NodeIdSet(*this).size(); }
 
-    /// @brief Get the number of edges in the graph.
+    /// Get the number of edges in the graph.
     /// @return Number of edges in the graph.
     unsigned getNumEdges() const { return EdgeIdSet(*this).size(); }
 
-    /// @brief Set a node's cost vector.
+    /// Set a node's cost vector.
     /// @param NId Node to update.
     /// @param Costs New costs to set.
     template <typename OtherVectorT>
@@ -471,7 +471,7 @@
       getNode(NId).Costs = AllocatedCosts;
     }
 
-    /// @brief Get a VectorPtr to a node's cost vector. Rarely useful - use
+    /// Get a VectorPtr to a node's cost vector. Rarely useful - use
     ///        getNodeCosts where possible.
     /// @param NId Node id.
     /// @return VectorPtr to node cost vector.
@@ -483,7 +483,7 @@
       return getNode(NId).Costs;
     }
 
-    /// @brief Get a node's cost vector.
+    /// Get a node's cost vector.
     /// @param NId Node id.
     /// @return Node cost vector.
     const Vector& getNodeCosts(NodeId NId) const {
@@ -502,7 +502,7 @@
       return getNode(NId).getAdjEdgeIds().size();
     }
 
-    /// @brief Update an edge's cost matrix.
+    /// Update an edge's cost matrix.
     /// @param EId Edge id.
     /// @param Costs New cost matrix.
     template <typename OtherMatrixT>
@@ -513,7 +513,7 @@
       getEdge(EId).Costs = AllocatedCosts;
     }
 
-    /// @brief Get a MatrixPtr to a node's cost matrix. Rarely useful - use
+    /// Get a MatrixPtr to a node's cost matrix. Rarely useful - use
     ///        getEdgeCosts where possible.
     /// @param EId Edge id.
     /// @return MatrixPtr to edge cost matrix.
@@ -525,7 +525,7 @@
       return getEdge(EId).Costs;
     }
 
-    /// @brief Get an edge's cost matrix.
+    /// Get an edge's cost matrix.
     /// @param EId Edge id.
     /// @return Edge cost matrix.
     const Matrix& getEdgeCosts(EdgeId EId) const {
@@ -540,21 +540,21 @@
       return getEdge(EId).Metadata;
     }
 
-    /// @brief Get the first node connected to this edge.
+    /// Get the first node connected to this edge.
     /// @param EId Edge id.
     /// @return The first node connected to the given edge.
     NodeId getEdgeNode1Id(EdgeId EId) const {
       return getEdge(EId).getN1Id();
     }
 
-    /// @brief Get the second node connected to this edge.
+    /// Get the second node connected to this edge.
     /// @param EId Edge id.
     /// @return The second node connected to the given edge.
     NodeId getEdgeNode2Id(EdgeId EId) const {
       return getEdge(EId).getN2Id();
     }
 
-    /// @brief Get the "other" node connected to this edge.
+    /// Get the "other" node connected to this edge.
     /// @param EId Edge id.
     /// @param NId Node id for the "given" node.
     /// @return The iterator for the "other" node connected to this edge.
@@ -566,7 +566,7 @@
       return E.getN1Id();
     }
 
-    /// @brief Get the edge connecting two nodes.
+    /// Get the edge connecting two nodes.
     /// @param N1Id First node id.
     /// @param N2Id Second node id.
     /// @return An id for edge (N1Id, N2Id) if such an edge exists,
@@ -581,7 +581,7 @@
       return invalidEdgeId();
     }
 
-    /// @brief Remove a node from the graph.
+    /// Remove a node from the graph.
     /// @param NId Node id.
     void removeNode(NodeId NId) {
       if (Solver)
@@ -598,7 +598,7 @@
       FreeNodeIds.push_back(NId);
     }
 
-    /// @brief Disconnect an edge from the given node.
+    /// Disconnect an edge from the given node.
     ///
     /// Removes the given edge from the adjacency list of the given node.
     /// This operation leaves the edge in an 'asymmetric' state: It will no
@@ -631,14 +631,14 @@
       E.disconnectFrom(*this, NId);
     }
 
-    /// @brief Convenience method to disconnect all neighbours from the given
+    /// Convenience method to disconnect all neighbours from the given
     ///        node.
     void disconnectAllNeighborsFromNode(NodeId NId) {
       for (auto AEId : adjEdgeIds(NId))
         disconnectEdge(AEId, getEdgeOtherNodeId(AEId, NId));
     }
 
-    /// @brief Re-attach an edge to its nodes.
+    /// Re-attach an edge to its nodes.
     ///
     /// Adds an edge that had been previously disconnected back into the
     /// adjacency set of the nodes that the edge connects.
@@ -649,7 +649,7 @@
         Solver->handleReconnectEdge(EId, NId);
     }
 
-    /// @brief Remove an edge from the graph.
+    /// Remove an edge from the graph.
     /// @param EId Edge id.
     void removeEdge(EdgeId EId) {
       if (Solver)
@@ -660,7 +660,7 @@
       Edges[EId].invalidate();
     }
 
-    /// @brief Remove all nodes and edges from the graph.
+    /// Remove all nodes and edges from the graph.
     void clear() {
       Nodes.clear();
       FreeNodeIds.clear();
diff --git a/linux-x64/clang/include/llvm/CodeGen/PBQP/Math.h b/linux-x64/clang/include/llvm/CodeGen/PBQP/Math.h
index ba405e8..d1432a3 100644
--- a/linux-x64/clang/include/llvm/CodeGen/PBQP/Math.h
+++ b/linux-x64/clang/include/llvm/CodeGen/PBQP/Math.h
@@ -22,34 +22,34 @@
 
 using PBQPNum = float;
 
-/// \brief PBQP Vector class.
+/// PBQP Vector class.
 class Vector {
   friend hash_code hash_value(const Vector &);
 
 public:
-  /// \brief Construct a PBQP vector of the given size.
+  /// Construct a PBQP vector of the given size.
   explicit Vector(unsigned Length)
     : Length(Length), Data(llvm::make_unique<PBQPNum []>(Length)) {}
 
-  /// \brief Construct a PBQP vector with initializer.
+  /// Construct a PBQP vector with initializer.
   Vector(unsigned Length, PBQPNum InitVal)
     : Length(Length), Data(llvm::make_unique<PBQPNum []>(Length)) {
     std::fill(Data.get(), Data.get() + Length, InitVal);
   }
 
-  /// \brief Copy construct a PBQP vector.
+  /// Copy construct a PBQP vector.
   Vector(const Vector &V)
     : Length(V.Length), Data(llvm::make_unique<PBQPNum []>(Length)) {
     std::copy(V.Data.get(), V.Data.get() + Length, Data.get());
   }
 
-  /// \brief Move construct a PBQP vector.
+  /// Move construct a PBQP vector.
   Vector(Vector &&V)
     : Length(V.Length), Data(std::move(V.Data)) {
     V.Length = 0;
   }
 
-  /// \brief Comparison operator.
+  /// Comparison operator.
   bool operator==(const Vector &V) const {
     assert(Length != 0 && Data && "Invalid vector");
     if (Length != V.Length)
@@ -57,27 +57,27 @@
     return std::equal(Data.get(), Data.get() + Length, V.Data.get());
   }
 
-  /// \brief Return the length of the vector
+  /// Return the length of the vector
   unsigned getLength() const {
     assert(Length != 0 && Data && "Invalid vector");
     return Length;
   }
 
-  /// \brief Element access.
+  /// Element access.
   PBQPNum& operator[](unsigned Index) {
     assert(Length != 0 && Data && "Invalid vector");
     assert(Index < Length && "Vector element access out of bounds.");
     return Data[Index];
   }
 
-  /// \brief Const element access.
+  /// Const element access.
   const PBQPNum& operator[](unsigned Index) const {
     assert(Length != 0 && Data && "Invalid vector");
     assert(Index < Length && "Vector element access out of bounds.");
     return Data[Index];
   }
 
-  /// \brief Add another vector to this one.
+  /// Add another vector to this one.
   Vector& operator+=(const Vector &V) {
     assert(Length != 0 && Data && "Invalid vector");
     assert(Length == V.Length && "Vector length mismatch.");
@@ -86,7 +86,7 @@
     return *this;
   }
 
-  /// \brief Returns the index of the minimum value in this vector
+  /// Returns the index of the minimum value in this vector
   unsigned minIndex() const {
     assert(Length != 0 && Data && "Invalid vector");
     return std::min_element(Data.get(), Data.get() + Length) - Data.get();
@@ -97,14 +97,14 @@
   std::unique_ptr<PBQPNum []> Data;
 };
 
-/// \brief Return a hash_value for the given vector.
+/// Return a hash_value for the given vector.
 inline hash_code hash_value(const Vector &V) {
   unsigned *VBegin = reinterpret_cast<unsigned*>(V.Data.get());
   unsigned *VEnd = reinterpret_cast<unsigned*>(V.Data.get() + V.Length);
   return hash_combine(V.Length, hash_combine_range(VBegin, VEnd));
 }
 
-/// \brief Output a textual representation of the given vector on the given
+/// Output a textual representation of the given vector on the given
 ///        output stream.
 template <typename OStream>
 OStream& operator<<(OStream &OS, const Vector &V) {
@@ -118,18 +118,18 @@
   return OS;
 }
 
-/// \brief PBQP Matrix class
+/// PBQP Matrix class
 class Matrix {
 private:
   friend hash_code hash_value(const Matrix &);
 
 public:
-  /// \brief Construct a PBQP Matrix with the given dimensions.
+  /// Construct a PBQP Matrix with the given dimensions.
   Matrix(unsigned Rows, unsigned Cols) :
     Rows(Rows), Cols(Cols), Data(llvm::make_unique<PBQPNum []>(Rows * Cols)) {
   }
 
-  /// \brief Construct a PBQP Matrix with the given dimensions and initial
+  /// Construct a PBQP Matrix with the given dimensions and initial
   /// value.
   Matrix(unsigned Rows, unsigned Cols, PBQPNum InitVal)
     : Rows(Rows), Cols(Cols),
@@ -137,20 +137,20 @@
     std::fill(Data.get(), Data.get() + (Rows * Cols), InitVal);
   }
 
-  /// \brief Copy construct a PBQP matrix.
+  /// Copy construct a PBQP matrix.
   Matrix(const Matrix &M)
     : Rows(M.Rows), Cols(M.Cols),
       Data(llvm::make_unique<PBQPNum []>(Rows * Cols)) {
     std::copy(M.Data.get(), M.Data.get() + (Rows * Cols), Data.get());
   }
 
-  /// \brief Move construct a PBQP matrix.
+  /// Move construct a PBQP matrix.
   Matrix(Matrix &&M)
     : Rows(M.Rows), Cols(M.Cols), Data(std::move(M.Data)) {
     M.Rows = M.Cols = 0;
   }
 
-  /// \brief Comparison operator.
+  /// Comparison operator.
   bool operator==(const Matrix &M) const {
     assert(Rows != 0 && Cols != 0 && Data && "Invalid matrix");
     if (Rows != M.Rows || Cols != M.Cols)
@@ -158,33 +158,33 @@
     return std::equal(Data.get(), Data.get() + (Rows * Cols), M.Data.get());
   }
 
-  /// \brief Return the number of rows in this matrix.
+  /// Return the number of rows in this matrix.
   unsigned getRows() const {
     assert(Rows != 0 && Cols != 0 && Data && "Invalid matrix");
     return Rows;
   }
 
-  /// \brief Return the number of cols in this matrix.
+  /// Return the number of cols in this matrix.
   unsigned getCols() const {
     assert(Rows != 0 && Cols != 0 && Data && "Invalid matrix");
     return Cols;
   }
 
-  /// \brief Matrix element access.
+  /// Matrix element access.
   PBQPNum* operator[](unsigned R) {
     assert(Rows != 0 && Cols != 0 && Data && "Invalid matrix");
     assert(R < Rows && "Row out of bounds.");
     return Data.get() + (R * Cols);
   }
 
-  /// \brief Matrix element access.
+  /// Matrix element access.
   const PBQPNum* operator[](unsigned R) const {
     assert(Rows != 0 && Cols != 0 && Data && "Invalid matrix");
     assert(R < Rows && "Row out of bounds.");
     return Data.get() + (R * Cols);
   }
 
-  /// \brief Returns the given row as a vector.
+  /// Returns the given row as a vector.
   Vector getRowAsVector(unsigned R) const {
     assert(Rows != 0 && Cols != 0 && Data && "Invalid matrix");
     Vector V(Cols);
@@ -193,7 +193,7 @@
     return V;
   }
 
-  /// \brief Returns the given column as a vector.
+  /// Returns the given column as a vector.
   Vector getColAsVector(unsigned C) const {
     assert(Rows != 0 && Cols != 0 && Data && "Invalid matrix");
     Vector V(Rows);
@@ -202,7 +202,7 @@
     return V;
   }
 
-  /// \brief Matrix transpose.
+  /// Matrix transpose.
   Matrix transpose() const {
     assert(Rows != 0 && Cols != 0 && Data && "Invalid matrix");
     Matrix M(Cols, Rows);
@@ -212,7 +212,7 @@
     return M;
   }
 
-  /// \brief Add the given matrix to this one.
+  /// Add the given matrix to this one.
   Matrix& operator+=(const Matrix &M) {
     assert(Rows != 0 && Cols != 0 && Data && "Invalid matrix");
     assert(Rows == M.Rows && Cols == M.Cols &&
@@ -234,7 +234,7 @@
   std::unique_ptr<PBQPNum []> Data;
 };
 
-/// \brief Return a hash_code for the given matrix.
+/// Return a hash_code for the given matrix.
 inline hash_code hash_value(const Matrix &M) {
   unsigned *MBegin = reinterpret_cast<unsigned*>(M.Data.get());
   unsigned *MEnd =
@@ -242,7 +242,7 @@
   return hash_combine(M.Rows, M.Cols, hash_combine_range(MBegin, MEnd));
 }
 
-/// \brief Output a textual representation of the given matrix on the given
+/// Output a textual representation of the given matrix on the given
 ///        output stream.
 template <typename OStream>
 OStream& operator<<(OStream &OS, const Matrix &M) {
diff --git a/linux-x64/clang/include/llvm/CodeGen/PBQP/ReductionRules.h b/linux-x64/clang/include/llvm/CodeGen/PBQP/ReductionRules.h
index 8aeb519..21b9902 100644
--- a/linux-x64/clang/include/llvm/CodeGen/PBQP/ReductionRules.h
+++ b/linux-x64/clang/include/llvm/CodeGen/PBQP/ReductionRules.h
@@ -23,7 +23,7 @@
 namespace llvm {
 namespace PBQP {
 
-  /// \brief Reduce a node of degree one.
+  /// Reduce a node of degree one.
   ///
   /// Propagate costs from the given node, which must be of degree one, to its
   /// neighbor. Notify the problem domain.
@@ -166,7 +166,7 @@
   }
 #endif
 
-  // \brief Find a solution to a fully reduced graph by backpropagation.
+  // Find a solution to a fully reduced graph by backpropagation.
   //
   // Given a graph and a reduction order, pop each node from the reduction
   // order and greedily compute a minimum solution based on the node costs, and
diff --git a/linux-x64/clang/include/llvm/CodeGen/PBQP/Solution.h b/linux-x64/clang/include/llvm/CodeGen/PBQP/Solution.h
index 6a24727..4d4379f 100644
--- a/linux-x64/clang/include/llvm/CodeGen/PBQP/Solution.h
+++ b/linux-x64/clang/include/llvm/CodeGen/PBQP/Solution.h
@@ -21,7 +21,7 @@
 namespace llvm {
 namespace PBQP {
 
-  /// \brief Represents a solution to a PBQP problem.
+  /// Represents a solution to a PBQP problem.
   ///
   /// To get the selection for each node in the problem use the getSelection method.
   class Solution {
@@ -30,17 +30,17 @@
     SelectionsMap selections;
 
   public:
-    /// \brief Initialise an empty solution.
+    /// Initialise an empty solution.
     Solution() = default;
 
-    /// \brief Set the selection for a given node.
+    /// Set the selection for a given node.
     /// @param nodeId Node id.
     /// @param selection Selection for nodeId.
     void setSelection(GraphBase::NodeId nodeId, unsigned selection) {
       selections[nodeId] = selection;
     }
 
-    /// \brief Get a node's selection.
+    /// Get a node's selection.
     /// @param nodeId Node id.
     /// @return The selection for nodeId;
     unsigned getSelection(GraphBase::NodeId nodeId) const {
diff --git a/linux-x64/clang/include/llvm/CodeGen/PBQPRAConstraint.h b/linux-x64/clang/include/llvm/CodeGen/PBQPRAConstraint.h
index 269b7a7..995467d 100644
--- a/linux-x64/clang/include/llvm/CodeGen/PBQPRAConstraint.h
+++ b/linux-x64/clang/include/llvm/CodeGen/PBQPRAConstraint.h
@@ -33,7 +33,7 @@
 
 using PBQPRAGraph = PBQP::RegAlloc::PBQPRAGraph;
 
-/// @brief Abstract base for classes implementing PBQP register allocation
+/// Abstract base for classes implementing PBQP register allocation
 ///        constraints (e.g. Spill-costs, interference, coalescing).
 class PBQPRAConstraint {
 public:
@@ -44,7 +44,7 @@
   virtual void anchor();
 };
 
-/// @brief PBQP register allocation constraint composer.
+/// PBQP register allocation constraint composer.
 ///
 ///   Constraints added to this list will be applied, in the order that they are
 /// added, to the PBQP graph.
diff --git a/linux-x64/clang/include/llvm/CodeGen/ParallelCG.h b/linux-x64/clang/include/llvm/CodeGen/ParallelCG.h
index 14ef0ec..dbf09ea 100644
--- a/linux-x64/clang/include/llvm/CodeGen/ParallelCG.h
+++ b/linux-x64/clang/include/llvm/CodeGen/ParallelCG.h
@@ -40,7 +40,7 @@
 splitCodeGen(std::unique_ptr<Module> M, ArrayRef<raw_pwrite_stream *> OSs,
              ArrayRef<llvm::raw_pwrite_stream *> BCOSs,
              const std::function<std::unique_ptr<TargetMachine>()> &TMFactory,
-             TargetMachine::CodeGenFileType FT = TargetMachine::CGFT_ObjectFile,
+             TargetMachine::CodeGenFileType FileType = TargetMachine::CGFT_ObjectFile,
              bool PreserveLocals = false);
 
 } // namespace llvm
diff --git a/linux-x64/clang/include/llvm/CodeGen/Passes.h b/linux-x64/clang/include/llvm/CodeGen/Passes.h
index 68fd04b..cb12b14 100644
--- a/linux-x64/clang/include/llvm/CodeGen/Passes.h
+++ b/linux-x64/clang/include/llvm/CodeGen/Passes.h
@@ -301,7 +301,7 @@
   /// StackSlotColoring - This pass performs stack slot coloring.
   extern char &StackSlotColoringID;
 
-  /// \brief This pass lays out funclets contiguously.
+  /// This pass lays out funclets contiguously.
   extern char &FuncletLayoutID;
 
   /// This pass inserts the XRay instrumentation sleds if they are supported by
@@ -311,7 +311,7 @@
   /// This pass inserts FEntry calls
   extern char &FEntryInserterID;
 
-  /// \brief This pass implements the "patchable-function" attribute.
+  /// This pass implements the "patchable-function" attribute.
   extern char &PatchableFunctionID;
 
   /// createStackProtectorPass - This pass adds stack protectors to functions.
@@ -329,13 +329,17 @@
 
   /// createWinEHPass - Prepares personality functions used by MSVC on Windows,
   /// in addition to the Itanium LSDA based personalities.
-  FunctionPass *createWinEHPass();
+  FunctionPass *createWinEHPass(bool DemoteCatchSwitchPHIOnly = false);
 
   /// createSjLjEHPreparePass - This pass adapts exception handling code to use
   /// the GCC-style builtin setjmp/longjmp (sjlj) to handling EH control flow.
   ///
   FunctionPass *createSjLjEHPreparePass();
 
+  /// createWasmEHPass - This pass adapts exception handling code to use
+  /// WebAssembly's exception handling scheme.
+  FunctionPass *createWasmEHPass();
+
   /// LocalStackSlotAllocation - This pass assigns local frame indices to stack
   /// slots relative to one another and allocates base registers to access them
   /// when it is estimated by the target to be out of range of normal frame
@@ -380,7 +384,7 @@
   ///
   ModulePass *createLowerEmuTLSPass();
 
-  /// This pass lowers the @llvm.load.relative intrinsic to instructions.
+  /// This pass lowers the \@llvm.load.relative intrinsic to instructions.
   /// This is unsafe to do earlier because a pass may combine the constant
   /// initializer into the load, which may result in an overflowing evaluation.
   ModulePass *createPreISelIntrinsicLoweringPass();
@@ -419,7 +423,7 @@
 
   /// This pass performs outlining on machine instructions directly before
   /// printing assembly.
-  ModulePass *createMachineOutlinerPass(bool OutlineFromLinkOnceODRs = false);
+  ModulePass *createMachineOutlinerPass(bool RunOnAllFunctions = true);
 
   /// This pass expands the experimental reduction intrinsics into sequences of
   /// shuffles.
@@ -434,6 +438,9 @@
   // This pass expands indirectbr instructions.
   FunctionPass *createIndirectBrExpandPass();
 
+  /// Creates CFI Instruction Inserter pass. \see CFIInstrInserter.cpp
+  FunctionPass *createCFIInstrInserter();
+
 } // End llvm namespace
 
 #endif
diff --git a/linux-x64/clang/include/llvm/CodeGen/RegAllocPBQP.h b/linux-x64/clang/include/llvm/CodeGen/RegAllocPBQP.h
index 5b34286..ba97630 100644
--- a/linux-x64/clang/include/llvm/CodeGen/RegAllocPBQP.h
+++ b/linux-x64/clang/include/llvm/CodeGen/RegAllocPBQP.h
@@ -43,10 +43,10 @@
 namespace PBQP {
 namespace RegAlloc {
 
-/// @brief Spill option index.
+/// Spill option index.
 inline unsigned getSpillOptionIdx() { return 0; }
 
-/// \brief Metadata to speed allocatability test.
+/// Metadata to speed allocatability test.
 ///
 /// Keeps track of the number of infinities in each row and column.
 class MatrixMetadata {
@@ -89,7 +89,7 @@
   std::unique_ptr<bool[]> UnsafeCols;
 };
 
-/// \brief Holds a vector of the allowed physical regs for a vreg.
+/// Holds a vector of the allowed physical regs for a vreg.
 class AllowedRegVector {
   friend hash_code hash_value(const AllowedRegVector &);
 
@@ -127,7 +127,7 @@
                       hash_combine_range(OStart, OEnd));
 }
 
-/// \brief Holds graph-level metadata relevant to PBQP RA problems.
+/// Holds graph-level metadata relevant to PBQP RA problems.
 class GraphMetadata {
 private:
   using AllowedRegVecPool = ValuePool<AllowedRegVector>;
@@ -164,7 +164,7 @@
   AllowedRegVecPool AllowedRegVecs;
 };
 
-/// \brief Holds solver state and other metadata relevant to each PBQP RA node.
+/// Holds solver state and other metadata relevant to each PBQP RA node.
 class NodeMetadata {
 public:
   using AllowedRegVector = RegAlloc::AllowedRegVector;
@@ -505,14 +505,14 @@
 public:
   PBQPRAGraph(GraphMetadata Metadata) : BaseT(std::move(Metadata)) {}
 
-  /// @brief Dump this graph to dbgs().
+  /// Dump this graph to dbgs().
   void dump() const;
 
-  /// @brief Dump this graph to an output stream.
+  /// Dump this graph to an output stream.
   /// @param OS Output stream to print on.
   void dump(raw_ostream &OS) const;
 
-  /// @brief Print a representation of this graph in DOT format.
+  /// Print a representation of this graph in DOT format.
   /// @param OS Output stream to print on.
   void printDot(raw_ostream &OS) const;
 };
@@ -527,7 +527,7 @@
 } // end namespace RegAlloc
 } // end namespace PBQP
 
-/// @brief Create a PBQP register allocator instance.
+/// Create a PBQP register allocator instance.
 FunctionPass *
 createPBQPRegisterAllocator(char *customPassID = nullptr);
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/RegisterPressure.h b/linux-x64/clang/include/llvm/CodeGen/RegisterPressure.h
index 2b14b78..79054b9 100644
--- a/linux-x64/clang/include/llvm/CodeGen/RegisterPressure.h
+++ b/linux-x64/clang/include/llvm/CodeGen/RegisterPressure.h
@@ -171,10 +171,10 @@
 public:
   /// List of virtual registers and register units read by the instruction.
   SmallVector<RegisterMaskPair, 8> Uses;
-  /// \brief List of virtual registers and register units defined by the
+  /// List of virtual registers and register units defined by the
   /// instruction which are not dead.
   SmallVector<RegisterMaskPair, 8> Defs;
-  /// \brief List of virtual registers and register units defined by the
+  /// List of virtual registers and register units defined by the
   /// instruction but dead.
   SmallVector<RegisterMaskPair, 8> DeadDefs;
 
@@ -219,7 +219,7 @@
     return const_cast<PressureDiffs*>(this)->operator[](Idx);
   }
 
-  /// \brief Record pressure difference induced by the given operand list to
+  /// Record pressure difference induced by the given operand list to
   /// node with index \p Idx.
   void addInstruction(unsigned Idx, const RegisterOperands &RegOpers,
                       const MachineRegisterInfo &MRI);
@@ -546,7 +546,7 @@
   /// Add Reg to the live in set and increase max pressure.
   void discoverLiveIn(RegisterMaskPair Pair);
 
-  /// \brief Get the SlotIndex for the first nondebug instruction including or
+  /// Get the SlotIndex for the first nondebug instruction including or
   /// after the current position.
   SlotIndex getCurrSlot() const;
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/RegisterScavenging.h b/linux-x64/clang/include/llvm/CodeGen/RegisterScavenging.h
index 489c72b..b6bd028 100644
--- a/linux-x64/clang/include/llvm/CodeGen/RegisterScavenging.h
+++ b/linux-x64/clang/include/llvm/CodeGen/RegisterScavenging.h
@@ -127,7 +127,7 @@
 
   /// Find an unused register of the specified register class.
   /// Return 0 if none is found.
-  unsigned FindUnusedReg(const TargetRegisterClass *RegClass) const;
+  unsigned FindUnusedReg(const TargetRegisterClass *RC) const;
 
   /// Add a scavenging frame index.
   void addScavengingFrameIndex(int FI) {
@@ -158,7 +158,7 @@
   /// Returns the scavenged register.
   /// This is deprecated as it depends on the quality of the kill flags being
   /// present; Use scavengeRegisterBackwards() instead!
-  unsigned scavengeRegister(const TargetRegisterClass *RegClass,
+  unsigned scavengeRegister(const TargetRegisterClass *RC,
                             MachineBasicBlock::iterator I, int SPAdj);
   unsigned scavengeRegister(const TargetRegisterClass *RegClass, int SPAdj) {
     return scavengeRegister(RegClass, MBBI, SPAdj);
@@ -218,7 +218,7 @@
   /// Spill a register after position \p After and reload it before position
   /// \p UseMI.
   ScavengedInfo &spill(unsigned Reg, const TargetRegisterClass &RC, int SPAdj,
-                       MachineBasicBlock::iterator After,
+                       MachineBasicBlock::iterator Before,
                        MachineBasicBlock::iterator &UseMI);
 };
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/RegisterUsageInfo.h b/linux-x64/clang/include/llvm/CodeGen/RegisterUsageInfo.h
index eabadd8..efd175e 100644
--- a/linux-x64/clang/include/llvm/CodeGen/RegisterUsageInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/RegisterUsageInfo.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_CODEGEN_PHYSICALREGISTERUSAGEINFO_H
 #define LLVM_CODEGEN_PHYSICALREGISTERUSAGEINFO_H
 
+#include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/IR/Instructions.h"
 #include "llvm/Pass.h"
@@ -31,8 +32,6 @@
 class TargetMachine;
 
 class PhysicalRegisterUsageInfo : public ImmutablePass {
-  virtual void anchor();
-
 public:
   static char ID;
 
@@ -41,25 +40,20 @@
     initializePhysicalRegisterUsageInfoPass(Registry);
   }
 
-  void getAnalysisUsage(AnalysisUsage &AU) const override {
-    AU.setPreservesAll();
-  }
-
-  /// To set TargetMachine *, which is used to print
-  /// analysis when command line option -print-regusage is used.
-  void setTargetMachine(const TargetMachine *TM_) { TM = TM_; }
+  /// Set TargetMachine which is used to print analysis.
+  void setTargetMachine(const TargetMachine &TM);
 
   bool doInitialization(Module &M) override;
 
   bool doFinalization(Module &M) override;
 
   /// To store RegMask for given Function *.
-  void storeUpdateRegUsageInfo(const Function *FP,
-                               std::vector<uint32_t> RegMask);
+  void storeUpdateRegUsageInfo(const Function &FP,
+                               ArrayRef<uint32_t> RegMask);
 
-  /// To query stored RegMask for given Function *, it will return nullptr if
-  /// function is not known.
-  const std::vector<uint32_t> *getRegUsageInfo(const Function *FP);
+  /// To query stored RegMask for given Function *, it will returns ane empty
+  /// array if function is not known.
+  ArrayRef<uint32_t> getRegUsageInfo(const Function &FP);
 
   void print(raw_ostream &OS, const Module *M = nullptr) const override;
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/ResourcePriorityQueue.h b/linux-x64/clang/include/llvm/CodeGen/ResourcePriorityQueue.h
index 03166cc..8d582ee 100644
--- a/linux-x64/clang/include/llvm/CodeGen/ResourcePriorityQueue.h
+++ b/linux-x64/clang/include/llvm/CodeGen/ResourcePriorityQueue.h
@@ -32,7 +32,7 @@
     ResourcePriorityQueue *PQ;
     explicit resource_sort(ResourcePriorityQueue *pq) : PQ(pq) {}
 
-    bool operator()(const SUnit* left, const SUnit* right) const;
+    bool operator()(const SUnit* LHS, const SUnit* RHS) const;
   };
 
   class ResourcePriorityQueue : public SchedulingPriorityQueue {
@@ -121,7 +121,7 @@
     void remove(SUnit *SU) override;
 
     /// scheduledNode - Main resource tracking point.
-    void scheduledNode(SUnit *Node) override;
+    void scheduledNode(SUnit *SU) override;
     bool isResourceAvailable(SUnit *SU);
     void reserveResources(SUnit *SU);
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/RuntimeLibcalls.h b/linux-x64/clang/include/llvm/CodeGen/RuntimeLibcalls.h
index 016bef1..28567a1 100644
--- a/linux-x64/clang/include/llvm/CodeGen/RuntimeLibcalls.h
+++ b/linux-x64/clang/include/llvm/CodeGen/RuntimeLibcalls.h
@@ -29,7 +29,7 @@
   ///
   enum Libcall {
 #define HANDLE_LIBCALL(code, name) code,
-    #include "RuntimeLibcalls.def"
+    #include "llvm/IR/RuntimeLibcalls.def"
 #undef HANDLE_LIBCALL
   };
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/ScheduleDAG.h b/linux-x64/clang/include/llvm/CodeGen/ScheduleDAG.h
index f3f2f05..56adc2e 100644
--- a/linux-x64/clang/include/llvm/CodeGen/ScheduleDAG.h
+++ b/linux-x64/clang/include/llvm/CodeGen/ScheduleDAG.h
@@ -76,7 +76,7 @@
     };
 
   private:
-    /// \brief A pointer to the depending/depended-on SUnit, and an enum
+    /// A pointer to the depending/depended-on SUnit, and an enum
     /// indicating the kind of the dependency.
     PointerIntPair<SUnit *, 2, Kind> Dep;
 
@@ -137,7 +137,7 @@
       return !operator==(Other);
     }
 
-    /// \brief Returns the latency value for this edge, which roughly means the
+    /// Returns the latency value for this edge, which roughly means the
     /// minimum number of cycles that must elapse between the predecessor and
     /// the successor, given that they have this edge between them.
     unsigned getLatency() const {
@@ -163,7 +163,7 @@
       return getKind() != Data;
     }
 
-    /// \brief Tests if this is an Order dependence between two memory accesses
+    /// Tests if this is an Order dependence between two memory accesses
     /// where both sides of the dependence access memory in non-volatile and
     /// fully modeled ways.
     bool isNormalMemory() const {
@@ -181,7 +181,7 @@
       return (isNormalMemory() || isBarrier());
     }
 
-    /// \brief Tests if this is an Order dependence that is marked as
+    /// Tests if this is an Order dependence that is marked as
     /// "must alias", meaning that the SUnits at either end of the edge have a
     /// memory dependence on a known memory location.
     bool isMustAlias() const {
@@ -196,13 +196,13 @@
       return getKind() == Order && Contents.OrdKind >= Weak;
     }
 
-    /// \brief Tests if this is an Order dependence that is marked as
+    /// Tests if this is an Order dependence that is marked as
     /// "artificial", meaning it isn't necessary for correctness.
     bool isArtificial() const {
       return getKind() == Order && Contents.OrdKind == Artificial;
     }
 
-    /// \brief Tests if this is an Order dependence that is marked as "cluster",
+    /// Tests if this is an Order dependence that is marked as "cluster",
     /// meaning it is artificial and wants to be adjacent.
     bool isCluster() const {
       return getKind() == Order && Contents.OrdKind == Cluster;
@@ -252,7 +252,7 @@
     MachineInstr *Instr = nullptr; ///< Alternatively, a MachineInstr.
 
   public:
-    SUnit *OrigNode = nullptr; ///< If not this, the node from which this node 
+    SUnit *OrigNode = nullptr; ///< If not this, the node from which this node
                                /// was cloned. (SD scheduling only)
 
     const MCSchedClassDesc *SchedClass =
@@ -308,7 +308,7 @@
         nullptr; ///< Is a special copy node if != nullptr.
     const TargetRegisterClass *CopySrcRC = nullptr;
 
-    /// \brief Constructs an SUnit for pre-regalloc scheduling to represent an
+    /// Constructs an SUnit for pre-regalloc scheduling to represent an
     /// SDNode and any nodes flagged to it.
     SUnit(SDNode *node, unsigned nodenum)
       : Node(node), NodeNum(nodenum), isVRegCycle(false), isCall(false),
@@ -319,7 +319,7 @@
         isUnbuffered(false), hasReservedResource(false), isDepthCurrent(false),
         isHeightCurrent(false) {}
 
-    /// \brief Constructs an SUnit for post-regalloc scheduling to represent a
+    /// Constructs an SUnit for post-regalloc scheduling to represent a
     /// MachineInstr.
     SUnit(MachineInstr *instr, unsigned nodenum)
       : Instr(instr), NodeNum(nodenum), isVRegCycle(false), isCall(false),
@@ -330,7 +330,7 @@
         isUnbuffered(false), hasReservedResource(false), isDepthCurrent(false),
         isHeightCurrent(false) {}
 
-    /// \brief Constructs a placeholder SUnit.
+    /// Constructs a placeholder SUnit.
     SUnit()
       : isVRegCycle(false), isCall(false), isCallOp(false), isTwoAddress(false),
         isCommutable(false), hasPhysRegUses(false), hasPhysRegDefs(false),
@@ -339,7 +339,7 @@
         isCloned(false), isUnbuffered(false), hasReservedResource(false),
         isDepthCurrent(false), isHeightCurrent(false) {}
 
-    /// \brief Boundary nodes are placeholders for the boundary of the
+    /// Boundary nodes are placeholders for the boundary of the
     /// scheduling region.
     ///
     /// BoundaryNodes can have DAG edges, including Data edges, but they do not
@@ -362,7 +362,7 @@
       return Node;
     }
 
-    /// \brief Returns true if this SUnit refers to a machine instruction as
+    /// Returns true if this SUnit refers to a machine instruction as
     /// opposed to an SDNode.
     bool isInstr() const { return Instr; }
 
@@ -384,7 +384,7 @@
     /// It also adds the current node as a successor of the specified node.
     bool addPred(const SDep &D, bool Required = true);
 
-    /// \brief Adds a barrier edge to SU by calling addPred(), with latency 0
+    /// Adds a barrier edge to SU by calling addPred(), with latency 0
     /// generally or latency 1 for a store followed by a load.
     bool addPredBarrier(SUnit *SU) {
       SDep Dep(SU, SDep::Barrier);
@@ -406,7 +406,7 @@
       return Depth;
     }
 
-    /// \brief Returns the height of this node, which is the length of the
+    /// Returns the height of this node, which is the length of the
     /// maximum path down to any node which has no successors.
     unsigned getHeight() const {
       if (!isHeightCurrent)
@@ -414,21 +414,21 @@
       return Height;
     }
 
-    /// \brief If NewDepth is greater than this node's depth value, sets it to
+    /// If NewDepth is greater than this node's depth value, sets it to
     /// be the new depth value. This also recursively marks successor nodes
     /// dirty.
     void setDepthToAtLeast(unsigned NewDepth);
 
-    /// \brief If NewDepth is greater than this node's depth value, set it to be
+    /// If NewDepth is greater than this node's depth value, set it to be
     /// the new height value. This also recursively marks predecessor nodes
     /// dirty.
     void setHeightToAtLeast(unsigned NewHeight);
 
-    /// \brief Sets a flag in this node to indicate that its stored Depth value
+    /// Sets a flag in this node to indicate that its stored Depth value
     /// will require recomputation the next time getDepth() is called.
     void setDepthDirty();
 
-    /// \brief Sets a flag in this node to indicate that its stored Height value
+    /// Sets a flag in this node to indicate that its stored Height value
     /// will require recomputation the next time getHeight() is called.
     void setHeightDirty();
 
@@ -455,15 +455,15 @@
       return NumSuccsLeft == 0;
     }
 
-    /// \brief Orders this node's predecessor edges such that the critical path
+    /// Orders this node's predecessor edges such that the critical path
     /// edge occurs first.
     void biasCriticalPath();
 
     void dump(const ScheduleDAG *G) const;
     void dumpAll(const ScheduleDAG *G) const;
     raw_ostream &print(raw_ostream &O,
-                       const SUnit *N = nullptr,
-                       const SUnit *X = nullptr) const;
+                       const SUnit *Entry = nullptr,
+                       const SUnit *Exit = nullptr) const;
     raw_ostream &print(raw_ostream &O, const ScheduleDAG *G) const;
 
   private:
@@ -497,7 +497,7 @@
 
   //===--------------------------------------------------------------------===//
 
-  /// \brief This interface is used to plug different priorities computation
+  /// This interface is used to plug different priorities computation
   /// algorithms into the list scheduler. It implements the interface of a
   /// standard priority queue, where nodes are inserted in arbitrary order and
   /// returned in priority order.  The computation of the priority and the
@@ -609,7 +609,7 @@
     virtual void addCustomGraphFeatures(GraphWriter<ScheduleDAG*> &) const {}
 
 #ifndef NDEBUG
-    /// \brief Verifies that all SUnits were scheduled and that their state is
+    /// Verifies that all SUnits were scheduled and that their state is
     /// consistent. Returns the number of scheduled SUnits.
     unsigned VerifyScheduledDAG(bool isBottomUp);
 #endif
@@ -708,7 +708,7 @@
     /// method.
     void DFS(const SUnit *SU, int UpperBound, bool& HasLoop);
 
-    /// \brief Reassigns topological indexes for the nodes in the DAG to
+    /// Reassigns topological indexes for the nodes in the DAG to
     /// preserve the topological ordering.
     void Shift(BitVector& Visited, int LowerBound, int UpperBound);
 
@@ -735,11 +735,11 @@
     /// Returns true if addPred(TargetSU, SU) creates a cycle.
     bool WillCreateCycle(SUnit *TargetSU, SUnit *SU);
 
-    /// \brief Updates the topological ordering to accommodate an edge to be
+    /// Updates the topological ordering to accommodate an edge to be
     /// added from SUnit \p X to SUnit \p Y.
     void AddPred(SUnit *Y, SUnit *X);
 
-    /// \brief Updates the topological ordering to accommodate an an edge to be
+    /// Updates the topological ordering to accommodate an an edge to be
     /// removed from the specified node \p N from the predecessors of the
     /// current node \p M.
     void RemovePred(SUnit *M, SUnit *N);
diff --git a/linux-x64/clang/include/llvm/CodeGen/ScheduleDAGInstrs.h b/linux-x64/clang/include/llvm/CodeGen/ScheduleDAGInstrs.h
index 1488220..520a238 100644
--- a/linux-x64/clang/include/llvm/CodeGen/ScheduleDAGInstrs.h
+++ b/linux-x64/clang/include/llvm/CodeGen/ScheduleDAGInstrs.h
@@ -190,7 +190,7 @@
     using SUList = std::list<SUnit *>;
 
   protected:
-    /// \brief A map from ValueType to SUList, used during DAG construction, as
+    /// A map from ValueType to SUList, used during DAG construction, as
     /// a means of remembering which SUs depend on which memory locations.
     class Value2SUsMap;
 
@@ -201,7 +201,7 @@
     void reduceHugeMemNodeMaps(Value2SUsMap &stores,
                                Value2SUsMap &loads, unsigned N);
 
-    /// \brief Adds a chain edge between SUa and SUb, but only if both
+    /// Adds a chain edge between SUa and SUb, but only if both
     /// AliasAnalysis and Target fail to deny the dependency.
     void addChainDependency(SUnit *SUa, SUnit *SUb,
                             unsigned Latency = 0);
@@ -286,7 +286,7 @@
     /// Cleans up after scheduling in the given block.
     virtual void finishBlock();
 
-    /// \brief Initialize the DAG and common scheduler state for a new
+    /// Initialize the DAG and common scheduler state for a new
     /// scheduling region. This does not actually create the DAG, only clears
     /// it. The scheduling driver may call BuildSchedGraph multiple times per
     /// scheduling region.
@@ -308,7 +308,7 @@
                          LiveIntervals *LIS = nullptr,
                          bool TrackLaneMasks = false);
 
-    /// \brief Adds dependencies from instructions in the current list of
+    /// Adds dependencies from instructions in the current list of
     /// instructions being scheduled to scheduling barrier. We want to make sure
     /// instructions which define registers that are either used by the
     /// terminator or are live-out are properly scheduled. This is especially
diff --git a/linux-x64/clang/include/llvm/CodeGen/ScheduleDFS.h b/linux-x64/clang/include/llvm/CodeGen/ScheduleDFS.h
index d6a8c79..3ecc033 100644
--- a/linux-x64/clang/include/llvm/CodeGen/ScheduleDFS.h
+++ b/linux-x64/clang/include/llvm/CodeGen/ScheduleDFS.h
@@ -25,7 +25,7 @@
 
 class raw_ostream;
 
-/// \brief Represent the ILP of the subDAG rooted at a DAG node.
+/// Represent the ILP of the subDAG rooted at a DAG node.
 ///
 /// ILPValues summarize the DAG subtree rooted at each node. ILPValues are
 /// valid for all nodes regardless of their subtree membership.
@@ -62,13 +62,13 @@
   void dump() const;
 };
 
-/// \brief Compute the values of each DAG node for various metrics during DFS.
+/// Compute the values of each DAG node for various metrics during DFS.
 class SchedDFSResult {
   friend class SchedDFSImpl;
 
   static const unsigned InvalidSubtreeID = ~0u;
 
-  /// \brief Per-SUnit data computed during DFS for various metrics.
+  /// Per-SUnit data computed during DFS for various metrics.
   ///
   /// A node's SubtreeID is set to itself when it is visited to indicate that it
   /// is the root of a subtree. Later it is set to its parent to indicate an
@@ -81,7 +81,7 @@
     NodeData() = default;
   };
 
-  /// \brief Per-Subtree data computed during DFS.
+  /// Per-Subtree data computed during DFS.
   struct TreeData {
     unsigned ParentTreeID = InvalidSubtreeID;
     unsigned SubInstrCount = 0;
@@ -89,7 +89,7 @@
     TreeData() = default;
   };
 
-  /// \brief Record a connection between subtrees and the connection level.
+  /// Record a connection between subtrees and the connection level.
   struct Connection {
     unsigned TreeID;
     unsigned Level;
@@ -117,15 +117,15 @@
   SchedDFSResult(bool IsBU, unsigned lim)
     : IsBottomUp(IsBU), SubtreeLimit(lim) {}
 
-  /// \brief Get the node cutoff before subtrees are considered significant.
+  /// Get the node cutoff before subtrees are considered significant.
   unsigned getSubtreeLimit() const { return SubtreeLimit; }
 
-  /// \brief Return true if this DFSResult is uninitialized.
+  /// Return true if this DFSResult is uninitialized.
   ///
   /// resize() initializes DFSResult, while compute() populates it.
   bool empty() const { return DFSNodeData.empty(); }
 
-  /// \brief Clear the results.
+  /// Clear the results.
   void clear() {
     DFSNodeData.clear();
     DFSTreeData.clear();
@@ -133,37 +133,37 @@
     SubtreeConnectLevels.clear();
   }
 
-  /// \brief Initialize the result data with the size of the DAG.
+  /// Initialize the result data with the size of the DAG.
   void resize(unsigned NumSUnits) {
     DFSNodeData.resize(NumSUnits);
   }
 
-  /// \brief Compute various metrics for the DAG with given roots.
+  /// Compute various metrics for the DAG with given roots.
   void compute(ArrayRef<SUnit> SUnits);
 
-  /// \brief Get the number of instructions in the given subtree and its
+  /// Get the number of instructions in the given subtree and its
   /// children.
   unsigned getNumInstrs(const SUnit *SU) const {
     return DFSNodeData[SU->NodeNum].InstrCount;
   }
 
-  /// \brief Get the number of instructions in the given subtree not including
+  /// Get the number of instructions in the given subtree not including
   /// children.
   unsigned getNumSubInstrs(unsigned SubtreeID) const {
     return DFSTreeData[SubtreeID].SubInstrCount;
   }
 
-  /// \brief Get the ILP value for a DAG node.
+  /// Get the ILP value for a DAG node.
   ///
   /// A leaf node has an ILP of 1/1.
   ILPValue getILP(const SUnit *SU) const {
     return ILPValue(DFSNodeData[SU->NodeNum].InstrCount, 1 + SU->getDepth());
   }
 
-  /// \brief The number of subtrees detected in this DAG.
+  /// The number of subtrees detected in this DAG.
   unsigned getNumSubtrees() const { return SubtreeConnectLevels.size(); }
 
-  /// \brief Get the ID of the subtree the given DAG node belongs to.
+  /// Get the ID of the subtree the given DAG node belongs to.
   ///
   /// For convenience, if DFSResults have not been computed yet, give everything
   /// tree ID 0.
@@ -174,7 +174,7 @@
     return DFSNodeData[SU->NodeNum].SubtreeID;
   }
 
-  /// \brief Get the connection level of a subtree.
+  /// Get the connection level of a subtree.
   ///
   /// For bottom-up trees, the connection level is the latency depth (in cycles)
   /// of the deepest connection to another subtree.
@@ -182,7 +182,7 @@
     return SubtreeConnectLevels[SubtreeID];
   }
 
-  /// \brief Scheduler callback to update SubtreeConnectLevels when a tree is
+  /// Scheduler callback to update SubtreeConnectLevels when a tree is
   /// initially scheduled.
   void scheduleTree(unsigned SubtreeID);
 };
diff --git a/linux-x64/clang/include/llvm/CodeGen/ScoreboardHazardRecognizer.h b/linux-x64/clang/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
index 466ab53..3f75d10 100644
--- a/linux-x64/clang/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
+++ b/linux-x64/clang/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
@@ -106,7 +106,7 @@
   Scoreboard RequiredScoreboard;
 
 public:
-  ScoreboardHazardRecognizer(const InstrItineraryData *ItinData,
+  ScoreboardHazardRecognizer(const InstrItineraryData *II,
                              const ScheduleDAG *DAG,
                              const char *ParentDebugType = "");
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/SelectionDAG.h b/linux-x64/clang/include/llvm/CodeGen/SelectionDAG.h
index af43c9b..c691d44 100644
--- a/linux-x64/clang/include/llvm/CodeGen/SelectionDAG.h
+++ b/linux-x64/clang/include/llvm/CodeGen/SelectionDAG.h
@@ -73,6 +73,7 @@
 class MCSymbol;
 class OptimizationRemarkEmitter;
 class SDDbgValue;
+class SDDbgLabel;
 class SelectionDAG;
 class SelectionDAGTargetInfo;
 class TargetLibraryInfo;
@@ -148,6 +149,7 @@
   BumpPtrAllocator Alloc;
   SmallVector<SDDbgValue*, 32> DbgValues;
   SmallVector<SDDbgValue*, 32> ByvalParmDbgValues;
+  SmallVector<SDDbgLabel*, 4> DbgLabels;
   using DbgValMapType = DenseMap<const SDNode *, SmallVector<SDDbgValue *, 2>>;
   DbgValMapType DbgValMap;
 
@@ -164,7 +166,11 @@
       DbgValMap[Node].push_back(V);
   }
 
-  /// \brief Invalidate all DbgValues attached to the node and remove
+  void add(SDDbgLabel *L) {
+    DbgLabels.push_back(L);
+  }
+
+  /// Invalidate all DbgValues attached to the node and remove
   /// it from the Node-to-DbgValues map.
   void erase(const SDNode *Node);
 
@@ -172,13 +178,14 @@
     DbgValMap.clear();
     DbgValues.clear();
     ByvalParmDbgValues.clear();
+    DbgLabels.clear();
     Alloc.Reset();
   }
 
   BumpPtrAllocator &getAlloc() { return Alloc; }
 
   bool empty() const {
-    return DbgValues.empty() && ByvalParmDbgValues.empty();
+    return DbgValues.empty() && ByvalParmDbgValues.empty() && DbgLabels.empty();
   }
 
   ArrayRef<SDDbgValue*> getSDDbgValues(const SDNode *Node) {
@@ -189,11 +196,14 @@
   }
 
   using DbgIterator = SmallVectorImpl<SDDbgValue*>::iterator;
+  using DbgLabelIterator = SmallVectorImpl<SDDbgLabel*>::iterator;
 
   DbgIterator DbgBegin() { return DbgValues.begin(); }
   DbgIterator DbgEnd()   { return DbgValues.end(); }
   DbgIterator ByvalParmDbgBegin() { return ByvalParmDbgValues.begin(); }
   DbgIterator ByvalParmDbgEnd()   { return ByvalParmDbgValues.end(); }
+  DbgLabelIterator DbgLabelBegin() { return DbgLabels.begin(); }
+  DbgLabelIterator DbgLabelEnd()   { return DbgLabels.end(); }
 };
 
 void checkForCycles(const SelectionDAG *DAG, bool force = false);
@@ -255,7 +265,7 @@
   /// Pool allocation for misc. objects that are created once per SelectionDAG.
   BumpPtrAllocator Allocator;
 
-  /// Tracks dbg_value information through SDISel.
+  /// Tracks dbg_value and dbg_label information through SDISel.
   SDDbgInfo *DbgInfo;
 
   uint16_t NextPersistentId = 0;
@@ -372,7 +382,7 @@
   /// Prepare this SelectionDAG to process code in the given MachineFunction.
   void init(MachineFunction &NewMF, OptimizationRemarkEmitter &NewORE,
             Pass *PassPtr, const TargetLibraryInfo *LibraryInfo,
-            DivergenceAnalysis * DA);
+            DivergenceAnalysis * Divergence);
 
   void setFunctionLoweringInfo(FunctionLoweringInfo * FuncInfo) {
     FLI = FuncInfo;
@@ -486,7 +496,7 @@
   /// the graph.
   void Legalize();
 
-  /// \brief Transforms a SelectionDAG node and any operands to it into a node
+  /// Transforms a SelectionDAG node and any operands to it into a node
   /// that is compatible with the target instruction selector, as indicated by
   /// the TargetLowering object.
   ///
@@ -537,7 +547,7 @@
   //===--------------------------------------------------------------------===//
   // Node creation methods.
 
-  /// \brief Create a ConstantSDNode wrapping a constant value.
+  /// Create a ConstantSDNode wrapping a constant value.
   /// If VT is a vector type, the constant is splatted into a BUILD_VECTOR.
   ///
   /// If only legal types can be produced, this does the necessary
@@ -571,12 +581,12 @@
     return getConstant(Val, DL, VT, true, isOpaque);
   }
 
-  /// \brief Create a true or false constant of type \p VT using the target's
+  /// Create a true or false constant of type \p VT using the target's
   /// BooleanContent for type \p OpVT.
   SDValue getBoolConstant(bool V, const SDLoc &DL, EVT VT, EVT OpVT);
   /// @}
 
-  /// \brief Create a ConstantFPSDNode wrapping a constant value.
+  /// Create a ConstantFPSDNode wrapping a constant value.
   /// If VT is a vector type, the constant is splatted into a BUILD_VECTOR.
   ///
   /// If only legal types can be produced, this does the necessary
@@ -588,7 +598,7 @@
                         bool isTarget = false);
   SDValue getConstantFP(const APFloat &Val, const SDLoc &DL, EVT VT,
                         bool isTarget = false);
-  SDValue getConstantFP(const ConstantFP &CF, const SDLoc &DL, EVT VT,
+  SDValue getConstantFP(const ConstantFP &V, const SDLoc &DL, EVT VT,
                         bool isTarget = false);
   SDValue getTargetConstantFP(double Val, const SDLoc &DL, EVT VT) {
     return getConstantFP(Val, DL, VT, true);
@@ -748,7 +758,7 @@
     return getNode(ISD::BUILD_VECTOR, DL, VT, Ops);
   }
 
-  /// \brief Returns an ISD::VECTOR_SHUFFLE node semantically equivalent to
+  /// Returns an ISD::VECTOR_SHUFFLE node semantically equivalent to
   /// the shuffle node in input but with swapped operands.
   ///
   /// Example: shuffle A, B, <0,5,2,7> -> shuffle B, A, <4,1,6,3>
@@ -772,7 +782,7 @@
 
   /// Return the expression required to zero extend the Op
   /// value assuming it was the smaller SrcTy value.
-  SDValue getZeroExtendInReg(SDValue Op, const SDLoc &DL, EVT SrcTy);
+  SDValue getZeroExtendInReg(SDValue Op, const SDLoc &DL, EVT VT);
 
   /// Return an operation which will any-extend the low lanes of the operand
   /// into the specified vector type. For example,
@@ -800,10 +810,10 @@
   /// Create a bitwise NOT operation as (XOR Val, -1).
   SDValue getNOT(const SDLoc &DL, SDValue Val, EVT VT);
 
-  /// \brief Create a logical NOT operation as (XOR Val, BooleanOne).
+  /// Create a logical NOT operation as (XOR Val, BooleanOne).
   SDValue getLogicalNOT(const SDLoc &DL, SDValue Val, EVT VT);
 
-  /// \brief Create an add instruction with appropriate flags when used for
+  /// Create an add instruction with appropriate flags when used for
   /// addressing some offset of an object. i.e. if a load is split into multiple
   /// components, create an add nuw from the base pointer to the offset.
   SDValue getObjectPtrOffset(const SDLoc &SL, SDValue Op, int64_t Offset) {
@@ -869,17 +879,18 @@
                   ArrayRef<SDValue> Ops, const SDNodeFlags Flags = SDNodeFlags());
   SDValue getNode(unsigned Opcode, const SDLoc &DL, ArrayRef<EVT> ResultTys,
                   ArrayRef<SDValue> Ops);
-  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTs,
+  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
                   ArrayRef<SDValue> Ops);
 
   // Specialize based on number of operands.
   SDValue getNode(unsigned Opcode, const SDLoc &DL, EVT VT);
-  SDValue getNode(unsigned Opcode, const SDLoc &DL, EVT VT, SDValue N,
+  SDValue getNode(unsigned Opcode, const SDLoc &DL, EVT VT, SDValue Operand,
                   const SDNodeFlags Flags = SDNodeFlags());
   SDValue getNode(unsigned Opcode, const SDLoc &DL, EVT VT, SDValue N1,
                   SDValue N2, const SDNodeFlags Flags = SDNodeFlags());
   SDValue getNode(unsigned Opcode, const SDLoc &DL, EVT VT, SDValue N1,
-                  SDValue N2, SDValue N3);
+                  SDValue N2, SDValue N3,
+                  const SDNodeFlags Flags = SDNodeFlags());
   SDValue getNode(unsigned Opcode, const SDLoc &DL, EVT VT, SDValue N1,
                   SDValue N2, SDValue N3, SDValue N4);
   SDValue getNode(unsigned Opcode, const SDLoc &DL, EVT VT, SDValue N1,
@@ -887,15 +898,15 @@
 
   // Specialize again based on number of operands for nodes with a VTList
   // rather than a single VT.
-  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTs);
-  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTs, SDValue N);
-  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTs, SDValue N1,
+  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList);
+  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList, SDValue N);
+  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList, SDValue N1,
                   SDValue N2);
-  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTs, SDValue N1,
+  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList, SDValue N1,
                   SDValue N2, SDValue N3);
-  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTs, SDValue N1,
+  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList, SDValue N1,
                   SDValue N2, SDValue N3, SDValue N4);
-  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTs, SDValue N1,
+  SDValue getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList, SDValue N1,
                   SDValue N2, SDValue N3, SDValue N4, SDValue N5);
 
   /// Compute a TokenFactor to force all the incoming stack arguments to be
@@ -917,6 +928,23 @@
                     SDValue Size, unsigned Align, bool isVol, bool isTailCall,
                     MachinePointerInfo DstPtrInfo);
 
+  SDValue getAtomicMemcpy(SDValue Chain, const SDLoc &dl, SDValue Dst,
+                          unsigned DstAlign, SDValue Src, unsigned SrcAlign,
+                          SDValue Size, Type *SizeTy, unsigned ElemSz,
+                          bool isTailCall, MachinePointerInfo DstPtrInfo,
+                          MachinePointerInfo SrcPtrInfo);
+
+  SDValue getAtomicMemmove(SDValue Chain, const SDLoc &dl, SDValue Dst,
+                           unsigned DstAlign, SDValue Src, unsigned SrcAlign,
+                           SDValue Size, Type *SizeTy, unsigned ElemSz,
+                           bool isTailCall, MachinePointerInfo DstPtrInfo,
+                           MachinePointerInfo SrcPtrInfo);
+
+  SDValue getAtomicMemset(SDValue Chain, const SDLoc &dl, SDValue Dst,
+                          unsigned DstAlign, SDValue Value, SDValue Size,
+                          Type *SizeTy, unsigned ElemSz, bool isTailCall,
+                          MachinePointerInfo DstPtrInfo);
+
   /// Helper function to make it easier to build SetCC's if you just
   /// have an ISD::CondCode instead of an SDValue.
   ///
@@ -1057,12 +1085,12 @@
                    MachineMemOperand *MMO);
   SDValue
   getTruncStore(SDValue Chain, const SDLoc &dl, SDValue Val, SDValue Ptr,
-                MachinePointerInfo PtrInfo, EVT TVT, unsigned Alignment = 0,
+                MachinePointerInfo PtrInfo, EVT SVT, unsigned Alignment = 0,
                 MachineMemOperand::Flags MMOFlags = MachineMemOperand::MONone,
                 const AAMDNodes &AAInfo = AAMDNodes());
   SDValue getTruncStore(SDValue Chain, const SDLoc &dl, SDValue Val,
-                        SDValue Ptr, EVT TVT, MachineMemOperand *MMO);
-  SDValue getIndexedStore(SDValue OrigStoe, const SDLoc &dl, SDValue Base,
+                        SDValue Ptr, EVT SVT, MachineMemOperand *MMO);
+  SDValue getIndexedStore(SDValue OrigStore, const SDLoc &dl, SDValue Base,
                           SDValue Offset, ISD::MemIndexedMode AM);
 
   /// Returns sum of the base pointer and offset.
@@ -1135,24 +1163,24 @@
   /// specified node to have the specified return type, Target opcode, and
   /// operands.  Note that target opcodes are stored as
   /// ~TargetOpcode in the node opcode field.  The resultant node is returned.
-  SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, EVT VT);
-  SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, EVT VT, SDValue Op1);
-  SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, EVT VT,
+  SDNode *SelectNodeTo(SDNode *N, unsigned MachineOpc, EVT VT);
+  SDNode *SelectNodeTo(SDNode *N, unsigned MachineOpc, EVT VT, SDValue Op1);
+  SDNode *SelectNodeTo(SDNode *N, unsigned MachineOpc, EVT VT,
                        SDValue Op1, SDValue Op2);
-  SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, EVT VT,
+  SDNode *SelectNodeTo(SDNode *N, unsigned MachineOpc, EVT VT,
                        SDValue Op1, SDValue Op2, SDValue Op3);
-  SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, EVT VT,
+  SDNode *SelectNodeTo(SDNode *N, unsigned MachineOpc, EVT VT,
                        ArrayRef<SDValue> Ops);
-  SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, EVT VT1, EVT VT2);
-  SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, EVT VT1,
+  SDNode *SelectNodeTo(SDNode *N, unsigned MachineOpc, EVT VT1, EVT VT2);
+  SDNode *SelectNodeTo(SDNode *N, unsigned MachineOpc, EVT VT1,
                        EVT VT2, ArrayRef<SDValue> Ops);
-  SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, EVT VT1,
+  SDNode *SelectNodeTo(SDNode *N, unsigned MachineOpc, EVT VT1,
                        EVT VT2, EVT VT3, ArrayRef<SDValue> Ops);
   SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, EVT VT1,
                        EVT VT2, SDValue Op1);
-  SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, EVT VT1,
+  SDNode *SelectNodeTo(SDNode *N, unsigned MachineOpc, EVT VT1,
                        EVT VT2, SDValue Op1, SDValue Op2);
-  SDNode *SelectNodeTo(SDNode *N, unsigned TargetOpc, SDVTList VTs,
+  SDNode *SelectNodeTo(SDNode *N, unsigned MachineOpc, SDVTList VTs,
                        ArrayRef<SDValue> Ops);
 
   /// This *mutates* the specified node to have the specified
@@ -1207,7 +1235,7 @@
                                 SDValue Operand, SDValue Subreg);
 
   /// Get the specified node if it's already available, or else return NULL.
-  SDNode *getNodeIfExists(unsigned Opcode, SDVTList VTs, ArrayRef<SDValue> Ops,
+  SDNode *getNodeIfExists(unsigned Opcode, SDVTList VTList, ArrayRef<SDValue> Ops,
                           const SDNodeFlags Flags = SDNodeFlags());
 
   /// Creates a SDDbgValue node.
@@ -1222,8 +1250,16 @@
 
   /// Creates a FrameIndex SDDbgValue node.
   SDDbgValue *getFrameIndexDbgValue(DIVariable *Var, DIExpression *Expr,
-                                    unsigned FI, const DebugLoc &DL,
-                                    unsigned O);
+                                    unsigned FI, bool IsIndirect,
+                                    const DebugLoc &DL, unsigned O);
+
+  /// Creates a VReg SDDbgValue node.
+  SDDbgValue *getVRegDbgValue(DIVariable *Var, DIExpression *Expr,
+                              unsigned VReg, bool IsIndirect,
+                              const DebugLoc &DL, unsigned O);
+
+  /// Creates a SDDbgLabel node.
+  SDDbgLabel *getDbgLabel(DILabel *Label, const DebugLoc &DL, unsigned O);
 
   /// Transfer debug values from one node to another, while optionally
   /// generating fragment expressions for split-up values. If \p InvalidateDbg
@@ -1255,7 +1291,7 @@
   /// to be given new uses. These new uses of From are left in place, and
   /// not automatically transferred to To.
   ///
-  void ReplaceAllUsesWith(SDValue From, SDValue Op);
+  void ReplaceAllUsesWith(SDValue From, SDValue To);
   void ReplaceAllUsesWith(SDNode *From, SDNode *To);
   void ReplaceAllUsesWith(SDNode *From, const SDValue *To);
 
@@ -1306,6 +1342,9 @@
   /// value is produced by SD.
   void AddDbgValue(SDDbgValue *DB, SDNode *SD, bool isParameter);
 
+  /// Add a dbg_label SDNode.
+  void AddDbgLabel(SDDbgLabel *DB);
+
   /// Get the debug values which reference the given SDNode.
   ArrayRef<SDDbgValue*> GetDbgValues(const SDNode* SD) {
     return DbgInfo->getSDDbgValues(SD);
@@ -1327,6 +1366,13 @@
     return DbgInfo->ByvalParmDbgEnd();
   }
 
+  SDDbgInfo::DbgLabelIterator DbgLabelBegin() {
+    return DbgInfo->DbgLabelBegin();
+  }
+  SDDbgInfo::DbgLabelIterator DbgLabelEnd() {
+    return DbgInfo->DbgLabelEnd();
+  }
+
   /// To be invoked on an SDNode that is slated to be erased. This
   /// function mirrors \c llvm::salvageDebugInfo.
   void salvageDebugInfo(SDNode &N);
@@ -1438,11 +1484,21 @@
   ///     X|Cst == X+Cst iff X&Cst = 0.
   bool isBaseWithConstantOffset(SDValue Op) const;
 
-  /// Test whether the given SDValue is known to never be NaN.
-  bool isKnownNeverNaN(SDValue Op) const;
+  /// Test whether the given SDValue is known to never be NaN. If \p SNaN is
+  /// true, returns if \p Op is known to never be a signaling NaN (it may still
+  /// be a qNaN).
+  bool isKnownNeverNaN(SDValue Op, bool SNaN = false, unsigned Depth = 0) const;
 
-  /// Test whether the given SDValue is known to never be positive or negative
-  /// zero.
+  /// \returns true if \p Op is known to never be a signaling NaN.
+  bool isKnownNeverSNaN(SDValue Op, unsigned Depth = 0) const {
+    return isKnownNeverNaN(Op, true, Depth);
+  }
+
+  /// Test whether the given floating point SDValue is known to never be
+  /// positive or negative zero.
+  bool isKnownNeverZeroFloat(SDValue Op) const;
+
+  /// Test whether the given SDValue is known to contain non-zero value(s).
   bool isKnownNeverZero(SDValue Op) const;
 
   /// Test whether two SDValues are known to compare equal. This
@@ -1454,6 +1510,15 @@
   /// allow an 'add' to be transformed into an 'or'.
   bool haveNoCommonBitsSet(SDValue A, SDValue B) const;
 
+  /// Match a binop + shuffle pyramid that represents a horizontal reduction
+  /// over the elements of a vector starting from the EXTRACT_VECTOR_ELT node /p
+  /// Extract. The reduction must use one of the opcodes listed in /p
+  /// CandidateBinOps and on success /p BinOp will contain the matching opcode.
+  /// Returns the vector that is being reduced on, or SDValue() if a reduction
+  /// was not matched.
+  SDValue matchBinOpReduction(SDNode *Extract, ISD::NodeType &BinOp,
+                              ArrayRef<ISD::NodeType> CandidateBinOps);
+
   /// Utility function used by legalize and lowering to
   /// "unroll" a vector operation by splitting out the scalars and operating
   /// on each element individually.  If the ResNE is 0, fully unroll the vector
diff --git a/linux-x64/clang/include/llvm/CodeGen/SelectionDAGISel.h b/linux-x64/clang/include/llvm/CodeGen/SelectionDAGISel.h
index e56eafc..86df0af 100644
--- a/linux-x64/clang/include/llvm/CodeGen/SelectionDAGISel.h
+++ b/linux-x64/clang/include/llvm/CodeGen/SelectionDAGISel.h
@@ -280,7 +280,7 @@
   void SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable,
                         unsigned TableSize);
 
-  /// \brief Return true if complex patterns for this target can mutate the
+  /// Return true if complex patterns for this target can mutate the
   /// DAG.
   virtual bool ComplexPatternFuncMutatesDAG() const {
     return false;
@@ -292,14 +292,14 @@
 
   // Calls to these functions are generated by tblgen.
   void Select_INLINEASM(SDNode *N);
-  void Select_READ_REGISTER(SDNode *N);
-  void Select_WRITE_REGISTER(SDNode *N);
+  void Select_READ_REGISTER(SDNode *Op);
+  void Select_WRITE_REGISTER(SDNode *Op);
   void Select_UNDEF(SDNode *N);
   void CannotYetSelect(SDNode *N);
 
 private:
   void DoInstructionSelection();
-  SDNode *MorphNode(SDNode *Node, unsigned TargetOpc, SDVTList VTs,
+  SDNode *MorphNode(SDNode *Node, unsigned TargetOpc, SDVTList VTList,
                     ArrayRef<SDValue> Ops, unsigned EmitNodeInfo);
 
   SDNode *MutateStrictFPToFP(SDNode *Node, unsigned NewOpc);
@@ -309,10 +309,10 @@
   /// instruction selected, false if no code should be emitted for it.
   bool PrepareEHLandingPad();
 
-  /// \brief Perform instruction selection on all basic blocks in the function.
+  /// Perform instruction selection on all basic blocks in the function.
   void SelectAllBasicBlocks(const Function &Fn);
 
-  /// \brief Perform instruction selection on a single basic block, for
+  /// Perform instruction selection on a single basic block, for
   /// instructions between \p Begin and \p End.  \p HadTailCall will be set
   /// to true if a call in the block was translated as a tail call.
   void SelectBasicBlock(BasicBlock::const_iterator Begin,
@@ -322,7 +322,7 @@
 
   void CodeGenAndEmitDAG();
 
-  /// \brief Generate instructions for lowering the incoming arguments of the
+  /// Generate instructions for lowering the incoming arguments of the
   /// given function.
   void LowerArguments(const Function &F);
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/SelectionDAGNodes.h b/linux-x64/clang/include/llvm/CodeGen/SelectionDAGNodes.h
index ffb5c00..a6d7e76 100644
--- a/linux-x64/clang/include/llvm/CodeGen/SelectionDAGNodes.h
+++ b/linux-x64/clang/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -37,6 +37,7 @@
 #include "llvm/IR/Instruction.h"
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/Metadata.h"
+#include "llvm/IR/Operator.h"
 #include "llvm/Support/AlignOf.h"
 #include "llvm/Support/AtomicOrdering.h"
 #include "llvm/Support/Casting.h"
@@ -359,21 +360,34 @@
   bool NoUnsignedWrap : 1;
   bool NoSignedWrap : 1;
   bool Exact : 1;
-  bool UnsafeAlgebra : 1;
   bool NoNaNs : 1;
   bool NoInfs : 1;
   bool NoSignedZeros : 1;
   bool AllowReciprocal : 1;
   bool VectorReduction : 1;
   bool AllowContract : 1;
+  bool ApproximateFuncs : 1;
+  bool AllowReassociation : 1;
 
 public:
   /// Default constructor turns off all optimization flags.
   SDNodeFlags()
       : AnyDefined(false), NoUnsignedWrap(false), NoSignedWrap(false),
-        Exact(false), UnsafeAlgebra(false), NoNaNs(false), NoInfs(false),
+        Exact(false), NoNaNs(false), NoInfs(false),
         NoSignedZeros(false), AllowReciprocal(false), VectorReduction(false),
-        AllowContract(false) {}
+        AllowContract(false), ApproximateFuncs(false),
+        AllowReassociation(false) {}
+
+  /// Propagate the fast-math-flags from an IR FPMathOperator.
+  void copyFMF(const FPMathOperator &FPMO) {
+    setNoNaNs(FPMO.hasNoNaNs());
+    setNoInfs(FPMO.hasNoInfs());
+    setNoSignedZeros(FPMO.hasNoSignedZeros());
+    setAllowReciprocal(FPMO.hasAllowReciprocal());
+    setAllowContract(FPMO.hasAllowContract());
+    setApproximateFuncs(FPMO.hasApproxFunc());
+    setAllowReassociation(FPMO.hasAllowReassoc());
+  }
 
   /// Sets the state of the flags to the defined state.
   void setDefined() { AnyDefined = true; }
@@ -393,10 +407,6 @@
     setDefined();
     Exact = b;
   }
-  void setUnsafeAlgebra(bool b) {
-    setDefined();
-    UnsafeAlgebra = b;
-  }
   void setNoNaNs(bool b) {
     setDefined();
     NoNaNs = b;
@@ -421,18 +431,32 @@
     setDefined();
     AllowContract = b;
   }
+  void setApproximateFuncs(bool b) {
+    setDefined();
+    ApproximateFuncs = b;
+  }
+  void setAllowReassociation(bool b) {
+    setDefined();
+    AllowReassociation = b;
+  }
 
   // These are accessors for each flag.
   bool hasNoUnsignedWrap() const { return NoUnsignedWrap; }
   bool hasNoSignedWrap() const { return NoSignedWrap; }
   bool hasExact() const { return Exact; }
-  bool hasUnsafeAlgebra() const { return UnsafeAlgebra; }
   bool hasNoNaNs() const { return NoNaNs; }
   bool hasNoInfs() const { return NoInfs; }
   bool hasNoSignedZeros() const { return NoSignedZeros; }
   bool hasAllowReciprocal() const { return AllowReciprocal; }
   bool hasVectorReduction() const { return VectorReduction; }
   bool hasAllowContract() const { return AllowContract; }
+  bool hasApproximateFuncs() const { return ApproximateFuncs; }
+  bool hasAllowReassociation() const { return AllowReassociation; }
+
+  bool isFast() const {
+    return NoSignedZeros && AllowReciprocal && NoNaNs && NoInfs &&
+           AllowContract && ApproximateFuncs && AllowReassociation;
+  }
 
   /// Clear any flags in this flag set that aren't also set in Flags.
   /// If the given Flags are undefined then don't do anything.
@@ -442,13 +466,14 @@
     NoUnsignedWrap &= Flags.NoUnsignedWrap;
     NoSignedWrap &= Flags.NoSignedWrap;
     Exact &= Flags.Exact;
-    UnsafeAlgebra &= Flags.UnsafeAlgebra;
     NoNaNs &= Flags.NoNaNs;
     NoInfs &= Flags.NoInfs;
     NoSignedZeros &= Flags.NoSignedZeros;
     AllowReciprocal &= Flags.AllowReciprocal;
     VectorReduction &= Flags.VectorReduction;
     AllowContract &= Flags.AllowContract;
+    ApproximateFuncs &= Flags.ApproximateFuncs;
+    AllowReassociation &= Flags.AllowReassociation;
   }
 };
 
@@ -544,7 +569,7 @@
   static_assert(sizeof(ConstantSDNodeBitfields) <= 2, "field too wide");
   static_assert(sizeof(MemSDNodeBitfields) <= 2, "field too wide");
   static_assert(sizeof(LSBaseSDNodeBitfields) <= 2, "field too wide");
-  static_assert(sizeof(LoadSDNodeBitfields) <= 4, "field too wide");
+  static_assert(sizeof(LoadSDNodeBitfields) <= 2, "field too wide");
   static_assert(sizeof(StoreSDNodeBitfields) <= 2, "field too wide");
 
 private:
@@ -923,6 +948,7 @@
 
   const SDNodeFlags getFlags() const { return Flags; }
   void setFlags(SDNodeFlags NewFlags) { Flags = NewFlags; }
+  bool isFast() { return Flags.isFast(); }
 
   /// Clear any flags in this node that aren't also set in Flags.
   /// If Flags is not in a defined state then this has no effect.
@@ -1220,7 +1246,7 @@
 
 public:
   MemSDNode(unsigned Opc, unsigned Order, const DebugLoc &dl, SDVTList VTs,
-            EVT MemoryVT, MachineMemOperand *MMO);
+            EVT memvt, MachineMemOperand *MMO);
 
   bool readMem() const { return MMO->isLoad(); }
   bool writeMem() const { return MMO->isStore(); }
@@ -1472,9 +1498,8 @@
 
   const ConstantInt *Value;
 
-  ConstantSDNode(bool isTarget, bool isOpaque, const ConstantInt *val,
-                 const DebugLoc &DL, EVT VT)
-      : SDNode(isTarget ? ISD::TargetConstant : ISD::Constant, 0, DL,
+  ConstantSDNode(bool isTarget, bool isOpaque, const ConstantInt *val, EVT VT)
+      : SDNode(isTarget ? ISD::TargetConstant : ISD::Constant, 0, DebugLoc(),
                getSDVTList(VT)),
         Value(val) {
     ConstantSDNodeBits.IsOpaque = isOpaque;
@@ -1510,10 +1535,9 @@
 
   const ConstantFP *Value;
 
-  ConstantFPSDNode(bool isTarget, const ConstantFP *val, const DebugLoc &DL,
-                   EVT VT)
-      : SDNode(isTarget ? ISD::TargetConstantFP : ISD::ConstantFP, 0, DL,
-               getSDVTList(VT)),
+  ConstantFPSDNode(bool isTarget, const ConstantFP *val, EVT VT)
+      : SDNode(isTarget ? ISD::TargetConstantFP : ISD::ConstantFP, 0,
+               DebugLoc(), getSDVTList(VT)),
         Value(val) {}
 
 public:
@@ -1570,10 +1594,10 @@
 bool isBitwiseNot(SDValue V);
 
 /// Returns the SDNode if it is a constant splat BuildVector or constant int.
-ConstantSDNode *isConstOrConstSplat(SDValue V);
+ConstantSDNode *isConstOrConstSplat(SDValue N);
 
 /// Returns the SDNode if it is a constant splat BuildVector or constant float.
-ConstantFPSDNode *isConstOrConstSplatFP(SDValue V);
+ConstantFPSDNode *isConstOrConstSplatFP(SDValue N);
 
 class GlobalAddressSDNode : public SDNode {
   friend class SelectionDAG;
@@ -1584,7 +1608,7 @@
 
   GlobalAddressSDNode(unsigned Opc, unsigned Order, const DebugLoc &DL,
                       const GlobalValue *GA, EVT VT, int64_t o,
-                      unsigned char TargetFlags);
+                      unsigned char TF);
 
 public:
   const GlobalValue *getGlobal() const { return TheGlobal; }
@@ -1765,13 +1789,13 @@
                        unsigned MinSplatBits = 0,
                        bool isBigEndian = false) const;
 
-  /// \brief Returns the splatted value or a null value if this is not a splat.
+  /// Returns the splatted value or a null value if this is not a splat.
   ///
   /// If passed a non-null UndefElements bitvector, it will resize it to match
   /// the vector width and set the bits where elements are undef.
   SDValue getSplatValue(BitVector *UndefElements = nullptr) const;
 
-  /// \brief Returns the splatted constant or null if this is not a constant
+  /// Returns the splatted constant or null if this is not a constant
   /// splat.
   ///
   /// If passed a non-null UndefElements bitvector, it will resize it to match
@@ -1779,7 +1803,7 @@
   ConstantSDNode *
   getConstantSplatNode(BitVector *UndefElements = nullptr) const;
 
-  /// \brief Returns the splatted constant FP or null if this is not a constant
+  /// Returns the splatted constant FP or null if this is not a constant
   /// FP splat.
   ///
   /// If passed a non-null UndefElements bitvector, it will resize it to match
@@ -1787,7 +1811,7 @@
   ConstantFPSDNode *
   getConstantFPSplatNode(BitVector *UndefElements = nullptr) const;
 
-  /// \brief If this is a constant FP splat and the splatted constant FP is an
+  /// If this is a constant FP splat and the splatted constant FP is an
   /// exact power or 2, return the log base 2 integer value.  Otherwise,
   /// return -1.
   ///
@@ -2119,7 +2143,7 @@
     return static_cast<ISD::LoadExtType>(LoadSDNodeBits.ExtTy);
   }
 
-  const SDValue &getSrc0() const { return getOperand(3); }
+  const SDValue &getPassThru() const { return getOperand(3); }
   static bool classof(const SDNode *N) {
     return N->getOpcode() == ISD::MLOAD;
   }
@@ -2177,7 +2201,6 @@
   const SDValue &getBasePtr() const { return getOperand(3); }
   const SDValue &getIndex()   const { return getOperand(4); }
   const SDValue &getMask()    const { return getOperand(2); }
-  const SDValue &getValue()   const { return getOperand(1); }
   const SDValue &getScale()   const { return getOperand(5); }
 
   static bool classof(const SDNode *N) {
@@ -2196,6 +2219,8 @@
                      EVT MemVT, MachineMemOperand *MMO)
       : MaskedGatherScatterSDNode(ISD::MGATHER, Order, dl, VTs, MemVT, MMO) {}
 
+  const SDValue &getPassThru() const { return getOperand(1); }
+
   static bool classof(const SDNode *N) {
     return N->getOpcode() == ISD::MGATHER;
   }
@@ -2211,6 +2236,8 @@
                       EVT MemVT, MachineMemOperand *MMO)
       : MaskedGatherScatterSDNode(ISD::MSCATTER, Order, dl, VTs, MemVT, MMO) {}
 
+  const SDValue &getValue() const { return getOperand(1); }
+
   static bool classof(const SDNode *N) {
     return N->getOpcode() == ISD::MSCATTER;
   }
diff --git a/linux-x64/clang/include/llvm/CodeGen/SlotIndexes.h b/linux-x64/clang/include/llvm/CodeGen/SlotIndexes.h
index 3a91e36..334267d 100644
--- a/linux-x64/clang/include/llvm/CodeGen/SlotIndexes.h
+++ b/linux-x64/clang/include/llvm/CodeGen/SlotIndexes.h
@@ -578,9 +578,9 @@
       assert(!MI.isInsideBundle() &&
              "Instructions inside bundles should use bundle start's slot.");
       assert(mi2iMap.find(&MI) == mi2iMap.end() && "Instr already indexed.");
-      // Numbering DBG_VALUE instructions could cause code generation to be
+      // Numbering debug instructions could cause code generation to be
       // affected by debug information.
-      assert(!MI.isDebugValue() && "Cannot number DBG_VALUE instructions.");
+      assert(!MI.isDebugInstr() && "Cannot number debug instructions.");
 
       assert(MI.getParent() != nullptr && "Instr must be added to function.");
 
@@ -674,10 +674,10 @@
       idx2MBBMap.push_back(IdxMBBPair(startIdx, mbb));
 
       renumberIndexes(newItr);
-      std::sort(idx2MBBMap.begin(), idx2MBBMap.end(), Idx2MBBCompare());
+      llvm::sort(idx2MBBMap.begin(), idx2MBBMap.end(), Idx2MBBCompare());
     }
 
-    /// \brief Free the resources that were required to maintain a SlotIndex.
+    /// Free the resources that were required to maintain a SlotIndex.
     ///
     /// Once an index is no longer needed (for instance because the instruction
     /// at that index has been moved), the resources required to maintain the
diff --git a/linux-x64/clang/include/llvm/CodeGen/StackMaps.h b/linux-x64/clang/include/llvm/CodeGen/StackMaps.h
index 4407114..e584a41 100644
--- a/linux-x64/clang/include/llvm/CodeGen/StackMaps.h
+++ b/linux-x64/clang/include/llvm/CodeGen/StackMaps.h
@@ -29,7 +29,7 @@
 class raw_ostream;
 class TargetRegisterInfo;
 
-/// \brief MI-level stackmap operands.
+/// MI-level stackmap operands.
 ///
 /// MI stackmap operations take the form:
 /// <id>, <numBytes>, live args...
@@ -60,7 +60,7 @@
   }
 };
 
-/// \brief MI-level patchpoint operands.
+/// MI-level patchpoint operands.
 ///
 /// MI patchpoint operations take the form:
 /// [<def>], <id>, <numBytes>, <target>, <numArgs>, <cc>, ...
@@ -137,7 +137,7 @@
     return getVarIdx();
   }
 
-  /// \brief Get the next scratch register operand index.
+  /// Get the next scratch register operand index.
   unsigned getNextScratchIdx(unsigned StartIdx = 0) const;
 };
 
@@ -156,7 +156,7 @@
   // TODO:: we should change the STATEPOINT representation so that CC and
   // Flags should be part of meta operands, with args and deopt operands, and
   // gc operands all prefixed by their length and a type code. This would be
-  // much more consistent. 
+  // much more consistent.
 public:
   // These values are aboolute offsets into the operands of the statepoint
   // instruction.
@@ -236,15 +236,15 @@
     FnInfos.clear();
   }
 
-  /// \brief Generate a stackmap record for a stackmap instruction.
+  /// Generate a stackmap record for a stackmap instruction.
   ///
   /// MI must be a raw STACKMAP, not a PATCHPOINT.
   void recordStackMap(const MachineInstr &MI);
 
-  /// \brief Generate a stackmap record for a patchpoint instruction.
+  /// Generate a stackmap record for a patchpoint instruction.
   void recordPatchPoint(const MachineInstr &MI);
 
-  /// \brief Generate a stackmap record for a statepoint instruction.
+  /// Generate a stackmap record for a statepoint instruction.
   void recordStatepoint(const MachineInstr &MI);
 
   /// If there is any stack map data, create a stack map section and serialize
@@ -293,11 +293,11 @@
                MachineInstr::const_mop_iterator MOE, LocationVec &Locs,
                LiveOutVec &LiveOuts) const;
 
-  /// \brief Create a live-out register record for the given register @p Reg.
+  /// Create a live-out register record for the given register @p Reg.
   LiveOutReg createLiveOutReg(unsigned Reg,
                               const TargetRegisterInfo *TRI) const;
 
-  /// \brief Parse the register live-out mask and return a vector of live-out
+  /// Parse the register live-out mask and return a vector of live-out
   /// registers that need to be recorded in the stackmap.
   LiveOutVec parseRegisterLiveOutMask(const uint32_t *Mask) const;
 
@@ -311,16 +311,16 @@
                            MachineInstr::const_mop_iterator MOE,
                            bool recordResult = false);
 
-  /// \brief Emit the stackmap header.
+  /// Emit the stackmap header.
   void emitStackmapHeader(MCStreamer &OS);
 
-  /// \brief Emit the function frame record for each function.
+  /// Emit the function frame record for each function.
   void emitFunctionFrameRecords(MCStreamer &OS);
 
-  /// \brief Emit the constant pool.
+  /// Emit the constant pool.
   void emitConstantPoolEntries(MCStreamer &OS);
 
-  /// \brief Emit the callsite info for each stackmap/patchpoint intrinsic call.
+  /// Emit the callsite info for each stackmap/patchpoint intrinsic call.
   void emitCallsiteEntries(MCStreamer &OS);
 
   void print(raw_ostream &OS);
diff --git a/linux-x64/clang/include/llvm/CodeGen/StackProtector.h b/linux-x64/clang/include/llvm/CodeGen/StackProtector.h
index 72de212..a506ac6 100644
--- a/linux-x64/clang/include/llvm/CodeGen/StackProtector.h
+++ b/linux-x64/clang/include/llvm/CodeGen/StackProtector.h
@@ -19,6 +19,7 @@
 
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/Triple.h"
+#include "llvm/CodeGen/MachineFrameInfo.h"
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/ValueMap.h"
 #include "llvm/Pass.h"
@@ -35,24 +36,11 @@
 class Type;
 
 class StackProtector : public FunctionPass {
-public:
-  /// SSPLayoutKind.  Stack Smashing Protection (SSP) rules require that
-  /// vulnerable stack allocations are located close the stack protector.
-  enum SSPLayoutKind {
-    SSPLK_None,       ///< Did not trigger a stack protector.  No effect on data
-                      ///< layout.
-    SSPLK_LargeArray, ///< Array or nested array >= SSP-buffer-size.  Closest
-                      ///< to the stack protector.
-    SSPLK_SmallArray, ///< Array or nested array < SSP-buffer-size. 2nd closest
-                      ///< to the stack protector.
-    SSPLK_AddrOf      ///< The address of this allocation is exposed and
-                      ///< triggered protection.  3rd closest to the protector.
-  };
-
-  /// A mapping of AllocaInsts to their required SSP layout.
-  using SSPLayoutMap = ValueMap<const AllocaInst *, SSPLayoutKind>;
-
 private:
+  /// A mapping of AllocaInsts to their required SSP layout.
+  using SSPLayoutMap = DenseMap<const AllocaInst *,
+                                MachineFrameInfo::SSPLayoutKind>;
+
   const TargetMachine *TM = nullptr;
 
   /// TLI - Keep a pointer of a TargetLowering to consult for determining
@@ -70,7 +58,7 @@
   /// AllocaInst triggers a stack protector.
   SSPLayoutMap Layout;
 
-  /// \brief The minimum size of buffers that will receive stack smashing
+  /// The minimum size of buffers that will receive stack smashing
   /// protection when -fstack-protection is used.
   unsigned SSPBufferSize = 0;
 
@@ -107,7 +95,7 @@
   bool ContainsProtectableArray(Type *Ty, bool &IsLarge, bool Strong = false,
                                 bool InStruct = false) const;
 
-  /// \brief Check whether a stack allocation has its address taken.
+  /// Check whether a stack allocation has its address taken.
   bool HasAddressTaken(const Instruction *AI);
 
   /// RequiresStackProtector - Check whether or not this function needs a
@@ -123,14 +111,12 @@
 
   void getAnalysisUsage(AnalysisUsage &AU) const override;
 
-  SSPLayoutKind getSSPLayout(const AllocaInst *AI) const;
-
   // Return true if StackProtector is supposed to be handled by SelectionDAG.
   bool shouldEmitSDCheck(const BasicBlock &BB) const;
 
-  void adjustForColoring(const AllocaInst *From, const AllocaInst *To);
-
   bool runOnFunction(Function &Fn) override;
+
+  void copyToMachineFrameInfo(MachineFrameInfo &MFI) const;
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/CodeGen/TargetFrameLowering.h b/linux-x64/clang/include/llvm/CodeGen/TargetFrameLowering.h
index 61f1cf0..f8effee 100644
--- a/linux-x64/clang/include/llvm/CodeGen/TargetFrameLowering.h
+++ b/linux-x64/clang/include/llvm/CodeGen/TargetFrameLowering.h
@@ -158,6 +158,10 @@
     return false;
   }
 
+  /// Returns true if the target can safely skip saving callee-saved registers
+  /// for noreturn nounwind functions.
+  virtual bool enableCalleeSaveSkip(const MachineFunction &MF) const;
+
   /// emitProlog/emitEpilog - These methods insert prolog and epilog code into
   /// the function.
   virtual void emitPrologue(MachineFunction &MF,
@@ -341,6 +345,14 @@
           return false;
     return true;
   }
+
+  /// Return initial CFA offset value i.e. the one valid at the beginning of the
+  /// function (before any stack operations).
+  virtual int getInitialCFAOffset(const MachineFunction &MF) const;
+
+  /// Return initial CFA register value i.e. the one valid at the beginning of
+  /// the function (before any stack operations).
+  virtual unsigned getInitialCFARegister(const MachineFunction &MF) const;
 };
 
 } // End llvm namespace
diff --git a/linux-x64/clang/include/llvm/CodeGen/TargetInstrInfo.h b/linux-x64/clang/include/llvm/CodeGen/TargetInstrInfo.h
index 5c2a530..b5bc561 100644
--- a/linux-x64/clang/include/llvm/CodeGen/TargetInstrInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/TargetInstrInfo.h
@@ -18,12 +18,14 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/ADT/None.h"
+#include "llvm/CodeGen/LiveRegUnits.h"
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/CodeGen/MachineCombinerPattern.h"
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/CodeGen/MachineLoopInfo.h"
 #include "llvm/CodeGen/MachineOperand.h"
+#include "llvm/CodeGen/MachineOutliner.h"
 #include "llvm/CodeGen/PseudoSourceValue.h"
 #include "llvm/MC/MCInstrInfo.h"
 #include "llvm/Support/BranchProbability.h"
@@ -79,7 +81,7 @@
 
   /// Given a machine instruction descriptor, returns the register
   /// class constraint for OpNum, or NULL.
-  const TargetRegisterClass *getRegClass(const MCInstrDesc &TID, unsigned OpNum,
+  const TargetRegisterClass *getRegClass(const MCInstrDesc &MCID, unsigned OpNum,
                                          const TargetRegisterInfo *TRI,
                                          const MachineFunction &MF) const;
 
@@ -225,6 +227,17 @@
     return 0;
   }
 
+  /// Optional extension of isLoadFromStackSlot that returns the number of
+  /// bytes loaded from the stack. This must be implemented if a backend
+  /// supports partial stack slot spills/loads to further disambiguate
+  /// what the load does.
+  virtual unsigned isLoadFromStackSlot(const MachineInstr &MI,
+                                       int &FrameIndex,
+                                       unsigned &MemBytes) const {
+    MemBytes = 0;
+    return isLoadFromStackSlot(MI, FrameIndex);
+  }
+
   /// Check for post-frame ptr elimination stack locations as well.
   /// This uses a heuristic so it isn't reliable for correctness.
   virtual unsigned isLoadFromStackSlotPostFE(const MachineInstr &MI,
@@ -252,6 +265,17 @@
     return 0;
   }
 
+  /// Optional extension of isStoreToStackSlot that returns the number of
+  /// bytes stored to the stack. This must be implemented if a backend
+  /// supports partial stack slot spills/loads to further disambiguate
+  /// what the store does.
+  virtual unsigned isStoreToStackSlot(const MachineInstr &MI,
+                                      int &FrameIndex,
+                                      unsigned &MemBytes) const {
+    MemBytes = 0;
+    return isStoreToStackSlot(MI, FrameIndex);
+  }
+
   /// Check for post-frame ptr elimination stack locations as well.
   /// This uses a heuristic, so it isn't reliable for correctness.
   virtual unsigned isStoreToStackSlotPostFE(const MachineInstr &MI,
@@ -325,7 +349,7 @@
                              unsigned SubIdx, const MachineInstr &Orig,
                              const TargetRegisterInfo &TRI) const;
 
-  /// \brief Clones instruction or the whole instruction bundle \p Orig and
+  /// Clones instruction or the whole instruction bundle \p Orig and
   /// insert into \p MBB before \p InsertBefore. The target may update operands
   /// that are required to be unique.
   ///
@@ -822,6 +846,15 @@
     llvm_unreachable("Target didn't implement TargetInstrInfo::copyPhysReg!");
   }
 
+  /// If the specific machine instruction is a instruction that moves/copies
+  /// value from one register to another register return true along with
+  /// @Source machine operand and @Destination machine operand.
+  virtual bool isCopyInstr(const MachineInstr &MI,
+                           const MachineOperand *&SourceOpNum,
+                           const MachineOperand *&Destination) const {
+    return false;
+  }
+
   /// Store the specified register of the given register class to the specified
   /// stack frame index. The store instruction is to be added to the given
   /// machine basic block before the specified machine instruction. If isKill
@@ -876,7 +909,7 @@
   /// The new instruction is inserted before MI, and the client is responsible
   /// for removing the old instruction.
   MachineInstr *foldMemoryOperand(MachineInstr &MI, ArrayRef<unsigned> Ops,
-                                  int FrameIndex,
+                                  int FI,
                                   LiveIntervals *LIS = nullptr) const;
 
   /// Same as the previous version except it allows folding of any load and
@@ -928,13 +961,13 @@
   /// \param InsInstrs - Vector of new instructions that implement P
   /// \param DelInstrs - Old instructions, including Root, that could be
   /// replaced by InsInstr
-  /// \param InstrIdxForVirtReg - map of virtual register to instruction in
+  /// \param InstIdxForVirtReg - map of virtual register to instruction in
   /// InsInstr that defines it
   virtual void genAlternativeCodeSequence(
       MachineInstr &Root, MachineCombinerPattern Pattern,
       SmallVectorImpl<MachineInstr *> &InsInstrs,
       SmallVectorImpl<MachineInstr *> &DelInstrs,
-      DenseMap<unsigned, unsigned> &InstrIdxForVirtReg) const;
+      DenseMap<unsigned, unsigned> &InstIdxForVirtReg) const;
 
   /// Attempt to reassociate \P Root and \P Prev according to \P Pattern to
   /// reduce critical path length.
@@ -957,11 +990,6 @@
   /// even if it has glue.
   virtual bool canCopyGluedNodeDuringSchedule(SDNode *N) const { return false; }
 
-  /// Remember what registers the specified instruction uses and modifies.
-  virtual void trackRegDefsUses(const MachineInstr &MI, BitVector &ModifiedRegs,
-                                BitVector &UsedRegs,
-                                const TargetRegisterInfo *TRI) const;
-
 protected:
   /// Target-dependent implementation for foldMemoryOperand.
   /// Target-independent code in foldMemoryOperand will
@@ -988,7 +1016,7 @@
     return nullptr;
   }
 
-  /// \brief Target-dependent implementation of getRegSequenceInputs.
+  /// Target-dependent implementation of getRegSequenceInputs.
   ///
   /// \returns true if it is possible to build the equivalent
   /// REG_SEQUENCE inputs with the pair \p MI, \p DefIdx. False otherwise.
@@ -1002,7 +1030,7 @@
     return false;
   }
 
-  /// \brief Target-dependent implementation of getExtractSubregInputs.
+  /// Target-dependent implementation of getExtractSubregInputs.
   ///
   /// \returns true if it is possible to build the equivalent
   /// EXTRACT_SUBREG inputs with the pair \p MI, \p DefIdx. False otherwise.
@@ -1016,7 +1044,7 @@
     return false;
   }
 
-  /// \brief Target-dependent implementation of getInsertSubregInputs.
+  /// Target-dependent implementation of getInsertSubregInputs.
   ///
   /// \returns true if it is possible to build the equivalent
   /// INSERT_SUBREG inputs with the pair \p MI, \p DefIdx. False otherwise.
@@ -1438,7 +1466,7 @@
     return 0;
   }
 
-  /// \brief Return the minimum clearance before an instruction that reads an
+  /// Return the minimum clearance before an instruction that reads an
   /// unused register.
   ///
   /// For example, AVX instructions may copy part of a register operand into
@@ -1505,7 +1533,7 @@
     return false;
   }
 
-  /// \brief Return the value to use for the MachineCSE's LookAheadLimit,
+  /// Return the value to use for the MachineCSE's LookAheadLimit,
   /// which is a heuristic used for CSE'ing phys reg defs.
   virtual unsigned getMachineCSELookAheadLimit() const {
     // The default lookahead is small to prevent unprofitable quadratic
@@ -1574,71 +1602,32 @@
     return false;
   }
 
-  /// \brief Describes the number of instructions that it will take to call and
-  /// construct a frame for a given outlining candidate.
-  struct MachineOutlinerInfo {
-    /// Number of instructions to call an outlined function for this candidate.
-    unsigned CallOverhead;
-
-    /// \brief Number of instructions to construct an outlined function frame
-    /// for this candidate.
-    unsigned FrameOverhead;
-
-    /// \brief Represents the specific instructions that must be emitted to
-    /// construct a call to this candidate.
-    unsigned CallConstructionID;
-
-    /// \brief Represents the specific instructions that must be emitted to
-    /// construct a frame for this candidate's outlined function.
-    unsigned FrameConstructionID;
-
-    MachineOutlinerInfo() {}
-    MachineOutlinerInfo(unsigned CallOverhead, unsigned FrameOverhead,
-                        unsigned CallConstructionID,
-                        unsigned FrameConstructionID)
-        : CallOverhead(CallOverhead), FrameOverhead(FrameOverhead),
-          CallConstructionID(CallConstructionID),
-          FrameConstructionID(FrameConstructionID) {}
-  };
-
-  /// \brief Returns a \p MachineOutlinerInfo struct containing target-specific
+  /// Returns a \p outliner::OutlinedFunction struct containing target-specific
   /// information for a set of outlining candidates.
-  virtual MachineOutlinerInfo getOutlininingCandidateInfo(
-      std::vector<
-          std::pair<MachineBasicBlock::iterator, MachineBasicBlock::iterator>>
-          &RepeatedSequenceLocs) const {
+  virtual outliner::OutlinedFunction getOutliningCandidateInfo(
+      std::vector<outliner::Candidate> &RepeatedSequenceLocs) const {
     llvm_unreachable(
-        "Target didn't implement TargetInstrInfo::getOutliningOverhead!");
+        "Target didn't implement TargetInstrInfo::getOutliningCandidateInfo!");
   }
 
-  /// Represents how an instruction should be mapped by the outliner.
-  /// \p Legal instructions are those which are safe to outline.
-  /// \p Illegal instructions are those which cannot be outlined.
-  /// \p Invisible instructions are instructions which can be outlined, but
-  /// shouldn't actually impact the outlining result.
-  enum MachineOutlinerInstrType { Legal, Illegal, Invisible };
-
   /// Returns how or if \p MI should be outlined.
-  virtual MachineOutlinerInstrType
+  virtual outliner::InstrType
   getOutliningType(MachineBasicBlock::iterator &MIT, unsigned Flags) const {
     llvm_unreachable(
         "Target didn't implement TargetInstrInfo::getOutliningType!");
   }
 
-  /// \brief Returns target-defined flags defining properties of the MBB for
+  /// Returns target-defined flags defining properties of the MBB for
   /// the outliner.
   virtual unsigned getMachineOutlinerMBBFlags(MachineBasicBlock &MBB) const {
     return 0x0;
   }
 
-  /// Insert a custom epilogue for outlined functions.
-  /// This may be empty, in which case no epilogue or return statement will be
-  /// emitted.
-  virtual void insertOutlinerEpilogue(MachineBasicBlock &MBB,
-                                      MachineFunction &MF,
-                                      const MachineOutlinerInfo &MInfo) const {
+  /// Insert a custom frame for outlined functions.
+  virtual void buildOutlinedFrame(MachineBasicBlock &MBB, MachineFunction &MF,
+                                  const outliner::OutlinedFunction &OF) const {
     llvm_unreachable(
-        "Target didn't implement TargetInstrInfo::insertOutlinerEpilogue!");
+        "Target didn't implement TargetInstrInfo::buildOutlinedFrame!");
   }
 
   /// Insert a call to an outlined function into the program.
@@ -1647,20 +1636,11 @@
   virtual MachineBasicBlock::iterator
   insertOutlinedCall(Module &M, MachineBasicBlock &MBB,
                      MachineBasicBlock::iterator &It, MachineFunction &MF,
-                     const MachineOutlinerInfo &MInfo) const {
+                     const outliner::Candidate &C) const {
     llvm_unreachable(
         "Target didn't implement TargetInstrInfo::insertOutlinedCall!");
   }
 
-  /// Insert a custom prologue for outlined functions.
-  /// This may be empty, in which case no prologue will be emitted.
-  virtual void insertOutlinerPrologue(MachineBasicBlock &MBB,
-                                      MachineFunction &MF,
-                                      const MachineOutlinerInfo &MInfo) const {
-    llvm_unreachable(
-        "Target didn't implement TargetInstrInfo::insertOutlinerPrologue!");
-  }
-
   /// Return true if the function can safely be outlined from.
   /// A function \p MF is considered safe for outlining if an outlined function
   /// produced from instructions in F will produce a program which produces the
@@ -1671,13 +1651,18 @@
                      "TargetInstrInfo::isFunctionSafeToOutlineFrom!");
   }
 
+  /// Return true if the function should be outlined from by default.
+  virtual bool shouldOutlineFromFunctionByDefault(MachineFunction &MF) const {
+    return false;
+  }
+
 private:
   unsigned CallFrameSetupOpcode, CallFrameDestroyOpcode;
   unsigned CatchRetOpcode;
   unsigned ReturnOpcode;
 };
 
-/// \brief Provide DenseMapInfo for TargetInstrInfo::RegSubRegPair.
+/// Provide DenseMapInfo for TargetInstrInfo::RegSubRegPair.
 template <> struct DenseMapInfo<TargetInstrInfo::RegSubRegPair> {
   using RegInfo = DenseMapInfo<unsigned>;
 
@@ -1691,7 +1676,7 @@
                                           RegInfo::getTombstoneKey());
   }
 
-  /// \brief Reuse getHashValue implementation from
+  /// Reuse getHashValue implementation from
   /// std::pair<unsigned, unsigned>.
   static unsigned getHashValue(const TargetInstrInfo::RegSubRegPair &Val) {
     std::pair<unsigned, unsigned> PairVal = std::make_pair(Val.Reg, Val.SubReg);
diff --git a/linux-x64/clang/include/llvm/CodeGen/TargetLowering.h b/linux-x64/clang/include/llvm/CodeGen/TargetLowering.h
index 483223a..dce4168 100644
--- a/linux-x64/clang/include/llvm/CodeGen/TargetLowering.h
+++ b/linux-x64/clang/include/llvm/CodeGen/TargetLowering.h
@@ -223,7 +223,7 @@
   virtual ~TargetLoweringBase() = default;
 
 protected:
-  /// \brief Initialize all of the actions to default values.
+  /// Initialize all of the actions to default values.
   void initActions();
 
 public:
@@ -423,17 +423,17 @@
     return true;
   }
 
-  /// \brief Return true if it is cheap to speculate a call to intrinsic cttz.
+  /// Return true if it is cheap to speculate a call to intrinsic cttz.
   virtual bool isCheapToSpeculateCttz() const {
     return false;
   }
 
-  /// \brief Return true if it is cheap to speculate a call to intrinsic ctlz.
+  /// Return true if it is cheap to speculate a call to intrinsic ctlz.
   virtual bool isCheapToSpeculateCtlz() const {
     return false;
   }
 
-  /// \brief Return true if ctlz instruction is fast.
+  /// Return true if ctlz instruction is fast.
   virtual bool isCtlzFast() const {
     return false;
   }
@@ -446,13 +446,13 @@
     return false;
   }
 
-  /// \brief Return true if it is cheaper to split the store of a merged int val
+  /// Return true if it is cheaper to split the store of a merged int val
   /// from a pair of smaller values into multiple stores.
   virtual bool isMultiStoresCheaperThanBitsMerge(EVT LTy, EVT HTy) const {
     return false;
   }
 
-  /// \brief Return if the target supports combining a
+  /// Return if the target supports combining a
   /// chain like:
   /// \code
   ///   %andResult = and %val1, #mask
@@ -509,7 +509,30 @@
     return hasAndNotCompare(X);
   }
 
-  /// \brief Return true if the target wants to use the optimization that
+  /// There are two ways to clear extreme bits (either low or high):
+  /// Mask:    x &  (-1 << y)  (the instcombine canonical form)
+  /// Shifts:  x >> y << y
+  /// Return true if the variant with 2 shifts is preferred.
+  /// Return false if there is no preference.
+  virtual bool preferShiftsToClearExtremeBits(SDValue X) const {
+    // By default, let's assume that no one prefers shifts.
+    return false;
+  }
+
+  /// Should we tranform the IR-optimal check for whether given truncation
+  /// down into KeptBits would be truncating or not:
+  ///   (add %x, (1 << (KeptBits-1))) srccond (1 << KeptBits)
+  /// Into it's more traditional form:
+  ///   ((%x << C) a>> C) dstcond %x
+  /// Return true if we should transform.
+  /// Return false if there is no preference.
+  virtual bool shouldTransformSignedTruncationCheck(EVT XVT,
+                                                    unsigned KeptBits) const {
+    // By default, let's assume that no one prefers shifts.
+    return false;
+  }
+
+  /// Return true if the target wants to use the optimization that
   /// turns ext(promotableInst1(...(promotableInstN(load)))) into
   /// promotedInst1(...(promotedInstN(ext(load)))).
   bool enableExtLdPromotion() const { return EnableExtLdPromotion; }
@@ -695,7 +718,7 @@
   /// always broken down into scalars in some contexts. This occurs even if the
   /// vector type is legal.
   virtual unsigned getVectorTypeBreakdownForCallingConv(
-      LLVMContext &Context, EVT VT, EVT &IntermediateVT,
+      LLVMContext &Context, CallingConv::ID CC, EVT VT, EVT &IntermediateVT,
       unsigned &NumIntermediates, MVT &RegisterVT) const {
     return getVectorTypeBreakdown(Context, VT, IntermediateVT, NumIntermediates,
                                   RegisterVT);
@@ -748,10 +771,10 @@
   /// operations don't trap except for integer divide and remainder.
   virtual bool canOpTrap(unsigned Op, EVT VT) const;
 
-  /// Similar to isShuffleMaskLegal. This is used by Targets can use this to
-  /// indicate if there is a suitable VECTOR_SHUFFLE that can be used to replace
-  /// a VAND with a constant pool entry.
-  virtual bool isVectorClearMaskLegal(const SmallVectorImpl<int> &/*Mask*/,
+  /// Similar to isShuffleMaskLegal. Targets can use this to indicate if there
+  /// is a suitable VECTOR_SHUFFLE that can be used to replace a VAND with a
+  /// constant pool entry.
+  virtual bool isVectorClearMaskLegal(ArrayRef<int> /*Mask*/,
                                       EVT /*VT*/) const {
     return false;
   }
@@ -767,6 +790,39 @@
     return OpActions[(unsigned)VT.getSimpleVT().SimpleTy][Op];
   }
 
+  LegalizeAction getStrictFPOperationAction(unsigned Op, EVT VT) const {
+    unsigned EqOpc;
+    switch (Op) {
+      default: llvm_unreachable("Unexpected FP pseudo-opcode");
+      case ISD::STRICT_FADD: EqOpc = ISD::FADD; break;
+      case ISD::STRICT_FSUB: EqOpc = ISD::FSUB; break;
+      case ISD::STRICT_FMUL: EqOpc = ISD::FMUL; break;
+      case ISD::STRICT_FDIV: EqOpc = ISD::FDIV; break;
+      case ISD::STRICT_FSQRT: EqOpc = ISD::FSQRT; break;
+      case ISD::STRICT_FPOW: EqOpc = ISD::FPOW; break;
+      case ISD::STRICT_FPOWI: EqOpc = ISD::FPOWI; break;
+      case ISD::STRICT_FMA: EqOpc = ISD::FMA; break;
+      case ISD::STRICT_FSIN: EqOpc = ISD::FSIN; break;
+      case ISD::STRICT_FCOS: EqOpc = ISD::FCOS; break;
+      case ISD::STRICT_FEXP: EqOpc = ISD::FEXP; break;
+      case ISD::STRICT_FEXP2: EqOpc = ISD::FEXP2; break;
+      case ISD::STRICT_FLOG: EqOpc = ISD::FLOG; break;
+      case ISD::STRICT_FLOG10: EqOpc = ISD::FLOG10; break;
+      case ISD::STRICT_FLOG2: EqOpc = ISD::FLOG2; break;
+      case ISD::STRICT_FRINT: EqOpc = ISD::FRINT; break;
+      case ISD::STRICT_FNEARBYINT: EqOpc = ISD::FNEARBYINT; break;
+    }
+
+    auto Action = getOperationAction(EqOpc, VT);
+
+    // We don't currently handle Custom or Promote for strict FP pseudo-ops.
+    // For now, we just expand for those cases.
+    if (Action != Legal)
+      Action = Expand;
+
+    return Action;
+  }
+
   /// Return true if the specified operation is legal on this target or can be
   /// made legal with custom lowering. This is used to help guide high-level
   /// lowering decisions.
@@ -1117,12 +1173,8 @@
   /// Certain combinations of ABIs, Targets and features require that types
   /// are legal for some operations and not for other operations.
   /// For MIPS all vector types must be passed through the integer register set.
-  virtual MVT getRegisterTypeForCallingConv(MVT VT) const {
-    return getRegisterType(VT);
-  }
-
   virtual MVT getRegisterTypeForCallingConv(LLVMContext &Context,
-                                            EVT VT) const {
+                                            CallingConv::ID CC, EVT VT) const {
     return getRegisterType(Context, VT);
   }
 
@@ -1130,6 +1182,7 @@
   /// this occurs when a vector type is used, as vector are passed through the
   /// integer register set.
   virtual unsigned getNumRegistersForCallingConv(LLVMContext &Context,
+                                                 CallingConv::ID CC,
                                                  EVT VT) const {
     return getNumRegisters(Context, VT);
   }
@@ -1179,7 +1232,7 @@
     return getPointerTy(DL).getSizeInBits();
   }
 
-  /// \brief Get maximum # of store operations permitted for llvm.memset
+  /// Get maximum # of store operations permitted for llvm.memset
   ///
   /// This function returns the maximum number of store operations permitted
   /// to replace a call to llvm.memset. The value is set by the target at the
@@ -1189,7 +1242,7 @@
     return OptSize ? MaxStoresPerMemsetOptSize : MaxStoresPerMemset;
   }
 
-  /// \brief Get maximum # of store operations permitted for llvm.memcpy
+  /// Get maximum # of store operations permitted for llvm.memcpy
   ///
   /// This function returns the maximum number of store operations permitted
   /// to replace a call to llvm.memcpy. The value is set by the target at the
@@ -1199,6 +1252,15 @@
     return OptSize ? MaxStoresPerMemcpyOptSize : MaxStoresPerMemcpy;
   }
 
+  /// \brief Get maximum # of store operations to be glued together
+  ///
+  /// This function returns the maximum number of store operations permitted
+  /// to glue together during lowering of llvm.memcpy. The value is set by
+  //  the target at the performance threshold for such a replacement.
+  virtual unsigned getMaxGluedStoresPerMemcpy() const {
+    return MaxGluedStoresPerMemcpy;
+  }
+
   /// Get maximum # of load operations permitted for memcmp
   ///
   /// This function returns the maximum number of load operations permitted
@@ -1221,7 +1283,7 @@
     return 1;
   }
 
-  /// \brief Get maximum # of store operations permitted for llvm.memmove
+  /// Get maximum # of store operations permitted for llvm.memmove
   ///
   /// This function returns the maximum number of store operations permitted
   /// to replace a call to llvm.memmove. The value is set by the target at the
@@ -1231,7 +1293,7 @@
     return OptSize ? MaxStoresPerMemmoveOptSize : MaxStoresPerMemmove;
   }
 
-  /// \brief Determine if the target supports unaligned memory accesses.
+  /// Determine if the target supports unaligned memory accesses.
   ///
   /// This function returns true if the target allows unaligned memory accesses
   /// of the specified type in the given address space. If true, it also returns
@@ -1369,7 +1431,7 @@
   /// If the target has a standard location for the stack protector guard,
   /// returns the address of that location. Otherwise, returns nullptr.
   /// DEPRECATED: please override useLoadStackGuardNode and customize
-  ///             LOAD_STACK_GUARD, or customize @llvm.stackguard().
+  ///             LOAD_STACK_GUARD, or customize \@llvm.stackguard().
   virtual Value *getIRStackGuard(IRBuilder<> &IRB) const;
 
   /// Inserts necessary declarations for SSP (stack protection) purpose.
@@ -1924,7 +1986,7 @@
                                      Type *Ty, unsigned AddrSpace,
                                      Instruction *I = nullptr) const;
 
-  /// \brief Return the cost of the scaling factor used in the addressing mode
+  /// Return the cost of the scaling factor used in the addressing mode
   /// represented by AM for this target, for a load/store of the specified type.
   ///
   /// If the AM is supported, the return value must be >= 0.
@@ -2120,11 +2182,11 @@
   /// Return true if the target has a vector blend instruction.
   virtual bool hasVectorBlend() const { return false; }
 
-  /// \brief Get the maximum supported factor for interleaved memory accesses.
+  /// Get the maximum supported factor for interleaved memory accesses.
   /// Default to be the minimum interleave factor: 2.
   virtual unsigned getMaxSupportedInterleaveFactor() const { return 2; }
 
-  /// \brief Lower an interleaved load to target specific intrinsics. Return
+  /// Lower an interleaved load to target specific intrinsics. Return
   /// true on success.
   ///
   /// \p LI is the vector load instruction.
@@ -2138,7 +2200,7 @@
     return false;
   }
 
-  /// \brief Lower an interleaved store to target specific intrinsics. Return
+  /// Lower an interleaved store to target specific intrinsics. Return
   /// true on success.
   ///
   /// \p SI is the vector store instruction.
@@ -2211,7 +2273,7 @@
     return false;
   }
 
-  /// \brief Return true if it is beneficial to convert a load of a constant to
+  /// Return true if it is beneficial to convert a load of a constant to
   /// just the constant itself.
   /// On some targets it might be more efficient to use a combination of
   /// arithmetic instructions to materialize the constant instead of loading it
@@ -2236,6 +2298,11 @@
     return false;
   }
 
+  // Return true if CodeGenPrepare should consider splitting large offset of a
+  // GEP to make the GEP fit into the addressing mode and can be sunk into the
+  // same blocks of its users.
+  virtual bool shouldConsiderGEPOffsetSplit() const { return false; }
+
   //===--------------------------------------------------------------------===//
   // Runtime Library hooks
   //
@@ -2475,7 +2542,7 @@
   /// expected to be merged.
   unsigned GatherAllAliasesMaxDepth;
 
-  /// \brief Specify maximum number of store instructions per memset call.
+  /// Specify maximum number of store instructions per memset call.
   ///
   /// When lowering \@llvm.memset this field specifies the maximum number of
   /// store operations that may be substituted for the call to memset. Targets
@@ -2491,7 +2558,7 @@
   /// to memset, used for functions with OptSize attribute.
   unsigned MaxStoresPerMemsetOptSize;
 
-  /// \brief Specify maximum bytes of store instructions per memcpy call.
+  /// Specify maximum bytes of store instructions per memcpy call.
   ///
   /// When lowering \@llvm.memcpy this field specifies the maximum number of
   /// store operations that may be substituted for a call to memcpy. Targets
@@ -2504,13 +2571,21 @@
   /// constant size.
   unsigned MaxStoresPerMemcpy;
 
+
+  /// \brief Specify max number of store instructions to glue in inlined memcpy.
+  ///
+  /// When memcpy is inlined based on MaxStoresPerMemcpy, specify maximum number
+  /// of store instructions to keep together. This helps in pairing and
+  //  vectorization later on.
+  unsigned MaxGluedStoresPerMemcpy = 0;
+
   /// Maximum number of store operations that may be substituted for a call to
   /// memcpy, used for functions with OptSize attribute.
   unsigned MaxStoresPerMemcpyOptSize;
   unsigned MaxLoadsPerMemcmp;
   unsigned MaxLoadsPerMemcmpOptSize;
 
-  /// \brief Specify maximum bytes of store instructions per memmove call.
+  /// Specify maximum bytes of store instructions per memmove call.
   ///
   /// When lowering \@llvm.memmove this field specifies the maximum number of
   /// store instructions that may be substituted for a call to memmove. Targets
@@ -2547,6 +2622,11 @@
   /// details.
   MachineBasicBlock *emitXRayCustomEvent(MachineInstr &MI,
                                          MachineBasicBlock *MBB) const;
+
+  /// Replace/modify the XRay typed event operands with target-dependent
+  /// details.
+  MachineBasicBlock *emitXRayTypedEvent(MachineInstr &MI,
+                                        MachineBasicBlock *MBB) const;
 };
 
 /// This class defines information used to lower LLVM code to legal SelectionDAG
@@ -2741,7 +2821,7 @@
   ///    results of this function, because simply replacing replacing TLO.Old
   ///    with TLO.New will be incorrect when this parameter is true and TLO.Old
   ///    has multiple uses.
-  bool SimplifyDemandedVectorElts(SDValue Op, const APInt &DemandedElts,
+  bool SimplifyDemandedVectorElts(SDValue Op, const APInt &DemandedEltMask,
                                   APInt &KnownUndef, APInt &KnownZero,
                                   TargetLoweringOpt &TLO, unsigned Depth = 0,
                                   bool AssumeSingleUse = false) const;
@@ -2788,6 +2868,13 @@
       SDValue Op, const APInt &DemandedElts, APInt &KnownUndef,
       APInt &KnownZero, TargetLoweringOpt &TLO, unsigned Depth = 0) const;
 
+  /// If \p SNaN is false, \returns true if \p Op is known to never be any
+  /// NaN. If \p sNaN is true, returns if \p Op is known to never be a signaling
+  /// NaN.
+  virtual bool isKnownNeverNaNForTargetNode(SDValue Op,
+                                            const SelectionDAG &DAG,
+                                            bool SNaN = false,
+                                            unsigned Depth = 0) const;
   struct DAGCombinerInfo {
     void *DC;  // The DAG Combiner object.
     CombineLevel Level;
@@ -2824,7 +2911,7 @@
   bool isConstFalseVal(const SDNode *N) const;
 
   /// Return if \p N is a True value when extended to \p VT.
-  bool isExtendedTrueVal(const ConstantSDNode *N, EVT VT, bool Signed) const;
+  bool isExtendedTrueVal(const ConstantSDNode *N, EVT VT, bool SExt) const;
 
   /// Try to simplify a setcc built with the specified operands and cc. If it is
   /// unable to simplify it, return a null SDValue.
@@ -3408,12 +3495,10 @@
   //===--------------------------------------------------------------------===//
   // Div utility functions
   //
-  SDValue BuildSDIV(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
-                    bool IsAfterLegalization,
-                    std::vector<SDNode *> *Created) const;
-  SDValue BuildUDIV(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
-                    bool IsAfterLegalization,
-                    std::vector<SDNode *> *Created) const;
+  SDValue BuildSDIV(SDNode *N, SelectionDAG &DAG, bool IsAfterLegalization,
+                    SmallVectorImpl<SDNode *> &Created) const;
+  SDValue BuildUDIV(SDNode *N, SelectionDAG &DAG, bool IsAfterLegalization,
+                    SmallVectorImpl<SDNode *> &Created) const;
 
   /// Targets may override this function to provide custom SDIV lowering for
   /// power-of-2 denominators.  If the target returns an empty SDValue, LLVM
@@ -3421,7 +3506,7 @@
   /// operations.
   virtual SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor,
                                 SelectionDAG &DAG,
-                                std::vector<SDNode *> *Created) const;
+                                SmallVectorImpl<SDNode *> &Created) const;
 
   /// Indicate whether this target prefers to combine FDIVs with the same
   /// divisor. If the transform should never be done, return zero. If the
@@ -3545,7 +3630,7 @@
   /// bounds the returned pointer is unspecified, but will be within the vector
   /// bounds.
   SDValue getVectorElementPointer(SelectionDAG &DAG, SDValue VecPtr, EVT VecVT,
-                                  SDValue Idx) const;
+                                  SDValue Index) const;
 
   //===--------------------------------------------------------------------===//
   // Instruction Emitting Hooks
@@ -3601,12 +3686,17 @@
   SDValue simplifySetCCWithAnd(EVT VT, SDValue N0, SDValue N1,
                                ISD::CondCode Cond, DAGCombinerInfo &DCI,
                                const SDLoc &DL) const;
+
+  SDValue optimizeSetCCOfSignedTruncationCheck(EVT SCCVT, SDValue N0,
+                                               SDValue N1, ISD::CondCode Cond,
+                                               DAGCombinerInfo &DCI,
+                                               const SDLoc &DL) const;
 };
 
 /// Given an LLVM IR type and return type attributes, compute the return value
 /// EVTs and flags, and optionally also the offsets, if the return value is
 /// being lowered to memory.
-void GetReturnInfo(Type *ReturnType, AttributeList attr,
+void GetReturnInfo(CallingConv::ID CC, Type *ReturnType, AttributeList attr,
                    SmallVectorImpl<ISD::OutputArg> &Outs,
                    const TargetLowering &TLI, const DataLayout &DL);
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h b/linux-x64/clang/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
index 78da77f..f5c7fc8 100644
--- a/linux-x64/clang/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
+++ b/linux-x64/clang/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
@@ -36,16 +36,18 @@
 protected:
   MCSymbolRefExpr::VariantKind PLTRelativeVariantKind =
       MCSymbolRefExpr::VK_None;
+  const TargetMachine *TM;
 
 public:
   TargetLoweringObjectFileELF() = default;
   ~TargetLoweringObjectFileELF() override = default;
 
-  /// Emit Obj-C garbage collection and linker options.
-  void emitModuleMetadata(MCStreamer &Streamer, Module &M,
-                          const TargetMachine &TM) const override;
+  void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
 
-  void emitPersonalityValue(MCStreamer &Streamer, const DataLayout &TM,
+  /// Emit Obj-C garbage collection and linker options.
+  void emitModuleMetadata(MCStreamer &Streamer, Module &M) const override;
+
+  void emitPersonalityValue(MCStreamer &Streamer, const DataLayout &DL,
                             const MCSymbol *Sym) const override;
 
   /// Given a constant with the SectionKind, return a section that it should be
@@ -98,8 +100,7 @@
   void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
 
   /// Emit the module flags that specify the garbage collection information.
-  void emitModuleMetadata(MCStreamer &Streamer, Module &M,
-                          const TargetMachine &TM) const override;
+  void emitModuleMetadata(MCStreamer &Streamer, Module &M) const override;
 
   MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind,
                                     const TargetMachine &TM) const override;
@@ -153,8 +154,7 @@
                                     const TargetMachine &TM) const override;
 
   /// Emit Obj-C garbage collection and linker options.
-  void emitModuleMetadata(MCStreamer &Streamer, Module &M,
-                          const TargetMachine &TM) const override;
+  void emitModuleMetadata(MCStreamer &Streamer, Module &M) const override;
 
   MCSection *getStaticCtorSection(unsigned Priority,
                                   const MCSymbol *KeySym) const override;
@@ -166,6 +166,16 @@
 
   void emitLinkerFlagsForUsed(raw_ostream &OS,
                               const GlobalValue *GV) const override;
+
+  const MCExpr *lowerRelativeReference(const GlobalValue *LHS,
+                                       const GlobalValue *RHS,
+                                       const TargetMachine &TM) const override;
+
+  /// Given a mergeable constant with the specified size and relocation
+  /// information, return a section that it should be placed in.
+  MCSection *getSectionForConstant(const DataLayout &DL, SectionKind Kind,
+                                   const Constant *C,
+                                   unsigned &Align) const override;
 };
 
 class TargetLoweringObjectFileWasm : public TargetLoweringObjectFile {
diff --git a/linux-x64/clang/include/llvm/CodeGen/TargetPassConfig.h b/linux-x64/clang/include/llvm/CodeGen/TargetPassConfig.h
index 5918c52..8f5c9cb 100644
--- a/linux-x64/clang/include/llvm/CodeGen/TargetPassConfig.h
+++ b/linux-x64/clang/include/llvm/CodeGen/TargetPassConfig.h
@@ -16,7 +16,7 @@
 
 #include "llvm/Pass.h"
 #include "llvm/Support/CodeGen.h"
-#include <cassert> 
+#include <cassert>
 #include <string>
 
 namespace llvm {
diff --git a/linux-x64/clang/include/llvm/CodeGen/TargetRegisterInfo.h b/linux-x64/clang/include/llvm/CodeGen/TargetRegisterInfo.h
index ea47a24..55a8ba6 100644
--- a/linux-x64/clang/include/llvm/CodeGen/TargetRegisterInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/TargetRegisterInfo.h
@@ -238,12 +238,12 @@
 
 protected:
   TargetRegisterInfo(const TargetRegisterInfoDesc *ID,
-                     regclass_iterator RegClassBegin,
-                     regclass_iterator RegClassEnd,
+                     regclass_iterator RCB,
+                     regclass_iterator RCE,
                      const char *const *SRINames,
                      const LaneBitmask *SRILaneMasks,
                      LaneBitmask CoveringLanes,
-                     const RegClassInfo *const RSI,
+                     const RegClassInfo *const RCIs,
                      unsigned Mode = 0);
   virtual ~TargetRegisterInfo();
 
@@ -456,7 +456,7 @@
   /// stack frame offset. The first register is closest to the incoming stack
   /// pointer if stack grows down, and vice versa.
   /// Notice: This function does not take into account disabled CSRs.
-  ///         In most cases you will want to use instead the function 
+  ///         In most cases you will want to use instead the function
   ///         getCalleeSavedRegs that is implemented in MachineRegisterInfo.
   virtual const MCPhysReg*
   getCalleeSavedRegs(const MachineFunction *MF) const = 0;
@@ -518,7 +518,7 @@
   /// guaranteed to be restored before any uses. This is useful for targets that
   /// have call sequences where a GOT register may be updated by the caller
   /// prior to a call and is guaranteed to be restored (also by the caller)
-  /// after the call. 
+  /// after the call.
   virtual bool isCallerPreservedPhysReg(unsigned PhysReg,
                                         const MachineFunction &MF) const {
     return false;
@@ -971,7 +971,7 @@
   //===--------------------------------------------------------------------===//
   /// Subtarget Hooks
 
-  /// \brief SrcRC and DstRC will be morphed into NewRC if this returns true.
+  /// SrcRC and DstRC will be morphed into NewRC if this returns true.
   virtual bool shouldCoalesce(MachineInstr *MI,
                               const TargetRegisterClass *SrcRC,
                               unsigned SubReg,
@@ -995,6 +995,12 @@
   /// of the set as well.
   bool checkAllSuperRegsMarked(const BitVector &RegisterSet,
       ArrayRef<MCPhysReg> Exceptions = ArrayRef<MCPhysReg>()) const;
+
+  virtual const TargetRegisterClass *
+  getConstrainedRegClassForOperand(const MachineOperand &MO,
+                                   const MachineRegisterInfo &MRI) const {
+    return nullptr;
+  }
 };
 
 //===----------------------------------------------------------------------===//
@@ -1161,7 +1167,7 @@
 ///
 /// Usage: OS << printReg(Reg, TRI, SubRegIdx) << '\n';
 Printable printReg(unsigned Reg, const TargetRegisterInfo *TRI = nullptr,
-                   unsigned SubRegIdx = 0,
+                   unsigned SubIdx = 0,
                    const MachineRegisterInfo *MRI = nullptr);
 
 /// Create Printable object to print register units on a \ref raw_ostream.
@@ -1174,11 +1180,11 @@
 /// Usage: OS << printRegUnit(Unit, TRI) << '\n';
 Printable printRegUnit(unsigned Unit, const TargetRegisterInfo *TRI);
 
-/// \brief Create Printable object to print virtual registers and physical
+/// Create Printable object to print virtual registers and physical
 /// registers on a \ref raw_ostream.
 Printable printVRegOrUnit(unsigned VRegOrUnit, const TargetRegisterInfo *TRI);
 
-/// \brief Create Printable object to print register classes or register banks
+/// Create Printable object to print register classes or register banks
 /// on a \ref raw_ostream.
 Printable printRegClassOrBank(unsigned Reg, const MachineRegisterInfo &RegInfo,
                               const TargetRegisterInfo *TRI);
diff --git a/linux-x64/clang/include/llvm/CodeGen/TargetSchedule.h b/linux-x64/clang/include/llvm/CodeGen/TargetSchedule.h
index 1044f0b..6173925 100644
--- a/linux-x64/clang/include/llvm/CodeGen/TargetSchedule.h
+++ b/linux-x64/clang/include/llvm/CodeGen/TargetSchedule.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/CodeGen/TargetSubtargetInfo.h"
+#include "llvm/Config/llvm-config.h"
 #include "llvm/MC/MCInstrItineraries.h"
 #include "llvm/MC/MCSchedule.h"
 
@@ -45,24 +46,23 @@
 public:
   TargetSchedModel() : SchedModel(MCSchedModel::GetDefaultSchedModel()) {}
 
-  /// \brief Initialize the machine model for instruction scheduling.
+  /// Initialize the machine model for instruction scheduling.
   ///
   /// The machine model API keeps a copy of the top-level MCSchedModel table
   /// indices and may query TargetSubtargetInfo and TargetInstrInfo to resolve
   /// dynamic properties.
-  void init(const MCSchedModel &sm, const TargetSubtargetInfo *sti,
-            const TargetInstrInfo *tii);
+  void init(const TargetSubtargetInfo *TSInfo);
 
   /// Return the MCSchedClassDesc for this instruction.
   const MCSchedClassDesc *resolveSchedClass(const MachineInstr *MI) const;
 
-  /// \brief TargetSubtargetInfo getter.
+  /// TargetSubtargetInfo getter.
   const TargetSubtargetInfo *getSubtargetInfo() const { return STI; }
 
-  /// \brief TargetInstrInfo getter.
+  /// TargetInstrInfo getter.
   const TargetInstrInfo *getInstrInfo() const { return TII; }
 
-  /// \brief Return true if this machine model includes an instruction-level
+  /// Return true if this machine model includes an instruction-level
   /// scheduling model.
   ///
   /// This is more detailed than the course grain IssueWidth and default
@@ -71,7 +71,7 @@
 
   const MCSchedModel *getMCSchedModel() const { return &SchedModel; }
 
-  /// \brief Return true if this machine model includes cycle-to-cycle itinerary
+  /// Return true if this machine model includes cycle-to-cycle itinerary
   /// data.
   ///
   /// This models scheduling at each stage in the processor pipeline.
@@ -83,35 +83,35 @@
     return nullptr;
   }
 
-  /// \brief Return true if this machine model includes an instruction-level
+  /// Return true if this machine model includes an instruction-level
   /// scheduling model or cycle-to-cycle itinerary data.
   bool hasInstrSchedModelOrItineraries() const {
     return hasInstrSchedModel() || hasInstrItineraries();
   }
 
-  /// \brief Identify the processor corresponding to the current subtarget.
+  /// Identify the processor corresponding to the current subtarget.
   unsigned getProcessorID() const { return SchedModel.getProcessorID(); }
 
-  /// \brief Maximum number of micro-ops that may be scheduled per cycle.
+  /// Maximum number of micro-ops that may be scheduled per cycle.
   unsigned getIssueWidth() const { return SchedModel.IssueWidth; }
 
-  /// \brief Return true if new group must begin.
+  /// Return true if new group must begin.
   bool mustBeginGroup(const MachineInstr *MI,
                           const MCSchedClassDesc *SC = nullptr) const;
-  /// \brief Return true if current group must end.
+  /// Return true if current group must end.
   bool mustEndGroup(const MachineInstr *MI,
                           const MCSchedClassDesc *SC = nullptr) const;
 
-  /// \brief Return the number of issue slots required for this MI.
+  /// Return the number of issue slots required for this MI.
   unsigned getNumMicroOps(const MachineInstr *MI,
                           const MCSchedClassDesc *SC = nullptr) const;
 
-  /// \brief Get the number of kinds of resources for this target.
+  /// Get the number of kinds of resources for this target.
   unsigned getNumProcResourceKinds() const {
     return SchedModel.getNumProcResourceKinds();
   }
 
-  /// \brief Get a processor resource by ID for convenience.
+  /// Get a processor resource by ID for convenience.
   const MCProcResourceDesc *getProcResource(unsigned PIdx) const {
     return SchedModel.getProcResource(PIdx);
   }
@@ -126,7 +126,7 @@
 
   using ProcResIter = const MCWriteProcResEntry *;
 
-  // \brief Get an iterator into the processor resources consumed by this
+  // Get an iterator into the processor resources consumed by this
   // scheduling class.
   ProcResIter getWriteProcResBegin(const MCSchedClassDesc *SC) const {
     // The subtarget holds a single resource table for all processors.
@@ -136,34 +136,34 @@
     return STI->getWriteProcResEnd(SC);
   }
 
-  /// \brief Multiply the number of units consumed for a resource by this factor
+  /// Multiply the number of units consumed for a resource by this factor
   /// to normalize it relative to other resources.
   unsigned getResourceFactor(unsigned ResIdx) const {
     return ResourceFactors[ResIdx];
   }
 
-  /// \brief Multiply number of micro-ops by this factor to normalize it
+  /// Multiply number of micro-ops by this factor to normalize it
   /// relative to other resources.
   unsigned getMicroOpFactor() const {
     return MicroOpFactor;
   }
 
-  /// \brief Multiply cycle count by this factor to normalize it relative to
+  /// Multiply cycle count by this factor to normalize it relative to
   /// other resources. This is the number of resource units per cycle.
   unsigned getLatencyFactor() const {
     return ResourceLCM;
   }
 
-  /// \brief Number of micro-ops that may be buffered for OOO execution.
+  /// Number of micro-ops that may be buffered for OOO execution.
   unsigned getMicroOpBufferSize() const { return SchedModel.MicroOpBufferSize; }
 
-  /// \brief Number of resource units that may be buffered for OOO execution.
+  /// Number of resource units that may be buffered for OOO execution.
   /// \return The buffer size in resource units or -1 for unlimited.
   int getResourceBufferSize(unsigned PIdx) const {
     return SchedModel.getProcResource(PIdx)->BufferSize;
   }
 
-  /// \brief Compute operand latency based on the available machine model.
+  /// Compute operand latency based on the available machine model.
   ///
   /// Compute and return the latency of the given data dependent def and use
   /// when the operand indices are already known. UseMI may be NULL for an
@@ -172,7 +172,7 @@
                                  const MachineInstr *UseMI, unsigned UseOperIdx)
     const;
 
-  /// \brief Compute the instruction latency based on the available machine
+  /// Compute the instruction latency based on the available machine
   /// model.
   ///
   /// Compute and return the expected latency of this instruction independent of
@@ -185,18 +185,20 @@
   /// if converter after moving it to TargetSchedModel).
   unsigned computeInstrLatency(const MachineInstr *MI,
                                bool UseDefaultDefLatency = true) const;
+  unsigned computeInstrLatency(const MCInst &Inst) const;
   unsigned computeInstrLatency(unsigned Opcode) const;
 
 
-  /// \brief Output dependency latency of a pair of defs of the same register.
+  /// Output dependency latency of a pair of defs of the same register.
   ///
   /// This is typically one cycle.
-  unsigned computeOutputLatency(const MachineInstr *DefMI, unsigned DefIdx,
+  unsigned computeOutputLatency(const MachineInstr *DefMI, unsigned DefOperIdx,
                                 const MachineInstr *DepMI) const;
 
-  /// \brief Compute the reciprocal throughput of the given instruction.
-  Optional<double> computeInstrRThroughput(const MachineInstr *MI) const;
-  Optional<double> computeInstrRThroughput(unsigned Opcode) const;
+  /// Compute the reciprocal throughput of the given instruction.
+  double computeReciprocalThroughput(const MachineInstr *MI) const;
+  double computeReciprocalThroughput(const MCInst &MI) const;
+  double computeReciprocalThroughput(unsigned Opcode) const;
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/CodeGen/TargetSubtargetInfo.h b/linux-x64/clang/include/llvm/CodeGen/TargetSubtargetInfo.h
index 5e5faac..227e591 100644
--- a/linux-x64/clang/include/llvm/CodeGen/TargetSubtargetInfo.h
+++ b/linux-x64/clang/include/llvm/CodeGen/TargetSubtargetInfo.h
@@ -144,7 +144,7 @@
     return 0;
   }
 
-  /// \brief True if the subtarget should run MachineScheduler after aggressive
+  /// True if the subtarget should run MachineScheduler after aggressive
   /// coalescing.
   ///
   /// This currently replaces the SelectionDAG scheduler with the "source" order
@@ -152,14 +152,14 @@
   /// TargetLowering preference). It does not yet disable the postRA scheduler.
   virtual bool enableMachineScheduler() const;
 
-  /// \brief Support printing of [latency:throughput] comment in output .S file.
+  /// Support printing of [latency:throughput] comment in output .S file.
   virtual bool supportPrintSchedInfo() const { return false; }
 
-  /// \brief True if the machine scheduler should disable the TLI preference
+  /// True if the machine scheduler should disable the TLI preference
   /// for preRA scheduling with the source level scheduler.
   virtual bool enableMachineSchedDefaultSched() const { return true; }
 
-  /// \brief True if the subtarget should enable joining global copies.
+  /// True if the subtarget should enable joining global copies.
   ///
   /// By default this is enabled if the machine scheduler is enabled, but
   /// can be overridden.
@@ -171,13 +171,13 @@
   /// which is the preferred way to influence this.
   virtual bool enablePostRAScheduler() const;
 
-  /// \brief True if the subtarget should run the atomic expansion pass.
+  /// True if the subtarget should run the atomic expansion pass.
   virtual bool enableAtomicExpand() const;
 
   /// True if the subtarget should run the indirectbr expansion pass.
   virtual bool enableIndirectBrExpand() const;
 
-  /// \brief Override generic scheduling policy within a region.
+  /// Override generic scheduling policy within a region.
   ///
   /// This is a convenient way for targets that don't provide any custom
   /// scheduling heuristics (no custom MachineSchedStrategy) to make
@@ -185,7 +185,7 @@
   virtual void overrideSchedPolicy(MachineSchedPolicy &Policy,
                                    unsigned NumRegionInstrs) const {}
 
-  // \brief Perform target specific adjustments to the latency of a schedule
+  // Perform target specific adjustments to the latency of a schedule
   // dependency.
   virtual void adjustSchedDependency(SUnit *def, SUnit *use, SDep &dep) const {}
 
@@ -200,13 +200,13 @@
     return CriticalPathRCs.clear();
   }
 
-  // \brief Provide an ordered list of schedule DAG mutations for the post-RA
+  // Provide an ordered list of schedule DAG mutations for the post-RA
   // scheduler.
   virtual void getPostRAMutations(
       std::vector<std::unique_ptr<ScheduleDAGMutation>> &Mutations) const {
   }
 
-  // \brief Provide an ordered list of schedule DAG mutations for the machine
+  // Provide an ordered list of schedule DAG mutations for the machine
   // pipeliner.
   virtual void getSMSMutations(
       std::vector<std::unique_ptr<ScheduleDAGMutation>> &Mutations) const {
@@ -218,25 +218,25 @@
     return CodeGenOpt::Default;
   }
 
-  /// \brief True if the subtarget should run the local reassignment
+  /// True if the subtarget should run the local reassignment
   /// heuristic of the register allocator.
   /// This heuristic may be compile time intensive, \p OptLevel provides
   /// a finer grain to tune the register allocator.
   virtual bool enableRALocalReassignment(CodeGenOpt::Level OptLevel) const;
 
-  /// \brief True if the subtarget should consider the cost of local intervals
+  /// True if the subtarget should consider the cost of local intervals
   /// created by a split candidate when choosing the best split candidate. This
   /// heuristic may be compile time intensive.
   virtual bool enableAdvancedRASplitCost() const;
 
-  /// \brief Enable use of alias analysis during code generation (during MI
+  /// Enable use of alias analysis during code generation (during MI
   /// scheduling, DAGCombine, etc.).
   virtual bool useAA() const;
 
-  /// \brief Enable the use of the early if conversion pass.
+  /// Enable the use of the early if conversion pass.
   virtual bool enableEarlyIfConversion() const { return false; }
 
-  /// \brief Return PBQPConstraint(s) for the target.
+  /// Return PBQPConstraint(s) for the target.
   ///
   /// Override to provide custom PBQP constraints.
   virtual std::unique_ptr<PBQPRAConstraint> getCustomPBQPConstraints() const {
@@ -249,7 +249,7 @@
   virtual bool enableSubRegLiveness() const { return false; }
 
   /// Returns string representation of scheduler comment
-  std::string getSchedInfoStr(const MachineInstr &MI) const override;
+  std::string getSchedInfoStr(const MachineInstr &MI) const;
   std::string getSchedInfoStr(MCInst const &MCI) const override;
 
   /// This is called after a .mir file was loaded.
diff --git a/linux-x64/clang/include/llvm/CodeGen/ValueTypes.td b/linux-x64/clang/include/llvm/CodeGen/ValueTypes.td
index 673eec9..0abb4ec 100644
--- a/linux-x64/clang/include/llvm/CodeGen/ValueTypes.td
+++ b/linux-x64/clang/include/llvm/CodeGen/ValueTypes.td
@@ -8,8 +8,8 @@
 //===----------------------------------------------------------------------===//
 //
 // Value types - These values correspond to the register types defined in the
-// ValueTypes.h file.  If you update anything here, you must update it there as
-// well!
+// MachineValueTypes.h file.  If you update anything here, you must update it
+// there as well!
 //
 //===----------------------------------------------------------------------===//
 
diff --git a/linux-x64/clang/include/llvm/CodeGen/VirtRegMap.h b/linux-x64/clang/include/llvm/CodeGen/VirtRegMap.h
index 3b06f03..6a8e50a 100644
--- a/linux-x64/clang/include/llvm/CodeGen/VirtRegMap.h
+++ b/linux-x64/clang/include/llvm/CodeGen/VirtRegMap.h
@@ -90,24 +90,24 @@
 
     void grow();
 
-    /// @brief returns true if the specified virtual register is
+    /// returns true if the specified virtual register is
     /// mapped to a physical register
     bool hasPhys(unsigned virtReg) const {
       return getPhys(virtReg) != NO_PHYS_REG;
     }
 
-    /// @brief returns the physical register mapped to the specified
+    /// returns the physical register mapped to the specified
     /// virtual register
     unsigned getPhys(unsigned virtReg) const {
       assert(TargetRegisterInfo::isVirtualRegister(virtReg));
       return Virt2PhysMap[virtReg];
     }
 
-    /// @brief creates a mapping for the specified virtual register to
+    /// creates a mapping for the specified virtual register to
     /// the specified physical register
     void assignVirt2Phys(unsigned virtReg, MCPhysReg physReg);
 
-    /// @brief clears the specified virtual register's, physical
+    /// clears the specified virtual register's, physical
     /// register mapping
     void clearVirt(unsigned virtReg) {
       assert(TargetRegisterInfo::isVirtualRegister(virtReg));
@@ -116,26 +116,26 @@
       Virt2PhysMap[virtReg] = NO_PHYS_REG;
     }
 
-    /// @brief clears all virtual to physical register mappings
+    /// clears all virtual to physical register mappings
     void clearAllVirt() {
       Virt2PhysMap.clear();
       grow();
     }
 
-    /// @brief returns true if VirtReg is assigned to its preferred physreg.
+    /// returns true if VirtReg is assigned to its preferred physreg.
     bool hasPreferredPhys(unsigned VirtReg);
 
-    /// @brief returns true if VirtReg has a known preferred register.
+    /// returns true if VirtReg has a known preferred register.
     /// This returns false if VirtReg has a preference that is a virtual
     /// register that hasn't been assigned yet.
     bool hasKnownPreference(unsigned VirtReg);
 
-    /// @brief records virtReg is a split live interval from SReg.
+    /// records virtReg is a split live interval from SReg.
     void setIsSplitFromReg(unsigned virtReg, unsigned SReg) {
       Virt2SplitMap[virtReg] = SReg;
     }
 
-    /// @brief returns the live interval virtReg is split from.
+    /// returns the live interval virtReg is split from.
     unsigned getPreSplitReg(unsigned virtReg) const {
       return Virt2SplitMap[virtReg];
     }
@@ -149,7 +149,7 @@
       return Orig ? Orig : VirtReg;
     }
 
-    /// @brief returns true if the specified virtual register is not
+    /// returns true if the specified virtual register is not
     /// mapped to a stack slot or rematerialized.
     bool isAssignedReg(unsigned virtReg) const {
       if (getStackSlot(virtReg) == NO_STACK_SLOT)
@@ -159,20 +159,20 @@
       return (Virt2SplitMap[virtReg] && Virt2PhysMap[virtReg] != NO_PHYS_REG);
     }
 
-    /// @brief returns the stack slot mapped to the specified virtual
+    /// returns the stack slot mapped to the specified virtual
     /// register
     int getStackSlot(unsigned virtReg) const {
       assert(TargetRegisterInfo::isVirtualRegister(virtReg));
       return Virt2StackSlotMap[virtReg];
     }
 
-    /// @brief create a mapping for the specifed virtual register to
+    /// create a mapping for the specifed virtual register to
     /// the next available stack slot
     int assignVirt2StackSlot(unsigned virtReg);
 
-    /// @brief create a mapping for the specified virtual register to
+    /// create a mapping for the specified virtual register to
     /// the specified stack slot
-    void assignVirt2StackSlot(unsigned virtReg, int frameIndex);
+    void assignVirt2StackSlot(unsigned virtReg, int SS);
 
     void print(raw_ostream &OS, const Module* M = nullptr) const override;
     void dump() const;
diff --git a/linux-x64/clang/include/llvm/CodeGen/WasmEHFuncInfo.h b/linux-x64/clang/include/llvm/CodeGen/WasmEHFuncInfo.h
new file mode 100644
index 0000000..3ad6760
--- /dev/null
+++ b/linux-x64/clang/include/llvm/CodeGen/WasmEHFuncInfo.h
@@ -0,0 +1,80 @@
+//===--- llvm/CodeGen/WasmEHFuncInfo.h --------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// Data structures for Wasm exception handling schemes.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CODEGEN_WASMEHFUNCINFO_H
+#define LLVM_CODEGEN_WASMEHFUNCINFO_H
+
+#include "llvm/ADT/PointerUnion.h"
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/CodeGen/MachineBasicBlock.h"
+#include "llvm/IR/BasicBlock.h"
+
+namespace llvm {
+
+using BBOrMBB = PointerUnion<const BasicBlock *, MachineBasicBlock *>;
+
+struct WasmEHFuncInfo {
+  // When there is an entry <A, B>, if an exception is not caught by A, it
+  // should next unwind to the EH pad B.
+  DenseMap<BBOrMBB, BBOrMBB> EHPadUnwindMap;
+  // For entry <A, B>, A is a BB with an instruction that may throw
+  // (invoke/cleanupret in LLVM IR, call/rethrow in the backend) and B is an EH
+  // pad that A unwinds to.
+  DenseMap<BBOrMBB, BBOrMBB> ThrowUnwindMap;
+
+  // Helper functions
+  const BasicBlock *getEHPadUnwindDest(const BasicBlock *BB) const {
+    return EHPadUnwindMap.lookup(BB).get<const BasicBlock *>();
+  }
+  void setEHPadUnwindDest(const BasicBlock *BB, const BasicBlock *Dest) {
+    EHPadUnwindMap[BB] = Dest;
+  }
+  const BasicBlock *getThrowUnwindDest(BasicBlock *BB) const {
+    return ThrowUnwindMap.lookup(BB).get<const BasicBlock *>();
+  }
+  void setThrowUnwindDest(const BasicBlock *BB, const BasicBlock *Dest) {
+    ThrowUnwindMap[BB] = Dest;
+  }
+  bool hasEHPadUnwindDest(const BasicBlock *BB) const {
+    return EHPadUnwindMap.count(BB);
+  }
+  bool hasThrowUnwindDest(const BasicBlock *BB) const {
+    return ThrowUnwindMap.count(BB);
+  }
+
+  MachineBasicBlock *getEHPadUnwindDest(MachineBasicBlock *MBB) const {
+    return EHPadUnwindMap.lookup(MBB).get<MachineBasicBlock *>();
+  }
+  void setEHPadUnwindDest(MachineBasicBlock *MBB, MachineBasicBlock *Dest) {
+    EHPadUnwindMap[MBB] = Dest;
+  }
+  MachineBasicBlock *getThrowUnwindDest(MachineBasicBlock *MBB) const {
+    return ThrowUnwindMap.lookup(MBB).get<MachineBasicBlock *>();
+  }
+  void setThrowUnwindDest(MachineBasicBlock *MBB, MachineBasicBlock *Dest) {
+    ThrowUnwindMap[MBB] = Dest;
+  }
+  bool hasEHPadUnwindDest(MachineBasicBlock *MBB) const {
+    return EHPadUnwindMap.count(MBB);
+  }
+  bool hasThrowUnwindDest(MachineBasicBlock *MBB) const {
+    return ThrowUnwindMap.count(MBB);
+  }
+};
+
+// Analyze the IR in the given function to build WasmEHFuncInfo.
+void calculateWasmEHInfo(const Function *F, WasmEHFuncInfo &EHInfo);
+
+} // namespace llvm
+
+#endif // LLVM_CODEGEN_WASMEHFUNCINFO_H
diff --git a/linux-x64/clang/include/llvm/Config/llvm-config.h b/linux-x64/clang/include/llvm/Config/llvm-config.h
index 07fa1c8..5e0844c 100644
--- a/linux-x64/clang/include/llvm/Config/llvm-config.h
+++ b/linux-x64/clang/include/llvm/Config/llvm-config.h
@@ -56,26 +56,26 @@
 /* Define if this is Unixish platform */
 #define LLVM_ON_UNIX 1
 
-/* Define if this is Win32ish platform */
-/* #undef LLVM_ON_WIN32 */
-
 /* Define if we have the Intel JIT API runtime support library */
 #define LLVM_USE_INTEL_JITEVENTS 0
 
 /* Define if we have the oprofile JIT-support library */
 #define LLVM_USE_OPROFILE 0
 
+/* Define if we have the perf JIT-support library */
+#define LLVM_USE_PERF 0
+
 /* Major version of the LLVM API */
-#define LLVM_VERSION_MAJOR 7
+#define LLVM_VERSION_MAJOR 8
 
 /* Minor version of the LLVM API */
 #define LLVM_VERSION_MINOR 0
 
 /* Patch version of the LLVM API */
-#define LLVM_VERSION_PATCH 2
+#define LLVM_VERSION_PATCH 1
 
 /* LLVM version string */
-#define LLVM_VERSION_STRING "7.0.2svn"
+#define LLVM_VERSION_STRING "8.0.1svn"
 
 /* Whether LLVM records statistics for use with GetStatistics(),
  * PrintStatistics() or PrintStatisticsJSON()
diff --git a/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeView.h b/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeView.h
index 301e4f6..4ce9f68 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeView.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeView.h
@@ -22,8 +22,8 @@
 namespace llvm {
 namespace codeview {
 
-/// Distinguishes individual records in .debug$T section or PDB type stream. The
-/// documentation and headers talk about this as the "leaf" type.
+/// Distinguishes individual records in .debug$T or .debug$P section or PDB type
+/// stream. The documentation and headers talk about this as the "leaf" type.
 enum class TypeRecordKind : uint16_t {
 #define TYPE_RECORD(lf_ename, value, name) name = value,
 #include "CodeViewTypes.def"
diff --git a/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def b/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def
index 3f06602..6da8893 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def
+++ b/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def
@@ -15,254 +15,254 @@
 #define CV_REGISTER(name, value)
 #endif
 
-// This currently only contains the "register subset shraed by all processor
+// This currently only contains the "register subset shared by all processor
 // types" (ERR etc.) and the x86 registers.
 
-CV_REGISTER(ERR, 30000)
-CV_REGISTER(TEB, 30001)
-CV_REGISTER(TIMER, 30002)
-CV_REGISTER(EFAD1, 30003)
-CV_REGISTER(EFAD2, 30004)
-CV_REGISTER(EFAD3, 30005)
-CV_REGISTER(VFRAME, 30006)
-CV_REGISTER(HANDLE, 30007)
-CV_REGISTER(PARAMS, 30008)
-CV_REGISTER(LOCALS, 30009)
-CV_REGISTER(TID, 30010)
-CV_REGISTER(ENV, 30011)
-CV_REGISTER(CMDLN, 30012)
+CV_REGISTER(CVRegERR, 30000)
+CV_REGISTER(CVRegTEB, 30001)
+CV_REGISTER(CVRegTIMER, 30002)
+CV_REGISTER(CVRegEFAD1, 30003)
+CV_REGISTER(CVRegEFAD2, 30004)
+CV_REGISTER(CVRegEFAD3, 30005)
+CV_REGISTER(CVRegVFRAME, 30006)
+CV_REGISTER(CVRegHANDLE, 30007)
+CV_REGISTER(CVRegPARAMS, 30008)
+CV_REGISTER(CVRegLOCALS, 30009)
+CV_REGISTER(CVRegTID, 30010)
+CV_REGISTER(CVRegENV, 30011)
+CV_REGISTER(CVRegCMDLN, 30012)
 
-CV_REGISTER(NONE, 0)
-CV_REGISTER(AL, 1)
-CV_REGISTER(CL, 2)
-CV_REGISTER(DL, 3)
-CV_REGISTER(BL, 4)
-CV_REGISTER(AH, 5)
-CV_REGISTER(CH, 6)
-CV_REGISTER(DH, 7)
-CV_REGISTER(BH, 8)
-CV_REGISTER(AX, 9)
-CV_REGISTER(CX, 10)
-CV_REGISTER(DX, 11)
-CV_REGISTER(BX, 12)
-CV_REGISTER(SP, 13)
-CV_REGISTER(BP, 14)
-CV_REGISTER(SI, 15)
-CV_REGISTER(DI, 16)
-CV_REGISTER(EAX, 17)
-CV_REGISTER(ECX, 18)
-CV_REGISTER(EDX, 19)
-CV_REGISTER(EBX, 20)
-CV_REGISTER(ESP, 21)
-CV_REGISTER(EBP, 22)
-CV_REGISTER(ESI, 23)
-CV_REGISTER(EDI, 24)
-CV_REGISTER(ES, 25)
-CV_REGISTER(CS, 26)
-CV_REGISTER(SS, 27)
-CV_REGISTER(DS, 28)
-CV_REGISTER(FS, 29)
-CV_REGISTER(GS, 30)
-CV_REGISTER(IP, 31)
-CV_REGISTER(FLAGS, 32)
-CV_REGISTER(EIP, 33)
-CV_REGISTER(EFLAGS, 34)
-CV_REGISTER(TEMP, 40)
-CV_REGISTER(TEMPH, 41)
-CV_REGISTER(QUOTE, 42)
-CV_REGISTER(PCDR3, 43)
-CV_REGISTER(PCDR4, 44)
-CV_REGISTER(PCDR5, 45)
-CV_REGISTER(PCDR6, 46)
-CV_REGISTER(PCDR7, 47)
-CV_REGISTER(CR0, 80)
-CV_REGISTER(CR1, 81)
-CV_REGISTER(CR2, 82)
-CV_REGISTER(CR3, 83)
-CV_REGISTER(CR4, 84)
-CV_REGISTER(DR0, 90)
-CV_REGISTER(DR1, 91)
-CV_REGISTER(DR2, 92)
-CV_REGISTER(DR3, 93)
-CV_REGISTER(DR4, 94)
-CV_REGISTER(DR5, 95)
-CV_REGISTER(DR6, 96)
-CV_REGISTER(DR7, 97)
-CV_REGISTER(GDTR, 110)
-CV_REGISTER(GDTL, 111)
-CV_REGISTER(IDTR, 112)
-CV_REGISTER(IDTL, 113)
-CV_REGISTER(LDTR, 114)
-CV_REGISTER(TR, 115)
+CV_REGISTER(CVRegNONE, 0)
+CV_REGISTER(CVRegAL, 1)
+CV_REGISTER(CVRegCL, 2)
+CV_REGISTER(CVRegDL, 3)
+CV_REGISTER(CVRegBL, 4)
+CV_REGISTER(CVRegAH, 5)
+CV_REGISTER(CVRegCH, 6)
+CV_REGISTER(CVRegDH, 7)
+CV_REGISTER(CVRegBH, 8)
+CV_REGISTER(CVRegAX, 9)
+CV_REGISTER(CVRegCX, 10)
+CV_REGISTER(CVRegDX, 11)
+CV_REGISTER(CVRegBX, 12)
+CV_REGISTER(CVRegSP, 13)
+CV_REGISTER(CVRegBP, 14)
+CV_REGISTER(CVRegSI, 15)
+CV_REGISTER(CVRegDI, 16)
+CV_REGISTER(CVRegEAX, 17)
+CV_REGISTER(CVRegECX, 18)
+CV_REGISTER(CVRegEDX, 19)
+CV_REGISTER(CVRegEBX, 20)
+CV_REGISTER(CVRegESP, 21)
+CV_REGISTER(CVRegEBP, 22)
+CV_REGISTER(CVRegESI, 23)
+CV_REGISTER(CVRegEDI, 24)
+CV_REGISTER(CVRegES, 25)
+CV_REGISTER(CVRegCS, 26)
+CV_REGISTER(CVRegSS, 27)
+CV_REGISTER(CVRegDS, 28)
+CV_REGISTER(CVRegFS, 29)
+CV_REGISTER(CVRegGS, 30)
+CV_REGISTER(CVRegIP, 31)
+CV_REGISTER(CVRegFLAGS, 32)
+CV_REGISTER(CVRegEIP, 33)
+CV_REGISTER(CVRegEFLAGS, 34)
+CV_REGISTER(CVRegTEMP, 40)
+CV_REGISTER(CVRegTEMPH, 41)
+CV_REGISTER(CVRegQUOTE, 42)
+CV_REGISTER(CVRegPCDR3, 43)
+CV_REGISTER(CVRegPCDR4, 44)
+CV_REGISTER(CVRegPCDR5, 45)
+CV_REGISTER(CVRegPCDR6, 46)
+CV_REGISTER(CVRegPCDR7, 47)
+CV_REGISTER(CVRegCR0, 80)
+CV_REGISTER(CVRegCR1, 81)
+CV_REGISTER(CVRegCR2, 82)
+CV_REGISTER(CVRegCR3, 83)
+CV_REGISTER(CVRegCR4, 84)
+CV_REGISTER(CVRegDR0, 90)
+CV_REGISTER(CVRegDR1, 91)
+CV_REGISTER(CVRegDR2, 92)
+CV_REGISTER(CVRegDR3, 93)
+CV_REGISTER(CVRegDR4, 94)
+CV_REGISTER(CVRegDR5, 95)
+CV_REGISTER(CVRegDR6, 96)
+CV_REGISTER(CVRegDR7, 97)
+CV_REGISTER(CVRegGDTR, 110)
+CV_REGISTER(CVRegGDTL, 111)
+CV_REGISTER(CVRegIDTR, 112)
+CV_REGISTER(CVRegIDTL, 113)
+CV_REGISTER(CVRegLDTR, 114)
+CV_REGISTER(CVRegTR, 115)
 
-CV_REGISTER(PSEUDO1, 116)
-CV_REGISTER(PSEUDO2, 117)
-CV_REGISTER(PSEUDO3, 118)
-CV_REGISTER(PSEUDO4, 119)
-CV_REGISTER(PSEUDO5, 120)
-CV_REGISTER(PSEUDO6, 121)
-CV_REGISTER(PSEUDO7, 122)
-CV_REGISTER(PSEUDO8, 123)
-CV_REGISTER(PSEUDO9, 124)
+CV_REGISTER(CVRegPSEUDO1, 116)
+CV_REGISTER(CVRegPSEUDO2, 117)
+CV_REGISTER(CVRegPSEUDO3, 118)
+CV_REGISTER(CVRegPSEUDO4, 119)
+CV_REGISTER(CVRegPSEUDO5, 120)
+CV_REGISTER(CVRegPSEUDO6, 121)
+CV_REGISTER(CVRegPSEUDO7, 122)
+CV_REGISTER(CVRegPSEUDO8, 123)
+CV_REGISTER(CVRegPSEUDO9, 124)
 
-CV_REGISTER(ST0, 128)
-CV_REGISTER(ST1, 129)
-CV_REGISTER(ST2, 130)
-CV_REGISTER(ST3, 131)
-CV_REGISTER(ST4, 132)
-CV_REGISTER(ST5, 133)
-CV_REGISTER(ST6, 134)
-CV_REGISTER(ST7, 135)
-CV_REGISTER(CTRL, 136)
-CV_REGISTER(STAT, 137)
-CV_REGISTER(TAG, 138)
-CV_REGISTER(FPIP, 139)
-CV_REGISTER(FPCS, 140)
-CV_REGISTER(FPDO, 141)
-CV_REGISTER(FPDS, 142)
-CV_REGISTER(ISEM, 143)
-CV_REGISTER(FPEIP, 144)
-CV_REGISTER(FPEDO, 145)
+CV_REGISTER(CVRegST0, 128)
+CV_REGISTER(CVRegST1, 129)
+CV_REGISTER(CVRegST2, 130)
+CV_REGISTER(CVRegST3, 131)
+CV_REGISTER(CVRegST4, 132)
+CV_REGISTER(CVRegST5, 133)
+CV_REGISTER(CVRegST6, 134)
+CV_REGISTER(CVRegST7, 135)
+CV_REGISTER(CVRegCTRL, 136)
+CV_REGISTER(CVRegSTAT, 137)
+CV_REGISTER(CVRegTAG, 138)
+CV_REGISTER(CVRegFPIP, 139)
+CV_REGISTER(CVRegFPCS, 140)
+CV_REGISTER(CVRegFPDO, 141)
+CV_REGISTER(CVRegFPDS, 142)
+CV_REGISTER(CVRegISEM, 143)
+CV_REGISTER(CVRegFPEIP, 144)
+CV_REGISTER(CVRegFPEDO, 145)
 
-CV_REGISTER(MM0, 146)
-CV_REGISTER(MM1, 147)
-CV_REGISTER(MM2, 148)
-CV_REGISTER(MM3, 149)
-CV_REGISTER(MM4, 150)
-CV_REGISTER(MM5, 151)
-CV_REGISTER(MM6, 152)
-CV_REGISTER(MM7, 153)
+CV_REGISTER(CVRegMM0, 146)
+CV_REGISTER(CVRegMM1, 147)
+CV_REGISTER(CVRegMM2, 148)
+CV_REGISTER(CVRegMM3, 149)
+CV_REGISTER(CVRegMM4, 150)
+CV_REGISTER(CVRegMM5, 151)
+CV_REGISTER(CVRegMM6, 152)
+CV_REGISTER(CVRegMM7, 153)
 
-CV_REGISTER(XMM0, 154)
-CV_REGISTER(XMM1, 155)
-CV_REGISTER(XMM2, 156)
-CV_REGISTER(XMM3, 157)
-CV_REGISTER(XMM4, 158)
-CV_REGISTER(XMM5, 159)
-CV_REGISTER(XMM6, 160)
-CV_REGISTER(XMM7, 161)
+CV_REGISTER(CVRegXMM0, 154)
+CV_REGISTER(CVRegXMM1, 155)
+CV_REGISTER(CVRegXMM2, 156)
+CV_REGISTER(CVRegXMM3, 157)
+CV_REGISTER(CVRegXMM4, 158)
+CV_REGISTER(CVRegXMM5, 159)
+CV_REGISTER(CVRegXMM6, 160)
+CV_REGISTER(CVRegXMM7, 161)
 
-CV_REGISTER(MXCSR, 211)
+CV_REGISTER(CVRegMXCSR, 211)
 
-CV_REGISTER(EDXEAX, 212)
+CV_REGISTER(CVRegEDXEAX, 212)
 
-CV_REGISTER(EMM0L, 220)
-CV_REGISTER(EMM1L, 221)
-CV_REGISTER(EMM2L, 222)
-CV_REGISTER(EMM3L, 223)
-CV_REGISTER(EMM4L, 224)
-CV_REGISTER(EMM5L, 225)
-CV_REGISTER(EMM6L, 226)
-CV_REGISTER(EMM7L, 227)
+CV_REGISTER(CVRegEMM0L, 220)
+CV_REGISTER(CVRegEMM1L, 221)
+CV_REGISTER(CVRegEMM2L, 222)
+CV_REGISTER(CVRegEMM3L, 223)
+CV_REGISTER(CVRegEMM4L, 224)
+CV_REGISTER(CVRegEMM5L, 225)
+CV_REGISTER(CVRegEMM6L, 226)
+CV_REGISTER(CVRegEMM7L, 227)
 
-CV_REGISTER(EMM0H, 228)
-CV_REGISTER(EMM1H, 229)
-CV_REGISTER(EMM2H, 230)
-CV_REGISTER(EMM3H, 231)
-CV_REGISTER(EMM4H, 232)
-CV_REGISTER(EMM5H, 233)
-CV_REGISTER(EMM6H, 234)
-CV_REGISTER(EMM7H, 235)
+CV_REGISTER(CVRegEMM0H, 228)
+CV_REGISTER(CVRegEMM1H, 229)
+CV_REGISTER(CVRegEMM2H, 230)
+CV_REGISTER(CVRegEMM3H, 231)
+CV_REGISTER(CVRegEMM4H, 232)
+CV_REGISTER(CVRegEMM5H, 233)
+CV_REGISTER(CVRegEMM6H, 234)
+CV_REGISTER(CVRegEMM7H, 235)
 
-CV_REGISTER(MM00, 236)
-CV_REGISTER(MM01, 237)
-CV_REGISTER(MM10, 238)
-CV_REGISTER(MM11, 239)
-CV_REGISTER(MM20, 240)
-CV_REGISTER(MM21, 241)
-CV_REGISTER(MM30, 242)
-CV_REGISTER(MM31, 243)
-CV_REGISTER(MM40, 244)
-CV_REGISTER(MM41, 245)
-CV_REGISTER(MM50, 246)
-CV_REGISTER(MM51, 247)
-CV_REGISTER(MM60, 248)
-CV_REGISTER(MM61, 249)
-CV_REGISTER(MM70, 250)
-CV_REGISTER(MM71, 251)
+CV_REGISTER(CVRegMM00, 236)
+CV_REGISTER(CVRegMM01, 237)
+CV_REGISTER(CVRegMM10, 238)
+CV_REGISTER(CVRegMM11, 239)
+CV_REGISTER(CVRegMM20, 240)
+CV_REGISTER(CVRegMM21, 241)
+CV_REGISTER(CVRegMM30, 242)
+CV_REGISTER(CVRegMM31, 243)
+CV_REGISTER(CVRegMM40, 244)
+CV_REGISTER(CVRegMM41, 245)
+CV_REGISTER(CVRegMM50, 246)
+CV_REGISTER(CVRegMM51, 247)
+CV_REGISTER(CVRegMM60, 248)
+CV_REGISTER(CVRegMM61, 249)
+CV_REGISTER(CVRegMM70, 250)
+CV_REGISTER(CVRegMM71, 251)
 
-CV_REGISTER(BND0, 396)
-CV_REGISTER(BND1, 397)
-CV_REGISTER(BND2, 398)
+CV_REGISTER(CVRegBND0, 396)
+CV_REGISTER(CVRegBND1, 397)
+CV_REGISTER(CVRegBND2, 398)
 
 
-CV_REGISTER(XMM8, 252)
-CV_REGISTER(XMM9, 253)
-CV_REGISTER(XMM10, 254)
-CV_REGISTER(XMM11, 255)
-CV_REGISTER(XMM12, 256)
-CV_REGISTER(XMM13, 257)
-CV_REGISTER(XMM14, 258)
-CV_REGISTER(XMM15, 259)
+CV_REGISTER(CVRegXMM8, 252)
+CV_REGISTER(CVRegXMM9, 253)
+CV_REGISTER(CVRegXMM10, 254)
+CV_REGISTER(CVRegXMM11, 255)
+CV_REGISTER(CVRegXMM12, 256)
+CV_REGISTER(CVRegXMM13, 257)
+CV_REGISTER(CVRegXMM14, 258)
+CV_REGISTER(CVRegXMM15, 259)
 
 
-CV_REGISTER(SIL, 324)
-CV_REGISTER(DIL, 325)
-CV_REGISTER(BPL, 326)
-CV_REGISTER(SPL, 327)
+CV_REGISTER(CVRegSIL, 324)
+CV_REGISTER(CVRegDIL, 325)
+CV_REGISTER(CVRegBPL, 326)
+CV_REGISTER(CVRegSPL, 327)
 
-CV_REGISTER(RAX, 328)
-CV_REGISTER(RBX, 329)
-CV_REGISTER(RCX, 330)
-CV_REGISTER(RDX, 331)
-CV_REGISTER(RSI, 332)
-CV_REGISTER(RDI, 333)
-CV_REGISTER(RBP, 334)
-CV_REGISTER(RSP, 335)
+CV_REGISTER(CVRegRAX, 328)
+CV_REGISTER(CVRegRBX, 329)
+CV_REGISTER(CVRegRCX, 330)
+CV_REGISTER(CVRegRDX, 331)
+CV_REGISTER(CVRegRSI, 332)
+CV_REGISTER(CVRegRDI, 333)
+CV_REGISTER(CVRegRBP, 334)
+CV_REGISTER(CVRegRSP, 335)
 
-CV_REGISTER(R8, 336)
-CV_REGISTER(R9, 337)
-CV_REGISTER(R10, 338)
-CV_REGISTER(R11, 339)
-CV_REGISTER(R12, 340)
-CV_REGISTER(R13, 341)
-CV_REGISTER(R14, 342)
-CV_REGISTER(R15, 343)
+CV_REGISTER(CVRegR8, 336)
+CV_REGISTER(CVRegR9, 337)
+CV_REGISTER(CVRegR10, 338)
+CV_REGISTER(CVRegR11, 339)
+CV_REGISTER(CVRegR12, 340)
+CV_REGISTER(CVRegR13, 341)
+CV_REGISTER(CVRegR14, 342)
+CV_REGISTER(CVRegR15, 343)
 
-CV_REGISTER(R8B, 344)
-CV_REGISTER(R9B, 345)
-CV_REGISTER(R10B, 346)
-CV_REGISTER(R11B, 347)
-CV_REGISTER(R12B, 348)
-CV_REGISTER(R13B, 349)
-CV_REGISTER(R14B, 350)
-CV_REGISTER(R15B, 351)
+CV_REGISTER(CVRegR8B, 344)
+CV_REGISTER(CVRegR9B, 345)
+CV_REGISTER(CVRegR10B, 346)
+CV_REGISTER(CVRegR11B, 347)
+CV_REGISTER(CVRegR12B, 348)
+CV_REGISTER(CVRegR13B, 349)
+CV_REGISTER(CVRegR14B, 350)
+CV_REGISTER(CVRegR15B, 351)
 
-CV_REGISTER(R8W, 352)
-CV_REGISTER(R9W, 353)
-CV_REGISTER(R10W, 354)
-CV_REGISTER(R11W, 355)
-CV_REGISTER(R12W, 356)
-CV_REGISTER(R13W, 357)
-CV_REGISTER(R14W, 358)
-CV_REGISTER(R15W, 359)
+CV_REGISTER(CVRegR8W, 352)
+CV_REGISTER(CVRegR9W, 353)
+CV_REGISTER(CVRegR10W, 354)
+CV_REGISTER(CVRegR11W, 355)
+CV_REGISTER(CVRegR12W, 356)
+CV_REGISTER(CVRegR13W, 357)
+CV_REGISTER(CVRegR14W, 358)
+CV_REGISTER(CVRegR15W, 359)
 
-CV_REGISTER(R8D, 360)
-CV_REGISTER(R9D, 361)
-CV_REGISTER(R10D, 362)
-CV_REGISTER(R11D, 363)
-CV_REGISTER(R12D, 364)
-CV_REGISTER(R13D, 365)
-CV_REGISTER(R14D, 366)
-CV_REGISTER(R15D, 367)
+CV_REGISTER(CVRegR8D, 360)
+CV_REGISTER(CVRegR9D, 361)
+CV_REGISTER(CVRegR10D, 362)
+CV_REGISTER(CVRegR11D, 363)
+CV_REGISTER(CVRegR12D, 364)
+CV_REGISTER(CVRegR13D, 365)
+CV_REGISTER(CVRegR14D, 366)
+CV_REGISTER(CVRegR15D, 367)
 
 
 // cvconst.h defines both CV_REG_YMM0 (252) and CV_AMD64_YMM0 (368). Keep the
 // original prefix to distinguish them.
 
-CV_REGISTER(AMD64_YMM0, 368)
-CV_REGISTER(AMD64_YMM1, 369)
-CV_REGISTER(AMD64_YMM2, 370)
-CV_REGISTER(AMD64_YMM3, 371)
-CV_REGISTER(AMD64_YMM4, 372)
-CV_REGISTER(AMD64_YMM5, 373)
-CV_REGISTER(AMD64_YMM6, 374)
-CV_REGISTER(AMD64_YMM7, 375)
-CV_REGISTER(AMD64_YMM8, 376)
-CV_REGISTER(AMD64_YMM9, 377)
-CV_REGISTER(AMD64_YMM10, 378)
-CV_REGISTER(AMD64_YMM11, 379)
-CV_REGISTER(AMD64_YMM12, 380)
-CV_REGISTER(AMD64_YMM13, 381)
-CV_REGISTER(AMD64_YMM14, 382)
-CV_REGISTER(AMD64_YMM15, 383)
+CV_REGISTER(CVRegAMD64_YMM0, 368)
+CV_REGISTER(CVRegAMD64_YMM1, 369)
+CV_REGISTER(CVRegAMD64_YMM2, 370)
+CV_REGISTER(CVRegAMD64_YMM3, 371)
+CV_REGISTER(CVRegAMD64_YMM4, 372)
+CV_REGISTER(CVRegAMD64_YMM5, 373)
+CV_REGISTER(CVRegAMD64_YMM6, 374)
+CV_REGISTER(CVRegAMD64_YMM7, 375)
+CV_REGISTER(CVRegAMD64_YMM8, 376)
+CV_REGISTER(CVRegAMD64_YMM9, 377)
+CV_REGISTER(CVRegAMD64_YMM10, 378)
+CV_REGISTER(CVRegAMD64_YMM11, 379)
+CV_REGISTER(CVRegAMD64_YMM12, 380)
+CV_REGISTER(CVRegAMD64_YMM13, 381)
+CV_REGISTER(CVRegAMD64_YMM14, 382)
+CV_REGISTER(CVRegAMD64_YMM15, 383)
diff --git a/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def b/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
index 41c5380..b5f1cc0 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
+++ b/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
@@ -143,7 +143,6 @@
 CV_SYMBOL(S_MANMANYREG    , 0x1121)
 CV_SYMBOL(S_MANREGREL     , 0x1122)
 CV_SYMBOL(S_MANMANYREG2   , 0x1123)
-CV_SYMBOL(S_UNAMESPACE    , 0x1124)
 CV_SYMBOL(S_DATAREF       , 0x1126)
 CV_SYMBOL(S_ANNOTATIONREF , 0x1128)
 CV_SYMBOL(S_TOKENREF      , 0x1129)
@@ -255,6 +254,7 @@
 SYMBOL_RECORD(S_LTHREAD32     , 0x1112, ThreadLocalDataSym)
 SYMBOL_RECORD_ALIAS(S_GTHREAD32     , 0x1113, GlobalTLS, ThreadLocalDataSym)
 
+SYMBOL_RECORD(S_UNAMESPACE    , 0x1124, UsingNamespaceSym)
 
 #undef CV_SYMBOL
 #undef SYMBOL_RECORD
diff --git a/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewTypes.def b/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewTypes.def
index 69ce960..e9a479d 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewTypes.def
+++ b/linux-x64/clang/include/llvm/DebugInfo/CodeView/CodeViewTypes.def
@@ -87,6 +87,8 @@
 
 TYPE_RECORD(LF_METHODLIST, 0x1206, MethodOverloadList)
 
+TYPE_RECORD(LF_PRECOMP, 0x1509, Precomp)
+TYPE_RECORD(LF_ENDPRECOMP, 0x0014, EndPrecomp)
 
 // 16 bit type records.
 CV_TYPE(LF_MODIFIER_16t, 0x0001)
@@ -106,7 +108,6 @@
 CV_TYPE(LF_DIMARRAY_16t, 0x0011)
 CV_TYPE(LF_VFTPATH_16t, 0x0012)
 CV_TYPE(LF_PRECOMP_16t, 0x0013)
-CV_TYPE(LF_ENDPRECOMP, 0x0014)
 CV_TYPE(LF_OEM_16t, 0x0015)
 CV_TYPE(LF_TYPESERVER_ST, 0x0016)
 
@@ -181,7 +182,6 @@
 CV_TYPE(LF_ST_MAX, 0x1500)
 CV_TYPE(LF_TYPESERVER, 0x1501)
 CV_TYPE(LF_DIMARRAY, 0x1508)
-CV_TYPE(LF_PRECOMP, 0x1509)
 CV_TYPE(LF_ALIAS, 0x150a)
 CV_TYPE(LF_DEFARG, 0x150b)
 CV_TYPE(LF_FRIENDFCN, 0x150c)
diff --git a/linux-x64/clang/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h b/linux-x64/clang/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h
index 16d7869..383f7dd 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h
@@ -26,7 +26,7 @@
 namespace llvm {
 namespace codeview {
 
-/// \brief Provides amortized O(1) random access to a CodeView type stream.
+/// Provides amortized O(1) random access to a CodeView type stream.
 /// Normally to access a type from a type stream, you must know its byte
 /// offset into the type stream, because type records are variable-lengthed.
 /// However, this is not the way we prefer to access them.  For example, given
diff --git a/linux-x64/clang/include/llvm/DebugInfo/CodeView/SymbolRecord.h b/linux-x64/clang/include/llvm/DebugInfo/CodeView/SymbolRecord.h
index cf267f2..9330682 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/CodeView/SymbolRecord.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/CodeView/SymbolRecord.h
@@ -942,6 +942,19 @@
   uint32_t RecordOffset;
 };
 
+// S_UNAMESPACE
+class UsingNamespaceSym : public SymbolRecord {
+public:
+  explicit UsingNamespaceSym(SymbolRecordKind Kind) : SymbolRecord(Kind) {}
+  explicit UsingNamespaceSym(uint32_t RecordOffset)
+      : SymbolRecord(SymbolRecordKind::RegRelativeSym),
+        RecordOffset(RecordOffset) {}
+
+  StringRef Name;
+
+  uint32_t RecordOffset;
+};
+
 // S_ANNOTATION
 
 using CVSymbol = CVRecord<SymbolKind>;
diff --git a/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeHashing.h b/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeHashing.h
index 7413375..1f732d2 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeHashing.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeHashing.h
@@ -58,7 +58,10 @@
   }
 };
 
-enum class GlobalTypeHashAlg : uint16_t { SHA1 = 0 };
+enum class GlobalTypeHashAlg : uint16_t {
+  SHA1 = 0, // standard 20-byte SHA1 hash
+  SHA1_8    // last 8-bytes of standard SHA1 hash
+};
 
 /// A globally hashed type represents a hash value that is sufficient to
 /// uniquely identify a record across multiple type streams or type sequences.
@@ -77,10 +80,10 @@
   GloballyHashedType(StringRef H)
       : GloballyHashedType(ArrayRef<uint8_t>(H.bytes_begin(), H.bytes_end())) {}
   GloballyHashedType(ArrayRef<uint8_t> H) {
-    assert(H.size() == 20);
-    ::memcpy(Hash.data(), H.data(), 20);
+    assert(H.size() == 8);
+    ::memcpy(Hash.data(), H.data(), 8);
   }
-  std::array<uint8_t, 20> Hash;
+  std::array<uint8_t, 8> Hash;
 
   /// Given a sequence of bytes representing a record, compute a global hash for
   /// this record.  Due to the nature of global hashes incorporating the hashes
diff --git a/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeRecord.h b/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeRecord.h
index 55f2822..61ebdf8 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeRecord.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeRecord.h
@@ -896,6 +896,33 @@
   TypeIndex ContinuationIndex;
 };
 
+// LF_PRECOMP
+class PrecompRecord : public TypeRecord {
+public:
+  PrecompRecord() = default;
+  explicit PrecompRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}
+
+  uint32_t getStartTypeIndex() const { return StartTypeIndex; }
+  uint32_t getTypesCount() const { return TypesCount; }
+  uint32_t getSignature() const { return Signature; }
+  StringRef getPrecompFilePath() const { return PrecompFilePath; }
+
+  uint32_t StartTypeIndex;
+  uint32_t TypesCount;
+  uint32_t Signature;
+  StringRef PrecompFilePath;
+};
+
+// LF_ENDPRECOMP
+class EndPrecompRecord : public TypeRecord {
+public:
+  EndPrecompRecord() = default;
+  explicit EndPrecompRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}
+
+  uint32_t getSignature() const { return Signature; }
+
+  uint32_t Signature;
+};
 } // end namespace codeview
 } // end namespace llvm
 
diff --git a/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h b/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
index 59e216a..583740d 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
@@ -23,7 +23,7 @@
 class GlobalTypeTableBuilder;
 class MergingTypeTableBuilder;
 
-/// \brief Merge one set of type records into another.  This method assumes
+/// Merge one set of type records into another.  This method assumes
 /// that all records are type records, and there are no Id records present.
 ///
 /// \param Dest The table to store the re-written type records into.
@@ -40,7 +40,7 @@
                        SmallVectorImpl<TypeIndex> &SourceToDest,
                        const CVTypeArray &Types);
 
-/// \brief Merge one set of id records into another.  This method assumes
+/// Merge one set of id records into another.  This method assumes
 /// that all records are id records, and there are no Type records present.
 /// However, since Id records can refer back to Type records, this method
 /// assumes that the referenced type records have also been merged into
@@ -65,7 +65,7 @@
                      SmallVectorImpl<TypeIndex> &SourceToDest,
                      const CVTypeArray &Ids);
 
-/// \brief Merge a unified set of type and id records, splitting them into
+/// Merge a unified set of type and id records, splitting them into
 /// separate output streams.
 ///
 /// \param DestIds The table to store the re-written id records into.
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DIContext.h b/linux-x64/clang/include/llvm/DebugInfo/DIContext.h
index f89eb34..bbdd5e0 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DIContext.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DIContext.h
@@ -154,6 +154,8 @@
 struct DIDumpOptions {
   unsigned DumpType = DIDT_All;
   unsigned RecurseDepth = -1U;
+  uint16_t Version = 0; // DWARF version to assume when extracting.
+  uint8_t AddrSize = 4; // Address byte size to assume when extracting.
   bool ShowAddresses = true;
   bool ShowChildren = false;
   bool ShowParents = false;
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
index 27f11ca..1d44872 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
@@ -56,12 +56,6 @@
     /// in this Accelerator Entry.
     virtual Optional<uint64_t> getCUOffset() const = 0;
 
-    /// Returns the Section Offset of the Debug Info Entry associated with this
-    /// Accelerator Entry or None if the DIE offset is not recorded in this
-    /// Accelerator Entry. The returned offset is relative to the start of the
-    /// Section containing the DIE.
-    virtual Optional<uint64_t> getDIESectionOffset() const = 0;
-
     /// Returns the Tag of the Debug Info Entry associated with this
     /// Accelerator Entry or None if the Tag is not recorded in this
     /// Accelerator Entry.
@@ -130,7 +124,13 @@
 
   public:
     Optional<uint64_t> getCUOffset() const override;
-    Optional<uint64_t> getDIESectionOffset() const override;
+
+    /// Returns the Section Offset of the Debug Info Entry associated with this
+    /// Accelerator Entry or None if the DIE offset is not recorded in this
+    /// Accelerator Entry. The returned offset is relative to the start of the
+    /// Section containing the DIE.
+    Optional<uint64_t> getDIESectionOffset() const;
+
     Optional<dwarf::Tag> getTag() const override;
 
     /// Returns the value of the Atom in this Accelerator Entry, if the Entry
@@ -239,6 +239,7 @@
 
 public:
   class NameIndex;
+  class NameIterator;
   class ValueIterator;
 
   /// Dwarf 5 Name Index header.
@@ -283,6 +284,10 @@
 
     Entry(const NameIndex &NameIdx, const Abbrev &Abbr);
 
+  public:
+    Optional<uint64_t> getCUOffset() const override;
+    Optional<dwarf::Tag> getTag() const override { return tag(); }
+
     /// Returns the Index into the Compilation Unit list of the owning Name
     /// Index or None if this Accelerator Entry does not have an associated
     /// Compilation Unit. It is up to the user to verify that the returned Index
@@ -293,11 +298,6 @@
     /// DW_IDX_compile_unit attribute.
     Optional<uint64_t> getCUIndex() const;
 
-  public:
-    Optional<uint64_t> getCUOffset() const override;
-    Optional<uint64_t> getDIESectionOffset() const override;
-    Optional<dwarf::Tag> getTag() const override { return tag(); }
-
     /// .debug_names-specific getter, which always succeeds (DWARF v5 index
     /// entries always have a tag).
     dwarf::Tag tag() const { return Abbr->Tag; }
@@ -319,7 +319,6 @@
     friend class ValueIterator;
   };
 
-private:
   /// Error returned by NameIndex::getEntry to report it has reached the end of
   /// the entry list.
   class SentinelError : public ErrorInfo<SentinelError> {
@@ -330,6 +329,7 @@
     std::error_code convertToErrorCode() const override;
   };
 
+private:
   /// DenseMapInfo for struct Abbrev.
   struct AbbrevMapInfo {
     static Abbrev getEmptyKey();
@@ -351,9 +351,34 @@
 public:
   /// A single entry in the Name Table (Dwarf 5 sect. 6.1.1.4.6) of the Name
   /// Index.
-  struct NameTableEntry {
-    uint32_t StringOffset; ///< Offset of the name of the described entities.
-    uint32_t EntryOffset;  ///< Offset of the first Entry in the list.
+  class NameTableEntry {
+    DataExtractor StrData;
+
+    uint32_t Index;
+    uint32_t StringOffset;
+    uint32_t EntryOffset;
+
+  public:
+    NameTableEntry(const DataExtractor &StrData, uint32_t Index,
+                   uint32_t StringOffset, uint32_t EntryOffset)
+        : StrData(StrData), Index(Index), StringOffset(StringOffset),
+          EntryOffset(EntryOffset) {}
+
+    /// Return the index of this name in the parent Name Index.
+    uint32_t getIndex() const { return Index; }
+
+    /// Returns the offset of the name of the described entities.
+    uint32_t getStringOffset() const { return StringOffset; }
+
+    /// Return the string referenced by this name table entry or nullptr if the
+    /// string offset is not valid.
+    const char *getString() const {
+      uint32_t Off = StringOffset;
+      return StrData.getCStr(&Off);
+    }
+
+    /// Returns the offset of the first Entry in the list.
+    uint32_t getEntryOffset() const { return EntryOffset; }
   };
 
   /// Represents a single accelerator table within the Dwarf 5 .debug_names
@@ -373,14 +398,12 @@
     uint32_t EntryOffsetsBase;
     uint32_t EntriesBase;
 
-    Expected<Entry> getEntry(uint32_t *Offset) const;
-
     void dumpCUs(ScopedPrinter &W) const;
     void dumpLocalTUs(ScopedPrinter &W) const;
     void dumpForeignTUs(ScopedPrinter &W) const;
     void dumpAbbreviations(ScopedPrinter &W) const;
     bool dumpEntry(ScopedPrinter &W, uint32_t *Offset) const;
-    void dumpName(ScopedPrinter &W, uint32_t Index,
+    void dumpName(ScopedPrinter &W, const NameTableEntry &NTE,
                   Optional<uint32_t> Hash) const;
     void dumpBucket(ScopedPrinter &W, uint32_t Bucket) const;
 
@@ -429,6 +452,14 @@
       return Abbrevs;
     }
 
+    Expected<Entry> getEntry(uint32_t *Offset) const;
+
+    /// Look up all entries in this Name Index matching \c Key.
+    iterator_range<ValueIterator> equal_range(StringRef Key) const;
+
+    NameIterator begin() const { return NameIterator(this, 1); }
+    NameIterator end() const { return NameIterator(this, getNameCount() + 1); }
+
     llvm::Error extract();
     uint32_t getUnitOffset() const { return Base; }
     uint32_t getNextUnitOffset() const { return Base + 4 + Hdr.UnitLength; }
@@ -444,6 +475,10 @@
     /// "NameIndices" vector in the Accelerator section.
     const NameIndex *CurrentIndex = nullptr;
 
+    /// Whether this is a local iterator (searches in CurrentIndex only) or not
+    /// (searches all name indices).
+    bool IsLocal;
+
     Optional<Entry> CurrentEntry;
     unsigned DataOffset = 0; ///< Offset into the section.
     std::string Key;         ///< The Key we are searching for.
@@ -464,6 +499,10 @@
     /// Indexes in the section in sequence.
     ValueIterator(const DWARFDebugNames &AccelTable, StringRef Key);
 
+    /// Create a "begin" iterator for looping over all entries in a specific
+    /// Name Index. Other indices in the section will not be visited.
+    ValueIterator(const NameIndex &NI, StringRef Key);
+
     /// End marker.
     ValueIterator() = default;
 
@@ -486,8 +525,55 @@
     }
   };
 
+  class NameIterator {
+
+    /// The Name Index we are iterating through.
+    const NameIndex *CurrentIndex;
+
+    /// The current name in the Name Index.
+    uint32_t CurrentName;
+
+    void next() {
+      assert(CurrentName <= CurrentIndex->getNameCount());
+      ++CurrentName;
+    }
+
+  public:
+    using iterator_category = std::input_iterator_tag;
+    using value_type = NameTableEntry;
+    using difference_type = uint32_t;
+    using pointer = NameTableEntry *;
+    using reference = NameTableEntry; // We return entries by value.
+
+    /// Creates an iterator whose initial position is name CurrentName in
+    /// CurrentIndex.
+    NameIterator(const NameIndex *CurrentIndex, uint32_t CurrentName)
+        : CurrentIndex(CurrentIndex), CurrentName(CurrentName) {}
+
+    NameTableEntry operator*() const {
+      return CurrentIndex->getNameTableEntry(CurrentName);
+    }
+    NameIterator &operator++() {
+      next();
+      return *this;
+    }
+    NameIterator operator++(int) {
+      NameIterator I = *this;
+      next();
+      return I;
+    }
+
+    friend bool operator==(const NameIterator &A, const NameIterator &B) {
+      return A.CurrentIndex == B.CurrentIndex && A.CurrentName == B.CurrentName;
+    }
+    friend bool operator!=(const NameIterator &A, const NameIterator &B) {
+      return !(A == B);
+    }
+  };
+
 private:
   SmallVector<NameIndex, 0> NameIndices;
+  DenseMap<uint32_t, const NameIndex *> CUToNameIndex;
 
 public:
   DWARFDebugNames(const DWARFDataExtractor &AccelSection,
@@ -503,6 +589,10 @@
   using const_iterator = SmallVector<NameIndex, 0>::const_iterator;
   const_iterator begin() const { return NameIndices.begin(); }
   const_iterator end() const { return NameIndices.end(); }
+
+  /// Return the Name Index covering the compile unit at CUOffset, or nullptr if
+  /// there is no Name Index covering that unit.
+  const NameIndex *getCUNameIndex(uint32_t CUOffset);
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
index a18adf8..27d56d7 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
@@ -18,20 +18,20 @@
 class DWARFCompileUnit : public DWARFUnit {
 public:
   DWARFCompileUnit(DWARFContext &Context, const DWARFSection &Section,
+                   const DWARFUnitHeader &Header,
                    const DWARFDebugAbbrev *DA, const DWARFSection *RS,
                    StringRef SS, const DWARFSection &SOS,
                    const DWARFSection *AOS, const DWARFSection &LS, bool LE,
-                   bool IsDWO, const DWARFUnitSectionBase &UnitSection,
-                   const DWARFUnitIndex::Entry *Entry)
-      : DWARFUnit(Context, Section, DA, RS, SS, SOS, AOS, LS, LE, IsDWO,
-                  UnitSection, Entry) {}
+                   bool IsDWO, const DWARFUnitVector &UnitVector)
+      : DWARFUnit(Context, Section, Header, DA, RS, SS, SOS, AOS, LS, LE, IsDWO,
+                  UnitVector) {}
 
-  // VTable anchor.
+  /// VTable anchor.
   ~DWARFCompileUnit() override;
-
-  void dump(raw_ostream &OS, DIDumpOptions DumpOpts);
-
-  static const DWARFSectionKind Section = DW_SECT_INFO;
+  /// Dump this compile unit to \p OS.
+  void dump(raw_ostream &OS, DIDumpOptions DumpOpts) override;
+  /// Enable LLVM-style RTTI.
+  static bool classof(const DWARFUnit *U) { return !U->isTypeUnit(); }
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFContext.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFContext.h
index e842cf2..fc398bd 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFContext.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFContext.h
@@ -57,8 +57,7 @@
 /// This data structure is the top level entity that deals with dwarf debug
 /// information parsing. The actual data is supplied through DWARFObj.
 class DWARFContext : public DIContext {
-  DWARFUnitSection<DWARFCompileUnit> CUs;
-  std::deque<DWARFUnitSection<DWARFTypeUnit>> TUs;
+  DWARFUnitVector NormalUnits;
   std::unique_ptr<DWARFUnitIndex> CUIndex;
   std::unique_ptr<DWARFGdbIndex> GdbIndex;
   std::unique_ptr<DWARFUnitIndex> TUIndex;
@@ -75,8 +74,7 @@
   std::unique_ptr<AppleAcceleratorTable> AppleNamespaces;
   std::unique_ptr<AppleAcceleratorTable> AppleObjC;
 
-  DWARFUnitSection<DWARFCompileUnit> DWOCUs;
-  std::deque<DWARFUnitSection<DWARFTypeUnit>> DWOTUs;
+  DWARFUnitVector DWOUnits;
   std::unique_ptr<DWARFDebugAbbrev> AbbrevDWO;
   std::unique_ptr<DWARFDebugLocDWO> LocDWO;
 
@@ -95,22 +93,17 @@
   std::unique_ptr<MCRegisterInfo> RegInfo;
 
   /// Read compile units from the debug_info section (if necessary)
-  /// and store them in CUs.
-  void parseCompileUnits();
-
-  /// Read type units from the debug_types sections (if necessary)
-  /// and store them in TUs.
-  void parseTypeUnits();
+  /// and type units from the debug_types sections (if necessary)
+  /// and store them in NormalUnits.
+  void parseNormalUnits();
 
   /// Read compile units from the debug_info.dwo section (if necessary)
-  /// and store them in DWOCUs.
-  void parseDWOCompileUnits();
+  /// and type units from the debug_types.dwo section (if necessary)
+  /// and store them in DWOUnits.
+  /// If \p Lazy is true, set up to parse but don't actually parse them.
+  enum { EagerParse = false, LazyParse = true };
+  void parseDWOUnits(bool Lazy = false);
 
-  /// Read type units from the debug_types.dwo section (if necessary)
-  /// and store them in DWOTUs.
-  void parseDWOTypeUnits();
-
-protected:
   std::unique_ptr<const DWARFObject> DObj;
 
 public:
@@ -139,72 +132,102 @@
 
   bool verify(raw_ostream &OS, DIDumpOptions DumpOpts = {}) override;
 
-  using cu_iterator_range = DWARFUnitSection<DWARFCompileUnit>::iterator_range;
-  using tu_iterator_range = DWARFUnitSection<DWARFTypeUnit>::iterator_range;
-  using tu_section_iterator_range = iterator_range<decltype(TUs)::iterator>;
+  using unit_iterator_range = DWARFUnitVector::iterator_range;
 
-  /// Get compile units in this context.
-  cu_iterator_range compile_units() {
-    parseCompileUnits();
-    return cu_iterator_range(CUs.begin(), CUs.end());
+  /// Get units from .debug_info in this context.
+  unit_iterator_range info_section_units() {
+    parseNormalUnits();
+    return unit_iterator_range(NormalUnits.begin(),
+                               NormalUnits.begin() +
+                                   NormalUnits.getNumInfoUnits());
   }
 
+  /// Get units from .debug_types in this context.
+  unit_iterator_range types_section_units() {
+    parseNormalUnits();
+    return unit_iterator_range(
+        NormalUnits.begin() + NormalUnits.getNumInfoUnits(), NormalUnits.end());
+  }
+
+  /// Get compile units in this context.
+  unit_iterator_range compile_units() { return info_section_units(); }
+
   /// Get type units in this context.
-  tu_section_iterator_range type_unit_sections() {
-    parseTypeUnits();
-    return tu_section_iterator_range(TUs.begin(), TUs.end());
+  unit_iterator_range type_units() { return types_section_units(); }
+
+  /// Get all normal compile/type units in this context.
+  unit_iterator_range normal_units() {
+    parseNormalUnits();
+    return unit_iterator_range(NormalUnits.begin(), NormalUnits.end());
+  }
+
+  /// Get units from .debug_info..dwo in the DWO context.
+  unit_iterator_range dwo_info_section_units() {
+    parseDWOUnits();
+    return unit_iterator_range(DWOUnits.begin(),
+                               DWOUnits.begin() + DWOUnits.getNumInfoUnits());
+  }
+
+  /// Get units from .debug_types.dwo in the DWO context.
+  unit_iterator_range dwo_types_section_units() {
+    parseDWOUnits();
+    return unit_iterator_range(DWOUnits.begin() + DWOUnits.getNumInfoUnits(),
+                               DWOUnits.end());
   }
 
   /// Get compile units in the DWO context.
-  cu_iterator_range dwo_compile_units() {
-    parseDWOCompileUnits();
-    return cu_iterator_range(DWOCUs.begin(), DWOCUs.end());
-  }
+  unit_iterator_range dwo_compile_units() { return dwo_info_section_units(); }
 
   /// Get type units in the DWO context.
-  tu_section_iterator_range dwo_type_unit_sections() {
-    parseDWOTypeUnits();
-    return tu_section_iterator_range(DWOTUs.begin(), DWOTUs.end());
+  unit_iterator_range dwo_type_units() { return dwo_types_section_units(); }
+
+  /// Get all units in the DWO context.
+  unit_iterator_range dwo_units() {
+    parseDWOUnits();
+    return unit_iterator_range(DWOUnits.begin(), DWOUnits.end());
   }
 
   /// Get the number of compile units in this context.
   unsigned getNumCompileUnits() {
-    parseCompileUnits();
-    return CUs.size();
+    parseNormalUnits();
+    return NormalUnits.getNumInfoUnits();
   }
 
-  /// Get the number of compile units in this context.
+  /// Get the number of type units in this context.
   unsigned getNumTypeUnits() {
-    parseTypeUnits();
-    return TUs.size();
+    parseNormalUnits();
+    return NormalUnits.getNumTypesUnits();
   }
 
   /// Get the number of compile units in the DWO context.
   unsigned getNumDWOCompileUnits() {
-    parseDWOCompileUnits();
-    return DWOCUs.size();
+    parseDWOUnits();
+    return DWOUnits.getNumInfoUnits();
   }
 
-  /// Get the number of compile units in the DWO context.
+  /// Get the number of type units in the DWO context.
   unsigned getNumDWOTypeUnits() {
-    parseDWOTypeUnits();
-    return DWOTUs.size();
+    parseDWOUnits();
+    return DWOUnits.getNumTypesUnits();
   }
 
-  /// Get the compile unit at the specified index for this compile unit.
-  DWARFCompileUnit *getCompileUnitAtIndex(unsigned index) {
-    parseCompileUnits();
-    return CUs[index].get();
+  /// Get the unit at the specified index.
+  DWARFUnit *getUnitAtIndex(unsigned index) {
+    parseNormalUnits();
+    return NormalUnits[index].get();
   }
 
-  /// Get the compile unit at the specified index for the DWO compile units.
-  DWARFCompileUnit *getDWOCompileUnitAtIndex(unsigned index) {
-    parseDWOCompileUnits();
-    return DWOCUs[index].get();
+  /// Get the unit at the specified index for the DWO units.
+  DWARFUnit *getDWOUnitAtIndex(unsigned index) {
+    parseDWOUnits();
+    return DWOUnits[index].get();
   }
 
   DWARFCompileUnit *getDWOCompileUnitForHash(uint64_t Hash);
 
+  /// Return the compile unit that includes an offset (relative to .debug_info).
+  DWARFCompileUnit *getCompileUnitForOffset(uint32_t Offset);
+
   /// Get a DIE given an exact offset.
   DWARFDie getDIEForOffset(uint32_t Offset);
 
@@ -259,7 +282,14 @@
   const AppleAcceleratorTable &getAppleObjC();
 
   /// Get a pointer to a parsed line table corresponding to a compile unit.
-  const DWARFDebugLine::LineTable *getLineTableForUnit(DWARFUnit *cu);
+  /// Report any parsing issues as warnings on stderr.
+  const DWARFDebugLine::LineTable *getLineTableForUnit(DWARFUnit *U);
+
+  /// Get a pointer to a parsed line table corresponding to a compile unit.
+  /// Report any recoverable parsing problems using the callback.
+  Expected<const DWARFDebugLine::LineTable *>
+  getLineTableForUnit(DWARFUnit *U,
+                      std::function<void(Error)> RecoverableErrorCallback);
 
   DataExtractor getStringExtractor() const {
     return DataExtractor(DObj->getStringSection(), false, 0);
@@ -313,10 +343,11 @@
   /// have initialized the relevant target descriptions.
   Error loadRegisterInfo(const object::ObjectFile &Obj);
 
-private:
-  /// Return the compile unit that includes an offset (relative to .debug_info).
-  DWARFCompileUnit *getCompileUnitForOffset(uint32_t Offset);
+  /// Get address size from CUs.
+  /// TODO: refactor compile_units() to make this const.
+  uint8_t getCUAddrSize();
 
+private:
   /// Return the compile unit which contains instruction with provided
   /// address.
   DWARFCompileUnit *getCompileUnitForAddress(uint64_t Address);
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
index 10e146b..1ed0875 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
@@ -51,6 +51,8 @@
   /// reflect the absolute address of this pointer.
   Optional<uint64_t> getEncodedPointer(uint32_t *Offset, uint8_t Encoding,
                                        uint64_t AbsPosOffset = 0) const;
+
+  size_t size() const { return Section == nullptr ? 0 : Section->Data.size(); }
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h
new file mode 100644
index 0000000..ffbd1b0
--- /dev/null
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h
@@ -0,0 +1,98 @@
+//===- DWARFDebugAddr.h -------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===------------------------------------------------------------------===//
+
+#ifndef LLVM_DEBUGINFO_DWARFDEBUGADDR_H
+#define LLVM_DEBUGINFO_DWARFDEBUGADDR_H
+
+#include "llvm/BinaryFormat/Dwarf.h"
+#include "llvm/DebugInfo/DIContext.h"
+#include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
+#include "llvm/Support/Errc.h"
+#include "llvm/Support/Error.h"
+#include <cstdint>
+#include <map>
+#include <vector>
+
+namespace llvm {
+
+class Error;
+class raw_ostream;
+
+/// A class representing an address table as specified in DWARF v5.
+/// The table consists of a header followed by an array of address values from
+/// .debug_addr section.
+class DWARFDebugAddrTable {
+public:
+  struct Header {
+    /// The total length of the entries for this table, not including the length
+    /// field itself.
+    uint32_t Length = 0;
+    /// The DWARF version number.
+    uint16_t Version = 5;
+    /// The size in bytes of an address on the target architecture. For
+    /// segmented addressing, this is the size of the offset portion of the
+    /// address.
+    uint8_t AddrSize;
+    /// The size in bytes of a segment selector on the target architecture.
+    /// If the target system uses a flat address space, this value is 0.
+    uint8_t SegSize = 0;
+  };
+
+private:
+  dwarf::DwarfFormat Format;
+  uint32_t HeaderOffset;
+  Header HeaderData;
+  uint32_t DataSize = 0;
+  std::vector<uint64_t> Addrs;
+
+public:
+  void clear();
+
+  /// Extract an entire table, including all addresses.
+  Error extract(DWARFDataExtractor Data, uint32_t *OffsetPtr,
+                uint16_t Version, uint8_t AddrSize,
+                std::function<void(Error)> WarnCallback);
+
+  uint32_t getHeaderOffset() const { return HeaderOffset; }
+  uint8_t getAddrSize() const { return HeaderData.AddrSize; }
+  void dump(raw_ostream &OS, DIDumpOptions DumpOpts = {}) const;
+
+  /// Return the address based on a given index.
+  Expected<uint64_t> getAddrEntry(uint32_t Index) const;
+
+  /// Return the size of the table header including the length
+  /// but not including the addresses.
+  uint8_t getHeaderSize() const {
+    switch (Format) {
+    case dwarf::DwarfFormat::DWARF32:
+      return 8; // 4 + 2 + 1 + 1
+    case dwarf::DwarfFormat::DWARF64:
+      return 16; // 12 + 2 + 1 + 1
+    }
+    llvm_unreachable("Invalid DWARF format (expected DWARF32 or DWARF64)");
+  }
+
+  /// Returns the length of this table, including the length field, or 0 if the
+  /// length has not been determined (e.g. because the table has not yet been
+  /// parsed, or there was a problem in parsing).
+  uint32_t getLength() const;
+
+  /// Verify that the given length is valid for this table.
+  bool hasValidLength() const { return getLength() != 0; }
+
+  /// Invalidate Length field to stop further processing.
+  void invalidateLength() { HeaderData.Length = 0; }
+
+  /// Returns the length of the array of addresses.
+  uint32_t getDataSize() const;
+};
+
+} // end namespace llvm
+
+#endif // LLVM_DEBUGINFO_DWARFDEBUGADDR_H
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
index c24364a..8f6ed39 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
@@ -13,9 +13,11 @@
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/DIContext.h"
+#include "llvm/DebugInfo/DWARF/DWARFCompileUnit.h"
 #include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
 #include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
 #include "llvm/DebugInfo/DWARF/DWARFRelocMap.h"
+#include "llvm/DebugInfo/DWARF/DWARFTypeUnit.h"
 #include "llvm/Support/MD5.h"
 #include <cstdint>
 #include <map>
@@ -103,6 +105,8 @@
 
     uint32_t sizeofPrologueLength() const { return isDWARF64() ? 8 : 4; }
 
+    bool totalLengthIsValid() const;
+
     /// Length of the prologue in bytes.
     uint32_t getLength() const {
       return PrologueLength + sizeofTotalLength() + sizeof(getVersion()) +
@@ -120,8 +124,8 @@
 
     void clear();
     void dump(raw_ostream &OS, DIDumpOptions DumpOptions) const;
-    bool parse(const DWARFDataExtractor &DebugLineData, uint32_t *OffsetPtr,
-               const DWARFContext &Ctx, const DWARFUnit *U = nullptr);
+    Error parse(const DWARFDataExtractor &DebugLineData, uint32_t *OffsetPtr,
+                const DWARFContext &Ctx, const DWARFUnit *U = nullptr);
   };
 
   /// Standard .debug_line state machine structure.
@@ -243,9 +247,10 @@
     void clear();
 
     /// Parse prologue and all rows.
-    bool parse(DWARFDataExtractor &DebugLineData, uint32_t *OffsetPtr,
-               const DWARFContext &Ctx, const DWARFUnit *U,
-               raw_ostream *OS = nullptr);
+    Error parse(DWARFDataExtractor &DebugLineData, uint32_t *OffsetPtr,
+                const DWARFContext &Ctx, const DWARFUnit *U,
+                std::function<void(Error)> RecoverableErrorCallback = warn,
+                raw_ostream *OS = nullptr);
 
     using RowVector = std::vector<Row>;
     using RowIter = RowVector::const_iterator;
@@ -259,14 +264,74 @@
   private:
     uint32_t findRowInSeq(const DWARFDebugLine::Sequence &Seq,
                           uint64_t Address) const;
-    Optional<StringRef> getSourceByIndex(uint64_t FileIndex,
-                                         DILineInfoSpecifier::FileLineInfoKind Kind) const;
+    Optional<StringRef>
+    getSourceByIndex(uint64_t FileIndex,
+                     DILineInfoSpecifier::FileLineInfoKind Kind) const;
   };
 
   const LineTable *getLineTable(uint32_t Offset) const;
-  const LineTable *getOrParseLineTable(DWARFDataExtractor &DebugLineData,
-                                       uint32_t Offset, const DWARFContext &C,
-                                       const DWARFUnit *U);
+  Expected<const LineTable *> getOrParseLineTable(
+      DWARFDataExtractor &DebugLineData, uint32_t Offset,
+      const DWARFContext &Ctx, const DWARFUnit *U,
+      std::function<void(Error)> RecoverableErrorCallback = warn);
+
+  /// Helper to allow for parsing of an entire .debug_line section in sequence.
+  class SectionParser {
+  public:
+    using cu_range = DWARFUnitVector::iterator_range;
+    using tu_range = DWARFUnitVector::iterator_range;
+    using LineToUnitMap = std::map<uint64_t, DWARFUnit *>;
+
+    SectionParser(DWARFDataExtractor &Data, const DWARFContext &C, cu_range CUs,
+                  tu_range TUs);
+
+    /// Get the next line table from the section. Report any issues via the
+    /// callbacks.
+    ///
+    /// \param RecoverableErrorCallback - any issues that don't prevent further
+    /// parsing of the table will be reported through this callback.
+    /// \param UnrecoverableErrorCallback - any issues that prevent further
+    /// parsing of the table will be reported through this callback.
+    /// \param OS - if not null, the parser will print information about the
+    /// table as it parses it.
+    LineTable
+    parseNext(function_ref<void(Error)> RecoverableErrorCallback = warn,
+              function_ref<void(Error)> UnrecoverableErrorCallback = warn,
+              raw_ostream *OS = nullptr);
+
+    /// Skip the current line table and go to the following line table (if
+    /// present) immediately.
+    ///
+    /// \param ErrorCallback - report any prologue parsing issues via this
+    /// callback.
+    void skip(function_ref<void(Error)> ErrorCallback = warn);
+
+    /// Indicates if the parser has parsed as much as possible.
+    ///
+    /// \note Certain problems with the line table structure might mean that
+    /// parsing stops before the end of the section is reached.
+    bool done() const { return Done; }
+
+    /// Get the offset the parser has reached.
+    uint32_t getOffset() const { return Offset; }
+
+  private:
+    DWARFUnit *prepareToParse(uint32_t Offset);
+    void moveToNextTable(uint32_t OldOffset, const Prologue &P);
+
+    LineToUnitMap LineToUnit;
+
+    DWARFDataExtractor &DebugLineData;
+    const DWARFContext &Context;
+    uint32_t Offset = 0;
+    bool Done = false;
+  };
+
+  /// Helper function for DWARFDebugLine parse functions, to report issues
+  /// identified during parsing.
+  ///
+  /// \param Err The Error to report.
+  static void warn(Error Err);
 
 private:
   struct ParsingState {
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
index a6d319a..9a73745 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
@@ -42,7 +42,8 @@
     SmallVector<Entry, 2> Entries;
     /// Dump this list on OS.
     void dump(raw_ostream &OS, bool IsLittleEndian, unsigned AddressSize,
-              const MCRegisterInfo *MRI, unsigned Indent) const;
+              const MCRegisterInfo *MRI, uint64_t BaseAddress,
+              unsigned Indent) const;
   };
 
 private:
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h
index 761871d..cae4804 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h
@@ -32,7 +32,7 @@
 
     /// The name of the object as given by the DW_AT_name attribute of the
     /// referenced DIE.
-    const char *Name;
+    StringRef Name;
   };
 
   /// Each table consists of sets of variable length entries. Each set describes
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
index 38b7f22..ce7436d 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
@@ -71,7 +71,7 @@
 
   void clear();
   void dump(raw_ostream &OS) const;
-  bool extract(const DWARFDataExtractor &data, uint32_t *offset_ptr);
+  Error extract(const DWARFDataExtractor &data, uint32_t *offset_ptr);
   const std::vector<RangeListEntry> &getEntries() { return Entries; }
 
   /// getAbsoluteRanges - Returns absolute address ranges defined by this range
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h
index 7579def..e2e8ab5 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h
@@ -10,10 +10,13 @@
 #ifndef LLVM_DEBUGINFO_DWARFDEBUGRNGLISTS_H
 #define LLVM_DEBUGINFO_DWARFDEBUGRNGLISTS_H
 
+#include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DIContext.h"
 #include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
 #include "llvm/DebugInfo/DWARF/DWARFDebugRangeList.h"
+#include "llvm/DebugInfo/DWARF/DWARFListTable.h"
 #include <cstdint>
+#include <map>
 #include <vector>
 
 namespace llvm {
@@ -21,59 +24,35 @@
 class Error;
 class raw_ostream;
 
-class DWARFDebugRnglists {
-private:
-  struct Header {
-    /// The total length of the entries for this table, not including the length
-    /// field itself.
-    uint32_t Length = 0;
-    /// The DWARF version number.
-    uint16_t Version;
-    /// The size in bytes of an address on the target architecture. For
-    /// segmented addressing, this is the size of the offset portion of the
-    /// address.
-    uint8_t AddrSize;
-    /// The size in bytes of a segment selector on the target architecture.
-    /// If the target system uses a flat address space, this value is 0.
-    uint8_t SegSize;
-    /// The number of offsets that follow the header before the range lists.
-    uint32_t OffsetEntryCount;
-  };
+/// A class representing a single range list entry.
+struct RangeListEntry : public DWARFListEntryBase {
+  /// The values making up the range list entry. Most represent a range with
+  /// a start and end address or a start address and a length. Others are
+  /// single value base addresses or end-of-list with no values. The unneeded
+  /// values are semantically undefined, but initialized to 0.
+  uint64_t Value0;
+  uint64_t Value1;
 
+  Error extract(DWARFDataExtractor Data, uint32_t End, uint32_t *OffsetPtr);
+  void dump(raw_ostream &OS, uint8_t AddrSize, uint8_t MaxEncodingStringLength,
+            uint64_t &CurrentBase, DIDumpOptions DumpOpts) const;
+  bool isSentinel() const { return EntryKind == dwarf::DW_RLE_end_of_list; }
+};
+
+/// A class representing a single rangelist.
+class DWARFDebugRnglist : public DWARFListType<RangeListEntry> {
 public:
-  struct RangeListEntry {
-    /// The offset at which the entry is located in the section.
-    const uint32_t Offset;
-    /// The DWARF encoding (DW_RLE_*).
-    const uint8_t EntryKind;
-    /// The values making up the range list entry. Most represent a range with
-    /// a start and end address or a start address and a length. Others are
-    /// single value base addresses or end-of-list with no values. The unneeded
-    /// values are semantically undefined, but initialized to 0.
-    const uint64_t Value0;
-    const uint64_t Value1;
-  };
+  /// Build a DWARFAddressRangesVector from a rangelist.
+  DWARFAddressRangesVector
+  getAbsoluteRanges(llvm::Optional<BaseAddress> BaseAddr) const;
+};
 
-  using DWARFRangeList = std::vector<RangeListEntry>;
-
-private:
-  uint32_t HeaderOffset;
-  Header HeaderData;
-  std::vector<uint32_t> Offsets;
-  std::vector<DWARFRangeList> Ranges;
-  // The length of the longest encoding string we encountered during parsing.
-  uint8_t MaxEncodingStringLength = 0;
-
+class DWARFDebugRnglistTable : public DWARFListTableBase<DWARFDebugRnglist> {
 public:
-  void clear();
-  Error extract(DWARFDataExtractor Data, uint32_t *OffsetPtr);
-  uint32_t getHeaderOffset() const { return HeaderOffset; }
-  void dump(raw_ostream &OS, DIDumpOptions DumpOpts) const;
-
-  /// Returns the length of this table, including the length field, or 0 if the
-  /// length has not been determined (e.g. because the table has not yet been
-  /// parsed, or there was a problem in parsing).
-  uint32_t length() const;
+  DWARFDebugRnglistTable()
+      : DWARFListTableBase(/* SectionName    = */ ".debug_rnglists",
+                           /* HeaderString   = */ "ranges:",
+                           /* ListTypeString = */ "range") {}
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDie.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDie.h
index 39a3dd3..c77034f 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDie.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFDie.h
@@ -46,7 +46,7 @@
 
 public:
   DWARFDie() = default;
-  DWARFDie(DWARFUnit *Unit, const DWARFDebugInfoEntry * D) : U(Unit), Die(D) {}
+  DWARFDie(DWARFUnit *Unit, const DWARFDebugInfoEntry *D) : U(Unit), Die(D) {}
 
   bool isValid() const { return U && Die; }
   explicit operator bool() const { return isValid(); }
@@ -82,9 +82,7 @@
   }
 
   /// Returns true for a valid DIE that terminates a sibling chain.
-  bool isNULL() const {
-    return getAbbreviationDeclarationPtr() == nullptr;
-  }
+  bool isNULL() const { return getAbbreviationDeclarationPtr() == nullptr; }
 
   /// Returns true if DIE represents a subprogram (not inlined).
   bool isSubprogramDIE() const;
@@ -104,12 +102,24 @@
   /// invalid DWARFDie instance if it doesn't.
   DWARFDie getSibling() const;
 
+  /// Get the previous sibling of this DIE object.
+  ///
+  /// \returns a valid DWARFDie instance if this object has a sibling or an
+  /// invalid DWARFDie instance if it doesn't.
+  DWARFDie getPreviousSibling() const;
+
   /// Get the first child of this DIE object.
   ///
   /// \returns a valid DWARFDie instance if this object has children or an
   /// invalid DWARFDie instance if it doesn't.
   DWARFDie getFirstChild() const;
 
+  /// Get the last child of this DIE object.
+  ///
+  /// \returns a valid null DWARFDie instance if this object has children or an
+  /// invalid DWARFDie instance if it doesn't.
+  DWARFDie getLastChild() const;
+
   /// Dump the DIE and all of its attributes to the supplied stream.
   ///
   /// \param OS the stream to use for output.
@@ -117,7 +127,6 @@
   void dump(raw_ostream &OS, unsigned indent = 0,
             DIDumpOptions DumpOpts = DIDumpOptions()) const;
 
-
   /// Convenience zero-argument overload for debugging.
   LLVM_DUMP_METHOD void dump() const;
 
@@ -207,7 +216,7 @@
   ///
   /// \returns a address range vector that might be empty if no address range
   /// information is available.
-  DWARFAddressRangesVector getAddressRanges() const;
+  Expected<DWARFAddressRangesVector> getAddressRanges() const;
 
   /// Get all address ranges for any DW_TAG_subprogram DIEs in this DIE or any
   /// of its children.
@@ -263,12 +272,16 @@
 
   iterator begin() const;
   iterator end() const;
+
+  std::reverse_iterator<iterator> rbegin() const;
+  std::reverse_iterator<iterator> rend() const;
+
   iterator_range<iterator> children() const;
 };
 
-class DWARFDie::attribute_iterator :
-    public iterator_facade_base<attribute_iterator, std::forward_iterator_tag,
-                                const DWARFAttribute> {
+class DWARFDie::attribute_iterator
+    : public iterator_facade_base<attribute_iterator, std::forward_iterator_tag,
+                                  const DWARFAttribute> {
   /// The DWARF DIE we are extracting attributes from.
   DWARFDie Die;
   /// The value vended to clients via the operator*() or operator->().
@@ -276,6 +289,9 @@
   /// The attribute index within the abbreviation declaration in Die.
   uint32_t Index;
 
+  friend bool operator==(const attribute_iterator &LHS,
+                         const attribute_iterator &RHS);
+
   /// Update the attribute index and attempt to read the attribute value. If the
   /// attribute is able to be read, update AttrValue and the Index member
   /// variable. If the attribute value is not able to be read, an appropriate
@@ -288,14 +304,24 @@
   explicit attribute_iterator(DWARFDie D, bool End);
 
   attribute_iterator &operator++();
+  attribute_iterator &operator--();
   explicit operator bool() const { return AttrValue.isValid(); }
   const DWARFAttribute &operator*() const { return AttrValue; }
-  bool operator==(const attribute_iterator &X) const { return Index == X.Index; }
 };
 
+inline bool operator==(const DWARFDie::attribute_iterator &LHS,
+                       const DWARFDie::attribute_iterator &RHS) {
+  return LHS.Index == RHS.Index;
+}
+
+inline bool operator!=(const DWARFDie::attribute_iterator &LHS,
+                       const DWARFDie::attribute_iterator &RHS) {
+  return !(LHS == RHS);
+}
+
 inline bool operator==(const DWARFDie &LHS, const DWARFDie &RHS) {
   return LHS.getDebugInfoEntry() == RHS.getDebugInfoEntry() &&
-      LHS.getDwarfUnit() == RHS.getDwarfUnit();
+         LHS.getDwarfUnit() == RHS.getDwarfUnit();
 }
 
 inline bool operator!=(const DWARFDie &LHS, const DWARFDie &RHS) {
@@ -306,34 +332,43 @@
   return LHS.getOffset() < RHS.getOffset();
 }
 
-class DWARFDie::iterator : public iterator_facade_base<iterator,
-                                                      std::forward_iterator_tag,
-                                                      const DWARFDie> {
+class DWARFDie::iterator
+    : public iterator_facade_base<iterator, std::bidirectional_iterator_tag,
+                                  const DWARFDie> {
   DWARFDie Die;
-  void skipNull() {
-    if (Die && Die.isNULL())
-      Die = DWARFDie();
-  }
+
+  friend std::reverse_iterator<llvm::DWARFDie::iterator>;
+  friend bool operator==(const DWARFDie::iterator &LHS,
+                         const DWARFDie::iterator &RHS);
+
 public:
   iterator() = default;
 
-  explicit iterator(DWARFDie D) : Die(D) {
-    // If we start out with only a Null DIE then invalidate.
-    skipNull();
-  }
+  explicit iterator(DWARFDie D) : Die(D) {}
 
   iterator &operator++() {
     Die = Die.getSibling();
-    // Don't include the NULL die when iterating.
-    skipNull();
     return *this;
   }
 
-  explicit operator bool() const { return Die.isValid(); }
+  iterator &operator--() {
+    Die = Die.getPreviousSibling();
+    return *this;
+  }
+
   const DWARFDie &operator*() const { return Die; }
-  bool operator==(const iterator &X) const { return Die == X.Die; }
 };
 
+inline bool operator==(const DWARFDie::iterator &LHS,
+                       const DWARFDie::iterator &RHS) {
+  return LHS.Die == RHS.Die;
+}
+
+inline bool operator!=(const DWARFDie::iterator &LHS,
+                       const DWARFDie::iterator &RHS) {
+  return !(LHS == RHS);
+}
+
 // These inline functions must follow the DWARFDie::iterator definition above
 // as they use functions from that class.
 inline DWARFDie::iterator DWARFDie::begin() const {
@@ -341,7 +376,7 @@
 }
 
 inline DWARFDie::iterator DWARFDie::end() const {
-  return iterator();
+  return iterator(getLastChild());
 }
 
 inline iterator_range<DWARFDie::iterator> DWARFDie::children() const {
@@ -350,4 +385,80 @@
 
 } // end namespace llvm
 
+namespace std {
+
+template <>
+class reverse_iterator<llvm::DWARFDie::iterator>
+    : public llvm::iterator_facade_base<
+          reverse_iterator<llvm::DWARFDie::iterator>,
+          bidirectional_iterator_tag, const llvm::DWARFDie> {
+
+private:
+  llvm::DWARFDie Die;
+  bool AtEnd;
+
+public:
+  reverse_iterator(llvm::DWARFDie::iterator It)
+      : Die(It.Die), AtEnd(!It.Die.getPreviousSibling()) {
+    if (!AtEnd)
+      Die = Die.getPreviousSibling();
+  }
+
+  reverse_iterator<llvm::DWARFDie::iterator> &operator++() {
+    assert(!AtEnd && "Incrementing rend");
+    llvm::DWARFDie D = Die.getPreviousSibling();
+    if (D)
+      Die = D;
+    else
+      AtEnd = true;
+    return *this;
+  }
+
+  reverse_iterator<llvm::DWARFDie::iterator> &operator--() {
+    if (AtEnd) {
+      AtEnd = false;
+      return *this;
+    }
+    Die = Die.getSibling();
+    assert(!Die.isNULL() && "Decrementing rbegin");
+    return *this;
+  }
+
+  const llvm::DWARFDie &operator*() const {
+    assert(Die.isValid());
+    return Die;
+  }
+
+  // FIXME: We should be able to specify the equals operator as a friend, but
+  //        that causes the compiler to think the operator overload is ambiguous
+  //        with the friend declaration and the actual definition as candidates.
+  bool equals(const reverse_iterator<llvm::DWARFDie::iterator> &RHS) const {
+    return Die == RHS.Die && AtEnd == RHS.AtEnd;
+  }
+};
+
+} // namespace std
+
+namespace llvm {
+
+inline bool operator==(const std::reverse_iterator<DWARFDie::iterator> &LHS,
+                       const std::reverse_iterator<DWARFDie::iterator> &RHS) {
+  return LHS.equals(RHS);
+}
+
+inline bool operator!=(const std::reverse_iterator<DWARFDie::iterator> &LHS,
+                       const std::reverse_iterator<DWARFDie::iterator> &RHS) {
+  return !(LHS == RHS);
+}
+
+inline std::reverse_iterator<DWARFDie::iterator> DWARFDie::rbegin() const {
+  return llvm::make_reverse_iterator(end());
+}
+
+inline std::reverse_iterator<DWARFDie::iterator> DWARFDie::rend() const {
+  return llvm::make_reverse_iterator(begin());
+}
+
+} // end namespace llvm
+
 #endif // LLVM_DEBUGINFO_DWARFDIE_H
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFListTable.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFListTable.h
new file mode 100644
index 0000000..ab12f3b
--- /dev/null
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFListTable.h
@@ -0,0 +1,278 @@
+//===- DWARFListTable.h -----------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_DEBUGINFO_DWARFLISTTABLE_H
+#define LLVM_DEBUGINFO_DWARFLISTTABLE_H
+
+#include "llvm/BinaryFormat/Dwarf.h"
+#include "llvm/DebugInfo/DIContext.h"
+#include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
+#include "llvm/Support/Error.h"
+#include "llvm/Support/Format.h"
+#include "llvm/Support/raw_ostream.h"
+#include <cstdint>
+#include <map>
+#include <vector>
+
+namespace llvm {
+
+/// A base class for DWARF list entries, such as range or location list
+/// entries.
+struct DWARFListEntryBase {
+  /// The offset at which the entry is located in the section.
+  uint32_t Offset;
+  /// The DWARF encoding (DW_RLE_* or DW_LLE_*).
+  uint8_t EntryKind;
+  /// The index of the section this entry belongs to.
+  uint64_t SectionIndex;
+};
+
+/// A base class for lists of entries that are extracted from a particular
+/// section, such as range lists or location lists.
+template <typename ListEntryType> class DWARFListType {
+  using EntryType = ListEntryType;
+  using ListEntries = std::vector<EntryType>;
+
+protected:
+  ListEntries Entries;
+
+public:
+  // FIXME: We need to consolidate the various verions of "createError"
+  // that are used in the DWARF consumer. Until then, this is a workaround.
+  Error createError(const char *, const char *, uint32_t);
+
+  const ListEntries &getEntries() const { return Entries; }
+  bool empty() const { return Entries.empty(); }
+  void clear() { Entries.clear(); }
+  Error extract(DWARFDataExtractor Data, uint32_t HeaderOffset, uint32_t End,
+                uint32_t *OffsetPtr, StringRef SectionName,
+                StringRef ListStringName);
+};
+
+/// A class representing the header of a list table such as the range list
+/// table in the .debug_rnglists section.
+class DWARFListTableHeader {
+  struct Header {
+    /// The total length of the entries for this table, not including the length
+    /// field itself.
+    uint32_t Length = 0;
+    /// The DWARF version number.
+    uint16_t Version;
+    /// The size in bytes of an address on the target architecture. For
+    /// segmented addressing, this is the size of the offset portion of the
+    /// address.
+    uint8_t AddrSize;
+    /// The size in bytes of a segment selector on the target architecture.
+    /// If the target system uses a flat address space, this value is 0.
+    uint8_t SegSize;
+    /// The number of offsets that follow the header before the range lists.
+    uint32_t OffsetEntryCount;
+  };
+
+  Header HeaderData;
+  /// The offset table, which contains offsets to the individual list entries.
+  /// It is used by forms such as DW_FORM_rnglistx.
+  /// FIXME: Generate the table and use the appropriate forms.
+  std::vector<uint32_t> Offsets;
+  /// The table's format, either DWARF32 or DWARF64.
+  dwarf::DwarfFormat Format;
+  /// The offset at which the header (and hence the table) is located within
+  /// its section.
+  uint32_t HeaderOffset;
+  /// The name of the section the list is located in.
+  StringRef SectionName;
+  /// A characterization of the list for dumping purposes, e.g. "range" or
+  /// "location".
+  StringRef ListTypeString;
+
+public:
+  DWARFListTableHeader(StringRef SectionName, StringRef ListTypeString)
+      : SectionName(SectionName), ListTypeString(ListTypeString) {}
+
+  void clear() {
+    HeaderData = {};
+    Offsets.clear();
+  }
+  uint32_t getHeaderOffset() const { return HeaderOffset; }
+  uint8_t getAddrSize() const { return HeaderData.AddrSize; }
+  uint32_t getLength() const { return HeaderData.Length; }
+  StringRef getSectionName() const { return SectionName; }
+  StringRef getListTypeString() const { return ListTypeString; }
+  dwarf::DwarfFormat getFormat() const { return Format; }
+
+  void dump(raw_ostream &OS, DIDumpOptions DumpOpts = {}) const;
+  Optional<uint32_t> getOffsetEntry(uint32_t Index) const {
+    if (Index < Offsets.size())
+      return Offsets[Index];
+    return None;
+  }
+
+  /// Extract the table header and the array of offsets.
+  Error extract(DWARFDataExtractor Data, uint32_t *OffsetPtr);
+
+  /// Returns the length of the table, including the length field, or 0 if the
+  /// length has not been determined (e.g. because the table has not yet been
+  /// parsed, or there was a problem in parsing).
+  uint32_t length() const;
+};
+
+/// A class representing a table of lists as specified in the DWARF v5
+/// standard for location lists and range lists. The table consists of a header
+/// followed by an array of offsets into a DWARF section, followed by zero or
+/// more list entries. The list entries are kept in a map where the keys are
+/// the lists' section offsets.
+template <typename DWARFListType> class DWARFListTableBase {
+  DWARFListTableHeader Header;
+  /// A mapping between file offsets and lists. It is used to find a particular
+  /// list based on an offset (obtained from DW_AT_ranges, for example).
+  std::map<uint32_t, DWARFListType> ListMap;
+  /// This string is displayed as a heading before the list is dumped
+  /// (e.g. "ranges:").
+  StringRef HeaderString;
+
+protected:
+  DWARFListTableBase(StringRef SectionName, StringRef HeaderString,
+                     StringRef ListTypeString)
+      : Header(SectionName, ListTypeString), HeaderString(HeaderString) {}
+
+public:
+  void clear() {
+    Header.clear();
+    ListMap.clear();
+  }
+  /// Extract the table header and the array of offsets.
+  Error extractHeaderAndOffsets(DWARFDataExtractor Data, uint32_t *OffsetPtr) {
+    return Header.extract(Data, OffsetPtr);
+  }
+  /// Extract an entire table, including all list entries.
+  Error extract(DWARFDataExtractor Data, uint32_t *OffsetPtr);
+  /// Look up a list based on a given offset. Extract it and enter it into the
+  /// list map if necessary.
+  Expected<DWARFListType> findList(DWARFDataExtractor Data, uint32_t Offset);
+
+  uint32_t getHeaderOffset() const { return Header.getHeaderOffset(); }
+  uint8_t getAddrSize() const { return Header.getAddrSize(); }
+
+  void dump(raw_ostream &OS, DIDumpOptions DumpOpts = {}) const;
+
+  /// Return the contents of the offset entry designated by a given index.
+  Optional<uint32_t> getOffsetEntry(uint32_t Index) const {
+    return Header.getOffsetEntry(Index);
+  }
+  /// Return the size of the table header including the length but not including
+  /// the offsets. This is dependent on the table format, which is unambiguously
+  /// derived from parsing the table.
+  uint8_t getHeaderSize() const {
+    switch (Header.getFormat()) {
+    case dwarf::DwarfFormat::DWARF32:
+      return 12;
+    case dwarf::DwarfFormat::DWARF64:
+      return 20;
+    }
+    llvm_unreachable("Invalid DWARF format (expected DWARF32 or DWARF64");
+  }
+
+  uint32_t length() { return Header.length(); }
+};
+
+template <typename DWARFListType>
+Error DWARFListTableBase<DWARFListType>::extract(DWARFDataExtractor Data,
+                                                 uint32_t *OffsetPtr) {
+  clear();
+  if (Error E = extractHeaderAndOffsets(Data, OffsetPtr))
+    return E;
+
+  Data.setAddressSize(Header.getAddrSize());
+  uint32_t End = getHeaderOffset() + Header.length();
+  while (*OffsetPtr < End) {
+    DWARFListType CurrentList;
+    uint32_t Off = *OffsetPtr;
+    if (Error E = CurrentList.extract(Data, getHeaderOffset(), End, OffsetPtr,
+                                      Header.getSectionName(),
+                                      Header.getListTypeString()))
+      return E;
+    ListMap[Off] = CurrentList;
+  }
+
+  assert(*OffsetPtr == End &&
+         "mismatch between expected length of table and length "
+         "of extracted data");
+  return Error::success();
+}
+
+template <typename ListEntryType>
+Error DWARFListType<ListEntryType>::extract(DWARFDataExtractor Data,
+                                            uint32_t HeaderOffset, uint32_t End,
+                                            uint32_t *OffsetPtr,
+                                            StringRef SectionName,
+                                            StringRef ListTypeString) {
+  if (*OffsetPtr < HeaderOffset || *OffsetPtr >= End)
+    return createError("invalid %s list offset 0x%" PRIx32,
+                       ListTypeString.data(), *OffsetPtr);
+  Entries.clear();
+  while (*OffsetPtr < End) {
+    ListEntryType Entry;
+    if (Error E = Entry.extract(Data, End, OffsetPtr))
+      return E;
+    Entries.push_back(Entry);
+    if (Entry.isSentinel())
+      return Error::success();
+  }
+  return createError("no end of list marker detected at end of %s table "
+                     "starting at offset 0x%" PRIx32,
+                     SectionName.data(), HeaderOffset);
+}
+
+template <typename DWARFListType>
+void DWARFListTableBase<DWARFListType>::dump(raw_ostream &OS,
+                                             DIDumpOptions DumpOpts) const {
+  Header.dump(OS, DumpOpts);
+  OS << HeaderString << "\n";
+
+  // Determine the length of the longest encoding string we have in the table,
+  // so we can align the output properly. We only need this in verbose mode.
+  size_t MaxEncodingStringLength = 0;
+  if (DumpOpts.Verbose) {
+    for (const auto &List : ListMap)
+      for (const auto &Entry : List.second.getEntries())
+        MaxEncodingStringLength =
+            std::max(MaxEncodingStringLength,
+                     dwarf::RangeListEncodingString(Entry.EntryKind).size());
+  }
+
+  uint64_t CurrentBase = 0;
+  for (const auto &List : ListMap)
+    for (const auto &Entry : List.second.getEntries())
+      Entry.dump(OS, getAddrSize(), MaxEncodingStringLength, CurrentBase,
+                 DumpOpts);
+}
+
+template <typename DWARFListType>
+Expected<DWARFListType>
+DWARFListTableBase<DWARFListType>::findList(DWARFDataExtractor Data,
+                                            uint32_t Offset) {
+  auto Entry = ListMap.find(Offset);
+  if (Entry != ListMap.end())
+    return Entry->second;
+
+  // Extract the list from the section and enter it into the list map.
+  DWARFListType List;
+  uint32_t End = getHeaderOffset() + Header.length();
+  uint32_t StartingOffset = Offset;
+  if (Error E =
+          List.extract(Data, getHeaderOffset(), End, &Offset,
+                       Header.getSectionName(), Header.getListTypeString()))
+    return std::move(E);
+  ListMap[StartingOffset] = List;
+  return List;
+}
+
+} // end namespace llvm
+
+#endif // LLVM_DEBUGINFO_DWARFLISTTABLE_H
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFObject.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFObject.h
index 795eddd..6e8f370 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFObject.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFObject.h
@@ -63,6 +63,7 @@
     return Dummy;
   }
   virtual const DWARFSection &getRangeDWOSection() const { return Dummy; }
+  virtual const DWARFSection &getRnglistsDWOSection() const { return Dummy; }
   virtual const DWARFSection &getAddrSection() const { return Dummy; }
   virtual const DWARFSection &getAppleNamesSection() const { return Dummy; }
   virtual const DWARFSection &getAppleTypesSection() const { return Dummy; }
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
index a659a63..0a5a1aa 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
@@ -24,30 +24,22 @@
 class raw_ostream;
 
 class DWARFTypeUnit : public DWARFUnit {
-private:
-  uint64_t TypeHash;
-  uint32_t TypeOffset;
-
 public:
   DWARFTypeUnit(DWARFContext &Context, const DWARFSection &Section,
+                const DWARFUnitHeader &Header,
                 const DWARFDebugAbbrev *DA, const DWARFSection *RS,
                 StringRef SS, const DWARFSection &SOS, const DWARFSection *AOS,
                 const DWARFSection &LS, bool LE, bool IsDWO,
-                const DWARFUnitSectionBase &UnitSection,
-                const DWARFUnitIndex::Entry *Entry)
-      : DWARFUnit(Context, Section, DA, RS, SS, SOS, AOS, LS, LE, IsDWO,
-                  UnitSection, Entry) {}
+                const DWARFUnitVector &UnitVector)
+      : DWARFUnit(Context, Section, Header, DA, RS, SS, SOS, AOS, LS, LE, IsDWO,
+                  UnitVector) {}
 
-  uint32_t getHeaderSize() const override {
-    return DWARFUnit::getHeaderSize() + 12;
-  }
+  uint64_t getTypeHash() const { return getHeader().getTypeHash(); }
+  uint32_t getTypeOffset() const { return getHeader().getTypeOffset(); }
 
-  void dump(raw_ostream &OS, DIDumpOptions DumpOpts = {});
-  static const DWARFSectionKind Section = DW_SECT_TYPES;
-
-protected:
-  bool extractImpl(const DWARFDataExtractor &debug_info,
-                   uint32_t *offset_ptr) override;
+  void dump(raw_ostream &OS, DIDumpOptions DumpOpts = {}) override;
+  // Enable LLVM-style RTTI.
+  static bool classof(const DWARFUnit *U) { return U->isTypeUnit(); }
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFUnit.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFUnit.h
index fe3f573..0908504 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFUnit.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFUnit.h
@@ -18,6 +18,7 @@
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h"
 #include "llvm/DebugInfo/DWARF/DWARFDebugRangeList.h"
+#include "llvm/DebugInfo/DWARF/DWARFDebugRnglists.h"
 #include "llvm/DebugInfo/DWARF/DWARFDie.h"
 #include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
 #include "llvm/DebugInfo/DWARF/DWARFRelocMap.h"
@@ -40,124 +41,116 @@
 class DWARFDebugAbbrev;
 class DWARFUnit;
 
-/// Base class for all DWARFUnitSection classes. This provides the
-/// functionality common to all unit types.
-class DWARFUnitSectionBase {
+/// Base class describing the header of any kind of "unit."  Some information
+/// is specific to certain unit types.  We separate this class out so we can
+/// parse the header before deciding what specific kind of unit to construct.
+class DWARFUnitHeader {
+  // Offset within section.
+  uint32_t Offset = 0;
+  // Version, address size, and DWARF format.
+  dwarf::FormParams FormParams;
+  uint32_t Length = 0;
+  uint64_t AbbrOffset = 0;
+
+  // For DWO units only.
+  const DWARFUnitIndex::Entry *IndexEntry = nullptr;
+
+  // For type units only.
+  uint64_t TypeHash = 0;
+  uint32_t TypeOffset = 0;
+
+  // For v5 split or skeleton compile units only.
+  Optional<uint64_t> DWOId;
+
+  // Unit type as parsed, or derived from the section kind.
+  uint8_t UnitType = 0;
+
+  // Size as parsed. uint8_t for compactness.
+  uint8_t Size = 0;
+
 public:
-  /// Returns the Unit that contains the given section offset in the
-  /// same section this Unit originated from.
-  virtual DWARFUnit *getUnitForOffset(uint32_t Offset) const = 0;
-  virtual DWARFUnit *getUnitForIndexEntry(const DWARFUnitIndex::Entry &E) = 0;
-
-  void parse(DWARFContext &C, const DWARFSection &Section);
-  void parseDWO(DWARFContext &C, const DWARFSection &DWOSection,
-                bool Lazy = false);
-
-protected:
-  ~DWARFUnitSectionBase() = default;
-
-  virtual void parseImpl(DWARFContext &Context, const DWARFObject &Obj,
-                         const DWARFSection &Section,
-                         const DWARFDebugAbbrev *DA, const DWARFSection *RS,
-                         StringRef SS, const DWARFSection &SOS,
-                         const DWARFSection *AOS, const DWARFSection &LS,
-                         bool isLittleEndian, bool isDWO, bool Lazy) = 0;
+  /// Parse a unit header from \p debug_info starting at \p offset_ptr.
+  bool extract(DWARFContext &Context, const DWARFDataExtractor &debug_info,
+               uint32_t *offset_ptr, DWARFSectionKind Kind = DW_SECT_INFO,
+               const DWARFUnitIndex *Index = nullptr);
+  uint32_t getOffset() const { return Offset; }
+  const dwarf::FormParams &getFormParams() const { return FormParams; }
+  uint16_t getVersion() const { return FormParams.Version; }
+  dwarf::DwarfFormat getFormat() const { return FormParams.Format; }
+  uint8_t getAddressByteSize() const { return FormParams.AddrSize; }
+  uint8_t getRefAddrByteSize() const { return FormParams.getRefAddrByteSize(); }
+  uint8_t getDwarfOffsetByteSize() const {
+    return FormParams.getDwarfOffsetByteSize();
+  }
+  uint32_t getLength() const { return Length; }
+  uint64_t getAbbrOffset() const { return AbbrOffset; }
+  Optional<uint64_t> getDWOId() const { return DWOId; }
+  void setDWOId(uint64_t Id) {
+    assert((!DWOId || *DWOId == Id) && "setting DWOId to a different value");
+    DWOId = Id;
+  }
+  const DWARFUnitIndex::Entry *getIndexEntry() const { return IndexEntry; }
+  uint64_t getTypeHash() const { return TypeHash; }
+  uint32_t getTypeOffset() const { return TypeOffset; }
+  uint8_t getUnitType() const { return UnitType; }
+  bool isTypeUnit() const {
+    return UnitType == dwarf::DW_UT_type || UnitType == dwarf::DW_UT_split_type;
+  }
+  uint8_t getSize() const { return Size; }
+  // FIXME: Support DWARF64.
+  uint32_t getNextUnitOffset() const { return Offset + Length + 4; }
 };
 
 const DWARFUnitIndex &getDWARFUnitIndex(DWARFContext &Context,
                                         DWARFSectionKind Kind);
 
-/// Concrete instance of DWARFUnitSection, specialized for one Unit type.
-template<typename UnitType>
-class DWARFUnitSection final : public SmallVector<std::unique_ptr<UnitType>, 1>,
-                               public DWARFUnitSectionBase {
-  bool Parsed = false;
-  std::function<std::unique_ptr<UnitType>(uint32_t)> Parser;
+/// Describe a collection of units. Intended to hold all units either from
+/// .debug_info and .debug_types, or from .debug_info.dwo and .debug_types.dwo.
+class DWARFUnitVector final : public SmallVector<std::unique_ptr<DWARFUnit>, 1> {
+  std::function<std::unique_ptr<DWARFUnit>(uint32_t, DWARFSectionKind,
+                                           const DWARFSection *)>
+      Parser;
+  unsigned NumInfoUnits = 0;
 
 public:
-  using UnitVector = SmallVectorImpl<std::unique_ptr<UnitType>>;
+  using UnitVector = SmallVectorImpl<std::unique_ptr<DWARFUnit>>;
   using iterator = typename UnitVector::iterator;
   using iterator_range = llvm::iterator_range<typename UnitVector::iterator>;
 
-  UnitType *getUnitForOffset(uint32_t Offset) const override {
-    auto *CU = std::upper_bound(
-        this->begin(), this->end(), Offset,
-        [](uint32_t LHS, const std::unique_ptr<UnitType> &RHS) {
-          return LHS < RHS->getNextUnitOffset();
-        });
-    if (CU != this->end() && (*CU)->getOffset() <= Offset)
-      return CU->get();
-    return nullptr;
-  }
-  UnitType *getUnitForIndexEntry(const DWARFUnitIndex::Entry &E) override {
-    const auto *CUOff = E.getOffset(DW_SECT_INFO);
-    if (!CUOff)
-      return nullptr;
+  DWARFUnit *getUnitForOffset(uint32_t Offset) const;
+  DWARFUnit *getUnitForIndexEntry(const DWARFUnitIndex::Entry &E);
 
-    auto Offset = CUOff->Offset;
+  /// Read units from a .debug_info or .debug_types section.  Calls made
+  /// before finishedInfoUnits() are assumed to be for .debug_info sections,
+  /// calls after finishedInfoUnits() are for .debug_types sections.  Caller
+  /// must not mix calls to addUnitsForSection and addUnitsForDWOSection.
+  void addUnitsForSection(DWARFContext &C, const DWARFSection &Section,
+                          DWARFSectionKind SectionKind);
+  /// Read units from a .debug_info.dwo or .debug_types.dwo section.  Calls
+  /// made before finishedInfoUnits() are assumed to be for .debug_info.dwo
+  /// sections, calls after finishedInfoUnits() are for .debug_types.dwo
+  /// sections.  Caller must not mix calls to addUnitsForSection and
+  /// addUnitsForDWOSection.
+  void addUnitsForDWOSection(DWARFContext &C, const DWARFSection &DWOSection,
+                             DWARFSectionKind SectionKind, bool Lazy = false);
 
-    auto *CU = std::upper_bound(
-        this->begin(), this->end(), CUOff->Offset,
-        [](uint32_t LHS, const std::unique_ptr<UnitType> &RHS) {
-          return LHS < RHS->getNextUnitOffset();
-        });
-    if (CU != this->end() && (*CU)->getOffset() <= Offset)
-      return CU->get();
-
-    if (!Parser)
-      return nullptr;
-
-    auto U = Parser(Offset);
-    if (!U)
-      U = nullptr;
-
-    auto *NewCU = U.get();
-    this->insert(CU, std::move(U));
-    return NewCU;
-  }
+  /// Returns number of all units held by this instance.
+  unsigned getNumUnits() { return size(); }
+  /// Returns number of units from all .debug_info[.dwo] sections.
+  unsigned getNumInfoUnits() { return NumInfoUnits; }
+  /// Returns number of units from all .debug_types[.dwo] sections.
+  unsigned getNumTypesUnits() { return size() - NumInfoUnits; }
+  /// Indicate that parsing .debug_info[.dwo] is done, and remaining units
+  /// will be from .debug_types[.dwo].
+  void finishedInfoUnits() { NumInfoUnits = size(); }
 
 private:
-  void parseImpl(DWARFContext &Context, const DWARFObject &Obj,
-                 const DWARFSection &Section, const DWARFDebugAbbrev *DA,
-                 const DWARFSection *RS, StringRef SS, const DWARFSection &SOS,
-                 const DWARFSection *AOS, const DWARFSection &LS, bool LE,
-                 bool IsDWO, bool Lazy) override {
-    if (Parsed)
-      return;
-    DWARFDataExtractor Data(Obj, Section, LE, 0);
-    if (!Parser) {
-      const DWARFUnitIndex *Index = nullptr;
-      if (IsDWO)
-        Index = &getDWARFUnitIndex(Context, UnitType::Section);
-      Parser = [=, &Context, &Section, &SOS,
-                &LS](uint32_t Offset) -> std::unique_ptr<UnitType> {
-        if (!Data.isValidOffset(Offset))
-          return nullptr;
-        auto U = llvm::make_unique<UnitType>(
-            Context, Section, DA, RS, SS, SOS, AOS, LS, LE, IsDWO, *this,
-            Index ? Index->getFromOffset(Offset) : nullptr);
-        if (!U->extract(Data, &Offset))
-          return nullptr;
-        return U;
-      };
-    }
-    if (Lazy)
-      return;
-    auto I = this->begin();
-    uint32_t Offset = 0;
-    while (Data.isValidOffset(Offset)) {
-      if (I != this->end() && (*I)->getOffset() == Offset) {
-        ++I;
-        continue;
-      }
-      auto U = Parser(Offset);
-      if (!U)
-        break;
-      Offset = U->getNextUnitOffset();
-      I = std::next(this->insert(I, std::move(U)));
-    }
-    Parsed = true;
-  }
+  void addUnitsImpl(DWARFContext &Context, const DWARFObject &Obj,
+                    const DWARFSection &Section, const DWARFDebugAbbrev *DA,
+                    const DWARFSection *RS, StringRef SS,
+                    const DWARFSection &SOS, const DWARFSection *AOS,
+                    const DWARFSection &LS, bool LE, bool IsDWO, bool Lazy,
+                    DWARFSectionKind SectionKind);
 };
 
 /// Represents base address of the CU.
@@ -169,6 +162,7 @@
 /// Represents a unit's contribution to the string offsets table.
 struct StrOffsetsContributionDescriptor {
   uint64_t Base = 0;
+  /// The contribution size not including the header.
   uint64_t Size = 0;
   /// Format and version.
   dwarf::FormParams FormParams = {0, 0, dwarf::DwarfFormat::DWARF32};
@@ -194,6 +188,7 @@
   /// Section containing this DWARFUnit.
   const DWARFSection &InfoSection;
 
+  DWARFUnitHeader Header;
   const DWARFDebugAbbrev *Abbrev;
   const DWARFSection *RangeSection;
   uint32_t RangeSectionBase;
@@ -204,19 +199,16 @@
   uint32_t AddrOffsetSectionBase = 0;
   bool isLittleEndian;
   bool isDWO;
-  const DWARFUnitSectionBase &UnitSection;
+  const DWARFUnitVector &UnitVector;
 
-  // Version, address size, and DWARF format.
-  dwarf::FormParams FormParams;
   /// Start, length, and DWARF format of the unit's contribution to the string
   /// offsets table (DWARF v5).
   Optional<StrOffsetsContributionDescriptor> StringOffsetsTableContribution;
 
-  uint32_t Offset;
-  uint32_t Length;
+  /// A table of range lists (DWARF v5 and later).
+  Optional<DWARFDebugRnglistTable> RngListTable;
+
   mutable const DWARFAbbreviationDeclarationSet *Abbrevs;
-  uint64_t AbbrOffset;
-  uint8_t UnitType;
   llvm::Optional<BaseAddress> BaseAddr;
   /// The compile unit debug information entry items.
   std::vector<DWARFDebugInfoEntry> DieArray;
@@ -231,8 +223,6 @@
 
   std::shared_ptr<DWARFUnit> DWO;
 
-  const DWARFUnitIndex::Entry *IndexEntry;
-
   uint32_t getDIEIndex(const DWARFDebugInfoEntry *Die) {
     auto First = DieArray.data();
     assert(Die >= First && Die < First + DieArray.size());
@@ -240,11 +230,10 @@
   }
 
 protected:
-  virtual bool extractImpl(const DWARFDataExtractor &debug_info,
-                           uint32_t *offset_ptr);
+  const DWARFUnitHeader &getHeader() const { return Header; }
 
-  /// Size in bytes of the unit header.
-  virtual uint32_t getHeaderSize() const { return getVersion() <= 4 ? 11 : 12; }
+  /// Size in bytes of the parsed unit header.
+  uint32_t getHeaderSize() const { return Header.getSize(); }
 
   /// Find the unit's contribution to the string offsets table and determine its
   /// length and form. The given offset is expected to be derived from the unit
@@ -263,16 +252,30 @@
 
 public:
   DWARFUnit(DWARFContext &Context, const DWARFSection &Section,
+            const DWARFUnitHeader &Header,
             const DWARFDebugAbbrev *DA, const DWARFSection *RS, StringRef SS,
             const DWARFSection &SOS, const DWARFSection *AOS,
             const DWARFSection &LS, bool LE, bool IsDWO,
-            const DWARFUnitSectionBase &UnitSection,
-            const DWARFUnitIndex::Entry *IndexEntry = nullptr);
+            const DWARFUnitVector &UnitVector);
 
   virtual ~DWARFUnit();
 
   DWARFContext& getContext() const { return Context; }
-
+  const DWARFSection &getInfoSection() const { return InfoSection; }
+  uint32_t getOffset() const { return Header.getOffset(); }
+  const dwarf::FormParams &getFormParams() const {
+    return Header.getFormParams();
+  }
+  uint16_t getVersion() const { return Header.getVersion(); }
+  uint8_t getAddressByteSize() const { return Header.getAddressByteSize(); }
+  uint8_t getRefAddrByteSize() const { return Header.getRefAddrByteSize(); }
+  uint8_t getDwarfOffsetByteSize() const {
+    return Header.getDwarfOffsetByteSize();
+  }
+  uint32_t getLength() const { return Header.getLength(); }
+  uint8_t getUnitType() const { return Header.getUnitType(); }
+  bool isTypeUnit() const { return Header.isTypeUnit(); }
+  uint32_t getNextUnitOffset() const { return Header.getNextUnitOffset(); }
   const DWARFSection &getLineSection() const { return LineSection; }
   StringRef getStringSection() const { return StringSection; }
   const DWARFSection &getStringOffsetSection() const {
@@ -301,30 +304,18 @@
     return DataExtractor(StringSection, false, 0);
   }
 
-  bool extract(const DWARFDataExtractor &debug_info, uint32_t *offset_ptr);
-
-  /// extractRangeList - extracts the range list referenced by this compile
-  /// unit from .debug_ranges section. Returns true on success.
-  /// Requires that compile unit is already extracted.
-  bool extractRangeList(uint32_t RangeListOffset,
-                        DWARFDebugRangeList &RangeList) const;
+  /// Extract the range list referenced by this compile unit from the
+  /// .debug_ranges section. If the extraction is unsuccessful, an error
+  /// is returned. Successful extraction requires that the compile unit
+  /// has already been extracted.
+  Error extractRangeList(uint32_t RangeListOffset,
+                         DWARFDebugRangeList &RangeList) const;
   void clear();
-  uint32_t getOffset() const { return Offset; }
-  uint32_t getNextUnitOffset() const { return Offset + Length + 4; }
-  uint32_t getLength() const { return Length; }
 
   const Optional<StrOffsetsContributionDescriptor> &
   getStringOffsetsTableContribution() const {
     return StringOffsetsTableContribution;
   }
-  const dwarf::FormParams &getFormParams() const { return FormParams; }
-  uint16_t getVersion() const { return FormParams.Version; }
-  dwarf::DwarfFormat getFormat() const { return FormParams.Format; }
-  uint8_t getAddressByteSize() const { return FormParams.AddrSize; }
-  uint8_t getRefAddrByteSize() const { return FormParams.getRefAddrByteSize(); }
-  uint8_t getDwarfOffsetByteSize() const {
-    return FormParams.getDwarfOffsetByteSize();
-  }
 
   uint8_t getDwarfStringOffsetsByteSize() const {
     assert(StringOffsetsTableContribution);
@@ -338,8 +329,6 @@
 
   const DWARFAbbreviationDeclarationSet *getAbbreviations() const;
 
-  uint8_t getUnitType() const { return UnitType; }
-
   static bool isMatchingUnitTypeAndTag(uint8_t UnitType, dwarf::Tag Tag) {
     switch (UnitType) {
     case dwarf::DW_UT_compile:
@@ -357,7 +346,7 @@
     return false;
   }
 
-  /// \brief Return the number of bytes for the header of a unit of
+  /// Return the number of bytes for the header of a unit of
   /// UnitType type.
   ///
   /// This function must be called with a valid unit type which in
@@ -377,9 +366,7 @@
     llvm_unreachable("Invalid UnitType.");
   }
 
-  llvm::Optional<BaseAddress> getBaseAddress() const { return BaseAddr; }
-
-  void setBaseAddress(BaseAddress BaseAddr) { this->BaseAddr = BaseAddr; }
+  llvm::Optional<BaseAddress> getBaseAddress();
 
   DWARFDie getUnitDIE(bool ExtractUnitDIEOnly = true) {
     extractDIEsIfNeeded(ExtractUnitDIEOnly);
@@ -389,7 +376,29 @@
   }
 
   const char *getCompilationDir();
-  Optional<uint64_t> getDWOId();
+  Optional<uint64_t> getDWOId() {
+    extractDIEsIfNeeded(/*CUDieOnly*/ true);
+    return getHeader().getDWOId();
+  }
+  void setDWOId(uint64_t NewID) { Header.setDWOId(NewID); }
+
+  /// Return a vector of address ranges resulting from a (possibly encoded)
+  /// range list starting at a given offset in the appropriate ranges section.
+  Expected<DWARFAddressRangesVector> findRnglistFromOffset(uint32_t Offset);
+
+  /// Return a vector of address ranges retrieved from an encoded range
+  /// list whose offset is found via a table lookup given an index (DWARF v5
+  /// and later).
+  Expected<DWARFAddressRangesVector> findRnglistFromIndex(uint32_t Index);
+
+  /// Return a rangelist's offset based on an index. The index designates
+  /// an entry in the rangelist table's offset array and is supplied by
+  /// DW_FORM_rnglistx.
+  Optional<uint32_t> getRnglistOffset(uint32_t Index) {
+    if (RngListTable)
+      return RngListTable->getOffsetEntry(Index);
+    return None;
+  }
 
   void collectAddressRanges(DWARFAddressRangesVector &CURanges);
 
@@ -404,17 +413,17 @@
   void getInlinedChainForAddress(uint64_t Address,
                                  SmallVectorImpl<DWARFDie> &InlinedChain);
 
-  /// getUnitSection - Return the DWARFUnitSection containing this unit.
-  const DWARFUnitSectionBase &getUnitSection() const { return UnitSection; }
+  /// Return the DWARFUnitVector containing this unit.
+  const DWARFUnitVector &getUnitVector() const { return UnitVector; }
 
-  /// \brief Returns the number of DIEs in the unit. Parses the unit
+  /// Returns the number of DIEs in the unit. Parses the unit
   /// if necessary.
   unsigned getNumDIEs() {
     extractDIEsIfNeeded(false);
     return DieArray.size();
   }
 
-  /// \brief Return the index of a DIE inside the unit's DIE vector.
+  /// Return the index of a DIE inside the unit's DIE vector.
   ///
   /// It is illegal to call this method with a DIE that hasn't be
   /// created by this unit. In other word, it's illegal to call this
@@ -424,7 +433,7 @@
     return getDIEIndex(D.getDebugInfoEntry());
   }
 
-  /// \brief Return the DIE object at the given index.
+  /// Return the DIE object at the given index.
   DWARFDie getDIEAtIndex(unsigned Index) {
     assert(Index < DieArray.size());
     return DWARFDie(this, &DieArray[Index]);
@@ -432,9 +441,11 @@
 
   DWARFDie getParent(const DWARFDebugInfoEntry *Die);
   DWARFDie getSibling(const DWARFDebugInfoEntry *Die);
+  DWARFDie getPreviousSibling(const DWARFDebugInfoEntry *Die);
   DWARFDie getFirstChild(const DWARFDebugInfoEntry *Die);
+  DWARFDie getLastChild(const DWARFDebugInfoEntry *Die);
 
-  /// \brief Return the DIE object for a given offset inside the
+  /// Return the DIE object for a given offset inside the
   /// unit's DIE vector.
   ///
   /// The unit needs to have its DIEs extracted for this method to work.
@@ -452,7 +463,7 @@
   }
 
   uint32_t getLineTableOffset() const {
-    if (IndexEntry)
+    if (auto IndexEntry = Header.getIndexEntry())
       if (const auto *Contrib = IndexEntry->getOffset(DW_SECT_LINE))
         return Contrib->Offset;
     return 0;
@@ -463,9 +474,12 @@
     return die_iterator_range(DieArray.begin(), DieArray.end());
   }
 
+  virtual void dump(raw_ostream &OS, DIDumpOptions DumpOpts) = 0;
 private:
   /// Size in bytes of the .debug_info data associated with this compile unit.
-  size_t getDebugInfoSize() const { return Length + 4 - getHeaderSize(); }
+  size_t getDebugInfoSize() const {
+    return Header.getLength() + 4 - getHeaderSize();
+  }
 
   /// extractDIEsIfNeeded - Parses a compile unit and indexes its DIEs if it
   /// hasn't already been done. Returns the number of DIEs parsed at this call.
diff --git a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFVerifier.h b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
index afaa299..5463677 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h"
 #include "llvm/DebugInfo/DWARF/DWARFAddressRange.h"
 #include "llvm/DebugInfo/DWARF/DWARFDie.h"
+#include "llvm/DebugInfo/DWARF/DWARFUnitIndex.h"
 
 #include <cstdint>
 #include <map>
@@ -25,6 +26,7 @@
 class DWARFContext;
 class DWARFDie;
 class DWARFUnit;
+class DWARFCompileUnit;
 class DWARFDataExtractor;
 class DWARFDebugAbbrev;
 class DataExtractor;
@@ -112,20 +114,20 @@
   /// \returns The number of errors that occurred during verification.
   unsigned verifyAbbrevSection(const DWARFDebugAbbrev *Abbrev);
 
-  /// Verifies the header of a unit in the .debug_info section.
+  /// Verifies the header of a unit in a .debug_info or .debug_types section.
   ///
   /// This function currently checks for:
   /// - Unit is in 32-bit DWARF format. The function can be modified to
   /// support 64-bit format.
   /// - The DWARF version is valid
   /// - The unit type is valid (if unit is in version >=5)
-  /// - The unit doesn't extend beyond .debug_info section
+  /// - The unit doesn't extend beyond the containing section
   /// - The address size is valid
   /// - The offset in the .debug_abbrev section is valid
   ///
-  /// \param DebugInfoData The .debug_info section data
+  /// \param DebugInfoData The section data
   /// \param Offset A reference to the offset start of the unit. The offset will
-  /// be updated to point to the next unit in .debug_info
+  /// be updated to point to the next unit in the section
   /// \param UnitIndex The index of the unit to be verified
   /// \param UnitType A reference to the type of the unit
   /// \param isUnitDWARF64 A reference to a flag that shows whether the unit is
@@ -136,7 +138,7 @@
                         uint32_t *Offset, unsigned UnitIndex, uint8_t &UnitType,
                         bool &isUnitDWARF64);
 
-  /// Verifies the header of a unit in the .debug_info section.
+  /// Verifies the header of a unit in a .debug_info or .debug_types section.
   ///
   /// This function currently verifies:
   ///  - The debug info attributes.
@@ -146,12 +148,22 @@
   ///  - If a unit type is provided, that the unit DIE matches the unit type.
   ///  - The DIE ranges.
   ///
-  /// \param Unit      The DWARF Unit to verifiy.
+  /// \param Unit      The DWARF Unit to verify.
   /// \param UnitType  An optional unit type which will be used to verify the
   ///                  type of the unit DIE.
   ///
-  /// \returns true if the content is verified successfully, false otherwise.
-  bool verifyUnitContents(DWARFUnit Unit, uint8_t UnitType = 0);
+  /// \returns The number of errors that occurred during verification.
+  unsigned verifyUnitContents(DWARFUnit &Unit, uint8_t UnitType = 0);
+
+  /// Verifies the unit headers and contents in a .debug_info or .debug_types
+  /// section.
+  ///
+  /// \param S           The DWARF Section to verify.
+  /// \param SectionKind The object-file section kind that S comes from.
+  ///
+  /// \returns The number of errors that occurred during verification.
+  unsigned verifyUnitSection(const DWARFSection &S,
+                             DWARFSectionKind SectionKind);
 
   /// Verify that all Die ranges are valid.
   ///
@@ -171,7 +183,7 @@
   /// \param AttrValue    The DWARF attribute value to check
   ///
   /// \returns NumErrors The number of errors occurred during verification of
-  /// attributes' values in a .debug_info section unit
+  /// attributes' values in a unit
   unsigned verifyDebugInfoAttribute(const DWARFDie &Die,
                                     DWARFAttribute &AttrValue);
 
@@ -179,14 +191,14 @@
   ///
   /// This function currently checks for:
   /// - All DW_FORM_ref values that are CU relative have valid CU offsets
-  /// - All DW_FORM_ref_addr values have valid .debug_info offsets
+  /// - All DW_FORM_ref_addr values have valid section offsets
   /// - All DW_FORM_strp values have valid .debug_str offsets
   ///
   /// \param Die          The DWARF DIE that owns the attribute value
   /// \param AttrValue    The DWARF attribute value to check
   ///
   /// \returns NumErrors The number of errors occurred during verification of
-  /// attributes' forms in a .debug_info section unit
+  /// attributes' forms in a unit
   unsigned verifyDebugInfoForm(const DWARFDie &Die, DWARFAttribute &AttrValue);
 
   /// Verifies the all valid references that were found when iterating through
@@ -198,7 +210,7 @@
   /// CU relative and absolute references.
   ///
   /// \returns NumErrors The number of errors occurred during verification of
-  /// references for the .debug_info section
+  /// references for the .debug_info and .debug_types sections
   unsigned verifyDebugInfoReferences();
 
   /// Verify the DW_AT_stmt_list encoding and value and ensure that no
@@ -240,6 +252,10 @@
   unsigned verifyNameIndexAttribute(const DWARFDebugNames::NameIndex &NI,
                                     const DWARFDebugNames::Abbrev &Abbr,
                                     DWARFDebugNames::AttributeEncoding AttrEnc);
+  unsigned verifyNameIndexEntries(const DWARFDebugNames::NameIndex &NI,
+                                  const DWARFDebugNames::NameTableEntry &NTE);
+  unsigned verifyNameIndexCompleteness(const DWARFDie &Die,
+                                       const DWARFDebugNames::NameIndex &NI);
 
   /// Verify that the DWARF v5 accelerator table is valid.
   ///
@@ -251,6 +267,8 @@
   /// - The buckets have a valid index, or they are empty.
   /// - All names are reachable via the hash table (they have the correct hash,
   ///   and the hash is in the correct bucket).
+  /// - Information in the index entries is complete (all required entries are
+  ///   present) and consistent with the debug_info section DIEs.
   ///
   /// \param AccelSection section containing the acceleration table
   /// \param StrData string section
@@ -273,12 +291,12 @@
   /// false otherwise.
   bool handleDebugAbbrev();
 
-  /// Verify the information in the .debug_info section.
+  /// Verify the information in the .debug_info and .debug_types sections.
   ///
-  /// Any errors are reported to the stream that was this object was
+  /// Any errors are reported to the stream that this object was
   /// constructed with.
   ///
-  /// \returns true if the .debug_info verifies successfully, false otherwise.
+  /// \returns true if all sections verify successfully, false otherwise.
   bool handleDebugInfo();
 
   /// Verify the information in the .debug_line section.
diff --git a/linux-x64/clang/include/llvm/DebugInfo/MSF/MSFBuilder.h b/linux-x64/clang/include/llvm/DebugInfo/MSF/MSFBuilder.h
index 19e5c31..3de98c4 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/MSF/MSFBuilder.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/MSF/MSFBuilder.h
@@ -20,11 +20,13 @@
 #include <vector>
 
 namespace llvm {
+class FileBufferByteStream;
+class WritableBinaryStream;
 namespace msf {
 
 class MSFBuilder {
 public:
-  /// \brief Create a new `MSFBuilder`.
+  /// Create a new `MSFBuilder`.
   ///
   /// \param BlockSize The internal block size used by the PDB file.  See
   /// isValidBlockSize() for a list of valid block sizes.
@@ -109,7 +111,10 @@
 
   /// Finalize the layout and build the headers and structures that describe the
   /// MSF layout and can be written directly to the MSF file.
-  Expected<MSFLayout> build();
+  Expected<MSFLayout> generateLayout();
+
+  /// Write the MSF layout to the underlying file.
+  Expected<FileBufferByteStream> commit(StringRef Path, MSFLayout &Layout);
 
   BumpPtrAllocator &getAllocator() { return Allocator; }
 
diff --git a/linux-x64/clang/include/llvm/DebugInfo/MSF/MSFCommon.h b/linux-x64/clang/include/llvm/DebugInfo/MSF/MSFCommon.h
index dd53264..2db2b71 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/MSF/MSFCommon.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/MSF/MSFCommon.h
@@ -69,7 +69,7 @@
   std::vector<ArrayRef<support::ulittle32_t>> StreamMap;
 };
 
-/// \brief Describes the layout of a stream in an MSF layout.  A "stream" here
+/// Describes the layout of a stream in an MSF layout.  A "stream" here
 /// is defined as any logical unit of data which may be arranged inside the MSF
 /// file as a sequence of (possibly discontiguous) blocks.  When we want to read
 /// from a particular MSF Stream, we fill out a stream layout structure and the
@@ -81,7 +81,7 @@
   std::vector<support::ulittle32_t> Blocks;
 };
 
-/// \brief Determine the layout of the FPM stream, given the MSF layout.  An FPM
+/// Determine the layout of the FPM stream, given the MSF layout.  An FPM
 /// stream spans 1 or more blocks, each at equally spaced intervals throughout
 /// the file.
 MSFStreamLayout getFpmStreamLayout(const MSFLayout &Msf,
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h
index 5c37d9b..52c9563 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h
@@ -34,7 +34,7 @@
   const DIASession &Session;
   CComPtr<IDiaEnumSectionContribs> Enumerator;
 };
-}
-}
+} // namespace pdb
+} // namespace llvm
 
 #endif // LLVM_DEBUGINFO_PDB_DIA_DIAENUMSECTIONCONTRIBS_H
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h
index 7bc28e3..4688f1f 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h
@@ -49,7 +49,7 @@
   const DIASession &Session;
   CComPtr<IDiaSectionContrib> Section;
 };
-}
-}
+} // namespace pdb
+} // namespace llvm
 
 #endif // LLVM_DEBUGINFO_PDB_DIA_DIASECTIONCONTRIB_H
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASession.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASession.h
index 4f3d728..a636594 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASession.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASession.h
@@ -41,6 +41,11 @@
 
   std::unique_ptr<PDBSymbol>
   findSymbolByAddress(uint64_t Address, PDB_SymType Type) const override;
+  std::unique_ptr<PDBSymbol> findSymbolByRVA(uint32_t RVA,
+                                             PDB_SymType Type) const override;
+  std::unique_ptr<PDBSymbol>
+  findSymbolBySectOffset(uint32_t Section, uint32_t Offset,
+                         PDB_SymType Type) const override;
 
   std::unique_ptr<IPDBEnumLineNumbers>
   findLineNumbers(const PDBSymbolCompiland &Compiland,
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASupport.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASupport.h
index 3b4a348..92ebc04 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASupport.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/DIA/DIASupport.h
@@ -22,14 +22,6 @@
 #define NOMINMAX
 #endif
 
-// llvm/Support/Debug.h unconditionally #defines DEBUG as a macro.
-// DIA headers #define it if it is not already defined, so we have
-// an order of includes problem.  The real fix is to make LLVM use
-// something less generic than DEBUG, such as LLVM_DEBUG(), but it's
-// fairly prevalent.  So for now, we save the definition state and
-// restore it.
-#pragma push_macro("DEBUG")
-
 // atlbase.h has to come before windows.h
 #include <atlbase.h>
 #include <windows.h>
@@ -39,6 +31,4 @@
 #include <dia2.h>
 #include <diacreate.h>
 
-#pragma pop_macro("DEBUG")
-
 #endif // LLVM_DEBUGINFO_PDB_DIA_DIASUPPORT_H
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/IPDBSession.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/IPDBSession.h
index 695d62c..88ec517 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/IPDBSession.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/IPDBSession.h
@@ -44,6 +44,11 @@
 
   virtual std::unique_ptr<PDBSymbol>
   findSymbolByAddress(uint64_t Address, PDB_SymType Type) const = 0;
+  virtual std::unique_ptr<PDBSymbol>
+  findSymbolByRVA(uint32_t RVA, PDB_SymType Type) const = 0;
+  virtual std::unique_ptr<PDBSymbol>
+  findSymbolBySectOffset(uint32_t Sect, uint32_t Offset,
+                         PDB_SymType Type) const = 0;
 
   virtual std::unique_ptr<IPDBEnumLineNumbers>
   findLineNumbers(const PDBSymbolCompiland &Compiland,
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h
index 8200f51..9eef404 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h
@@ -47,6 +47,8 @@
 
   uint32_t getRecordLength() const;
 
+  const SectionContrib &getSectionContrib() const;
+
 private:
   StringRef ModuleName;
   StringRef ObjFileName;
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h
index c918a5d..ce4d079 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h
@@ -49,6 +49,7 @@
 
   void setPdbFilePathNI(uint32_t NI);
   void setObjFileName(StringRef Name);
+  void setFirstSectionContrib(const SectionContrib &SC);
   void addSymbol(codeview::CVSymbol Symbol);
 
   void
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiStream.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiStream.h
index 760d19a..280615b 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiStream.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiStream.h
@@ -38,9 +38,9 @@
   friend class DbiStreamBuilder;
 
 public:
-  DbiStream(PDBFile &File, std::unique_ptr<msf::MappedBlockStream> Stream);
+  explicit DbiStream(std::unique_ptr<BinaryStream> Stream);
   ~DbiStream();
-  Error reload();
+  Error reload(PDBFile *Pdb);
 
   PdbRaw_DbiVer getDbiVersion() const;
   uint32_t getAge() const;
@@ -89,12 +89,11 @@
 
 private:
   Error initializeSectionContributionData();
-  Error initializeSectionHeadersData();
+  Error initializeSectionHeadersData(PDBFile *Pdb);
   Error initializeSectionMapData();
-  Error initializeFpoRecords();
+  Error initializeFpoRecords(PDBFile *Pdb);
 
-  PDBFile &Pdb;
-  std::unique_ptr<msf::MappedBlockStream> Stream;
+  std::unique_ptr<BinaryStream> Stream;
 
   PDBStringTable ECNames;
 
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
index daea062..51befcd 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
@@ -12,6 +12,7 @@
 
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/StringSet.h"
+#include "llvm/BinaryFormat/COFF.h"
 #include "llvm/Support/Error.h"
 
 #include "llvm/DebugInfo/PDB/Native/PDBFile.h"
@@ -46,10 +47,12 @@
   void setVersionHeader(PdbRaw_DbiVer V);
   void setAge(uint32_t A);
   void setBuildNumber(uint16_t B);
+  void setBuildNumber(uint8_t Major, uint8_t Minor);
   void setPdbDllVersion(uint16_t V);
   void setPdbDllRbld(uint16_t R);
   void setFlags(uint16_t F);
   void setMachineType(PDB_Machine M);
+  void setMachineType(COFF::MachineTypes M);
   void setSectionMap(ArrayRef<SecMapEntry> SecMap);
 
   // Add given bytes as a new stream.
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/InfoStream.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/InfoStream.h
index caeb423..8c52b04 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/InfoStream.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/InfoStream.h
@@ -30,7 +30,7 @@
   friend class InfoStreamBuilder;
 
 public:
-  InfoStream(std::unique_ptr<msf::MappedBlockStream> Stream);
+  InfoStream(std::unique_ptr<BinaryStream> Stream);
 
   Error reload();
 
@@ -52,11 +52,11 @@
 
   BinarySubstreamRef getNamedStreamsBuffer() const;
 
-  uint32_t getNamedStreamIndex(llvm::StringRef Name) const;
+  Expected<uint32_t> getNamedStreamIndex(llvm::StringRef Name) const;
   StringMap<uint32_t> named_streams() const;
 
 private:
-  std::unique_ptr<msf::MappedBlockStream> Stream;
+  std::unique_ptr<BinaryStream> Stream;
 
   const InfoStreamHeader *Header;
 
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/NativeSession.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/NativeSession.h
index 60a94d9..aff7ef2 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/NativeSession.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/NativeSession.h
@@ -60,6 +60,11 @@
 
   std::unique_ptr<PDBSymbol>
   findSymbolByAddress(uint64_t Address, PDB_SymType Type) const override;
+  std::unique_ptr<PDBSymbol> findSymbolByRVA(uint32_t RVA,
+                                             PDB_SymType Type) const override;
+  std::unique_ptr<PDBSymbol>
+  findSymbolBySectOffset(uint32_t Sect, uint32_t Offset,
+                         PDB_SymType Type) const override;
 
   std::unique_ptr<IPDBEnumLineNumbers>
   findLineNumbers(const PDBSymbolCompiland &Compiland,
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
index 58dda71..7f9c4cf 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
@@ -76,7 +76,7 @@
     std::unique_ptr<MemoryBuffer> Content;
   };
 
-  Expected<msf::MSFLayout> finalizeMsfLayout();
+  Error finalizeMsfLayout();
   Expected<uint32_t> allocateNamedStream(StringRef Name, uint32_t Size);
 
   void commitFpm(WritableBinaryStream &MsfBuffer, const msf::MSFLayout &Layout);
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/RawTypes.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/RawTypes.h
index 5cc8821..19f592d 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/RawTypes.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/Native/RawTypes.h
@@ -112,6 +112,8 @@
 
   static const uint16_t BuildMajorMask = 0x7F00;
   static const uint16_t BuildMajorShift = 8;
+
+  static const uint16_t NewVersionFormatMask = 0x8000;
 };
 
 /// The fixed size header that appears at the beginning of the DBI Stream.
@@ -175,18 +177,6 @@
 };
 static_assert(sizeof(DbiStreamHeader) == 64, "Invalid DbiStreamHeader size!");
 
-struct SectionContribEntry {
-  support::ulittle16_t Section;
-  char Padding1[2];
-  support::little32_t Offset;
-  support::little32_t Size;
-  support::ulittle32_t Characteristics;
-  support::ulittle16_t ModuleIndex;
-  char Padding2[2];
-  support::ulittle32_t DataCrc;
-  support::ulittle32_t RelocCrc;
-};
-
 /// The header preceeding the File Info Substream of the DBI stream.
 struct FileInfoSubstreamHeader {
   /// Total # of modules, should match number of records in the ModuleInfo
@@ -228,7 +218,7 @@
   support::ulittle32_t Mod;
 
   /// First section contribution of this module.
-  SectionContribEntry SC;
+  SectionContrib SC;
 
   /// See ModInfoFlags definition.
   support::ulittle16_t Flags;
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
index d6013e2..05d585d 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
@@ -39,7 +39,9 @@
   FORWARD_SYMBOL_METHOD(getAddressSection)
   FORWARD_SYMBOL_ID_METHOD(getClassParent)
   FORWARD_SYMBOL_METHOD(isCompilerGenerated)
+  FORWARD_SYMBOL_METHOD(isConstructorVirtualBase)
   FORWARD_SYMBOL_METHOD(isConstType)
+  FORWARD_SYMBOL_METHOD(isCxxReturnUdt)
   FORWARD_SYMBOL_METHOD(hasCustomCallingConvention)
   FORWARD_SYMBOL_METHOD(hasFarReturn)
   FORWARD_SYMBOL_METHOD(hasAlloca)
diff --git a/linux-x64/clang/include/llvm/DebugInfo/PDB/PDBTypes.h b/linux-x64/clang/include/llvm/DebugInfo/PDB/PDBTypes.h
index bc6233a..da6cb1d 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/PDB/PDBTypes.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/PDB/PDBTypes.h
@@ -111,7 +111,7 @@
 /// Specifies the hash algorithm that a source file from a PDB was hashed with.
 /// This corresponds to the CV_SourceChksum_t enumeration and are documented
 /// here: https://msdn.microsoft.com/en-us/library/e96az21x.aspx
-enum class PDB_Checksum { None = 0, MD5 = 1, SHA1 = 2 };
+enum class PDB_Checksum { None = 0, MD5 = 1, SHA1 = 2, SHA256 = 3 };
 
 /// These values correspond to the CV_CPU_TYPE_e enumeration, and are documented
 /// here: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx
@@ -225,6 +225,7 @@
   IlRel,
   MetaData,
   Constant,
+  RegRelAliasIndir,
   Max
 };
 
@@ -234,11 +235,24 @@
 
 /// These values correspond to the StackFrameTypeEnum enumeration, and are
 /// documented here: https://msdn.microsoft.com/en-us/library/bc5207xw.aspx.
-enum class PDB_StackFrameType { FPO, KernelTrap, KernelTSS, EBP, FrameData };
+enum class PDB_StackFrameType : uint16_t {
+  FPO,
+  KernelTrap,
+  KernelTSS,
+  EBP,
+  FrameData,
+  Unknown = 0xffff
+};
 
-/// These values correspond to the StackFrameTypeEnum enumeration, and are
-/// documented here: https://msdn.microsoft.com/en-us/library/bc5207xw.aspx.
-enum class PDB_MemoryType { Code, Data, Stack, HeapCode };
+/// These values correspond to the MemoryTypeEnum enumeration, and are
+/// documented here: https://msdn.microsoft.com/en-us/library/ms165609.aspx.
+enum class PDB_MemoryType : uint16_t {
+  Code,
+  Data,
+  Stack,
+  HeapCode,
+  Any = 0xffff
+};
 
 /// These values correspond to the Basictype enumeration, and are documented
 /// here: https://msdn.microsoft.com/en-us/library/4szdtzc3.aspx
@@ -268,7 +282,7 @@
 /// These values correspond to the flags that can be combined to control the
 /// return of an undecorated name for a C++ decorated name, and are documented
 /// here: https://msdn.microsoft.com/en-us/library/kszfk0fs.aspx
-enum PDB_UndnameFlags: uint32_t {
+enum PDB_UndnameFlags : uint32_t {
   Undname_Complete = 0x0,
   Undname_NoLeadingUnderscores = 0x1,
   Undname_NoMsKeywords = 0x2,
diff --git a/linux-x64/clang/include/llvm/DebugInfo/Symbolize/Symbolize.h b/linux-x64/clang/include/llvm/DebugInfo/Symbolize/Symbolize.h
index 6480aef..289148f 100644
--- a/linux-x64/clang/include/llvm/DebugInfo/Symbolize/Symbolize.h
+++ b/linux-x64/clang/include/llvm/DebugInfo/Symbolize/Symbolize.h
@@ -90,11 +90,11 @@
                                     const ObjectFile *Obj,
                                     const std::string &ArchName);
 
-  /// \brief Returns pair of pointers to object and debug object.
+  /// Returns pair of pointers to object and debug object.
   Expected<ObjectPair> getOrCreateObjectPair(const std::string &Path,
                                             const std::string &ArchName);
 
-  /// \brief Return a pointer to object file at specified path, for a specified
+  /// Return a pointer to object file at specified path, for a specified
   /// architecture (e.g. if path refers to a Mach-O universal binary, only one
   /// object file from it will be returned).
   Expected<ObjectFile *> getOrCreateObject(const std::string &Path,
@@ -102,14 +102,14 @@
 
   std::map<std::string, std::unique_ptr<SymbolizableModule>> Modules;
 
-  /// \brief Contains cached results of getOrCreateObjectPair().
+  /// Contains cached results of getOrCreateObjectPair().
   std::map<std::pair<std::string, std::string>, ObjectPair>
       ObjectPairForPathArch;
 
-  /// \brief Contains parsed binary for each path, or parsing error.
+  /// Contains parsed binary for each path, or parsing error.
   std::map<std::string, OwningBinary<Binary>> BinaryForPath;
 
-  /// \brief Parsed object file for path/architecture pair, where "path" refers
+  /// Parsed object file for path/architecture pair, where "path" refers
   /// to Mach-O universal binary.
   std::map<std::pair<std::string, std::string>, std::unique_ptr<ObjectFile>>
       ObjectForUBPathAndArch;
diff --git a/linux-x64/clang/include/llvm/Demangle/Compiler.h b/linux-x64/clang/include/llvm/Demangle/Compiler.h
deleted file mode 100644
index c996f9b..0000000
--- a/linux-x64/clang/include/llvm/Demangle/Compiler.h
+++ /dev/null
@@ -1,506 +0,0 @@
-//===-- llvm/Demangle/Compiler.h - Compiler abstraction support -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines several macros, based on the current compiler.  This allows
-// use of compiler-specific features in a way that remains portable.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_COMPILER_H
-#define LLVM_SUPPORT_COMPILER_H
-
-#include "llvm/Config/llvm-config.h"
-
-#if defined(_MSC_VER)
-#include <sal.h>
-#endif
-
-#ifndef __has_feature
-# define __has_feature(x) 0
-#endif
-
-#ifndef __has_extension
-# define __has_extension(x) 0
-#endif
-
-#ifndef __has_attribute
-# define __has_attribute(x) 0
-#endif
-
-#ifndef __has_cpp_attribute
-# define __has_cpp_attribute(x) 0
-#endif
-
-#ifndef __has_builtin
-# define __has_builtin(x) 0
-#endif
-
-/// \macro LLVM_GNUC_PREREQ
-/// \brief Extend the default __GNUC_PREREQ even if glibc's features.h isn't
-/// available.
-#ifndef LLVM_GNUC_PREREQ
-# if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
-#  define LLVM_GNUC_PREREQ(maj, min, patch) \
-    ((__GNUC__ << 20) + (__GNUC_MINOR__ << 10) + __GNUC_PATCHLEVEL__ >= \
-     ((maj) << 20) + ((min) << 10) + (patch))
-# elif defined(__GNUC__) && defined(__GNUC_MINOR__)
-#  define LLVM_GNUC_PREREQ(maj, min, patch) \
-    ((__GNUC__ << 20) + (__GNUC_MINOR__ << 10) >= ((maj) << 20) + ((min) << 10))
-# else
-#  define LLVM_GNUC_PREREQ(maj, min, patch) 0
-# endif
-#endif
-
-/// \macro LLVM_MSC_PREREQ
-/// \brief Is the compiler MSVC of at least the specified version?
-/// The common \param version values to check for are:
-///  * 1900: Microsoft Visual Studio 2015 / 14.0
-#ifdef _MSC_VER
-#define LLVM_MSC_PREREQ(version) (_MSC_VER >= (version))
-
-// We require at least MSVC 2015.
-#if !LLVM_MSC_PREREQ(1900)
-#error LLVM requires at least MSVC 2015.
-#endif
-
-#else
-#define LLVM_MSC_PREREQ(version) 0
-#endif
-
-/// \brief Does the compiler support ref-qualifiers for *this?
-///
-/// Sadly, this is separate from just rvalue reference support because GCC
-/// and MSVC implemented this later than everything else.
-#if __has_feature(cxx_rvalue_references) || LLVM_GNUC_PREREQ(4, 8, 1)
-#define LLVM_HAS_RVALUE_REFERENCE_THIS 1
-#else
-#define LLVM_HAS_RVALUE_REFERENCE_THIS 0
-#endif
-
-/// Expands to '&' if ref-qualifiers for *this are supported.
-///
-/// This can be used to provide lvalue/rvalue overrides of member functions.
-/// The rvalue override should be guarded by LLVM_HAS_RVALUE_REFERENCE_THIS
-#if LLVM_HAS_RVALUE_REFERENCE_THIS
-#define LLVM_LVALUE_FUNCTION &
-#else
-#define LLVM_LVALUE_FUNCTION
-#endif
-
-/// LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked
-/// into a shared library, then the class should be private to the library and
-/// not accessible from outside it.  Can also be used to mark variables and
-/// functions, making them private to any shared library they are linked into.
-/// On PE/COFF targets, library visibility is the default, so this isn't needed.
-#if (__has_attribute(visibility) || LLVM_GNUC_PREREQ(4, 0, 0)) &&              \
-    !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(LLVM_ON_WIN32)
-#define LLVM_LIBRARY_VISIBILITY __attribute__ ((visibility("hidden")))
-#else
-#define LLVM_LIBRARY_VISIBILITY
-#endif
-
-#if defined(__GNUC__)
-#define LLVM_PREFETCH(addr, rw, locality) __builtin_prefetch(addr, rw, locality)
-#else
-#define LLVM_PREFETCH(addr, rw, locality)
-#endif
-
-#if __has_attribute(used) || LLVM_GNUC_PREREQ(3, 1, 0)
-#define LLVM_ATTRIBUTE_USED __attribute__((__used__))
-#else
-#define LLVM_ATTRIBUTE_USED
-#endif
-
-/// LLVM_NODISCARD - Warn if a type or return value is discarded.
-#if __cplusplus > 201402L && __has_cpp_attribute(nodiscard)
-#define LLVM_NODISCARD [[nodiscard]]
-#elif !__cplusplus
-// Workaround for llvm.org/PR23435, since clang 3.6 and below emit a spurious
-// error when __has_cpp_attribute is given a scoped attribute in C mode.
-#define LLVM_NODISCARD
-#elif __has_cpp_attribute(clang::warn_unused_result)
-#define LLVM_NODISCARD [[clang::warn_unused_result]]
-#else
-#define LLVM_NODISCARD
-#endif
-
-// Some compilers warn about unused functions. When a function is sometimes
-// used or not depending on build settings (e.g. a function only called from
-// within "assert"), this attribute can be used to suppress such warnings.
-//
-// However, it shouldn't be used for unused *variables*, as those have a much
-// more portable solution:
-//   (void)unused_var_name;
-// Prefer cast-to-void wherever it is sufficient.
-#if __has_attribute(unused) || LLVM_GNUC_PREREQ(3, 1, 0)
-#define LLVM_ATTRIBUTE_UNUSED __attribute__((__unused__))
-#else
-#define LLVM_ATTRIBUTE_UNUSED
-#endif
-
-// FIXME: Provide this for PE/COFF targets.
-#if (__has_attribute(weak) || LLVM_GNUC_PREREQ(4, 0, 0)) &&                    \
-    (!defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(LLVM_ON_WIN32))
-#define LLVM_ATTRIBUTE_WEAK __attribute__((__weak__))
-#else
-#define LLVM_ATTRIBUTE_WEAK
-#endif
-
-// Prior to clang 3.2, clang did not accept any spelling of
-// __has_attribute(const), so assume it is supported.
-#if defined(__clang__) || defined(__GNUC__)
-// aka 'CONST' but following LLVM Conventions.
-#define LLVM_READNONE __attribute__((__const__))
-#else
-#define LLVM_READNONE
-#endif
-
-#if __has_attribute(pure) || defined(__GNUC__)
-// aka 'PURE' but following LLVM Conventions.
-#define LLVM_READONLY __attribute__((__pure__))
-#else
-#define LLVM_READONLY
-#endif
-
-#if __has_builtin(__builtin_expect) || LLVM_GNUC_PREREQ(4, 0, 0)
-#define LLVM_LIKELY(EXPR) __builtin_expect((bool)(EXPR), true)
-#define LLVM_UNLIKELY(EXPR) __builtin_expect((bool)(EXPR), false)
-#else
-#define LLVM_LIKELY(EXPR) (EXPR)
-#define LLVM_UNLIKELY(EXPR) (EXPR)
-#endif
-
-/// LLVM_ATTRIBUTE_NOINLINE - On compilers where we have a directive to do so,
-/// mark a method "not for inlining".
-#if __has_attribute(noinline) || LLVM_GNUC_PREREQ(3, 4, 0)
-#define LLVM_ATTRIBUTE_NOINLINE __attribute__((noinline))
-#elif defined(_MSC_VER)
-#define LLVM_ATTRIBUTE_NOINLINE __declspec(noinline)
-#else
-#define LLVM_ATTRIBUTE_NOINLINE
-#endif
-
-/// LLVM_ATTRIBUTE_ALWAYS_INLINE - On compilers where we have a directive to do
-/// so, mark a method "always inline" because it is performance sensitive. GCC
-/// 3.4 supported this but is buggy in various cases and produces unimplemented
-/// errors, just use it in GCC 4.0 and later.
-#if __has_attribute(always_inline) || LLVM_GNUC_PREREQ(4, 0, 0)
-#define LLVM_ATTRIBUTE_ALWAYS_INLINE __attribute__((always_inline))
-#elif defined(_MSC_VER)
-#define LLVM_ATTRIBUTE_ALWAYS_INLINE __forceinline
-#else
-#define LLVM_ATTRIBUTE_ALWAYS_INLINE
-#endif
-
-#ifdef __GNUC__
-#define LLVM_ATTRIBUTE_NORETURN __attribute__((noreturn))
-#elif defined(_MSC_VER)
-#define LLVM_ATTRIBUTE_NORETURN __declspec(noreturn)
-#else
-#define LLVM_ATTRIBUTE_NORETURN
-#endif
-
-#if __has_attribute(returns_nonnull) || LLVM_GNUC_PREREQ(4, 9, 0)
-#define LLVM_ATTRIBUTE_RETURNS_NONNULL __attribute__((returns_nonnull))
-#elif defined(_MSC_VER)
-#define LLVM_ATTRIBUTE_RETURNS_NONNULL _Ret_notnull_
-#else
-#define LLVM_ATTRIBUTE_RETURNS_NONNULL
-#endif
-
-/// \macro LLVM_ATTRIBUTE_RETURNS_NOALIAS Used to mark a function as returning a
-/// pointer that does not alias any other valid pointer.
-#ifdef __GNUC__
-#define LLVM_ATTRIBUTE_RETURNS_NOALIAS __attribute__((__malloc__))
-#elif defined(_MSC_VER)
-#define LLVM_ATTRIBUTE_RETURNS_NOALIAS __declspec(restrict)
-#else
-#define LLVM_ATTRIBUTE_RETURNS_NOALIAS
-#endif
-
-/// LLVM_FALLTHROUGH - Mark fallthrough cases in switch statements.
-#if __cplusplus > 201402L && __has_cpp_attribute(fallthrough)
-#define LLVM_FALLTHROUGH [[fallthrough]]
-#elif __has_cpp_attribute(gnu::fallthrough)
-#define LLVM_FALLTHROUGH [[gnu::fallthrough]]
-#elif !__cplusplus
-// Workaround for llvm.org/PR23435, since clang 3.6 and below emit a spurious
-// error when __has_cpp_attribute is given a scoped attribute in C mode.
-#define LLVM_FALLTHROUGH
-#elif __has_cpp_attribute(clang::fallthrough)
-#define LLVM_FALLTHROUGH [[clang::fallthrough]]
-#else
-#define LLVM_FALLTHROUGH
-#endif
-
-/// LLVM_EXTENSION - Support compilers where we have a keyword to suppress
-/// pedantic diagnostics.
-#ifdef __GNUC__
-#define LLVM_EXTENSION __extension__
-#else
-#define LLVM_EXTENSION
-#endif
-
-// LLVM_ATTRIBUTE_DEPRECATED(decl, "message")
-#if __has_feature(attribute_deprecated_with_message)
-# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
-  decl __attribute__((deprecated(message)))
-#elif defined(__GNUC__)
-# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
-  decl __attribute__((deprecated))
-#elif defined(_MSC_VER)
-# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
-  __declspec(deprecated(message)) decl
-#else
-# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
-  decl
-#endif
-
-/// LLVM_BUILTIN_UNREACHABLE - On compilers which support it, expands
-/// to an expression which states that it is undefined behavior for the
-/// compiler to reach this point.  Otherwise is not defined.
-#if __has_builtin(__builtin_unreachable) || LLVM_GNUC_PREREQ(4, 5, 0)
-# define LLVM_BUILTIN_UNREACHABLE __builtin_unreachable()
-#elif defined(_MSC_VER)
-# define LLVM_BUILTIN_UNREACHABLE __assume(false)
-#endif
-
-/// LLVM_BUILTIN_TRAP - On compilers which support it, expands to an expression
-/// which causes the program to exit abnormally.
-#if __has_builtin(__builtin_trap) || LLVM_GNUC_PREREQ(4, 3, 0)
-# define LLVM_BUILTIN_TRAP __builtin_trap()
-#elif defined(_MSC_VER)
-// The __debugbreak intrinsic is supported by MSVC, does not require forward
-// declarations involving platform-specific typedefs (unlike RaiseException),
-// results in a call to vectored exception handlers, and encodes to a short
-// instruction that still causes the trapping behavior we want.
-# define LLVM_BUILTIN_TRAP __debugbreak()
-#else
-# define LLVM_BUILTIN_TRAP *(volatile int*)0x11 = 0
-#endif
-
-/// LLVM_BUILTIN_DEBUGTRAP - On compilers which support it, expands to
-/// an expression which causes the program to break while running
-/// under a debugger.
-#if __has_builtin(__builtin_debugtrap)
-# define LLVM_BUILTIN_DEBUGTRAP __builtin_debugtrap()
-#elif defined(_MSC_VER)
-// The __debugbreak intrinsic is supported by MSVC and breaks while
-// running under the debugger, and also supports invoking a debugger
-// when the OS is configured appropriately.
-# define LLVM_BUILTIN_DEBUGTRAP __debugbreak()
-#else
-// Just continue execution when built with compilers that have no
-// support. This is a debugging aid and not intended to force the
-// program to abort if encountered.
-# define LLVM_BUILTIN_DEBUGTRAP
-#endif
-
-/// \macro LLVM_ASSUME_ALIGNED
-/// \brief Returns a pointer with an assumed alignment.
-#if __has_builtin(__builtin_assume_aligned) || LLVM_GNUC_PREREQ(4, 7, 0)
-# define LLVM_ASSUME_ALIGNED(p, a) __builtin_assume_aligned(p, a)
-#elif defined(LLVM_BUILTIN_UNREACHABLE)
-// As of today, clang does not support __builtin_assume_aligned.
-# define LLVM_ASSUME_ALIGNED(p, a) \
-           (((uintptr_t(p) % (a)) == 0) ? (p) : (LLVM_BUILTIN_UNREACHABLE, (p)))
-#else
-# define LLVM_ASSUME_ALIGNED(p, a) (p)
-#endif
-
-/// \macro LLVM_ALIGNAS
-/// \brief Used to specify a minimum alignment for a structure or variable.
-#if __GNUC__ && !__has_feature(cxx_alignas) && !LLVM_GNUC_PREREQ(4, 8, 1)
-# define LLVM_ALIGNAS(x) __attribute__((aligned(x)))
-#else
-# define LLVM_ALIGNAS(x) alignas(x)
-#endif
-
-/// \macro LLVM_PACKED
-/// \brief Used to specify a packed structure.
-/// LLVM_PACKED(
-///    struct A {
-///      int i;
-///      int j;
-///      int k;
-///      long long l;
-///   });
-///
-/// LLVM_PACKED_START
-/// struct B {
-///   int i;
-///   int j;
-///   int k;
-///   long long l;
-/// };
-/// LLVM_PACKED_END
-#ifdef _MSC_VER
-# define LLVM_PACKED(d) __pragma(pack(push, 1)) d __pragma(pack(pop))
-# define LLVM_PACKED_START __pragma(pack(push, 1))
-# define LLVM_PACKED_END   __pragma(pack(pop))
-#else
-# define LLVM_PACKED(d) d __attribute__((packed))
-# define LLVM_PACKED_START _Pragma("pack(push, 1)")
-# define LLVM_PACKED_END   _Pragma("pack(pop)")
-#endif
-
-/// \macro LLVM_PTR_SIZE
-/// \brief A constant integer equivalent to the value of sizeof(void*).
-/// Generally used in combination with LLVM_ALIGNAS or when doing computation in
-/// the preprocessor.
-#ifdef __SIZEOF_POINTER__
-# define LLVM_PTR_SIZE __SIZEOF_POINTER__
-#elif defined(_WIN64)
-# define LLVM_PTR_SIZE 8
-#elif defined(_WIN32)
-# define LLVM_PTR_SIZE 4
-#elif defined(_MSC_VER)
-# error "could not determine LLVM_PTR_SIZE as a constant int for MSVC"
-#else
-# define LLVM_PTR_SIZE sizeof(void *)
-#endif
-
-/// \macro LLVM_MEMORY_SANITIZER_BUILD
-/// \brief Whether LLVM itself is built with MemorySanitizer instrumentation.
-#if __has_feature(memory_sanitizer)
-# define LLVM_MEMORY_SANITIZER_BUILD 1
-# include <sanitizer/msan_interface.h>
-#else
-# define LLVM_MEMORY_SANITIZER_BUILD 0
-# define __msan_allocated_memory(p, size)
-# define __msan_unpoison(p, size)
-#endif
-
-/// \macro LLVM_ADDRESS_SANITIZER_BUILD
-/// \brief Whether LLVM itself is built with AddressSanitizer instrumentation.
-#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
-# define LLVM_ADDRESS_SANITIZER_BUILD 1
-# include <sanitizer/asan_interface.h>
-#else
-# define LLVM_ADDRESS_SANITIZER_BUILD 0
-# define __asan_poison_memory_region(p, size)
-# define __asan_unpoison_memory_region(p, size)
-#endif
-
-/// \macro LLVM_THREAD_SANITIZER_BUILD
-/// \brief Whether LLVM itself is built with ThreadSanitizer instrumentation.
-#if __has_feature(thread_sanitizer) || defined(__SANITIZE_THREAD__)
-# define LLVM_THREAD_SANITIZER_BUILD 1
-#else
-# define LLVM_THREAD_SANITIZER_BUILD 0
-#endif
-
-#if LLVM_THREAD_SANITIZER_BUILD
-// Thread Sanitizer is a tool that finds races in code.
-// See http://code.google.com/p/data-race-test/wiki/DynamicAnnotations .
-// tsan detects these exact functions by name.
-#ifdef __cplusplus
-extern "C" {
-#endif
-void AnnotateHappensAfter(const char *file, int line, const volatile void *cv);
-void AnnotateHappensBefore(const char *file, int line, const volatile void *cv);
-void AnnotateIgnoreWritesBegin(const char *file, int line);
-void AnnotateIgnoreWritesEnd(const char *file, int line);
-#ifdef __cplusplus
-}
-#endif
-
-// This marker is used to define a happens-before arc. The race detector will
-// infer an arc from the begin to the end when they share the same pointer
-// argument.
-# define TsanHappensBefore(cv) AnnotateHappensBefore(__FILE__, __LINE__, cv)
-
-// This marker defines the destination of a happens-before arc.
-# define TsanHappensAfter(cv) AnnotateHappensAfter(__FILE__, __LINE__, cv)
-
-// Ignore any races on writes between here and the next TsanIgnoreWritesEnd.
-# define TsanIgnoreWritesBegin() AnnotateIgnoreWritesBegin(__FILE__, __LINE__)
-
-// Resume checking for racy writes.
-# define TsanIgnoreWritesEnd() AnnotateIgnoreWritesEnd(__FILE__, __LINE__)
-#else
-# define TsanHappensBefore(cv)
-# define TsanHappensAfter(cv)
-# define TsanIgnoreWritesBegin()
-# define TsanIgnoreWritesEnd()
-#endif
-
-/// \macro LLVM_NO_SANITIZE
-/// \brief Disable a particular sanitizer for a function.
-#if __has_attribute(no_sanitize)
-#define LLVM_NO_SANITIZE(KIND) __attribute__((no_sanitize(KIND)))
-#else
-#define LLVM_NO_SANITIZE(KIND)
-#endif
-
-/// \brief Mark debug helper function definitions like dump() that should not be
-/// stripped from debug builds.
-/// Note that you should also surround dump() functions with
-/// `#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)` so they do always
-/// get stripped in release builds.
-// FIXME: Move this to a private config.h as it's not usable in public headers.
-#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
-#define LLVM_DUMP_METHOD LLVM_ATTRIBUTE_NOINLINE LLVM_ATTRIBUTE_USED
-#else
-#define LLVM_DUMP_METHOD LLVM_ATTRIBUTE_NOINLINE
-#endif
-
-/// \macro LLVM_PRETTY_FUNCTION
-/// \brief Gets a user-friendly looking function signature for the current scope
-/// using the best available method on each platform.  The exact format of the
-/// resulting string is implementation specific and non-portable, so this should
-/// only be used, for example, for logging or diagnostics.
-#if defined(_MSC_VER)
-#define LLVM_PRETTY_FUNCTION __FUNCSIG__
-#elif defined(__GNUC__) || defined(__clang__)
-#define LLVM_PRETTY_FUNCTION __PRETTY_FUNCTION__
-#else
-#define LLVM_PRETTY_FUNCTION __func__
-#endif
-
-/// \macro LLVM_THREAD_LOCAL
-/// \brief A thread-local storage specifier which can be used with globals,
-/// extern globals, and static globals.
-///
-/// This is essentially an extremely restricted analog to C++11's thread_local
-/// support, and uses that when available. However, it falls back on
-/// platform-specific or vendor-provided extensions when necessary. These
-/// extensions don't support many of the C++11 thread_local's features. You
-/// should only use this for PODs that you can statically initialize to
-/// some constant value. In almost all circumstances this is most appropriate
-/// for use with a pointer, integer, or small aggregation of pointers and
-/// integers.
-#if LLVM_ENABLE_THREADS
-#if __has_feature(cxx_thread_local)
-#define LLVM_THREAD_LOCAL thread_local
-#elif defined(_MSC_VER)
-// MSVC supports this with a __declspec.
-#define LLVM_THREAD_LOCAL __declspec(thread)
-#else
-// Clang, GCC, and other compatible compilers used __thread prior to C++11 and
-// we only need the restricted functionality that provides.
-#define LLVM_THREAD_LOCAL __thread
-#endif
-#else // !LLVM_ENABLE_THREADS
-// If threading is disabled entirely, this compiles to nothing and you get
-// a normal global variable.
-#define LLVM_THREAD_LOCAL
-#endif
-
-/// \macro LLVM_ENABLE_EXCEPTIONS
-/// \brief Whether LLVM is built with exception support.
-#if __has_feature(cxx_exceptions)
-#define LLVM_ENABLE_EXCEPTIONS 1
-#elif defined(__GNUC__) && defined(__EXCEPTIONS)
-#define LLVM_ENABLE_EXCEPTIONS 1
-#elif defined(_MSC_VER) && defined(_CPPUNWIND)
-#define LLVM_ENABLE_EXCEPTIONS 1
-#endif
-
-#endif
diff --git a/linux-x64/clang/include/llvm/Demangle/Demangle.h b/linux-x64/clang/include/llvm/Demangle/Demangle.h
index d2eb56b..b118631 100644
--- a/linux-x64/clang/include/llvm/Demangle/Demangle.h
+++ b/linux-x64/clang/include/llvm/Demangle/Demangle.h
@@ -7,6 +7,9 @@
 //
 //===----------------------------------------------------------------------===//
 
+#ifndef LLVM_DEMANGLE_DEMANGLE_H
+#define LLVM_DEMANGLE_DEMANGLE_H
+
 #include <cstddef>
 
 namespace llvm {
@@ -16,13 +19,77 @@
 /// The mangled_name is demangled into buf and returned. If the buffer is not
 /// large enough, realloc is used to expand it.
 ///
-/// The *status will be set to
-///   unknown_error: -4
-///   invalid_args:  -3
-///   invalid_mangled_name: -2
-///   memory_alloc_failure: -1
-///   success: 0
+/// The *status will be set to a value from the following enumeration
+enum : int {
+  demangle_unknown_error = -4,
+  demangle_invalid_args = -3,
+  demangle_invalid_mangled_name = -2,
+  demangle_memory_alloc_failure = -1,
+  demangle_success = 0,
+};
 
 char *itaniumDemangle(const char *mangled_name, char *buf, size_t *n,
                       int *status);
-}
+
+enum MSDemangleFlags { MSDF_None = 0, MSDF_DumpBackrefs = 1 << 0 };
+char *microsoftDemangle(const char *mangled_name, char *buf, size_t *n,
+                        int *status, MSDemangleFlags Flags = MSDF_None);
+
+/// "Partial" demangler. This supports demangling a string into an AST
+/// (typically an intermediate stage in itaniumDemangle) and querying certain
+/// properties or partially printing the demangled name.
+struct ItaniumPartialDemangler {
+  ItaniumPartialDemangler();
+
+  ItaniumPartialDemangler(ItaniumPartialDemangler &&Other);
+  ItaniumPartialDemangler &operator=(ItaniumPartialDemangler &&Other);
+
+  /// Demangle into an AST. Subsequent calls to the rest of the member functions
+  /// implicitly operate on the AST this produces.
+  /// \return true on error, false otherwise
+  bool partialDemangle(const char *MangledName);
+
+  /// Just print the entire mangled name into Buf. Buf and N behave like the
+  /// second and third parameters to itaniumDemangle.
+  char *finishDemangle(char *Buf, size_t *N) const;
+
+  /// Get the base name of a function. This doesn't include trailing template
+  /// arguments, ie for "a::b<int>" this function returns "b".
+  char *getFunctionBaseName(char *Buf, size_t *N) const;
+
+  /// Get the context name for a function. For "a::b::c", this function returns
+  /// "a::b".
+  char *getFunctionDeclContextName(char *Buf, size_t *N) const;
+
+  /// Get the entire name of this function.
+  char *getFunctionName(char *Buf, size_t *N) const;
+
+  /// Get the parameters for this function.
+  char *getFunctionParameters(char *Buf, size_t *N) const;
+  char *getFunctionReturnType(char *Buf, size_t *N) const;
+
+  /// If this function has any any cv or reference qualifiers. These imply that
+  /// the function is a non-static member function.
+  bool hasFunctionQualifiers() const;
+
+  /// If this symbol describes a constructor or destructor.
+  bool isCtorOrDtor() const;
+
+  /// If this symbol describes a function.
+  bool isFunction() const;
+
+  /// If this symbol describes a variable.
+  bool isData() const;
+
+  /// If this symbol is a <special-name>. These are generally implicitly
+  /// generated by the implementation, such as vtables and typeinfo names.
+  bool isSpecialName() const;
+
+  ~ItaniumPartialDemangler();
+private:
+  void *RootNode;
+  void *Context;
+};
+} // namespace llvm
+
+#endif
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/ExecutionEngine.h b/linux-x64/clang/include/llvm/ExecutionEngine/ExecutionEngine.h
index 7932688..b61cb24 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/ExecutionEngine.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/ExecutionEngine.h
@@ -60,7 +60,7 @@
 
 } // end namespace object
 
-/// \brief Helper class for helping synchronize access to the global address map
+/// Helper class for helping synchronize access to the global address map
 /// table.  Access to this class should be serialized under a mutex.
 class ExecutionEngineState {
 public:
@@ -86,7 +86,7 @@
     return GlobalAddressReverseMap;
   }
 
-  /// \brief Erase an entry from the mapping table.
+  /// Erase an entry from the mapping table.
   ///
   /// \returns The address that \p ToUnmap was happed to.
   uint64_t RemoveMapping(StringRef Name);
@@ -94,7 +94,7 @@
 
 using FunctionCreator = std::function<void *(const std::string &)>;
 
-/// \brief Abstract interface for implementation execution of LLVM modules,
+/// Abstract interface for implementation execution of LLVM modules,
 /// designed to support both interpreter and just-in-time (JIT) compiler
 /// implementations.
 class ExecutionEngine {
@@ -634,7 +634,7 @@
     return *this;
   }
 
-  // \brief Use OrcMCJITReplacement instead of MCJIT. Off by default.
+  // Use OrcMCJITReplacement instead of MCJIT. Off by default.
   void setUseOrcMCJITReplacement(bool UseOrcMCJITReplacement) {
     this->UseOrcMCJITReplacement = UseOrcMCJITReplacement;
   }
@@ -642,7 +642,7 @@
   void setEmulatedTLS(bool EmulatedTLS) {
     this->EmulatedTLS = EmulatedTLS;
   }
-  
+
   TargetMachine *selectTarget();
 
   /// selectTarget - Pick a target either via -march or by guessing the native
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/JITEventListener.h b/linux-x64/clang/include/llvm/ExecutionEngine/JITEventListener.h
index ff7840f..1ce772c 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/JITEventListener.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/JITEventListener.h
@@ -15,9 +15,11 @@
 #ifndef LLVM_EXECUTIONENGINE_JITEVENTLISTENER_H
 #define LLVM_EXECUTIONENGINE_JITEVENTLISTENER_H
 
+#include "llvm-c/ExecutionEngine.h"
 #include "llvm/Config/llvm-config.h"
 #include "llvm/ExecutionEngine/RuntimeDyld.h"
 #include "llvm/IR/DebugLoc.h"
+#include "llvm/Support/CBindingWrapping.h"
 #include <cstdint>
 #include <vector>
 
@@ -115,10 +117,21 @@
   }
 #endif // USE_OPROFILE
 
+#if LLVM_USE_PERF
+  static JITEventListener *createPerfJITEventListener();
+#else
+  static JITEventListener *createPerfJITEventListener()
+  {
+    return nullptr;
+  }
+#endif // USE_PERF
+
 private:
   virtual void anchor();
 };
 
+DEFINE_SIMPLE_CONVERSION_FUNCTIONS(JITEventListener, LLVMJITEventListenerRef)
+
 } // end namespace llvm
 
 #endif // LLVM_EXECUTIONENGINE_JITEVENTLISTENER_H
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/JITSymbol.h b/linux-x64/clang/include/llvm/ExecutionEngine/JITSymbol.h
index 86ab173..0e33f01 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/JITSymbol.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/JITSymbol.h
@@ -32,14 +32,14 @@
 
 namespace object {
 
-class BasicSymbolRef;
+class SymbolRef;
 
 } // end namespace object
 
-/// @brief Represents an address in the target process's address space.
+/// Represents an address in the target process's address space.
 using JITTargetAddress = uint64_t;
 
-/// @brief Flags for symbols in the JIT.
+/// Flags for symbols in the JIT.
 class JITSymbolFlags {
 public:
   using UnderlyingType = uint8_t;
@@ -52,63 +52,77 @@
     Common = 1U << 2,
     Absolute = 1U << 3,
     Exported = 1U << 4,
-    NotMaterialized = 1U << 5
+    Callable = 1U << 5,
+    Lazy = 1U << 6,
+    Materializing = 1U << 7
   };
 
   static JITSymbolFlags stripTransientFlags(JITSymbolFlags Orig) {
-    return static_cast<FlagNames>(Orig.Flags & ~NotMaterialized);
+    return static_cast<FlagNames>(Orig.Flags & ~Lazy & ~Materializing);
   }
 
-  /// @brief Default-construct a JITSymbolFlags instance.
+  /// Default-construct a JITSymbolFlags instance.
   JITSymbolFlags() = default;
 
-  /// @brief Construct a JITSymbolFlags instance from the given flags.
+  /// Construct a JITSymbolFlags instance from the given flags.
   JITSymbolFlags(FlagNames Flags) : Flags(Flags) {}
 
-  /// @brief Construct a JITSymbolFlags instance from the given flags and target
+  /// Construct a JITSymbolFlags instance from the given flags and target
   ///        flags.
   JITSymbolFlags(FlagNames Flags, TargetFlagsType TargetFlags)
     : Flags(Flags), TargetFlags(TargetFlags) {}
 
-  /// @brief Return true if there was an error retrieving this symbol.
+  /// Return true if there was an error retrieving this symbol.
   bool hasError() const {
     return (Flags & HasError) == HasError;
   }
 
-  /// @brief Returns true if this symbol has been fully materialized (i.e. is
-  ///        callable).
-  bool isMaterialized() const { return !(Flags & NotMaterialized); }
+  /// Returns true if this is a lazy symbol.
+  ///        This flag is used internally by the JIT APIs to track
+  ///        materialization states.
+  bool isLazy() const { return Flags & Lazy; }
 
-  /// @brief Returns true if the Weak flag is set.
+  /// Returns true if this symbol is in the process of being
+  ///        materialized.
+  bool isMaterializing() const { return Flags & Materializing; }
+
+  /// Returns true if this symbol is fully materialized.
+  ///        (i.e. neither lazy, nor materializing).
+  bool isMaterialized() const { return !(Flags & (Lazy | Materializing)); }
+
+  /// Returns true if the Weak flag is set.
   bool isWeak() const {
     return (Flags & Weak) == Weak;
   }
 
-  /// @brief Returns true if the Common flag is set.
+  /// Returns true if the Common flag is set.
   bool isCommon() const {
     return (Flags & Common) == Common;
   }
 
-  /// @brief Returns true if the symbol isn't weak or common.
+  /// Returns true if the symbol isn't weak or common.
   bool isStrong() const {
     return !isWeak() && !isCommon();
   }
 
-  /// @brief Returns true if the Exported flag is set.
+  /// Returns true if the Exported flag is set.
   bool isExported() const {
     return (Flags & Exported) == Exported;
   }
 
-  /// @brief Implicitly convert to the underlying flags type.
+  /// Returns true if the given symbol is known to be callable.
+  bool isCallable() const { return (Flags & Callable) == Callable; }
+
+  /// Implicitly convert to the underlying flags type.
   operator UnderlyingType&() { return Flags; }
 
-  /// @brief Implicitly convert to the underlying flags type.
+  /// Implicitly convert to the underlying flags type.
   operator const UnderlyingType&() const { return Flags; }
 
-  /// @brief Return a reference to the target-specific flags.
+  /// Return a reference to the target-specific flags.
   TargetFlagsType& getTargetFlags() { return TargetFlags; }
 
-  /// @brief Return a reference to the target-specific flags.
+  /// Return a reference to the target-specific flags.
   const TargetFlagsType& getTargetFlags() const { return TargetFlags; }
 
   /// Construct a JITSymbolFlags value based on the flags of the given global
@@ -117,14 +131,15 @@
 
   /// Construct a JITSymbolFlags value based on the flags of the given libobject
   /// symbol.
-  static JITSymbolFlags fromObjectSymbol(const object::BasicSymbolRef &Symbol);
+  static Expected<JITSymbolFlags>
+  fromObjectSymbol(const object::SymbolRef &Symbol);
 
 private:
   UnderlyingType Flags = None;
   TargetFlagsType TargetFlags = 0;
 };
 
-/// @brief ARM-specific JIT symbol flags.
+/// ARM-specific JIT symbol flags.
 /// FIXME: This should be moved into a target-specific header.
 class ARMJITSymbolFlags {
 public:
@@ -137,62 +152,65 @@
 
   operator JITSymbolFlags::TargetFlagsType&() { return Flags; }
 
-  static ARMJITSymbolFlags fromObjectSymbol(
-                                           const object::BasicSymbolRef &Symbol);
+  static ARMJITSymbolFlags fromObjectSymbol(const object::SymbolRef &Symbol);
+
 private:
   JITSymbolFlags::TargetFlagsType Flags = 0;
 };
 
-/// @brief Represents a symbol that has been evaluated to an address already.
+/// Represents a symbol that has been evaluated to an address already.
 class JITEvaluatedSymbol {
 public:
   JITEvaluatedSymbol() = default;
 
-  /// @brief Create a 'null' symbol.
+  /// Create a 'null' symbol.
   JITEvaluatedSymbol(std::nullptr_t) {}
 
-  /// @brief Create a symbol for the given address and flags.
+  /// Create a symbol for the given address and flags.
   JITEvaluatedSymbol(JITTargetAddress Address, JITSymbolFlags Flags)
       : Address(Address), Flags(Flags) {}
 
-  /// @brief An evaluated symbol converts to 'true' if its address is non-zero.
+  /// An evaluated symbol converts to 'true' if its address is non-zero.
   explicit operator bool() const { return Address != 0; }
 
-  /// @brief Return the address of this symbol.
+  /// Return the address of this symbol.
   JITTargetAddress getAddress() const { return Address; }
 
-  /// @brief Return the flags for this symbol.
+  /// Return the flags for this symbol.
   JITSymbolFlags getFlags() const { return Flags; }
 
+  /// Set the flags for this symbol.
+  void setFlags(JITSymbolFlags Flags) { this->Flags = std::move(Flags); }
+
 private:
   JITTargetAddress Address = 0;
   JITSymbolFlags Flags;
 };
 
-/// @brief Represents a symbol in the JIT.
+/// Represents a symbol in the JIT.
 class JITSymbol {
 public:
   using GetAddressFtor = std::function<Expected<JITTargetAddress>()>;
 
-  /// @brief Create a 'null' symbol, used to represent a "symbol not found"
+  /// Create a 'null' symbol, used to represent a "symbol not found"
   ///        result from a successful (non-erroneous) lookup.
   JITSymbol(std::nullptr_t)
       : CachedAddr(0) {}
 
-  /// @brief Create a JITSymbol representing an error in the symbol lookup
+  /// Create a JITSymbol representing an error in the symbol lookup
   ///        process (e.g. a network failure during a remote lookup).
   JITSymbol(Error Err)
     : Err(std::move(Err)), Flags(JITSymbolFlags::HasError) {}
 
-  /// @brief Create a symbol for a definition with a known address.
+  /// Create a symbol for a definition with a known address.
   JITSymbol(JITTargetAddress Addr, JITSymbolFlags Flags)
       : CachedAddr(Addr), Flags(Flags) {}
 
-  /// @brief Construct a JITSymbol from a JITEvaluatedSymbol.
+  /// Construct a JITSymbol from a JITEvaluatedSymbol.
   JITSymbol(JITEvaluatedSymbol Sym)
       : CachedAddr(Sym.getAddress()), Flags(Sym.getFlags()) {}
 
-  /// @brief Create a symbol for a definition that doesn't have a known address
+  /// Create a symbol for a definition that doesn't have a known address
   ///        yet.
   /// @param GetAddress A functor to materialize a definition (fixing the
   ///        address) on demand.
@@ -232,19 +250,19 @@
       CachedAddr.~JITTargetAddress();
   }
 
-  /// @brief Returns true if the symbol exists, false otherwise.
+  /// Returns true if the symbol exists, false otherwise.
   explicit operator bool() const {
     return !Flags.hasError() && (CachedAddr || GetAddress);
   }
 
-  /// @brief Move the error field value out of this JITSymbol.
+  /// Move the error field value out of this JITSymbol.
   Error takeError() {
     if (Flags.hasError())
       return std::move(Err);
     return Error::success();
   }
 
-  /// @brief Get the address of the symbol in the target address space. Returns
+  /// Get the address of the symbol in the target address space. Returns
   ///        '0' if the symbol does not exist.
   Expected<JITTargetAddress> getAddress() {
     assert(!Flags.hasError() && "getAddress called on error value");
@@ -270,7 +288,7 @@
   JITSymbolFlags Flags;
 };
 
-/// @brief Symbol resolution interface.
+/// Symbol resolution interface.
 ///
 /// Allows symbol flags and addresses to be looked up by name.
 /// Symbol queries are done in bulk (i.e. you request resolution of a set of
@@ -284,14 +302,14 @@
 
   virtual ~JITSymbolResolver() = default;
 
-  /// @brief Returns the fully resolved address and flags for each of the given
+  /// Returns the fully resolved address and flags for each of the given
   ///        symbols.
   ///
   /// This method will return an error if any of the given symbols can not be
   /// resolved, or if the resolution process itself triggers an error.
   virtual Expected<LookupResult> lookup(const LookupSet &Symbols) = 0;
 
-  /// @brief Returns the symbol flags for each of the given symbols.
+  /// Returns the symbol flags for each of the given symbols.
   ///
   /// This method does NOT return an error if any of the given symbols is
   /// missing. Instead, that symbol will be left out of the result map.
@@ -301,15 +319,15 @@
   virtual void anchor();
 };
 
-/// \brief Legacy symbol resolution interface.
+/// Legacy symbol resolution interface.
 class LegacyJITSymbolResolver : public JITSymbolResolver {
 public:
-  /// @brief Performs lookup by, for each symbol, first calling
+  /// Performs lookup by, for each symbol, first calling
   ///        findSymbolInLogicalDylib and if that fails calling
   ///        findSymbol.
   Expected<LookupResult> lookup(const LookupSet &Symbols) final;
 
-  /// @brief Performs flags lookup by calling findSymbolInLogicalDylib and
+  /// Performs flags lookup by calling findSymbolInLogicalDylib and
   ///        returning the flags value for that symbol.
   Expected<LookupFlagsResult> lookupFlags(const LookupSet &Symbols) final;
 
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
index a64a6dd..8bd21a0 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
@@ -20,9 +20,10 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/ExecutionEngine/JITSymbol.h"
-#include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/IndirectionUtils.h"
 #include "llvm/ExecutionEngine/Orc/LambdaResolver.h"
+#include "llvm/ExecutionEngine/Orc/Layer.h"
+#include "llvm/ExecutionEngine/Orc/Legacy.h"
 #include "llvm/ExecutionEngine/Orc/OrcError.h"
 #include "llvm/ExecutionEngine/RuntimeDyld.h"
 #include "llvm/IR/Attributes.h"
@@ -57,7 +58,47 @@
 
 namespace orc {
 
-/// @brief Compile-on-demand layer.
+class ExtractingIRMaterializationUnit;
+
+class CompileOnDemandLayer2 : public IRLayer {
+  friend class ExtractingIRMaterializationUnit;
+
+public:
+  /// Builder for IndirectStubsManagers.
+  using IndirectStubsManagerBuilder =
+      std::function<std::unique_ptr<IndirectStubsManager>()>;
+
+  using GetAvailableContextFunction = std::function<LLVMContext &()>;
+
+  CompileOnDemandLayer2(ExecutionSession &ES, IRLayer &BaseLayer,
+                        JITCompileCallbackManager &CCMgr,
+                        IndirectStubsManagerBuilder BuildIndirectStubsManager,
+                        GetAvailableContextFunction GetAvailableContext);
+
+  Error add(VSO &V, VModuleKey K, std::unique_ptr<Module> M) override;
+
+  void emit(MaterializationResponsibility R, VModuleKey K,
+            std::unique_ptr<Module> M) override;
+
+private:
+  using StubManagersMap =
+      std::map<const VSO *, std::unique_ptr<IndirectStubsManager>>;
+
+  IndirectStubsManager &getStubsManager(const VSO &V);
+
+  void emitExtractedFunctionsModule(MaterializationResponsibility R,
+                                    std::unique_ptr<Module> M);
+
+  mutable std::mutex CODLayerMutex;
+
+  IRLayer &BaseLayer;
+  JITCompileCallbackManager &CCMgr;
+  IndirectStubsManagerBuilder BuildIndirectStubsManager;
+  StubManagersMap StubsMgrs;
+  GetAvailableContextFunction GetAvailableContext;
+};
+
+/// Compile-on-demand layer.
 ///
 ///   When a module is added to this layer a stub is created for each of its
 /// function definitions. The stubs and other global values are immediately
@@ -196,10 +237,10 @@
 
 public:
 
-  /// @brief Module partitioning functor.
+  /// Module partitioning functor.
   using PartitioningFtor = std::function<std::set<Function*>(Function&)>;
 
-  /// @brief Builder for IndirectStubsManagers.
+  /// Builder for IndirectStubsManagers.
   using IndirectStubsManagerBuilderT =
       std::function<std::unique_ptr<IndirectStubsMgrT>()>;
 
@@ -209,7 +250,7 @@
   using SymbolResolverSetter =
       std::function<void(VModuleKey K, std::shared_ptr<SymbolResolver> R)>;
 
-  /// @brief Construct a compile-on-demand layer instance.
+  /// Construct a compile-on-demand layer instance.
   CompileOnDemandLayer(ExecutionSession &ES, BaseLayerT &BaseLayer,
                        SymbolResolverGetter GetSymbolResolver,
                        SymbolResolverSetter SetSymbolResolver,
@@ -230,7 +271,7 @@
       consumeError(removeModule(LogicalDylibs.begin()->first));
   }
 
-  /// @brief Add a module to the compile-on-demand layer.
+  /// Add a module to the compile-on-demand layer.
   Error addModule(VModuleKey K, std::unique_ptr<Module> M) {
 
     assert(!LogicalDylibs.count(K) && "VModuleKey K already in use");
@@ -242,12 +283,12 @@
     return addLogicalModule(I->second, std::move(M));
   }
 
-  /// @brief Add extra modules to an existing logical module.
+  /// Add extra modules to an existing logical module.
   Error addExtraModule(VModuleKey K, std::unique_ptr<Module> M) {
     return addLogicalModule(LogicalDylibs[K], std::move(M));
   }
 
-  /// @brief Remove the module represented by the given key.
+  /// Remove the module represented by the given key.
   ///
   ///   This will remove all modules in the layers below that were derived from
   /// the module represented by K.
@@ -259,7 +300,7 @@
     return Err;
   }
 
-  /// @brief Search for the given named symbol.
+  /// Search for the given named symbol.
   /// @param Name The name of the symbol to search for.
   /// @param ExportedSymbolsOnly If true, search only for exported symbols.
   /// @return A handle for the given named symbol, if it exists.
@@ -275,7 +316,7 @@
     return BaseLayer.findSymbol(Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Get the address of a symbol provided by this layer, or some layer
+  /// Get the address of a symbol provided by this layer, or some layer
   ///        below this one.
   JITSymbol findSymbolIn(VModuleKey K, const std::string &Name,
                          bool ExportedSymbolsOnly) {
@@ -283,7 +324,7 @@
     return LogicalDylibs[K].findSymbol(BaseLayer, Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Update the stub for the given function to point at FnBodyAddr.
+  /// Update the stub for the given function to point at FnBodyAddr.
   /// This can be used to support re-optimization.
   /// @return true if the function exists and the stub is updated, false
   ///         otherwise.
@@ -316,7 +357,7 @@
     // simplifying symbol lookup.
     LD.StaticRenamer.rename(*SrcMPtr);
 
-    // Bump the linkage and rename any anonymous/privote members in SrcM to
+    // Bump the linkage and rename any anonymous/private members in SrcM to
     // ensure that everything will resolve properly after we partition SrcM.
     makeAllSymbolsExternallyAccessible(*SrcMPtr);
 
@@ -349,22 +390,21 @@
         // Create a callback, associate it with the stub for the function,
         // and set the compile action to compile the partition containing the
         // function.
-        if (auto CCInfoOrErr = CompileCallbackMgr.getCompileCallback()) {
-          auto &CCInfo = *CCInfoOrErr;
+        auto CompileAction = [this, &LD, LMId, &F]() -> JITTargetAddress {
+          if (auto FnImplAddrOrErr = this->extractAndCompile(LD, LMId, F))
+            return *FnImplAddrOrErr;
+          else {
+            // FIXME: Report error, return to 'abort' or something similar.
+            consumeError(FnImplAddrOrErr.takeError());
+            return 0;
+          }
+        };
+        if (auto CCAddr =
+                CompileCallbackMgr.getCompileCallback(std::move(CompileAction)))
           StubInits[MangledName] =
-            std::make_pair(CCInfo.getAddress(),
-                           JITSymbolFlags::fromGlobalValue(F));
-          CCInfo.setCompileAction([this, &LD, LMId, &F]() -> JITTargetAddress {
-              if (auto FnImplAddrOrErr = this->extractAndCompile(LD, LMId, F))
-                return *FnImplAddrOrErr;
-              else {
-                // FIXME: Report error, return to 'abort' or something similar.
-                consumeError(FnImplAddrOrErr.takeError());
-                return 0;
-              }
-            });
-        } else
-          return CCInfoOrErr.takeError();
+              std::make_pair(*CCAddr, JITSymbolFlags::fromGlobalValue(F));
+        else
+          return CCAddr.takeError();
       }
 
       if (auto Err = LD.StubsMgr->createStubs(StubInits))
@@ -402,9 +442,8 @@
 
     // Initializers may refer to functions declared (but not defined) in this
     // module. Build a materializer to clone decls on demand.
-    Error MaterializerErrors = Error::success();
     auto Materializer = createLambdaMaterializer(
-      [&LD, &GVsM, &MaterializerErrors](Value *V) -> Value* {
+      [&LD, &GVsM](Value *V) -> Value* {
         if (auto *F = dyn_cast<Function>(V)) {
           // Decls in the original module just get cloned.
           if (F->isDeclaration())
@@ -416,18 +455,8 @@
           const DataLayout &DL = GVsM->getDataLayout();
           std::string FName = mangle(F->getName(), DL);
           unsigned PtrBitWidth = DL.getPointerTypeSizeInBits(F->getType());
-          JITTargetAddress StubAddr = 0;
-
-          // Get the address for the stub. If we encounter an error while
-          // doing so, stash it in the MaterializerErrors variable and use a
-          // null address as a placeholder.
-          if (auto StubSym = LD.StubsMgr->findStub(FName, false)) {
-            if (auto StubAddrOrErr = StubSym.getAddress())
-              StubAddr = *StubAddrOrErr;
-            else
-              MaterializerErrors = joinErrors(std::move(MaterializerErrors),
-                                              StubAddrOrErr.takeError());
-          }
+          JITTargetAddress StubAddr =
+            LD.StubsMgr->findStub(FName, false).getAddress();
 
           ConstantInt *StubAddrCI =
             ConstantInt::get(GVsM->getContext(), APInt(PtrBitWidth, StubAddr));
@@ -456,15 +485,10 @@
       NewA->setAliasee(cast<Constant>(Init));
     }
 
-    if (MaterializerErrors)
-      return MaterializerErrors;
-
     // Build a resolver for the globals module and add it to the base layer.
     auto LegacyLookup = [this, &LD](const std::string &Name) -> JITSymbol {
       if (auto Sym = LD.StubsMgr->findStub(Name, false))
         return Sym;
-      else if (auto Err = Sym.takeError())
-        return std::move(Err);
 
       if (auto Sym = LD.findSymbol(BaseLayer, Name, false))
         return Sym;
@@ -475,25 +499,35 @@
     };
 
     auto GVsResolver = createSymbolResolver(
-        [&LD, LegacyLookup](SymbolFlagsMap &SymbolFlags,
-                            const SymbolNameSet &Symbols) {
-          auto NotFoundViaLegacyLookup =
-              lookupFlagsWithLegacyFn(SymbolFlags, Symbols, LegacyLookup);
+        [&LD, LegacyLookup](const SymbolNameSet &Symbols) {
+          auto SymbolFlags = lookupFlagsWithLegacyFn(Symbols, LegacyLookup);
 
-          if (!NotFoundViaLegacyLookup) {
-            logAllUnhandledErrors(NotFoundViaLegacyLookup.takeError(), errs(),
+          if (!SymbolFlags) {
+            logAllUnhandledErrors(SymbolFlags.takeError(), errs(),
                                   "CODLayer/GVsResolver flags lookup failed: ");
-            SymbolFlags.clear();
-            return SymbolNameSet();
+            return SymbolFlagsMap();
           }
 
-          return LD.BackingResolver->lookupFlags(SymbolFlags,
-                                                 *NotFoundViaLegacyLookup);
+          if (SymbolFlags->size() == Symbols.size())
+            return *SymbolFlags;
+
+          SymbolNameSet NotFoundViaLegacyLookup;
+          for (auto &S : Symbols)
+            if (!SymbolFlags->count(S))
+              NotFoundViaLegacyLookup.insert(S);
+          auto SymbolFlags2 =
+              LD.BackingResolver->lookupFlags(NotFoundViaLegacyLookup);
+
+          for (auto &KV : SymbolFlags2)
+            (*SymbolFlags)[KV.first] = std::move(KV.second);
+
+          return *SymbolFlags;
         },
-        [&LD, LegacyLookup](std::shared_ptr<AsynchronousSymbolQuery> Query,
-                            SymbolNameSet Symbols) {
+        [this, &LD,
+         LegacyLookup](std::shared_ptr<AsynchronousSymbolQuery> Query,
+                       SymbolNameSet Symbols) {
           auto NotFoundViaLegacyLookup =
-              lookupWithLegacyFn(*Query, Symbols, LegacyLookup);
+              lookupWithLegacyFn(ES, *Query, Symbols, LegacyLookup);
           return LD.BackingResolver->lookup(Query, NotFoundViaLegacyLookup);
         });
 
@@ -634,23 +668,34 @@
 
     // Create memory manager and symbol resolver.
     auto Resolver = createSymbolResolver(
-        [&LD, LegacyLookup](SymbolFlagsMap &SymbolFlags,
-                            const SymbolNameSet &Symbols) {
-          auto NotFoundViaLegacyLookup =
-              lookupFlagsWithLegacyFn(SymbolFlags, Symbols, LegacyLookup);
-          if (!NotFoundViaLegacyLookup) {
-            logAllUnhandledErrors(NotFoundViaLegacyLookup.takeError(), errs(),
+        [&LD, LegacyLookup](const SymbolNameSet &Symbols) {
+          auto SymbolFlags = lookupFlagsWithLegacyFn(Symbols, LegacyLookup);
+          if (!SymbolFlags) {
+            logAllUnhandledErrors(SymbolFlags.takeError(), errs(),
                                   "CODLayer/SubResolver flags lookup failed: ");
-            SymbolFlags.clear();
-            return SymbolNameSet();
+            return SymbolFlagsMap();
           }
-          return LD.BackingResolver->lookupFlags(SymbolFlags,
-                                                 *NotFoundViaLegacyLookup);
+
+          if (SymbolFlags->size() == Symbols.size())
+            return *SymbolFlags;
+
+          SymbolNameSet NotFoundViaLegacyLookup;
+          for (auto &S : Symbols)
+            if (!SymbolFlags->count(S))
+              NotFoundViaLegacyLookup.insert(S);
+
+          auto SymbolFlags2 =
+              LD.BackingResolver->lookupFlags(NotFoundViaLegacyLookup);
+
+          for (auto &KV : SymbolFlags2)
+            (*SymbolFlags)[KV.first] = std::move(KV.second);
+
+          return *SymbolFlags;
         },
-        [&LD, LegacyLookup](std::shared_ptr<AsynchronousSymbolQuery> Q,
-                            SymbolNameSet Symbols) {
+        [this, &LD, LegacyLookup](std::shared_ptr<AsynchronousSymbolQuery> Q,
+                                  SymbolNameSet Symbols) {
           auto NotFoundViaLegacyLookup =
-              lookupWithLegacyFn(*Q, Symbols, LegacyLookup);
+              lookupWithLegacyFn(ES, *Q, Symbols, LegacyLookup);
           return LD.BackingResolver->lookup(Q,
                                             std::move(NotFoundViaLegacyLookup));
         });
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/CompileUtils.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/CompileUtils.h
index a8050ff..213a591 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/CompileUtils.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/CompileUtils.h
@@ -16,13 +16,14 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ExecutionEngine/ObjectCache.h"
-#include "llvm/ExecutionEngine/ObjectMemoryBuffer.h"
+#include "llvm/ExecutionEngine/Orc/ExecutionUtils.h"
 #include "llvm/IR/LegacyPassManager.h"
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/SmallVectorMemoryBuffer.h"
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/Target/TargetMachine.h"
 #include <algorithm>
@@ -35,35 +36,21 @@
 
 namespace orc {
 
-/// @brief Simple compile functor: Takes a single IR module and returns an
-///        ObjectFile.
+/// Simple compile functor: Takes a single IR module and returns an ObjectFile.
+/// This compiler supports a single compilation thread and LLVMContext only.
+/// For multithreaded compilation, use MultiThreadedSimpleCompiler below.
 class SimpleCompiler {
-private:
-  class SmallVectorMemoryBuffer : public MemoryBuffer {
-  public:
-    SmallVectorMemoryBuffer(SmallVector<char, 0> Buffer)
-        : Buffer(std::move(Buffer)) {
-      init(this->Buffer.data(), this->Buffer.data() + this->Buffer.size(),
-           false);
-    }
-
-    BufferKind getBufferKind() const override { return MemoryBuffer_Malloc; }
-
-  private:
-    SmallVector<char, 0> Buffer;
-  };
-
 public:
   using CompileResult = std::unique_ptr<MemoryBuffer>;
 
-  /// @brief Construct a simple compile functor with the given target.
+  /// Construct a simple compile functor with the given target.
   SimpleCompiler(TargetMachine &TM, ObjectCache *ObjCache = nullptr)
     : TM(TM), ObjCache(ObjCache) {}
 
-  /// @brief Set an ObjectCache to query before compiling.
+  /// Set an ObjectCache to query before compiling.
   void setObjectCache(ObjectCache *NewCache) { ObjCache = NewCache; }
 
-  /// @brief Compile a Module to an ObjectFile.
+  /// Compile a Module to an ObjectFile.
   CompileResult operator()(Module &M) {
     CompileResult CachedObject = tryToLoadFromObjectCache(M);
     if (CachedObject)
@@ -114,6 +101,29 @@
   ObjectCache *ObjCache = nullptr;
 };
 
+/// A thread-safe version of SimpleCompiler.
+///
+/// This class creates a new TargetMachine and SimpleCompiler instance for each
+/// compile.
+class MultiThreadedSimpleCompiler {
+public:
+  MultiThreadedSimpleCompiler(JITTargetMachineBuilder JTMB,
+                              ObjectCache *ObjCache = nullptr)
+      : JTMB(std::move(JTMB)), ObjCache(ObjCache) {}
+
+  void setObjectCache(ObjectCache *ObjCache) { this->ObjCache = ObjCache; }
+
+  std::unique_ptr<MemoryBuffer> operator()(Module &M) {
+    auto TM = cantFail(JTMB.createTargetMachine());
+    SimpleCompiler C(*TM, ObjCache);
+    return C(M);
+  }
+
+private:
+  JITTargetMachineBuilder JTMB;
+  ObjectCache *ObjCache = nullptr;
+};
+
 } // end namespace orc
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Core.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Core.h
index 26fec8b..8456dff 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Core.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Core.h
@@ -14,9 +14,12 @@
 #ifndef LLVM_EXECUTIONENGINE_ORC_CORE_H
 #define LLVM_EXECUTIONENGINE_ORC_CORE_H
 
+#include "llvm/ADT/BitmaskEnum.h"
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/ExecutionEngine/Orc/SymbolStringPool.h"
+#include "llvm/IR/Module.h"
 
+#include <list>
 #include <map>
 #include <memory>
 #include <set>
@@ -25,139 +28,173 @@
 namespace llvm {
 namespace orc {
 
+// Forward declare some classes.
+class AsynchronousSymbolQuery;
+class ExecutionSession;
+class MaterializationUnit;
+class MaterializationResponsibility;
+class VSO;
+
 /// VModuleKey provides a unique identifier (allocated and managed by
 /// ExecutionSessions) for a module added to the JIT.
 using VModuleKey = uint64_t;
 
-class VSO;
-
-/// @brief A set of symbol names (represented by SymbolStringPtrs for
+/// A set of symbol names (represented by SymbolStringPtrs for
 //         efficiency).
 using SymbolNameSet = std::set<SymbolStringPtr>;
 
-/// @brief A map from symbol names (as SymbolStringPtrs) to JITSymbols
+/// Render a SymbolNameSet to an ostream.
+raw_ostream &operator<<(raw_ostream &OS, const SymbolNameSet &Symbols);
+
+/// A map from symbol names (as SymbolStringPtrs) to JITSymbols
 ///        (address/flags pairs).
 using SymbolMap = std::map<SymbolStringPtr, JITEvaluatedSymbol>;
 
-/// @brief A map from symbol names (as SymbolStringPtrs) to JITSymbolFlags.
+/// Render a SymbolMap to an ostream.
+raw_ostream &operator<<(raw_ostream &OS, const SymbolMap &Symbols);
+
+/// A map from symbol names (as SymbolStringPtrs) to JITSymbolFlags.
 using SymbolFlagsMap = std::map<SymbolStringPtr, JITSymbolFlags>;
 
-/// @brief A symbol query that returns results via a callback when results are
-///        ready.
+/// Render a SymbolMap to an ostream.
+raw_ostream &operator<<(raw_ostream &OS, const SymbolFlagsMap &Symbols);
+
+/// A base class for materialization failures that allows the failing
+///        symbols to be obtained for logging.
+using SymbolDependenceMap = std::map<VSO *, SymbolNameSet>;
+
+/// Render a SymbolDependendeMap.
+raw_ostream &operator<<(raw_ostream &OS, const SymbolDependenceMap &Deps);
+
+/// A list of VSO pointers.
+using VSOList = std::vector<VSO *>;
+
+/// Render a VSOList.
+raw_ostream &operator<<(raw_ostream &OS, const VSOList &VSOs);
+
+/// Callback to notify client that symbols have been resolved.
+using SymbolsResolvedCallback = std::function<void(Expected<SymbolMap>)>;
+
+/// Callback to notify client that symbols are ready for execution.
+using SymbolsReadyCallback = std::function<void(Error)>;
+
+/// Callback to register the dependencies for a given query.
+using RegisterDependenciesFunction =
+    std::function<void(const SymbolDependenceMap &)>;
+
+/// This can be used as the value for a RegisterDependenciesFunction if there
+/// are no dependants to register with.
+extern RegisterDependenciesFunction NoDependenciesToRegister;
+
+/// Used to notify a VSO that the given set of symbols failed to materialize.
+class FailedToMaterialize : public ErrorInfo<FailedToMaterialize> {
+public:
+  static char ID;
+
+  FailedToMaterialize(SymbolNameSet Symbols);
+  std::error_code convertToErrorCode() const override;
+  void log(raw_ostream &OS) const override;
+  const SymbolNameSet &getSymbols() const { return Symbols; }
+
+private:
+  SymbolNameSet Symbols;
+};
+
+/// Used to notify clients when symbols can not be found during a lookup.
+class SymbolsNotFound : public ErrorInfo<SymbolsNotFound> {
+public:
+  static char ID;
+
+  SymbolsNotFound(SymbolNameSet Symbols);
+  std::error_code convertToErrorCode() const override;
+  void log(raw_ostream &OS) const override;
+  const SymbolNameSet &getSymbols() const { return Symbols; }
+
+private:
+  SymbolNameSet Symbols;
+};
+
+/// Tracks responsibility for materialization, and mediates interactions between
+/// MaterializationUnits and VSOs.
 ///
-/// makes a callback when all symbols are available.
-class AsynchronousSymbolQuery {
+/// An instance of this class is passed to MaterializationUnits when their
+/// materialize method is called. It allows MaterializationUnits to resolve and
+/// finalize symbols, or abandon materialization by notifying any unmaterialized
+/// symbols of an error.
+class MaterializationResponsibility {
+  friend class MaterializationUnit;
 public:
-  /// @brief Callback to notify client that symbols have been resolved.
-  using SymbolsResolvedCallback = std::function<void(Expected<SymbolMap>)>;
+  MaterializationResponsibility(MaterializationResponsibility &&) = default;
+  MaterializationResponsibility &
+  operator=(MaterializationResponsibility &&) = default;
 
-  /// @brief Callback to notify client that symbols are ready for execution.
-  using SymbolsReadyCallback = std::function<void(Error)>;
+  /// Destruct a MaterializationResponsibility instance. In debug mode
+  ///        this asserts that all symbols being tracked have been either
+  ///        finalized or notified of an error.
+  ~MaterializationResponsibility();
 
-  /// @brief Create a query for the given symbols, notify-resolved and
-  ///        notify-ready callbacks.
-  AsynchronousSymbolQuery(const SymbolNameSet &Symbols,
-                          SymbolsResolvedCallback NotifySymbolsResolved,
-                          SymbolsReadyCallback NotifySymbolsReady);
+  /// Returns the target VSO that these symbols are being materialized
+  ///        into.
+  VSO &getTargetVSO() const { return V; }
 
-  /// @brief Notify client that the query failed.
-  ///
-  /// If the notify-resolved callback has not been made yet, then it is called
-  /// with the given error, and the notify-finalized callback is never made.
-  ///
-  /// If the notify-resolved callback has already been made then then the
-  /// notify-finalized callback is called with the given error.
-  ///
-  /// It is illegal to call setFailed after both callbacks have been made.
-  void setFailed(Error Err);
+  /// Returns the symbol flags map for this responsibility instance.
+  SymbolFlagsMap getSymbols() { return SymbolFlags; }
 
-  /// @brief Set the resolved symbol information for the given symbol name.
-  ///
-  /// If this symbol was the last one not resolved, this will trigger a call to
-  /// the notify-finalized callback passing the completed sybol map.
-  void setDefinition(SymbolStringPtr Name, JITEvaluatedSymbol Sym);
+  /// Returns the names of any symbols covered by this
+  /// MaterializationResponsibility object that have queries pending. This
+  /// information can be used to return responsibility for unrequested symbols
+  /// back to the VSO via the delegate method.
+  SymbolNameSet getRequestedSymbols();
 
-  /// @brief Notify the query that a requested symbol is ready for execution.
+  /// Resolves the given symbols. Individual calls to this method may
+  ///        resolve a subset of the symbols, but all symbols must have been
+  ///        resolved prior to calling finalize.
+  void resolve(const SymbolMap &Symbols);
+
+  /// Finalizes all symbols tracked by this instance.
+  void finalize();
+
+  /// Adds new symbols to the VSO and this responsibility instance.
+  ///        VSO entries start out in the materializing state.
   ///
-  /// This decrements the query's internal count of not-yet-ready symbols. If
-  /// this call to notifySymbolFinalized sets the counter to zero, it will call
-  /// the notify-finalized callback with Error::success as the value.
-  void notifySymbolFinalized();
+  ///   This method can be used by materialization units that want to add
+  /// additional symbols at materialization time (e.g. stubs, compile
+  /// callbacks, metadata).
+  Error defineMaterializing(const SymbolFlagsMap &SymbolFlags);
+
+  /// Notify all unfinalized symbols that an error has occurred.
+  /// This will remove all symbols covered by this MaterializationResponsibilty
+  /// from V, and send an error to any queries waiting on these symbols.
+  void failMaterialization();
+
+  /// Transfers responsibility to the given MaterializationUnit for all
+  /// symbols defined by that MaterializationUnit. This allows
+  /// materializers to break up work based on run-time information (e.g.
+  /// by introspecting which symbols have actually been looked up and
+  /// materializing only those).
+  void replace(std::unique_ptr<MaterializationUnit> MU);
+
+  /// Delegates responsibility for the given symbols to the returned
+  /// materialization responsibility. Useful for breaking up work between
+  /// threads, or different kinds of materialization processes.
+  MaterializationResponsibility delegate(const SymbolNameSet &Symbols);
+
+  void addDependencies(const SymbolStringPtr &Name,
+                       const SymbolDependenceMap &Dependencies);
+
+  /// Add dependencies that apply to all symbols covered by this instance.
+  void addDependenciesForAll(const SymbolDependenceMap &Dependencies);
 
 private:
-  SymbolMap Symbols;
-  size_t OutstandingResolutions = 0;
-  size_t OutstandingFinalizations = 0;
-  SymbolsResolvedCallback NotifySymbolsResolved;
-  SymbolsReadyCallback NotifySymbolsReady;
+  /// Create a MaterializationResponsibility for the given VSO and
+  ///        initial symbols.
+  MaterializationResponsibility(VSO &V, SymbolFlagsMap SymbolFlags);
+
+  VSO &V;
+  SymbolFlagsMap SymbolFlags;
 };
 
-/// @brief SymbolResolver is a composable interface for looking up symbol flags
-///        and addresses using the AsynchronousSymbolQuery type. It will
-///        eventually replace the LegacyJITSymbolResolver interface as the
-///        stardard ORC symbol resolver type.
-class SymbolResolver {
-public:
-  virtual ~SymbolResolver() = default;
-
-  /// @brief Returns the flags for each symbol in Symbols that can be found,
-  ///        along with the set of symbol that could not be found.
-  virtual SymbolNameSet lookupFlags(SymbolFlagsMap &Flags,
-                                    const SymbolNameSet &Symbols) = 0;
-
-  /// @brief For each symbol in Symbols that can be found, assigns that symbols
-  ///        value in Query. Returns the set of symbols that could not be found.
-  virtual SymbolNameSet lookup(std::shared_ptr<AsynchronousSymbolQuery> Query,
-                               SymbolNameSet Symbols) = 0;
-
-private:
-  virtual void anchor();
-};
-
-/// @brief Implements SymbolResolver with a pair of supplied function objects
-///        for convenience. See createSymbolResolver.
-template <typename LookupFlagsFn, typename LookupFn>
-class LambdaSymbolResolver final : public SymbolResolver {
-public:
-  template <typename LookupFlagsFnRef, typename LookupFnRef>
-  LambdaSymbolResolver(LookupFlagsFnRef &&LookupFlags, LookupFnRef &&Lookup)
-      : LookupFlags(std::forward<LookupFlagsFnRef>(LookupFlags)),
-        Lookup(std::forward<LookupFnRef>(Lookup)) {}
-
-  SymbolNameSet lookupFlags(SymbolFlagsMap &Flags,
-                            const SymbolNameSet &Symbols) final {
-    return LookupFlags(Flags, Symbols);
-  }
-
-  SymbolNameSet lookup(std::shared_ptr<AsynchronousSymbolQuery> Query,
-                       SymbolNameSet Symbols) final {
-    return Lookup(std::move(Query), std::move(Symbols));
-  }
-
-private:
-  LookupFlagsFn LookupFlags;
-  LookupFn Lookup;
-};
-
-/// @brief Creates a SymbolResolver implementation from the pair of supplied
-///        function objects.
-template <typename LookupFlagsFn, typename LookupFn>
-std::unique_ptr<LambdaSymbolResolver<
-    typename std::remove_cv<
-        typename std::remove_reference<LookupFlagsFn>::type>::type,
-    typename std::remove_cv<
-        typename std::remove_reference<LookupFn>::type>::type>>
-createSymbolResolver(LookupFlagsFn &&LookupFlags, LookupFn &&Lookup) {
-  using LambdaSymbolResolverImpl = LambdaSymbolResolver<
-      typename std::remove_cv<
-          typename std::remove_reference<LookupFlagsFn>::type>::type,
-      typename std::remove_cv<
-          typename std::remove_reference<LookupFn>::type>::type>;
-  return llvm::make_unique<LambdaSymbolResolverImpl>(
-      std::forward<LookupFlagsFn>(LookupFlags), std::forward<LookupFn>(Lookup));
-}
-
-/// @brief A MaterializationUnit represents a set of symbol definitions that can
+/// A MaterializationUnit represents a set of symbol definitions that can
 ///        be materialized as a group, or individually discarded (when
 ///        overriding definitions are encountered).
 ///
@@ -167,226 +204,585 @@
 /// definition is added or already present.
 class MaterializationUnit {
 public:
+  MaterializationUnit(SymbolFlagsMap InitalSymbolFlags)
+      : SymbolFlags(std::move(InitalSymbolFlags)) {}
+
   virtual ~MaterializationUnit() {}
 
-  /// @brief Return the set of symbols that this source provides.
-  virtual SymbolFlagsMap getSymbols() = 0;
+  /// Return the set of symbols that this source provides.
+  const SymbolFlagsMap &getSymbols() const { return SymbolFlags; }
 
-  /// @brief Implementations of this method should materialize all symbols
-  ///        in the materialzation unit, except for those that have been
-  ///        previously discarded.
-  virtual Error materialize(VSO &V) = 0;
+  /// Called by materialization dispatchers (see
+  /// ExecutionSession::DispatchMaterializationFunction) to trigger
+  /// materialization of this MaterializationUnit.
+  void doMaterialize(VSO &V) {
+    materialize(MaterializationResponsibility(V, std::move(SymbolFlags)));
+  }
 
-  /// @brief Implementations of this method should discard the given symbol
-  ///        from the source (e.g. if the source is an LLVM IR Module and the
-  ///        symbol is a function, delete the function body or mark it available
-  ///        externally).
-  virtual void discard(VSO &V, SymbolStringPtr Name) = 0;
+  /// Called by VSOs to notify MaterializationUnits that the given symbol has
+  /// been overridden.
+  void doDiscard(const VSO &V, SymbolStringPtr Name) {
+    SymbolFlags.erase(Name);
+    discard(V, std::move(Name));
+  }
+
+protected:
+  SymbolFlagsMap SymbolFlags;
 
 private:
   virtual void anchor();
+
+  /// Implementations of this method should materialize all symbols
+  ///        in the materialzation unit, except for those that have been
+  ///        previously discarded.
+  virtual void materialize(MaterializationResponsibility R) = 0;
+
+  /// Implementations of this method should discard the given symbol
+  ///        from the source (e.g. if the source is an LLVM IR Module and the
+  ///        symbol is a function, delete the function body or mark it available
+  ///        externally).
+  virtual void discard(const VSO &V, SymbolStringPtr Name) = 0;
 };
 
-/// @brief Represents a dynamic linkage unit in a JIT process.
+using MaterializationUnitList =
+    std::vector<std::unique_ptr<MaterializationUnit>>;
+
+/// A MaterializationUnit implementation for pre-existing absolute symbols.
 ///
-/// VSO acts as a symbol table (symbol definitions can be set and the dylib
-/// queried to find symbol addresses) and as a key for tracking resources
-/// (since a VSO's address is fixed).
-class VSO {
-  friend class ExecutionSession;
+/// All symbols will be resolved and marked ready as soon as the unit is
+/// materialized.
+class AbsoluteSymbolsMaterializationUnit : public MaterializationUnit {
+public:
+  AbsoluteSymbolsMaterializationUnit(SymbolMap Symbols);
+
+private:
+  void materialize(MaterializationResponsibility R) override;
+  void discard(const VSO &V, SymbolStringPtr Name) override;
+  static SymbolFlagsMap extractFlags(const SymbolMap &Symbols);
+
+  SymbolMap Symbols;
+};
+
+/// Create an AbsoluteSymbolsMaterializationUnit with the given symbols.
+/// Useful for inserting absolute symbols into a VSO. E.g.:
+/// \code{.cpp}
+///   VSO &V = ...;
+///   SymbolStringPtr Foo = ...;
+///   JITEvaluatedSymbol FooSym = ...;
+///   if (auto Err = V.define(absoluteSymbols({{Foo, FooSym}})))
+///     return Err;
+/// \endcode
+///
+inline std::unique_ptr<AbsoluteSymbolsMaterializationUnit>
+absoluteSymbols(SymbolMap Symbols) {
+  return llvm::make_unique<AbsoluteSymbolsMaterializationUnit>(
+      std::move(Symbols));
+}
+
+struct SymbolAliasMapEntry {
+  SymbolAliasMapEntry() = default;
+  SymbolAliasMapEntry(SymbolStringPtr Aliasee, JITSymbolFlags AliasFlags)
+      : Aliasee(std::move(Aliasee)), AliasFlags(AliasFlags) {}
+
+  SymbolStringPtr Aliasee;
+  JITSymbolFlags AliasFlags;
+};
+
+/// A map of Symbols to (Symbol, Flags) pairs.
+using SymbolAliasMap = std::map<SymbolStringPtr, SymbolAliasMapEntry>;
+
+/// A materialization unit for symbol aliases. Allows existing symbols to be
+/// aliased with alternate flags.
+class ReExportsMaterializationUnit : public MaterializationUnit {
+public:
+  /// SourceVSO is allowed to be nullptr, in which case the source VSO is
+  /// taken to be whatever VSO these definitions are materialized in. This
+  /// is useful for defining aliases within a VSO.
+  ///
+  /// Note: Care must be taken that no sets of aliases form a cycle, as such
+  ///       a cycle will result in a deadlock when any symbol in the cycle is
+  ///       resolved.
+  ReExportsMaterializationUnit(VSO *SourceVSO, SymbolAliasMap Aliases);
+
+private:
+  void materialize(MaterializationResponsibility R) override;
+  void discard(const VSO &V, SymbolStringPtr Name) override;
+  static SymbolFlagsMap extractFlags(const SymbolAliasMap &Aliases);
+
+  VSO *SourceVSO = nullptr;
+  SymbolAliasMap Aliases;
+};
+
+/// Create a ReExportsMaterializationUnit with the given aliases.
+/// Useful for defining symbol aliases.: E.g., given a VSO V containing symbols
+/// "foo" and "bar", we can define aliases "baz" (for "foo") and "qux" (for
+/// "bar") with:
+/// \code{.cpp}
+///   SymbolStringPtr Baz = ...;
+///   SymbolStringPtr Qux = ...;
+///   if (auto Err = V.define(symbolAliases({
+///       {Baz, { Foo, JITSymbolFlags::Exported }},
+///       {Qux, { Bar, JITSymbolFlags::Weak }}}))
+///     return Err;
+/// \endcode
+inline std::unique_ptr<ReExportsMaterializationUnit>
+symbolAliases(SymbolAliasMap Aliases) {
+  return llvm::make_unique<ReExportsMaterializationUnit>(nullptr,
+                                                         std::move(Aliases));
+}
+
+/// Create a materialization unit for re-exporting symbols from another VSO
+/// with alternative names/flags.
+inline std::unique_ptr<ReExportsMaterializationUnit>
+reexports(VSO &SourceV, SymbolAliasMap Aliases) {
+  return llvm::make_unique<ReExportsMaterializationUnit>(&SourceV,
+                                                         std::move(Aliases));
+}
+
+/// Build a SymbolAliasMap for the common case where you want to re-export
+/// symbols from another VSO with the same linkage/flags.
+Expected<SymbolAliasMap>
+buildSimpleReexportsAliasMap(VSO &SourceV, const SymbolNameSet &Symbols);
+
+class ReexportsFallbackDefinitionGenerator {
+public:
+  using SymbolPredicate = std::function<bool(SymbolStringPtr)>;
+  ReexportsFallbackDefinitionGenerator(VSO &BackingVSO, SymbolPredicate Allow);
+  SymbolNameSet operator()(VSO &V, const SymbolNameSet &Names);
+
+private:
+  VSO &BackingVSO;
+  SymbolPredicate Allow;
+};
+
+/// Base utilities for ExecutionSession.
+class ExecutionSessionBase {
+  // FIXME: Remove this when we remove the old ORC layers.
+  friend class VSO;
 
 public:
-  enum RelativeLinkageStrength {
-    NewDefinitionIsStronger,
-    DuplicateDefinition,
-    ExistingDefinitionIsStronger
-  };
+  /// For reporting errors.
+  using ErrorReporter = std::function<void(Error)>;
 
-  using SetDefinitionsResult =
-      std::map<SymbolStringPtr, RelativeLinkageStrength>;
+  /// For dispatching MaterializationUnit::materialize calls.
+  using DispatchMaterializationFunction =
+      std::function<void(VSO &V, std::unique_ptr<MaterializationUnit> MU)>;
 
-  using MaterializationUnitList =
-      std::vector<std::unique_ptr<MaterializationUnit>>;
+  /// Construct an ExecutionSessionBase.
+  ///
+  /// SymbolStringPools may be shared between ExecutionSessions.
+  ExecutionSessionBase(std::shared_ptr<SymbolStringPool> SSP = nullptr)
+      : SSP(SSP ? std::move(SSP) : std::make_shared<SymbolStringPool>()) {}
 
-  struct LookupResult {
-    MaterializationUnitList MaterializationUnits;
-    SymbolNameSet UnresolvedSymbols;
-  };
+  /// Returns the SymbolStringPool for this ExecutionSession.
+  SymbolStringPool &getSymbolStringPool() const { return *SSP; }
 
-  VSO() = default;
+  /// Run the given lambda with the session mutex locked.
+  template <typename Func> auto runSessionLocked(Func &&F) -> decltype(F()) {
+    std::lock_guard<std::recursive_mutex> Lock(SessionMutex);
+    return F();
+  }
+
+  /// Set the error reporter function.
+  ExecutionSessionBase &setErrorReporter(ErrorReporter ReportError) {
+    this->ReportError = std::move(ReportError);
+    return *this;
+  }
+
+  /// Set the materialization dispatch function.
+  ExecutionSessionBase &setDispatchMaterialization(
+      DispatchMaterializationFunction DispatchMaterialization) {
+    this->DispatchMaterialization = std::move(DispatchMaterialization);
+    return *this;
+  }
+
+  /// Report a error for this execution session.
+  ///
+  /// Unhandled errors can be sent here to log them.
+  void reportError(Error Err) { ReportError(std::move(Err)); }
+
+  /// Allocate a module key for a new module to add to the JIT.
+  VModuleKey allocateVModule() { return ++LastKey; }
+
+  /// Return a module key to the ExecutionSession so that it can be
+  ///        re-used. This should only be done once all resources associated
+  ///        with the original key have been released.
+  void releaseVModule(VModuleKey Key) { /* FIXME: Recycle keys */
+  }
+
+  void legacyFailQuery(AsynchronousSymbolQuery &Q, Error Err);
+
+  using LegacyAsyncLookupFunction = std::function<SymbolNameSet(
+      std::shared_ptr<AsynchronousSymbolQuery> Q, SymbolNameSet Names)>;
+
+  /// A legacy lookup function for JITSymbolResolverAdapter.
+  /// Do not use -- this will be removed soon.
+  Expected<SymbolMap>
+  legacyLookup(ExecutionSessionBase &ES, LegacyAsyncLookupFunction AsyncLookup,
+               SymbolNameSet Names, bool WaiUntilReady,
+               RegisterDependenciesFunction RegisterDependencies);
+
+  /// Search the given VSO list for the given symbols.
+  ///
+  ///
+  /// The OnResolve callback will be called once all requested symbols are
+  /// resolved, or if an error occurs prior to resolution.
+  ///
+  /// The OnReady callback will be called once all requested symbols are ready,
+  /// or if an error occurs after resolution but before all symbols are ready.
+  ///
+  /// If all symbols are found, the RegisterDependencies function will be called
+  /// while the session lock is held. This gives clients a chance to register
+  /// dependencies for on the queried symbols for any symbols they are
+  /// materializing (if a MaterializationResponsibility instance is present,
+  /// this can be implemented by calling
+  /// MaterializationResponsibility::addDependencies). If there are no
+  /// dependenant symbols for this query (e.g. it is being made by a top level
+  /// client to get an address to call) then the value NoDependenciesToRegister
+  /// can be used.
+  void lookup(const VSOList &VSOs, const SymbolNameSet &Symbols,
+              SymbolsResolvedCallback OnResolve, SymbolsReadyCallback OnReady,
+              RegisterDependenciesFunction RegisterDependencies);
+
+  /// Blocking version of lookup above. Returns the resolved symbol map.
+  /// If WaitUntilReady is true (the default), will not return until all
+  /// requested symbols are ready (or an error occurs). If WaitUntilReady is
+  /// false, will return as soon as all requested symbols are resolved,
+  /// or an error occurs. If WaitUntilReady is false and an error occurs
+  /// after resolution, the function will return a success value, but the
+  /// error will be reported via reportErrors.
+  Expected<SymbolMap> lookup(const VSOList &VSOs, const SymbolNameSet &Symbols,
+                             RegisterDependenciesFunction RegisterDependencies,
+                             bool WaitUntilReady = true);
+
+  /// Materialize the given unit.
+  void dispatchMaterialization(VSO &V,
+                               std::unique_ptr<MaterializationUnit> MU) {
+    DispatchMaterialization(V, std::move(MU));
+  }
+
+private:
+  static void logErrorsToStdErr(Error Err) {
+    logAllUnhandledErrors(std::move(Err), errs(), "JIT session error: ");
+  }
+
+  static void
+  materializeOnCurrentThread(VSO &V, std::unique_ptr<MaterializationUnit> MU) {
+    MU->doMaterialize(V);
+  }
+
+  void runOutstandingMUs();
+
+  mutable std::recursive_mutex SessionMutex;
+  std::shared_ptr<SymbolStringPool> SSP;
+  VModuleKey LastKey = 0;
+  ErrorReporter ReportError = logErrorsToStdErr;
+  DispatchMaterializationFunction DispatchMaterialization =
+      materializeOnCurrentThread;
+
+  // FIXME: Remove this (and runOutstandingMUs) once the linking layer works
+  //        with callbacks from asynchronous queries.
+  mutable std::recursive_mutex OutstandingMUsMutex;
+  std::vector<std::pair<VSO *, std::unique_ptr<MaterializationUnit>>>
+      OutstandingMUs;
+};
+
+/// A symbol query that returns results via a callback when results are
+///        ready.
+///
+/// makes a callback when all symbols are available.
+class AsynchronousSymbolQuery {
+  friend class ExecutionSessionBase;
+  friend class VSO;
+
+public:
+
+  /// Create a query for the given symbols, notify-resolved and
+  ///        notify-ready callbacks.
+  AsynchronousSymbolQuery(const SymbolNameSet &Symbols,
+                          SymbolsResolvedCallback NotifySymbolsResolved,
+                          SymbolsReadyCallback NotifySymbolsReady);
+
+  /// Set the resolved symbol information for the given symbol name.
+  void resolve(const SymbolStringPtr &Name, JITEvaluatedSymbol Sym);
+
+  /// Returns true if all symbols covered by this query have been
+  ///        resolved.
+  bool isFullyResolved() const { return NotYetResolvedCount == 0; }
+
+  /// Call the NotifySymbolsResolved callback.
+  ///
+  /// This should only be called if all symbols covered by the query have been
+  /// resolved.
+  void handleFullyResolved();
+
+  /// Notify the query that a requested symbol is ready for execution.
+  void notifySymbolReady();
+
+  /// Returns true if all symbols covered by this query are ready.
+  bool isFullyReady() const { return NotYetReadyCount == 0; }
+
+  /// Calls the NotifySymbolsReady callback.
+  ///
+  /// This should only be called if all symbols covered by this query are ready.
+  void handleFullyReady();
+
+private:
+  void addQueryDependence(VSO &V, SymbolStringPtr Name);
+
+  void removeQueryDependence(VSO &V, const SymbolStringPtr &Name);
+
+  bool canStillFail();
+
+  void handleFailed(Error Err);
+
+  void detach();
+
+  SymbolsResolvedCallback NotifySymbolsResolved;
+  SymbolsReadyCallback NotifySymbolsReady;
+  SymbolDependenceMap QueryRegistrations;
+  SymbolMap ResolvedSymbols;
+  size_t NotYetResolvedCount;
+  size_t NotYetReadyCount;
+};
+
+/// A symbol table that supports asynchoronous symbol queries.
+///
+/// Represents a virtual shared object. Instances can not be copied or moved, so
+/// their addresses may be used as keys for resource management.
+/// VSO state changes must be made via an ExecutionSession to guarantee that
+/// they are synchronized with respect to other VSO operations.
+class VSO {
+  friend class AsynchronousSymbolQuery;
+  friend class ExecutionSession;
+  friend class ExecutionSessionBase;
+  friend class MaterializationResponsibility;
+public:
+  using FallbackDefinitionGeneratorFunction =
+      std::function<SymbolNameSet(VSO &Parent, const SymbolNameSet &Names)>;
+
+  using AsynchronousSymbolQuerySet =
+      std::set<std::shared_ptr<AsynchronousSymbolQuery>>;
 
   VSO(const VSO &) = delete;
   VSO &operator=(const VSO &) = delete;
   VSO(VSO &&) = delete;
   VSO &operator=(VSO &&) = delete;
 
-  /// @brief Compare new linkage with existing linkage.
-  static RelativeLinkageStrength
-  compareLinkage(Optional<JITSymbolFlags> OldFlags, JITSymbolFlags NewFlags);
+  /// Get the name for this VSO.
+  const std::string &getName() const { return VSOName; }
 
-  /// @brief Compare new linkage with an existing symbol's linkage.
-  RelativeLinkageStrength compareLinkage(SymbolStringPtr Name,
-                                         JITSymbolFlags NewFlags) const;
+  /// Get a reference to the ExecutionSession for this VSO.
+  ExecutionSessionBase &getExecutionSession() const { return ES; }
 
-  /// @brief Adds the given symbols to the mapping as resolved, finalized
-  ///        symbols.
+  /// Set a fallback defenition generator. If set, lookup and lookupFlags will
+  /// pass the unresolved symbols set to the fallback definition generator,
+  /// allowing it to add a new definition to the VSO.
+  void setFallbackDefinitionGenerator(
+      FallbackDefinitionGeneratorFunction FallbackDefinitionGenerator) {
+    this->FallbackDefinitionGenerator = std::move(FallbackDefinitionGenerator);
+  }
+
+  /// Set the search order to be used when fixing up definitions in VSO.
+  /// This will replace the previous search order, and apply to any symbol
+  /// resolutions made for definitions in this VSO after the call to
+  /// setSearchOrder (even if the definition itself was added before the
+  /// call).
   ///
-  /// FIXME: We can take this by const-ref once symbol-based laziness is
-  ///        removed.
-  Error define(SymbolMap NewSymbols);
-
-  /// @brief Adds the given symbols to the mapping as lazy symbols.
-  Error defineLazy(std::unique_ptr<MaterializationUnit> Source);
-
-  /// @brief Add the given symbol/address mappings to the dylib, but do not
-  ///        mark the symbols as finalized yet.
-  void resolve(SymbolMap SymbolValues);
-
-  /// @brief Finalize the given symbols.
-  void finalize(SymbolNameSet SymbolsToFinalize);
-
-  /// @brief Look up the flags for the given symbols.
+  /// If SearchThisVSOFirst is set, which by default it is, then this VSO will
+  /// add itself to the beginning of the SearchOrder (Clients should *not*
+  /// put this VSO in the list in this case, to avoid redundant lookups).
   ///
-  /// Returns the flags for the give symbols, together with the set of symbols
-  /// not found.
-  SymbolNameSet lookupFlags(SymbolFlagsMap &Flags, SymbolNameSet Symbols);
+  /// If SearchThisVSOFirst is false then the search order will be used as
+  /// given. The main motivation for this feature is to support deliberate
+  /// shadowing of symbols in this VSO by a facade VSO. For example, the
+  /// facade may resolve function names to stubs, and the stubs may compile
+  /// lazily by looking up symbols in this dylib. Adding the facade dylib
+  /// as the first in the search order (instead of this dylib) ensures that
+  /// definitions within this dylib resolve to the lazy-compiling stubs,
+  /// rather than immediately materializing the definitions in this dylib.
+  void setSearchOrder(VSOList NewSearchOrder, bool SearchThisVSOFirst = true);
 
-  /// @brief Apply the given query to the given symbols in this VSO.
+  /// Add the given VSO to the search order for definitions in this VSO.
+  void addToSearchOrder(VSO &V);
+
+  /// Replace OldV with NewV in the search order if OldV is present. Otherwise
+  /// this operation is a no-op.
+  void replaceInSearchOrder(VSO &OldV, VSO &NewV);
+
+  /// Remove the given VSO from the search order for this VSO if it is
+  /// present. Otherwise this operation is a no-op.
+  void removeFromSearchOrder(VSO &V);
+
+  /// Do something with the search order (run under the session lock).
+  template <typename Func>
+  auto withSearchOrderDo(Func &&F)
+      -> decltype(F(std::declval<const VSOList &>())) {
+    return ES.runSessionLocked([&]() { return F(SearchOrder); });
+  }
+
+  /// Define all symbols provided by the materialization unit to be part
+  ///        of the given VSO.
+  template <typename UniquePtrToMaterializationUnit>
+  typename std::enable_if<
+      std::is_convertible<
+          typename std::decay<UniquePtrToMaterializationUnit>::type,
+          std::unique_ptr<MaterializationUnit>>::value,
+      Error>::type
+  define(UniquePtrToMaterializationUnit &&MU) {
+    return ES.runSessionLocked([&, this]() -> Error {
+      assert(MU && "Can't define with a null MU");
+
+      if (auto Err = defineImpl(*MU))
+        return Err;
+
+      /// defineImpl succeeded.
+      auto UMI = std::make_shared<UnmaterializedInfo>(std::move(MU));
+      for (auto &KV : UMI->MU->getSymbols())
+        UnmaterializedInfos[KV.first] = UMI;
+
+      return Error::success();
+    });
+  }
+
+  /// Search the given VSO for the symbols in Symbols. If found, store
+  ///        the flags for each symbol in Flags. Returns any unresolved symbols.
+  SymbolFlagsMap lookupFlags(const SymbolNameSet &Names);
+
+  /// Dump current VSO state to OS.
+  void dump(raw_ostream &OS);
+
+  /// FIXME: Remove this when we remove the old ORC layers.
+  /// Search the given VSOs in order for the symbols in Symbols. Results
+  ///        (once they become available) will be returned via the given Query.
   ///
-  /// For symbols in this VSO that have already been materialized, their address
-  /// will be set in the query immediately.
-  ///
-  /// For symbols in this VSO that have not been materialized, the query will be
-  /// recorded and the source for those symbols (plus the set of symbols to be
-  /// materialized by that source) will be returned as the MaterializationWork
-  /// field of the LookupResult.
-  ///
-  /// Any symbols not found in this VSO will be returned in the
-  /// UnresolvedSymbols field of the LookupResult.
-  LookupResult lookup(std::shared_ptr<AsynchronousSymbolQuery> Query,
-                      SymbolNameSet Symbols);
+  /// If any symbol is not found then the unresolved symbols will be returned,
+  /// and the query will not be applied. The Query is not failed and can be
+  /// re-used in a subsequent lookup once the symbols have been added, or
+  /// manually failed.
+  SymbolNameSet legacyLookup(std::shared_ptr<AsynchronousSymbolQuery> Q,
+                             SymbolNameSet Names);
 
 private:
-  class MaterializationInfo {
-  public:
-    using QueryList = std::vector<std::shared_ptr<AsynchronousSymbolQuery>>;
+  using AsynchronousSymbolQueryList =
+      std::vector<std::shared_ptr<AsynchronousSymbolQuery>>;
 
-    MaterializationInfo(size_t SymbolsRemaining,
-                        std::unique_ptr<MaterializationUnit> MU);
+  struct UnmaterializedInfo {
+    UnmaterializedInfo(std::unique_ptr<MaterializationUnit> MU)
+        : MU(std::move(MU)) {}
 
-    uint64_t SymbolsRemaining;
     std::unique_ptr<MaterializationUnit> MU;
-    SymbolMap Symbols;
-    std::map<SymbolStringPtr, QueryList> PendingResolution;
-    std::map<SymbolStringPtr, QueryList> PendingFinalization;
   };
 
-  using MaterializationInfoSet = std::set<std::unique_ptr<MaterializationInfo>>;
+  using UnmaterializedInfosMap =
+      std::map<SymbolStringPtr, std::shared_ptr<UnmaterializedInfo>>;
 
-  using MaterializationInfoIterator = MaterializationInfoSet::iterator;
-
-  class SymbolTableEntry {
-  public:
-    SymbolTableEntry(JITSymbolFlags SymbolFlags,
-                     MaterializationInfoIterator MaterializationInfoItr);
-    SymbolTableEntry(JITEvaluatedSymbol Sym);
-    SymbolTableEntry(SymbolTableEntry &&Other);
-    ~SymbolTableEntry();
-
-    SymbolTableEntry &operator=(JITEvaluatedSymbol Sym);
-
-    JITSymbolFlags getFlags() const;
-    void replaceWith(VSO &V, SymbolStringPtr Name, JITSymbolFlags Flags,
-                     MaterializationInfoIterator NewMaterializationInfoItr);
-    std::unique_ptr<MaterializationUnit>
-    query(SymbolStringPtr Name, std::shared_ptr<AsynchronousSymbolQuery> Query);
-    void resolve(VSO &V, SymbolStringPtr Name, JITEvaluatedSymbol Sym);
-    void finalize(VSO &V, SymbolStringPtr Name);
-    void discard(VSO &V, SymbolStringPtr Name);
-
-  private:
-    void destroy();
-
-    JITSymbolFlags Flags;
-    MaterializationInfoIterator MII;
-    union {
-      JITTargetAddress Address;
-      MaterializationInfoIterator MaterializationInfoItr;
-    };
+  struct MaterializingInfo {
+    AsynchronousSymbolQueryList PendingQueries;
+    SymbolDependenceMap Dependants;
+    SymbolDependenceMap UnfinalizedDependencies;
+    bool IsFinalized = false;
   };
 
-  std::map<SymbolStringPtr, SymbolTableEntry> Symbols;
-  MaterializationInfoSet MaterializationInfos;
+  using MaterializingInfosMap = std::map<SymbolStringPtr, MaterializingInfo>;
+
+  using LookupImplActionFlags = enum {
+    None = 0,
+    NotifyFullyResolved = 1 << 0U,
+    NotifyFullyReady = 1 << 1U,
+    LLVM_MARK_AS_BITMASK_ENUM(NotifyFullyReady)
+  };
+
+  VSO(ExecutionSessionBase &ES, std::string Name);
+
+  Error defineImpl(MaterializationUnit &MU);
+
+  SymbolNameSet lookupFlagsImpl(SymbolFlagsMap &Flags,
+                                const SymbolNameSet &Names);
+
+  void lodgeQuery(std::shared_ptr<AsynchronousSymbolQuery> &Q,
+                  SymbolNameSet &Unresolved, MaterializationUnitList &MUs);
+
+  void lodgeQueryImpl(std::shared_ptr<AsynchronousSymbolQuery> &Q,
+                      SymbolNameSet &Unresolved, MaterializationUnitList &MUs);
+
+  LookupImplActionFlags
+  lookupImpl(std::shared_ptr<AsynchronousSymbolQuery> &Q,
+             std::vector<std::unique_ptr<MaterializationUnit>> &MUs,
+             SymbolNameSet &Unresolved);
+
+  void detachQueryHelper(AsynchronousSymbolQuery &Q,
+                         const SymbolNameSet &QuerySymbols);
+
+  void transferFinalizedNodeDependencies(MaterializingInfo &DependantMI,
+                                         const SymbolStringPtr &DependantName,
+                                         MaterializingInfo &FinalizedMI);
+
+  Error defineMaterializing(const SymbolFlagsMap &SymbolFlags);
+
+  void replace(std::unique_ptr<MaterializationUnit> MU);
+
+  SymbolNameSet getRequestedSymbols(const SymbolFlagsMap &SymbolFlags);
+
+  void addDependencies(const SymbolStringPtr &Name,
+                       const SymbolDependenceMap &Dependants);
+
+  void resolve(const SymbolMap &Resolved);
+
+  void finalize(const SymbolFlagsMap &Finalized);
+
+  void notifyFailed(const SymbolNameSet &FailedSymbols);
+
+  ExecutionSessionBase &ES;
+  std::string VSOName;
+  SymbolMap Symbols;
+  UnmaterializedInfosMap UnmaterializedInfos;
+  MaterializingInfosMap MaterializingInfos;
+  FallbackDefinitionGeneratorFunction FallbackDefinitionGenerator;
+  VSOList SearchOrder;
 };
 
-/// @brief An ExecutionSession represents a running JIT program.
-class ExecutionSession {
+/// An ExecutionSession represents a running JIT program.
+class ExecutionSession : public ExecutionSessionBase {
 public:
   using ErrorReporter = std::function<void(Error)>;
 
-  /// @brief Construct an ExecutionEngine.
+  using DispatchMaterializationFunction =
+      std::function<void(VSO &V, std::unique_ptr<MaterializationUnit> MU)>;
+
+  /// Construct an ExecutionEngine.
   ///
   /// SymbolStringPools may be shared between ExecutionSessions.
-  ExecutionSession(SymbolStringPool &SSP);
+  ExecutionSession(std::shared_ptr<SymbolStringPool> SSP = nullptr)
+      : ExecutionSessionBase(std::move(SSP)) {}
 
-  /// @brief Returns the SymbolStringPool for this ExecutionSession.
-  SymbolStringPool &getSymbolStringPool() const { return SSP; }
-
-  /// @brief Set the error reporter function.
-  void setErrorReporter(ErrorReporter ReportError) {
-    this->ReportError = std::move(ReportError);
-  }
-
-  /// @brief Report a error for this execution session.
-  ///
-  /// Unhandled errors can be sent here to log them.
-  void reportError(Error Err) { ReportError(std::move(Err)); }
-
-  /// @brief Allocate a module key for a new module to add to the JIT.
-  VModuleKey allocateVModule();
-
-  /// @brief Return a module key to the ExecutionSession so that it can be
-  ///        re-used. This should only be done once all resources associated
-  ////       with the original key have been released.
-  void releaseVModule(VModuleKey Key);
-
-public:
-  static void logErrorsToStdErr(Error Err);
-
-  SymbolStringPool &SSP;
-  VModuleKey LastKey = 0;
-  ErrorReporter ReportError = logErrorsToStdErr;
-};
-
-/// Runs Materializers on the current thread and reports errors to the given
-/// ExecutionSession.
-class MaterializeOnCurrentThread {
-public:
-  MaterializeOnCurrentThread(ExecutionSession &ES) : ES(ES) {}
-
-  void operator()(VSO &V, std::unique_ptr<MaterializationUnit> MU) {
-    if (auto Err = MU->materialize(V))
-      ES.reportError(std::move(Err));
-  }
+  /// Add a new VSO to this ExecutionSession.
+  VSO &createVSO(std::string Name);
 
 private:
-  ExecutionSession &ES;
+  std::vector<std::unique_ptr<VSO>> VSOs;
 };
 
-/// Materialization function object wrapper for the lookup method.
-using MaterializationDispatcher =
-    std::function<void(VSO &V, std::unique_ptr<MaterializationUnit> S)>;
+/// Look up the given names in the given VSOs.
+/// VSOs will be searched in order and no VSO pointer may be null.
+/// All symbols must be found within the given VSOs or an error
+/// will be returned.
+Expected<SymbolMap> lookup(const VSOList &VSOs, SymbolNameSet Names);
 
-/// @brief Look up a set of symbols by searching a list of VSOs.
-///
-/// All VSOs in the list should be non-null.
-Expected<SymbolMap> lookup(const std::vector<VSO *> &VSOs, SymbolNameSet Names,
-                           MaterializationDispatcher DispatchMaterialization);
+/// Look up a symbol by searching a list of VSOs.
+Expected<JITEvaluatedSymbol> lookup(const VSOList &VSOs, SymbolStringPtr Name);
 
-/// @brief Look up a symbol by searching a list of VSOs.
-Expected<JITEvaluatedSymbol>
-lookup(const std::vector<VSO *> VSOs, SymbolStringPtr Name,
-       MaterializationDispatcher DispatchMaterialization);
+/// Mangles symbol names then uniques them in the context of an
+/// ExecutionSession.
+class MangleAndInterner {
+public:
+  MangleAndInterner(ExecutionSessionBase &ES, const DataLayout &DL);
+  SymbolStringPtr operator()(StringRef Name);
+
+private:
+  ExecutionSessionBase &ES;
+  const DataLayout &DL;
+};
 
 } // End namespace orc
 } // End namespace llvm
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
index d466df8..e27f6e1 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
@@ -20,6 +20,8 @@
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/OrcError.h"
 #include "llvm/ExecutionEngine/RuntimeDyld.h"
+#include "llvm/Support/DynamicLibrary.h"
+#include "llvm/Target/TargetOptions.h"
 #include <algorithm>
 #include <cstdint>
 #include <string>
@@ -32,18 +34,58 @@
 class GlobalVariable;
 class Function;
 class Module;
+class TargetMachine;
 class Value;
 
 namespace orc {
 
-/// @brief This iterator provides a convenient way to iterate over the elements
+/// A utility class for building TargetMachines for JITs.
+class JITTargetMachineBuilder {
+public:
+  JITTargetMachineBuilder(Triple TT);
+  static Expected<JITTargetMachineBuilder> detectHost();
+  Expected<std::unique_ptr<TargetMachine>> createTargetMachine();
+
+  JITTargetMachineBuilder &setArch(std::string Arch) {
+    this->Arch = std::move(Arch);
+    return *this;
+  }
+  JITTargetMachineBuilder &setCPU(std::string CPU) {
+    this->CPU = std::move(CPU);
+    return *this;
+  }
+  JITTargetMachineBuilder &setRelocationModel(Optional<Reloc::Model> RM) {
+    this->RM = std::move(RM);
+    return *this;
+  }
+  JITTargetMachineBuilder &setCodeModel(Optional<CodeModel::Model> CM) {
+    this->CM = std::move(CM);
+    return *this;
+  }
+  JITTargetMachineBuilder &
+  addFeatures(const std::vector<std::string> &FeatureVec);
+  SubtargetFeatures &getFeatures() { return Features; }
+  TargetOptions &getOptions() { return Options; }
+
+private:
+  Triple TT;
+  std::string Arch;
+  std::string CPU;
+  SubtargetFeatures Features;
+  TargetOptions Options;
+  Optional<Reloc::Model> RM;
+  Optional<CodeModel::Model> CM;
+  CodeGenOpt::Level OptLevel = CodeGenOpt::Default;
+};
+
+/// This iterator provides a convenient way to iterate over the elements
 ///        of an llvm.global_ctors/llvm.global_dtors instance.
 ///
 ///   The easiest way to get hold of instances of this class is to use the
 /// getConstructors/getDestructors functions.
 class CtorDtorIterator {
 public:
-  /// @brief Accessor for an element of the global_ctors/global_dtors array.
+  /// Accessor for an element of the global_ctors/global_dtors array.
   ///
   ///   This class provides a read-only view of the element with any casts on
   /// the function stripped away.
@@ -56,23 +98,23 @@
     Value *Data;
   };
 
-  /// @brief Construct an iterator instance. If End is true then this iterator
+  /// Construct an iterator instance. If End is true then this iterator
   ///        acts as the end of the range, otherwise it is the beginning.
   CtorDtorIterator(const GlobalVariable *GV, bool End);
 
-  /// @brief Test iterators for equality.
+  /// Test iterators for equality.
   bool operator==(const CtorDtorIterator &Other) const;
 
-  /// @brief Test iterators for inequality.
+  /// Test iterators for inequality.
   bool operator!=(const CtorDtorIterator &Other) const;
 
-  /// @brief Pre-increment iterator.
+  /// Pre-increment iterator.
   CtorDtorIterator& operator++();
 
-  /// @brief Post-increment iterator.
+  /// Post-increment iterator.
   CtorDtorIterator operator++(int);
 
-  /// @brief Dereference iterator. The resulting value provides a read-only view
+  /// Dereference iterator. The resulting value provides a read-only view
   ///        of this element of the global_ctors/global_dtors list.
   Element operator*() const;
 
@@ -81,25 +123,25 @@
   unsigned I;
 };
 
-/// @brief Create an iterator range over the entries of the llvm.global_ctors
+/// Create an iterator range over the entries of the llvm.global_ctors
 ///        array.
 iterator_range<CtorDtorIterator> getConstructors(const Module &M);
 
-/// @brief Create an iterator range over the entries of the llvm.global_ctors
+/// Create an iterator range over the entries of the llvm.global_ctors
 ///        array.
 iterator_range<CtorDtorIterator> getDestructors(const Module &M);
 
-/// @brief Convenience class for recording constructor/destructor names for
+/// Convenience class for recording constructor/destructor names for
 ///        later execution.
 template <typename JITLayerT>
 class CtorDtorRunner {
 public:
-  /// @brief Construct a CtorDtorRunner for the given range using the given
+  /// Construct a CtorDtorRunner for the given range using the given
   ///        name mangling function.
   CtorDtorRunner(std::vector<std::string> CtorDtorNames, VModuleKey K)
       : CtorDtorNames(std::move(CtorDtorNames)), K(K) {}
 
-  /// @brief Run the recorded constructors/destructors through the given JIT
+  /// Run the recorded constructors/destructors through the given JIT
   ///        layer.
   Error runViaLayer(JITLayerT &JITLayer) const {
     using CtorDtorTy = void (*)();
@@ -127,7 +169,21 @@
   orc::VModuleKey K;
 };
 
-/// @brief Support class for static dtor execution. For hosted (in-process) JITs
+class CtorDtorRunner2 {
+public:
+  CtorDtorRunner2(VSO &V) : V(V) {}
+  void add(iterator_range<CtorDtorIterator> CtorDtors);
+  Error run();
+
+private:
+  using CtorDtorList = std::vector<SymbolStringPtr>;
+  using CtorDtorPriorityMap = std::map<unsigned, CtorDtorList>;
+
+  VSO &V;
+  CtorDtorPriorityMap CtorDtorsByPriority;
+};
+
+/// Support class for static dtor execution. For hosted (in-process) JITs
 ///        only!
 ///
 ///   If a __cxa_atexit function isn't found C++ programs that use static
@@ -142,7 +198,26 @@
 /// the client determines that destructors should be run (generally at JIT
 /// teardown or after a return from main), the runDestructors method should be
 /// called.
-class LocalCXXRuntimeOverrides {
+class LocalCXXRuntimeOverridesBase {
+public:
+  /// Run any destructors recorded by the overriden __cxa_atexit function
+  /// (CXAAtExitOverride).
+  void runDestructors();
+
+protected:
+  template <typename PtrTy> JITTargetAddress toTargetAddress(PtrTy *P) {
+    return static_cast<JITTargetAddress>(reinterpret_cast<uintptr_t>(P));
+  }
+
+  using DestructorPtr = void (*)(void *);
+  using CXXDestructorDataPair = std::pair<DestructorPtr, void *>;
+  using CXXDestructorDataPairList = std::vector<CXXDestructorDataPair>;
+  CXXDestructorDataPairList DSOHandleOverride;
+  static int CXAAtExitOverride(DestructorPtr Destructor, void *Arg,
+                               void *DSOHandle);
+};
+
+class LocalCXXRuntimeOverrides : public LocalCXXRuntimeOverridesBase {
 public:
   /// Create a runtime-overrides class.
   template <typename MangleFtorT>
@@ -159,32 +234,38 @@
     return nullptr;
   }
 
-  /// Run any destructors recorded by the overriden __cxa_atexit function
-  /// (CXAAtExitOverride).
-  void runDestructors();
-
 private:
-  template <typename PtrTy>
-  JITTargetAddress toTargetAddress(PtrTy* P) {
-    return static_cast<JITTargetAddress>(reinterpret_cast<uintptr_t>(P));
-  }
-
   void addOverride(const std::string &Name, JITTargetAddress Addr) {
     CXXRuntimeOverrides.insert(std::make_pair(Name, Addr));
   }
 
   StringMap<JITTargetAddress> CXXRuntimeOverrides;
+};
 
-  using DestructorPtr = void (*)(void *);
-  using CXXDestructorDataPair = std::pair<DestructorPtr, void *>;
-  using CXXDestructorDataPairList = std::vector<CXXDestructorDataPair>;
-  CXXDestructorDataPairList DSOHandleOverride;
-  static int CXAAtExitOverride(DestructorPtr Destructor, void *Arg,
-                               void *DSOHandle);
+class LocalCXXRuntimeOverrides2 : public LocalCXXRuntimeOverridesBase {
+public:
+  Error enable(VSO &V, MangleAndInterner &Mangler);
+};
+
+/// A utility class to expose symbols found via dlsym to the JIT.
+///
+/// If an instance of this class is attached to a VSO as a fallback definition
+/// generator, then any symbol found in the given DynamicLibrary that passes
+/// the 'Allow' predicate will be added to the VSO.
+class DynamicLibraryFallbackGenerator {
+public:
+  using SymbolPredicate = std::function<bool(SymbolStringPtr)>;
+  DynamicLibraryFallbackGenerator(sys::DynamicLibrary Dylib,
+                                  const DataLayout &DL, SymbolPredicate Allow);
+  SymbolNameSet operator()(VSO &V, const SymbolNameSet &Names);
+
+private:
+  sys::DynamicLibrary Dylib;
+  SymbolPredicate Allow;
+  char GlobalPrefix;
 };
 
 } // end namespace orc
-
 } // end namespace llvm
 
 #endif // LLVM_EXECUTIONENGINE_ORC_EXECUTIONUTILS_H
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h
index 8a48c36..a8a88d7 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h
@@ -27,7 +27,7 @@
 
 namespace orc {
 
-/// @brief Global mapping layer.
+/// Global mapping layer.
 ///
 ///   This layer overrides the findSymbol method to first search a local symbol
 /// table that the client can define. It can be used to inject new symbol
@@ -38,13 +38,13 @@
 class GlobalMappingLayer {
 public:
 
-  /// @brief Handle to an added module.
+  /// Handle to an added module.
   using ModuleHandleT = typename BaseLayerT::ModuleHandleT;
 
-  /// @brief Construct an GlobalMappingLayer with the given BaseLayer
+  /// Construct an GlobalMappingLayer with the given BaseLayer
   GlobalMappingLayer(BaseLayerT &BaseLayer) : BaseLayer(BaseLayer) {}
 
-  /// @brief Add the given module to the JIT.
+  /// Add the given module to the JIT.
   /// @return A handle for the added modules.
   Expected<ModuleHandleT>
   addModule(std::shared_ptr<Module> M,
@@ -52,20 +52,20 @@
     return BaseLayer.addModule(std::move(M), std::move(Resolver));
   }
 
-  /// @brief Remove the module set associated with the handle H.
+  /// Remove the module set associated with the handle H.
   Error removeModule(ModuleHandleT H) { return BaseLayer.removeModule(H); }
 
-  /// @brief Manually set the address to return for the given symbol.
+  /// Manually set the address to return for the given symbol.
   void setGlobalMapping(const std::string &Name, JITTargetAddress Addr) {
     SymbolTable[Name] = Addr;
   }
 
-  /// @brief Remove the given symbol from the global mapping.
+  /// Remove the given symbol from the global mapping.
   void eraseGlobalMapping(const std::string &Name) {
     SymbolTable.erase(Name);
   }
 
-  /// @brief Search for the given named symbol.
+  /// Search for the given named symbol.
   ///
   ///          This method will first search the local symbol table, returning
   ///        any symbol found there. If the symbol is not found in the local
@@ -81,7 +81,7 @@
     return BaseLayer.findSymbol(Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Get the address of the given symbol in the context of the of the
+  /// Get the address of the given symbol in the context of the of the
   ///        module represented by the handle H. This call is forwarded to the
   ///        base layer's implementation.
   /// @param H The handle for the module to search in.
@@ -94,7 +94,7 @@
     return BaseLayer.findSymbolIn(H, Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Immediately emit and finalize the module set represented by the
+  /// Immediately emit and finalize the module set represented by the
   ///        given handle.
   /// @param H Handle for module set to emit/finalize.
   Error emitAndFinalize(ModuleHandleT H) {
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
index a7f9416..ad64815 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
@@ -16,8 +16,9 @@
 
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ExecutionEngine/JITSymbol.h"
-#include "llvm/ExecutionEngine/Orc/Core.h"
+#include "llvm/ExecutionEngine/Orc/Layer.h"
 #include "llvm/Support/Error.h"
+#include "llvm/Support/MemoryBuffer.h"
 #include <memory>
 #include <string>
 
@@ -27,7 +28,30 @@
 
 namespace orc {
 
-/// @brief Eager IR compiling layer.
+class IRCompileLayer2 : public IRLayer {
+public:
+  using CompileFunction =
+      std::function<Expected<std::unique_ptr<MemoryBuffer>>(Module &)>;
+
+  using NotifyCompiledFunction =
+      std::function<void(VModuleKey K, std::unique_ptr<Module>)>;
+
+  IRCompileLayer2(ExecutionSession &ES, ObjectLayer &BaseLayer,
+                  CompileFunction Compile);
+
+  void setNotifyCompiled(NotifyCompiledFunction NotifyCompiled);
+
+  void emit(MaterializationResponsibility R, VModuleKey K,
+            std::unique_ptr<Module> M) override;
+
+private:
+  mutable std::mutex IRLayerMutex;
+  ObjectLayer &BaseLayer;
+  CompileFunction Compile;
+  NotifyCompiledFunction NotifyCompiled = NotifyCompiledFunction();
+};
+
+/// Eager IR compiling layer.
 ///
 ///   This layer immediately compiles each IR module added via addModule to an
 /// object file and adds this module file to the layer below, which must
@@ -35,11 +59,11 @@
 template <typename BaseLayerT, typename CompileFtor>
 class IRCompileLayer {
 public:
-  /// @brief Callback type for notifications when modules are compiled.
+  /// Callback type for notifications when modules are compiled.
   using NotifyCompiledCallback =
       std::function<void(VModuleKey K, std::unique_ptr<Module>)>;
 
-  /// @brief Construct an IRCompileLayer with the given BaseLayer, which must
+  /// Construct an IRCompileLayer with the given BaseLayer, which must
   ///        implement the ObjectLayer concept.
   IRCompileLayer(
       BaseLayerT &BaseLayer, CompileFtor Compile,
@@ -47,15 +71,15 @@
       : BaseLayer(BaseLayer), Compile(std::move(Compile)),
         NotifyCompiled(std::move(NotifyCompiled)) {}
 
-  /// @brief Get a reference to the compiler functor.
+  /// Get a reference to the compiler functor.
   CompileFtor& getCompiler() { return Compile; }
 
-  /// @brief (Re)set the NotifyCompiled callback.
+  /// (Re)set the NotifyCompiled callback.
   void setNotifyCompiled(NotifyCompiledCallback NotifyCompiled) {
     this->NotifyCompiled = std::move(NotifyCompiled);
   }
 
-  /// @brief Compile the module, and add the resulting object to the base layer
+  /// Compile the module, and add the resulting object to the base layer
   ///        along with the given memory manager and symbol resolver.
   Error addModule(VModuleKey K, std::unique_ptr<Module> M) {
     if (auto Err = BaseLayer.addObject(std::move(K), Compile(*M)))
@@ -65,10 +89,10 @@
     return Error::success();
   }
 
-  /// @brief Remove the module associated with the VModuleKey K.
+  /// Remove the module associated with the VModuleKey K.
   Error removeModule(VModuleKey K) { return BaseLayer.removeObject(K); }
 
-  /// @brief Search for the given named symbol.
+  /// Search for the given named symbol.
   /// @param Name The name of the symbol to search for.
   /// @param ExportedSymbolsOnly If true, search only for exported symbols.
   /// @return A handle for the given named symbol, if it exists.
@@ -76,7 +100,7 @@
     return BaseLayer.findSymbol(Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Get the address of the given symbol in compiled module represented
+  /// Get the address of the given symbol in compiled module represented
   ///        by the handle H. This call is forwarded to the base layer's
   ///        implementation.
   /// @param K The VModuleKey for the module to search in.
@@ -89,7 +113,7 @@
     return BaseLayer.findSymbolIn(K, Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Immediately emit and finalize the module represented by the given
+  /// Immediately emit and finalize the module represented by the given
   ///        handle.
   /// @param K The VModuleKey for the module to emit/finalize.
   Error emitAndFinalize(VModuleKey K) { return BaseLayer.emitAndFinalize(K); }
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
index 4f1fe7b..266a0f4 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
@@ -15,7 +15,7 @@
 #define LLVM_EXECUTIONENGINE_ORC_IRTRANSFORMLAYER_H
 
 #include "llvm/ExecutionEngine/JITSymbol.h"
-#include "llvm/ExecutionEngine/Orc/Core.h"
+#include "llvm/ExecutionEngine/Orc/Layer.h"
 #include <memory>
 #include <string>
 
@@ -23,7 +23,32 @@
 class Module;
 namespace orc {
 
-/// @brief IR mutating layer.
+class IRTransformLayer2 : public IRLayer {
+public:
+
+  using TransformFunction =
+    std::function<Expected<std::unique_ptr<Module>>(std::unique_ptr<Module>)>;
+
+  IRTransformLayer2(ExecutionSession &ES, IRLayer &BaseLayer,
+                    TransformFunction Transform = identityTransform);
+
+  void setTransform(TransformFunction Transform) {
+    this->Transform = std::move(Transform);
+  }
+
+  void emit(MaterializationResponsibility R, VModuleKey K,
+            std::unique_ptr<Module> M) override;
+
+  static std::unique_ptr<Module> identityTransform(std::unique_ptr<Module> M) {
+    return M;
+  }
+
+private:
+  IRLayer &BaseLayer;
+  TransformFunction Transform;
+};
+
+/// IR mutating layer.
 ///
 ///   This layer applies a user supplied transform to each module that is added,
 /// then adds the transformed module to the layer below.
@@ -31,12 +56,12 @@
 class IRTransformLayer {
 public:
 
-  /// @brief Construct an IRTransformLayer with the given BaseLayer
+  /// Construct an IRTransformLayer with the given BaseLayer
   IRTransformLayer(BaseLayerT &BaseLayer,
                    TransformFtor Transform = TransformFtor())
     : BaseLayer(BaseLayer), Transform(std::move(Transform)) {}
 
-  /// @brief Apply the transform functor to the module, then add the module to
+  /// Apply the transform functor to the module, then add the module to
   ///        the layer below, along with the memory manager and symbol resolver.
   ///
   /// @return A handle for the added modules.
@@ -44,10 +69,10 @@
     return BaseLayer.addModule(std::move(K), Transform(std::move(M)));
   }
 
-  /// @brief Remove the module associated with the VModuleKey K.
+  /// Remove the module associated with the VModuleKey K.
   Error removeModule(VModuleKey K) { return BaseLayer.removeModule(K); }
 
-  /// @brief Search for the given named symbol.
+  /// Search for the given named symbol.
   /// @param Name The name of the symbol to search for.
   /// @param ExportedSymbolsOnly If true, search only for exported symbols.
   /// @return A handle for the given named symbol, if it exists.
@@ -55,7 +80,7 @@
     return BaseLayer.findSymbol(Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Get the address of the given symbol in the context of the module
+  /// Get the address of the given symbol in the context of the module
   ///        represented by the VModuleKey K. This call is forwarded to the base
   ///        layer's implementation.
   /// @param K The VModuleKey for the module to search in.
@@ -68,15 +93,15 @@
     return BaseLayer.findSymbolIn(K, Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Immediately emit and finalize the module represented by the given
+  /// Immediately emit and finalize the module represented by the given
   ///        VModuleKey.
   /// @param K The VModuleKey for the module to emit/finalize.
   Error emitAndFinalize(VModuleKey K) { return BaseLayer.emitAndFinalize(K); }
 
-  /// @brief Access the transform functor directly.
+  /// Access the transform functor directly.
   TransformFtor& getTransform() { return Transform; }
 
-  /// @brief Access the mumate functor directly.
+  /// Access the mumate functor directly.
   const TransformFtor& getTransform() const { return Transform; }
 
 private:
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
index 029b86a..8b0b3fd 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/ExecutionEngine/JITSymbol.h"
+#include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/Memory.h"
 #include "llvm/Support/Process.h"
@@ -46,98 +47,29 @@
 
 namespace orc {
 
-/// @brief Target-independent base class for compile callback management.
+/// Target-independent base class for compile callback management.
 class JITCompileCallbackManager {
 public:
-  using CompileFtor = std::function<JITTargetAddress()>;
+  using CompileFunction = std::function<JITTargetAddress()>;
 
-  /// @brief Handle to a newly created compile callback. Can be used to get an
-  ///        IR constant representing the address of the trampoline, and to set
-  ///        the compile action for the callback.
-  class CompileCallbackInfo {
-  public:
-    CompileCallbackInfo(JITTargetAddress Addr, CompileFtor &Compile)
-        : Addr(Addr), Compile(Compile) {}
-
-    JITTargetAddress getAddress() const { return Addr; }
-    void setCompileAction(CompileFtor Compile) {
-      this->Compile = std::move(Compile);
-    }
-
-  private:
-    JITTargetAddress Addr;
-    CompileFtor &Compile;
-  };
-
-  /// @brief Construct a JITCompileCallbackManager.
+  /// Construct a JITCompileCallbackManager.
   /// @param ErrorHandlerAddress The address of an error handler in the target
   ///                            process to be used if a compile callback fails.
-  JITCompileCallbackManager(JITTargetAddress ErrorHandlerAddress)
-      : ErrorHandlerAddress(ErrorHandlerAddress) {}
+  JITCompileCallbackManager(ExecutionSession &ES,
+                            JITTargetAddress ErrorHandlerAddress)
+      : ES(ES), CallbacksVSO(ES.createVSO("<Callbacks>")),
+        ErrorHandlerAddress(ErrorHandlerAddress) {}
 
   virtual ~JITCompileCallbackManager() = default;
 
-  /// @brief Execute the callback for the given trampoline id. Called by the JIT
+  /// Reserve a compile callback.
+  Expected<JITTargetAddress> getCompileCallback(CompileFunction Compile);
+
+  /// Execute the callback for the given trampoline id. Called by the JIT
   ///        to compile functions on demand.
-  JITTargetAddress executeCompileCallback(JITTargetAddress TrampolineAddr) {
-    auto I = ActiveTrampolines.find(TrampolineAddr);
-    // FIXME: Also raise an error in the Orc error-handler when we finally have
-    //        one.
-    if (I == ActiveTrampolines.end())
-      return ErrorHandlerAddress;
-
-    // Found a callback handler. Yank this trampoline out of the active list and
-    // put it back in the available trampolines list, then try to run the
-    // handler's compile and update actions.
-    // Moving the trampoline ID back to the available list first means there's
-    // at
-    // least one available trampoline if the compile action triggers a request
-    // for
-    // a new one.
-    auto Compile = std::move(I->second);
-    ActiveTrampolines.erase(I);
-    AvailableTrampolines.push_back(TrampolineAddr);
-
-    if (auto Addr = Compile())
-      return Addr;
-
-    return ErrorHandlerAddress;
-  }
-
-  /// @brief Reserve a compile callback.
-  Expected<CompileCallbackInfo> getCompileCallback() {
-    if (auto TrampolineAddrOrErr = getAvailableTrampolineAddr()) {
-      const auto &TrampolineAddr = *TrampolineAddrOrErr;
-      auto &Compile = this->ActiveTrampolines[TrampolineAddr];
-      return CompileCallbackInfo(TrampolineAddr, Compile);
-    } else
-      return TrampolineAddrOrErr.takeError();
-  }
-
-  /// @brief Get a CompileCallbackInfo for an existing callback.
-  CompileCallbackInfo getCompileCallbackInfo(JITTargetAddress TrampolineAddr) {
-    auto I = ActiveTrampolines.find(TrampolineAddr);
-    assert(I != ActiveTrampolines.end() && "Not an active trampoline.");
-    return CompileCallbackInfo(I->first, I->second);
-  }
-
-  /// @brief Release a compile callback.
-  ///
-  ///   Note: Callbacks are auto-released after they execute. This method should
-  /// only be called to manually release a callback that is not going to
-  /// execute.
-  void releaseCompileCallback(JITTargetAddress TrampolineAddr) {
-    auto I = ActiveTrampolines.find(TrampolineAddr);
-    assert(I != ActiveTrampolines.end() && "Not an active trampoline.");
-    ActiveTrampolines.erase(I);
-    AvailableTrampolines.push_back(TrampolineAddr);
-  }
+  JITTargetAddress executeCompileCallback(JITTargetAddress TrampolineAddr);
 
 protected:
-  JITTargetAddress ErrorHandlerAddress;
-
-  using TrampolineMapT = std::map<JITTargetAddress, CompileFtor>;
-  TrampolineMapT ActiveTrampolines;
   std::vector<JITTargetAddress> AvailableTrampolines;
 
 private:
@@ -156,17 +88,25 @@
   virtual Error grow() = 0;
 
   virtual void anchor();
+
+  std::mutex CCMgrMutex;
+  ExecutionSession &ES;
+  VSO &CallbacksVSO;
+  JITTargetAddress ErrorHandlerAddress;
+  std::map<JITTargetAddress, SymbolStringPtr> AddrToSymbol;
+  size_t NextCallbackId = 0;
 };
 
-/// @brief Manage compile callbacks for in-process JITs.
+/// Manage compile callbacks for in-process JITs.
 template <typename TargetT>
 class LocalJITCompileCallbackManager : public JITCompileCallbackManager {
 public:
-  /// @brief Construct a InProcessJITCompileCallbackManager.
+  /// Construct a InProcessJITCompileCallbackManager.
   /// @param ErrorHandlerAddress The address of an error handler in the target
   ///                            process to be used if a compile callback fails.
-  LocalJITCompileCallbackManager(JITTargetAddress ErrorHandlerAddress)
-      : JITCompileCallbackManager(ErrorHandlerAddress) {
+  LocalJITCompileCallbackManager(ExecutionSession &ES,
+                                 JITTargetAddress ErrorHandlerAddress)
+      : JITCompileCallbackManager(ES, ErrorHandlerAddress) {
     /// Set up the resolver block.
     std::error_code EC;
     ResolverBlock = sys::OwningMemoryBlock(sys::Memory::allocateMappedMemory(
@@ -229,38 +169,38 @@
   std::vector<sys::OwningMemoryBlock> TrampolineBlocks;
 };
 
-/// @brief Base class for managing collections of named indirect stubs.
+/// Base class for managing collections of named indirect stubs.
 class IndirectStubsManager {
 public:
-  /// @brief Map type for initializing the manager. See init.
+  /// Map type for initializing the manager. See init.
   using StubInitsMap = StringMap<std::pair<JITTargetAddress, JITSymbolFlags>>;
 
   virtual ~IndirectStubsManager() = default;
 
-  /// @brief Create a single stub with the given name, target address and flags.
+  /// Create a single stub with the given name, target address and flags.
   virtual Error createStub(StringRef StubName, JITTargetAddress StubAddr,
                            JITSymbolFlags StubFlags) = 0;
 
-  /// @brief Create StubInits.size() stubs with the given names, target
+  /// Create StubInits.size() stubs with the given names, target
   ///        addresses, and flags.
   virtual Error createStubs(const StubInitsMap &StubInits) = 0;
 
-  /// @brief Find the stub with the given name. If ExportedStubsOnly is true,
+  /// Find the stub with the given name. If ExportedStubsOnly is true,
   ///        this will only return a result if the stub's flags indicate that it
   ///        is exported.
-  virtual JITSymbol findStub(StringRef Name, bool ExportedStubsOnly) = 0;
+  virtual JITEvaluatedSymbol findStub(StringRef Name, bool ExportedStubsOnly) = 0;
 
-  /// @brief Find the implementation-pointer for the stub.
-  virtual JITSymbol findPointer(StringRef Name) = 0;
+  /// Find the implementation-pointer for the stub.
+  virtual JITEvaluatedSymbol findPointer(StringRef Name) = 0;
 
-  /// @brief Change the value of the implementation pointer for the stub.
+  /// Change the value of the implementation pointer for the stub.
   virtual Error updatePointer(StringRef Name, JITTargetAddress NewAddr) = 0;
 
 private:
   virtual void anchor();
 };
 
-/// @brief IndirectStubsManager implementation for the host architecture, e.g.
+/// IndirectStubsManager implementation for the host architecture, e.g.
 ///        OrcX86_64. (See OrcArchitectureSupport.h).
 template <typename TargetT>
 class LocalIndirectStubsManager : public IndirectStubsManager {
@@ -286,7 +226,7 @@
     return Error::success();
   }
 
-  JITSymbol findStub(StringRef Name, bool ExportedStubsOnly) override {
+  JITEvaluatedSymbol findStub(StringRef Name, bool ExportedStubsOnly) override {
     auto I = StubIndexes.find(Name);
     if (I == StubIndexes.end())
       return nullptr;
@@ -295,13 +235,13 @@
     assert(StubAddr && "Missing stub address");
     auto StubTargetAddr =
         static_cast<JITTargetAddress>(reinterpret_cast<uintptr_t>(StubAddr));
-    auto StubSymbol = JITSymbol(StubTargetAddr, I->second.second);
+    auto StubSymbol = JITEvaluatedSymbol(StubTargetAddr, I->second.second);
     if (ExportedStubsOnly && !StubSymbol.getFlags().isExported())
       return nullptr;
     return StubSymbol;
   }
 
-  JITSymbol findPointer(StringRef Name) override {
+  JITEvaluatedSymbol findPointer(StringRef Name) override {
     auto I = StubIndexes.find(Name);
     if (I == StubIndexes.end())
       return nullptr;
@@ -310,7 +250,7 @@
     assert(PtrAddr && "Missing pointer address");
     auto PtrTargetAddr =
         static_cast<JITTargetAddress>(reinterpret_cast<uintptr_t>(PtrAddr));
-    return JITSymbol(PtrTargetAddr, I->second.second);
+    return JITEvaluatedSymbol(PtrTargetAddr, I->second.second);
   }
 
   Error updatePointer(StringRef Name, JITTargetAddress NewAddr) override {
@@ -354,45 +294,45 @@
   StringMap<std::pair<StubKey, JITSymbolFlags>> StubIndexes;
 };
 
-/// @brief Create a local compile callback manager.
+/// Create a local compile callback manager.
 ///
 /// The given target triple will determine the ABI, and the given
 /// ErrorHandlerAddress will be used by the resulting compile callback
 /// manager if a compile callback fails.
 std::unique_ptr<JITCompileCallbackManager>
-createLocalCompileCallbackManager(const Triple &T,
+createLocalCompileCallbackManager(const Triple &T, ExecutionSession &ES,
                                   JITTargetAddress ErrorHandlerAddress);
 
-/// @brief Create a local indriect stubs manager builder.
+/// Create a local indriect stubs manager builder.
 ///
 /// The given target triple will determine the ABI.
 std::function<std::unique_ptr<IndirectStubsManager>()>
 createLocalIndirectStubsManagerBuilder(const Triple &T);
 
-/// @brief Build a function pointer of FunctionType with the given constant
+/// Build a function pointer of FunctionType with the given constant
 ///        address.
 ///
 ///   Usage example: Turn a trampoline address into a function pointer constant
 /// for use in a stub.
 Constant *createIRTypedAddress(FunctionType &FT, JITTargetAddress Addr);
 
-/// @brief Create a function pointer with the given type, name, and initializer
+/// Create a function pointer with the given type, name, and initializer
 ///        in the given Module.
 GlobalVariable *createImplPointer(PointerType &PT, Module &M, const Twine &Name,
                                   Constant *Initializer);
 
-/// @brief Turn a function declaration into a stub function that makes an
+/// Turn a function declaration into a stub function that makes an
 ///        indirect call using the given function pointer.
 void makeStub(Function &F, Value &ImplPointer);
 
-/// @brief Raise linkage types and rename as necessary to ensure that all
+/// Raise linkage types and rename as necessary to ensure that all
 ///        symbols are accessible for other modules.
 ///
 ///   This should be called before partitioning a module to ensure that the
 /// partitions retain access to each other's symbols.
 void makeAllSymbolsExternallyAccessible(Module &M);
 
-/// @brief Clone a function declaration into a new module.
+/// Clone a function declaration into a new module.
 ///
 ///   This function can be used as the first step towards creating a callback
 /// stub (see makeStub), or moving a function body (see moveFunctionBody).
@@ -407,7 +347,7 @@
 Function *cloneFunctionDecl(Module &Dst, const Function &F,
                             ValueToValueMapTy *VMap = nullptr);
 
-/// @brief Move the body of function 'F' to a cloned function declaration in a
+/// Move the body of function 'F' to a cloned function declaration in a
 ///        different module (See related cloneFunctionDecl).
 ///
 ///   If the target function declaration is not supplied via the NewF parameter
@@ -419,11 +359,11 @@
                       ValueMaterializer *Materializer = nullptr,
                       Function *NewF = nullptr);
 
-/// @brief Clone a global variable declaration into a new module.
+/// Clone a global variable declaration into a new module.
 GlobalVariable *cloneGlobalVariableDecl(Module &Dst, const GlobalVariable &GV,
                                         ValueToValueMapTy *VMap = nullptr);
 
-/// @brief Move global variable GV from its parent module to cloned global
+/// Move global variable GV from its parent module to cloned global
 ///        declaration in a different module.
 ///
 ///   If the target global declaration is not supplied via the NewGV parameter
@@ -436,11 +376,11 @@
                                    ValueMaterializer *Materializer = nullptr,
                                    GlobalVariable *NewGV = nullptr);
 
-/// @brief Clone a global alias declaration into a new module.
+/// Clone a global alias declaration into a new module.
 GlobalAlias *cloneGlobalAliasDecl(Module &Dst, const GlobalAlias &OrigA,
                                   ValueToValueMapTy &VMap);
 
-/// @brief Clone module flags metadata into the destination module.
+/// Clone module flags metadata into the destination module.
 void cloneModuleFlagsMetadata(Module &Dst, const Module &Src,
                               ValueToValueMapTy &VMap);
 
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/LLJIT.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/LLJIT.h
new file mode 100644
index 0000000..df655bd
--- /dev/null
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/LLJIT.h
@@ -0,0 +1,143 @@
+//===----- LLJIT.h -- An ORC-based JIT for compiling LLVM IR ----*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for 3Bdetails.
+//
+//===----------------------------------------------------------------------===//
+//
+// An ORC-based JIT for compiling LLVM IR.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_EXECUTIONENGINE_ORC_LLJIT_H
+#define LLVM_EXECUTIONENGINE_ORC_LLJIT_H
+
+#include "llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h"
+#include "llvm/ExecutionEngine/Orc/CompileUtils.h"
+#include "llvm/ExecutionEngine/Orc/ExecutionUtils.h"
+#include "llvm/ExecutionEngine/Orc/IRCompileLayer.h"
+#include "llvm/ExecutionEngine/Orc/IRTransformLayer.h"
+#include "llvm/ExecutionEngine/Orc/ObjectTransformLayer.h"
+#include "llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h"
+#include "llvm/Target/TargetMachine.h"
+
+namespace llvm {
+namespace orc {
+
+/// A pre-fabricated ORC JIT stack that can serve as an alternative to MCJIT.
+class LLJIT {
+public:
+  /// Create an LLJIT instance.
+  static Expected<std::unique_ptr<LLJIT>>
+  Create(std::unique_ptr<ExecutionSession> ES,
+         std::unique_ptr<TargetMachine> TM, DataLayout DL);
+
+  /// Returns a reference to the ExecutionSession for this JIT instance.
+  ExecutionSession &getExecutionSession() { return *ES; }
+
+  /// Returns a reference to the VSO representing the JIT'd main program.
+  VSO &getMainVSO() { return Main; }
+
+  /// Convenience method for defining an absolute symbol.
+  Error defineAbsolute(StringRef Name, JITEvaluatedSymbol Address);
+
+  /// Adds an IR module to the given VSO.
+  Error addIRModule(VSO &V, std::unique_ptr<Module> M);
+
+  /// Adds an IR module to the Main VSO.
+  Error addIRModule(std::unique_ptr<Module> M) {
+    return addIRModule(Main, std::move(M));
+  }
+
+  /// Look up a symbol in VSO V by the symbol's linker-mangled name (to look up
+  /// symbols based on their IR name use the lookup function instead).
+  Expected<JITEvaluatedSymbol> lookupLinkerMangled(VSO &V, StringRef Name);
+
+  /// Look up a symbol in the main VSO by the symbol's linker-mangled name (to
+  /// look up symbols based on their IR name use the lookup function instead).
+  Expected<JITEvaluatedSymbol> lookupLinkerMangled(StringRef Name) {
+    return lookupLinkerMangled(Main, Name);
+  }
+
+  /// Look up a symbol in VSO V based on its IR symbol name.
+  Expected<JITEvaluatedSymbol> lookup(VSO &V, StringRef UnmangledName) {
+    return lookupLinkerMangled(V, mangle(UnmangledName));
+  }
+
+  /// Look up a symbol in the main VSO based on its IR symbol name.
+  Expected<JITEvaluatedSymbol> lookup(StringRef UnmangledName) {
+    return lookup(Main, UnmangledName);
+  }
+
+  /// Runs all not-yet-run static constructors.
+  Error runConstructors() { return CtorRunner.run(); }
+
+  /// Runs all not-yet-run static destructors.
+  Error runDestructors() { return DtorRunner.run(); }
+
+protected:
+  LLJIT(std::unique_ptr<ExecutionSession> ES, std::unique_ptr<TargetMachine> TM,
+        DataLayout DL);
+
+  std::shared_ptr<RuntimeDyld::MemoryManager> getMemoryManager(VModuleKey K);
+
+  std::string mangle(StringRef UnmangledName);
+
+  Error applyDataLayout(Module &M);
+
+  void recordCtorDtors(Module &M);
+
+  std::unique_ptr<ExecutionSession> ES;
+  VSO &Main;
+
+  std::unique_ptr<TargetMachine> TM;
+  DataLayout DL;
+
+  RTDyldObjectLinkingLayer2 ObjLinkingLayer;
+  IRCompileLayer2 CompileLayer;
+
+  CtorDtorRunner2 CtorRunner, DtorRunner;
+};
+
+/// An extended version of LLJIT that supports lazy function-at-a-time
+/// compilation of LLVM IR.
+class LLLazyJIT : public LLJIT {
+public:
+  /// Create an LLLazyJIT instance.
+  static Expected<std::unique_ptr<LLLazyJIT>>
+  Create(std::unique_ptr<ExecutionSession> ES,
+         std::unique_ptr<TargetMachine> TM, DataLayout DL, LLVMContext &Ctx);
+
+  /// Set an IR transform (e.g. pass manager pipeline) to run on each function
+  /// when it is compiled.
+  void setLazyCompileTransform(IRTransformLayer2::TransformFunction Transform) {
+    TransformLayer.setTransform(std::move(Transform));
+  }
+
+  /// Add a module to be lazily compiled to VSO V.
+  Error addLazyIRModule(VSO &V, std::unique_ptr<Module> M);
+
+  /// Add a module to be lazily compiled to the main VSO.
+  Error addLazyIRModule(std::unique_ptr<Module> M) {
+    return addLazyIRModule(Main, std::move(M));
+  }
+
+private:
+  LLLazyJIT(std::unique_ptr<ExecutionSession> ES,
+            std::unique_ptr<TargetMachine> TM, DataLayout DL, LLVMContext &Ctx,
+            std::unique_ptr<JITCompileCallbackManager> CCMgr,
+            std::function<std::unique_ptr<IndirectStubsManager>()> ISMBuilder);
+
+  std::unique_ptr<JITCompileCallbackManager> CCMgr;
+  std::function<std::unique_ptr<IndirectStubsManager>()> ISMBuilder;
+
+  IRTransformLayer2 TransformLayer;
+  CompileOnDemandLayer2 CODLayer;
+};
+
+} // End namespace orc
+} // End namespace llvm
+
+#endif // LLVM_EXECUTIONENGINE_ORC_LLJIT_H
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Layer.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Layer.h
new file mode 100644
index 0000000..da37266
--- /dev/null
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Layer.h
@@ -0,0 +1,136 @@
+//===---------------- Layer.h -- Layer interfaces --------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// Layer interfaces.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_EXECUTIONENGINE_ORC_LAYER_H
+#define LLVM_EXECUTIONENGINE_ORC_LAYER_H
+
+#include "llvm/ExecutionEngine/Orc/Core.h"
+#include "llvm/IR/Module.h"
+#include "llvm/Support/MemoryBuffer.h"
+
+namespace llvm {
+namespace orc {
+
+/// Interface for layers that accept LLVM IR.
+class IRLayer {
+public:
+  IRLayer(ExecutionSession &ES);
+  virtual ~IRLayer();
+
+  /// Returns the ExecutionSession for this layer.
+  ExecutionSession &getExecutionSession() { return ES; }
+
+  /// Adds a MaterializationUnit representing the given IR to the given VSO.
+  virtual Error add(VSO &V, VModuleKey K, std::unique_ptr<Module> M);
+
+  /// Emit should materialize the given IR.
+  virtual void emit(MaterializationResponsibility R, VModuleKey K,
+                    std::unique_ptr<Module> M) = 0;
+
+private:
+  ExecutionSession &ES;
+};
+
+/// IRMaterializationUnit is a convenient base class for MaterializationUnits
+/// wrapping LLVM IR. Represents materialization responsibility for all symbols
+/// in the given module. If symbols are overridden by other definitions, then
+/// their linkage is changed to available-externally.
+class IRMaterializationUnit : public MaterializationUnit {
+public:
+  using SymbolNameToDefinitionMap = std::map<SymbolStringPtr, GlobalValue *>;
+
+  /// Create an IRMaterializationLayer. Scans the module to build the
+  /// SymbolFlags and SymbolToDefinition maps.
+  IRMaterializationUnit(ExecutionSession &ES, std::unique_ptr<Module> M);
+
+  /// Create an IRMaterializationLayer from a module, and pre-existing
+  /// SymbolFlags and SymbolToDefinition maps. The maps must provide
+  /// entries for each definition in M.
+  /// This constructor is useful for delegating work from one
+  /// IRMaterializationUnit to another.
+  IRMaterializationUnit(std::unique_ptr<Module> M, SymbolFlagsMap SymbolFlags,
+                        SymbolNameToDefinitionMap SymbolToDefinition);
+
+protected:
+  std::unique_ptr<Module> M;
+  SymbolNameToDefinitionMap SymbolToDefinition;
+
+private:
+  void discard(const VSO &V, SymbolStringPtr Name) override;
+};
+
+/// MaterializationUnit that materializes modules by calling the 'emit' method
+/// on the given IRLayer.
+class BasicIRLayerMaterializationUnit : public IRMaterializationUnit {
+public:
+  BasicIRLayerMaterializationUnit(IRLayer &L, VModuleKey K,
+                                  std::unique_ptr<Module> M);
+private:
+
+  void materialize(MaterializationResponsibility R) override;
+
+  IRLayer &L;
+  VModuleKey K;
+};
+
+/// Interface for Layers that accept object files.
+class ObjectLayer {
+public:
+  ObjectLayer(ExecutionSession &ES);
+  virtual ~ObjectLayer();
+
+  /// Returns the execution session for this layer.
+  ExecutionSession &getExecutionSession() { return ES; }
+
+  /// Adds a MaterializationUnit representing the given IR to the given VSO.
+  virtual Error add(VSO &V, VModuleKey K, std::unique_ptr<MemoryBuffer> O);
+
+  /// Emit should materialize the given IR.
+  virtual void emit(MaterializationResponsibility R, VModuleKey K,
+                    std::unique_ptr<MemoryBuffer> O) = 0;
+
+private:
+  ExecutionSession &ES;
+};
+
+/// Materializes the given object file (represented by a MemoryBuffer
+/// instance) by calling 'emit' on the given ObjectLayer.
+class BasicObjectLayerMaterializationUnit : public MaterializationUnit {
+public:
+  static Expected<std::unique_ptr<BasicObjectLayerMaterializationUnit>>
+  Create(ObjectLayer &L, VModuleKey K, std::unique_ptr<MemoryBuffer> O);
+
+  BasicObjectLayerMaterializationUnit(ObjectLayer &L, VModuleKey K,
+                                      std::unique_ptr<MemoryBuffer> O,
+                                      SymbolFlagsMap SymbolFlags);
+
+private:
+
+  void materialize(MaterializationResponsibility R) override;
+  void discard(const VSO &V, SymbolStringPtr Name) override;
+
+  ObjectLayer &L;
+  VModuleKey K;
+  std::unique_ptr<MemoryBuffer> O;
+};
+
+/// Returns a SymbolFlagsMap for the object file represented by the given
+/// buffer, or an error if the buffer does not contain a valid object file.
+// FIXME: Maybe move to Core.h?
+Expected<SymbolFlagsMap> getObjectSymbolFlags(ExecutionSession &ES,
+                                              MemoryBufferRef ObjBuffer);
+
+} // End namespace orc
+} // End namespace llvm
+
+#endif // LLVM_EXECUTIONENGINE_ORC_LAYER_H
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
index 4117a92..46761b0 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
@@ -33,7 +33,7 @@
 namespace llvm {
 namespace orc {
 
-/// @brief Lazy-emitting IR layer.
+/// Lazy-emitting IR layer.
 ///
 ///   This layer accepts LLVM IR Modules (via addModule), but does not
 /// immediately emit them the layer below. Instead, emissing to the base layer
@@ -196,10 +196,10 @@
 
 public:
 
-  /// @brief Construct a lazy emitting layer.
+  /// Construct a lazy emitting layer.
   LazyEmittingLayer(BaseLayerT &BaseLayer) : BaseLayer(BaseLayer) {}
 
-  /// @brief Add the given module to the lazy emitting layer.
+  /// Add the given module to the lazy emitting layer.
   Error addModule(VModuleKey K, std::unique_ptr<Module> M) {
     assert(!ModuleMap.count(K) && "VModuleKey K already in use");
     ModuleMap[K] =
@@ -207,7 +207,7 @@
     return Error::success();
   }
 
-  /// @brief Remove the module represented by the given handle.
+  /// Remove the module represented by the given handle.
   ///
   ///   This method will free the memory associated with the given module, both
   /// in this layer, and the base layer.
@@ -219,7 +219,7 @@
     return EDM->removeModuleFromBaseLayer(BaseLayer);
   }
 
-  /// @brief Search for the given named symbol.
+  /// Search for the given named symbol.
   /// @param Name The name of the symbol to search for.
   /// @param ExportedSymbolsOnly If true, search only for exported symbols.
   /// @return A handle for the given named symbol, if it exists.
@@ -239,7 +239,7 @@
     return nullptr;
   }
 
-  /// @brief Get the address of the given symbol in the context of the of
+  /// Get the address of the given symbol in the context of the of
   ///        compiled modules represented by the key K.
   JITSymbol findSymbolIn(VModuleKey K, const std::string &Name,
                          bool ExportedSymbolsOnly) {
@@ -247,7 +247,7 @@
     return ModuleMap[K]->find(Name, ExportedSymbolsOnly, BaseLayer);
   }
 
-  /// @brief Immediately emit and finalize the module represented by the given
+  /// Immediately emit and finalize the module represented by the given
   ///        key.
   Error emitAndFinalize(VModuleKey K) {
     assert(ModuleMap.count(K) && "VModuleKey K not valid here");
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Legacy.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Legacy.h
index b2b389a..52c8c16 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Legacy.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/Legacy.h
@@ -20,9 +20,76 @@
 namespace llvm {
 namespace orc {
 
+/// SymbolResolver is a composable interface for looking up symbol flags
+///        and addresses using the AsynchronousSymbolQuery type. It will
+///        eventually replace the LegacyJITSymbolResolver interface as the
+///        stardard ORC symbol resolver type.
+///
+/// FIXME: SymbolResolvers should go away and be replaced with VSOs with
+///        defenition generators.
+class SymbolResolver {
+public:
+  virtual ~SymbolResolver() = default;
+
+  /// Returns the flags for each symbol in Symbols that can be found,
+  ///        along with the set of symbol that could not be found.
+  virtual SymbolFlagsMap lookupFlags(const SymbolNameSet &Symbols) = 0;
+
+  /// For each symbol in Symbols that can be found, assigns that symbols
+  ///        value in Query. Returns the set of symbols that could not be found.
+  virtual SymbolNameSet lookup(std::shared_ptr<AsynchronousSymbolQuery> Query,
+                               SymbolNameSet Symbols) = 0;
+
+private:
+  virtual void anchor();
+};
+
+/// Implements SymbolResolver with a pair of supplied function objects
+///        for convenience. See createSymbolResolver.
+template <typename LookupFlagsFn, typename LookupFn>
+class LambdaSymbolResolver final : public SymbolResolver {
+public:
+  template <typename LookupFlagsFnRef, typename LookupFnRef>
+  LambdaSymbolResolver(LookupFlagsFnRef &&LookupFlags, LookupFnRef &&Lookup)
+      : LookupFlags(std::forward<LookupFlagsFnRef>(LookupFlags)),
+        Lookup(std::forward<LookupFnRef>(Lookup)) {}
+
+  SymbolFlagsMap lookupFlags(const SymbolNameSet &Symbols) final {
+    return LookupFlags(Symbols);
+  }
+
+  SymbolNameSet lookup(std::shared_ptr<AsynchronousSymbolQuery> Query,
+                       SymbolNameSet Symbols) final {
+    return Lookup(std::move(Query), std::move(Symbols));
+  }
+
+private:
+  LookupFlagsFn LookupFlags;
+  LookupFn Lookup;
+};
+
+/// Creates a SymbolResolver implementation from the pair of supplied
+///        function objects.
+template <typename LookupFlagsFn, typename LookupFn>
+std::unique_ptr<LambdaSymbolResolver<
+    typename std::remove_cv<
+        typename std::remove_reference<LookupFlagsFn>::type>::type,
+    typename std::remove_cv<
+        typename std::remove_reference<LookupFn>::type>::type>>
+createSymbolResolver(LookupFlagsFn &&LookupFlags, LookupFn &&Lookup) {
+  using LambdaSymbolResolverImpl = LambdaSymbolResolver<
+      typename std::remove_cv<
+          typename std::remove_reference<LookupFlagsFn>::type>::type,
+      typename std::remove_cv<
+          typename std::remove_reference<LookupFn>::type>::type>;
+  return llvm::make_unique<LambdaSymbolResolverImpl>(
+      std::forward<LookupFlagsFn>(LookupFlags), std::forward<LookupFn>(Lookup));
+}
+
 class JITSymbolResolverAdapter : public JITSymbolResolver {
 public:
-  JITSymbolResolverAdapter(ExecutionSession &ES, SymbolResolver &R);
+  JITSymbolResolverAdapter(ExecutionSession &ES, SymbolResolver &R,
+                           MaterializationResponsibility *MR);
   Expected<LookupFlagsResult> lookupFlags(const LookupSet &Symbols) override;
   Expected<LookupResult> lookup(const LookupSet &Symbols) override;
 
@@ -30,9 +97,10 @@
   ExecutionSession &ES;
   std::set<SymbolStringPtr> ResolvedStrings;
   SymbolResolver &R;
+  MaterializationResponsibility *MR;
 };
 
-/// @brief Use the given legacy-style FindSymbol function (i.e. a function that
+/// Use the given legacy-style FindSymbol function (i.e. a function that
 ///        takes a const std::string& or StringRef and returns a JITSymbol) to
 ///        find the flags for each symbol in Symbols and store their flags in
 ///        SymbolFlags. If any JITSymbol returned by FindSymbol is in an error
@@ -41,95 +109,100 @@
 ///
 /// Useful for implementing lookupFlags bodies that query legacy resolvers.
 template <typename FindSymbolFn>
-Expected<SymbolNameSet> lookupFlagsWithLegacyFn(SymbolFlagsMap &SymbolFlags,
-                                                const SymbolNameSet &Symbols,
-                                                FindSymbolFn FindSymbol) {
-  SymbolNameSet SymbolsNotFound;
+Expected<SymbolFlagsMap> lookupFlagsWithLegacyFn(const SymbolNameSet &Symbols,
+                                                 FindSymbolFn FindSymbol) {
+  SymbolFlagsMap SymbolFlags;
 
   for (auto &S : Symbols) {
     if (JITSymbol Sym = FindSymbol(*S))
       SymbolFlags[S] = Sym.getFlags();
     else if (auto Err = Sym.takeError())
       return std::move(Err);
-    else
-      SymbolsNotFound.insert(S);
   }
 
-  return SymbolsNotFound;
+  return SymbolFlags;
 }
 
-/// @brief Use the given legacy-style FindSymbol function (i.e. a function that
+/// Use the given legacy-style FindSymbol function (i.e. a function that
 ///        takes a const std::string& or StringRef and returns a JITSymbol) to
 ///        find the address and flags for each symbol in Symbols and store the
 ///        result in Query. If any JITSymbol returned by FindSymbol is in an
-///        error then Query.setFailed(...) is called with that error and the
+///        error then Query.notifyFailed(...) is called with that error and the
 ///        function returns immediately. On success, returns the set of symbols
 ///        not found.
 ///
 /// Useful for implementing lookup bodies that query legacy resolvers.
 template <typename FindSymbolFn>
-SymbolNameSet lookupWithLegacyFn(AsynchronousSymbolQuery &Query,
-                                 const SymbolNameSet &Symbols,
-                                 FindSymbolFn FindSymbol) {
+SymbolNameSet
+lookupWithLegacyFn(ExecutionSession &ES, AsynchronousSymbolQuery &Query,
+                   const SymbolNameSet &Symbols, FindSymbolFn FindSymbol) {
   SymbolNameSet SymbolsNotFound;
+  bool NewSymbolsResolved = false;
 
   for (auto &S : Symbols) {
     if (JITSymbol Sym = FindSymbol(*S)) {
       if (auto Addr = Sym.getAddress()) {
-        Query.setDefinition(S, JITEvaluatedSymbol(*Addr, Sym.getFlags()));
-        Query.notifySymbolFinalized();
+        Query.resolve(S, JITEvaluatedSymbol(*Addr, Sym.getFlags()));
+        Query.notifySymbolReady();
+        NewSymbolsResolved = true;
       } else {
-        Query.setFailed(Addr.takeError());
+        ES.legacyFailQuery(Query, Addr.takeError());
         return SymbolNameSet();
       }
     } else if (auto Err = Sym.takeError()) {
-      Query.setFailed(std::move(Err));
+      ES.legacyFailQuery(Query, std::move(Err));
       return SymbolNameSet();
     } else
       SymbolsNotFound.insert(S);
   }
 
+  if (NewSymbolsResolved && Query.isFullyResolved())
+    Query.handleFullyResolved();
+
+  if (NewSymbolsResolved && Query.isFullyReady())
+    Query.handleFullyReady();
+
   return SymbolsNotFound;
 }
 
-/// @brief An ORC SymbolResolver implementation that uses a legacy
+/// An ORC SymbolResolver implementation that uses a legacy
 ///        findSymbol-like function to perform lookup;
 template <typename LegacyLookupFn>
 class LegacyLookupFnResolver final : public SymbolResolver {
 public:
   using ErrorReporter = std::function<void(Error)>;
 
-  LegacyLookupFnResolver(LegacyLookupFn LegacyLookup, ErrorReporter ReportError)
-      : LegacyLookup(std::move(LegacyLookup)),
+  LegacyLookupFnResolver(ExecutionSession &ES, LegacyLookupFn LegacyLookup,
+                         ErrorReporter ReportError)
+      : ES(ES), LegacyLookup(std::move(LegacyLookup)),
         ReportError(std::move(ReportError)) {}
 
-  SymbolNameSet lookupFlags(SymbolFlagsMap &Flags,
-                            const SymbolNameSet &Symbols) final {
-    if (auto RemainingSymbols =
-            lookupFlagsWithLegacyFn(Flags, Symbols, LegacyLookup))
-      return std::move(*RemainingSymbols);
+  SymbolFlagsMap lookupFlags(const SymbolNameSet &Symbols) final {
+    if (auto SymbolFlags = lookupFlagsWithLegacyFn(Symbols, LegacyLookup))
+      return std::move(*SymbolFlags);
     else {
-      ReportError(RemainingSymbols.takeError());
-      return Symbols;
+      ReportError(SymbolFlags.takeError());
+      return SymbolFlagsMap();
     }
   }
 
   SymbolNameSet lookup(std::shared_ptr<AsynchronousSymbolQuery> Query,
                        SymbolNameSet Symbols) final {
-    return lookupWithLegacyFn(*Query, Symbols, LegacyLookup);
+    return lookupWithLegacyFn(ES, *Query, Symbols, LegacyLookup);
   }
 
 private:
+  ExecutionSession &ES;
   LegacyLookupFn LegacyLookup;
   ErrorReporter ReportError;
 };
 
 template <typename LegacyLookupFn>
 std::shared_ptr<LegacyLookupFnResolver<LegacyLookupFn>>
-createLegacyLookupResolver(LegacyLookupFn LegacyLookup,
+createLegacyLookupResolver(ExecutionSession &ES, LegacyLookupFn LegacyLookup,
                            std::function<void(Error)> ErrorReporter) {
   return std::make_shared<LegacyLookupFnResolver<LegacyLookupFn>>(
-      std::move(LegacyLookup), std::move(ErrorReporter));
+      ES, std::move(LegacyLookup), std::move(ErrorReporter));
 }
 
 } // End namespace orc
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/NullResolver.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/NullResolver.h
index eba9b95..3dd3cfe 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/NullResolver.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/NullResolver.h
@@ -15,7 +15,7 @@
 #ifndef LLVM_EXECUTIONENGINE_ORC_NULLRESOLVER_H
 #define LLVM_EXECUTIONENGINE_ORC_NULLRESOLVER_H
 
-#include "llvm/ExecutionEngine/Orc/Core.h"
+#include "llvm/ExecutionEngine/Orc/Legacy.h"
 #include "llvm/ExecutionEngine/RuntimeDyld.h"
 
 namespace llvm {
@@ -23,8 +23,7 @@
 
 class NullResolver : public SymbolResolver {
 public:
-  SymbolNameSet lookupFlags(SymbolFlagsMap &Flags,
-                            const SymbolNameSet &Symbols) override;
+  SymbolFlagsMap lookupFlags(const SymbolNameSet &Symbols) override;
 
   SymbolNameSet lookup(std::shared_ptr<AsynchronousSymbolQuery> Query,
                        SymbolNameSet Symbols) override;
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
index cfc3922..c6b43a9 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
@@ -15,7 +15,7 @@
 #define LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H
 
 #include "llvm/ExecutionEngine/JITSymbol.h"
-#include "llvm/ExecutionEngine/Orc/Core.h"
+#include "llvm/ExecutionEngine/Orc/Layer.h"
 #include <algorithm>
 #include <memory>
 #include <string>
@@ -23,7 +23,24 @@
 namespace llvm {
 namespace orc {
 
-/// @brief Object mutating layer.
+class ObjectTransformLayer2 : public ObjectLayer {
+public:
+  using TransformFunction =
+      std::function<Expected<std::unique_ptr<MemoryBuffer>>(
+          std::unique_ptr<MemoryBuffer>)>;
+
+  ObjectTransformLayer2(ExecutionSession &ES, ObjectLayer &BaseLayer,
+                        TransformFunction Transform);
+
+  void emit(MaterializationResponsibility R, VModuleKey K,
+            std::unique_ptr<MemoryBuffer> O) override;
+
+private:
+  ObjectLayer &BaseLayer;
+  TransformFunction Transform;
+};
+
+/// Object mutating layer.
 ///
 ///   This layer accepts sets of ObjectFiles (via addObject). It
 /// immediately applies the user supplied functor to each object, then adds
@@ -31,12 +48,12 @@
 template <typename BaseLayerT, typename TransformFtor>
 class ObjectTransformLayer {
 public:
-  /// @brief Construct an ObjectTransformLayer with the given BaseLayer
+  /// Construct an ObjectTransformLayer with the given BaseLayer
   ObjectTransformLayer(BaseLayerT &BaseLayer,
                        TransformFtor Transform = TransformFtor())
       : BaseLayer(BaseLayer), Transform(std::move(Transform)) {}
 
-  /// @brief Apply the transform functor to each object in the object set, then
+  /// Apply the transform functor to each object in the object set, then
   ///        add the resulting set of objects to the base layer, along with the
   ///        memory manager and symbol resolver.
   ///
@@ -45,10 +62,10 @@
     return BaseLayer.addObject(std::move(K), Transform(std::move(Obj)));
   }
 
-  /// @brief Remove the object set associated with the VModuleKey K.
+  /// Remove the object set associated with the VModuleKey K.
   Error removeObject(VModuleKey K) { return BaseLayer.removeObject(K); }
 
-  /// @brief Search for the given named symbol.
+  /// Search for the given named symbol.
   /// @param Name The name of the symbol to search for.
   /// @param ExportedSymbolsOnly If true, search only for exported symbols.
   /// @return A handle for the given named symbol, if it exists.
@@ -56,7 +73,7 @@
     return BaseLayer.findSymbol(Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Get the address of the given symbol in the context of the set of
+  /// Get the address of the given symbol in the context of the set of
   ///        objects represented by the VModuleKey K. This call is forwarded to
   ///        the base layer's implementation.
   /// @param K The VModuleKey associated with the object set to search in.
@@ -69,21 +86,21 @@
     return BaseLayer.findSymbolIn(K, Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Immediately emit and finalize the object set represented by the
+  /// Immediately emit and finalize the object set represented by the
   ///        given VModuleKey K.
   Error emitAndFinalize(VModuleKey K) { return BaseLayer.emitAndFinalize(K); }
 
-  /// @brief Map section addresses for the objects associated with the
+  /// Map section addresses for the objects associated with the
   /// VModuleKey K.
   void mapSectionAddress(VModuleKey K, const void *LocalAddress,
                          JITTargetAddress TargetAddr) {
     BaseLayer.mapSectionAddress(K, LocalAddress, TargetAddr);
   }
 
-  /// @brief Access the transform functor directly.
+  /// Access the transform functor directly.
   TransformFtor &getTransform() { return Transform; }
 
-  /// @brief Access the mumate functor directly.
+  /// Access the mumate functor directly.
   const TransformFtor &getTransform() const { return Transform; }
 
 private:
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcABISupport.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcABISupport.h
index e1b5564..581c598 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcABISupport.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcABISupport.h
@@ -71,7 +71,7 @@
   }
 };
 
-/// @brief Provide information about stub blocks generated by the
+/// Provide information about stub blocks generated by the
 ///        makeIndirectStubsBlock function.
 template <unsigned StubSizeVal> class GenericIndirectStubsInfo {
 public:
@@ -92,16 +92,16 @@
     return *this;
   }
 
-  /// @brief Number of stubs in this block.
+  /// Number of stubs in this block.
   unsigned getNumStubs() const { return NumStubs; }
 
-  /// @brief Get a pointer to the stub at the given index, which must be in
+  /// Get a pointer to the stub at the given index, which must be in
   ///        the range 0 .. getNumStubs() - 1.
   void *getStub(unsigned Idx) const {
     return static_cast<char *>(StubsMem.base()) + Idx * StubSize;
   }
 
-  /// @brief Get a pointer to the implementation-pointer at the given index,
+  /// Get a pointer to the implementation-pointer at the given index,
   ///        which must be in the range 0 .. getNumStubs() - 1.
   void **getPtr(unsigned Idx) const {
     char *PtrsBase = static_cast<char *>(StubsMem.base()) + NumStubs * StubSize;
@@ -124,18 +124,18 @@
   using JITReentryFn = JITTargetAddress (*)(void *CallbackMgr,
                                             void *TrampolineId);
 
-  /// @brief Write the resolver code into the given memory. The user is be
+  /// Write the resolver code into the given memory. The user is be
   ///        responsible for allocating the memory and setting permissions.
   static void writeResolverCode(uint8_t *ResolveMem, JITReentryFn Reentry,
                                 void *CallbackMgr);
 
-  /// @brief Write the requsted number of trampolines into the given memory,
+  /// Write the requsted number of trampolines into the given memory,
   ///        which must be big enough to hold 1 pointer, plus NumTrampolines
   ///        trampolines.
   static void writeTrampolines(uint8_t *TrampolineMem, void *ResolverAddr,
                                unsigned NumTrampolines);
 
-  /// @brief Emit at least MinStubs worth of indirect call stubs, rounded out to
+  /// Emit at least MinStubs worth of indirect call stubs, rounded out to
   ///        the nearest page size.
   ///
   ///   E.g. Asking for 4 stubs on x86-64, where stubs are 8-bytes, with 4k
@@ -145,7 +145,7 @@
                                       unsigned MinStubs, void *InitialPtrVal);
 };
 
-/// @brief X86_64 code that's common to all ABIs.
+/// X86_64 code that's common to all ABIs.
 ///
 /// X86_64 supports lazy JITing.
 class OrcX86_64_Base {
@@ -155,13 +155,13 @@
 
   using IndirectStubsInfo = GenericIndirectStubsInfo<8>;
 
-  /// @brief Write the requsted number of trampolines into the given memory,
+  /// Write the requsted number of trampolines into the given memory,
   ///        which must be big enough to hold 1 pointer, plus NumTrampolines
   ///        trampolines.
   static void writeTrampolines(uint8_t *TrampolineMem, void *ResolverAddr,
                                unsigned NumTrampolines);
 
-  /// @brief Emit at least MinStubs worth of indirect call stubs, rounded out to
+  /// Emit at least MinStubs worth of indirect call stubs, rounded out to
   ///        the nearest page size.
   ///
   ///   E.g. Asking for 4 stubs on x86-64, where stubs are 8-bytes, with 4k
@@ -171,7 +171,7 @@
                                       unsigned MinStubs, void *InitialPtrVal);
 };
 
-/// @brief X86_64 support for SysV ABI (Linux, MacOSX).
+/// X86_64 support for SysV ABI (Linux, MacOSX).
 ///
 /// X86_64_SysV supports lazy JITing.
 class OrcX86_64_SysV : public OrcX86_64_Base {
@@ -181,13 +181,13 @@
   using JITReentryFn = JITTargetAddress (*)(void *CallbackMgr,
                                             void *TrampolineId);
 
-  /// @brief Write the resolver code into the given memory. The user is be
+  /// Write the resolver code into the given memory. The user is be
   ///        responsible for allocating the memory and setting permissions.
   static void writeResolverCode(uint8_t *ResolveMem, JITReentryFn Reentry,
                                 void *CallbackMgr);
 };
 
-/// @brief X86_64 support for Win32.
+/// X86_64 support for Win32.
 ///
 /// X86_64_Win32 supports lazy JITing.
 class OrcX86_64_Win32 : public OrcX86_64_Base {
@@ -197,13 +197,13 @@
   using JITReentryFn = JITTargetAddress (*)(void *CallbackMgr,
                                             void *TrampolineId);
 
-  /// @brief Write the resolver code into the given memory. The user is be
+  /// Write the resolver code into the given memory. The user is be
   ///        responsible for allocating the memory and setting permissions.
   static void writeResolverCode(uint8_t *ResolveMem, JITReentryFn Reentry,
                                 void *CallbackMgr);
 };
 
-/// @brief I386 support.
+/// I386 support.
 ///
 /// I386 supports lazy JITing.
 class OrcI386 {
@@ -217,18 +217,18 @@
   using JITReentryFn = JITTargetAddress (*)(void *CallbackMgr,
                                             void *TrampolineId);
 
-  /// @brief Write the resolver code into the given memory. The user is be
+  /// Write the resolver code into the given memory. The user is be
   ///        responsible for allocating the memory and setting permissions.
   static void writeResolverCode(uint8_t *ResolveMem, JITReentryFn Reentry,
                                 void *CallbackMgr);
 
-  /// @brief Write the requsted number of trampolines into the given memory,
+  /// Write the requsted number of trampolines into the given memory,
   ///        which must be big enough to hold 1 pointer, plus NumTrampolines
   ///        trampolines.
   static void writeTrampolines(uint8_t *TrampolineMem, void *ResolverAddr,
                                unsigned NumTrampolines);
 
-  /// @brief Emit at least MinStubs worth of indirect call stubs, rounded out to
+  /// Emit at least MinStubs worth of indirect call stubs, rounded out to
   ///        the nearest page size.
   ///
   ///   E.g. Asking for 4 stubs on i386, where stubs are 8-bytes, with 4k
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcError.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcError.h
index c2ff41e..dc60e8d 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcError.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcError.h
@@ -22,7 +22,8 @@
 
 enum class OrcErrorCode : int {
   // RPC Errors
-  DuplicateDefinition = 1,
+  UnknownORCError = 1,
+  DuplicateDefinition,
   JITSymbolNotFound,
   RemoteAllocatorDoesNotExist,
   RemoteAllocatorIdAlreadyInUse,
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
index 7179e5f..739e5ba 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
@@ -63,7 +63,7 @@
   public:
     ~RemoteRTDyldMemoryManager() {
       Client.destroyRemoteAllocator(Id);
-      DEBUG(dbgs() << "Destroyed remote allocator " << Id << "\n");
+      LLVM_DEBUG(dbgs() << "Destroyed remote allocator " << Id << "\n");
     }
 
     RemoteRTDyldMemoryManager(const RemoteRTDyldMemoryManager &) = delete;
@@ -79,9 +79,9 @@
       Unmapped.back().CodeAllocs.emplace_back(Size, Alignment);
       uint8_t *Alloc = reinterpret_cast<uint8_t *>(
           Unmapped.back().CodeAllocs.back().getLocalAddress());
-      DEBUG(dbgs() << "Allocator " << Id << " allocated code for "
-                   << SectionName << ": " << Alloc << " (" << Size
-                   << " bytes, alignment " << Alignment << ")\n");
+      LLVM_DEBUG(dbgs() << "Allocator " << Id << " allocated code for "
+                        << SectionName << ": " << Alloc << " (" << Size
+                        << " bytes, alignment " << Alignment << ")\n");
       return Alloc;
     }
 
@@ -92,18 +92,18 @@
         Unmapped.back().RODataAllocs.emplace_back(Size, Alignment);
         uint8_t *Alloc = reinterpret_cast<uint8_t *>(
             Unmapped.back().RODataAllocs.back().getLocalAddress());
-        DEBUG(dbgs() << "Allocator " << Id << " allocated ro-data for "
-                     << SectionName << ": " << Alloc << " (" << Size
-                     << " bytes, alignment " << Alignment << ")\n");
+        LLVM_DEBUG(dbgs() << "Allocator " << Id << " allocated ro-data for "
+                          << SectionName << ": " << Alloc << " (" << Size
+                          << " bytes, alignment " << Alignment << ")\n");
         return Alloc;
       } // else...
 
       Unmapped.back().RWDataAllocs.emplace_back(Size, Alignment);
       uint8_t *Alloc = reinterpret_cast<uint8_t *>(
           Unmapped.back().RWDataAllocs.back().getLocalAddress());
-      DEBUG(dbgs() << "Allocator " << Id << " allocated rw-data for "
-                   << SectionName << ": " << Alloc << " (" << Size
-                   << " bytes, alignment " << Alignment << ")\n");
+      LLVM_DEBUG(dbgs() << "Allocator " << Id << " allocated rw-data for "
+                        << SectionName << ": " << Alloc << " (" << Size
+                        << " bytes, alignment " << Alignment << ")\n");
       return Alloc;
     }
 
@@ -113,36 +113,36 @@
                                 uint32_t RWDataAlign) override {
       Unmapped.push_back(ObjectAllocs());
 
-      DEBUG(dbgs() << "Allocator " << Id << " reserved:\n");
+      LLVM_DEBUG(dbgs() << "Allocator " << Id << " reserved:\n");
 
       if (CodeSize != 0) {
         Unmapped.back().RemoteCodeAddr =
             Client.reserveMem(Id, CodeSize, CodeAlign);
 
-        DEBUG(dbgs() << "  code: "
-                     << format("0x%016x", Unmapped.back().RemoteCodeAddr)
-                     << " (" << CodeSize << " bytes, alignment " << CodeAlign
-                     << ")\n");
+        LLVM_DEBUG(dbgs() << "  code: "
+                          << format("0x%016x", Unmapped.back().RemoteCodeAddr)
+                          << " (" << CodeSize << " bytes, alignment "
+                          << CodeAlign << ")\n");
       }
 
       if (RODataSize != 0) {
         Unmapped.back().RemoteRODataAddr =
             Client.reserveMem(Id, RODataSize, RODataAlign);
 
-        DEBUG(dbgs() << "  ro-data: "
-                     << format("0x%016x", Unmapped.back().RemoteRODataAddr)
-                     << " (" << RODataSize << " bytes, alignment "
-                     << RODataAlign << ")\n");
+        LLVM_DEBUG(dbgs() << "  ro-data: "
+                          << format("0x%016x", Unmapped.back().RemoteRODataAddr)
+                          << " (" << RODataSize << " bytes, alignment "
+                          << RODataAlign << ")\n");
       }
 
       if (RWDataSize != 0) {
         Unmapped.back().RemoteRWDataAddr =
             Client.reserveMem(Id, RWDataSize, RWDataAlign);
 
-        DEBUG(dbgs() << "  rw-data: "
-                     << format("0x%016x", Unmapped.back().RemoteRWDataAddr)
-                     << " (" << RWDataSize << " bytes, alignment "
-                     << RWDataAlign << ")\n");
+        LLVM_DEBUG(dbgs() << "  rw-data: "
+                          << format("0x%016x", Unmapped.back().RemoteRWDataAddr)
+                          << " (" << RWDataSize << " bytes, alignment "
+                          << RWDataAlign << ")\n");
       }
     }
 
@@ -162,7 +162,7 @@
 
     void notifyObjectLoaded(RuntimeDyld &Dyld,
                             const object::ObjectFile &Obj) override {
-      DEBUG(dbgs() << "Allocator " << Id << " applied mappings:\n");
+      LLVM_DEBUG(dbgs() << "Allocator " << Id << " applied mappings:\n");
       for (auto &ObjAllocs : Unmapped) {
         mapAllocsToRemoteAddrs(Dyld, ObjAllocs.CodeAllocs,
                                ObjAllocs.RemoteCodeAddr);
@@ -176,7 +176,7 @@
     }
 
     bool finalizeMemory(std::string *ErrMsg = nullptr) override {
-      DEBUG(dbgs() << "Allocator " << Id << " finalizing:\n");
+      LLVM_DEBUG(dbgs() << "Allocator " << Id << " finalizing:\n");
 
       for (auto &ObjAllocs : Unfinalized) {
         if (copyAndProtect(ObjAllocs.CodeAllocs, ObjAllocs.RemoteCodeAddr,
@@ -261,7 +261,7 @@
     RemoteRTDyldMemoryManager(OrcRemoteTargetClient &Client,
                               ResourceIdMgr::ResourceId Id)
         : Client(Client), Id(Id) {
-      DEBUG(dbgs() << "Created remote allocator " << Id << "\n");
+      LLVM_DEBUG(dbgs() << "Created remote allocator " << Id << "\n");
     }
 
     // Maps all allocations in Allocs to aligned blocks
@@ -270,8 +270,9 @@
       for (auto &Alloc : Allocs) {
         NextAddr = alignTo(NextAddr, Alloc.getAlign());
         Dyld.mapSectionAddress(Alloc.getLocalAddress(), NextAddr);
-        DEBUG(dbgs() << "     " << static_cast<void *>(Alloc.getLocalAddress())
-                     << " -> " << format("0x%016x", NextAddr) << "\n");
+        LLVM_DEBUG(dbgs() << "     "
+                          << static_cast<void *>(Alloc.getLocalAddress())
+                          << " -> " << format("0x%016x", NextAddr) << "\n");
         Alloc.setRemoteAddress(NextAddr);
 
         // Only advance NextAddr if it was non-null to begin with,
@@ -290,22 +291,23 @@
         assert(!Allocs.empty() && "No sections in allocated segment");
 
         for (auto &Alloc : Allocs) {
-          DEBUG(dbgs() << "  copying section: "
-                       << static_cast<void *>(Alloc.getLocalAddress()) << " -> "
-                       << format("0x%016x", Alloc.getRemoteAddress()) << " ("
-                       << Alloc.getSize() << " bytes)\n";);
+          LLVM_DEBUG(dbgs() << "  copying section: "
+                            << static_cast<void *>(Alloc.getLocalAddress())
+                            << " -> "
+                            << format("0x%016x", Alloc.getRemoteAddress())
+                            << " (" << Alloc.getSize() << " bytes)\n";);
 
           if (Client.writeMem(Alloc.getRemoteAddress(), Alloc.getLocalAddress(),
                               Alloc.getSize()))
             return true;
         }
 
-        DEBUG(dbgs() << "  setting "
-                     << (Permissions & sys::Memory::MF_READ ? 'R' : '-')
-                     << (Permissions & sys::Memory::MF_WRITE ? 'W' : '-')
-                     << (Permissions & sys::Memory::MF_EXEC ? 'X' : '-')
-                     << " permissions on block: "
-                     << format("0x%016x", RemoteSegmentAddr) << "\n");
+        LLVM_DEBUG(dbgs() << "  setting "
+                          << (Permissions & sys::Memory::MF_READ ? 'R' : '-')
+                          << (Permissions & sys::Memory::MF_WRITE ? 'W' : '-')
+                          << (Permissions & sys::Memory::MF_EXEC ? 'X' : '-')
+                          << " permissions on block: "
+                          << format("0x%016x", RemoteSegmentAddr) << "\n");
         if (Client.setProtections(Id, RemoteSegmentAddr, Permissions))
           return true;
       }
@@ -356,25 +358,25 @@
       return Error::success();
     }
 
-    JITSymbol findStub(StringRef Name, bool ExportedStubsOnly) override {
+    JITEvaluatedSymbol findStub(StringRef Name, bool ExportedStubsOnly) override {
       auto I = StubIndexes.find(Name);
       if (I == StubIndexes.end())
         return nullptr;
       auto Key = I->second.first;
       auto Flags = I->second.second;
-      auto StubSymbol = JITSymbol(getStubAddr(Key), Flags);
+      auto StubSymbol = JITEvaluatedSymbol(getStubAddr(Key), Flags);
       if (ExportedStubsOnly && !StubSymbol.getFlags().isExported())
         return nullptr;
       return StubSymbol;
     }
 
-    JITSymbol findPointer(StringRef Name) override {
+    JITEvaluatedSymbol findPointer(StringRef Name) override {
       auto I = StubIndexes.find(Name);
       if (I == StubIndexes.end())
         return nullptr;
       auto Key = I->second.first;
       auto Flags = I->second.second;
-      return JITSymbol(getPtrAddr(Key), Flags);
+      return JITEvaluatedSymbol(getPtrAddr(Key), Flags);
     }
 
     Error updatePointer(StringRef Name, JITTargetAddress NewAddr) override {
@@ -449,8 +451,9 @@
   class RemoteCompileCallbackManager : public JITCompileCallbackManager {
   public:
     RemoteCompileCallbackManager(OrcRemoteTargetClient &Client,
+                                 ExecutionSession &ES,
                                  JITTargetAddress ErrorHandlerAddress)
-        : JITCompileCallbackManager(ErrorHandlerAddress), Client(Client) {}
+        : JITCompileCallbackManager(ES, ErrorHandlerAddress), Client(Client) {}
 
   private:
     Error grow() override {
@@ -475,10 +478,10 @@
   /// Channel is the ChannelT instance to communicate on. It is assumed that
   /// the channel is ready to be read from and written to.
   static Expected<std::unique_ptr<OrcRemoteTargetClient>>
-  Create(rpc::RawByteChannel &Channel, std::function<void(Error)> ReportError) {
+  Create(rpc::RawByteChannel &Channel, ExecutionSession &ES) {
     Error Err = Error::success();
     auto Client = std::unique_ptr<OrcRemoteTargetClient>(
-        new OrcRemoteTargetClient(Channel, std::move(ReportError), Err));
+        new OrcRemoteTargetClient(Channel, ES, Err));
     if (Err)
       return std::move(Err);
     return std::move(Client);
@@ -487,7 +490,8 @@
   /// Call the int(void) function at the given address in the target and return
   /// its result.
   Expected<int> callIntVoid(JITTargetAddress Addr) {
-    DEBUG(dbgs() << "Calling int(*)(void) " << format("0x%016x", Addr) << "\n");
+    LLVM_DEBUG(dbgs() << "Calling int(*)(void) " << format("0x%016x", Addr)
+                      << "\n");
     return callB<exec::CallIntVoid>(Addr);
   }
 
@@ -495,16 +499,16 @@
   /// return its result.
   Expected<int> callMain(JITTargetAddress Addr,
                          const std::vector<std::string> &Args) {
-    DEBUG(dbgs() << "Calling int(*)(int, char*[]) " << format("0x%016x", Addr)
-                 << "\n");
+    LLVM_DEBUG(dbgs() << "Calling int(*)(int, char*[]) "
+                      << format("0x%016x", Addr) << "\n");
     return callB<exec::CallMain>(Addr, Args);
   }
 
   /// Call the void() function at the given address in the target and wait for
   /// it to finish.
   Error callVoidVoid(JITTargetAddress Addr) {
-    DEBUG(dbgs() << "Calling void(*)(void) " << format("0x%016x", Addr)
-                 << "\n");
+    LLVM_DEBUG(dbgs() << "Calling void(*)(void) " << format("0x%016x", Addr)
+                      << "\n");
     return callB<exec::CallVoidVoid>(Addr);
   }
 
@@ -531,12 +535,14 @@
 
   Expected<RemoteCompileCallbackManager &>
   enableCompileCallbacks(JITTargetAddress ErrorHandlerAddress) {
+    assert(!CallbackManager && "CallbackManager already obtained");
+
     // Emit the resolver block on the JIT server.
     if (auto Err = callB<stubs::EmitResolverBlock>())
       return std::move(Err);
 
     // Create the callback manager.
-    CallbackManager.emplace(*this, ErrorHandlerAddress);
+    CallbackManager.emplace(*this, ES, ErrorHandlerAddress);
     RemoteCompileCallbackManager &Mgr = *CallbackManager;
     return Mgr;
   }
@@ -554,10 +560,10 @@
   Error terminateSession() { return callB<utils::TerminateSession>(); }
 
 private:
-  OrcRemoteTargetClient(rpc::RawByteChannel &Channel,
-                        std::function<void(Error)> ReportError, Error &Err)
+  OrcRemoteTargetClient(rpc::RawByteChannel &Channel, ExecutionSession &ES,
+                        Error &Err)
       : rpc::SingleThreadedRPCEndpoint<rpc::RawByteChannel>(Channel, true),
-        ReportError(std::move(ReportError)) {
+        ES(ES) {
     ErrorAsOutParameter EAO(&Err);
 
     addHandler<utils::RequestCompile>(
@@ -577,7 +583,7 @@
 
   void deregisterEHFrames(JITTargetAddress Addr, uint32_t Size) {
     if (auto Err = callB<eh::RegisterEHFrames>(Addr, Size))
-      ReportError(std::move(Err));
+      ES.reportError(std::move(Err));
   }
 
   void destroyRemoteAllocator(ResourceIdMgr::ResourceId Id) {
@@ -592,7 +598,7 @@
   void destroyIndirectStubsManager(ResourceIdMgr::ResourceId Id) {
     IndirectStubOwnerIds.release(Id);
     if (auto Err = callB<stubs::DestroyIndirectStubsOwner>(Id))
-      ReportError(std::move(Err));
+      ES.reportError(std::move(Err));
   }
 
   Expected<std::tuple<JITTargetAddress, JITTargetAddress, uint32_t>>
@@ -625,7 +631,7 @@
     if (auto AddrOrErr = callB<mem::ReserveMem>(Id, Size, Align))
       return *AddrOrErr;
     else {
-      ReportError(AddrOrErr.takeError());
+      ES.reportError(AddrOrErr.takeError());
       return 0;
     }
   }
@@ -633,7 +639,7 @@
   bool setProtections(ResourceIdMgr::ResourceId Id,
                       JITTargetAddress RemoteSegAddr, unsigned ProtFlags) {
     if (auto Err = callB<mem::SetProtections>(Id, RemoteSegAddr, ProtFlags)) {
-      ReportError(std::move(Err));
+      ES.reportError(std::move(Err));
       return true;
     } else
       return false;
@@ -641,7 +647,7 @@
 
   bool writeMem(JITTargetAddress Addr, const char *Src, uint64_t Size) {
     if (auto Err = callB<mem::WriteMem>(DirectBufferWriter(Src, Addr, Size))) {
-      ReportError(std::move(Err));
+      ES.reportError(std::move(Err));
       return true;
     } else
       return false;
@@ -653,6 +659,7 @@
 
   static Error doNothing() { return Error::success(); }
 
+  ExecutionSession &ES;
   std::function<void(Error)> ReportError;
   std::string RemoteTargetTriple;
   uint32_t RemotePointerSize = 0;
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h
index cf419d3..acbc168 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h
@@ -161,9 +161,9 @@
     IntVoidFnTy Fn =
         reinterpret_cast<IntVoidFnTy>(static_cast<uintptr_t>(Addr));
 
-    DEBUG(dbgs() << "  Calling " << format("0x%016x", Addr) << "\n");
+    LLVM_DEBUG(dbgs() << "  Calling " << format("0x%016x", Addr) << "\n");
     int Result = Fn();
-    DEBUG(dbgs() << "  Result = " << Result << "\n");
+    LLVM_DEBUG(dbgs() << "  Result = " << Result << "\n");
 
     return Result;
   }
@@ -180,15 +180,13 @@
     for (auto &Arg : Args)
       ArgV[Idx++] = Arg.c_str();
     ArgV[ArgC] = 0;
-    DEBUG(
-      for (int Idx = 0; Idx < ArgC; ++Idx) {
-        llvm::dbgs() << "Arg " << Idx << ": " << ArgV[Idx] << "\n";
-      }
-    );
+    LLVM_DEBUG(for (int Idx = 0; Idx < ArgC; ++Idx) {
+      llvm::dbgs() << "Arg " << Idx << ": " << ArgV[Idx] << "\n";
+    });
 
-    DEBUG(dbgs() << "  Calling " << format("0x%016x", Addr) << "\n");
+    LLVM_DEBUG(dbgs() << "  Calling " << format("0x%016x", Addr) << "\n");
     int Result = Fn(ArgC, ArgV.get());
-    DEBUG(dbgs() << "  Result = " << Result << "\n");
+    LLVM_DEBUG(dbgs() << "  Result = " << Result << "\n");
 
     return Result;
   }
@@ -199,9 +197,9 @@
     VoidVoidFnTy Fn =
         reinterpret_cast<VoidVoidFnTy>(static_cast<uintptr_t>(Addr));
 
-    DEBUG(dbgs() << "  Calling " << format("0x%016x", Addr) << "\n");
+    LLVM_DEBUG(dbgs() << "  Calling " << format("0x%016x", Addr) << "\n");
     Fn();
-    DEBUG(dbgs() << "  Complete.\n");
+    LLVM_DEBUG(dbgs() << "  Complete.\n");
 
     return Error::success();
   }
@@ -211,7 +209,7 @@
     if (I != Allocators.end())
       return errorCodeToError(
                orcError(OrcErrorCode::RemoteAllocatorIdAlreadyInUse));
-    DEBUG(dbgs() << "  Created allocator " << Id << "\n");
+    LLVM_DEBUG(dbgs() << "  Created allocator " << Id << "\n");
     Allocators[Id] = Allocator();
     return Error::success();
   }
@@ -221,15 +219,16 @@
     if (I != IndirectStubsOwners.end())
       return errorCodeToError(
                orcError(OrcErrorCode::RemoteIndirectStubsOwnerIdAlreadyInUse));
-    DEBUG(dbgs() << "  Create indirect stubs owner " << Id << "\n");
+    LLVM_DEBUG(dbgs() << "  Create indirect stubs owner " << Id << "\n");
     IndirectStubsOwners[Id] = ISBlockOwnerList();
     return Error::success();
   }
 
   Error handleDeregisterEHFrames(JITTargetAddress TAddr, uint32_t Size) {
     uint8_t *Addr = reinterpret_cast<uint8_t *>(static_cast<uintptr_t>(TAddr));
-    DEBUG(dbgs() << "  Registering EH frames at " << format("0x%016x", TAddr)
-                 << ", Size = " << Size << " bytes\n");
+    LLVM_DEBUG(dbgs() << "  Registering EH frames at "
+                      << format("0x%016x", TAddr) << ", Size = " << Size
+                      << " bytes\n");
     EHFramesDeregister(Addr, Size);
     return Error::success();
   }
@@ -240,7 +239,7 @@
       return errorCodeToError(
                orcError(OrcErrorCode::RemoteAllocatorDoesNotExist));
     Allocators.erase(I);
-    DEBUG(dbgs() << "  Destroyed allocator " << Id << "\n");
+    LLVM_DEBUG(dbgs() << "  Destroyed allocator " << Id << "\n");
     return Error::success();
   }
 
@@ -256,8 +255,8 @@
   Expected<std::tuple<JITTargetAddress, JITTargetAddress, uint32_t>>
   handleEmitIndirectStubs(ResourceIdMgr::ResourceId Id,
                           uint32_t NumStubsRequired) {
-    DEBUG(dbgs() << "  ISMgr " << Id << " request " << NumStubsRequired
-                 << " stubs.\n");
+    LLVM_DEBUG(dbgs() << "  ISMgr " << Id << " request " << NumStubsRequired
+                      << " stubs.\n");
 
     auto StubOwnerItr = IndirectStubsOwners.find(Id);
     if (StubOwnerItr == IndirectStubsOwners.end())
@@ -328,8 +327,8 @@
 
   Expected<JITTargetAddress> handleGetSymbolAddress(const std::string &Name) {
     JITTargetAddress Addr = SymbolLookup(Name);
-    DEBUG(dbgs() << "  Symbol '" << Name << "' =  " << format("0x%016x", Addr)
-                 << "\n");
+    LLVM_DEBUG(dbgs() << "  Symbol '" << Name
+                      << "' =  " << format("0x%016x", Addr) << "\n");
     return Addr;
   }
 
@@ -340,12 +339,13 @@
     uint32_t PageSize = sys::Process::getPageSize();
     uint32_t TrampolineSize = TargetT::TrampolineSize;
     uint32_t IndirectStubSize = TargetT::IndirectStubsInfo::StubSize;
-    DEBUG(dbgs() << "  Remote info:\n"
-                 << "    triple             = '" << ProcessTriple << "'\n"
-                 << "    pointer size       = " << PointerSize << "\n"
-                 << "    page size          = " << PageSize << "\n"
-                 << "    trampoline size    = " << TrampolineSize << "\n"
-                 << "    indirect stub size = " << IndirectStubSize << "\n");
+    LLVM_DEBUG(dbgs() << "  Remote info:\n"
+                      << "    triple             = '" << ProcessTriple << "'\n"
+                      << "    pointer size       = " << PointerSize << "\n"
+                      << "    page size          = " << PageSize << "\n"
+                      << "    trampoline size    = " << TrampolineSize << "\n"
+                      << "    indirect stub size = " << IndirectStubSize
+                      << "\n");
     return std::make_tuple(ProcessTriple, PointerSize, PageSize, TrampolineSize,
                            IndirectStubSize);
   }
@@ -354,8 +354,8 @@
                                                uint64_t Size) {
     uint8_t *Src = reinterpret_cast<uint8_t *>(static_cast<uintptr_t>(RSrc));
 
-    DEBUG(dbgs() << "  Reading " << Size << " bytes from "
-                 << format("0x%016x", RSrc) << "\n");
+    LLVM_DEBUG(dbgs() << "  Reading " << Size << " bytes from "
+                      << format("0x%016x", RSrc) << "\n");
 
     std::vector<uint8_t> Buffer;
     Buffer.resize(Size);
@@ -367,8 +367,9 @@
 
   Error handleRegisterEHFrames(JITTargetAddress TAddr, uint32_t Size) {
     uint8_t *Addr = reinterpret_cast<uint8_t *>(static_cast<uintptr_t>(TAddr));
-    DEBUG(dbgs() << "  Registering EH frames at " << format("0x%016x", TAddr)
-                 << ", Size = " << Size << " bytes\n");
+    LLVM_DEBUG(dbgs() << "  Registering EH frames at "
+                      << format("0x%016x", TAddr) << ", Size = " << Size
+                      << " bytes\n");
     EHFramesRegister(Addr, Size);
     return Error::success();
   }
@@ -384,8 +385,9 @@
     if (auto Err = Allocator.allocate(LocalAllocAddr, Size, Align))
       return std::move(Err);
 
-    DEBUG(dbgs() << "  Allocator " << Id << " reserved " << LocalAllocAddr
-                 << " (" << Size << " bytes, alignment " << Align << ")\n");
+    LLVM_DEBUG(dbgs() << "  Allocator " << Id << " reserved " << LocalAllocAddr
+                      << " (" << Size << " bytes, alignment " << Align
+                      << ")\n");
 
     JITTargetAddress AllocAddr = static_cast<JITTargetAddress>(
         reinterpret_cast<uintptr_t>(LocalAllocAddr));
@@ -401,10 +403,11 @@
                orcError(OrcErrorCode::RemoteAllocatorDoesNotExist));
     auto &Allocator = I->second;
     void *LocalAddr = reinterpret_cast<void *>(static_cast<uintptr_t>(Addr));
-    DEBUG(dbgs() << "  Allocator " << Id << " set permissions on " << LocalAddr
-                 << " to " << (Flags & sys::Memory::MF_READ ? 'R' : '-')
-                 << (Flags & sys::Memory::MF_WRITE ? 'W' : '-')
-                 << (Flags & sys::Memory::MF_EXEC ? 'X' : '-') << "\n");
+    LLVM_DEBUG(dbgs() << "  Allocator " << Id << " set permissions on "
+                      << LocalAddr << " to "
+                      << (Flags & sys::Memory::MF_READ ? 'R' : '-')
+                      << (Flags & sys::Memory::MF_WRITE ? 'W' : '-')
+                      << (Flags & sys::Memory::MF_EXEC ? 'X' : '-') << "\n");
     return Allocator.setProtections(LocalAddr, Flags);
   }
 
@@ -414,14 +417,14 @@
   }
 
   Error handleWriteMem(DirectBufferWriter DBW) {
-    DEBUG(dbgs() << "  Writing " << DBW.getSize() << " bytes to "
-                 << format("0x%016x", DBW.getDst()) << "\n");
+    LLVM_DEBUG(dbgs() << "  Writing " << DBW.getSize() << " bytes to "
+                      << format("0x%016x", DBW.getDst()) << "\n");
     return Error::success();
   }
 
   Error handleWritePtr(JITTargetAddress Addr, JITTargetAddress PtrVal) {
-    DEBUG(dbgs() << "  Writing pointer *" << format("0x%016x", Addr) << " = "
-                 << format("0x%016x", PtrVal) << "\n");
+    LLVM_DEBUG(dbgs() << "  Writing pointer *" << format("0x%016x", Addr)
+                      << " = " << format("0x%016x", PtrVal) << "\n");
     uintptr_t *Ptr =
         reinterpret_cast<uintptr_t *>(static_cast<uintptr_t>(Addr));
     *Ptr = static_cast<uintptr_t>(PtrVal);
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RPCSerialization.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RPCSerialization.h
index 569c506..1e5f6ce 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RPCSerialization.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RPCSerialization.h
@@ -14,7 +14,10 @@
 #include "llvm/Support/thread.h"
 #include <map>
 #include <mutex>
+#include <set>
 #include <sstream>
+#include <string>
+#include <vector>
 
 namespace llvm {
 namespace orc {
@@ -205,6 +208,42 @@
 template <typename T>
 std::string RPCTypeName<std::vector<T>>::Name;
 
+template <typename T> class RPCTypeName<std::set<T>> {
+public:
+  static const char *getName() {
+    std::lock_guard<std::mutex> Lock(NameMutex);
+    if (Name.empty())
+      raw_string_ostream(Name)
+          << "std::set<" << RPCTypeName<T>::getName() << ">";
+    return Name.data();
+  }
+
+private:
+  static std::mutex NameMutex;
+  static std::string Name;
+};
+
+template <typename T> std::mutex RPCTypeName<std::set<T>>::NameMutex;
+template <typename T> std::string RPCTypeName<std::set<T>>::Name;
+
+template <typename K, typename V> class RPCTypeName<std::map<K, V>> {
+public:
+  static const char *getName() {
+    std::lock_guard<std::mutex> Lock(NameMutex);
+    if (Name.empty())
+      raw_string_ostream(Name)
+          << "std::map<" << RPCTypeNameSequence<K, V>() << ">";
+    return Name.data();
+  }
+
+private:
+  static std::mutex NameMutex;
+  static std::string Name;
+};
+
+template <typename K, typename V>
+std::mutex RPCTypeName<std::map<K, V>>::NameMutex;
+template <typename K, typename V> std::string RPCTypeName<std::map<K, V>>::Name;
 
 /// The SerializationTraits<ChannelT, T> class describes how to serialize and
 /// deserialize an instance of type T to/from an abstract channel of type
@@ -527,15 +566,20 @@
 };
 
 /// SerializationTraits default specialization for std::pair.
-template <typename ChannelT, typename T1, typename T2>
-class SerializationTraits<ChannelT, std::pair<T1, T2>> {
+template <typename ChannelT, typename T1, typename T2, typename T3, typename T4>
+class SerializationTraits<ChannelT, std::pair<T1, T2>, std::pair<T3, T4>> {
 public:
-  static Error serialize(ChannelT &C, const std::pair<T1, T2> &V) {
-    return serializeSeq(C, V.first, V.second);
+  static Error serialize(ChannelT &C, const std::pair<T3, T4> &V) {
+    if (auto Err = SerializationTraits<ChannelT, T1, T3>::serialize(C, V.first))
+      return Err;
+    return SerializationTraits<ChannelT, T2, T4>::serialize(C, V.second);
   }
 
-  static Error deserialize(ChannelT &C, std::pair<T1, T2> &V) {
-    return deserializeSeq(C, V.first, V.second);
+  static Error deserialize(ChannelT &C, std::pair<T3, T4> &V) {
+    if (auto Err =
+            SerializationTraits<ChannelT, T1, T3>::deserialize(C, V.first))
+      return Err;
+    return SerializationTraits<ChannelT, T2, T4>::deserialize(C, V.second);
   }
 };
 
@@ -589,6 +633,9 @@
 
   /// Deserialize a std::vector<T> to a std::vector<T>.
   static Error deserialize(ChannelT &C, std::vector<T> &V) {
+    assert(V.empty() &&
+           "Expected default-constructed vector to deserialize into");
+
     uint64_t Count = 0;
     if (auto Err = deserializeSeq(C, Count))
       return Err;
@@ -602,6 +649,92 @@
   }
 };
 
+template <typename ChannelT, typename T, typename T2>
+class SerializationTraits<ChannelT, std::set<T>, std::set<T2>> {
+public:
+  /// Serialize a std::set<T> from std::set<T2>.
+  static Error serialize(ChannelT &C, const std::set<T2> &S) {
+    if (auto Err = serializeSeq(C, static_cast<uint64_t>(S.size())))
+      return Err;
+
+    for (const auto &E : S)
+      if (auto Err = SerializationTraits<ChannelT, T, T2>::serialize(C, E))
+        return Err;
+
+    return Error::success();
+  }
+
+  /// Deserialize a std::set<T> to a std::set<T>.
+  static Error deserialize(ChannelT &C, std::set<T2> &S) {
+    assert(S.empty() && "Expected default-constructed set to deserialize into");
+
+    uint64_t Count = 0;
+    if (auto Err = deserializeSeq(C, Count))
+      return Err;
+
+    while (Count-- != 0) {
+      T2 Val;
+      if (auto Err = SerializationTraits<ChannelT, T, T2>::deserialize(C, Val))
+        return Err;
+
+      auto Added = S.insert(Val).second;
+      if (!Added)
+        return make_error<StringError>("Duplicate element in deserialized set",
+                                       orcError(OrcErrorCode::UnknownORCError));
+    }
+
+    return Error::success();
+  }
+};
+
+template <typename ChannelT, typename K, typename V, typename K2, typename V2>
+class SerializationTraits<ChannelT, std::map<K, V>, std::map<K2, V2>> {
+public:
+  /// Serialize a std::map<K, V> from std::map<K2, V2>.
+  static Error serialize(ChannelT &C, const std::map<K2, V2> &M) {
+    if (auto Err = serializeSeq(C, static_cast<uint64_t>(M.size())))
+      return Err;
+
+    for (const auto &E : M) {
+      if (auto Err =
+              SerializationTraits<ChannelT, K, K2>::serialize(C, E.first))
+        return Err;
+      if (auto Err =
+              SerializationTraits<ChannelT, V, V2>::serialize(C, E.second))
+        return Err;
+    }
+
+    return Error::success();
+  }
+
+  /// Deserialize a std::map<K, V> to a std::map<K, V>.
+  static Error deserialize(ChannelT &C, std::map<K2, V2> &M) {
+    assert(M.empty() && "Expected default-constructed map to deserialize into");
+
+    uint64_t Count = 0;
+    if (auto Err = deserializeSeq(C, Count))
+      return Err;
+
+    while (Count-- != 0) {
+      std::pair<K2, V2> Val;
+      if (auto Err =
+              SerializationTraits<ChannelT, K, K2>::deserialize(C, Val.first))
+        return Err;
+
+      if (auto Err =
+              SerializationTraits<ChannelT, V, V2>::deserialize(C, Val.second))
+        return Err;
+
+      auto Added = M.insert(Val).second;
+      if (!Added)
+        return make_error<StringError>("Duplicate element in deserialized map",
+                                       orcError(OrcErrorCode::UnknownORCError));
+    }
+
+    return Error::success();
+  }
+};
+
 } // end namespace rpc
 } // end namespace orc
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RPCUtils.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RPCUtils.h
index c278cb1..47bd90b 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RPCUtils.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RPCUtils.h
@@ -1631,7 +1631,7 @@
   return RPCAsyncDispatch<RPCEndpointT, Func>(Endpoint);
 }
 
-/// \brief Allows a set of asynchrounous calls to be dispatched, and then
+/// Allows a set of asynchrounous calls to be dispatched, and then
 ///        waited on as a group.
 class ParallelCallGroup {
 public:
@@ -1640,7 +1640,7 @@
   ParallelCallGroup(const ParallelCallGroup &) = delete;
   ParallelCallGroup &operator=(const ParallelCallGroup &) = delete;
 
-  /// \brief Make as asynchronous call.
+  /// Make as asynchronous call.
   template <typename AsyncDispatcher, typename HandlerT, typename... ArgTs>
   Error call(const AsyncDispatcher &AsyncDispatch, HandlerT Handler,
              const ArgTs &... Args) {
@@ -1669,7 +1669,7 @@
     return AsyncDispatch(std::move(WrappedHandler), Args...);
   }
 
-  /// \brief Blocks until all calls have been completed and their return value
+  /// Blocks until all calls have been completed and their return value
   ///        handlers run.
   void wait() {
     std::unique_lock<std::mutex> Lock(M);
@@ -1683,21 +1683,21 @@
   uint32_t NumOutstandingCalls = 0;
 };
 
-/// @brief Convenience class for grouping RPC Functions into APIs that can be
+/// Convenience class for grouping RPC Functions into APIs that can be
 ///        negotiated as a block.
 ///
 template <typename... Funcs>
 class APICalls {
 public:
 
-  /// @brief Test whether this API contains Function F.
+  /// Test whether this API contains Function F.
   template <typename F>
   class Contains {
   public:
     static const bool value = false;
   };
 
-  /// @brief Negotiate all functions in this API.
+  /// Negotiate all functions in this API.
   template <typename RPCEndpoint>
   static Error negotiate(RPCEndpoint &R) {
     return Error::success();
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
index 8f0d9fa..6510976 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/ExecutionEngine/Orc/Core.h"
+#include "llvm/ExecutionEngine/Orc/Layer.h"
 #include "llvm/ExecutionEngine/Orc/Legacy.h"
 #include "llvm/ExecutionEngine/RuntimeDyld.h"
 #include "llvm/Object/ObjectFile.h"
@@ -35,13 +36,62 @@
 namespace llvm {
 namespace orc {
 
+class RTDyldObjectLinkingLayer2 : public ObjectLayer {
+public:
+  /// Functor for receiving object-loaded notifications.
+  using NotifyLoadedFunction =
+      std::function<void(VModuleKey, const object::ObjectFile &Obj,
+                         const RuntimeDyld::LoadedObjectInfo &)>;
+
+  /// Functor for receiving finalization notifications.
+  using NotifyFinalizedFunction = std::function<void(VModuleKey)>;
+
+  using GetMemoryManagerFunction =
+      std::function<std::shared_ptr<RuntimeDyld::MemoryManager>(VModuleKey)>;
+
+  /// Construct an ObjectLinkingLayer with the given NotifyLoaded,
+  ///        and NotifyFinalized functors.
+  RTDyldObjectLinkingLayer2(
+      ExecutionSession &ES, GetMemoryManagerFunction GetMemoryManager,
+      NotifyLoadedFunction NotifyLoaded = NotifyLoadedFunction(),
+      NotifyFinalizedFunction NotifyFinalized = NotifyFinalizedFunction());
+
+  /// Emit the object.
+  void emit(MaterializationResponsibility R, VModuleKey K,
+            std::unique_ptr<MemoryBuffer> O) override;
+
+  /// Map section addresses for the object associated with the
+  ///        VModuleKey K.
+  void mapSectionAddress(VModuleKey K, const void *LocalAddress,
+                         JITTargetAddress TargetAddr) const;
+
+  /// Set the 'ProcessAllSections' flag.
+  ///
+  /// If set to true, all sections in each object file will be allocated using
+  /// the memory manager, rather than just the sections required for execution.
+  ///
+  /// This is kludgy, and may be removed in the future.
+  void setProcessAllSections(bool ProcessAllSections) {
+    this->ProcessAllSections = ProcessAllSections;
+  }
+
+private:
+  mutable std::mutex RTDyldLayerMutex;
+  GetMemoryManagerFunction GetMemoryManager;
+  NotifyLoadedFunction NotifyLoaded;
+  NotifyFinalizedFunction NotifyFinalized;
+  bool ProcessAllSections;
+  std::map<VModuleKey, RuntimeDyld *> ActiveRTDylds;
+  std::map<VModuleKey, std::shared_ptr<RuntimeDyld::MemoryManager>> MemMgrs;
+};
+
 class RTDyldObjectLinkingLayerBase {
 public:
   using ObjectPtr = std::unique_ptr<MemoryBuffer>;
 
 protected:
 
-  /// @brief Holds an object to be allocated/linked as a unit in the JIT.
+  /// Holds an object to be allocated/linked as a unit in the JIT.
   ///
   /// An instance of this class will be created for each object added
   /// via JITObjectLayer::addObject. Deleting the instance (via
@@ -81,7 +131,7 @@
   };
 };
 
-/// @brief Bare bones object linking layer.
+/// Bare bones object linking layer.
 ///
 ///   This class is intended to be used as the base layer for a JIT. It allows
 /// object files to be loaded into memory, linked, and the addresses of their
@@ -92,13 +142,18 @@
 
   using RTDyldObjectLinkingLayerBase::ObjectPtr;
 
-  /// @brief Functor for receiving object-loaded notifications.
+  /// Functor for receiving object-loaded notifications.
   using NotifyLoadedFtor =
       std::function<void(VModuleKey, const object::ObjectFile &Obj,
                          const RuntimeDyld::LoadedObjectInfo &)>;
 
-  /// @brief Functor for receiving finalization notifications.
-  using NotifyFinalizedFtor = std::function<void(VModuleKey)>;
+  /// Functor for receiving finalization notifications.
+  using NotifyFinalizedFtor =
+      std::function<void(VModuleKey, const object::ObjectFile &Obj,
+                         const RuntimeDyld::LoadedObjectInfo &)>;
+
+  /// Functor for receiving deallocation notifications.
+  using NotifyFreedFtor = std::function<void(VModuleKey, const object::ObjectFile &Obj)>;
 
 private:
   using OwnedObject = object::OwningBinary<object::ObjectFile>;
@@ -110,21 +165,27 @@
                          OwnedObject Obj, MemoryManagerPtrT MemMgr,
                          std::shared_ptr<SymbolResolver> Resolver,
                          bool ProcessAllSections)
-        : MemMgr(std::move(MemMgr)),
+        : K(std::move(K)),
+          Parent(Parent),
+          MemMgr(std::move(MemMgr)),
           PFC(llvm::make_unique<PreFinalizeContents>(
-              Parent, std::move(K), std::move(Obj), std::move(Resolver),
+              std::move(Obj), std::move(Resolver),
               ProcessAllSections)) {
       buildInitialSymbolTable(PFC->Obj);
     }
 
     ~ConcreteLinkedObject() override {
+      if (this->Parent.NotifyFreed)
+        this->Parent.NotifyFreed(K, *ObjForNotify.getBinary());
+
       MemMgr->deregisterEHFrames();
     }
 
     Error finalize() override {
       assert(PFC && "mapSectionAddress called on finalized LinkedObject");
 
-      JITSymbolResolverAdapter ResolverAdapter(PFC->Parent.ES, *PFC->Resolver);
+      JITSymbolResolverAdapter ResolverAdapter(Parent.ES, *PFC->Resolver,
+					       nullptr);
       PFC->RTDyld = llvm::make_unique<RuntimeDyld>(*MemMgr, ResolverAdapter);
       PFC->RTDyld->setProcessAllSections(PFC->ProcessAllSections);
 
@@ -140,8 +201,8 @@
           SymbolTable[KV.first] = KV.second;
       }
 
-      if (PFC->Parent.NotifyLoaded)
-        PFC->Parent.NotifyLoaded(PFC->K, *PFC->Obj.getBinary(), *Info);
+      if (Parent.NotifyLoaded)
+        Parent.NotifyLoaded(K, *PFC->Obj.getBinary(), *Info);
 
       PFC->RTDyld->finalizeWithMemoryManagerLocking();
 
@@ -149,10 +210,12 @@
         return make_error<StringError>(PFC->RTDyld->getErrorString(),
                                        inconvertibleErrorCode());
 
-      if (PFC->Parent.NotifyFinalized)
-        PFC->Parent.NotifyFinalized(PFC->K);
+      if (Parent.NotifyFinalized)
+        Parent.NotifyFinalized(K, *PFC->Obj.getBinary(), *Info);
 
       // Release resources.
+      if (this->Parent.NotifyFreed)
+        ObjForNotify = std::move(PFC->Obj); // needed for callback
       PFC = nullptr;
       return Error::success();
     }
@@ -186,32 +249,37 @@
           consumeError(SymbolName.takeError());
           continue;
         }
+        // FIXME: Raise an error for bad symbols.
         auto Flags = JITSymbolFlags::fromObjectSymbol(Symbol);
+        if (!Flags) {
+          consumeError(Flags.takeError());
+          continue;
+        }
         SymbolTable.insert(
-          std::make_pair(*SymbolName, JITEvaluatedSymbol(0, Flags)));
+            std::make_pair(*SymbolName, JITEvaluatedSymbol(0, *Flags)));
       }
     }
 
     // Contains the information needed prior to finalization: the object files,
     // memory manager, resolver, and flags needed for RuntimeDyld.
     struct PreFinalizeContents {
-      PreFinalizeContents(RTDyldObjectLinkingLayer &Parent, VModuleKey K,
-                          OwnedObject Obj,
+      PreFinalizeContents(OwnedObject Obj,
                           std::shared_ptr<SymbolResolver> Resolver,
                           bool ProcessAllSections)
-          : Parent(Parent), K(std::move(K)), Obj(std::move(Obj)),
+          : Obj(std::move(Obj)),
             Resolver(std::move(Resolver)),
             ProcessAllSections(ProcessAllSections) {}
 
-      RTDyldObjectLinkingLayer &Parent;
-      VModuleKey K;
       OwnedObject Obj;
       std::shared_ptr<SymbolResolver> Resolver;
       bool ProcessAllSections;
       std::unique_ptr<RuntimeDyld> RTDyld;
     };
 
+    VModuleKey K;
+    RTDyldObjectLinkingLayer &Parent;
     MemoryManagerPtrT MemMgr;
+    OwnedObject ObjForNotify;
     std::unique_ptr<PreFinalizeContents> PFC;
   };
 
@@ -235,18 +303,21 @@
 
   using ResourcesGetter = std::function<Resources(VModuleKey)>;
 
-  /// @brief Construct an ObjectLinkingLayer with the given NotifyLoaded,
+  /// Construct an ObjectLinkingLayer with the given NotifyLoaded,
   ///        and NotifyFinalized functors.
   RTDyldObjectLinkingLayer(
       ExecutionSession &ES, ResourcesGetter GetResources,
       NotifyLoadedFtor NotifyLoaded = NotifyLoadedFtor(),
-      NotifyFinalizedFtor NotifyFinalized = NotifyFinalizedFtor())
+      NotifyFinalizedFtor NotifyFinalized = NotifyFinalizedFtor(),
+      NotifyFreedFtor NotifyFreed = NotifyFreedFtor())
       : ES(ES), GetResources(std::move(GetResources)),
         NotifyLoaded(std::move(NotifyLoaded)),
-        NotifyFinalized(std::move(NotifyFinalized)), ProcessAllSections(false) {
+        NotifyFinalized(std::move(NotifyFinalized)),
+        NotifyFreed(std::move(NotifyFreed)),
+        ProcessAllSections(false) {
   }
 
-  /// @brief Set the 'ProcessAllSections' flag.
+  /// Set the 'ProcessAllSections' flag.
   ///
   /// If set to true, all sections in each object file will be allocated using
   /// the memory manager, rather than just the sections required for execution.
@@ -256,7 +327,7 @@
     this->ProcessAllSections = ProcessAllSections;
   }
 
-  /// @brief Add an object to the JIT.
+  /// Add an object to the JIT.
   Error addObject(VModuleKey K, ObjectPtr ObjBuffer) {
 
     auto Obj =
@@ -275,7 +346,7 @@
     return Error::success();
   }
 
-  /// @brief Remove the object associated with VModuleKey K.
+  /// Remove the object associated with VModuleKey K.
   ///
   ///   All memory allocated for the object will be freed, and the sections and
   /// symbols it provided will no longer be available. No attempt is made to
@@ -290,7 +361,7 @@
     return Error::success();
   }
 
-  /// @brief Search for the given named symbol.
+  /// Search for the given named symbol.
   /// @param Name The name of the symbol to search for.
   /// @param ExportedSymbolsOnly If true, search only for exported symbols.
   /// @return A handle for the given named symbol, if it exists.
@@ -304,7 +375,7 @@
     return nullptr;
   }
 
-  /// @brief Search for the given named symbol in the context of the loaded
+  /// Search for the given named symbol in the context of the loaded
   ///        object represented by the VModuleKey K.
   /// @param K The VModuleKey for the object to search in.
   /// @param Name The name of the symbol to search for.
@@ -317,7 +388,7 @@
     return LinkedObjects[K]->getSymbol(Name, ExportedSymbolsOnly);
   }
 
-  /// @brief Map section addresses for the object associated with the
+  /// Map section addresses for the object associated with the
   ///        VModuleKey K.
   void mapSectionAddress(VModuleKey K, const void *LocalAddress,
                          JITTargetAddress TargetAddr) {
@@ -325,7 +396,7 @@
     LinkedObjects[K]->mapSectionAddress(LocalAddress, TargetAddr);
   }
 
-  /// @brief Immediately emit and finalize the object represented by the given
+  /// Immediately emit and finalize the object represented by the given
   ///        VModuleKey.
   /// @param K VModuleKey for object to emit/finalize.
   Error emitAndFinalize(VModuleKey K) {
@@ -340,6 +411,7 @@
   ResourcesGetter GetResources;
   NotifyLoadedFtor NotifyLoaded;
   NotifyFinalizedFtor NotifyFinalized;
+  NotifyFreedFtor NotifyFreed;
   bool ProcessAllSections = false;
 };
 
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h
index b95faaa..955e776 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h
@@ -322,7 +322,7 @@
             *this, &ThisT::lookupInLogicalDylib);
   }
 
-  /// @brief Add an object to the JIT.
+  /// Add an object to the JIT.
   ///
   /// @return A handle that can be used to refer to the loaded object (for
   ///         symbol searching, finalization, freeing memory, etc.).
@@ -340,26 +340,26 @@
       return HandleOrErr.takeError();
   }
 
-  /// @brief Remove the given object from the JIT.
+  /// Remove the given object from the JIT.
   Error removeObject(ObjHandleT H) {
     return this->Remote.template callB<RemoveObject>(H);
   }
 
-  /// @brief Search for the given named symbol.
+  /// Search for the given named symbol.
   JITSymbol findSymbol(StringRef Name, bool ExportedSymbolsOnly) {
     return remoteToJITSymbol(
              this->Remote.template callB<FindSymbol>(Name,
                                                      ExportedSymbolsOnly));
   }
 
-  /// @brief Search for the given named symbol within the given context.
+  /// Search for the given named symbol within the given context.
   JITSymbol findSymbolIn(ObjHandleT H, StringRef Name, bool ExportedSymbolsOnly) {
     return remoteToJITSymbol(
              this->Remote.template callB<FindSymbolIn>(H, Name,
                                                        ExportedSymbolsOnly));
   }
 
-  /// @brief Immediately emit and finalize the object with the given handle.
+  /// Immediately emit and finalize the object with the given handle.
   Error emitAndFinalize(ObjHandleT H) {
     return this->Remote.template callB<EmitAndFinalize>(H);
   }
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
index da40d1c..4c45cfd 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
@@ -23,17 +23,20 @@
 
 class SymbolStringPtr;
 
-/// @brief String pool for symbol names used by the JIT.
+/// String pool for symbol names used by the JIT.
 class SymbolStringPool {
   friend class SymbolStringPtr;
 public:
-  /// @brief Create a symbol string pointer from the given string.
+  /// Destroy a SymbolStringPool.
+  ~SymbolStringPool();
+
+  /// Create a symbol string pointer from the given string.
   SymbolStringPtr intern(StringRef S);
 
-  /// @brief Remove from the pool any entries that are no longer referenced.
+  /// Remove from the pool any entries that are no longer referenced.
   void clearDeadEntries();
 
-  /// @brief Returns true if the pool is empty.
+  /// Returns true if the pool is empty.
   bool empty() const;
 private:
   using RefCountType = std::atomic<size_t>;
@@ -43,7 +46,7 @@
   PoolMap Pool;
 };
 
-/// @brief Pointer to a pooled string representing a symbol name.
+/// Pointer to a pooled string representing a symbol name.
 class SymbolStringPtr {
   friend class SymbolStringPool;
   friend bool operator==(const SymbolStringPtr &LHS,
@@ -109,6 +112,13 @@
   return LHS.S < RHS.S;
 }
 
+inline SymbolStringPool::~SymbolStringPool() {
+#ifndef NDEBUG
+  clearDeadEntries();
+  assert(Pool.empty() && "Dangling references at pool destruction time");
+#endif // NDEBUG
+}
+
 inline SymbolStringPtr SymbolStringPool::intern(StringRef S) {
   std::lock_guard<std::mutex> Lock(PoolMutex);
   PoolMap::iterator I;
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/RTDyldMemoryManager.h b/linux-x64/clang/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
index ee75202..23d651f 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
@@ -47,6 +47,9 @@
   /// newly loaded object.
   virtual void notifyObjectLoaded(ExecutionEngine *EE,
                                   const object::ObjectFile &) {}
+
+private:
+  void anchor() override;
 };
 
 // RuntimeDyld clients often want to handle the memory management of
@@ -142,6 +145,9 @@
   };
   typedef std::vector<EHFrame> EHFrameInfos;
   EHFrameInfos EHFrames;
+
+private:
+  void anchor() override;
 };
 
 // Create wrappers for C Binding types (see CBindingWrapping.h).
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/RuntimeDyld.h b/linux-x64/clang/include/llvm/ExecutionEngine/RuntimeDyld.h
index 14da5af..5dd5add 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/RuntimeDyld.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/RuntimeDyld.h
@@ -65,7 +65,7 @@
   void reassignSectionAddress(unsigned SectionID, uint64_t Addr);
 
 public:
-  /// \brief Information about the loaded object.
+  /// Information about the loaded object.
   class LoadedObjectInfo : public llvm::LoadedObjectInfo {
     friend class RuntimeDyldImpl;
 
@@ -88,7 +88,7 @@
     ObjSectionToIDMap ObjSecToIDMap;
   };
 
-  /// \brief Memory Management.
+  /// Memory Management.
   class MemoryManager {
     friend class RuntimeDyld;
 
@@ -170,7 +170,7 @@
     bool FinalizationLocked = false;
   };
 
-  /// \brief Construct a RuntimeDyld instance.
+  /// Construct a RuntimeDyld instance.
   RuntimeDyld(MemoryManager &MemMgr, JITSymbolResolver &Resolver);
   RuntimeDyld(const RuntimeDyld &) = delete;
   RuntimeDyld &operator=(const RuntimeDyld &) = delete;
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/RuntimeDyldChecker.h b/linux-x64/clang/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
index de89f40..13fc5fd 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
@@ -27,7 +27,7 @@
 class RuntimeDyldCheckerImpl;
 class raw_ostream;
 
-/// \brief RuntimeDyld invariant checker for verifying that RuntimeDyld has
+/// RuntimeDyld invariant checker for verifying that RuntimeDyld has
 ///        correctly applied relocations.
 ///
 /// The RuntimeDyldChecker class evaluates expressions against an attached
@@ -74,22 +74,22 @@
                      MCInstPrinter *InstPrinter, raw_ostream &ErrStream);
   ~RuntimeDyldChecker();
 
-  // \brief Get the associated RTDyld instance.
+  // Get the associated RTDyld instance.
   RuntimeDyld& getRTDyld();
 
-  // \brief Get the associated RTDyld instance.
+  // Get the associated RTDyld instance.
   const RuntimeDyld& getRTDyld() const;
 
-  /// \brief Check a single expression against the attached RuntimeDyld
+  /// Check a single expression against the attached RuntimeDyld
   ///        instance.
   bool check(StringRef CheckExpr) const;
 
-  /// \brief Scan the given memory buffer for lines beginning with the string
+  /// Scan the given memory buffer for lines beginning with the string
   ///        in RulePrefix. The remainder of the line is passed to the check
   ///        method to be evaluated as an expression.
   bool checkAllRulesInBuffer(StringRef RulePrefix, MemoryBuffer *MemBuf) const;
 
-  /// \brief Returns the address of the requested section (or an error message
+  /// Returns the address of the requested section (or an error message
   ///        in the second element of the pair if the address cannot be found).
   ///
   /// if 'LocalAddress' is true, this returns the address of the section
@@ -99,7 +99,7 @@
                                                   StringRef SectionName,
                                                   bool LocalAddress);
 
-  /// \brief If there is a section at the given local address, return its load
+  /// If there is a section at the given local address, return its load
   ///        address, otherwise return none.
   Optional<uint64_t> getSectionLoadAddress(void *LocalAddress) const;
 
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/SectionMemoryManager.h b/linux-x64/clang/include/llvm/ExecutionEngine/SectionMemoryManager.h
index d76e371..3cf131c 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/SectionMemoryManager.h
+++ b/linux-x64/clang/include/llvm/ExecutionEngine/SectionMemoryManager.h
@@ -111,7 +111,7 @@
   void operator=(const SectionMemoryManager &) = delete;
   ~SectionMemoryManager() override;
 
-  /// \brief Allocates a memory block of (at least) the given size suitable for
+  /// Allocates a memory block of (at least) the given size suitable for
   /// executable code.
   ///
   /// The value of \p Alignment must be a power of two.  If \p Alignment is zero
@@ -120,7 +120,7 @@
                                unsigned SectionID,
                                StringRef SectionName) override;
 
-  /// \brief Allocates a memory block of (at least) the given size suitable for
+  /// Allocates a memory block of (at least) the given size suitable for
   /// executable code.
   ///
   /// The value of \p Alignment must be a power of two.  If \p Alignment is zero
@@ -129,7 +129,7 @@
                                unsigned SectionID, StringRef SectionName,
                                bool isReadOnly) override;
 
-  /// \brief Update section-specific memory permissions and other attributes.
+  /// Update section-specific memory permissions and other attributes.
   ///
   /// This method is called when object loading is complete and section page
   /// permissions can be applied.  It is up to the memory manager implementation
@@ -142,7 +142,7 @@
   /// \returns true if an error occurred, false otherwise.
   bool finalizeMemory(std::string *ErrMsg = nullptr) override;
 
-  /// \brief Invalidate instruction cache for code sections.
+  /// Invalidate instruction cache for code sections.
   ///
   /// Some platforms with separate data cache and instruction cache require
   /// explicit cache flush, otherwise JIT code manipulations (like resolved
@@ -182,6 +182,8 @@
   std::error_code applyMemoryGroupPermissions(MemoryGroup &MemGroup,
                                               unsigned Permissions);
 
+  void anchor() override;
+
   MemoryGroup CodeMem;
   MemoryGroup RWDataMem;
   MemoryGroup RODataMem;
diff --git a/linux-x64/clang/include/llvm/IR/Attributes.h b/linux-x64/clang/include/llvm/IR/Attributes.h
index 660fc58..5aaaaf3 100644
--- a/linux-x64/clang/include/llvm/IR/Attributes.h
+++ b/linux-x64/clang/include/llvm/IR/Attributes.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 //
 /// \file
-/// \brief This file contains the simple types necessary to represent the
+/// This file contains the simple types necessary to represent the
 /// attributes associated with functions and their calls.
 //
 //===----------------------------------------------------------------------===//
@@ -22,6 +22,7 @@
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Config/llvm-config.h"
 #include "llvm/Support/PointerLikeTypeTraits.h"
 #include <bitset>
 #include <cassert>
@@ -43,7 +44,7 @@
 
 //===----------------------------------------------------------------------===//
 /// \class
-/// \brief Functions, function parameters, and return types can have attributes
+/// Functions, function parameters, and return types can have attributes
 /// to indicate how they should be treated by optimizations and code
 /// generation. This class represents one of those attributes. It's light-weight
 /// and should be passed around by-value.
@@ -70,7 +71,7 @@
     // IR-Level Attributes
     None,                  ///< No attributes have been set
     #define GET_ATTR_ENUM
-    #include "llvm/IR/Attributes.gen"
+    #include "llvm/IR/Attributes.inc"
     EndAttrKinds           ///< Sentinal value useful for loops
   };
 
@@ -86,12 +87,12 @@
   // Attribute Construction
   //===--------------------------------------------------------------------===//
 
-  /// \brief Return a uniquified Attribute object.
+  /// Return a uniquified Attribute object.
   static Attribute get(LLVMContext &Context, AttrKind Kind, uint64_t Val = 0);
   static Attribute get(LLVMContext &Context, StringRef Kind,
                        StringRef Val = StringRef());
 
-  /// \brief Return a uniquified Attribute object that has the specific
+  /// Return a uniquified Attribute object that has the specific
   /// alignment set.
   static Attribute getWithAlignment(LLVMContext &Context, uint64_t Align);
   static Attribute getWithStackAlignment(LLVMContext &Context, uint64_t Align);
@@ -107,51 +108,51 @@
   // Attribute Accessors
   //===--------------------------------------------------------------------===//
 
-  /// \brief Return true if the attribute is an Attribute::AttrKind type.
+  /// Return true if the attribute is an Attribute::AttrKind type.
   bool isEnumAttribute() const;
 
-  /// \brief Return true if the attribute is an integer attribute.
+  /// Return true if the attribute is an integer attribute.
   bool isIntAttribute() const;
 
-  /// \brief Return true if the attribute is a string (target-dependent)
+  /// Return true if the attribute is a string (target-dependent)
   /// attribute.
   bool isStringAttribute() const;
 
-  /// \brief Return true if the attribute is present.
+  /// Return true if the attribute is present.
   bool hasAttribute(AttrKind Val) const;
 
-  /// \brief Return true if the target-dependent attribute is present.
+  /// Return true if the target-dependent attribute is present.
   bool hasAttribute(StringRef Val) const;
 
-  /// \brief Return the attribute's kind as an enum (Attribute::AttrKind). This
+  /// Return the attribute's kind as an enum (Attribute::AttrKind). This
   /// requires the attribute to be an enum or integer attribute.
   Attribute::AttrKind getKindAsEnum() const;
 
-  /// \brief Return the attribute's value as an integer. This requires that the
+  /// Return the attribute's value as an integer. This requires that the
   /// attribute be an integer attribute.
   uint64_t getValueAsInt() const;
 
-  /// \brief Return the attribute's kind as a string. This requires the
+  /// Return the attribute's kind as a string. This requires the
   /// attribute to be a string attribute.
   StringRef getKindAsString() const;
 
-  /// \brief Return the attribute's value as a string. This requires the
+  /// Return the attribute's value as a string. This requires the
   /// attribute to be a string attribute.
   StringRef getValueAsString() const;
 
-  /// \brief Returns the alignment field of an attribute as a byte alignment
+  /// Returns the alignment field of an attribute as a byte alignment
   /// value.
   unsigned getAlignment() const;
 
-  /// \brief Returns the stack alignment field of an attribute as a byte
+  /// Returns the stack alignment field of an attribute as a byte
   /// alignment value.
   unsigned getStackAlignment() const;
 
-  /// \brief Returns the number of dereferenceable bytes from the
+  /// Returns the number of dereferenceable bytes from the
   /// dereferenceable attribute.
   uint64_t getDereferenceableBytes() const;
 
-  /// \brief Returns the number of dereferenceable_or_null bytes from the
+  /// Returns the number of dereferenceable_or_null bytes from the
   /// dereferenceable_or_null attribute.
   uint64_t getDereferenceableOrNullBytes() const;
 
@@ -159,27 +160,27 @@
   /// if not known).
   std::pair<unsigned, Optional<unsigned>> getAllocSizeArgs() const;
 
-  /// \brief The Attribute is converted to a string of equivalent mnemonic. This
+  /// The Attribute is converted to a string of equivalent mnemonic. This
   /// is, presumably, for writing out the mnemonics for the assembly writer.
   std::string getAsString(bool InAttrGrp = false) const;
 
-  /// \brief Equality and non-equality operators.
+  /// Equality and non-equality operators.
   bool operator==(Attribute A) const { return pImpl == A.pImpl; }
   bool operator!=(Attribute A) const { return pImpl != A.pImpl; }
 
-  /// \brief Less-than operator. Useful for sorting the attributes list.
+  /// Less-than operator. Useful for sorting the attributes list.
   bool operator<(Attribute A) const;
 
   void Profile(FoldingSetNodeID &ID) const {
     ID.AddPointer(pImpl);
   }
 
-  /// \brief Return a raw pointer that uniquely identifies this attribute.
+  /// Return a raw pointer that uniquely identifies this attribute.
   void *getRawPointer() const {
     return pImpl;
   }
 
-  /// \brief Get an attribute from a raw pointer created by getRawPointer.
+  /// Get an attribute from a raw pointer created by getRawPointer.
   static Attribute fromRawPointer(void *RawPtr) {
     return Attribute(reinterpret_cast<AttributeImpl*>(RawPtr));
   }
@@ -289,7 +290,7 @@
 
 //===----------------------------------------------------------------------===//
 /// \class
-/// \brief Provide DenseMapInfo for AttributeSet.
+/// Provide DenseMapInfo for AttributeSet.
 template <> struct DenseMapInfo<AttributeSet> {
   static AttributeSet getEmptyKey() {
     auto Val = static_cast<uintptr_t>(-1);
@@ -313,7 +314,7 @@
 
 //===----------------------------------------------------------------------===//
 /// \class
-/// \brief This class holds the attributes for a function, its return value, and
+/// This class holds the attributes for a function, its return value, and
 /// its parameters. You access the attributes for each of them via an index into
 /// the AttributeList object. The function attributes are at index
 /// `AttributeList::FunctionIndex', the return value is at index
@@ -334,18 +335,18 @@
   friend class AttributeSetNode;
   template <typename Ty> friend struct DenseMapInfo;
 
-  /// \brief The attributes that we are managing. This can be null to represent
+  /// The attributes that we are managing. This can be null to represent
   /// the empty attributes list.
   AttributeListImpl *pImpl = nullptr;
 
 public:
-  /// \brief Create an AttributeList with the specified parameters in it.
+  /// Create an AttributeList with the specified parameters in it.
   static AttributeList get(LLVMContext &C,
                            ArrayRef<std::pair<unsigned, Attribute>> Attrs);
   static AttributeList get(LLVMContext &C,
                            ArrayRef<std::pair<unsigned, AttributeSet>> Attrs);
 
-  /// \brief Create an AttributeList from attribute sets for a function, its
+  /// Create an AttributeList from attribute sets for a function, its
   /// return value, and all of its arguments.
   static AttributeList get(LLVMContext &C, AttributeSet FnAttrs,
                            AttributeSet RetAttrs,
@@ -363,7 +364,7 @@
   // AttributeList Construction and Mutation
   //===--------------------------------------------------------------------===//
 
-  /// \brief Return an AttributeList with the specified parameters in it.
+  /// Return an AttributeList with the specified parameters in it.
   static AttributeList get(LLVMContext &C, ArrayRef<AttributeList> Attrs);
   static AttributeList get(LLVMContext &C, unsigned Index,
                            ArrayRef<Attribute::AttrKind> Kinds);
@@ -372,12 +373,12 @@
   static AttributeList get(LLVMContext &C, unsigned Index,
                            const AttrBuilder &B);
 
-  /// \brief Add an attribute to the attribute set at the given index.
+  /// Add an attribute to the attribute set at the given index.
   /// Returns a new list because attribute lists are immutable.
   AttributeList addAttribute(LLVMContext &C, unsigned Index,
                              Attribute::AttrKind Kind) const;
 
-  /// \brief Add an attribute to the attribute set at the given index.
+  /// Add an attribute to the attribute set at the given index.
   /// Returns a new list because attribute lists are immutable.
   AttributeList addAttribute(LLVMContext &C, unsigned Index, StringRef Kind,
                              StringRef Value = StringRef()) const;
@@ -386,7 +387,7 @@
   /// Returns a new list because attribute lists are immutable.
   AttributeList addAttribute(LLVMContext &C, unsigned Index, Attribute A) const;
 
-  /// \brief Add attributes to the attribute set at the given index.
+  /// Add attributes to the attribute set at the given index.
   /// Returns a new list because attribute lists are immutable.
   AttributeList addAttributes(LLVMContext &C, unsigned Index,
                               const AttrBuilder &B) const;
@@ -418,70 +419,70 @@
     return addAttributes(C, ArgNo + FirstArgIndex, B);
   }
 
-  /// \brief Remove the specified attribute at the specified index from this
+  /// Remove the specified attribute at the specified index from this
   /// attribute list. Returns a new list because attribute lists are immutable.
   AttributeList removeAttribute(LLVMContext &C, unsigned Index,
                                 Attribute::AttrKind Kind) const;
 
-  /// \brief Remove the specified attribute at the specified index from this
+  /// Remove the specified attribute at the specified index from this
   /// attribute list. Returns a new list because attribute lists are immutable.
   AttributeList removeAttribute(LLVMContext &C, unsigned Index,
                                 StringRef Kind) const;
 
-  /// \brief Remove the specified attributes at the specified index from this
+  /// Remove the specified attributes at the specified index from this
   /// attribute list. Returns a new list because attribute lists are immutable.
   AttributeList removeAttributes(LLVMContext &C, unsigned Index,
                                  const AttrBuilder &AttrsToRemove) const;
 
-  /// \brief Remove all attributes at the specified index from this
+  /// Remove all attributes at the specified index from this
   /// attribute list. Returns a new list because attribute lists are immutable.
   AttributeList removeAttributes(LLVMContext &C, unsigned Index) const;
 
-  /// \brief Remove the specified attribute at the specified arg index from this
+  /// Remove the specified attribute at the specified arg index from this
   /// attribute list. Returns a new list because attribute lists are immutable.
   AttributeList removeParamAttribute(LLVMContext &C, unsigned ArgNo,
                                      Attribute::AttrKind Kind) const {
     return removeAttribute(C, ArgNo + FirstArgIndex, Kind);
   }
 
-  /// \brief Remove the specified attribute at the specified arg index from this
+  /// Remove the specified attribute at the specified arg index from this
   /// attribute list. Returns a new list because attribute lists are immutable.
   AttributeList removeParamAttribute(LLVMContext &C, unsigned ArgNo,
                                      StringRef Kind) const {
     return removeAttribute(C, ArgNo + FirstArgIndex, Kind);
   }
 
-  /// \brief Remove the specified attribute at the specified arg index from this
+  /// Remove the specified attribute at the specified arg index from this
   /// attribute list. Returns a new list because attribute lists are immutable.
   AttributeList removeParamAttributes(LLVMContext &C, unsigned ArgNo,
                                       const AttrBuilder &AttrsToRemove) const {
     return removeAttributes(C, ArgNo + FirstArgIndex, AttrsToRemove);
   }
 
-  /// \brief Remove all attributes at the specified arg index from this
+  /// Remove all attributes at the specified arg index from this
   /// attribute list. Returns a new list because attribute lists are immutable.
   AttributeList removeParamAttributes(LLVMContext &C, unsigned ArgNo) const {
     return removeAttributes(C, ArgNo + FirstArgIndex);
   }
 
-  /// \Brief Add the dereferenceable attribute to the attribute set at the given
+  /// \brief Add the dereferenceable attribute to the attribute set at the given
   /// index. Returns a new list because attribute lists are immutable.
   AttributeList addDereferenceableAttr(LLVMContext &C, unsigned Index,
                                        uint64_t Bytes) const;
 
-  /// \Brief Add the dereferenceable attribute to the attribute set at the given
+  /// \brief Add the dereferenceable attribute to the attribute set at the given
   /// arg index. Returns a new list because attribute lists are immutable.
   AttributeList addDereferenceableParamAttr(LLVMContext &C, unsigned ArgNo,
                                             uint64_t Bytes) const {
     return addDereferenceableAttr(C, ArgNo + FirstArgIndex, Bytes);
   }
 
-  /// \brief Add the dereferenceable_or_null attribute to the attribute set at
+  /// Add the dereferenceable_or_null attribute to the attribute set at
   /// the given index. Returns a new list because attribute lists are immutable.
   AttributeList addDereferenceableOrNullAttr(LLVMContext &C, unsigned Index,
                                              uint64_t Bytes) const;
 
-  /// \brief Add the dereferenceable_or_null attribute to the attribute set at
+  /// Add the dereferenceable_or_null attribute to the attribute set at
   /// the given arg index. Returns a new list because attribute lists are
   /// immutable.
   AttributeList addDereferenceableOrNullParamAttr(LLVMContext &C,
@@ -508,102 +509,102 @@
   // AttributeList Accessors
   //===--------------------------------------------------------------------===//
 
-  /// \brief Retrieve the LLVM context.
+  /// Retrieve the LLVM context.
   LLVMContext &getContext() const;
 
-  /// \brief The attributes for the specified index are returned.
+  /// The attributes for the specified index are returned.
   AttributeSet getAttributes(unsigned Index) const;
 
-  /// \brief The attributes for the argument or parameter at the given index are
+  /// The attributes for the argument or parameter at the given index are
   /// returned.
   AttributeSet getParamAttributes(unsigned ArgNo) const;
 
-  /// \brief The attributes for the ret value are returned.
+  /// The attributes for the ret value are returned.
   AttributeSet getRetAttributes() const;
 
-  /// \brief The function attributes are returned.
+  /// The function attributes are returned.
   AttributeSet getFnAttributes() const;
 
-  /// \brief Return true if the attribute exists at the given index.
+  /// Return true if the attribute exists at the given index.
   bool hasAttribute(unsigned Index, Attribute::AttrKind Kind) const;
 
-  /// \brief Return true if the attribute exists at the given index.
+  /// Return true if the attribute exists at the given index.
   bool hasAttribute(unsigned Index, StringRef Kind) const;
 
-  /// \brief Return true if attribute exists at the given index.
+  /// Return true if attribute exists at the given index.
   bool hasAttributes(unsigned Index) const;
 
-  /// \brief Return true if the attribute exists for the given argument
+  /// Return true if the attribute exists for the given argument
   bool hasParamAttr(unsigned ArgNo, Attribute::AttrKind Kind) const {
     return hasAttribute(ArgNo + FirstArgIndex, Kind);
   }
 
-  /// \brief Return true if the attribute exists for the given argument
+  /// Return true if the attribute exists for the given argument
   bool hasParamAttr(unsigned ArgNo, StringRef Kind) const {
     return hasAttribute(ArgNo + FirstArgIndex, Kind);
   }
 
-  /// \brief Return true if attributes exists for the given argument
+  /// Return true if attributes exists for the given argument
   bool hasParamAttrs(unsigned ArgNo) const {
     return hasAttributes(ArgNo + FirstArgIndex);
   }
 
-  /// \brief Equivalent to hasAttribute(AttributeList::FunctionIndex, Kind) but
+  /// Equivalent to hasAttribute(AttributeList::FunctionIndex, Kind) but
   /// may be faster.
   bool hasFnAttribute(Attribute::AttrKind Kind) const;
 
-  /// \brief Equivalent to hasAttribute(AttributeList::FunctionIndex, Kind) but
+  /// Equivalent to hasAttribute(AttributeList::FunctionIndex, Kind) but
   /// may be faster.
   bool hasFnAttribute(StringRef Kind) const;
 
-  /// \brief Equivalent to hasAttribute(ArgNo + FirstArgIndex, Kind).
+  /// Equivalent to hasAttribute(ArgNo + FirstArgIndex, Kind).
   bool hasParamAttribute(unsigned ArgNo, Attribute::AttrKind Kind) const;
 
-  /// \brief Return true if the specified attribute is set for at least one
+  /// Return true if the specified attribute is set for at least one
   /// parameter or for the return value. If Index is not nullptr, the index
   /// of a parameter with the specified attribute is provided.
   bool hasAttrSomewhere(Attribute::AttrKind Kind,
                         unsigned *Index = nullptr) const;
 
-  /// \brief Return the attribute object that exists at the given index.
+  /// Return the attribute object that exists at the given index.
   Attribute getAttribute(unsigned Index, Attribute::AttrKind Kind) const;
 
-  /// \brief Return the attribute object that exists at the given index.
+  /// Return the attribute object that exists at the given index.
   Attribute getAttribute(unsigned Index, StringRef Kind) const;
 
-  /// \brief Return the attribute object that exists at the arg index.
+  /// Return the attribute object that exists at the arg index.
   Attribute getParamAttr(unsigned ArgNo, Attribute::AttrKind Kind) const {
     return getAttribute(ArgNo + FirstArgIndex, Kind);
   }
 
-  /// \brief Return the attribute object that exists at the given index.
+  /// Return the attribute object that exists at the given index.
   Attribute getParamAttr(unsigned ArgNo, StringRef Kind) const {
     return getAttribute(ArgNo + FirstArgIndex, Kind);
   }
 
-  /// \brief Return the alignment of the return value.
+  /// Return the alignment of the return value.
   unsigned getRetAlignment() const;
 
-  /// \brief Return the alignment for the specified function parameter.
+  /// Return the alignment for the specified function parameter.
   unsigned getParamAlignment(unsigned ArgNo) const;
 
-  /// \brief Get the stack alignment.
+  /// Get the stack alignment.
   unsigned getStackAlignment(unsigned Index) const;
 
-  /// \brief Get the number of dereferenceable bytes (or zero if unknown).
+  /// Get the number of dereferenceable bytes (or zero if unknown).
   uint64_t getDereferenceableBytes(unsigned Index) const;
 
-  /// \brief Get the number of dereferenceable bytes (or zero if unknown) of an
+  /// Get the number of dereferenceable bytes (or zero if unknown) of an
   /// arg.
   uint64_t getParamDereferenceableBytes(unsigned ArgNo) const {
     return getDereferenceableBytes(ArgNo + FirstArgIndex);
   }
 
-  /// \brief Get the number of dereferenceable_or_null bytes (or zero if
+  /// Get the number of dereferenceable_or_null bytes (or zero if
   /// unknown).
   uint64_t getDereferenceableOrNullBytes(unsigned Index) const;
 
-  /// \brief Get the number of dereferenceable_or_null bytes (or zero if
+  /// Get the number of dereferenceable_or_null bytes (or zero if
   /// unknown) of an arg.
   uint64_t getParamDereferenceableOrNullBytes(unsigned ArgNo) const {
     return getDereferenceableOrNullBytes(ArgNo + FirstArgIndex);
@@ -613,7 +614,7 @@
   std::pair<unsigned, Optional<unsigned>>
   getAllocSizeArgs(unsigned Index) const;
 
-  /// \brief Return the attributes at the index as a string.
+  /// Return the attributes at the index as a string.
   std::string getAsString(unsigned Index, bool InAttrGrp = false) const;
 
   //===--------------------------------------------------------------------===//
@@ -635,12 +636,12 @@
   bool operator==(const AttributeList &RHS) const { return pImpl == RHS.pImpl; }
   bool operator!=(const AttributeList &RHS) const { return pImpl != RHS.pImpl; }
 
-  /// \brief Return a raw pointer that uniquely identifies this attribute list.
+  /// Return a raw pointer that uniquely identifies this attribute list.
   void *getRawPointer() const {
     return pImpl;
   }
 
-  /// \brief Return true if there are no attributes.
+  /// Return true if there are no attributes.
   bool isEmpty() const { return pImpl == nullptr; }
 
   void dump() const;
@@ -648,7 +649,7 @@
 
 //===----------------------------------------------------------------------===//
 /// \class
-/// \brief Provide DenseMapInfo for AttributeList.
+/// Provide DenseMapInfo for AttributeList.
 template <> struct DenseMapInfo<AttributeList> {
   static AttributeList getEmptyKey() {
     auto Val = static_cast<uintptr_t>(-1);
@@ -674,7 +675,7 @@
 
 //===----------------------------------------------------------------------===//
 /// \class
-/// \brief This class is used in conjunction with the Attribute::get method to
+/// This class is used in conjunction with the Attribute::get method to
 /// create an Attribute object. The object itself is uniquified. The Builder's
 /// value, however, is not. So this can be used as a quick way to test for
 /// equality, presence of attributes, etc.
@@ -699,65 +700,65 @@
 
   void clear();
 
-  /// \brief Add an attribute to the builder.
+  /// Add an attribute to the builder.
   AttrBuilder &addAttribute(Attribute::AttrKind Val);
 
-  /// \brief Add the Attribute object to the builder.
+  /// Add the Attribute object to the builder.
   AttrBuilder &addAttribute(Attribute A);
 
-  /// \brief Add the target-dependent attribute to the builder.
+  /// Add the target-dependent attribute to the builder.
   AttrBuilder &addAttribute(StringRef A, StringRef V = StringRef());
 
-  /// \brief Remove an attribute from the builder.
+  /// Remove an attribute from the builder.
   AttrBuilder &removeAttribute(Attribute::AttrKind Val);
 
-  /// \brief Remove the attributes from the builder.
+  /// Remove the attributes from the builder.
   AttrBuilder &removeAttributes(AttributeList A, uint64_t WithoutIndex);
 
-  /// \brief Remove the target-dependent attribute to the builder.
+  /// Remove the target-dependent attribute to the builder.
   AttrBuilder &removeAttribute(StringRef A);
 
-  /// \brief Add the attributes from the builder.
+  /// Add the attributes from the builder.
   AttrBuilder &merge(const AttrBuilder &B);
 
-  /// \brief Remove the attributes from the builder.
+  /// Remove the attributes from the builder.
   AttrBuilder &remove(const AttrBuilder &B);
 
-  /// \brief Return true if the builder has any attribute that's in the
+  /// Return true if the builder has any attribute that's in the
   /// specified builder.
   bool overlaps(const AttrBuilder &B) const;
 
-  /// \brief Return true if the builder has the specified attribute.
+  /// Return true if the builder has the specified attribute.
   bool contains(Attribute::AttrKind A) const {
     assert((unsigned)A < Attribute::EndAttrKinds && "Attribute out of range!");
     return Attrs[A];
   }
 
-  /// \brief Return true if the builder has the specified target-dependent
+  /// Return true if the builder has the specified target-dependent
   /// attribute.
   bool contains(StringRef A) const;
 
-  /// \brief Return true if the builder has IR-level attributes.
+  /// Return true if the builder has IR-level attributes.
   bool hasAttributes() const;
 
-  /// \brief Return true if the builder has any attribute that's in the
+  /// Return true if the builder has any attribute that's in the
   /// specified attribute.
   bool hasAttributes(AttributeList A, uint64_t Index) const;
 
-  /// \brief Return true if the builder has an alignment attribute.
+  /// Return true if the builder has an alignment attribute.
   bool hasAlignmentAttr() const;
 
-  /// \brief Retrieve the alignment attribute, if it exists.
+  /// Retrieve the alignment attribute, if it exists.
   uint64_t getAlignment() const { return Alignment; }
 
-  /// \brief Retrieve the stack alignment attribute, if it exists.
+  /// Retrieve the stack alignment attribute, if it exists.
   uint64_t getStackAlignment() const { return StackAlignment; }
 
-  /// \brief Retrieve the number of dereferenceable bytes, if the
+  /// Retrieve the number of dereferenceable bytes, if the
   /// dereferenceable attribute exists (zero is returned otherwise).
   uint64_t getDereferenceableBytes() const { return DerefBytes; }
 
-  /// \brief Retrieve the number of dereferenceable_or_null bytes, if the
+  /// Retrieve the number of dereferenceable_or_null bytes, if the
   /// dereferenceable_or_null attribute exists (zero is returned otherwise).
   uint64_t getDereferenceableOrNullBytes() const { return DerefOrNullBytes; }
 
@@ -765,19 +766,19 @@
   /// doesn't exist, pair(0, 0) is returned.
   std::pair<unsigned, Optional<unsigned>> getAllocSizeArgs() const;
 
-  /// \brief This turns an int alignment (which must be a power of 2) into the
+  /// This turns an int alignment (which must be a power of 2) into the
   /// form used internally in Attribute.
   AttrBuilder &addAlignmentAttr(unsigned Align);
 
-  /// \brief This turns an int stack alignment (which must be a power of 2) into
+  /// This turns an int stack alignment (which must be a power of 2) into
   /// the form used internally in Attribute.
   AttrBuilder &addStackAlignmentAttr(unsigned Align);
 
-  /// \brief This turns the number of dereferenceable bytes into the form used
+  /// This turns the number of dereferenceable bytes into the form used
   /// internally in Attribute.
   AttrBuilder &addDereferenceableAttr(uint64_t Bytes);
 
-  /// \brief This turns the number of dereferenceable_or_null bytes into the
+  /// This turns the number of dereferenceable_or_null bytes into the
   /// form used internally in Attribute.
   AttrBuilder &addDereferenceableOrNullAttr(uint64_t Bytes);
 
@@ -789,7 +790,7 @@
   /// Attribute.getIntValue().
   AttrBuilder &addAllocSizeAttrFromRawRepr(uint64_t RawAllocSizeRepr);
 
-  /// \brief Return true if the builder contains no target-independent
+  /// Return true if the builder contains no target-independent
   /// attributes.
   bool empty() const { return Attrs.none(); }
 
@@ -822,14 +823,14 @@
 
 namespace AttributeFuncs {
 
-/// \brief Which attributes cannot be applied to a type.
+/// Which attributes cannot be applied to a type.
 AttrBuilder typeIncompatible(Type *Ty);
 
 /// \returns Return true if the two functions have compatible target-independent
 /// attributes for inlining purposes.
 bool areInlineCompatible(const Function &Caller, const Function &Callee);
 
-/// \brief Merge caller's and callee's attributes.
+/// Merge caller's and callee's attributes.
 void mergeAttributesForInlining(Function &Caller, const Function &Callee);
 
 } // end namespace AttributeFuncs
diff --git a/linux-x64/clang/include/llvm/IR/Attributes.gen b/linux-x64/clang/include/llvm/IR/Attributes.inc
similarity index 96%
rename from linux-x64/clang/include/llvm/IR/Attributes.gen
rename to linux-x64/clang/include/llvm/IR/Attributes.inc
index b1fb805..661989a 100644
--- a/linux-x64/clang/include/llvm/IR/Attributes.gen
+++ b/linux-x64/clang/include/llvm/IR/Attributes.inc
@@ -45,6 +45,7 @@
 SanitizeHWAddress,
 SanitizeMemory,
 SanitizeThread,
+ShadowCallStack,
 Speculatable,
 StackAlignment,
 StackProtect,
@@ -107,6 +108,7 @@
     .Case("sanitize_hwaddress", Attribute::SanitizeHWAddress)
     .Case("sanitize_memory", Attribute::SanitizeMemory)
     .Case("sanitize_thread", Attribute::SanitizeThread)
+    .Case("shadowcallstack", Attribute::ShadowCallStack)
     .Case("speculatable", Attribute::Speculatable)
     .Case("alignstack", Attribute::StackAlignment)
     .Case("ssp", Attribute::StackProtect)
@@ -379,6 +381,11 @@
     return llvm::Attribute::SanitizeThread;
   }
 };
+struct ShadowCallStackAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::ShadowCallStack;
+  }
+};
 struct SpeculatableAttr : EnumAttr {
   static enum Attribute::AttrKind getKind() {
     return llvm::Attribute::Speculatable;
@@ -481,22 +488,25 @@
   Ret &= isEqual<SanitizeMemoryAttr>(Caller, Callee);
   Ret &= isEqual<SanitizeHWAddressAttr>(Caller, Callee);
   Ret &= isEqual<SafeStackAttr>(Caller, Callee);
+  Ret &= isEqual<ShadowCallStackAttr>(Caller, Callee);
 
   return Ret;
 }
 
 static inline void mergeFnAttrs(Function &Caller,
                                 const Function &Callee) {
+  setOR<NoImplicitFloatAttr>(Caller, Callee);
   setOR<NoJumpTablesAttr>(Caller, Callee);
   setOR<ProfileSampleAccurateAttr>(Caller, Callee);
   adjustCallerSSPLevel(Caller, Callee);
   adjustCallerStackProbes(Caller, Callee);
   adjustCallerStackProbeSize(Caller, Callee);
+  adjustMinLegalVectorWidth(Caller, Callee);
+  adjustNullPointerValidAttr(Caller, Callee);
   setAND<LessPreciseFPMADAttr>(Caller, Callee);
   setAND<NoInfsFPMathAttr>(Caller, Callee);
   setAND<NoNansFPMathAttr>(Caller, Callee);
   setAND<UnsafeFPMathAttr>(Caller, Callee);
-  setOR<NoImplicitFloatAttr>(Caller, Callee);
 }
 
 #endif
diff --git a/linux-x64/clang/include/llvm/IR/Attributes.td b/linux-x64/clang/include/llvm/IR/Attributes.td
index 554f0df..39978c4 100644
--- a/linux-x64/clang/include/llvm/IR/Attributes.td
+++ b/linux-x64/clang/include/llvm/IR/Attributes.td
@@ -136,6 +136,9 @@
 /// Safe Stack protection.
 def SafeStack : EnumAttr<"safestack">;
 
+/// Shadow Call Stack protection.
+def ShadowCallStack : EnumAttr<"shadowcallstack">;
+
 /// Sign extended before/after call.
 def SExt : EnumAttr<"signext">;
 
@@ -211,6 +214,7 @@
 def : CompatRule<"isEqual<SanitizeMemoryAttr>">;
 def : CompatRule<"isEqual<SanitizeHWAddressAttr>">;
 def : CompatRule<"isEqual<SafeStackAttr>">;
+def : CompatRule<"isEqual<ShadowCallStackAttr>">;
 
 class MergeRule<string F> {
   // The name of the function called to merge the attributes of the caller and
@@ -231,3 +235,5 @@
 def : MergeRule<"adjustCallerSSPLevel">;
 def : MergeRule<"adjustCallerStackProbes">;
 def : MergeRule<"adjustCallerStackProbeSize">;
+def : MergeRule<"adjustMinLegalVectorWidth">;
+def : MergeRule<"adjustNullPointerValidAttr">;
diff --git a/linux-x64/clang/include/llvm/IR/AutoUpgrade.h b/linux-x64/clang/include/llvm/IR/AutoUpgrade.h
index 3f406f0..8cf574c 100644
--- a/linux-x64/clang/include/llvm/IR/AutoUpgrade.h
+++ b/linux-x64/clang/include/llvm/IR/AutoUpgrade.h
@@ -37,6 +37,10 @@
   /// intrinsic function with a call to the specified new function.
   void UpgradeIntrinsicCall(CallInst *CI, Function *NewFn);
 
+  // This upgrades the comment for objc retain release markers in inline asm
+  // calls
+  void UpgradeInlineAsmString(std::string *AsmStr);
+
   /// This is an auto-upgrade hook for any old intrinsic function syntaxes
   /// which need to have both the function updated as well as all calls updated
   /// to the new function. This should only be run in a post-processing fashion
@@ -51,6 +55,10 @@
   /// module is modified.
   bool UpgradeModuleFlags(Module &M);
 
+  /// This checks for objc retain release marker which should be upgraded. It
+  /// returns true if module is modified.
+  bool UpgradeRetainReleaseMarker(Module &M);
+
   void UpgradeSectionAttributes(Module &M);
 
   /// If the given TBAA tag uses the scalar TBAA format, create a new node
diff --git a/linux-x64/clang/include/llvm/IR/BasicBlock.h b/linux-x64/clang/include/llvm/IR/BasicBlock.h
index 77cfc97..1ee1997 100644
--- a/linux-x64/clang/include/llvm/IR/BasicBlock.h
+++ b/linux-x64/clang/include/llvm/IR/BasicBlock.h
@@ -41,7 +41,7 @@
 class TerminatorInst;
 class ValueSymbolTable;
 
-/// \brief LLVM Basic Block Representation
+/// LLVM Basic Block Representation
 ///
 /// This represents a single basic block in LLVM. A basic block is simply a
 /// container of instructions that execute sequentially. Basic blocks are Values
@@ -70,7 +70,7 @@
 
   void setParent(Function *parent);
 
-  /// \brief Constructor.
+  /// Constructor.
   ///
   /// If the function parameter is specified, the basic block is automatically
   /// inserted at either the end of the function (if InsertBefore is null), or
@@ -84,7 +84,7 @@
   BasicBlock &operator=(const BasicBlock &) = delete;
   ~BasicBlock();
 
-  /// \brief Get the context in which this basic block lives.
+  /// Get the context in which this basic block lives.
   LLVMContext &getContext() const;
 
   /// Instruction iterators...
@@ -93,7 +93,7 @@
   using reverse_iterator = InstListType::reverse_iterator;
   using const_reverse_iterator = InstListType::const_reverse_iterator;
 
-  /// \brief Creates a new BasicBlock.
+  /// Creates a new BasicBlock.
   ///
   /// If the Parent parameter is specified, the basic block is automatically
   /// inserted at either the end of the function (if InsertBefore is 0), or
@@ -104,12 +104,12 @@
     return new BasicBlock(Context, Name, Parent, InsertBefore);
   }
 
-  /// \brief Return the enclosing method, or null if none.
+  /// Return the enclosing method, or null if none.
   const Function *getParent() const { return Parent; }
         Function *getParent()       { return Parent; }
 
-  /// \brief Return the module owning the function this basic block belongs to,
-  /// or nullptr it the function does not have a module.
+  /// Return the module owning the function this basic block belongs to, or
+  /// nullptr if the function does not have a module.
   ///
   /// Note: this is undefined behavior if the block does not have a parent.
   const Module *getModule() const;
@@ -118,34 +118,34 @@
                             static_cast<const BasicBlock *>(this)->getModule());
   }
 
-  /// \brief Returns the terminator instruction if the block is well formed or
-  /// null if the block is not well formed.
+  /// Returns the terminator instruction if the block is well formed or null
+  /// if the block is not well formed.
   const TerminatorInst *getTerminator() const LLVM_READONLY;
   TerminatorInst *getTerminator() {
     return const_cast<TerminatorInst *>(
                         static_cast<const BasicBlock *>(this)->getTerminator());
   }
 
-  /// \brief Returns the call instruction calling @llvm.experimental.deoptimize
-  /// prior to the terminating return instruction of this basic block, if such a
-  /// call is present.  Otherwise, returns null.
+  /// Returns the call instruction calling \@llvm.experimental.deoptimize
+  /// prior to the terminating return instruction of this basic block, if such
+  /// a call is present.  Otherwise, returns null.
   const CallInst *getTerminatingDeoptimizeCall() const;
   CallInst *getTerminatingDeoptimizeCall() {
     return const_cast<CallInst *>(
          static_cast<const BasicBlock *>(this)->getTerminatingDeoptimizeCall());
   }
 
-  /// \brief Returns the call instruction marked 'musttail' prior to the
-  /// terminating return instruction of this basic block, if such a call is
-  /// present.  Otherwise, returns null.
+  /// Returns the call instruction marked 'musttail' prior to the terminating
+  /// return instruction of this basic block, if such a call is present.
+  /// Otherwise, returns null.
   const CallInst *getTerminatingMustTailCall() const;
   CallInst *getTerminatingMustTailCall() {
     return const_cast<CallInst *>(
            static_cast<const BasicBlock *>(this)->getTerminatingMustTailCall());
   }
 
-  /// \brief Returns a pointer to the first instruction in this block that is
-  /// not a PHINode instruction.
+  /// Returns a pointer to the first instruction in this block that is not a
+  /// PHINode instruction.
   ///
   /// When adding instructions to the beginning of the basic block, they should
   /// be added before the returned value, not before the first instruction,
@@ -156,23 +156,23 @@
                        static_cast<const BasicBlock *>(this)->getFirstNonPHI());
   }
 
-  /// \brief Returns a pointer to the first instruction in this block that is not
-  /// a PHINode or a debug intrinsic.
+  /// Returns a pointer to the first instruction in this block that is not a
+  /// PHINode or a debug intrinsic.
   const Instruction* getFirstNonPHIOrDbg() const;
   Instruction* getFirstNonPHIOrDbg() {
     return const_cast<Instruction *>(
                   static_cast<const BasicBlock *>(this)->getFirstNonPHIOrDbg());
   }
 
-  /// \brief Returns a pointer to the first instruction in this block that is not
-  /// a PHINode, a debug intrinsic, or a lifetime intrinsic.
+  /// Returns a pointer to the first instruction in this block that is not a
+  /// PHINode, a debug intrinsic, or a lifetime intrinsic.
   const Instruction* getFirstNonPHIOrDbgOrLifetime() const;
   Instruction* getFirstNonPHIOrDbgOrLifetime() {
     return const_cast<Instruction *>(
         static_cast<const BasicBlock *>(this)->getFirstNonPHIOrDbgOrLifetime());
   }
 
-  /// \brief Returns an iterator to the first instruction in this block that is
+  /// Returns an iterator to the first instruction in this block that is
   /// suitable for inserting a non-PHI instruction.
   ///
   /// In particular, it skips all PHIs and LandingPad instructions.
@@ -182,23 +182,35 @@
                                           ->getFirstInsertionPt().getNonConst();
   }
 
-  /// \brief Unlink 'this' from the containing function, but do not delete it.
+  /// Return a const iterator range over the instructions in the block, skipping
+  /// any debug instructions.
+  iterator_range<filter_iterator<BasicBlock::const_iterator,
+                                 std::function<bool(const Instruction &)>>>
+  instructionsWithoutDebug() const;
+
+  /// Return an iterator range over the instructions in the block, skipping any
+  /// debug instructions.
+  iterator_range<filter_iterator<BasicBlock::iterator,
+                                 std::function<bool(Instruction &)>>>
+  instructionsWithoutDebug();
+
+  /// Unlink 'this' from the containing function, but do not delete it.
   void removeFromParent();
 
-  /// \brief Unlink 'this' from the containing function and delete it.
+  /// Unlink 'this' from the containing function and delete it.
   ///
   // \returns an iterator pointing to the element after the erased one.
   SymbolTableList<BasicBlock>::iterator eraseFromParent();
 
-  /// \brief Unlink this basic block from its current function and insert it
-  /// into the function that \p MovePos lives in, right before \p MovePos.
+  /// Unlink this basic block from its current function and insert it into
+  /// the function that \p MovePos lives in, right before \p MovePos.
   void moveBefore(BasicBlock *MovePos);
 
-  /// \brief Unlink this basic block from its current function and insert it
+  /// Unlink this basic block from its current function and insert it
   /// right after \p MovePos in the function \p MovePos lives in.
   void moveAfter(BasicBlock *MovePos);
 
-  /// \brief Insert unlinked basic block into a function.
+  /// Insert unlinked basic block into a function.
   ///
   /// Inserts an unlinked basic block into \c Parent.  If \c InsertBefore is
   /// provided, inserts before that basic block, otherwise inserts at the end.
@@ -206,7 +218,7 @@
   /// \pre \a getParent() is \c nullptr.
   void insertInto(Function *Parent, BasicBlock *InsertBefore = nullptr);
 
-  /// \brief Return the predecessor of this block if it has a single predecessor
+  /// Return the predecessor of this block if it has a single predecessor
   /// block. Otherwise return a null pointer.
   const BasicBlock *getSinglePredecessor() const;
   BasicBlock *getSinglePredecessor() {
@@ -214,7 +226,7 @@
                  static_cast<const BasicBlock *>(this)->getSinglePredecessor());
   }
 
-  /// \brief Return the predecessor of this block if it has a unique predecessor
+  /// Return the predecessor of this block if it has a unique predecessor
   /// block. Otherwise return a null pointer.
   ///
   /// Note that unique predecessor doesn't mean single edge, there can be
@@ -226,7 +238,7 @@
                  static_cast<const BasicBlock *>(this)->getUniquePredecessor());
   }
 
-  /// \brief Return the successor of this block if it has a single successor.
+  /// Return the successor of this block if it has a single successor.
   /// Otherwise return a null pointer.
   ///
   /// This method is analogous to getSinglePredecessor above.
@@ -236,7 +248,7 @@
                    static_cast<const BasicBlock *>(this)->getSingleSuccessor());
   }
 
-  /// \brief Return the successor of this block if it has a unique successor.
+  /// Return the successor of this block if it has a unique successor.
   /// Otherwise return a null pointer.
   ///
   /// This method is analogous to getUniquePredecessor above.
@@ -310,28 +322,28 @@
   }
   iterator_range<phi_iterator> phis();
 
-  /// \brief Return the underlying instruction list container.
+  /// Return the underlying instruction list container.
   ///
   /// Currently you need to access the underlying instruction list container
   /// directly if you want to modify it.
   const InstListType &getInstList() const { return InstList; }
         InstListType &getInstList()       { return InstList; }
 
-  /// \brief Returns a pointer to a member of the instruction list.
+  /// Returns a pointer to a member of the instruction list.
   static InstListType BasicBlock::*getSublistAccess(Instruction*) {
     return &BasicBlock::InstList;
   }
 
-  /// \brief Returns a pointer to the symbol table if one exists.
+  /// Returns a pointer to the symbol table if one exists.
   ValueSymbolTable *getValueSymbolTable();
 
-  /// \brief Methods for support type inquiry through isa, cast, and dyn_cast.
+  /// Methods for support type inquiry through isa, cast, and dyn_cast.
   static bool classof(const Value *V) {
     return V->getValueID() == Value::BasicBlockVal;
   }
 
-  /// \brief Cause all subinstructions to "let go" of all the references that
-  /// said subinstructions are maintaining.
+  /// Cause all subinstructions to "let go" of all the references that said
+  /// subinstructions are maintaining.
   ///
   /// This allows one to 'delete' a whole class at a time, even though there may
   /// be circular references... first all references are dropped, and all use
@@ -340,8 +352,8 @@
   /// except operator delete.
   void dropAllReferences();
 
-  /// \brief Notify the BasicBlock that the predecessor \p Pred is no longer
-  /// able to reach it.
+  /// Notify the BasicBlock that the predecessor \p Pred is no longer able to
+  /// reach it.
   ///
   /// This is actually not used to update the Predecessor list, but is actually
   /// used to update the PHI nodes that reside in the block.  Note that this
@@ -350,8 +362,7 @@
 
   bool canSplitPredecessors() const;
 
-  /// \brief Split the basic block into two basic blocks at the specified
-  /// instruction.
+  /// Split the basic block into two basic blocks at the specified instruction.
   ///
   /// Note that all instructions BEFORE the specified iterator stay as part of
   /// the original basic block, an unconditional branch is added to the original
@@ -371,37 +382,37 @@
     return splitBasicBlock(I->getIterator(), BBName);
   }
 
-  /// \brief Returns true if there are any uses of this basic block other than
+  /// Returns true if there are any uses of this basic block other than
   /// direct branches, switches, etc. to it.
   bool hasAddressTaken() const { return getSubclassDataFromValue() != 0; }
 
-  /// \brief Update all phi nodes in this basic block's successors to refer to
-  /// basic block \p New instead of to it.
+  /// Update all phi nodes in this basic block's successors to refer to basic
+  /// block \p New instead of to it.
   void replaceSuccessorsPhiUsesWith(BasicBlock *New);
 
-  /// \brief Return true if this basic block is an exception handling block.
+  /// Return true if this basic block is an exception handling block.
   bool isEHPad() const { return getFirstNonPHI()->isEHPad(); }
 
-  /// \brief Return true if this basic block is a landing pad.
+  /// Return true if this basic block is a landing pad.
   ///
   /// Being a ``landing pad'' means that the basic block is the destination of
   /// the 'unwind' edge of an invoke instruction.
   bool isLandingPad() const;
 
-  /// \brief Return the landingpad instruction associated with the landing pad.
+  /// Return the landingpad instruction associated with the landing pad.
   const LandingPadInst *getLandingPadInst() const;
   LandingPadInst *getLandingPadInst() {
     return const_cast<LandingPadInst *>(
                     static_cast<const BasicBlock *>(this)->getLandingPadInst());
   }
 
-  /// \brief Return true if it is legal to hoist instructions into this block.
+  /// Return true if it is legal to hoist instructions into this block.
   bool isLegalToHoistInto() const;
 
   Optional<uint64_t> getIrrLoopHeaderWeight() const;
 
 private:
-  /// \brief Increment the internal refcount of the number of BlockAddresses
+  /// Increment the internal refcount of the number of BlockAddresses
   /// referencing this BasicBlock by \p Amt.
   ///
   /// This is almost always 0, sometimes one possibly, but almost never 2, and
@@ -412,8 +423,8 @@
            "Refcount wrap-around");
   }
 
-  /// \brief Shadow Value::setValueSubclassData with a private forwarding method
-  /// so that any future subclasses cannot accidentally use it.
+  /// Shadow Value::setValueSubclassData with a private forwarding method so
+  /// that any future subclasses cannot accidentally use it.
   void setValueSubclassData(unsigned short D) {
     Value::setValueSubclassData(D);
   }
@@ -422,6 +433,10 @@
 // Create wrappers for C Binding types (see CBindingWrapping.h).
 DEFINE_SIMPLE_CONVERSION_FUNCTIONS(BasicBlock, LLVMBasicBlockRef)
 
+/// Advance \p It while it points to a debug instruction and return the result.
+/// This assumes that \p It is not at the end of a block.
+BasicBlock::iterator skipDebugIntrinsics(BasicBlock::iterator It);
+
 } // end namespace llvm
 
 #endif // LLVM_IR_BASICBLOCK_H
diff --git a/linux-x64/clang/include/llvm/IR/CFG.h b/linux-x64/clang/include/llvm/IR/CFG.h
index e259e42..f4988e7 100644
--- a/linux-x64/clang/include/llvm/IR/CFG.h
+++ b/linux-x64/clang/include/llvm/IR/CFG.h
@@ -107,6 +107,9 @@
 inline bool pred_empty(const BasicBlock *BB) {
   return pred_begin(BB) == pred_end(BB);
 }
+inline unsigned pred_size(const BasicBlock *BB) {
+  return std::distance(pred_begin(BB), pred_end(BB));
+}
 inline pred_range predecessors(BasicBlock *BB) {
   return pred_range(pred_begin(BB), pred_end(BB));
 }
@@ -140,6 +143,9 @@
 inline bool succ_empty(const BasicBlock *BB) {
   return succ_begin(BB) == succ_end(BB);
 }
+inline unsigned succ_size(const BasicBlock *BB) {
+  return std::distance(succ_begin(BB), succ_end(BB));
+}
 inline succ_range successors(BasicBlock *BB) {
   return succ_range(succ_begin(BB), succ_end(BB));
 }
diff --git a/linux-x64/clang/include/llvm/IR/CallSite.h b/linux-x64/clang/include/llvm/IR/CallSite.h
index 5b10da8..2162ccb 100644
--- a/linux-x64/clang/include/llvm/IR/CallSite.h
+++ b/linux-x64/clang/include/llvm/IR/CallSite.h
@@ -637,7 +637,8 @@
     if (hasRetAttr(Attribute::NonNull))
       return true;
     else if (getDereferenceableBytes(AttributeList::ReturnIndex) > 0 &&
-             getType()->getPointerAddressSpace() == 0)
+             !NullPointerIsDefined(getCaller(),
+                                   getType()->getPointerAddressSpace()))
       return true;
 
     return false;
diff --git a/linux-x64/clang/include/llvm/IR/CallingConv.h b/linux-x64/clang/include/llvm/IR/CallingConv.h
index 84fe836..b9c02d7 100644
--- a/linux-x64/clang/include/llvm/IR/CallingConv.h
+++ b/linux-x64/clang/include/llvm/IR/CallingConv.h
@@ -26,7 +26,7 @@
 
   /// A set of enums which specify the assigned numeric values for known llvm
   /// calling conventions.
-  /// @brief LLVM Calling Convention Representation
+  /// LLVM Calling Convention Representation
   enum {
     /// C - The default llvm calling convention, compatible with C.  This
     /// convention is the only calling convention that supports varargs calls.
@@ -139,11 +139,11 @@
     /// Intel_OCL_BI - Calling conventions for Intel OpenCL built-ins
     Intel_OCL_BI = 77,
 
-    /// \brief The C convention as specified in the x86-64 supplement to the
+    /// The C convention as specified in the x86-64 supplement to the
     /// System V ABI, used on most non-Windows systems.
     X86_64_SysV = 78,
 
-    /// \brief The C convention as implemented on Windows/x86-64 and
+    /// The C convention as implemented on Windows/x86-64 and
     /// AArch64. This convention differs from the more common
     /// \c X86_64_SysV convention in a number of ways, most notably in
     /// that XMM registers used to pass arguments are shadowed by GPRs,
@@ -153,17 +153,17 @@
     /// registers to variadic functions.
     Win64 = 79,
 
-    /// \brief MSVC calling convention that passes vectors and vector aggregates
+    /// MSVC calling convention that passes vectors and vector aggregates
     /// in SSE registers.
     X86_VectorCall = 80,
 
-    /// \brief Calling convention used by HipHop Virtual Machine (HHVM) to
+    /// Calling convention used by HipHop Virtual Machine (HHVM) to
     /// perform calls to and from translation cache, and for calling PHP
     /// functions.
     /// HHVM calling convention supports tail/sibling call elimination.
     HHVM = 81,
 
-    /// \brief HHVM calling convention for invoking C/C++ helpers.
+    /// HHVM calling convention for invoking C/C++ helpers.
     HHVM_C = 82,
 
     /// X86_INTR - x86 hardware interrupt context. Callee may take one or two
diff --git a/linux-x64/clang/include/llvm/IR/Constant.h b/linux-x64/clang/include/llvm/IR/Constant.h
index 6048160..5fdf0ea 100644
--- a/linux-x64/clang/include/llvm/IR/Constant.h
+++ b/linux-x64/clang/include/llvm/IR/Constant.h
@@ -38,7 +38,7 @@
 /// structurally equivalent constants will always have the same address.
 /// Constants are created on demand as needed and never deleted: thus clients
 /// don't have to worry about the lifetime of the objects.
-/// @brief LLVM Constant Representation
+/// LLVM Constant Representation
 class Constant : public User {
 protected:
   Constant(Type *ty, ValueTy vty, Use *Ops, unsigned NumOps)
@@ -87,6 +87,10 @@
   /// floating-point constant with all NaN elements.
   bool isNaN() const;
 
+  /// Return true if this is a vector constant that includes any undefined
+  /// elements.
+  bool containsUndefElement() const;
+
   /// Return true if evaluation of this constant could trap. This is true for
   /// things like constant expressions that could divide by zero.
   bool canTrap() const;
@@ -153,7 +157,7 @@
 
   /// @returns the value for an integer or vector of integer constant of the
   /// given type that has all its bits set to true.
-  /// @brief Get the all ones value
+  /// Get the all ones value
   static Constant *getAllOnesValue(Type* Ty);
 
   /// Return the value for an integer or pointer constant, or a vector thereof,
diff --git a/linux-x64/clang/include/llvm/IR/ConstantRange.h b/linux-x64/clang/include/llvm/IR/ConstantRange.h
index 6889e26..1adda32 100644
--- a/linux-x64/clang/include/llvm/IR/ConstantRange.h
+++ b/linux-x64/clang/include/llvm/IR/ConstantRange.h
@@ -54,7 +54,7 @@
   /// Initialize a range to hold the single specified value.
   ConstantRange(APInt Value);
 
-  /// @brief Initialize a range of values explicitly. This will assert out if
+  /// Initialize a range of values explicitly. This will assert out if
   /// Lower==Upper and Lower != Min or Max value for its type. It will also
   /// assert out if the two APInt's are not the same bit width.
   ConstantRange(APInt Lower, APInt Upper);
diff --git a/linux-x64/clang/include/llvm/IR/Constants.h b/linux-x64/clang/include/llvm/IR/Constants.h
index 1a7596d..f9d5ebc 100644
--- a/linux-x64/clang/include/llvm/IR/Constants.h
+++ b/linux-x64/clang/include/llvm/IR/Constants.h
@@ -80,7 +80,7 @@
 //===----------------------------------------------------------------------===//
 /// This is the shared class of boolean and integer constants. This class
 /// represents both boolean and integral constants.
-/// @brief Class for constant integers.
+/// Class for constant integers.
 class ConstantInt final : public ConstantData {
   friend class Constant;
 
@@ -107,7 +107,7 @@
   /// to fit the type, unless isSigned is true, in which case the value will
   /// be interpreted as a 64-bit signed integer and sign-extended to fit
   /// the type.
-  /// @brief Get a ConstantInt for a specific value.
+  /// Get a ConstantInt for a specific value.
   static ConstantInt *get(IntegerType *Ty, uint64_t V,
                           bool isSigned = false);
 
@@ -115,7 +115,7 @@
   /// value V will be canonicalized to a an unsigned APInt. Accessing it with
   /// either getSExtValue() or getZExtValue() will yield a correctly sized and
   /// signed value for the type Ty.
-  /// @brief Get a ConstantInt for a specific signed value.
+  /// Get a ConstantInt for a specific signed value.
   static ConstantInt *getSigned(IntegerType *Ty, int64_t V);
   static Constant *getSigned(Type *Ty, int64_t V);
 
@@ -134,7 +134,7 @@
 
   /// Return the constant as an APInt value reference. This allows clients to
   /// obtain a full-precision copy of the value.
-  /// @brief Return the constant's value.
+  /// Return the constant's value.
   inline const APInt &getValue() const {
     return Val;
   }
@@ -145,7 +145,7 @@
   /// Return the constant as a 64-bit unsigned integer value after it
   /// has been zero extended as appropriate for the type of this constant. Note
   /// that this method can assert if the value does not fit in 64 bits.
-  /// @brief Return the zero extended value.
+  /// Return the zero extended value.
   inline uint64_t getZExtValue() const {
     return Val.getZExtValue();
   }
@@ -153,7 +153,7 @@
   /// Return the constant as a 64-bit integer value after it has been sign
   /// extended as appropriate for the type of this constant. Note that
   /// this method can assert if the value does not fit in 64 bits.
-  /// @brief Return the sign extended value.
+  /// Return the sign extended value.
   inline int64_t getSExtValue() const {
     return Val.getSExtValue();
   }
@@ -161,7 +161,7 @@
   /// A helper method that can be used to determine if the constant contained
   /// within is equal to a constant.  This only works for very small values,
   /// because this is all that can be represented with all types.
-  /// @brief Determine if this constant's value is same as an unsigned char.
+  /// Determine if this constant's value is same as an unsigned char.
   bool equalsInt(uint64_t V) const {
     return Val == V;
   }
@@ -181,7 +181,7 @@
   /// the signed version avoids callers having to convert a signed quantity
   /// to the appropriate unsigned type before calling the method.
   /// @returns true if V is a valid value for type Ty
-  /// @brief Determine if the value is in range for the given type.
+  /// Determine if the value is in range for the given type.
   static bool isValueValidForType(Type *Ty, uint64_t V);
   static bool isValueValidForType(Type *Ty, int64_t V);
 
@@ -197,7 +197,7 @@
   /// This is just a convenience method to make client code smaller for a
   /// common case. It also correctly performs the comparison without the
   /// potential for an assertion from getZExtValue().
-  /// @brief Determine if the value is one.
+  /// Determine if the value is one.
   bool isOne() const {
     return Val.isOneValue();
   }
@@ -205,7 +205,7 @@
   /// This function will return true iff every bit in this constant is set
   /// to true.
   /// @returns true iff this constant's bits are all set to true.
-  /// @brief Determine if the value is all ones.
+  /// Determine if the value is all ones.
   bool isMinusOne() const {
     return Val.isAllOnesValue();
   }
@@ -214,7 +214,7 @@
   /// value that may be represented by the constant's type.
   /// @returns true iff this is the largest value that may be represented
   /// by this type.
-  /// @brief Determine if the value is maximal.
+  /// Determine if the value is maximal.
   bool isMaxValue(bool isSigned) const {
     if (isSigned)
       return Val.isMaxSignedValue();
@@ -226,7 +226,7 @@
   /// value that may be represented by this constant's type.
   /// @returns true if this is the smallest value that may be represented by
   /// this type.
-  /// @brief Determine if the value is minimal.
+  /// Determine if the value is minimal.
   bool isMinValue(bool isSigned) const {
     if (isSigned)
       return Val.isMinSignedValue();
@@ -238,7 +238,7 @@
   /// active bits bigger than 64 bits or a value greater than the given uint64_t
   /// value.
   /// @returns true iff this constant is greater or equal to the given number.
-  /// @brief Determine if the value is greater or equal to the given number.
+  /// Determine if the value is greater or equal to the given number.
   bool uge(uint64_t Num) const {
     return Val.uge(Num);
   }
@@ -247,12 +247,12 @@
   /// return it, otherwise return the limit value.  This causes the value
   /// to saturate to the limit.
   /// @returns the min of the value of the constant and the specified value
-  /// @brief Get the constant's value with a saturation limit
+  /// Get the constant's value with a saturation limit
   uint64_t getLimitedValue(uint64_t Limit = ~0ULL) const {
     return Val.getLimitedValue(Limit);
   }
 
-  /// @brief Methods to support type inquiry through isa, cast, and dyn_cast.
+  /// Methods to support type inquiry through isa, cast, and dyn_cast.
   static bool classof(const Value *V) {
     return V->getValueID() == ConstantIntVal;
   }
@@ -698,9 +698,8 @@
   template <typename ElementTy>
   static Constant *get(LLVMContext &Context, ArrayRef<ElementTy> Elts) {
     const char *Data = reinterpret_cast<const char *>(Elts.data());
-    Type *Ty =
-        ArrayType::get(Type::getScalarTy<ElementTy>(Context), Elts.size());
-    return getImpl(StringRef(Data, Elts.size() * sizeof(ElementTy)), Ty);
+    return getRaw(StringRef(Data, Elts.size() * sizeof(ElementTy)), Elts.size(),
+                  Type::getScalarTy<ElementTy>(Context));
   }
 
   /// get() constructor - ArrayTy needs to be compatible with
@@ -710,6 +709,17 @@
     return ConstantDataArray::get(Context, makeArrayRef(Elts));
   }
 
+  /// get() constructor - Return a constant with array type with an element
+  /// count and element type matching the NumElements and ElementTy parameters
+  /// passed in. Note that this can return a ConstantAggregateZero object.
+  /// ElementTy needs to be one of i8/i16/i32/i64/float/double. Data is the
+  /// buffer containing the elements. Be careful to make sure Data uses the
+  /// right endianness, the buffer will be used as-is.
+  static Constant *getRaw(StringRef Data, uint64_t NumElements, Type *ElementTy) {
+    Type *Ty = ArrayType::get(ElementTy, NumElements);
+    return getImpl(Data, Ty);
+  }
+
   /// getFP() constructors - Return a constant with array type with an element
   /// count and element type of float with precision matching the number of
   /// bits in the ArrayRef passed in. (i.e. half for 16bits, float for 32bits,
@@ -815,7 +825,7 @@
   /// Return the ConstantTokenNone.
   static ConstantTokenNone *get(LLVMContext &Context);
 
-  /// @brief Methods to support type inquiry through isa, cast, and dyn_cast.
+  /// Methods to support type inquiry through isa, cast, and dyn_cast.
   static bool classof(const Value *V) {
     return V->getValueID() == ConstantTokenNoneVal;
   }
@@ -1008,10 +1018,15 @@
     return getLShr(C1, C2, true);
   }
 
-  /// Return the identity for the given binary operation,
-  /// i.e. a constant C such that X op C = X and C op X = X for every X.  It
-  /// returns null if the operator doesn't have an identity.
-  static Constant *getBinOpIdentity(unsigned Opcode, Type *Ty);
+  /// Return the identity constant for a binary opcode.
+  /// The identity constant C is defined as X op C = X and C op X = X for every
+  /// X when the binary operation is commutative. If the binop is not
+  /// commutative, callers can acquire the operand 1 identity constant by
+  /// setting AllowRHSConstant to true. For example, any shift has a zero
+  /// identity constant for operand 1: X shift 0 = X.
+  /// Return nullptr if the operator does not have an identity constant.
+  static Constant *getBinOpIdentity(unsigned Opcode, Type *Ty,
+                                    bool AllowRHSConstant = false);
 
   /// Return the absorbing element for the given binary
   /// operation, i.e. a constant C such that X op C = C and C op X = C for
@@ -1022,7 +1037,7 @@
   /// Transparently provide more efficient getOperand methods.
   DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Constant);
 
-  /// \brief Convenience function for getting a Cast operation.
+  /// Convenience function for getting a Cast operation.
   ///
   /// \param ops The opcode for the conversion
   /// \param C  The constant to be converted
@@ -1031,62 +1046,62 @@
   static Constant *getCast(unsigned ops, Constant *C, Type *Ty,
                            bool OnlyIfReduced = false);
 
-  // @brief Create a ZExt or BitCast cast constant expression
+  // Create a ZExt or BitCast cast constant expression
   static Constant *getZExtOrBitCast(
     Constant *C,   ///< The constant to zext or bitcast
     Type *Ty ///< The type to zext or bitcast C to
   );
 
-  // @brief Create a SExt or BitCast cast constant expression
+  // Create a SExt or BitCast cast constant expression
   static Constant *getSExtOrBitCast(
     Constant *C,   ///< The constant to sext or bitcast
     Type *Ty ///< The type to sext or bitcast C to
   );
 
-  // @brief Create a Trunc or BitCast cast constant expression
+  // Create a Trunc or BitCast cast constant expression
   static Constant *getTruncOrBitCast(
     Constant *C,   ///< The constant to trunc or bitcast
     Type *Ty ///< The type to trunc or bitcast C to
   );
 
-  /// @brief Create a BitCast, AddrSpaceCast, or a PtrToInt cast constant
+  /// Create a BitCast, AddrSpaceCast, or a PtrToInt cast constant
   /// expression.
   static Constant *getPointerCast(
     Constant *C,   ///< The pointer value to be casted (operand 0)
     Type *Ty ///< The type to which cast should be made
   );
 
-  /// @brief Create a BitCast or AddrSpaceCast for a pointer type depending on
+  /// Create a BitCast or AddrSpaceCast for a pointer type depending on
   /// the address space.
   static Constant *getPointerBitCastOrAddrSpaceCast(
     Constant *C,   ///< The constant to addrspacecast or bitcast
     Type *Ty ///< The type to bitcast or addrspacecast C to
   );
 
-  /// @brief Create a ZExt, Bitcast or Trunc for integer -> integer casts
+  /// Create a ZExt, Bitcast or Trunc for integer -> integer casts
   static Constant *getIntegerCast(
     Constant *C,    ///< The integer constant to be casted
     Type *Ty, ///< The integer type to cast to
     bool isSigned   ///< Whether C should be treated as signed or not
   );
 
-  /// @brief Create a FPExt, Bitcast or FPTrunc for fp -> fp casts
+  /// Create a FPExt, Bitcast or FPTrunc for fp -> fp casts
   static Constant *getFPCast(
     Constant *C,    ///< The integer constant to be casted
     Type *Ty ///< The integer type to cast to
   );
 
-  /// @brief Return true if this is a convert constant expression
+  /// Return true if this is a convert constant expression
   bool isCast() const;
 
-  /// @brief Return true if this is a compare constant expression
+  /// Return true if this is a compare constant expression
   bool isCompare() const;
 
-  /// @brief Return true if this is an insertvalue or extractvalue expression,
+  /// Return true if this is an insertvalue or extractvalue expression,
   /// and the getIndices() method may be used.
   bool hasIndices() const;
 
-  /// @brief Return true if this is a getelementptr expression and all
+  /// Return true if this is a getelementptr expression and all
   /// the index operands are compile-time known integers within the
   /// corresponding notional static array extents. Note that this is
   /// not equivalant to, a subset of, or a superset of the "inbounds"
@@ -1106,7 +1121,7 @@
   static Constant *get(unsigned Opcode, Constant *C1, Constant *C2,
                        unsigned Flags = 0, Type *OnlyIfReducedTy = nullptr);
 
-  /// \brief Return an ICmp or FCmp comparison operator constant expression.
+  /// Return an ICmp or FCmp comparison operator constant expression.
   ///
   /// \param OnlyIfReduced see \a getWithOperands() docs.
   static Constant *getCompare(unsigned short pred, Constant *C1, Constant *C2,
diff --git a/linux-x64/clang/include/llvm/IR/DIBuilder.h b/linux-x64/clang/include/llvm/IR/DIBuilder.h
index aa8a8ec..06c9421 100644
--- a/linux-x64/clang/include/llvm/IR/DIBuilder.h
+++ b/linux-x64/clang/include/llvm/IR/DIBuilder.h
@@ -46,6 +46,7 @@
     DICompileUnit *CUNode;   ///< The one compile unit created by this DIBuiler.
     Function *DeclareFn;     ///< llvm.dbg.declare
     Function *ValueFn;       ///< llvm.dbg.value
+    Function *LabelFn;       ///< llvm.dbg.label
 
     SmallVector<Metadata *, 4> AllEnumTypes;
     /// Track the RetainTypes, since they can be updated later on.
@@ -69,6 +70,9 @@
     /// copy.
     DenseMap<MDNode *, SmallVector<TrackingMDNodeRef, 1>> PreservedVariables;
 
+    /// Each subprogram's preserved labels.
+    DenseMap<MDNode *, SmallVector<TrackingMDNodeRef, 1>> PreservedLabels;
+
     /// Create a temporary.
     ///
     /// Create an \a temporary node and track it in \a UnresolvedNodes.
@@ -79,6 +83,10 @@
                                DIExpression *Expr, const DILocation *DL,
                                BasicBlock *InsertBB, Instruction *InsertBefore);
 
+    /// Internal helper for insertLabel.
+    Instruction *insertLabel(DILabel *LabelInfo, const DILocation *DL,
+                             BasicBlock *InsertBB, Instruction *InsertBefore);
+
     /// Internal helper for insertDbgValueIntrinsic.
     Instruction *
     insertDbgValueIntrinsic(llvm::Value *Val, DILocalVariable *VarInfo,
@@ -237,10 +245,11 @@
     /// \param Ty           Original type.
     /// \param BaseTy       Base type. Ty is inherits from base.
     /// \param BaseOffset   Base offset.
+    /// \param VBPtrOffset  Virtual base pointer offset.
     /// \param Flags        Flags to describe inheritance attribute,
     ///                     e.g. private
     DIDerivedType *createInheritance(DIType *Ty, DIType *BaseTy,
-                                     uint64_t BaseOffset,
+                                     uint64_t BaseOffset, uint32_t VBPtrOffset,
                                      DINode::DIFlags Flags);
 
     /// Create debugging information entry for a member.
@@ -506,12 +515,15 @@
                          DINode::DIFlags Flags = DINode::FlagZero,
                          unsigned CC = 0);
 
-    /// Create a new DIType* with "artificial" flag set.
-    DIType *createArtificialType(DIType *Ty);
+    /// Create a distinct clone of \p SP with FlagArtificial set.
+    static DISubprogram *createArtificialSubprogram(DISubprogram *SP);
 
-    /// Create a new DIType* with the "object pointer"
-    /// flag set.
-    DIType *createObjectPointerType(DIType *Ty);
+    /// Create a uniqued clone of \p Ty with FlagArtificial set.
+    static DIType *createArtificialType(DIType *Ty);
+
+    /// Create a uniqued clone of \p Ty with FlagObjectPointer and
+    /// FlagArtificial set.
+    static DIType *createObjectPointerType(DIType *Ty);
 
     /// Create a permanent forward-declared type.
     DICompositeType *createForwardDecl(unsigned Tag, StringRef Name,
@@ -591,6 +603,14 @@
                        DINode::DIFlags Flags = DINode::FlagZero,
                        uint32_t AlignInBits = 0);
 
+    /// Create a new descriptor for an label.
+    ///
+    /// \c Scope must be a \a DILocalScope, and thus its scope chain eventually
+    /// leads to a \a DISubprogram.
+    DILabel *
+    createLabel(DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo,
+                bool AlwaysPreserve = false);
+
     /// Create a new descriptor for a parameter variable.
     ///
     /// \c Scope must be a \a DILocalScope, and thus its scope chain eventually
@@ -782,6 +802,20 @@
                                DIExpression *Expr, const DILocation *DL,
                                Instruction *InsertBefore);
 
+    /// Insert a new llvm.dbg.label intrinsic call.
+    /// \param LabelInfo    Label's debug info descriptor.
+    /// \param DL           Debug info location.
+    /// \param InsertBefore Location for the new intrinsic.
+    Instruction *insertLabel(DILabel *LabelInfo, const DILocation *DL,
+                             Instruction *InsertBefore);
+
+    /// Insert a new llvm.dbg.label intrinsic call.
+    /// \param LabelInfo    Label's debug info descriptor.
+    /// \param DL           Debug info location.
+    /// \param InsertAtEnd Location for the new intrinsic.
+    Instruction *insertLabel(DILabel *LabelInfo, const DILocation *DL,
+                             BasicBlock *InsertAtEnd);
+
     /// Insert a new llvm.dbg.value intrinsic call.
     /// \param Val          llvm::Value of the variable
     /// \param VarInfo      Variable's debug info descriptor.
diff --git a/linux-x64/clang/include/llvm/IR/DataLayout.h b/linux-x64/clang/include/llvm/IR/DataLayout.h
index c48e140..d796a65 100644
--- a/linux-x64/clang/include/llvm/IR/DataLayout.h
+++ b/linux-x64/clang/include/llvm/IR/DataLayout.h
@@ -61,7 +61,7 @@
 // sunk down to an FTTI element that is queried rather than a global
 // preference.
 
-/// \brief Layout alignment element.
+/// Layout alignment element.
 ///
 /// Stores the alignment data associated with a given alignment type (integer,
 /// vector, float) and type bit width.
@@ -69,7 +69,7 @@
 /// \note The unusual order of elements in the structure attempts to reduce
 /// padding and make the structure slightly more cache friendly.
 struct LayoutAlignElem {
-  /// \brief Alignment type from \c AlignTypeEnum
+  /// Alignment type from \c AlignTypeEnum
   unsigned AlignType : 8;
   unsigned TypeBitWidth : 24;
   unsigned ABIAlign : 16;
@@ -81,7 +81,7 @@
   bool operator==(const LayoutAlignElem &rhs) const;
 };
 
-/// \brief Layout pointer alignment element.
+/// Layout pointer alignment element.
 ///
 /// Stores the alignment data associated with a given pointer and address space.
 ///
@@ -102,7 +102,7 @@
   bool operator==(const PointerAlignElem &rhs) const;
 };
 
-/// \brief A parsed version of the target data layout string in and methods for
+/// A parsed version of the target data layout string in and methods for
 /// querying it.
 ///
 /// The target data layout string is specified *by the target* - a frontend
@@ -129,7 +129,7 @@
 
   SmallVector<unsigned char, 8> LegalIntWidths;
 
-  /// \brief Primitive type alignment data. This is sorted by type and bit
+  /// Primitive type alignment data. This is sorted by type and bit
   /// width during construction.
   using AlignmentsTy = SmallVector<LayoutAlignElem, 16>;
   AlignmentsTy Alignments;
@@ -143,7 +143,7 @@
   AlignmentsTy::iterator
   findAlignmentLowerBound(AlignTypeEnum AlignType, uint32_t BitWidth);
 
-  /// \brief The string representation used to create this DataLayout
+  /// The string representation used to create this DataLayout
   std::string StringRepresentation;
 
   using PointersTy = SmallVector<PointerAlignElem, 8>;
@@ -221,7 +221,7 @@
   bool isLittleEndian() const { return !BigEndian; }
   bool isBigEndian() const { return BigEndian; }
 
-  /// \brief Returns the string representation of the DataLayout.
+  /// Returns the string representation of the DataLayout.
   ///
   /// This representation is in the same format accepted by the string
   /// constructor above. This should not be used to compare two DataLayout as
@@ -230,10 +230,10 @@
     return StringRepresentation;
   }
 
-  /// \brief Test if the DataLayout was constructed from an empty string.
+  /// Test if the DataLayout was constructed from an empty string.
   bool isDefault() const { return StringRepresentation.empty(); }
 
-  /// \brief Returns true if the specified type is known to be a native integer
+  /// Returns true if the specified type is known to be a native integer
   /// type supported by the CPU.
   ///
   /// For example, i64 is not native on most 32-bit CPUs and i37 is not native
@@ -309,7 +309,7 @@
 
   static const char *getManglingComponent(const Triple &T);
 
-  /// \brief Returns true if the specified type fits in a native integer type
+  /// Returns true if the specified type fits in a native integer type
   /// supported by the CPU.
   ///
   /// For example, if the CPU only supports i32 as a native integer type, then
@@ -398,13 +398,13 @@
   /// [*] The alloc size depends on the alignment, and thus on the target.
   ///     These values are for x86-32 linux.
 
-  /// \brief Returns the number of bits necessary to hold the specified type.
+  /// Returns the number of bits necessary to hold the specified type.
   ///
   /// For example, returns 36 for i36 and 80 for x86_fp80. The type passed must
   /// have a size (Type::isSized() must return true).
   uint64_t getTypeSizeInBits(Type *Ty) const;
 
-  /// \brief Returns the maximum number of bytes that may be overwritten by
+  /// Returns the maximum number of bytes that may be overwritten by
   /// storing the specified type.
   ///
   /// For example, returns 5 for i36 and 10 for x86_fp80.
@@ -412,7 +412,7 @@
     return (getTypeSizeInBits(Ty) + 7) / 8;
   }
 
-  /// \brief Returns the maximum number of bits that may be overwritten by
+  /// Returns the maximum number of bits that may be overwritten by
   /// storing the specified type; always a multiple of 8.
   ///
   /// For example, returns 40 for i36 and 80 for x86_fp80.
@@ -420,7 +420,7 @@
     return 8 * getTypeStoreSize(Ty);
   }
 
-  /// \brief Returns the offset in bytes between successive objects of the
+  /// Returns the offset in bytes between successive objects of the
   /// specified type, including alignment padding.
   ///
   /// This is the amount that alloca reserves for this type. For example,
@@ -430,7 +430,7 @@
     return alignTo(getTypeStoreSize(Ty), getABITypeAlignment(Ty));
   }
 
-  /// \brief Returns the offset in bits between successive objects of the
+  /// Returns the offset in bits between successive objects of the
   /// specified type, including alignment padding; always a multiple of 8.
   ///
   /// This is the amount that alloca reserves for this type. For example,
@@ -439,69 +439,69 @@
     return 8 * getTypeAllocSize(Ty);
   }
 
-  /// \brief Returns the minimum ABI-required alignment for the specified type.
+  /// Returns the minimum ABI-required alignment for the specified type.
   unsigned getABITypeAlignment(Type *Ty) const;
 
-  /// \brief Returns the minimum ABI-required alignment for an integer type of
+  /// Returns the minimum ABI-required alignment for an integer type of
   /// the specified bitwidth.
   unsigned getABIIntegerTypeAlignment(unsigned BitWidth) const;
 
-  /// \brief Returns the preferred stack/global alignment for the specified
+  /// Returns the preferred stack/global alignment for the specified
   /// type.
   ///
   /// This is always at least as good as the ABI alignment.
   unsigned getPrefTypeAlignment(Type *Ty) const;
 
-  /// \brief Returns the preferred alignment for the specified type, returned as
+  /// Returns the preferred alignment for the specified type, returned as
   /// log2 of the value (a shift amount).
   unsigned getPreferredTypeAlignmentShift(Type *Ty) const;
 
-  /// \brief Returns an integer type with size at least as big as that of a
+  /// Returns an integer type with size at least as big as that of a
   /// pointer in the given address space.
   IntegerType *getIntPtrType(LLVMContext &C, unsigned AddressSpace = 0) const;
 
-  /// \brief Returns an integer (vector of integer) type with size at least as
+  /// Returns an integer (vector of integer) type with size at least as
   /// big as that of a pointer of the given pointer (vector of pointer) type.
   Type *getIntPtrType(Type *) const;
 
-  /// \brief Returns the smallest integer type with size at least as big as
+  /// Returns the smallest integer type with size at least as big as
   /// Width bits.
   Type *getSmallestLegalIntType(LLVMContext &C, unsigned Width = 0) const;
 
-  /// \brief Returns the largest legal integer type, or null if none are set.
+  /// Returns the largest legal integer type, or null if none are set.
   Type *getLargestLegalIntType(LLVMContext &C) const {
     unsigned LargestSize = getLargestLegalIntTypeSizeInBits();
     return (LargestSize == 0) ? nullptr : Type::getIntNTy(C, LargestSize);
   }
 
-  /// \brief Returns the size of largest legal integer type size, or 0 if none
+  /// Returns the size of largest legal integer type size, or 0 if none
   /// are set.
   unsigned getLargestLegalIntTypeSizeInBits() const;
 
-  /// \brief Returns the type of a GEP index.
+  /// Returns the type of a GEP index.
   /// If it was not specified explicitly, it will be the integer type of the
   /// pointer width - IntPtrType.
   Type *getIndexType(Type *PtrTy) const;
 
-  /// \brief Returns the offset from the beginning of the type for the specified
+  /// Returns the offset from the beginning of the type for the specified
   /// indices.
   ///
   /// Note that this takes the element type, not the pointer type.
   /// This is used to implement getelementptr.
   int64_t getIndexedOffsetInType(Type *ElemTy, ArrayRef<Value *> Indices) const;
 
-  /// \brief Returns a StructLayout object, indicating the alignment of the
+  /// Returns a StructLayout object, indicating the alignment of the
   /// struct, its size, and the offsets of its fields.
   ///
   /// Note that this information is lazily cached.
   const StructLayout *getStructLayout(StructType *Ty) const;
 
-  /// \brief Returns the preferred alignment of the specified global.
+  /// Returns the preferred alignment of the specified global.
   ///
   /// This includes an explicitly requested alignment (if the global has one).
   unsigned getPreferredAlignment(const GlobalVariable *GV) const;
 
-  /// \brief Returns the preferred alignment of the specified global, returned
+  /// Returns the preferred alignment of the specified global, returned
   /// in log form.
   ///
   /// This includes an explicitly requested alignment (if the global has one).
@@ -536,7 +536,7 @@
   /// NB: Padding in nested element is not taken into account.
   bool hasPadding() const { return IsPadded; }
 
-  /// \brief Given a valid byte offset into the structure, returns the structure
+  /// Given a valid byte offset into the structure, returns the structure
   /// index that contains it.
   unsigned getElementContainingOffset(uint64_t Offset) const;
 
diff --git a/linux-x64/clang/include/llvm/IR/DebugInfo.h b/linux-x64/clang/include/llvm/IR/DebugInfo.h
index 1d8e7e2..01178af 100644
--- a/linux-x64/clang/include/llvm/IR/DebugInfo.h
+++ b/linux-x64/clang/include/llvm/IR/DebugInfo.h
@@ -28,10 +28,10 @@
 class DbgValueInst;
 class Module;
 
-/// \brief Find subprogram that is enclosing this scope.
+/// Find subprogram that is enclosing this scope.
 DISubprogram *getDISubprogram(const MDNode *Scope);
 
-/// \brief Strip debug info in the module if it exists.
+/// Strip debug info in the module if it exists.
 ///
 /// To do this, we remove all calls to the debugger intrinsics and any named
 /// metadata for debugging. We also remove debug locations for instructions.
@@ -51,10 +51,10 @@
 ///   All debug type metadata nodes are unreachable and garbage collected.
 bool stripNonLineTableDebugInfo(Module &M);
 
-/// \brief Return Debug Info Metadata Version by checking module flags.
+/// Return Debug Info Metadata Version by checking module flags.
 unsigned getDebugMetadataVersionFromModule(const Module &M);
 
-/// \brief Utility to find all debug info in a module.
+/// Utility to find all debug info in a module.
 ///
 /// DebugInfoFinder tries to list all debug info MDNodes used in a module. To
 /// list debug info MDNodes used by an instruction, DebugInfoFinder uses
@@ -64,30 +64,33 @@
 /// used by the CUs.
 class DebugInfoFinder {
 public:
-  /// \brief Process entire module and collect debug info anchors.
+  /// Process entire module and collect debug info anchors.
   void processModule(const Module &M);
+  /// Process a single instruction and collect debug info anchors.
+  void processInstruction(const Module &M, const Instruction &I);
 
-  /// \brief Process DbgDeclareInst.
+  /// Process DbgDeclareInst.
   void processDeclare(const Module &M, const DbgDeclareInst *DDI);
-  /// \brief Process DbgValueInst.
+  /// Process DbgValueInst.
   void processValue(const Module &M, const DbgValueInst *DVI);
-  /// \brief Process debug info location.
+  /// Process debug info location.
   void processLocation(const Module &M, const DILocation *Loc);
 
-  /// \brief Clear all lists.
+  /// Clear all lists.
   void reset();
 
 private:
   void InitializeTypeMap(const Module &M);
 
-  void processType(DIType *DT);
-  void processSubprogram(DISubprogram *SP);
+  void processCompileUnit(DICompileUnit *CU);
   void processScope(DIScope *Scope);
+  void processSubprogram(DISubprogram *SP);
+  void processType(DIType *DT);
   bool addCompileUnit(DICompileUnit *CU);
   bool addGlobalVariable(DIGlobalVariableExpression *DIG);
+  bool addScope(DIScope *Scope);
   bool addSubprogram(DISubprogram *SP);
   bool addType(DIType *DT);
-  bool addScope(DIScope *Scope);
 
 public:
   using compile_unit_iterator =
diff --git a/linux-x64/clang/include/llvm/IR/DebugInfoFlags.def b/linux-x64/clang/include/llvm/IR/DebugInfoFlags.def
index 676b978..b1f5fac 100644
--- a/linux-x64/clang/include/llvm/IR/DebugInfoFlags.def
+++ b/linux-x64/clang/include/llvm/IR/DebugInfoFlags.def
@@ -46,6 +46,8 @@
 HANDLE_DI_FLAG((1 << 22), TypePassByValue)
 HANDLE_DI_FLAG((1 << 23), TypePassByReference)
 HANDLE_DI_FLAG((1 << 24), FixedEnum)
+HANDLE_DI_FLAG((1 << 25), Thunk)
+HANDLE_DI_FLAG((1 << 26), Trivial)
 
 // To avoid needing a dedicated value for IndirectVirtualBase, we use
 // the bitwise or of Virtual and FwdDecl, which does not otherwise
@@ -55,7 +57,7 @@
 #ifdef DI_FLAG_LARGEST_NEEDED
 // intended to be used with ADT/BitmaskEnum.h
 // NOTE: always must be equal to largest flag, check this when adding new flag
-HANDLE_DI_FLAG((1 << 24), Largest)
+HANDLE_DI_FLAG((1 << 26), Largest)
 #undef DI_FLAG_LARGEST_NEEDED
 #endif
 
diff --git a/linux-x64/clang/include/llvm/IR/DebugInfoMetadata.h b/linux-x64/clang/include/llvm/IR/DebugInfoMetadata.h
index e2210bb..905a7ca 100644
--- a/linux-x64/clang/include/llvm/IR/DebugInfoMetadata.h
+++ b/linux-x64/clang/include/llvm/IR/DebugInfoMetadata.h
@@ -232,6 +232,7 @@
     case DITemplateValueParameterKind:
     case DIGlobalVariableKind:
     case DILocalVariableKind:
+    case DILabelKind:
     case DIObjCPropertyKind:
     case DIImportedEntityKind:
     case DIModuleKind:
@@ -678,9 +679,11 @@
   Metadata *getRawScope() const { return getOperand(1); }
   MDString *getRawName() const { return getOperandAs<MDString>(2); }
 
-  void setFlags(DIFlags NewFlags) {
-    assert(!isUniqued() && "Cannot set flags on uniqued nodes");
-    Flags = NewFlags;
+  /// Returns a new temporary DIType with updated Flags
+  TempDIType cloneWithFlags(DIFlags NewFlags) const {
+    auto NewTy = clone();
+    NewTy->Flags = NewFlags;
+    return NewTy;
   }
 
   bool isPrivate() const {
@@ -775,6 +778,12 @@
 
   unsigned getEncoding() const { return Encoding; }
 
+  enum class Signedness { Signed, Unsigned };
+
+  /// Return the signedness of this type, or None if this type is neither
+  /// signed nor unsigned.
+  Optional<Signedness> getSignedness() const;
+
   static bool classof(const Metadata *MD) {
     return MD->getMetadataID() == DIBasicTypeKind;
   }
@@ -790,7 +799,7 @@
   friend class LLVMContextImpl;
   friend class MDNode;
 
-  /// \brief The DWARF address space of the memory pointed to or referenced by a
+  /// The DWARF address space of the memory pointed to or referenced by a
   /// pointer or reference type respectively.
   Optional<unsigned> DWARFAddressSpace;
 
@@ -865,7 +874,8 @@
   /// Get extra data associated with this derived type.
   ///
   /// Class type for pointer-to-members, objective-c property node for ivars,
-  /// or global constant wrapper for static members.
+  /// global constant wrapper for static members, or virtual base pointer offset
+  /// for inheritance.
   ///
   /// TODO: Separate out types that need this extra operand: pointer-to-member
   /// types and member fields (static members and ivars).
@@ -883,6 +893,14 @@
     return dyn_cast_or_null<DIObjCProperty>(getExtraData());
   }
 
+  uint32_t getVBPtrOffset() const {
+    assert(getTag() == dwarf::DW_TAG_inheritance);
+    if (auto *CM = cast_or_null<ConstantAsMetadata>(getExtraData()))
+      if (auto *CI = dyn_cast_or_null<ConstantInt>(CM->getValue()))
+        return static_cast<uint32_t>(CI->getZExtValue());
+    return 0;
+  }
+
   Constant *getStorageOffsetInBits() const {
     assert(getTag() == dwarf::DW_TAG_member && isBitField());
     if (auto *C = cast_or_null<ConstantAsMetadata>(getExtraData()))
@@ -1144,11 +1162,12 @@
     NoDebug = 0,
     FullDebug,
     LineTablesOnly,
-    LastEmissionKind = LineTablesOnly
+    DebugDirectivesOnly,
+    LastEmissionKind = DebugDirectivesOnly
   };
 
   static Optional<DebugEmissionKind> getEmissionKind(StringRef Str);
-  static const char *EmissionKindString(DebugEmissionKind EK);
+  static const char *emissionKindString(DebugEmissionKind EK);
 
 private:
   unsigned SourceLanguage;
@@ -1250,6 +1269,9 @@
   DebugEmissionKind getEmissionKind() const {
     return (DebugEmissionKind)EmissionKind;
   }
+  bool isDebugDirectivesOnly() const {
+    return EmissionKind == DebugDirectivesOnly;
+  }
   bool getDebugInfoForProfiling() const { return DebugInfoForProfiling; }
   bool getGnuPubnames() const { return GnuPubnames; }
   StringRef getProducer() const { return getStringOperand(1); }
@@ -1497,26 +1519,25 @@
   /// discriminator.
   inline const DILocation *cloneWithDuplicationFactor(unsigned DF) const;
 
+  enum { NoGeneratedLocation = false, WithGeneratedLocation = true };
+
   /// When two instructions are combined into a single instruction we also
   /// need to combine the original locations into a single location.
   ///
   /// When the locations are the same we can use either location. When they
-  /// differ, we need a third location which is distinct from either. If
-  /// they have the same file/line but have a different discriminator we
-  /// could create a location with a new discriminator. If they are from
-  /// different files/lines the location is ambiguous and can't be
-  /// represented in a single line entry.  In this case, no location
-  /// should be set, unless the merged instruction is a call, which we will
-  /// set the merged debug location as line 0 of the nearest common scope
-  /// where 2 locations are inlined from. This only applies to Instruction;
-  /// for MachineInstruction, as it is post-inline, we will treat the call
-  /// instruction the same way as other instructions.
+  /// differ, we need a third location which is distinct from either. If they
+  /// have the same file/line but have a different discriminator we could
+  /// create a location with a new discriminator. If they are from different
+  /// files/lines the location is ambiguous and can't be represented in a line
+  /// entry. In this case, if \p GenerateLocation is true, we will set the
+  /// merged debug location as line 0 of the nearest common scope where the two
+  /// locations are inlined from.
   ///
-  /// \p ForInst: The Instruction the merged DILocation is for. If the
-  /// Instruction is unavailable or non-existent, use nullptr.
+  /// \p GenerateLocation: Whether the merged location can be generated when
+  /// \p LocA and \p LocB differ.
   static const DILocation *
   getMergedLocation(const DILocation *LocA, const DILocation *LocB,
-                    const Instruction *ForInst = nullptr);
+                    bool GenerateLocation = NoGeneratedLocation);
 
   /// Returns the base discriminator for a given encoded discriminator \p D.
   static unsigned getBaseDiscriminatorFromDiscriminator(unsigned D) {
@@ -1610,13 +1631,13 @@
           unsigned VirtualIndex, int ThisAdjustment, DIFlags Flags,
           bool IsOptimized, DICompileUnit *Unit,
           DITemplateParameterArray TemplateParams, DISubprogram *Declaration,
-          DILocalVariableArray Variables, DITypeArray ThrownTypes,
+          DINodeArray RetainedNodes, DITypeArray ThrownTypes,
           StorageType Storage, bool ShouldCreate = true) {
     return getImpl(Context, Scope, getCanonicalMDString(Context, Name),
                    getCanonicalMDString(Context, LinkageName), File, Line, Type,
                    IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
                    Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
-                   Unit, TemplateParams.get(), Declaration, Variables.get(),
+                   Unit, TemplateParams.get(), Declaration, RetainedNodes.get(),
                    ThrownTypes.get(), Storage, ShouldCreate);
   }
   static DISubprogram *
@@ -1625,7 +1646,7 @@
           bool IsLocalToUnit, bool IsDefinition, unsigned ScopeLine,
           Metadata *ContainingType, unsigned Virtuality, unsigned VirtualIndex,
           int ThisAdjustment, DIFlags Flags, bool IsOptimized, Metadata *Unit,
-          Metadata *TemplateParams, Metadata *Declaration, Metadata *Variables,
+          Metadata *TemplateParams, Metadata *Declaration, Metadata *RetainedNodes,
           Metadata *ThrownTypes, StorageType Storage, bool ShouldCreate = true);
 
   TempDISubprogram cloneImpl() const {
@@ -1634,7 +1655,7 @@
                         isDefinition(), getScopeLine(), getContainingType(),
                         getVirtuality(), getVirtualIndex(), getThisAdjustment(),
                         getFlags(), isOptimized(), getUnit(),
-                        getTemplateParams(), getDeclaration(), getVariables(),
+                        getTemplateParams(), getDeclaration(), getRetainedNodes(),
                         getThrownTypes());
   }
 
@@ -1648,12 +1669,12 @@
                      bool IsOptimized, DICompileUnit *Unit,
                      DITemplateParameterArray TemplateParams = nullptr,
                      DISubprogram *Declaration = nullptr,
-                     DILocalVariableArray Variables = nullptr,
+                     DINodeArray RetainedNodes = nullptr,
                      DITypeArray ThrownTypes = nullptr),
                     (Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit,
                      IsDefinition, ScopeLine, ContainingType, Virtuality,
                      VirtualIndex, ThisAdjustment, Flags, IsOptimized, Unit,
-                     TemplateParams, Declaration, Variables, ThrownTypes))
+                     TemplateParams, Declaration, RetainedNodes, ThrownTypes))
   DEFINE_MDNODE_GET(
       DISubprogram,
       (Metadata * Scope, MDString *Name, MDString *LinkageName, Metadata *File,
@@ -1661,15 +1682,22 @@
        unsigned ScopeLine, Metadata *ContainingType, unsigned Virtuality,
        unsigned VirtualIndex, int ThisAdjustment, DIFlags Flags,
        bool IsOptimized, Metadata *Unit, Metadata *TemplateParams = nullptr,
-       Metadata *Declaration = nullptr, Metadata *Variables = nullptr,
+       Metadata *Declaration = nullptr, Metadata *RetainedNodes = nullptr,
        Metadata *ThrownTypes = nullptr),
       (Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, IsDefinition,
        ScopeLine, ContainingType, Virtuality, VirtualIndex, ThisAdjustment,
-       Flags, IsOptimized, Unit, TemplateParams, Declaration, Variables,
+       Flags, IsOptimized, Unit, TemplateParams, Declaration, RetainedNodes,
        ThrownTypes))
 
   TempDISubprogram clone() const { return cloneImpl(); }
 
+  /// Returns a new temporary DISubprogram with updated Flags
+  TempDISubprogram cloneWithFlags(DIFlags NewFlags) const {
+    auto NewSP = clone();
+    NewSP->Flags = NewFlags;
+    return NewSP;
+  }
+
 public:
   unsigned getLine() const { return Line; }
   unsigned getVirtuality() const { return Virtuality; }
@@ -1712,6 +1740,11 @@
   /// Return true if this subprogram is C++11 noreturn or C11 _Noreturn
   bool isNoReturn() const { return getFlags() & FlagNoReturn; }
 
+  // Check if this routine is a compiler-generated thunk.
+  //
+  // Returns true if this subprogram is a thunk generated by the compiler.
+  bool isThunk() const { return getFlags() & FlagThunk; }
+
   DIScopeRef getScope() const { return DIScopeRef(getRawScope()); }
 
   StringRef getName() const { return getStringOperand(2); }
@@ -1734,8 +1767,8 @@
   DISubprogram *getDeclaration() const {
     return cast_or_null<DISubprogram>(getRawDeclaration());
   }
-  DILocalVariableArray getVariables() const {
-    return cast_or_null<MDTuple>(getRawVariables());
+  DINodeArray getRetainedNodes() const {
+    return cast_or_null<MDTuple>(getRawRetainedNodes());
   }
   DITypeArray getThrownTypes() const {
     return cast_or_null<MDTuple>(getRawThrownTypes());
@@ -1747,7 +1780,7 @@
   Metadata *getRawType() const { return getOperand(4); }
   Metadata *getRawUnit() const { return getOperand(5); }
   Metadata *getRawDeclaration() const { return getOperand(6); }
-  Metadata *getRawVariables() const { return getOperand(7); }
+  Metadata *getRawRetainedNodes() const { return getOperand(7); }
   Metadata *getRawContainingType() const {
     return getNumOperands() > 8 ? getOperandAs<Metadata>(8) : nullptr;
   }
@@ -2183,6 +2216,14 @@
   /// Determines the size of the variable's type.
   Optional<uint64_t> getSizeInBits() const;
 
+  /// Return the signedness of this variable's type, or None if this type is
+  /// neither signed nor unsigned.
+  Optional<DIBasicType::Signedness> getSignedness() const {
+    if (auto *BT = dyn_cast<DIBasicType>(getType().resolve()))
+      return BT->getSignedness();
+    return None;
+  }
+
   StringRef getFilename() const {
     if (auto *F = getFile())
       return F->getFilename();
@@ -2289,6 +2330,11 @@
     ///
     /// Return the number of elements in the operand (1 + args).
     unsigned getSize() const;
+
+    /// Append the elements of this operand to \p V.
+    void appendToVector(SmallVectorImpl<uint64_t> &V) const {
+      V.append(get(), get() + getSize());
+    }
   };
 
   /// An iterator for expression operands.
@@ -2392,15 +2438,28 @@
 
   /// Prepend \p DIExpr with a deref and offset operation and optionally turn it
   /// into a stack value.
-  static DIExpression *prepend(const DIExpression *DIExpr, bool DerefBefore,
+  static DIExpression *prepend(const DIExpression *Expr, bool DerefBefore,
                                int64_t Offset = 0, bool DerefAfter = false,
                                bool StackValue = false);
 
   /// Prepend \p DIExpr with the given opcodes and optionally turn it into a
   /// stack value.
-  static DIExpression *doPrepend(const DIExpression *DIExpr,
-                                 SmallVectorImpl<uint64_t> &Ops,
-                                 bool StackValue = false);
+  static DIExpression *prependOpcodes(const DIExpression *Expr,
+                                      SmallVectorImpl<uint64_t> &Ops,
+                                      bool StackValue = false);
+
+  /// Append the opcodes \p Ops to \p DIExpr. Unlike \ref appendToStack, the
+  /// returned expression is a stack value only if \p DIExpr is a stack value.
+  /// If \p DIExpr describes a fragment, the returned expression will describe
+  /// the same fragment.
+  static DIExpression *append(const DIExpression *Expr, ArrayRef<uint64_t> Ops);
+
+  /// Convert \p DIExpr into a stack value if it isn't one already by appending
+  /// DW_OP_deref if needed, and appending \p Ops to the resulting expression.
+  /// If \p DIExpr describes a fragment, the returned expression will describe
+  /// the same fragment.
+  static DIExpression *appendToStack(const DIExpression *Expr,
+                                     ArrayRef<uint64_t> Ops);
 
   /// Create a DIExpression to describe one part of an aggregate variable that
   /// is fragmented across multiple Values. The DW_OP_LLVM_fragment operation
@@ -2603,6 +2662,76 @@
   }
 };
 
+/// Label.
+///
+class DILabel : public DINode {
+  friend class LLVMContextImpl;
+  friend class MDNode;
+
+  unsigned Line;
+
+  DILabel(LLVMContext &C, StorageType Storage, unsigned Line,
+          ArrayRef<Metadata *> Ops)
+      : DINode(C, DILabelKind, Storage, dwarf::DW_TAG_label, Ops), Line(Line) {}
+  ~DILabel() = default;
+
+  static DILabel *getImpl(LLVMContext &Context, DIScope *Scope,
+                          StringRef Name, DIFile *File, unsigned Line,
+                          StorageType Storage,
+                          bool ShouldCreate = true) {
+    return getImpl(Context, Scope, getCanonicalMDString(Context, Name), File,
+                   Line, Storage, ShouldCreate);
+  }
+  static DILabel *getImpl(LLVMContext &Context, Metadata *Scope,
+                          MDString *Name, Metadata *File, unsigned Line,
+                          StorageType Storage,
+                          bool ShouldCreate = true);
+
+  TempDILabel cloneImpl() const {
+    return getTemporary(getContext(), getScope(), getName(), getFile(),
+                        getLine());
+  }
+
+public:
+  DEFINE_MDNODE_GET(DILabel,
+                    (DILocalScope * Scope, StringRef Name, DIFile *File,
+                     unsigned Line),
+                    (Scope, Name, File, Line))
+  DEFINE_MDNODE_GET(DILabel,
+                    (Metadata * Scope, MDString *Name, Metadata *File,
+                     unsigned Line),
+                    (Scope, Name, File, Line))
+
+  TempDILabel clone() const { return cloneImpl(); }
+
+  /// Get the local scope for this label.
+  ///
+  /// Labels must be defined in a local scope.
+  DILocalScope *getScope() const {
+    return cast_or_null<DILocalScope>(getRawScope());
+  }
+  unsigned getLine() const { return Line; }
+  StringRef getName() const { return getStringOperand(1); }
+  DIFile *getFile() const { return cast_or_null<DIFile>(getRawFile()); }
+
+  Metadata *getRawScope() const { return getOperand(0); }
+  MDString *getRawName() const { return getOperandAs<MDString>(1); }
+  Metadata *getRawFile() const { return getOperand(2); }
+
+  /// Check that a location is valid for this label.
+  ///
+  /// Check that \c DL exists, is in the same subprogram, and has the same
+  /// inlined-at location as \c this.  (Otherwise, it's not a valid attachment
+  /// to a \a DbgInfoIntrinsic.)
+  bool isValidLocationForIntrinsic(const DILocation *DL) const {
+    return DL && getScope()->getSubprogram() == DL->getScope()->getSubprogram();
+  }
+
+  static bool classof(const Metadata *MD) {
+    return MD->getMetadataID() == DILabelKind;
+  }
+};
+
 class DIObjCProperty : public DINode {
   friend class LLVMContextImpl;
   friend class MDNode;
diff --git a/linux-x64/clang/include/llvm/IR/DebugLoc.h b/linux-x64/clang/include/llvm/IR/DebugLoc.h
index eef1212..9f619ff 100644
--- a/linux-x64/clang/include/llvm/IR/DebugLoc.h
+++ b/linux-x64/clang/include/llvm/IR/DebugLoc.h
@@ -24,7 +24,7 @@
   class raw_ostream;
   class DILocation;
 
-  /// \brief A debug info location.
+  /// A debug info location.
   ///
   /// This class is a wrapper around a tracking reference to an \a DILocation
   /// pointer.
@@ -37,10 +37,10 @@
   public:
     DebugLoc() = default;
 
-    /// \brief Construct from an \a DILocation.
+    /// Construct from an \a DILocation.
     DebugLoc(const DILocation *L);
 
-    /// \brief Construct from an \a MDNode.
+    /// Construct from an \a MDNode.
     ///
     /// Note: if \c N is not an \a DILocation, a verifier check will fail, and
     /// accessors will crash.  However, construction from other nodes is
@@ -48,7 +48,7 @@
     /// IR.
     explicit DebugLoc(const MDNode *N);
 
-    /// \brief Get the underlying \a DILocation.
+    /// Get the underlying \a DILocation.
     ///
     /// \pre !*this or \c isa<DILocation>(getAsMDNode()).
     /// @{
@@ -58,7 +58,7 @@
     DILocation &operator*() const { return *get(); }
     /// @}
 
-    /// \brief Check for null.
+    /// Check for null.
     ///
     /// Check for null in a way that is safe with broken debug info.  Unlike
     /// the conversion to \c DILocation, this doesn't require that \c Loc is of
@@ -66,10 +66,10 @@
     /// \a Instruction::hasMetadata().
     explicit operator bool() const { return Loc; }
 
-    /// \brief Check whether this has a trivial destructor.
+    /// Check whether this has a trivial destructor.
     bool hasTrivialDestructor() const { return Loc.hasTrivialDestructor(); }
 
-    /// \brief Create a new DebugLoc.
+    /// Create a new DebugLoc.
     ///
     /// Create a new DebugLoc at the specified line/col and scope/inline.  This
     /// forwards to \a DILocation::get().
@@ -95,12 +95,12 @@
     MDNode *getScope() const;
     DILocation *getInlinedAt() const;
 
-    /// \brief Get the fully inlined-at scope for a DebugLoc.
+    /// Get the fully inlined-at scope for a DebugLoc.
     ///
     /// Gets the inlined-at scope for a DebugLoc.
     MDNode *getInlinedAtScope() const;
 
-    /// \brief Find the debug info location for the start of the function.
+    /// Find the debug info location for the start of the function.
     ///
     /// Walk up the scope chain of given debug loc and find line number info
     /// for the function.
@@ -109,7 +109,7 @@
     /// find the subprogram, and then DILocation::get().
     DebugLoc getFnDebugLoc() const;
 
-    /// \brief Return \c this as a bar \a MDNode.
+    /// Return \c this as a bar \a MDNode.
     MDNode *getAsMDNode() const { return Loc; }
 
     bool operator==(const DebugLoc &DL) const { return Loc == DL.Loc; }
@@ -117,7 +117,7 @@
 
     void dump() const;
 
-    /// \brief prints source location /path/to/file.exe:line:col @[inlined at]
+    /// prints source location /path/to/file.exe:line:col @[inlined at]
     void print(raw_ostream &OS) const;
   };
 
diff --git a/linux-x64/clang/include/llvm/IR/DerivedTypes.h b/linux-x64/clang/include/llvm/IR/DerivedTypes.h
index 6e5e085..9526d62 100644
--- a/linux-x64/clang/include/llvm/IR/DerivedTypes.h
+++ b/linux-x64/clang/include/llvm/IR/DerivedTypes.h
@@ -36,7 +36,7 @@
 /// Class to represent integer types. Note that this class is also used to
 /// represent the built-in integer types: Int1Ty, Int8Ty, Int16Ty, Int32Ty and
 /// Int64Ty.
-/// @brief Integer representation type
+/// Integer representation type
 class IntegerType : public Type {
   friend class LLVMContextImpl;
 
@@ -59,10 +59,10 @@
   /// If an IntegerType with the same NumBits value was previously instantiated,
   /// that instance will be returned. Otherwise a new one will be created. Only
   /// one instance with a given NumBits value is ever created.
-  /// @brief Get or create an IntegerType instance.
+  /// Get or create an IntegerType instance.
   static IntegerType *get(LLVMContext &C, unsigned NumBits);
 
-  /// @brief Get the number of bits in this IntegerType
+  /// Get the number of bits in this IntegerType
   unsigned getBitWidth() const { return getSubclassData(); }
 
   /// Return a bitmask with ones set for all of the bits that can be set by an
@@ -79,13 +79,13 @@
 
   /// For example, this is 0xFF for an 8 bit integer, 0xFFFF for i16, etc.
   /// @returns a bit mask with ones set for all the bits of this type.
-  /// @brief Get a bit mask for this type.
+  /// Get a bit mask for this type.
   APInt getMask() const;
 
   /// This method determines if the width of this IntegerType is a power-of-2
   /// in terms of 8 bit bytes.
   /// @returns true if this is a power-of-2 byte width.
-  /// @brief Is this a power-of-2 byte-width IntegerType ?
+  /// Is this a power-of-2 byte-width IntegerType ?
   bool isPowerOf2ByteWidth() const;
 
   /// Methods for support type inquiry through isa, cast, and dyn_cast.
@@ -193,7 +193,7 @@
 /// StructType::create() forms.
 ///
 /// Independent of what kind of struct you have, the body of a struct type are
-/// laid out in memory consequtively with the elements directly one after the
+/// laid out in memory consecutively with the elements directly one after the
 /// other (if the struct is packed) or (if not packed) with padding between the
 /// elements as defined by DataLayout (which is required to match what the code
 /// generator for a target expects).
diff --git a/linux-x64/clang/include/llvm/IR/DiagnosticHandler.h b/linux-x64/clang/include/llvm/IR/DiagnosticHandler.h
index 9256d48..51873be 100644
--- a/linux-x64/clang/include/llvm/IR/DiagnosticHandler.h
+++ b/linux-x64/clang/include/llvm/IR/DiagnosticHandler.h
@@ -18,7 +18,7 @@
 namespace llvm {
 class DiagnosticInfo;
 
-/// \brief This is the base class for diagnostic handling in LLVM.
+/// This is the base class for diagnostic handling in LLVM.
 /// The handleDiagnostics method must be overriden by the subclasses to handle
 /// diagnostic. The *RemarkEnabled methods can be overriden to control
 /// which remarks are enabled.
diff --git a/linux-x64/clang/include/llvm/IR/DiagnosticInfo.h b/linux-x64/clang/include/llvm/IR/DiagnosticInfo.h
index bfec2be..b8fdae2 100644
--- a/linux-x64/clang/include/llvm/IR/DiagnosticInfo.h
+++ b/linux-x64/clang/include/llvm/IR/DiagnosticInfo.h
@@ -39,7 +39,7 @@
 class Module;
 class SMDiagnostic;
 
-/// \brief Defines the different supported severity of a diagnostic.
+/// Defines the different supported severity of a diagnostic.
 enum DiagnosticSeverity : char {
   DS_Error,
   DS_Warning,
@@ -49,7 +49,7 @@
   DS_Note
 };
 
-/// \brief Defines the different supported kind of a diagnostic.
+/// Defines the different supported kind of a diagnostic.
 /// This enum should be extended with a new ID for each added concrete subclass.
 enum DiagnosticKind {
   DK_InlineAsm,
@@ -79,7 +79,7 @@
   DK_FirstPluginKind
 };
 
-/// \brief Get the next available kind ID for a plugin diagnostic.
+/// Get the next available kind ID for a plugin diagnostic.
 /// Each time this function is called, it returns a different number.
 /// Therefore, a plugin that wants to "identify" its own classes
 /// with a dynamic identifier, just have to use this method to get a new ID
@@ -89,7 +89,7 @@
 /// DiagnosticKind values.
 int getNextAvailablePluginDiagnosticKind();
 
-/// \brief This is the base abstract class for diagnostic reporting in
+/// This is the base abstract class for diagnostic reporting in
 /// the backend.
 /// The print method must be overloaded by the subclasses to print a
 /// user-friendly message in the client of the backend (let us call it a
@@ -389,20 +389,20 @@
   DiagnosticLocation Loc;
 };
 
-/// \brief Common features for diagnostics dealing with optimization remarks
+/// Common features for diagnostics dealing with optimization remarks
 /// that are used by both IR and MIR passes.
 class DiagnosticInfoOptimizationBase : public DiagnosticInfoWithLocationBase {
 public:
-  /// \brief Used to set IsVerbose via the stream interface.
+  /// Used to set IsVerbose via the stream interface.
   struct setIsVerbose {};
 
-  /// \brief When an instance of this is inserted into the stream, the arguments
+  /// When an instance of this is inserted into the stream, the arguments
   /// following will not appear in the remark printed in the compiler output
   /// (-Rpass) but only in the optimization record file
   /// (-fsave-optimization-record).
   struct setExtraArgs {};
 
-  /// \brief Used in the streaming interface as the general argument type.  It
+  /// Used in the streaming interface as the general argument type.  It
   /// internally converts everything into a key-value pair.
   struct Argument {
     std::string Key;
@@ -414,6 +414,7 @@
     Argument(StringRef Key, const Value *V);
     Argument(StringRef Key, const Type *T);
     Argument(StringRef Key, StringRef S);
+    Argument(StringRef Key, const char *S) : Argument(Key, StringRef(S)) {};
     Argument(StringRef Key, int N);
     Argument(StringRef Key, float N);
     Argument(StringRef Key, long N);
@@ -504,7 +505,7 @@
   /// The remark is expected to be noisy.
   bool IsVerbose = false;
 
-  /// \brief If positive, the index of the first argument that only appear in
+  /// If positive, the index of the first argument that only appear in
   /// the optimization records and not in the remark printed in the compiler
   /// output.
   int FirstExtraArgIndex = -1;
@@ -587,7 +588,7 @@
   return R;
 }
 
-/// \brief Common features for diagnostics dealing with optimization remarks
+/// Common features for diagnostics dealing with optimization remarks
 /// that are used by IR passes.
 class DiagnosticInfoIROptimization : public DiagnosticInfoOptimizationBase {
 public:
@@ -609,7 +610,7 @@
                                        Loc),
         CodeRegion(CodeRegion) {}
 
-  /// \brief This is ctor variant allows a pass to build an optimization remark
+  /// This is ctor variant allows a pass to build an optimization remark
   /// from an existing remark.
   ///
   /// This is useful when a transformation pass (e.g LV) wants to emit a remark
@@ -712,7 +713,7 @@
                            const DiagnosticLocation &Loc,
                            const Value *CodeRegion);
 
-  /// \brief Same as above but \p Inst is used to derive code region and debug
+  /// Same as above but \p Inst is used to derive code region and debug
   /// location.
   OptimizationRemarkMissed(const char *PassName, StringRef RemarkName,
                            const Instruction *Inst);
@@ -753,7 +754,7 @@
                              const DiagnosticLocation &Loc,
                              const Value *CodeRegion);
 
-  /// \brief This is ctor variant allows a pass to build an optimization remark
+  /// This is ctor variant allows a pass to build an optimization remark
   /// from an existing remark.
   ///
   /// This is useful when a transformation pass (e.g LV) wants to emit a remark
@@ -764,7 +765,7 @@
                              const OptimizationRemarkAnalysis &Orig)
       : DiagnosticInfoIROptimization(PassName, Prepend, Orig) {}
 
-  /// \brief Same as above but \p Inst is used to derive code region and debug
+  /// Same as above but \p Inst is used to derive code region and debug
   /// location.
   OptimizationRemarkAnalysis(const char *PassName, StringRef RemarkName,
                              const Instruction *Inst);
diff --git a/linux-x64/clang/include/llvm/IR/DiagnosticPrinter.h b/linux-x64/clang/include/llvm/IR/DiagnosticPrinter.h
index 59c8329..25c47cd 100644
--- a/linux-x64/clang/include/llvm/IR/DiagnosticPrinter.h
+++ b/linux-x64/clang/include/llvm/IR/DiagnosticPrinter.h
@@ -28,7 +28,7 @@
 class Twine;
 class Value;
 
-/// \brief Interface for custom diagnostic printing.
+/// Interface for custom diagnostic printing.
 class DiagnosticPrinter {
 public:
   virtual ~DiagnosticPrinter() = default;
@@ -58,7 +58,7 @@
   virtual DiagnosticPrinter &operator<<(const SMDiagnostic &Diag) = 0;
 };
 
-/// \brief Basic diagnostic printer that uses an underlying raw_ostream.
+/// Basic diagnostic printer that uses an underlying raw_ostream.
 class DiagnosticPrinterRawOStream : public DiagnosticPrinter {
 protected:
   raw_ostream &Stream;
diff --git a/linux-x64/clang/include/llvm/IR/DomTreeUpdater.h b/linux-x64/clang/include/llvm/IR/DomTreeUpdater.h
new file mode 100644
index 0000000..e5bb092
--- /dev/null
+++ b/linux-x64/clang/include/llvm/IR/DomTreeUpdater.h
@@ -0,0 +1,257 @@
+//===- DomTreeUpdater.h - DomTree/Post DomTree Updater ----------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the DomTreeUpdater class, which provides a uniform way to
+// update dominator tree related data structures.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_DOMTREEUPDATER_H
+#define LLVM_DOMTREEUPDATER_H
+
+#include "llvm/Analysis/PostDominators.h"
+#include "llvm/IR/Dominators.h"
+#include "llvm/IR/Instructions.h"
+#include "llvm/IR/ValueHandle.h"
+#include "llvm/Support/GenericDomTree.h"
+#include <functional>
+#include <vector>
+
+namespace llvm {
+class DomTreeUpdater {
+public:
+  enum class UpdateStrategy : unsigned char { Eager = 0, Lazy = 1 };
+
+  explicit DomTreeUpdater(UpdateStrategy Strategy_) : Strategy(Strategy_) {}
+  DomTreeUpdater(DominatorTree &DT_, UpdateStrategy Strategy_)
+      : DT(&DT_), Strategy(Strategy_) {}
+  DomTreeUpdater(DominatorTree *DT_, UpdateStrategy Strategy_)
+      : DT(DT_), Strategy(Strategy_) {}
+  DomTreeUpdater(PostDominatorTree &PDT_, UpdateStrategy Strategy_)
+      : PDT(&PDT_), Strategy(Strategy_) {}
+  DomTreeUpdater(PostDominatorTree *PDT_, UpdateStrategy Strategy_)
+      : PDT(PDT_), Strategy(Strategy_) {}
+  DomTreeUpdater(DominatorTree &DT_, PostDominatorTree &PDT_,
+                 UpdateStrategy Strategy_)
+      : DT(&DT_), PDT(&PDT_), Strategy(Strategy_) {}
+  DomTreeUpdater(DominatorTree *DT_, PostDominatorTree *PDT_,
+                 UpdateStrategy Strategy_)
+      : DT(DT_), PDT(PDT_), Strategy(Strategy_) {}
+
+  ~DomTreeUpdater() { flush(); }
+
+  /// Returns true if the current strategy is Lazy.
+  bool isLazy() const { return Strategy == UpdateStrategy::Lazy; };
+
+  /// Returns true if the current strategy is Eager.
+  bool isEager() const { return Strategy == UpdateStrategy::Eager; };
+
+  /// Returns true if it holds a DominatorTree.
+  bool hasDomTree() const { return DT != nullptr; }
+
+  /// Returns true if it holds a PostDominatorTree.
+  bool hasPostDomTree() const { return PDT != nullptr; }
+
+  /// Returns true if there is BasicBlock awaiting deletion.
+  /// The deletion will only happen until a flush event and
+  /// all available trees are up-to-date.
+  /// Returns false under Eager UpdateStrategy.
+  bool hasPendingDeletedBB() const { return !DeletedBBs.empty(); }
+
+  /// Returns true if DelBB is awaiting deletion.
+  /// Returns false under Eager UpdateStrategy.
+  bool isBBPendingDeletion(BasicBlock *DelBB) const;
+
+  /// Returns true if either of DT or PDT is valid and the tree has at
+  /// least one update pending. If DT or PDT is nullptr it is treated
+  /// as having no pending updates. This function does not check
+  /// whether there is BasicBlock awaiting deletion.
+  /// Returns false under Eager UpdateStrategy.
+  bool hasPendingUpdates() const;
+
+  /// Returns true if there are DominatorTree updates queued.
+  /// Returns false under Eager UpdateStrategy or DT is nullptr.
+  bool hasPendingDomTreeUpdates() const;
+
+  /// Returns true if there are PostDominatorTree updates queued.
+  /// Returns false under Eager UpdateStrategy or PDT is nullptr.
+  bool hasPendingPostDomTreeUpdates() const;
+
+  /// Apply updates on all available trees. Under Eager UpdateStrategy with
+  /// ForceRemoveDuplicates enabled or under Lazy UpdateStrategy, it will
+  /// discard duplicated updates and self-dominance updates. If both DT and PDT
+  /// are nullptrs, this function discards all updates. The Eager Strategy
+  /// applies the updates immediately while the Lazy Strategy queues the
+  /// updates. It is required for the state of the LLVM IR to be updated
+  /// *before* applying the Updates because the internal update routine will
+  /// analyze the current state of the relationship between a pair of (From, To)
+  /// BasicBlocks to determine whether a single update needs to be discarded.
+  void applyUpdates(ArrayRef<DominatorTree::UpdateType> Updates,
+                    bool ForceRemoveDuplicates = false);
+
+  /// Notify all available trees on an edge insertion. If both DT and PDT are
+  /// nullptrs, this function discards the update. Under either Strategy,
+  /// self-dominance update will be removed. The Eager Strategy applies
+  /// the update immediately while the Lazy Strategy queues the update.
+  /// It is recommended to only use this method when you have exactly one
+  /// insertion (and no deletions). It is recommended to use applyUpdates() in
+  /// all other cases. This function has to be called *after* making the update
+  /// on the actual CFG. An internal functions checks if the edge exists in the
+  /// CFG in DEBUG mode.
+  void insertEdge(BasicBlock *From, BasicBlock *To);
+
+  /// Notify all available trees on an edge insertion.
+  /// Under either Strategy, the following updates will be discard silently
+  /// 1. Invalid - Inserting an edge that does not exist in the CFG.
+  /// 2. Self-dominance update.
+  /// 3. Both DT and PDT are nullptrs.
+  /// The Eager Strategy applies the update immediately while the Lazy Strategy
+  /// queues the update. It is recommended to only use this method when you have
+  /// exactly one insertion (and no deletions) and want to discard an invalid
+  /// update.
+  void insertEdgeRelaxed(BasicBlock *From, BasicBlock *To);
+
+  /// Notify all available trees on an edge deletion. If both DT and PDT are
+  /// nullptrs, this function discards the update. Under either Strategy,
+  /// self-dominance update will be removed. The Eager Strategy applies
+  /// the update immediately while the Lazy Strategy queues the update.
+  /// It is recommended to only use this method when you have exactly one
+  /// deletion (and no insertions). It is recommended to use applyUpdates() in
+  /// all other cases. This function has to be called *after* making the update
+  /// on the actual CFG. An internal functions checks if the edge doesn't exist
+  /// in the CFG in DEBUG mode.
+  void deleteEdge(BasicBlock *From, BasicBlock *To);
+
+  /// Notify all available trees on an edge deletion.
+  /// Under either Strategy, the following updates will be discard silently
+  /// 1. Invalid - Deleting an edge that still exists in the CFG.
+  /// 2. Self-dominance update.
+  /// 3. Both DT and PDT are nullptrs.
+  /// The Eager Strategy applies the update immediately while the Lazy Strategy
+  /// queues the update. It is recommended to only use this method when you have
+  /// exactly one deletion (and no insertions) and want to discard an invalid
+  /// update.
+  void deleteEdgeRelaxed(BasicBlock *From, BasicBlock *To);
+
+  /// Delete DelBB. DelBB will be removed from its Parent and
+  /// erased from available trees if it exists and finally get deleted.
+  /// Under Eager UpdateStrategy, DelBB will be processed immediately.
+  /// Under Lazy UpdateStrategy, DelBB will be queued until a flush event and
+  /// all available trees are up-to-date. Assert if any instruction of DelBB is
+  /// modified while awaiting deletion. When both DT and PDT are nullptrs, DelBB
+  /// will be queued until flush() is called.
+  void deleteBB(BasicBlock *DelBB);
+
+  /// Delete DelBB. DelBB will be removed from its Parent and
+  /// erased from available trees if it exists. Then the callback will
+  /// be called. Finally, DelBB will be deleted.
+  /// Under Eager UpdateStrategy, DelBB will be processed immediately.
+  /// Under Lazy UpdateStrategy, DelBB will be queued until a flush event and
+  /// all available trees are up-to-date. Assert if any instruction of DelBB is
+  /// modified while awaiting deletion. Multiple callbacks can be queued for one
+  /// DelBB under Lazy UpdateStrategy.
+  void callbackDeleteBB(BasicBlock *DelBB,
+                        std::function<void(BasicBlock *)> Callback);
+
+  /// Recalculate all available trees and flush all BasicBlocks
+  /// awaiting deletion immediately.
+  void recalculate(Function &F);
+
+  /// Flush DomTree updates and return DomTree.
+  /// It also flush out of date updates applied by all available trees
+  /// and flush Deleted BBs if both trees are up-to-date.
+  /// It must only be called when it has a DomTree.
+  DominatorTree &getDomTree();
+
+  /// Flush PostDomTree updates and return PostDomTree.
+  /// It also flush out of date updates applied by all available trees
+  /// and flush Deleted BBs if both trees are up-to-date.
+  /// It must only be called when it has a PostDomTree.
+  PostDominatorTree &getPostDomTree();
+
+  /// Apply all pending updates to available trees and flush all BasicBlocks
+  /// awaiting deletion.
+  /// Does nothing under Eager UpdateStrategy.
+  void flush();
+
+  /// Debug method to help view the internal state of this class.
+  LLVM_DUMP_METHOD void dump() const;
+
+private:
+  class CallBackOnDeletion final : public CallbackVH {
+  public:
+    CallBackOnDeletion(BasicBlock *V,
+                       std::function<void(BasicBlock *)> Callback)
+        : CallbackVH(V), DelBB(V), Callback_(Callback) {}
+
+  private:
+    BasicBlock *DelBB = nullptr;
+    std::function<void(BasicBlock *)> Callback_;
+
+    void deleted() override {
+      Callback_(DelBB);
+      CallbackVH::deleted();
+    }
+  };
+
+  SmallVector<DominatorTree::UpdateType, 16> PendUpdates;
+  size_t PendDTUpdateIndex = 0;
+  size_t PendPDTUpdateIndex = 0;
+  DominatorTree *DT = nullptr;
+  PostDominatorTree *PDT = nullptr;
+  const UpdateStrategy Strategy;
+  SmallPtrSet<BasicBlock *, 8> DeletedBBs;
+  std::vector<CallBackOnDeletion> Callbacks;
+  bool IsRecalculatingDomTree = false;
+  bool IsRecalculatingPostDomTree = false;
+
+  /// First remove all the instructions of DelBB and then make sure DelBB has a
+  /// valid terminator instruction which is necessary to have when DelBB still
+  /// has to be inside of its parent Function while awaiting deletion under Lazy
+  /// UpdateStrategy to prevent other routines from asserting the state of the
+  /// IR is inconsistent. Assert if DelBB is nullptr or has predecessors.
+  void validateDeleteBB(BasicBlock *DelBB);
+
+  /// Returns true if at least one BasicBlock is deleted.
+  bool forceFlushDeletedBB();
+
+  /// Deduplicate and remove unnecessary updates (no-ops) when using Lazy
+  /// UpdateStrategy. Returns true if the update is queued for update.
+  bool applyLazyUpdate(DominatorTree::UpdateKind Kind, BasicBlock *From,
+                       BasicBlock *To);
+
+  /// Helper function to apply all pending DomTree updates.
+  void applyDomTreeUpdates();
+
+  /// Helper function to apply all pending PostDomTree updates.
+  void applyPostDomTreeUpdates();
+
+  /// Helper function to flush deleted BasicBlocks if all available
+  /// trees are up-to-date.
+  void tryFlushDeletedBB();
+
+  /// Drop all updates applied by all available trees and delete BasicBlocks if
+  /// all available trees are up-to-date.
+  void dropOutOfDateUpdates();
+
+  /// Erase Basic Block node that has been unlinked from Function
+  /// in the DomTree and PostDomTree.
+  void eraseDelBBNode(BasicBlock *DelBB);
+
+  /// Returns true if the update appears in the LLVM IR.
+  /// It is used to check whether an update is valid in
+  /// insertEdge/deleteEdge or is unnecessary in the batch update.
+  bool isUpdateValid(DominatorTree::UpdateType Update) const;
+
+  /// Returns true if the update is self dominance.
+  bool isSelfDominance(DominatorTree::UpdateType Update) const;
+};
+} // namespace llvm
+
+#endif // LLVM_DOMTREEUPDATER_H
diff --git a/linux-x64/clang/include/llvm/IR/Dominators.h b/linux-x64/clang/include/llvm/IR/Dominators.h
index f6811bc..f9e992b 100644
--- a/linux-x64/clang/include/llvm/IR/Dominators.h
+++ b/linux-x64/clang/include/llvm/IR/Dominators.h
@@ -121,7 +121,7 @@
   }
 };
 
-/// \brief Concrete subclass of DominatorTreeBase that is used to compute a
+/// Concrete subclass of DominatorTreeBase that is used to compute a
 /// normal dominator tree.
 ///
 /// Definition: A block is said to be forward statically reachable if there is
@@ -153,7 +153,7 @@
   // Ensure base-class overloads are visible.
   using Base::dominates;
 
-  /// \brief Return true if Def dominates a use in User.
+  /// Return true if Def dominates a use in User.
   ///
   /// This performs the special checks necessary if Def and User are in the same
   /// basic block. Note that Def doesn't dominate a use in Def itself!
@@ -171,7 +171,7 @@
   // Ensure base class overloads are visible.
   using Base::isReachableFromEntry;
 
-  /// \brief Provide an overload for a Use.
+  /// Provide an overload for a Use.
   bool isReachableFromEntry(const Use &U) const;
 
   // Pop up a GraphViz/gv window with the Dominator Tree rendered using `dot`.
@@ -221,20 +221,20 @@
   }
 };
 
-/// \brief Analysis pass which computes a \c DominatorTree.
+/// Analysis pass which computes a \c DominatorTree.
 class DominatorTreeAnalysis : public AnalysisInfoMixin<DominatorTreeAnalysis> {
   friend AnalysisInfoMixin<DominatorTreeAnalysis>;
   static AnalysisKey Key;
 
 public:
-  /// \brief Provide the result typedef for this analysis pass.
+  /// Provide the result typedef for this analysis pass.
   using Result = DominatorTree;
 
-  /// \brief Run the analysis pass over a function and produce a dominator tree.
+  /// Run the analysis pass over a function and produce a dominator tree.
   DominatorTree run(Function &F, FunctionAnalysisManager &);
 };
 
-/// \brief Printer pass for the \c DominatorTree.
+/// Printer pass for the \c DominatorTree.
 class DominatorTreePrinterPass
     : public PassInfoMixin<DominatorTreePrinterPass> {
   raw_ostream &OS;
@@ -245,12 +245,12 @@
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Verifier pass for the \c DominatorTree.
+/// Verifier pass for the \c DominatorTree.
 struct DominatorTreeVerifierPass : PassInfoMixin<DominatorTreeVerifierPass> {
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Legacy analysis pass which computes a \c DominatorTree.
+/// Legacy analysis pass which computes a \c DominatorTree.
 class DominatorTreeWrapperPass : public FunctionPass {
   DominatorTree DT;
 
@@ -278,7 +278,7 @@
 };
 
 //===-------------------------------------
-/// \brief Class to defer updates to a DominatorTree.
+/// Class to defer updates to a DominatorTree.
 ///
 /// Definition: Applying updates to every edge insertion and deletion is
 /// expensive and not necessary. When one needs the DominatorTree for analysis
@@ -308,40 +308,40 @@
 public:
   DeferredDominance(DominatorTree &DT_) : DT(DT_) {}
 
-  /// \brief Queues multiple updates and discards duplicates.
+  /// Queues multiple updates and discards duplicates.
   void applyUpdates(ArrayRef<DominatorTree::UpdateType> Updates);
 
-  /// \brief Helper method for a single edge insertion. It's almost always
+  /// Helper method for a single edge insertion. It's almost always
   /// better to batch updates and call applyUpdates to quickly remove duplicate
   /// edges. This is best used when there is only a single insertion needed to
   /// update Dominators.
   void insertEdge(BasicBlock *From, BasicBlock *To);
 
-  /// \brief Helper method for a single edge deletion. It's almost always better
+  /// Helper method for a single edge deletion. It's almost always better
   /// to batch updates and call applyUpdates to quickly remove duplicate edges.
   /// This is best used when there is only a single deletion needed to update
   /// Dominators.
   void deleteEdge(BasicBlock *From, BasicBlock *To);
 
-  /// \brief Delays the deletion of a basic block until a flush() event.
+  /// Delays the deletion of a basic block until a flush() event.
   void deleteBB(BasicBlock *DelBB);
 
-  /// \brief Returns true if DelBB is awaiting deletion at a flush() event.
+  /// Returns true if DelBB is awaiting deletion at a flush() event.
   bool pendingDeletedBB(BasicBlock *DelBB);
 
-  /// \brief Returns true if pending DT updates are queued for a flush() event.
+  /// Returns true if pending DT updates are queued for a flush() event.
   bool pending();
 
-  /// \brief Flushes all pending updates and block deletions. Returns a
+  /// Flushes all pending updates and block deletions. Returns a
   /// correct DominatorTree reference to be used by the caller for analysis.
   DominatorTree &flush();
 
-  /// \brief Drops all internal state and forces a (slow) recalculation of the
+  /// Drops all internal state and forces a (slow) recalculation of the
   /// DominatorTree based on the current state of the LLVM IR in F. This should
   /// only be used in corner cases such as the Entry block of F being deleted.
   void recalculate(Function &F);
 
-  /// \brief Debug method to help view the state of pending updates.
+  /// Debug method to help view the state of pending updates.
   LLVM_DUMP_METHOD void dump() const;
 
 private:
diff --git a/linux-x64/clang/include/llvm/IR/Function.h b/linux-x64/clang/include/llvm/IR/Function.h
index ec9d370..c8d6b07 100644
--- a/linux-x64/clang/include/llvm/IR/Function.h
+++ b/linux-x64/clang/include/llvm/IR/Function.h
@@ -141,6 +141,11 @@
   // Provide fast operand accessors.
   DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
 
+  /// Returns the number of non-debug IR instructions in this function.
+  /// This is equivalent to the sum of the sizes of each basic block contained
+  /// within this function.
+  unsigned getInstructionCount();
+
   /// Returns the FunctionType for me.
   FunctionType *getFunctionType() const {
     return cast<FunctionType>(getValueType());
@@ -181,7 +186,7 @@
 
   static Intrinsic::ID lookupIntrinsicID(StringRef Name);
 
-  /// \brief Recalculate the ID for this function if it is an Intrinsic defined
+  /// Recalculate the ID for this function if it is an Intrinsic defined
   /// in llvm/Intrinsics.h.  Sets the intrinsic ID to Intrinsic::not_intrinsic
   /// if the name of this function does not match an intrinsic in that header.
   /// Note, this method does not need to be called directly, as it is called
@@ -201,34 +206,34 @@
     setValueSubclassData((getSubclassDataFromValue() & 0xc00f) | (ID << 4));
   }
 
-  /// @brief Return the attribute list for this Function.
+  /// Return the attribute list for this Function.
   AttributeList getAttributes() const { return AttributeSets; }
 
-  /// @brief Set the attribute list for this Function.
+  /// Set the attribute list for this Function.
   void setAttributes(AttributeList Attrs) { AttributeSets = Attrs; }
 
-  /// @brief Add function attributes to this function.
+  /// Add function attributes to this function.
   void addFnAttr(Attribute::AttrKind Kind) {
     addAttribute(AttributeList::FunctionIndex, Kind);
   }
 
-  /// @brief Add function attributes to this function.
+  /// Add function attributes to this function.
   void addFnAttr(StringRef Kind, StringRef Val = StringRef()) {
     addAttribute(AttributeList::FunctionIndex,
                  Attribute::get(getContext(), Kind, Val));
   }
 
-  /// @brief Add function attributes to this function.
+  /// Add function attributes to this function.
   void addFnAttr(Attribute Attr) {
     addAttribute(AttributeList::FunctionIndex, Attr);
   }
 
-  /// @brief Remove function attributes from this function.
+  /// Remove function attributes from this function.
   void removeFnAttr(Attribute::AttrKind Kind) {
     removeAttribute(AttributeList::FunctionIndex, Kind);
   }
 
-  /// @brief Remove function attribute from this function.
+  /// Remove function attribute from this function.
   void removeFnAttr(StringRef Kind) {
     setAttributes(getAttributes().removeAttribute(
         getContext(), AttributeList::FunctionIndex, Kind));
@@ -263,7 +268,7 @@
     static ProfileCount getInvalid() { return ProfileCount(-1, PCT_Invalid); }
   };
 
-  /// \brief Set the entry count for this function.
+  /// Set the entry count for this function.
   ///
   /// Entry count is the number of times this function was executed based on
   /// pgo data. \p Imports points to a set of GUIDs that needs to
@@ -276,7 +281,7 @@
   void setEntryCount(uint64_t Count, ProfileCountType Type = PCT_Real,
                      const DenseSet<GlobalValue::GUID> *Imports = nullptr);
 
-  /// \brief Get the entry count for this function.
+  /// Get the entry count for this function.
   ///
   /// Entry count is the number of times the function was executed based on
   /// pgo data.
@@ -298,27 +303,27 @@
   /// Get the section prefix for this function.
   Optional<StringRef> getSectionPrefix() const;
 
-  /// @brief Return true if the function has the attribute.
+  /// Return true if the function has the attribute.
   bool hasFnAttribute(Attribute::AttrKind Kind) const {
     return AttributeSets.hasFnAttribute(Kind);
   }
 
-  /// @brief Return true if the function has the attribute.
+  /// Return true if the function has the attribute.
   bool hasFnAttribute(StringRef Kind) const {
     return AttributeSets.hasFnAttribute(Kind);
   }
 
-  /// @brief Return the attribute for the given attribute kind.
+  /// Return the attribute for the given attribute kind.
   Attribute getFnAttribute(Attribute::AttrKind Kind) const {
     return getAttribute(AttributeList::FunctionIndex, Kind);
   }
 
-  /// @brief Return the attribute for the given attribute kind.
+  /// Return the attribute for the given attribute kind.
   Attribute getFnAttribute(StringRef Kind) const {
     return getAttribute(AttributeList::FunctionIndex, Kind);
   }
 
-  /// \brief Return the stack alignment for the function.
+  /// Return the stack alignment for the function.
   unsigned getFnStackAlignment() const {
     if (!hasFnAttribute(Attribute::StackAlignment))
       return 0;
@@ -334,110 +339,110 @@
   void setGC(std::string Str);
   void clearGC();
 
-  /// @brief adds the attribute to the list of attributes.
+  /// adds the attribute to the list of attributes.
   void addAttribute(unsigned i, Attribute::AttrKind Kind);
 
-  /// @brief adds the attribute to the list of attributes.
+  /// adds the attribute to the list of attributes.
   void addAttribute(unsigned i, Attribute Attr);
 
-  /// @brief adds the attributes to the list of attributes.
+  /// adds the attributes to the list of attributes.
   void addAttributes(unsigned i, const AttrBuilder &Attrs);
 
-  /// @brief adds the attribute to the list of attributes for the given arg.
+  /// adds the attribute to the list of attributes for the given arg.
   void addParamAttr(unsigned ArgNo, Attribute::AttrKind Kind);
 
-  /// @brief adds the attribute to the list of attributes for the given arg.
+  /// adds the attribute to the list of attributes for the given arg.
   void addParamAttr(unsigned ArgNo, Attribute Attr);
 
-  /// @brief adds the attributes to the list of attributes for the given arg.
+  /// adds the attributes to the list of attributes for the given arg.
   void addParamAttrs(unsigned ArgNo, const AttrBuilder &Attrs);
 
-  /// @brief removes the attribute from the list of attributes.
+  /// removes the attribute from the list of attributes.
   void removeAttribute(unsigned i, Attribute::AttrKind Kind);
 
-  /// @brief removes the attribute from the list of attributes.
+  /// removes the attribute from the list of attributes.
   void removeAttribute(unsigned i, StringRef Kind);
 
-  /// @brief removes the attributes from the list of attributes.
+  /// removes the attributes from the list of attributes.
   void removeAttributes(unsigned i, const AttrBuilder &Attrs);
 
-  /// @brief removes the attribute from the list of attributes.
+  /// removes the attribute from the list of attributes.
   void removeParamAttr(unsigned ArgNo, Attribute::AttrKind Kind);
 
-  /// @brief removes the attribute from the list of attributes.
+  /// removes the attribute from the list of attributes.
   void removeParamAttr(unsigned ArgNo, StringRef Kind);
 
-  /// @brief removes the attribute from the list of attributes.
+  /// removes the attribute from the list of attributes.
   void removeParamAttrs(unsigned ArgNo, const AttrBuilder &Attrs);
 
-  /// @brief check if an attributes is in the list of attributes.
+  /// check if an attributes is in the list of attributes.
   bool hasAttribute(unsigned i, Attribute::AttrKind Kind) const {
     return getAttributes().hasAttribute(i, Kind);
   }
 
-  /// @brief check if an attributes is in the list of attributes.
+  /// check if an attributes is in the list of attributes.
   bool hasParamAttribute(unsigned ArgNo, Attribute::AttrKind Kind) const {
     return getAttributes().hasParamAttribute(ArgNo, Kind);
   }
 
-  /// @brief gets the attribute from the list of attributes.
+  /// gets the attribute from the list of attributes.
   Attribute getAttribute(unsigned i, Attribute::AttrKind Kind) const {
     return AttributeSets.getAttribute(i, Kind);
   }
 
-  /// @brief gets the attribute from the list of attributes.
+  /// gets the attribute from the list of attributes.
   Attribute getAttribute(unsigned i, StringRef Kind) const {
     return AttributeSets.getAttribute(i, Kind);
   }
 
-  /// @brief adds the dereferenceable attribute to the list of attributes.
+  /// adds the dereferenceable attribute to the list of attributes.
   void addDereferenceableAttr(unsigned i, uint64_t Bytes);
 
-  /// @brief adds the dereferenceable attribute to the list of attributes for
+  /// adds the dereferenceable attribute to the list of attributes for
   /// the given arg.
   void addDereferenceableParamAttr(unsigned ArgNo, uint64_t Bytes);
 
-  /// @brief adds the dereferenceable_or_null attribute to the list of
+  /// adds the dereferenceable_or_null attribute to the list of
   /// attributes.
   void addDereferenceableOrNullAttr(unsigned i, uint64_t Bytes);
 
-  /// @brief adds the dereferenceable_or_null attribute to the list of
+  /// adds the dereferenceable_or_null attribute to the list of
   /// attributes for the given arg.
   void addDereferenceableOrNullParamAttr(unsigned ArgNo, uint64_t Bytes);
 
-  /// @brief Extract the alignment for a call or parameter (0=unknown).
+  /// Extract the alignment for a call or parameter (0=unknown).
   unsigned getParamAlignment(unsigned ArgNo) const {
     return AttributeSets.getParamAlignment(ArgNo);
   }
 
-  /// @brief Extract the number of dereferenceable bytes for a call or
+  /// Extract the number of dereferenceable bytes for a call or
   /// parameter (0=unknown).
   /// @param i AttributeList index, referring to a return value or argument.
   uint64_t getDereferenceableBytes(unsigned i) const {
     return AttributeSets.getDereferenceableBytes(i);
   }
 
-  /// @brief Extract the number of dereferenceable bytes for a parameter.
+  /// Extract the number of dereferenceable bytes for a parameter.
   /// @param ArgNo Index of an argument, with 0 being the first function arg.
   uint64_t getParamDereferenceableBytes(unsigned ArgNo) const {
     return AttributeSets.getParamDereferenceableBytes(ArgNo);
   }
 
-  /// @brief Extract the number of dereferenceable_or_null bytes for a call or
+  /// Extract the number of dereferenceable_or_null bytes for a call or
   /// parameter (0=unknown).
   /// @param i AttributeList index, referring to a return value or argument.
   uint64_t getDereferenceableOrNullBytes(unsigned i) const {
     return AttributeSets.getDereferenceableOrNullBytes(i);
   }
 
-  /// @brief Extract the number of dereferenceable_or_null bytes for a
+  /// Extract the number of dereferenceable_or_null bytes for a
   /// parameter.
   /// @param ArgNo AttributeList ArgNo, referring to an argument.
   uint64_t getParamDereferenceableOrNullBytes(unsigned ArgNo) const {
     return AttributeSets.getParamDereferenceableOrNullBytes(ArgNo);
   }
 
-  /// @brief Determine if the function does not access memory.
+  /// Determine if the function does not access memory.
   bool doesNotAccessMemory() const {
     return hasFnAttribute(Attribute::ReadNone);
   }
@@ -445,7 +450,7 @@
     addFnAttr(Attribute::ReadNone);
   }
 
-  /// @brief Determine if the function does not access or only reads memory.
+  /// Determine if the function does not access or only reads memory.
   bool onlyReadsMemory() const {
     return doesNotAccessMemory() || hasFnAttribute(Attribute::ReadOnly);
   }
@@ -453,7 +458,7 @@
     addFnAttr(Attribute::ReadOnly);
   }
 
-  /// @brief Determine if the function does not access or only writes memory.
+  /// Determine if the function does not access or only writes memory.
   bool doesNotReadMemory() const {
     return doesNotAccessMemory() || hasFnAttribute(Attribute::WriteOnly);
   }
@@ -461,14 +466,14 @@
     addFnAttr(Attribute::WriteOnly);
   }
 
-  /// @brief Determine if the call can access memmory only using pointers based
+  /// Determine if the call can access memmory only using pointers based
   /// on its arguments.
   bool onlyAccessesArgMemory() const {
     return hasFnAttribute(Attribute::ArgMemOnly);
   }
   void setOnlyAccessesArgMemory() { addFnAttr(Attribute::ArgMemOnly); }
 
-  /// @brief Determine if the function may only access memory that is
+  /// Determine if the function may only access memory that is
   ///  inaccessible from the IR.
   bool onlyAccessesInaccessibleMemory() const {
     return hasFnAttribute(Attribute::InaccessibleMemOnly);
@@ -477,7 +482,7 @@
     addFnAttr(Attribute::InaccessibleMemOnly);
   }
 
-  /// @brief Determine if the function may only access memory that is
+  /// Determine if the function may only access memory that is
   ///  either inaccessible from the IR or pointed to by its arguments.
   bool onlyAccessesInaccessibleMemOrArgMem() const {
     return hasFnAttribute(Attribute::InaccessibleMemOrArgMemOnly);
@@ -486,7 +491,7 @@
     addFnAttr(Attribute::InaccessibleMemOrArgMemOnly);
   }
 
-  /// @brief Determine if the function cannot return.
+  /// Determine if the function cannot return.
   bool doesNotReturn() const {
     return hasFnAttribute(Attribute::NoReturn);
   }
@@ -497,7 +502,7 @@
   /// Determine if the function should not perform indirect branch tracking.
   bool doesNoCfCheck() const { return hasFnAttribute(Attribute::NoCfCheck); }
 
-  /// @brief Determine if the function cannot unwind.
+  /// Determine if the function cannot unwind.
   bool doesNotThrow() const {
     return hasFnAttribute(Attribute::NoUnwind);
   }
@@ -505,7 +510,7 @@
     addFnAttr(Attribute::NoUnwind);
   }
 
-  /// @brief Determine if the call cannot be duplicated.
+  /// Determine if the call cannot be duplicated.
   bool cannotDuplicate() const {
     return hasFnAttribute(Attribute::NoDuplicate);
   }
@@ -513,7 +518,7 @@
     addFnAttr(Attribute::NoDuplicate);
   }
 
-  /// @brief Determine if the call is convergent.
+  /// Determine if the call is convergent.
   bool isConvergent() const {
     return hasFnAttribute(Attribute::Convergent);
   }
@@ -524,7 +529,7 @@
     removeFnAttr(Attribute::Convergent);
   }
 
-  /// @brief Determine if the call has sideeffects.
+  /// Determine if the call has sideeffects.
   bool isSpeculatable() const {
     return hasFnAttribute(Attribute::Speculatable);
   }
@@ -541,7 +546,7 @@
     addFnAttr(Attribute::NoRecurse);
   }
 
-  /// @brief True if the ABI mandates (or the user requested) that this
+  /// True if the ABI mandates (or the user requested) that this
   /// function be in a unwind table.
   bool hasUWTable() const {
     return hasFnAttribute(Attribute::UWTable);
@@ -550,19 +555,19 @@
     addFnAttr(Attribute::UWTable);
   }
 
-  /// @brief True if this function needs an unwind table.
+  /// True if this function needs an unwind table.
   bool needsUnwindTableEntry() const {
     return hasUWTable() || !doesNotThrow();
   }
 
-  /// @brief Determine if the function returns a structure through first
+  /// Determine if the function returns a structure through first
   /// or second pointer argument.
   bool hasStructRetAttr() const {
     return AttributeSets.hasParamAttribute(0, Attribute::StructRet) ||
            AttributeSets.hasParamAttribute(1, Attribute::StructRet);
   }
 
-  /// @brief Determine if the parameter or return value is marked with NoAlias
+  /// Determine if the parameter or return value is marked with NoAlias
   /// attribute.
   bool returnDoesNotAlias() const {
     return AttributeSets.hasAttribute(AttributeList::ReturnIndex,
@@ -679,30 +684,30 @@
   size_t arg_size() const { return NumArgs; }
   bool arg_empty() const { return arg_size() == 0; }
 
-  /// \brief Check whether this function has a personality function.
+  /// Check whether this function has a personality function.
   bool hasPersonalityFn() const {
     return getSubclassDataFromValue() & (1<<3);
   }
 
-  /// \brief Get the personality function associated with this function.
+  /// Get the personality function associated with this function.
   Constant *getPersonalityFn() const;
   void setPersonalityFn(Constant *Fn);
 
-  /// \brief Check whether this function has prefix data.
+  /// Check whether this function has prefix data.
   bool hasPrefixData() const {
     return getSubclassDataFromValue() & (1<<1);
   }
 
-  /// \brief Get the prefix data associated with this function.
+  /// Get the prefix data associated with this function.
   Constant *getPrefixData() const;
   void setPrefixData(Constant *PrefixData);
 
-  /// \brief Check whether this function has prologue data.
+  /// Check whether this function has prologue data.
   bool hasPrologueData() const {
     return getSubclassDataFromValue() & (1<<2);
   }
 
-  /// \brief Get the prologue data associated with this function.
+  /// Get the prologue data associated with this function.
   Constant *getPrologueData() const;
   void setPrologueData(Constant *PrologueData);
 
@@ -762,12 +767,12 @@
   /// setjmp or other function that gcc recognizes as "returning twice".
   bool callsFunctionThatReturnsTwice() const;
 
-  /// \brief Set the attached subprogram.
+  /// Set the attached subprogram.
   ///
   /// Calls \a setMetadata() with \a LLVMContext::MD_dbg.
   void setSubprogram(DISubprogram *SP);
 
-  /// \brief Get the attached subprogram.
+  /// Get the attached subprogram.
   ///
   /// Calls \a getMetadata() with \a LLVMContext::MD_dbg and casts the result
   /// to \a DISubprogram.
@@ -776,6 +781,12 @@
   /// Returns true if we should emit debug info for profiling.
   bool isDebugInfoForProfiling() const;
 
+  /// Check if null pointer dereferencing is considered undefined behavior for
+  /// the function.
+  /// Return value: false => null pointer dereference is undefined.
+  /// Return value: true =>  null pointer dereference is not undefined.
+  bool nullPointerIsDefined() const;
+
 private:
   void allocHungoffUselist();
   template<int Idx> void setHungoffOperand(Constant *C);
@@ -788,6 +799,13 @@
   void setValueSubclassDataBit(unsigned Bit, bool On);
 };
 
+/// Check whether null pointer dereferencing is considered undefined behavior
+/// for a given function or an address space.
+/// Null pointer access in non-zero address space is not considered undefined.
+/// Return value: false => null pointer dereference is undefined.
+/// Return value: true =>  null pointer dereference is not undefined.
+bool NullPointerIsDefined(const Function *F, unsigned AS = 0);
+
 template <>
 struct OperandTraits<Function> : public HungoffOperandTraits<3> {};
 
diff --git a/linux-x64/clang/include/llvm/IR/GlobalObject.h b/linux-x64/clang/include/llvm/IR/GlobalObject.h
index 278b193..1fd3568 100644
--- a/linux-x64/clang/include/llvm/IR/GlobalObject.h
+++ b/linux-x64/clang/include/llvm/IR/GlobalObject.h
@@ -105,6 +105,14 @@
   /// Check if this has any metadata.
   bool hasMetadata() const { return hasMetadataHashEntry(); }
 
+  /// Check if this has any metadata of the given kind.
+  bool hasMetadata(unsigned KindID) const {
+    return getMetadata(KindID) != nullptr;
+  }
+  bool hasMetadata(StringRef Kind) const {
+    return getMetadata(Kind) != nullptr;
+  }
+
   /// Get the current metadata attachments for the given kind, if any.
   ///
   /// These functions require that the function have at most a single attachment
@@ -143,7 +151,9 @@
   getAllMetadata(SmallVectorImpl<std::pair<unsigned, MDNode *>> &MDs) const;
 
   /// Erase all metadata attachments with the given kind.
-  void eraseMetadata(unsigned KindID);
+  ///
+  /// \returns true if any metadata was removed.
+  bool eraseMetadata(unsigned KindID);
 
   /// Copy metadata from Src, adjusting offsets by Offset.
   void copyMetadata(const GlobalObject *Src, unsigned Offset);
diff --git a/linux-x64/clang/include/llvm/IR/GlobalValue.h b/linux-x64/clang/include/llvm/IR/GlobalValue.h
index 35b0b69..9d9f4f6 100644
--- a/linux-x64/clang/include/llvm/IR/GlobalValue.h
+++ b/linux-x64/clang/include/llvm/IR/GlobalValue.h
@@ -44,7 +44,7 @@
 
 class GlobalValue : public Constant {
 public:
-  /// @brief An enumeration for the kinds of linkage for global values.
+  /// An enumeration for the kinds of linkage for global values.
   enum LinkageTypes {
     ExternalLinkage = 0,///< Externally visible function
     AvailableExternallyLinkage, ///< Available for inspection, not emission.
@@ -59,14 +59,14 @@
     CommonLinkage       ///< Tentative definitions.
   };
 
-  /// @brief An enumeration for the kinds of visibility of global values.
+  /// An enumeration for the kinds of visibility of global values.
   enum VisibilityTypes {
     DefaultVisibility = 0,  ///< The GV is visible
     HiddenVisibility,       ///< The GV is hidden
     ProtectedVisibility     ///< The GV is protected
   };
 
-  /// @brief Storage classes of global values for PE targets.
+  /// Storage classes of global values for PE targets.
   enum DLLStorageClassTypes {
     DefaultStorageClass   = 0,
     DLLImportStorageClass = 1, ///< Function to be imported from DLL
@@ -110,18 +110,12 @@
   unsigned IsDSOLocal : 1;
 
 private:
-  friend class Constant;
-
-  void maybeSetDsoLocal() {
-    if (hasLocalLinkage() ||
-        (!hasDefaultVisibility() && !hasExternalWeakLinkage()))
-      setDSOLocal(true);
-  }
-
   // Give subclasses access to what otherwise would be wasted padding.
   // (17 + 4 + 2 + 2 + 2 + 3 + 1 + 1) == 32.
   unsigned SubClassData : GlobalValueSubClassDataBits;
 
+  friend class Constant;
+
   void destroyConstantImpl();
   Value *handleOperandChangeImpl(Value *From, Value *To);
 
@@ -149,8 +143,14 @@
     llvm_unreachable("Fully covered switch above!");
   }
 
+  void maybeSetDsoLocal() {
+    if (hasLocalLinkage() ||
+        (!hasDefaultVisibility() && !hasExternalWeakLinkage()))
+      setDSOLocal(true);
+  }
+
 protected:
-  /// \brief The intrinsic ID for this subclass (which must be a Function).
+  /// The intrinsic ID for this subclass (which must be a Function).
   ///
   /// This member is defined by this class, but not used for anything.
   /// Subclasses can use it to store their intrinsic ID, if they have one.
diff --git a/linux-x64/clang/include/llvm/IR/IRBuilder.h b/linux-x64/clang/include/llvm/IR/IRBuilder.h
index e46544a..70641ba 100644
--- a/linux-x64/clang/include/llvm/IR/IRBuilder.h
+++ b/linux-x64/clang/include/llvm/IR/IRBuilder.h
@@ -54,7 +54,7 @@
 class MDNode;
 class Use;
 
-/// \brief This provides the default implementation of the IRBuilder
+/// This provides the default implementation of the IRBuilder
 /// 'InsertHelper' method that is called whenever an instruction is created by
 /// IRBuilder and needs to be inserted.
 ///
@@ -85,7 +85,7 @@
   }
 };
 
-/// \brief Common base class shared among various IRBuilders.
+/// Common base class shared among various IRBuilders.
 class IRBuilderBase {
   DebugLoc CurDbgLocation;
 
@@ -111,7 +111,7 @@
   // Builder configuration methods
   //===--------------------------------------------------------------------===//
 
-  /// \brief Clear the insertion point: created instructions will not be
+  /// Clear the insertion point: created instructions will not be
   /// inserted into a block.
   void ClearInsertionPoint() {
     BB = nullptr;
@@ -122,14 +122,14 @@
   BasicBlock::iterator GetInsertPoint() const { return InsertPt; }
   LLVMContext &getContext() const { return Context; }
 
-  /// \brief This specifies that created instructions should be appended to the
+  /// This specifies that created instructions should be appended to the
   /// end of the specified block.
   void SetInsertPoint(BasicBlock *TheBB) {
     BB = TheBB;
     InsertPt = BB->end();
   }
 
-  /// \brief This specifies that created instructions should be inserted before
+  /// This specifies that created instructions should be inserted before
   /// the specified instruction.
   void SetInsertPoint(Instruction *I) {
     BB = I->getParent();
@@ -138,7 +138,7 @@
     SetCurrentDebugLocation(I->getDebugLoc());
   }
 
-  /// \brief This specifies that created instructions should be inserted at the
+  /// This specifies that created instructions should be inserted at the
   /// specified point.
   void SetInsertPoint(BasicBlock *TheBB, BasicBlock::iterator IP) {
     BB = TheBB;
@@ -147,20 +147,20 @@
       SetCurrentDebugLocation(IP->getDebugLoc());
   }
 
-  /// \brief Set location information used by debugging information.
+  /// Set location information used by debugging information.
   void SetCurrentDebugLocation(DebugLoc L) { CurDbgLocation = std::move(L); }
 
-  /// \brief Get location information used by debugging information.
+  /// Get location information used by debugging information.
   const DebugLoc &getCurrentDebugLocation() const { return CurDbgLocation; }
 
-  /// \brief If this builder has a current debug location, set it on the
+  /// If this builder has a current debug location, set it on the
   /// specified instruction.
   void SetInstDebugLocation(Instruction *I) const {
     if (CurDbgLocation)
       I->setDebugLoc(CurDbgLocation);
   }
 
-  /// \brief Get the return type of the current function that we're emitting
+  /// Get the return type of the current function that we're emitting
   /// into.
   Type *getCurrentFunctionReturnType() const;
 
@@ -170,33 +170,33 @@
     BasicBlock::iterator Point;
 
   public:
-    /// \brief Creates a new insertion point which doesn't point to anything.
+    /// Creates a new insertion point which doesn't point to anything.
     InsertPoint() = default;
 
-    /// \brief Creates a new insertion point at the given location.
+    /// Creates a new insertion point at the given location.
     InsertPoint(BasicBlock *InsertBlock, BasicBlock::iterator InsertPoint)
         : Block(InsertBlock), Point(InsertPoint) {}
 
-    /// \brief Returns true if this insert point is set.
+    /// Returns true if this insert point is set.
     bool isSet() const { return (Block != nullptr); }
 
     BasicBlock *getBlock() const { return Block; }
     BasicBlock::iterator getPoint() const { return Point; }
   };
 
-  /// \brief Returns the current insert point.
+  /// Returns the current insert point.
   InsertPoint saveIP() const {
     return InsertPoint(GetInsertBlock(), GetInsertPoint());
   }
 
-  /// \brief Returns the current insert point, clearing it in the process.
+  /// Returns the current insert point, clearing it in the process.
   InsertPoint saveAndClearIP() {
     InsertPoint IP(GetInsertBlock(), GetInsertPoint());
     ClearInsertionPoint();
     return IP;
   }
 
-  /// \brief Sets the current insert point to a previously-saved location.
+  /// Sets the current insert point to a previously-saved location.
   void restoreIP(InsertPoint IP) {
     if (IP.isSet())
       SetInsertPoint(IP.getBlock(), IP.getPoint());
@@ -204,26 +204,26 @@
       ClearInsertionPoint();
   }
 
-  /// \brief Get the floating point math metadata being used.
+  /// Get the floating point math metadata being used.
   MDNode *getDefaultFPMathTag() const { return DefaultFPMathTag; }
 
-  /// \brief Get the flags to be applied to created floating point ops
+  /// Get the flags to be applied to created floating point ops
   FastMathFlags getFastMathFlags() const { return FMF; }
 
-  /// \brief Clear the fast-math flags.
+  /// Clear the fast-math flags.
   void clearFastMathFlags() { FMF.clear(); }
 
-  /// \brief Set the floating point math metadata to be used.
+  /// Set the floating point math metadata to be used.
   void setDefaultFPMathTag(MDNode *FPMathTag) { DefaultFPMathTag = FPMathTag; }
 
-  /// \brief Set the fast-math flags to be used with generated fp-math operators
+  /// Set the fast-math flags to be used with generated fp-math operators
   void setFastMathFlags(FastMathFlags NewFMF) { FMF = NewFMF; }
 
   //===--------------------------------------------------------------------===//
   // RAII helpers.
   //===--------------------------------------------------------------------===//
 
-  // \brief RAII object that stores the current insertion point and restores it
+  // RAII object that stores the current insertion point and restores it
   // when the object is destroyed. This includes the debug location.
   class InsertPointGuard {
     IRBuilderBase &Builder;
@@ -245,7 +245,7 @@
     }
   };
 
-  // \brief RAII object that stores the current fast math settings and restores
+  // RAII object that stores the current fast math settings and restores
   // them when the object is destroyed.
   class FastMathFlagGuard {
     IRBuilderBase &Builder;
@@ -269,7 +269,7 @@
   // Miscellaneous creation methods.
   //===--------------------------------------------------------------------===//
 
-  /// \brief Make a new global variable with initializer type i8*
+  /// Make a new global variable with initializer type i8*
   ///
   /// Make a new global variable with an initializer that has array of i8 type
   /// filled in with the null terminated string value specified.  The new global
@@ -278,48 +278,48 @@
   GlobalVariable *CreateGlobalString(StringRef Str, const Twine &Name = "",
                                      unsigned AddressSpace = 0);
 
-  /// \brief Get a constant value representing either true or false.
+  /// Get a constant value representing either true or false.
   ConstantInt *getInt1(bool V) {
     return ConstantInt::get(getInt1Ty(), V);
   }
 
-  /// \brief Get the constant value for i1 true.
+  /// Get the constant value for i1 true.
   ConstantInt *getTrue() {
     return ConstantInt::getTrue(Context);
   }
 
-  /// \brief Get the constant value for i1 false.
+  /// Get the constant value for i1 false.
   ConstantInt *getFalse() {
     return ConstantInt::getFalse(Context);
   }
 
-  /// \brief Get a constant 8-bit value.
+  /// Get a constant 8-bit value.
   ConstantInt *getInt8(uint8_t C) {
     return ConstantInt::get(getInt8Ty(), C);
   }
 
-  /// \brief Get a constant 16-bit value.
+  /// Get a constant 16-bit value.
   ConstantInt *getInt16(uint16_t C) {
     return ConstantInt::get(getInt16Ty(), C);
   }
 
-  /// \brief Get a constant 32-bit value.
+  /// Get a constant 32-bit value.
   ConstantInt *getInt32(uint32_t C) {
     return ConstantInt::get(getInt32Ty(), C);
   }
 
-  /// \brief Get a constant 64-bit value.
+  /// Get a constant 64-bit value.
   ConstantInt *getInt64(uint64_t C) {
     return ConstantInt::get(getInt64Ty(), C);
   }
 
-  /// \brief Get a constant N-bit value, zero extended or truncated from
+  /// Get a constant N-bit value, zero extended or truncated from
   /// a 64-bit value.
   ConstantInt *getIntN(unsigned N, uint64_t C) {
     return ConstantInt::get(getIntNTy(N), C);
   }
 
-  /// \brief Get a constant integer value.
+  /// Get a constant integer value.
   ConstantInt *getInt(const APInt &AI) {
     return ConstantInt::get(Context, AI);
   }
@@ -328,65 +328,65 @@
   // Type creation methods
   //===--------------------------------------------------------------------===//
 
-  /// \brief Fetch the type representing a single bit
+  /// Fetch the type representing a single bit
   IntegerType *getInt1Ty() {
     return Type::getInt1Ty(Context);
   }
 
-  /// \brief Fetch the type representing an 8-bit integer.
+  /// Fetch the type representing an 8-bit integer.
   IntegerType *getInt8Ty() {
     return Type::getInt8Ty(Context);
   }
 
-  /// \brief Fetch the type representing a 16-bit integer.
+  /// Fetch the type representing a 16-bit integer.
   IntegerType *getInt16Ty() {
     return Type::getInt16Ty(Context);
   }
 
-  /// \brief Fetch the type representing a 32-bit integer.
+  /// Fetch the type representing a 32-bit integer.
   IntegerType *getInt32Ty() {
     return Type::getInt32Ty(Context);
   }
 
-  /// \brief Fetch the type representing a 64-bit integer.
+  /// Fetch the type representing a 64-bit integer.
   IntegerType *getInt64Ty() {
     return Type::getInt64Ty(Context);
   }
 
-  /// \brief Fetch the type representing a 128-bit integer.
+  /// Fetch the type representing a 128-bit integer.
   IntegerType *getInt128Ty() { return Type::getInt128Ty(Context); }
 
-  /// \brief Fetch the type representing an N-bit integer.
+  /// Fetch the type representing an N-bit integer.
   IntegerType *getIntNTy(unsigned N) {
     return Type::getIntNTy(Context, N);
   }
 
-  /// \brief Fetch the type representing a 16-bit floating point value.
+  /// Fetch the type representing a 16-bit floating point value.
   Type *getHalfTy() {
     return Type::getHalfTy(Context);
   }
 
-  /// \brief Fetch the type representing a 32-bit floating point value.
+  /// Fetch the type representing a 32-bit floating point value.
   Type *getFloatTy() {
     return Type::getFloatTy(Context);
   }
 
-  /// \brief Fetch the type representing a 64-bit floating point value.
+  /// Fetch the type representing a 64-bit floating point value.
   Type *getDoubleTy() {
     return Type::getDoubleTy(Context);
   }
 
-  /// \brief Fetch the type representing void.
+  /// Fetch the type representing void.
   Type *getVoidTy() {
     return Type::getVoidTy(Context);
   }
 
-  /// \brief Fetch the type representing a pointer to an 8-bit integer value.
+  /// Fetch the type representing a pointer to an 8-bit integer value.
   PointerType *getInt8PtrTy(unsigned AddrSpace = 0) {
     return Type::getInt8PtrTy(Context, AddrSpace);
   }
 
-  /// \brief Fetch the type representing a pointer to an integer value.
+  /// Fetch the type representing a pointer to an integer value.
   IntegerType *getIntPtrTy(const DataLayout &DL, unsigned AddrSpace = 0) {
     return DL.getIntPtrType(Context, AddrSpace);
   }
@@ -395,7 +395,7 @@
   // Intrinsic creation methods
   //===--------------------------------------------------------------------===//
 
-  /// \brief Create and insert a memset to the specified pointer and the
+  /// Create and insert a memset to the specified pointer and the
   /// specified value.
   ///
   /// If the pointer isn't an i8*, it will be converted. If a TBAA tag is
@@ -414,7 +414,31 @@
                          MDNode *ScopeTag = nullptr,
                          MDNode *NoAliasTag = nullptr);
 
-  /// \brief Create and insert a memcpy between the specified pointers.
+  /// Create and insert an element unordered-atomic memset of the region of
+  /// memory starting at the given pointer to the given value.
+  ///
+  /// If the pointer isn't an i8*, it will be converted. If a TBAA tag is
+  /// specified, it will be added to the instruction. Likewise with alias.scope
+  /// and noalias tags.
+  CallInst *CreateElementUnorderedAtomicMemSet(Value *Ptr, Value *Val,
+                                               uint64_t Size, unsigned Align,
+                                               uint32_t ElementSize,
+                                               MDNode *TBAATag = nullptr,
+                                               MDNode *ScopeTag = nullptr,
+                                               MDNode *NoAliasTag = nullptr) {
+    return CreateElementUnorderedAtomicMemSet(Ptr, Val, getInt64(Size), Align,
+                                              ElementSize, TBAATag, ScopeTag,
+                                              NoAliasTag);
+  }
+
+  CallInst *CreateElementUnorderedAtomicMemSet(Value *Ptr, Value *Val,
+                                               Value *Size, unsigned Align,
+                                               uint32_t ElementSize,
+                                               MDNode *TBAATag = nullptr,
+                                               MDNode *ScopeTag = nullptr,
+                                               MDNode *NoAliasTag = nullptr);
+
+  /// Create and insert a memcpy between the specified pointers.
   ///
   /// If the pointers aren't i8*, they will be converted.  If a TBAA tag is
   /// specified, it will be added to the instruction. Likewise with alias.scope
@@ -437,7 +461,7 @@
                          MDNode *ScopeTag = nullptr,
                          MDNode *NoAliasTag = nullptr);
 
-  /// \brief Create and insert an element unordered-atomic memcpy between the
+  /// Create and insert an element unordered-atomic memcpy between the
   /// specified pointers.
   ///
   /// DstAlign/SrcAlign are the alignments of the Dst/Src pointers, respectively.
@@ -461,7 +485,7 @@
       MDNode *TBAAStructTag = nullptr, MDNode *ScopeTag = nullptr,
       MDNode *NoAliasTag = nullptr);
 
-  /// \brief Create and insert a memmove between the specified
+  /// Create and insert a memmove between the specified
   /// pointers.
   ///
   /// If the pointers aren't i8*, they will be converted.  If a TBAA tag is
@@ -480,51 +504,76 @@
                           MDNode *ScopeTag = nullptr,
                           MDNode *NoAliasTag = nullptr);
 
-  /// \brief Create a vector fadd reduction intrinsic of the source vector.
+  /// \brief Create and insert an element unordered-atomic memmove between the
+  /// specified pointers.
+  ///
+  /// DstAlign/SrcAlign are the alignments of the Dst/Src pointers,
+  /// respectively.
+  ///
+  /// If the pointers aren't i8*, they will be converted.  If a TBAA tag is
+  /// specified, it will be added to the instruction. Likewise with alias.scope
+  /// and noalias tags.
+  CallInst *CreateElementUnorderedAtomicMemMove(
+      Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign,
+      uint64_t Size, uint32_t ElementSize, MDNode *TBAATag = nullptr,
+      MDNode *TBAAStructTag = nullptr, MDNode *ScopeTag = nullptr,
+      MDNode *NoAliasTag = nullptr) {
+    return CreateElementUnorderedAtomicMemMove(
+        Dst, DstAlign, Src, SrcAlign, getInt64(Size), ElementSize, TBAATag,
+        TBAAStructTag, ScopeTag, NoAliasTag);
+  }
+
+  CallInst *CreateElementUnorderedAtomicMemMove(
+      Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, Value *Size,
+      uint32_t ElementSize, MDNode *TBAATag = nullptr,
+      MDNode *TBAAStructTag = nullptr, MDNode *ScopeTag = nullptr,
+      MDNode *NoAliasTag = nullptr);
+
+  /// Create a vector fadd reduction intrinsic of the source vector.
   /// The first parameter is a scalar accumulator value for ordered reductions.
   CallInst *CreateFAddReduce(Value *Acc, Value *Src);
 
-  /// \brief Create a vector fmul reduction intrinsic of the source vector.
+  /// Create a vector fmul reduction intrinsic of the source vector.
   /// The first parameter is a scalar accumulator value for ordered reductions.
   CallInst *CreateFMulReduce(Value *Acc, Value *Src);
 
-  /// \brief Create a vector int add reduction intrinsic of the source vector.
+  /// Create a vector int add reduction intrinsic of the source vector.
   CallInst *CreateAddReduce(Value *Src);
 
-  /// \brief Create a vector int mul reduction intrinsic of the source vector.
+  /// Create a vector int mul reduction intrinsic of the source vector.
   CallInst *CreateMulReduce(Value *Src);
 
-  /// \brief Create a vector int AND reduction intrinsic of the source vector.
+  /// Create a vector int AND reduction intrinsic of the source vector.
   CallInst *CreateAndReduce(Value *Src);
 
-  /// \brief Create a vector int OR reduction intrinsic of the source vector.
+  /// Create a vector int OR reduction intrinsic of the source vector.
   CallInst *CreateOrReduce(Value *Src);
 
-  /// \brief Create a vector int XOR reduction intrinsic of the source vector.
+  /// Create a vector int XOR reduction intrinsic of the source vector.
   CallInst *CreateXorReduce(Value *Src);
 
-  /// \brief Create a vector integer max reduction intrinsic of the source
+  /// Create a vector integer max reduction intrinsic of the source
   /// vector.
   CallInst *CreateIntMaxReduce(Value *Src, bool IsSigned = false);
 
-  /// \brief Create a vector integer min reduction intrinsic of the source
+  /// Create a vector integer min reduction intrinsic of the source
   /// vector.
   CallInst *CreateIntMinReduce(Value *Src, bool IsSigned = false);
 
-  /// \brief Create a vector float max reduction intrinsic of the source
+  /// Create a vector float max reduction intrinsic of the source
   /// vector.
   CallInst *CreateFPMaxReduce(Value *Src, bool NoNaN = false);
 
-  /// \brief Create a vector float min reduction intrinsic of the source
+  /// Create a vector float min reduction intrinsic of the source
   /// vector.
   CallInst *CreateFPMinReduce(Value *Src, bool NoNaN = false);
 
-  /// \brief Create a lifetime.start intrinsic.
+  /// Create a lifetime.start intrinsic.
   ///
   /// If the pointer isn't i8* it will be converted.
   CallInst *CreateLifetimeStart(Value *Ptr, ConstantInt *Size = nullptr);
 
-  /// \brief Create a lifetime.end intrinsic.
+  /// Create a lifetime.end intrinsic.
   ///
   /// If the pointer isn't i8* it will be converted.
   CallInst *CreateLifetimeEnd(Value *Ptr, ConstantInt *Size = nullptr);
@@ -534,29 +583,29 @@
   /// If the pointer isn't i8* it will be converted.
   CallInst *CreateInvariantStart(Value *Ptr, ConstantInt *Size = nullptr);
 
-  /// \brief Create a call to Masked Load intrinsic
+  /// Create a call to Masked Load intrinsic
   CallInst *CreateMaskedLoad(Value *Ptr, unsigned Align, Value *Mask,
                              Value *PassThru = nullptr, const Twine &Name = "");
 
-  /// \brief Create a call to Masked Store intrinsic
+  /// Create a call to Masked Store intrinsic
   CallInst *CreateMaskedStore(Value *Val, Value *Ptr, unsigned Align,
                               Value *Mask);
 
-  /// \brief Create a call to Masked Gather intrinsic
+  /// Create a call to Masked Gather intrinsic
   CallInst *CreateMaskedGather(Value *Ptrs, unsigned Align,
                                Value *Mask = nullptr,
                                Value *PassThru = nullptr,
                                const Twine& Name = "");
 
-  /// \brief Create a call to Masked Scatter intrinsic
+  /// Create a call to Masked Scatter intrinsic
   CallInst *CreateMaskedScatter(Value *Val, Value *Ptrs, unsigned Align,
                                 Value *Mask = nullptr);
 
-  /// \brief Create an assume intrinsic call that allows the optimizer to
+  /// Create an assume intrinsic call that allows the optimizer to
   /// assume that the provided condition will be true.
   CallInst *CreateAssumption(Value *Cond);
 
-  /// \brief Create a call to the experimental.gc.statepoint intrinsic to
+  /// Create a call to the experimental.gc.statepoint intrinsic to
   /// start a new statepoint sequence.
   CallInst *CreateGCStatepointCall(uint64_t ID, uint32_t NumPatchBytes,
                                    Value *ActualCallee,
@@ -565,7 +614,7 @@
                                    ArrayRef<Value *> GCArgs,
                                    const Twine &Name = "");
 
-  /// \brief Create a call to the experimental.gc.statepoint intrinsic to
+  /// Create a call to the experimental.gc.statepoint intrinsic to
   /// start a new statepoint sequence.
   CallInst *CreateGCStatepointCall(uint64_t ID, uint32_t NumPatchBytes,
                                    Value *ActualCallee, uint32_t Flags,
@@ -575,7 +624,7 @@
                                    ArrayRef<Value *> GCArgs,
                                    const Twine &Name = "");
 
-  /// \brief Conveninence function for the common case when CallArgs are filled
+  /// Conveninence function for the common case when CallArgs are filled
   /// in using makeArrayRef(CS.arg_begin(), CS.arg_end()); Use needs to be
   /// .get()'ed to get the Value pointer.
   CallInst *CreateGCStatepointCall(uint64_t ID, uint32_t NumPatchBytes,
@@ -584,7 +633,7 @@
                                    ArrayRef<Value *> GCArgs,
                                    const Twine &Name = "");
 
-  /// \brief Create an invoke to the experimental.gc.statepoint intrinsic to
+  /// Create an invoke to the experimental.gc.statepoint intrinsic to
   /// start a new statepoint sequence.
   InvokeInst *
   CreateGCStatepointInvoke(uint64_t ID, uint32_t NumPatchBytes,
@@ -593,7 +642,7 @@
                            ArrayRef<Value *> DeoptArgs,
                            ArrayRef<Value *> GCArgs, const Twine &Name = "");
 
-  /// \brief Create an invoke to the experimental.gc.statepoint intrinsic to
+  /// Create an invoke to the experimental.gc.statepoint intrinsic to
   /// start a new statepoint sequence.
   InvokeInst *CreateGCStatepointInvoke(
       uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee,
@@ -612,13 +661,13 @@
                            ArrayRef<Value *> DeoptArgs,
                            ArrayRef<Value *> GCArgs, const Twine &Name = "");
 
-  /// \brief Create a call to the experimental.gc.result intrinsic to extract
+  /// Create a call to the experimental.gc.result intrinsic to extract
   /// the result from a call wrapped in a statepoint.
   CallInst *CreateGCResult(Instruction *Statepoint,
                            Type *ResultType,
                            const Twine &Name = "");
 
-  /// \brief Create a call to the experimental.gc.relocate intrinsics to
+  /// Create a call to the experimental.gc.relocate intrinsics to
   /// project the relocated value of one pointer from the statepoint.
   CallInst *CreateGCRelocate(Instruction *Statepoint,
                              int BaseOffset,
@@ -632,6 +681,11 @@
                                   Value *LHS, Value *RHS,
                                   const Twine &Name = "");
 
+  /// Create a call to intrinsic \p ID with no operands.
+  CallInst *CreateIntrinsic(Intrinsic::ID ID,
+                            Instruction *FMFSource = nullptr,
+                            const Twine &Name = "");
+
   /// Create a call to intrinsic \p ID with 1 or more operands assuming the
   /// intrinsic and all operands have the same type. If \p FMFSource is
   /// provided, copy fast-math-flags from that instruction to the intrinsic.
@@ -650,7 +704,7 @@
   }
 
 private:
-  /// \brief Create a call to a masked intrinsic with given Id.
+  /// Create a call to a masked intrinsic with given Id.
   CallInst *CreateMaskedIntrinsic(Intrinsic::ID Id, ArrayRef<Value *> Ops,
                                   ArrayRef<Type *> OverloadedTypes,
                                   const Twine &Name = "");
@@ -658,7 +712,7 @@
   Value *getCastedInt8PtrValue(Value *Ptr);
 };
 
-/// \brief This provides a uniform API for creating instructions and inserting
+/// This provides a uniform API for creating instructions and inserting
 /// them into a basic block: either at the end of a BasicBlock, or at a specific
 /// iterator location in a block.
 ///
@@ -720,10 +774,10 @@
     SetInsertPoint(TheBB, IP);
   }
 
-  /// \brief Get the constant folder being used.
+  /// Get the constant folder being used.
   const T &getFolder() { return Folder; }
 
-  /// \brief Insert and return the specified instruction.
+  /// Insert and return the specified instruction.
   template<typename InstTy>
   InstTy *Insert(InstTy *I, const Twine &Name = "") const {
     this->InsertHelper(I, Name, BB, InsertPt);
@@ -731,7 +785,7 @@
     return I;
   }
 
-  /// \brief No-op overload to handle constants.
+  /// No-op overload to handle constants.
   Constant *Insert(Constant *C, const Twine& = "") const {
     return C;
   }
@@ -741,7 +795,7 @@
   //===--------------------------------------------------------------------===//
 
 private:
-  /// \brief Helper to add branch weight and unpredictable metadata onto an
+  /// Helper to add branch weight and unpredictable metadata onto an
   /// instruction.
   /// \returns The annotated instruction.
   template <typename InstTy>
@@ -754,17 +808,17 @@
   }
 
 public:
-  /// \brief Create a 'ret void' instruction.
+  /// Create a 'ret void' instruction.
   ReturnInst *CreateRetVoid() {
     return Insert(ReturnInst::Create(Context));
   }
 
-  /// \brief Create a 'ret <val>' instruction.
+  /// Create a 'ret <val>' instruction.
   ReturnInst *CreateRet(Value *V) {
     return Insert(ReturnInst::Create(Context, V));
   }
 
-  /// \brief Create a sequence of N insertvalue instructions,
+  /// Create a sequence of N insertvalue instructions,
   /// with one Value from the retVals array each, that build a aggregate
   /// return value one value at a time, and a ret instruction to return
   /// the resulting aggregate value.
@@ -778,12 +832,12 @@
     return Insert(ReturnInst::Create(Context, V));
   }
 
-  /// \brief Create an unconditional 'br label X' instruction.
+  /// Create an unconditional 'br label X' instruction.
   BranchInst *CreateBr(BasicBlock *Dest) {
     return Insert(BranchInst::Create(Dest));
   }
 
-  /// \brief Create a conditional 'br Cond, TrueDest, FalseDest'
+  /// Create a conditional 'br Cond, TrueDest, FalseDest'
   /// instruction.
   BranchInst *CreateCondBr(Value *Cond, BasicBlock *True, BasicBlock *False,
                            MDNode *BranchWeights = nullptr,
@@ -792,7 +846,7 @@
                                     BranchWeights, Unpredictable));
   }
 
-  /// \brief Create a conditional 'br Cond, TrueDest, FalseDest'
+  /// Create a conditional 'br Cond, TrueDest, FalseDest'
   /// instruction. Copy branch meta data if available.
   BranchInst *CreateCondBr(Value *Cond, BasicBlock *True, BasicBlock *False,
                            Instruction *MDSrc) {
@@ -805,7 +859,7 @@
     return Insert(Br);
   }
 
-  /// \brief Create a switch instruction with the specified value, default dest,
+  /// Create a switch instruction with the specified value, default dest,
   /// and with a hint for the number of cases that will be added (for efficient
   /// allocation).
   SwitchInst *CreateSwitch(Value *V, BasicBlock *Dest, unsigned NumCases = 10,
@@ -815,14 +869,14 @@
                                     BranchWeights, Unpredictable));
   }
 
-  /// \brief Create an indirect branch instruction with the specified address
+  /// Create an indirect branch instruction with the specified address
   /// operand, with an optional hint for the number of destinations that will be
   /// added (for efficient allocation).
   IndirectBrInst *CreateIndirectBr(Value *Addr, unsigned NumDests = 10) {
     return Insert(IndirectBrInst::Create(Addr, NumDests));
   }
 
-  /// \brief Create an invoke instruction.
+  /// Create an invoke instruction.
   InvokeInst *CreateInvoke(Value *Callee, BasicBlock *NormalDest,
                            BasicBlock *UnwindDest,
                            ArrayRef<Value *> Args = None,
@@ -1246,7 +1300,7 @@
     return Insert(new AllocaInst(Ty, DL.getAllocaAddrSpace(), ArraySize), Name);
   }
 
-  /// \brief Provided to resolve 'CreateLoad(Ptr, "...")' correctly, instead of
+  /// Provided to resolve 'CreateLoad(Ptr, "...")' correctly, instead of
   /// converting the string to 'bool' for the isVolatile parameter.
   LoadInst *CreateLoad(Value *Ptr, const char *Name) {
     return Insert(new LoadInst(Ptr), Name);
@@ -1268,7 +1322,7 @@
     return Insert(new StoreInst(Val, Ptr, isVolatile));
   }
 
-  /// \brief Provided to resolve 'CreateAlignedLoad(Ptr, Align, "...")'
+  /// Provided to resolve 'CreateAlignedLoad(Ptr, Align, "...")'
   /// correctly, instead of converting the string to 'bool' for the isVolatile
   /// parameter.
   LoadInst *CreateAlignedLoad(Value *Ptr, unsigned Align, const char *Name) {
@@ -1476,14 +1530,19 @@
     return CreateConstInBoundsGEP2_32(Ty, Ptr, 0, Idx, Name);
   }
 
-  /// \brief Same as CreateGlobalString, but return a pointer with "i8*" type
+  Value *CreateStructGEP(Value *Ptr, unsigned Idx, const Twine &Name = "") {
+    return CreateConstInBoundsGEP2_32(nullptr, Ptr, 0, Idx, Name);
+  }
+
+  /// Same as CreateGlobalString, but return a pointer with "i8*" type
   /// instead of a pointer to array of i8.
-  Value *CreateGlobalStringPtr(StringRef Str, const Twine &Name = "",
-                               unsigned AddressSpace = 0) {
-    GlobalVariable *gv = CreateGlobalString(Str, Name, AddressSpace);
-    Value *zero = ConstantInt::get(Type::getInt32Ty(Context), 0);
-    Value *Args[] = { zero, zero };
-    return CreateInBoundsGEP(gv->getValueType(), gv, Args, Name);
+  Constant *CreateGlobalStringPtr(StringRef Str, const Twine &Name = "",
+                                  unsigned AddressSpace = 0) {
+    GlobalVariable *GV = CreateGlobalString(Str, Name, AddressSpace);
+    Constant *Zero = ConstantInt::get(Type::getInt32Ty(Context), 0);
+    Constant *Indices[] = {Zero, Zero};
+    return ConstantExpr::getInBoundsGetElementPtr(GV->getValueType(), GV,
+                                                  Indices);
   }
 
   //===--------------------------------------------------------------------===//
@@ -1502,7 +1561,7 @@
     return CreateCast(Instruction::SExt, V, DestTy, Name);
   }
 
-  /// \brief Create a ZExt or Trunc from the integer value V to DestTy. Return
+  /// Create a ZExt or Trunc from the integer value V to DestTy. Return
   /// the value untouched if the type of V is already DestTy.
   Value *CreateZExtOrTrunc(Value *V, Type *DestTy,
                            const Twine &Name = "") {
@@ -1517,7 +1576,7 @@
     return V;
   }
 
-  /// \brief Create a SExt or Trunc from the integer value V to DestTy. Return
+  /// Create a SExt or Trunc from the integer value V to DestTy. Return
   /// the value untouched if the type of V is already DestTy.
   Value *CreateSExtOrTrunc(Value *V, Type *DestTy,
                            const Twine &Name = "") {
@@ -1665,7 +1724,7 @@
     return Insert(CastInst::CreateFPCast(V, DestTy), Name);
   }
 
-  // \brief Provided to resolve 'CreateIntCast(Ptr, Ptr, "...")', giving a
+  // Provided to resolve 'CreateIntCast(Ptr, Ptr, "...")', giving a
   // compile time error, instead of converting the string to bool for the
   // isSigned parameter.
   Value *CreateIntCast(Value *, Type *, const char *) = delete;
@@ -1927,19 +1986,19 @@
   // Utility creation methods
   //===--------------------------------------------------------------------===//
 
-  /// \brief Return an i1 value testing if \p Arg is null.
+  /// Return an i1 value testing if \p Arg is null.
   Value *CreateIsNull(Value *Arg, const Twine &Name = "") {
     return CreateICmpEQ(Arg, Constant::getNullValue(Arg->getType()),
                         Name);
   }
 
-  /// \brief Return an i1 value testing if \p Arg is not null.
+  /// Return an i1 value testing if \p Arg is not null.
   Value *CreateIsNotNull(Value *Arg, const Twine &Name = "") {
     return CreateICmpNE(Arg, Constant::getNullValue(Arg->getType()),
                         Name);
   }
 
-  /// \brief Return the i64 difference between two pointer values, dividing out
+  /// Return the i64 difference between two pointer values, dividing out
   /// the size of the pointed-to objects.
   ///
   /// This is intended to implement C-style pointer subtraction. As such, the
@@ -1957,35 +2016,62 @@
                            Name);
   }
 
-  /// \brief Create an invariant.group.barrier intrinsic call, that stops
-  /// optimizer to propagate equality using invariant.group metadata.
-  /// If Ptr type is different from pointer to i8, it's casted to pointer to i8
-  /// in the same address space before call and casted back to Ptr type after
-  /// call.
-  Value *CreateInvariantGroupBarrier(Value *Ptr) {
+  /// Create a launder.invariant.group intrinsic call. If Ptr type is
+  /// different from pointer to i8, it's casted to pointer to i8 in the same
+  /// address space before call and casted back to Ptr type after call.
+  Value *CreateLaunderInvariantGroup(Value *Ptr) {
     assert(isa<PointerType>(Ptr->getType()) &&
-           "invariant.group.barrier only applies to pointers.");
+           "launder.invariant.group only applies to pointers.");
+    // FIXME: we could potentially avoid casts to/from i8*.
     auto *PtrType = Ptr->getType();
     auto *Int8PtrTy = getInt8PtrTy(PtrType->getPointerAddressSpace());
     if (PtrType != Int8PtrTy)
       Ptr = CreateBitCast(Ptr, Int8PtrTy);
     Module *M = BB->getParent()->getParent();
-    Function *FnInvariantGroupBarrier = Intrinsic::getDeclaration(
-        M, Intrinsic::invariant_group_barrier, {Int8PtrTy});
+    Function *FnLaunderInvariantGroup = Intrinsic::getDeclaration(
+        M, Intrinsic::launder_invariant_group, {Int8PtrTy});
 
-    assert(FnInvariantGroupBarrier->getReturnType() == Int8PtrTy &&
-           FnInvariantGroupBarrier->getFunctionType()->getParamType(0) ==
+    assert(FnLaunderInvariantGroup->getReturnType() == Int8PtrTy &&
+           FnLaunderInvariantGroup->getFunctionType()->getParamType(0) ==
                Int8PtrTy &&
-           "InvariantGroupBarrier should take and return the same type");
+           "LaunderInvariantGroup should take and return the same type");
 
-    CallInst *Fn = CreateCall(FnInvariantGroupBarrier, {Ptr});
+    CallInst *Fn = CreateCall(FnLaunderInvariantGroup, {Ptr});
 
     if (PtrType != Int8PtrTy)
       return CreateBitCast(Fn, PtrType);
     return Fn;
   }
 
-  /// \brief Return a vector value that contains \arg V broadcasted to \p
+  /// \brief Create a strip.invariant.group intrinsic call. If Ptr type is
+  /// different from pointer to i8, it's casted to pointer to i8 in the same
+  /// address space before call and casted back to Ptr type after call.
+  Value *CreateStripInvariantGroup(Value *Ptr) {
+    assert(isa<PointerType>(Ptr->getType()) &&
+           "strip.invariant.group only applies to pointers.");
+
+    // FIXME: we could potentially avoid casts to/from i8*.
+    auto *PtrType = Ptr->getType();
+    auto *Int8PtrTy = getInt8PtrTy(PtrType->getPointerAddressSpace());
+    if (PtrType != Int8PtrTy)
+      Ptr = CreateBitCast(Ptr, Int8PtrTy);
+    Module *M = BB->getParent()->getParent();
+    Function *FnStripInvariantGroup = Intrinsic::getDeclaration(
+        M, Intrinsic::strip_invariant_group, {Int8PtrTy});
+
+    assert(FnStripInvariantGroup->getReturnType() == Int8PtrTy &&
+           FnStripInvariantGroup->getFunctionType()->getParamType(0) ==
+               Int8PtrTy &&
+           "StripInvariantGroup should take and return the same type");
+
+    CallInst *Fn = CreateCall(FnStripInvariantGroup, {Ptr});
+
+    if (PtrType != Int8PtrTy)
+      return CreateBitCast(Fn, PtrType);
+    return Fn;
+  }
+
+  /// Return a vector value that contains \arg V broadcasted to \p
   /// NumElts elements.
   Value *CreateVectorSplat(unsigned NumElts, Value *V, const Twine &Name = "") {
     assert(NumElts > 0 && "Cannot splat to an empty vector!");
@@ -2001,7 +2087,7 @@
     return CreateShuffleVector(V, Undef, Zeros, Name + ".splat");
   }
 
-  /// \brief Return a value that has been extracted from a larger integer type.
+  /// Return a value that has been extracted from a larger integer type.
   Value *CreateExtractInteger(const DataLayout &DL, Value *From,
                               IntegerType *ExtractedTy, uint64_t Offset,
                               const Twine &Name) {
@@ -2026,7 +2112,7 @@
   }
 
 private:
-  /// \brief Helper function that creates an assume intrinsic call that
+  /// Helper function that creates an assume intrinsic call that
   /// represents an alignment assumption on the provided Ptr, Mask, Type
   /// and Offset.
   CallInst *CreateAlignmentAssumptionHelper(const DataLayout &DL,
@@ -2055,7 +2141,7 @@
   }
 
 public:
-  /// \brief Create an assume intrinsic call that represents an alignment
+  /// Create an assume intrinsic call that represents an alignment
   /// assumption on the provided pointer.
   ///
   /// An optional offset can be provided, and if it is provided, the offset
@@ -2074,7 +2160,7 @@
                                            OffsetValue);
   }
 
-  /// \brief Create an assume intrinsic call that represents an alignment
+  /// Create an assume intrinsic call that represents an alignment
   /// assumption on the provided pointer.
   ///
   /// An optional offset can be provided, and if it is provided, the offset
diff --git a/linux-x64/clang/include/llvm/IR/IRPrintingPasses.h b/linux-x64/clang/include/llvm/IR/IRPrintingPasses.h
index 0825e06..e4ac5d4 100644
--- a/linux-x64/clang/include/llvm/IR/IRPrintingPasses.h
+++ b/linux-x64/clang/include/llvm/IR/IRPrintingPasses.h
@@ -23,6 +23,7 @@
 #include <string>
 
 namespace llvm {
+class Pass;
 class BasicBlockPass;
 class Function;
 class FunctionPass;
@@ -32,18 +33,18 @@
 class raw_ostream;
 template <typename IRUnitT, typename... ExtraArgTs> class AnalysisManager;
 
-/// \brief Create and return a pass that writes the module to the specified
+/// Create and return a pass that writes the module to the specified
 /// \c raw_ostream.
 ModulePass *createPrintModulePass(raw_ostream &OS,
                                   const std::string &Banner = "",
                                   bool ShouldPreserveUseListOrder = false);
 
-/// \brief Create and return a pass that prints functions to the specified
+/// Create and return a pass that prints functions to the specified
 /// \c raw_ostream as they are processed.
 FunctionPass *createPrintFunctionPass(raw_ostream &OS,
                                       const std::string &Banner = "");
 
-/// \brief Create and return a pass that writes the BB to the specified
+/// Create and return a pass that writes the BB to the specified
 /// \c raw_ostream.
 BasicBlockPass *createPrintBasicBlockPass(raw_ostream &OS,
                                           const std::string &Banner = "");
@@ -54,7 +55,10 @@
 /// non-printable characters in it.
 void printLLVMNameWithoutPrefix(raw_ostream &OS, StringRef Name);
 
-/// \brief Pass for printing a Module as LLVM's text IR assembly.
+/// Return true if a pass is for IR printing.
+bool isIRPrintingPass(Pass *P);
+
+/// Pass for printing a Module as LLVM's text IR assembly.
 ///
 /// Note: This pass is for use with the new pass manager. Use the create...Pass
 /// functions above to create passes for use with the legacy pass manager.
@@ -73,7 +77,7 @@
   static StringRef name() { return "PrintModulePass"; }
 };
 
-/// \brief Pass for printing a Function as LLVM's text IR assembly.
+/// Pass for printing a Function as LLVM's text IR assembly.
 ///
 /// Note: This pass is for use with the new pass manager. Use the create...Pass
 /// functions above to create passes for use with the legacy pass manager.
diff --git a/linux-x64/clang/include/llvm/IR/InstVisitor.h b/linux-x64/clang/include/llvm/IR/InstVisitor.h
index 5557981..55536f2 100644
--- a/linux-x64/clang/include/llvm/IR/InstVisitor.h
+++ b/linux-x64/clang/include/llvm/IR/InstVisitor.h
@@ -32,7 +32,7 @@
                visit##CLASS_TO_VISIT(static_cast<CLASS_TO_VISIT&>(I))
 
 
-/// @brief Base class for instruction visitors
+/// Base class for instruction visitors
 ///
 /// Instruction visitors are used when you want to perform different actions
 /// for different kinds of instructions without having to use lots of casts
@@ -211,9 +211,12 @@
   RetTy visitCatchPadInst(CatchPadInst &I)     { DELEGATE(FuncletPadInst); }
 
   // Handle the special instrinsic instruction classes.
-  RetTy visitDbgDeclareInst(DbgDeclareInst &I)    { DELEGATE(DbgInfoIntrinsic);}
-  RetTy visitDbgValueInst(DbgValueInst &I)        { DELEGATE(DbgInfoIntrinsic);}
-  RetTy visitDbgInfoIntrinsic(DbgInfoIntrinsic &I) { DELEGATE(IntrinsicInst); }
+  RetTy visitDbgDeclareInst(DbgDeclareInst &I)    { DELEGATE(DbgVariableIntrinsic);}
+  RetTy visitDbgValueInst(DbgValueInst &I)        { DELEGATE(DbgVariableIntrinsic);}
+  RetTy visitDbgVariableIntrinsic(DbgVariableIntrinsic &I)
+                                                  { DELEGATE(DbgInfoIntrinsic);}
+  RetTy visitDbgLabelInst(DbgLabelInst &I)        { DELEGATE(DbgInfoIntrinsic);}
+  RetTy visitDbgInfoIntrinsic(DbgInfoIntrinsic &I){ DELEGATE(IntrinsicInst); }
   RetTy visitMemSetInst(MemSetInst &I)            { DELEGATE(MemIntrinsic); }
   RetTy visitMemCpyInst(MemCpyInst &I)            { DELEGATE(MemTransferInst); }
   RetTy visitMemMoveInst(MemMoveInst &I)          { DELEGATE(MemTransferInst); }
@@ -272,6 +275,7 @@
       default:                     DELEGATE(IntrinsicInst);
       case Intrinsic::dbg_declare: DELEGATE(DbgDeclareInst);
       case Intrinsic::dbg_value:   DELEGATE(DbgValueInst);
+      case Intrinsic::dbg_label:   DELEGATE(DbgLabelInst);
       case Intrinsic::memcpy:      DELEGATE(MemCpyInst);
       case Intrinsic::memmove:     DELEGATE(MemMoveInst);
       case Intrinsic::memset:      DELEGATE(MemSetInst);
diff --git a/linux-x64/clang/include/llvm/IR/InstrTypes.h b/linux-x64/clang/include/llvm/IR/InstrTypes.h
index 0243c4c..ad00120 100644
--- a/linux-x64/clang/include/llvm/IR/InstrTypes.h
+++ b/linux-x64/clang/include/llvm/IR/InstrTypes.h
@@ -81,7 +81,7 @@
     return isa<Instruction>(V) && classof(cast<Instruction>(V));
   }
 
-  // \brief Returns true if this terminator relates to exception handling.
+  // Returns true if this terminator relates to exception handling.
   bool isExceptional() const {
     switch (getOpcode()) {
     case Instruction::CatchSwitch:
@@ -118,7 +118,7 @@
       return idx < TermInst->getNumSuccessors();
     }
 
-    /// \brief Proxy object to allow write access in operator[]
+    /// Proxy object to allow write access in operator[]
     class SuccessorProxy {
       Self it;
 
@@ -588,16 +588,16 @@
 /// can be performed with code like:
 ///
 /// if (isa<CastInst>(Instr)) { ... }
-/// @brief Base class of casting instructions.
+/// Base class of casting instructions.
 class CastInst : public UnaryInstruction {
 protected:
-  /// @brief Constructor with insert-before-instruction semantics for subclasses
+  /// Constructor with insert-before-instruction semantics for subclasses
   CastInst(Type *Ty, unsigned iType, Value *S,
            const Twine &NameStr = "", Instruction *InsertBefore = nullptr)
     : UnaryInstruction(Ty, iType, S, InsertBefore) {
     setName(NameStr);
   }
-  /// @brief Constructor with insert-at-end-of-block semantics for subclasses
+  /// Constructor with insert-at-end-of-block semantics for subclasses
   CastInst(Type *Ty, unsigned iType, Value *S,
            const Twine &NameStr, BasicBlock *InsertAtEnd)
     : UnaryInstruction(Ty, iType, S, InsertAtEnd) {
@@ -610,7 +610,7 @@
   /// CastOps category (Instruction::isCast(opcode) returns true). This
   /// constructor has insert-before-instruction semantics to automatically
   /// insert the new CastInst before InsertBefore (if it is non-null).
-  /// @brief Construct any of the CastInst subclasses
+  /// Construct any of the CastInst subclasses
   static CastInst *Create(
     Instruction::CastOps,    ///< The opcode of the cast instruction
     Value *S,                ///< The value to be casted (operand 0)
@@ -623,7 +623,7 @@
   /// CastOps category. This constructor has insert-at-end-of-block semantics
   /// to automatically insert the new CastInst at the end of InsertAtEnd (if
   /// its non-null).
-  /// @brief Construct any of the CastInst subclasses
+  /// Construct any of the CastInst subclasses
   static CastInst *Create(
     Instruction::CastOps,    ///< The opcode for the cast instruction
     Value *S,                ///< The value to be casted (operand 0)
@@ -632,7 +632,7 @@
     BasicBlock *InsertAtEnd  ///< The block to insert the instruction into
   );
 
-  /// @brief Create a ZExt or BitCast cast instruction
+  /// Create a ZExt or BitCast cast instruction
   static CastInst *CreateZExtOrBitCast(
     Value *S,                ///< The value to be casted (operand 0)
     Type *Ty,          ///< The type to which cast should be made
@@ -640,7 +640,7 @@
     Instruction *InsertBefore = nullptr ///< Place to insert the instruction
   );
 
-  /// @brief Create a ZExt or BitCast cast instruction
+  /// Create a ZExt or BitCast cast instruction
   static CastInst *CreateZExtOrBitCast(
     Value *S,                ///< The value to be casted (operand 0)
     Type *Ty,          ///< The type to which operand is casted
@@ -648,7 +648,7 @@
     BasicBlock *InsertAtEnd  ///< The block to insert the instruction into
   );
 
-  /// @brief Create a SExt or BitCast cast instruction
+  /// Create a SExt or BitCast cast instruction
   static CastInst *CreateSExtOrBitCast(
     Value *S,                ///< The value to be casted (operand 0)
     Type *Ty,          ///< The type to which cast should be made
@@ -656,7 +656,7 @@
     Instruction *InsertBefore = nullptr ///< Place to insert the instruction
   );
 
-  /// @brief Create a SExt or BitCast cast instruction
+  /// Create a SExt or BitCast cast instruction
   static CastInst *CreateSExtOrBitCast(
     Value *S,                ///< The value to be casted (operand 0)
     Type *Ty,          ///< The type to which operand is casted
@@ -664,7 +664,7 @@
     BasicBlock *InsertAtEnd  ///< The block to insert the instruction into
   );
 
-  /// @brief Create a BitCast AddrSpaceCast, or a PtrToInt cast instruction.
+  /// Create a BitCast AddrSpaceCast, or a PtrToInt cast instruction.
   static CastInst *CreatePointerCast(
     Value *S,                ///< The pointer value to be casted (operand 0)
     Type *Ty,          ///< The type to which operand is casted
@@ -672,7 +672,7 @@
     BasicBlock *InsertAtEnd  ///< The block to insert the instruction into
   );
 
-  /// @brief Create a BitCast, AddrSpaceCast or a PtrToInt cast instruction.
+  /// Create a BitCast, AddrSpaceCast or a PtrToInt cast instruction.
   static CastInst *CreatePointerCast(
     Value *S,                ///< The pointer value to be casted (operand 0)
     Type *Ty,          ///< The type to which cast should be made
@@ -680,7 +680,7 @@
     Instruction *InsertBefore = nullptr ///< Place to insert the instruction
   );
 
-  /// @brief Create a BitCast or an AddrSpaceCast cast instruction.
+  /// Create a BitCast or an AddrSpaceCast cast instruction.
   static CastInst *CreatePointerBitCastOrAddrSpaceCast(
     Value *S,                ///< The pointer value to be casted (operand 0)
     Type *Ty,          ///< The type to which operand is casted
@@ -688,7 +688,7 @@
     BasicBlock *InsertAtEnd  ///< The block to insert the instruction into
   );
 
-  /// @brief Create a BitCast or an AddrSpaceCast cast instruction.
+  /// Create a BitCast or an AddrSpaceCast cast instruction.
   static CastInst *CreatePointerBitCastOrAddrSpaceCast(
     Value *S,                ///< The pointer value to be casted (operand 0)
     Type *Ty,          ///< The type to which cast should be made
@@ -696,7 +696,7 @@
     Instruction *InsertBefore = nullptr ///< Place to insert the instruction
   );
 
-  /// @brief Create a BitCast, a PtrToInt, or an IntToPTr cast instruction.
+  /// Create a BitCast, a PtrToInt, or an IntToPTr cast instruction.
   ///
   /// If the value is a pointer type and the destination an integer type,
   /// creates a PtrToInt cast. If the value is an integer type and the
@@ -709,7 +709,7 @@
     Instruction *InsertBefore = nullptr ///< Place to insert the instruction
   );
 
-  /// @brief Create a ZExt, BitCast, or Trunc for int -> int casts.
+  /// Create a ZExt, BitCast, or Trunc for int -> int casts.
   static CastInst *CreateIntegerCast(
     Value *S,                ///< The pointer value to be casted (operand 0)
     Type *Ty,          ///< The type to which cast should be made
@@ -718,7 +718,7 @@
     Instruction *InsertBefore = nullptr ///< Place to insert the instruction
   );
 
-  /// @brief Create a ZExt, BitCast, or Trunc for int -> int casts.
+  /// Create a ZExt, BitCast, or Trunc for int -> int casts.
   static CastInst *CreateIntegerCast(
     Value *S,                ///< The integer value to be casted (operand 0)
     Type *Ty,          ///< The integer type to which operand is casted
@@ -727,7 +727,7 @@
     BasicBlock *InsertAtEnd  ///< The block to insert the instruction into
   );
 
-  /// @brief Create an FPExt, BitCast, or FPTrunc for fp -> fp casts
+  /// Create an FPExt, BitCast, or FPTrunc for fp -> fp casts
   static CastInst *CreateFPCast(
     Value *S,                ///< The floating point value to be casted
     Type *Ty,          ///< The floating point type to cast to
@@ -735,7 +735,7 @@
     Instruction *InsertBefore = nullptr ///< Place to insert the instruction
   );
 
-  /// @brief Create an FPExt, BitCast, or FPTrunc for fp -> fp casts
+  /// Create an FPExt, BitCast, or FPTrunc for fp -> fp casts
   static CastInst *CreateFPCast(
     Value *S,                ///< The floating point value to be casted
     Type *Ty,          ///< The floating point type to cast to
@@ -743,7 +743,7 @@
     BasicBlock *InsertAtEnd  ///< The block to insert the instruction into
   );
 
-  /// @brief Create a Trunc or BitCast cast instruction
+  /// Create a Trunc or BitCast cast instruction
   static CastInst *CreateTruncOrBitCast(
     Value *S,                ///< The value to be casted (operand 0)
     Type *Ty,          ///< The type to which cast should be made
@@ -751,7 +751,7 @@
     Instruction *InsertBefore = nullptr ///< Place to insert the instruction
   );
 
-  /// @brief Create a Trunc or BitCast cast instruction
+  /// Create a Trunc or BitCast cast instruction
   static CastInst *CreateTruncOrBitCast(
     Value *S,                ///< The value to be casted (operand 0)
     Type *Ty,          ///< The type to which operand is casted
@@ -759,19 +759,19 @@
     BasicBlock *InsertAtEnd  ///< The block to insert the instruction into
   );
 
-  /// @brief Check whether it is valid to call getCastOpcode for these types.
+  /// Check whether it is valid to call getCastOpcode for these types.
   static bool isCastable(
     Type *SrcTy, ///< The Type from which the value should be cast.
     Type *DestTy ///< The Type to which the value should be cast.
   );
 
-  /// @brief Check whether a bitcast between these types is valid
+  /// Check whether a bitcast between these types is valid
   static bool isBitCastable(
     Type *SrcTy, ///< The Type from which the value should be cast.
     Type *DestTy ///< The Type to which the value should be cast.
   );
 
-  /// @brief Check whether a bitcast, inttoptr, or ptrtoint cast between these
+  /// Check whether a bitcast, inttoptr, or ptrtoint cast between these
   /// types is valid and a no-op.
   ///
   /// This ensures that any pointer<->integer cast has enough bits in the
@@ -783,7 +783,7 @@
 
   /// Returns the opcode necessary to cast Val into Ty using usual casting
   /// rules.
-  /// @brief Infer the opcode for cast operand and type
+  /// Infer the opcode for cast operand and type
   static Instruction::CastOps getCastOpcode(
     const Value *Val, ///< The value to cast
     bool SrcIsSigned, ///< Whether to treat the source as signed
@@ -795,14 +795,14 @@
   /// only deals with integer source and destination types. To simplify that
   /// logic, this method is provided.
   /// @returns true iff the cast has only integral typed operand and dest type.
-  /// @brief Determine if this is an integer-only cast.
+  /// Determine if this is an integer-only cast.
   bool isIntegerCast() const;
 
   /// A lossless cast is one that does not alter the basic value. It implies
   /// a no-op cast but is more stringent, preventing things like int->float,
   /// long->double, or int->ptr.
   /// @returns true iff the cast is lossless.
-  /// @brief Determine if this is a lossless cast.
+  /// Determine if this is a lossless cast.
   bool isLosslessCast() const;
 
   /// A no-op cast is one that can be effected without changing any bits.
@@ -811,7 +811,7 @@
   /// involving Integer and Pointer types. They are no-op casts if the integer
   /// is the same size as the pointer. However, pointer size varies with
   /// platform.
-  /// @brief Determine if the described cast is a no-op cast.
+  /// Determine if the described cast is a no-op cast.
   static bool isNoopCast(
     Instruction::CastOps Opcode, ///< Opcode of cast
     Type *SrcTy,         ///< SrcTy of cast
@@ -819,7 +819,7 @@
     const DataLayout &DL ///< DataLayout to get the Int Ptr type from.
   );
 
-  /// @brief Determine if this cast is a no-op cast.
+  /// Determine if this cast is a no-op cast.
   ///
   /// \param DL is the DataLayout to determine pointer size.
   bool isNoopCast(const DataLayout &DL) const;
@@ -829,7 +829,7 @@
   /// @returns 0 if the CastInst pair can't be eliminated, otherwise
   /// returns Instruction::CastOps value for a cast that can replace
   /// the pair, casting SrcTy to DstTy.
-  /// @brief Determine if a cast pair is eliminable
+  /// Determine if a cast pair is eliminable
   static unsigned isEliminableCastPair(
     Instruction::CastOps firstOpcode,  ///< Opcode of first cast
     Instruction::CastOps secondOpcode, ///< Opcode of second cast
@@ -841,23 +841,23 @@
     Type *DstIntPtrTy  ///< Integer type corresponding to Ptr DstTy, or null
   );
 
-  /// @brief Return the opcode of this CastInst
+  /// Return the opcode of this CastInst
   Instruction::CastOps getOpcode() const {
     return Instruction::CastOps(Instruction::getOpcode());
   }
 
-  /// @brief Return the source type, as a convenience
+  /// Return the source type, as a convenience
   Type* getSrcTy() const { return getOperand(0)->getType(); }
-  /// @brief Return the destination type, as a convenience
+  /// Return the destination type, as a convenience
   Type* getDestTy() const { return getType(); }
 
   /// This method can be used to determine if a cast from S to DstTy using
   /// Opcode op is valid or not.
   /// @returns true iff the proposed cast is valid.
-  /// @brief Determine if a cast is valid without creating one.
+  /// Determine if a cast is valid without creating one.
   static bool castIsValid(Instruction::CastOps op, Value *S, Type *DstTy);
 
-  /// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
+  /// Methods for support type inquiry through isa, cast, and dyn_cast:
   static bool classof(const Instruction *I) {
     return I->isCast();
   }
@@ -871,7 +871,7 @@
 //===----------------------------------------------------------------------===//
 
 /// This class is the base class for the comparison instructions.
-/// @brief Abstract base class of comparison instructions.
+/// Abstract base class of comparison instructions.
 class CmpInst : public Instruction {
 public:
   /// This enumeration lists the possible predicates for CmpInst subclasses.
@@ -937,7 +937,7 @@
   /// the two operands.  Optionally (if InstBefore is specified) insert the
   /// instruction into a BasicBlock right before the specified instruction.
   /// The specified Instruction is allowed to be a dereferenced end iterator.
-  /// @brief Create a CmpInst
+  /// Create a CmpInst
   static CmpInst *Create(OtherOps Op,
                          Predicate predicate, Value *S1,
                          Value *S2, const Twine &Name = "",
@@ -946,21 +946,21 @@
   /// Construct a compare instruction, given the opcode, the predicate and the
   /// two operands.  Also automatically insert this instruction to the end of
   /// the BasicBlock specified.
-  /// @brief Create a CmpInst
+  /// Create a CmpInst
   static CmpInst *Create(OtherOps Op, Predicate predicate, Value *S1,
                          Value *S2, const Twine &Name, BasicBlock *InsertAtEnd);
 
-  /// @brief Get the opcode casted to the right type
+  /// Get the opcode casted to the right type
   OtherOps getOpcode() const {
     return static_cast<OtherOps>(Instruction::getOpcode());
   }
 
-  /// @brief Return the predicate for this instruction.
+  /// Return the predicate for this instruction.
   Predicate getPredicate() const {
     return Predicate(getSubclassDataFromInstruction());
   }
 
-  /// @brief Set the predicate for this instruction to the specified value.
+  /// Set the predicate for this instruction to the specified value.
   void setPredicate(Predicate P) { setInstructionSubclassData(P); }
 
   static bool isFPPredicate(Predicate P) {
@@ -979,7 +979,7 @@
   /// For example, EQ -> NE, UGT -> ULE, SLT -> SGE,
   ///              OEQ -> UNE, UGT -> OLE, OLT -> UGE, etc.
   /// @returns the inverse predicate for the instruction's current predicate.
-  /// @brief Return the inverse of the instruction's predicate.
+  /// Return the inverse of the instruction's predicate.
   Predicate getInversePredicate() const {
     return getInversePredicate(getPredicate());
   }
@@ -987,7 +987,7 @@
   /// For example, EQ -> NE, UGT -> ULE, SLT -> SGE,
   ///              OEQ -> UNE, UGT -> OLE, OLT -> UGE, etc.
   /// @returns the inverse predicate for predicate provided in \p pred.
-  /// @brief Return the inverse of a given predicate
+  /// Return the inverse of a given predicate
   static Predicate getInversePredicate(Predicate pred);
 
   /// For example, EQ->EQ, SLE->SGE, ULT->UGT,
@@ -995,14 +995,14 @@
   /// @returns the predicate that would be the result of exchanging the two
   /// operands of the CmpInst instruction without changing the result
   /// produced.
-  /// @brief Return the predicate as if the operands were swapped
+  /// Return the predicate as if the operands were swapped
   Predicate getSwappedPredicate() const {
     return getSwappedPredicate(getPredicate());
   }
 
   /// This is a static version that you can use without an instruction
   /// available.
-  /// @brief Return the predicate as if the operands were swapped.
+  /// Return the predicate as if the operands were swapped.
   static Predicate getSwappedPredicate(Predicate pred);
 
   /// For predicate of kind "is X or equal to 0" returns the predicate "is X".
@@ -1010,18 +1010,18 @@
   /// does not support other kind of predicates.
   /// @returns the predicate that does not contains is equal to zero if
   /// it had and vice versa.
-  /// @brief Return the flipped strictness of predicate
+  /// Return the flipped strictness of predicate
   Predicate getFlippedStrictnessPredicate() const {
     return getFlippedStrictnessPredicate(getPredicate());
   }
 
   /// This is a static version that you can use without an instruction
   /// available.
-  /// @brief Return the flipped strictness of predicate
+  /// Return the flipped strictness of predicate
   static Predicate getFlippedStrictnessPredicate(Predicate pred);
 
   /// For example, SGT -> SGE, SLT -> SLE, ULT -> ULE, UGT -> UGE.
-  /// @brief Returns the non-strict version of strict comparisons.
+  /// Returns the non-strict version of strict comparisons.
   Predicate getNonStrictPredicate() const {
     return getNonStrictPredicate(getPredicate());
   }
@@ -1030,74 +1030,74 @@
   /// available.
   /// @returns the non-strict version of comparison provided in \p pred.
   /// If \p pred is not a strict comparison predicate, returns \p pred.
-  /// @brief Returns the non-strict version of strict comparisons.
+  /// Returns the non-strict version of strict comparisons.
   static Predicate getNonStrictPredicate(Predicate pred);
 
-  /// @brief Provide more efficient getOperand methods.
+  /// Provide more efficient getOperand methods.
   DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
 
   /// This is just a convenience that dispatches to the subclasses.
-  /// @brief Swap the operands and adjust predicate accordingly to retain
+  /// Swap the operands and adjust predicate accordingly to retain
   /// the same comparison.
   void swapOperands();
 
   /// This is just a convenience that dispatches to the subclasses.
-  /// @brief Determine if this CmpInst is commutative.
+  /// Determine if this CmpInst is commutative.
   bool isCommutative() const;
 
   /// This is just a convenience that dispatches to the subclasses.
-  /// @brief Determine if this is an equals/not equals predicate.
+  /// Determine if this is an equals/not equals predicate.
   bool isEquality() const;
 
   /// @returns true if the comparison is signed, false otherwise.
-  /// @brief Determine if this instruction is using a signed comparison.
+  /// Determine if this instruction is using a signed comparison.
   bool isSigned() const {
     return isSigned(getPredicate());
   }
 
   /// @returns true if the comparison is unsigned, false otherwise.
-  /// @brief Determine if this instruction is using an unsigned comparison.
+  /// Determine if this instruction is using an unsigned comparison.
   bool isUnsigned() const {
     return isUnsigned(getPredicate());
   }
 
   /// For example, ULT->SLT, ULE->SLE, UGT->SGT, UGE->SGE, SLT->Failed assert
   /// @returns the signed version of the unsigned predicate pred.
-  /// @brief return the signed version of a predicate
+  /// return the signed version of a predicate
   static Predicate getSignedPredicate(Predicate pred);
 
   /// For example, ULT->SLT, ULE->SLE, UGT->SGT, UGE->SGE, SLT->Failed assert
   /// @returns the signed version of the predicate for this instruction (which
   /// has to be an unsigned predicate).
-  /// @brief return the signed version of a predicate
+  /// return the signed version of a predicate
   Predicate getSignedPredicate() {
     return getSignedPredicate(getPredicate());
   }
 
   /// This is just a convenience.
-  /// @brief Determine if this is true when both operands are the same.
+  /// Determine if this is true when both operands are the same.
   bool isTrueWhenEqual() const {
     return isTrueWhenEqual(getPredicate());
   }
 
   /// This is just a convenience.
-  /// @brief Determine if this is false when both operands are the same.
+  /// Determine if this is false when both operands are the same.
   bool isFalseWhenEqual() const {
     return isFalseWhenEqual(getPredicate());
   }
 
   /// @returns true if the predicate is unsigned, false otherwise.
-  /// @brief Determine if the predicate is an unsigned operation.
+  /// Determine if the predicate is an unsigned operation.
   static bool isUnsigned(Predicate predicate);
 
   /// @returns true if the predicate is signed, false otherwise.
-  /// @brief Determine if the predicate is an signed operation.
+  /// Determine if the predicate is an signed operation.
   static bool isSigned(Predicate predicate);
 
-  /// @brief Determine if the predicate is an ordered operation.
+  /// Determine if the predicate is an ordered operation.
   static bool isOrdered(Predicate predicate);
 
-  /// @brief Determine if the predicate is an unordered operation.
+  /// Determine if the predicate is an unordered operation.
   static bool isUnordered(Predicate predicate);
 
   /// Determine if the predicate is true when comparing a value with itself.
@@ -1114,7 +1114,7 @@
   /// operands.
   static bool isImpliedFalseByMatchingCmp(Predicate Pred1, Predicate Pred2);
 
-  /// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
+  /// Methods for support type inquiry through isa, cast, and dyn_cast:
   static bool classof(const Instruction *I) {
     return I->getOpcode() == Instruction::ICmp ||
            I->getOpcode() == Instruction::FCmp;
@@ -1123,7 +1123,7 @@
     return isa<Instruction>(V) && classof(cast<Instruction>(V));
   }
 
-  /// @brief Create a result type for fcmp/icmp
+  /// Create a result type for fcmp/icmp
   static Type* makeCmpResultType(Type* opnd_type) {
     if (VectorType* vt = dyn_cast<VectorType>(opnd_type)) {
       return VectorType::get(Type::getInt1Ty(opnd_type->getContext()),
@@ -1181,7 +1181,7 @@
 
   /// Convenience accessors
 
-  /// \brief Return the outer EH-pad this funclet is nested within.
+  /// Return the outer EH-pad this funclet is nested within.
   ///
   /// Note: This returns the associated CatchSwitchInst if this FuncletPadInst
   /// is a CatchPadInst.
@@ -1217,7 +1217,7 @@
 
 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(FuncletPadInst, Value)
 
-/// \brief A lightweight accessor for an operand bundle meant to be passed
+/// A lightweight accessor for an operand bundle meant to be passed
 /// around by value.
 struct OperandBundleUse {
   ArrayRef<Use> Inputs;
@@ -1226,7 +1226,7 @@
   explicit OperandBundleUse(StringMapEntry<uint32_t> *Tag, ArrayRef<Use> Inputs)
       : Inputs(Inputs), Tag(Tag) {}
 
-  /// \brief Return true if the operand at index \p Idx in this operand bundle
+  /// Return true if the operand at index \p Idx in this operand bundle
   /// has the attribute A.
   bool operandHasAttr(unsigned Idx, Attribute::AttrKind A) const {
     if (isDeoptOperandBundle())
@@ -1237,12 +1237,12 @@
     return false;
   }
 
-  /// \brief Return the tag of this operand bundle as a string.
+  /// Return the tag of this operand bundle as a string.
   StringRef getTagName() const {
     return Tag->getKey();
   }
 
-  /// \brief Return the tag of this operand bundle as an integer.
+  /// Return the tag of this operand bundle as an integer.
   ///
   /// Operand bundle tags are interned by LLVMContextImpl::getOrInsertBundleTag,
   /// and this function returns the unique integer getOrInsertBundleTag
@@ -1251,22 +1251,22 @@
     return Tag->getValue();
   }
 
-  /// \brief Return true if this is a "deopt" operand bundle.
+  /// Return true if this is a "deopt" operand bundle.
   bool isDeoptOperandBundle() const {
     return getTagID() == LLVMContext::OB_deopt;
   }
 
-  /// \brief Return true if this is a "funclet" operand bundle.
+  /// Return true if this is a "funclet" operand bundle.
   bool isFuncletOperandBundle() const {
     return getTagID() == LLVMContext::OB_funclet;
   }
 
 private:
-  /// \brief Pointer to an entry in LLVMContextImpl::getOrInsertBundleTag.
+  /// Pointer to an entry in LLVMContextImpl::getOrInsertBundleTag.
   StringMapEntry<uint32_t> *Tag;
 };
 
-/// \brief A container for an operand bundle being viewed as a set of values
+/// A container for an operand bundle being viewed as a set of values
 /// rather than a set of uses.
 ///
 /// Unlike OperandBundleUse, OperandBundleDefT owns the memory it carries, and
@@ -1301,7 +1301,7 @@
 using OperandBundleDef = OperandBundleDefT<Value *>;
 using ConstOperandBundleDef = OperandBundleDefT<const Value *>;
 
-/// \brief A mixin to add operand bundle functionality to llvm instruction
+/// A mixin to add operand bundle functionality to llvm instruction
 /// classes.
 ///
 /// OperandBundleUser uses the descriptor area co-allocated with the host User
@@ -1349,21 +1349,21 @@
 /// Currently operand bundle users with hung-off operands are not supported.
 template <typename InstrTy, typename OpIteratorTy> class OperandBundleUser {
 public:
-  /// \brief Return the number of operand bundles associated with this User.
+  /// Return the number of operand bundles associated with this User.
   unsigned getNumOperandBundles() const {
     return std::distance(bundle_op_info_begin(), bundle_op_info_end());
   }
 
-  /// \brief Return true if this User has any operand bundles.
+  /// Return true if this User has any operand bundles.
   bool hasOperandBundles() const { return getNumOperandBundles() != 0; }
 
-  /// \brief Return the index of the first bundle operand in the Use array.
+  /// Return the index of the first bundle operand in the Use array.
   unsigned getBundleOperandsStartIndex() const {
     assert(hasOperandBundles() && "Don't call otherwise!");
     return bundle_op_info_begin()->Begin;
   }
 
-  /// \brief Return the index of the last bundle operand in the Use array.
+  /// Return the index of the last bundle operand in the Use array.
   unsigned getBundleOperandsEndIndex() const {
     assert(hasOperandBundles() && "Don't call otherwise!");
     return bundle_op_info_end()[-1].End;
@@ -1375,7 +1375,7 @@
            Idx < getBundleOperandsEndIndex();
   }
 
-  /// \brief Return the total number operands (not operand bundles) used by
+  /// Return the total number operands (not operand bundles) used by
   /// every operand bundle in this OperandBundleUser.
   unsigned getNumTotalBundleOperands() const {
     if (!hasOperandBundles())
@@ -1388,13 +1388,13 @@
     return End - Begin;
   }
 
-  /// \brief Return the operand bundle at a specific index.
+  /// Return the operand bundle at a specific index.
   OperandBundleUse getOperandBundleAt(unsigned Index) const {
     assert(Index < getNumOperandBundles() && "Index out of bounds!");
     return operandBundleFromBundleOpInfo(*(bundle_op_info_begin() + Index));
   }
 
-  /// \brief Return the number of operand bundles with the tag Name attached to
+  /// Return the number of operand bundles with the tag Name attached to
   /// this instruction.
   unsigned countOperandBundlesOfType(StringRef Name) const {
     unsigned Count = 0;
@@ -1405,7 +1405,7 @@
     return Count;
   }
 
-  /// \brief Return the number of operand bundles with the tag ID attached to
+  /// Return the number of operand bundles with the tag ID attached to
   /// this instruction.
   unsigned countOperandBundlesOfType(uint32_t ID) const {
     unsigned Count = 0;
@@ -1416,7 +1416,7 @@
     return Count;
   }
 
-  /// \brief Return an operand bundle by name, if present.
+  /// Return an operand bundle by name, if present.
   ///
   /// It is an error to call this for operand bundle types that may have
   /// multiple instances of them on the same instruction.
@@ -1432,7 +1432,7 @@
     return None;
   }
 
-  /// \brief Return an operand bundle by tag ID, if present.
+  /// Return an operand bundle by tag ID, if present.
   ///
   /// It is an error to call this for operand bundle types that may have
   /// multiple instances of them on the same instruction.
@@ -1448,7 +1448,7 @@
     return None;
   }
 
-  /// \brief Return the list of operand bundles attached to this instruction as
+  /// Return the list of operand bundles attached to this instruction as
   /// a vector of OperandBundleDefs.
   ///
   /// This function copies the OperandBundeUse instances associated with this
@@ -1460,7 +1460,7 @@
       Defs.emplace_back(getOperandBundleAt(i));
   }
 
-  /// \brief Return the operand bundle for the operand at index OpIdx.
+  /// Return the operand bundle for the operand at index OpIdx.
   ///
   /// It is an error to call this with an OpIdx that does not correspond to an
   /// bundle operand.
@@ -1468,7 +1468,7 @@
     return operandBundleFromBundleOpInfo(getBundleOpInfoForOperand(OpIdx));
   }
 
-  /// \brief Return true if this operand bundle user has operand bundles that
+  /// Return true if this operand bundle user has operand bundles that
   /// may read from the heap.
   bool hasReadingOperandBundles() const {
     // Implementation note: this is a conservative implementation of operand
@@ -1477,7 +1477,7 @@
     return hasOperandBundles();
   }
 
-  /// \brief Return true if this operand bundle user has operand bundles that
+  /// Return true if this operand bundle user has operand bundles that
   /// may write to the heap.
   bool hasClobberingOperandBundles() const {
     for (auto &BOI : bundle_op_infos()) {
@@ -1493,7 +1493,7 @@
     return false;
   }
 
-  /// \brief Return true if the bundle operand at index \p OpIdx has the
+  /// Return true if the bundle operand at index \p OpIdx has the
   /// attribute \p A.
   bool bundleOperandHasAttr(unsigned OpIdx,  Attribute::AttrKind A) const {
     auto &BOI = getBundleOpInfoForOperand(OpIdx);
@@ -1501,7 +1501,7 @@
     return OBU.operandHasAttr(OpIdx - BOI.Begin, A);
   }
 
-  /// \brief Return true if \p Other has the same sequence of operand bundle
+  /// Return true if \p Other has the same sequence of operand bundle
   /// tags with the same number of operands on each one of them as this
   /// OperandBundleUser.
   bool hasIdenticalOperandBundleSchema(
@@ -1513,7 +1513,7 @@
                       Other.bundle_op_info_begin());
   }
 
-  /// \brief Return true if this operand bundle user contains operand bundles
+  /// Return true if this operand bundle user contains operand bundles
   /// with tags other than those specified in \p IDs.
   bool hasOperandBundlesOtherThan(ArrayRef<uint32_t> IDs) const {
     for (unsigned i = 0, e = getNumOperandBundles(); i != e; ++i) {
@@ -1525,7 +1525,7 @@
   }
 
 protected:
-  /// \brief Is the function attribute S disallowed by some operand bundle on
+  /// Is the function attribute S disallowed by some operand bundle on
   /// this operand bundle user?
   bool isFnAttrDisallowedByOpBundle(StringRef S) const {
     // Operand bundles only possibly disallow readnone, readonly and argmenonly
@@ -1533,7 +1533,7 @@
     return false;
   }
 
-  /// \brief Is the function attribute A disallowed by some operand bundle on
+  /// Is the function attribute A disallowed by some operand bundle on
   /// this operand bundle user?
   bool isFnAttrDisallowedByOpBundle(Attribute::AttrKind A) const {
     switch (A) {
@@ -1559,18 +1559,18 @@
     llvm_unreachable("switch has a default case!");
   }
 
-  /// \brief Used to keep track of an operand bundle.  See the main comment on
+  /// Used to keep track of an operand bundle.  See the main comment on
   /// OperandBundleUser above.
   struct BundleOpInfo {
-    /// \brief The operand bundle tag, interned by
+    /// The operand bundle tag, interned by
     /// LLVMContextImpl::getOrInsertBundleTag.
     StringMapEntry<uint32_t> *Tag;
 
-    /// \brief The index in the Use& vector where operands for this operand
+    /// The index in the Use& vector where operands for this operand
     /// bundle starts.
     uint32_t Begin;
 
-    /// \brief The index in the Use& vector where operands for this operand
+    /// The index in the Use& vector where operands for this operand
     /// bundle ends.
     uint32_t End;
 
@@ -1579,7 +1579,7 @@
     }
   };
 
-  /// \brief Simple helper function to map a BundleOpInfo to an
+  /// Simple helper function to map a BundleOpInfo to an
   /// OperandBundleUse.
   OperandBundleUse
   operandBundleFromBundleOpInfo(const BundleOpInfo &BOI) const {
@@ -1591,7 +1591,7 @@
   using bundle_op_iterator = BundleOpInfo *;
   using const_bundle_op_iterator = const BundleOpInfo *;
 
-  /// \brief Return the start of the list of BundleOpInfo instances associated
+  /// Return the start of the list of BundleOpInfo instances associated
   /// with this OperandBundleUser.
   bundle_op_iterator bundle_op_info_begin() {
     if (!static_cast<InstrTy *>(this)->hasDescriptor())
@@ -1601,7 +1601,7 @@
     return reinterpret_cast<bundle_op_iterator>(BytesBegin);
   }
 
-  /// \brief Return the start of the list of BundleOpInfo instances associated
+  /// Return the start of the list of BundleOpInfo instances associated
   /// with this OperandBundleUser.
   const_bundle_op_iterator bundle_op_info_begin() const {
     auto *NonConstThis =
@@ -1609,7 +1609,7 @@
     return NonConstThis->bundle_op_info_begin();
   }
 
-  /// \brief Return the end of the list of BundleOpInfo instances associated
+  /// Return the end of the list of BundleOpInfo instances associated
   /// with this OperandBundleUser.
   bundle_op_iterator bundle_op_info_end() {
     if (!static_cast<InstrTy *>(this)->hasDescriptor())
@@ -1619,7 +1619,7 @@
     return reinterpret_cast<bundle_op_iterator>(BytesEnd);
   }
 
-  /// \brief Return the end of the list of BundleOpInfo instances associated
+  /// Return the end of the list of BundleOpInfo instances associated
   /// with this OperandBundleUser.
   const_bundle_op_iterator bundle_op_info_end() const {
     auto *NonConstThis =
@@ -1627,17 +1627,17 @@
     return NonConstThis->bundle_op_info_end();
   }
 
-  /// \brief Return the range [\p bundle_op_info_begin, \p bundle_op_info_end).
+  /// Return the range [\p bundle_op_info_begin, \p bundle_op_info_end).
   iterator_range<bundle_op_iterator> bundle_op_infos() {
     return make_range(bundle_op_info_begin(), bundle_op_info_end());
   }
 
-  /// \brief Return the range [\p bundle_op_info_begin, \p bundle_op_info_end).
+  /// Return the range [\p bundle_op_info_begin, \p bundle_op_info_end).
   iterator_range<const_bundle_op_iterator> bundle_op_infos() const {
     return make_range(bundle_op_info_begin(), bundle_op_info_end());
   }
 
-  /// \brief Populate the BundleOpInfo instances and the Use& vector from \p
+  /// Populate the BundleOpInfo instances and the Use& vector from \p
   /// Bundles.  Return the op_iterator pointing to the Use& one past the last
   /// last bundle operand use.
   ///
@@ -1668,7 +1668,7 @@
     return It;
   }
 
-  /// \brief Return the BundleOpInfo for the operand at index OpIdx.
+  /// Return the BundleOpInfo for the operand at index OpIdx.
   ///
   /// It is an error to call this with an OpIdx that does not correspond to an
   /// bundle operand.
@@ -1680,7 +1680,7 @@
     llvm_unreachable("Did not find operand bundle for operand!");
   }
 
-  /// \brief Return the total number of values used in \p Bundles.
+  /// Return the total number of values used in \p Bundles.
   static unsigned CountBundleInputs(ArrayRef<OperandBundleDef> Bundles) {
     unsigned Total = 0;
     for (auto &B : Bundles)
diff --git a/linux-x64/clang/include/llvm/IR/Instruction.h b/linux-x64/clang/include/llvm/IR/Instruction.h
index 76bc401..643c2a0 100644
--- a/linux-x64/clang/include/llvm/IR/Instruction.h
+++ b/linux-x64/clang/include/llvm/IR/Instruction.h
@@ -128,6 +128,7 @@
   const char *getOpcodeName() const { return getOpcodeName(getOpcode()); }
   bool isTerminator() const { return isTerminator(getOpcode()); }
   bool isBinaryOp() const { return isBinaryOp(getOpcode()); }
+  bool isIntDivRem() const { return isIntDivRem(getOpcode()); }
   bool isShift() { return isShift(getOpcode()); }
   bool isCast() const { return isCast(getOpcode()); }
   bool isFuncletPad() const { return isFuncletPad(getOpcode()); }
@@ -142,6 +143,10 @@
     return Opcode >= BinaryOpsBegin && Opcode < BinaryOpsEnd;
   }
 
+  static inline bool isIntDivRem(unsigned Opcode) {
+    return Opcode == UDiv || Opcode == SDiv || Opcode == URem || Opcode == SRem;
+  }
+
   /// Determine if the Opcode is one of the shift instructions.
   static inline bool isShift(unsigned Opcode) {
     return Opcode >= Shl && Opcode <= AShr;
@@ -284,7 +289,7 @@
   /// Return the debug location for this node as a DebugLoc.
   const DebugLoc &getDebugLoc() const { return DbgLoc; }
 
-  /// Set or clear the nsw flag on this instruction, which must be an operator
+  /// Set or clear the nuw flag on this instruction, which must be an operator
   /// which supports this flag. See LangRef.html for the meaning of this flag.
   void setHasNoUnsignedWrap(bool b = true);
 
@@ -542,7 +547,7 @@
   /// may have side effects cannot be removed without semantically changing the
   /// generated program.
   bool isSafeToRemove() const;
-  
+
   /// Return true if the instruction is a variety of EH-block.
   bool isEHPad() const {
     switch (getOpcode()) {
@@ -556,6 +561,14 @@
     }
   }
 
+  /// Return a pointer to the next non-debug instruction in the same basic
+  /// block as 'this', or nullptr if no such instruction exists.
+  const Instruction *getNextNonDebugInstruction() const;
+  Instruction *getNextNonDebugInstruction() {
+    return const_cast<Instruction *>(
+        static_cast<const Instruction *>(this)->getNextNonDebugInstruction());
+  }
+
   /// Create a copy of 'this' instruction that is identical in all ways except
   /// the following:
   ///   * The instruction has no parent
@@ -590,7 +603,7 @@
   /// be identical.
   /// @returns true if the specified instruction is the same operation as
   /// the current one.
-  /// @brief Determine if one instruction is the same operation as another.
+  /// Determine if one instruction is the same operation as another.
   bool isSameOperationAs(const Instruction *I, unsigned flags = 0) const;
 
   /// Return true if there are any uses of this instruction in blocks other than
diff --git a/linux-x64/clang/include/llvm/IR/Instructions.h b/linux-x64/clang/include/llvm/IR/Instructions.h
index 6c15d5d..9be8bd1 100644
--- a/linux-x64/clang/include/llvm/IR/Instructions.h
+++ b/linux-x64/clang/include/llvm/IR/Instructions.h
@@ -98,6 +98,10 @@
     return cast<PointerType>(Instruction::getType());
   }
 
+  /// Get allocation size in bits. Returns None if size can't be determined,
+  /// e.g. in case of a VLA.
+  Optional<uint64_t> getAllocationSizeInBits(const DataLayout &DL) const;
+
   /// Return the type that is being allocated by the instruction.
   Type *getAllocatedType() const { return AllocatedType; }
   /// for use only in special circumstances that need to generically
@@ -1719,7 +1723,7 @@
     return Attrs.getDereferenceableOrNullBytes(i);
   }
 
-  /// @brief Determine if the return value is marked with NoAlias attribute.
+  /// Determine if the return value is marked with NoAlias attribute.
   bool returnDoesNotAlias() const {
     return Attrs.hasAttribute(AttributeList::ReturnIndex, Attribute::NoAlias);
   }
@@ -1763,7 +1767,7 @@
     addAttribute(AttributeList::FunctionIndex, Attribute::WriteOnly);
   }
 
-  /// @brief Determine if the call can access memmory only using pointers based
+  /// Determine if the call can access memmory only using pointers based
   /// on its arguments.
   bool onlyAccessesArgMemory() const {
     return hasFnAttr(Attribute::ArgMemOnly);
@@ -1772,7 +1776,7 @@
     addAttribute(AttributeList::FunctionIndex, Attribute::ArgMemOnly);
   }
 
-  /// @brief Determine if the function may only access memory that is
+  /// Determine if the function may only access memory that is
   /// inaccessible from the IR.
   bool onlyAccessesInaccessibleMemory() const {
     return hasFnAttr(Attribute::InaccessibleMemOnly);
@@ -1781,7 +1785,7 @@
     addAttribute(AttributeList::FunctionIndex, Attribute::InaccessibleMemOnly);
   }
 
-  /// @brief Determine if the function may only access memory that is
+  /// Determine if the function may only access memory that is
   /// either inaccessible from the IR or pointed to by its arguments.
   bool onlyAccessesInaccessibleMemOrArgMem() const {
     return hasFnAttr(Attribute::InaccessibleMemOrArgMemOnly);
@@ -2426,7 +2430,7 @@
 
   /// Return the shuffle mask value for the specified element of the mask.
   /// Return -1 if the element is undef.
-  static int getMaskValue(Constant *Mask, unsigned Elt);
+  static int getMaskValue(const Constant *Mask, unsigned Elt);
 
   /// Return the shuffle mask value of this instruction for the given element
   /// index. Return -1 if the element is undef.
@@ -2436,7 +2440,8 @@
 
   /// Convert the input shuffle mask operand to a vector of integers. Undefined
   /// elements of the mask are returned as -1.
-  static void getShuffleMask(Constant *Mask, SmallVectorImpl<int> &Result);
+  static void getShuffleMask(const Constant *Mask,
+                             SmallVectorImpl<int> &Result);
 
   /// Return the mask for this instruction as a vector of integers. Undefined
   /// elements of the mask are returned as -1.
@@ -2450,6 +2455,176 @@
     return Mask;
   }
 
+  /// Return true if this shuffle returns a vector with a different number of
+  /// elements than its source elements.
+  /// Example: shufflevector <4 x n> A, <4 x n> B, <1,2>
+  bool changesLength() const {
+    unsigned NumSourceElts = Op<0>()->getType()->getVectorNumElements();
+    unsigned NumMaskElts = getMask()->getType()->getVectorNumElements();
+    return NumSourceElts != NumMaskElts;
+  }
+
+  /// Return true if this shuffle mask chooses elements from exactly one source
+  /// vector.
+  /// Example: <7,5,undef,7>
+  /// This assumes that vector operands are the same length as the mask.
+  static bool isSingleSourceMask(ArrayRef<int> Mask);
+  static bool isSingleSourceMask(const Constant *Mask) {
+    assert(Mask->getType()->isVectorTy() && "Shuffle needs vector constant.");
+    SmallVector<int, 16> MaskAsInts;
+    getShuffleMask(Mask, MaskAsInts);
+    return isSingleSourceMask(MaskAsInts);
+  }
+
+  /// Return true if this shuffle chooses elements from exactly one source
+  /// vector without changing the length of that vector.
+  /// Example: shufflevector <4 x n> A, <4 x n> B, <3,0,undef,3>
+  /// TODO: Optionally allow length-changing shuffles.
+  bool isSingleSource() const {
+    return !changesLength() && isSingleSourceMask(getMask());
+  }
+
+  /// Return true if this shuffle mask chooses elements from exactly one source
+  /// vector without lane crossings. A shuffle using this mask is not
+  /// necessarily a no-op because it may change the number of elements from its
+  /// input vectors or it may provide demanded bits knowledge via undef lanes.
+  /// Example: <undef,undef,2,3>
+  static bool isIdentityMask(ArrayRef<int> Mask);
+  static bool isIdentityMask(const Constant *Mask) {
+    assert(Mask->getType()->isVectorTy() && "Shuffle needs vector constant.");
+    SmallVector<int, 16> MaskAsInts;
+    getShuffleMask(Mask, MaskAsInts);
+    return isIdentityMask(MaskAsInts);
+  }
+
+  /// Return true if this shuffle mask chooses elements from exactly one source
+  /// vector without lane crossings and does not change the number of elements
+  /// from its input vectors.
+  /// Example: shufflevector <4 x n> A, <4 x n> B, <4,undef,6,undef>
+  /// TODO: Optionally allow length-changing shuffles.
+  bool isIdentity() const {
+    return !changesLength() && isIdentityMask(getShuffleMask());
+  }
+
+  /// Return true if this shuffle mask chooses elements from its source vectors
+  /// without lane crossings. A shuffle using this mask would be
+  /// equivalent to a vector select with a constant condition operand.
+  /// Example: <4,1,6,undef>
+  /// This returns false if the mask does not choose from both input vectors.
+  /// In that case, the shuffle is better classified as an identity shuffle.
+  /// This assumes that vector operands are the same length as the mask
+  /// (a length-changing shuffle can never be equivalent to a vector select).
+  static bool isSelectMask(ArrayRef<int> Mask);
+  static bool isSelectMask(const Constant *Mask) {
+    assert(Mask->getType()->isVectorTy() && "Shuffle needs vector constant.");
+    SmallVector<int, 16> MaskAsInts;
+    getShuffleMask(Mask, MaskAsInts);
+    return isSelectMask(MaskAsInts);
+  }
+
+  /// Return true if this shuffle chooses elements from its source vectors
+  /// without lane crossings and all operands have the same number of elements.
+  /// In other words, this shuffle is equivalent to a vector select with a
+  /// constant condition operand.
+  /// Example: shufflevector <4 x n> A, <4 x n> B, <undef,1,6,3>
+  /// This returns false if the mask does not choose from both input vectors.
+  /// In that case, the shuffle is better classified as an identity shuffle.
+  /// TODO: Optionally allow length-changing shuffles.
+  bool isSelect() const {
+    return !changesLength() && isSelectMask(getMask());
+  }
+
+  /// Return true if this shuffle mask swaps the order of elements from exactly
+  /// one source vector.
+  /// Example: <7,6,undef,4>
+  /// This assumes that vector operands are the same length as the mask.
+  static bool isReverseMask(ArrayRef<int> Mask);
+  static bool isReverseMask(const Constant *Mask) {
+    assert(Mask->getType()->isVectorTy() && "Shuffle needs vector constant.");
+    SmallVector<int, 16> MaskAsInts;
+    getShuffleMask(Mask, MaskAsInts);
+    return isReverseMask(MaskAsInts);
+  }
+
+  /// Return true if this shuffle swaps the order of elements from exactly
+  /// one source vector.
+  /// Example: shufflevector <4 x n> A, <4 x n> B, <3,undef,1,undef>
+  /// TODO: Optionally allow length-changing shuffles.
+  bool isReverse() const {
+    return !changesLength() && isReverseMask(getMask());
+  }
+
+  /// Return true if this shuffle mask chooses all elements with the same value
+  /// as the first element of exactly one source vector.
+  /// Example: <4,undef,undef,4>
+  /// This assumes that vector operands are the same length as the mask.
+  static bool isZeroEltSplatMask(ArrayRef<int> Mask);
+  static bool isZeroEltSplatMask(const Constant *Mask) {
+    assert(Mask->getType()->isVectorTy() && "Shuffle needs vector constant.");
+    SmallVector<int, 16> MaskAsInts;
+    getShuffleMask(Mask, MaskAsInts);
+    return isZeroEltSplatMask(MaskAsInts);
+  }
+
+  /// Return true if all elements of this shuffle are the same value as the
+  /// first element of exactly one source vector without changing the length
+  /// of that vector.
+  /// Example: shufflevector <4 x n> A, <4 x n> B, <undef,0,undef,0>
+  /// TODO: Optionally allow length-changing shuffles.
+  /// TODO: Optionally allow splats from other elements.
+  bool isZeroEltSplat() const {
+    return !changesLength() && isZeroEltSplatMask(getMask());
+  }
+
+  /// Return true if this shuffle mask is a transpose mask.
+  /// Transpose vector masks transpose a 2xn matrix. They read corresponding
+  /// even- or odd-numbered vector elements from two n-dimensional source
+  /// vectors and write each result into consecutive elements of an
+  /// n-dimensional destination vector. Two shuffles are necessary to complete
+  /// the transpose, one for the even elements and another for the odd elements.
+  /// This description closely follows how the TRN1 and TRN2 AArch64
+  /// instructions operate.
+  ///
+  /// For example, a simple 2x2 matrix can be transposed with:
+  ///
+  ///   ; Original matrix
+  ///   m0 = < a, b >
+  ///   m1 = < c, d >
+  ///
+  ///   ; Transposed matrix
+  ///   t0 = < a, c > = shufflevector m0, m1, < 0, 2 >
+  ///   t1 = < b, d > = shufflevector m0, m1, < 1, 3 >
+  ///
+  /// For matrices having greater than n columns, the resulting nx2 transposed
+  /// matrix is stored in two result vectors such that one vector contains
+  /// interleaved elements from all the even-numbered rows and the other vector
+  /// contains interleaved elements from all the odd-numbered rows. For example,
+  /// a 2x4 matrix can be transposed with:
+  ///
+  ///   ; Original matrix
+  ///   m0 = < a, b, c, d >
+  ///   m1 = < e, f, g, h >
+  ///
+  ///   ; Transposed matrix
+  ///   t0 = < a, e, c, g > = shufflevector m0, m1 < 0, 4, 2, 6 >
+  ///   t1 = < b, f, d, h > = shufflevector m0, m1 < 1, 5, 3, 7 >
+  static bool isTransposeMask(ArrayRef<int> Mask);
+  static bool isTransposeMask(const Constant *Mask) {
+    assert(Mask->getType()->isVectorTy() && "Shuffle needs vector constant.");
+    SmallVector<int, 16> MaskAsInts;
+    getShuffleMask(Mask, MaskAsInts);
+    return isTransposeMask(MaskAsInts);
+  }
+
+  /// Return true if this shuffle transposes the elements of its inputs without
+  /// changing the length of the vectors. This operation may also be known as a
+  /// merge or interleave. See the description for isTransposeMask() for the
+  /// exact specification.
+  /// Example: shufflevector <4 x n> A, <4 x n> B, <0,4,2,6>
+  bool isTranspose() const {
+    return !changesLength() && isTransposeMask(getMask());
+  }
+
   /// Change values in a shuffle permute mask assuming the two vector operands
   /// of length InVecNumElts have swapped position.
   static void commuteShuffleMask(MutableArrayRef<int> Mask,
@@ -3841,7 +4016,7 @@
   void setDoesNotThrow() {
     addAttribute(AttributeList::FunctionIndex, Attribute::NoUnwind);
   }
-  
+
   /// Return the function called, or null if this is an
   /// indirect function invocation.
   ///
diff --git a/linux-x64/clang/include/llvm/IR/IntrinsicEnums.inc b/linux-x64/clang/include/llvm/IR/IntrinsicEnums.inc
new file mode 100644
index 0000000..89c9e6a
--- /dev/null
+++ b/linux-x64/clang/include/llvm/IR/IntrinsicEnums.inc
@@ -0,0 +1,6738 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Intrinsic Function Source Fragment                                         *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+// VisualStudio defines setjmp as _setjmp
+#if defined(_MSC_VER) && defined(setjmp) && \
+                         !defined(setjmp_undefined_for_msvc)
+#  pragma push_macro("setjmp")
+#  undef setjmp
+#  define setjmp_undefined_for_msvc
+#endif
+
+// Enum values for Intrinsics.h
+#ifdef GET_INTRINSIC_ENUM_VALUES
+    addressofreturnaddress,                    // llvm.addressofreturnaddress
+    adjust_trampoline,                         // llvm.adjust.trampoline
+    annotation,                                // llvm.annotation
+    assume,                                    // llvm.assume
+    bitreverse,                                // llvm.bitreverse
+    bswap,                                     // llvm.bswap
+    canonicalize,                              // llvm.canonicalize
+    ceil,                                      // llvm.ceil
+    clear_cache,                               // llvm.clear_cache
+    codeview_annotation,                       // llvm.codeview.annotation
+    convert_from_fp16,                         // llvm.convert.from.fp16
+    convert_to_fp16,                           // llvm.convert.to.fp16
+    copysign,                                  // llvm.copysign
+    coro_alloc,                                // llvm.coro.alloc
+    coro_begin,                                // llvm.coro.begin
+    coro_destroy,                              // llvm.coro.destroy
+    coro_done,                                 // llvm.coro.done
+    coro_end,                                  // llvm.coro.end
+    coro_frame,                                // llvm.coro.frame
+    coro_free,                                 // llvm.coro.free
+    coro_id,                                   // llvm.coro.id
+    coro_noop,                                 // llvm.coro.noop
+    coro_param,                                // llvm.coro.param
+    coro_promise,                              // llvm.coro.promise
+    coro_resume,                               // llvm.coro.resume
+    coro_save,                                 // llvm.coro.save
+    coro_size,                                 // llvm.coro.size
+    coro_subfn_addr,                           // llvm.coro.subfn.addr
+    coro_suspend,                              // llvm.coro.suspend
+    cos,                                       // llvm.cos
+    ctlz,                                      // llvm.ctlz
+    ctpop,                                     // llvm.ctpop
+    cttz,                                      // llvm.cttz
+    dbg_addr,                                  // llvm.dbg.addr
+    dbg_declare,                               // llvm.dbg.declare
+    dbg_label,                                 // llvm.dbg.label
+    dbg_value,                                 // llvm.dbg.value
+    debugtrap,                                 // llvm.debugtrap
+    donothing,                                 // llvm.donothing
+    eh_dwarf_cfa,                              // llvm.eh.dwarf.cfa
+    eh_exceptioncode,                          // llvm.eh.exceptioncode
+    eh_exceptionpointer,                       // llvm.eh.exceptionpointer
+    eh_return_i32,                             // llvm.eh.return.i32
+    eh_return_i64,                             // llvm.eh.return.i64
+    eh_sjlj_callsite,                          // llvm.eh.sjlj.callsite
+    eh_sjlj_functioncontext,                   // llvm.eh.sjlj.functioncontext
+    eh_sjlj_longjmp,                           // llvm.eh.sjlj.longjmp
+    eh_sjlj_lsda,                              // llvm.eh.sjlj.lsda
+    eh_sjlj_setjmp,                            // llvm.eh.sjlj.setjmp
+    eh_sjlj_setup_dispatch,                    // llvm.eh.sjlj.setup.dispatch
+    eh_typeid_for,                             // llvm.eh.typeid.for
+    eh_unwind_init,                            // llvm.eh.unwind.init
+    exp,                                       // llvm.exp
+    exp2,                                      // llvm.exp2
+    expect,                                    // llvm.expect
+    experimental_constrained_cos,              // llvm.experimental.constrained.cos
+    experimental_constrained_exp,              // llvm.experimental.constrained.exp
+    experimental_constrained_exp2,             // llvm.experimental.constrained.exp2
+    experimental_constrained_fadd,             // llvm.experimental.constrained.fadd
+    experimental_constrained_fdiv,             // llvm.experimental.constrained.fdiv
+    experimental_constrained_fma,              // llvm.experimental.constrained.fma
+    experimental_constrained_fmul,             // llvm.experimental.constrained.fmul
+    experimental_constrained_frem,             // llvm.experimental.constrained.frem
+    experimental_constrained_fsub,             // llvm.experimental.constrained.fsub
+    experimental_constrained_log,              // llvm.experimental.constrained.log
+    experimental_constrained_log10,            // llvm.experimental.constrained.log10
+    experimental_constrained_log2,             // llvm.experimental.constrained.log2
+    experimental_constrained_nearbyint,        // llvm.experimental.constrained.nearbyint
+    experimental_constrained_pow,              // llvm.experimental.constrained.pow
+    experimental_constrained_powi,             // llvm.experimental.constrained.powi
+    experimental_constrained_rint,             // llvm.experimental.constrained.rint
+    experimental_constrained_sin,              // llvm.experimental.constrained.sin
+    experimental_constrained_sqrt,             // llvm.experimental.constrained.sqrt
+    experimental_deoptimize,                   // llvm.experimental.deoptimize
+    experimental_gc_relocate,                  // llvm.experimental.gc.relocate
+    experimental_gc_result,                    // llvm.experimental.gc.result
+    experimental_gc_statepoint,                // llvm.experimental.gc.statepoint
+    experimental_guard,                        // llvm.experimental.guard
+    experimental_patchpoint_i64,               // llvm.experimental.patchpoint.i64
+    experimental_patchpoint_void,              // llvm.experimental.patchpoint.void
+    experimental_stackmap,                     // llvm.experimental.stackmap
+    experimental_vector_reduce_add,            // llvm.experimental.vector.reduce.add
+    experimental_vector_reduce_and,            // llvm.experimental.vector.reduce.and
+    experimental_vector_reduce_fadd,           // llvm.experimental.vector.reduce.fadd
+    experimental_vector_reduce_fmax,           // llvm.experimental.vector.reduce.fmax
+    experimental_vector_reduce_fmin,           // llvm.experimental.vector.reduce.fmin
+    experimental_vector_reduce_fmul,           // llvm.experimental.vector.reduce.fmul
+    experimental_vector_reduce_mul,            // llvm.experimental.vector.reduce.mul
+    experimental_vector_reduce_or,             // llvm.experimental.vector.reduce.or
+    experimental_vector_reduce_smax,           // llvm.experimental.vector.reduce.smax
+    experimental_vector_reduce_smin,           // llvm.experimental.vector.reduce.smin
+    experimental_vector_reduce_umax,           // llvm.experimental.vector.reduce.umax
+    experimental_vector_reduce_umin,           // llvm.experimental.vector.reduce.umin
+    experimental_vector_reduce_xor,            // llvm.experimental.vector.reduce.xor
+    fabs,                                      // llvm.fabs
+    floor,                                     // llvm.floor
+    flt_rounds,                                // llvm.flt.rounds
+    fma,                                       // llvm.fma
+    fmuladd,                                   // llvm.fmuladd
+    frameaddress,                              // llvm.frameaddress
+    fshl,                                      // llvm.fshl
+    fshr,                                      // llvm.fshr
+    gcread,                                    // llvm.gcread
+    gcroot,                                    // llvm.gcroot
+    gcwrite,                                   // llvm.gcwrite
+    get_dynamic_area_offset,                   // llvm.get.dynamic.area.offset
+    icall_branch_funnel,                       // llvm.icall.branch.funnel
+    init_trampoline,                           // llvm.init.trampoline
+    instrprof_increment,                       // llvm.instrprof.increment
+    instrprof_increment_step,                  // llvm.instrprof.increment.step
+    instrprof_value_profile,                   // llvm.instrprof.value.profile
+    invariant_end,                             // llvm.invariant.end
+    invariant_start,                           // llvm.invariant.start
+    launder_invariant_group,                   // llvm.launder.invariant.group
+    lifetime_end,                              // llvm.lifetime.end
+    lifetime_start,                            // llvm.lifetime.start
+    load_relative,                             // llvm.load.relative
+    localaddress,                              // llvm.localaddress
+    localescape,                               // llvm.localescape
+    localrecover,                              // llvm.localrecover
+    log,                                       // llvm.log
+    log10,                                     // llvm.log10
+    log2,                                      // llvm.log2
+    longjmp,                                   // llvm.longjmp
+    masked_compressstore,                      // llvm.masked.compressstore
+    masked_expandload,                         // llvm.masked.expandload
+    masked_gather,                             // llvm.masked.gather
+    masked_load,                               // llvm.masked.load
+    masked_scatter,                            // llvm.masked.scatter
+    masked_store,                              // llvm.masked.store
+    maxnum,                                    // llvm.maxnum
+    memcpy,                                    // llvm.memcpy
+    memcpy_element_unordered_atomic,           // llvm.memcpy.element.unordered.atomic
+    memmove,                                   // llvm.memmove
+    memmove_element_unordered_atomic,          // llvm.memmove.element.unordered.atomic
+    memset,                                    // llvm.memset
+    memset_element_unordered_atomic,           // llvm.memset.element.unordered.atomic
+    minnum,                                    // llvm.minnum
+    nearbyint,                                 // llvm.nearbyint
+    objectsize,                                // llvm.objectsize
+    pcmarker,                                  // llvm.pcmarker
+    pow,                                       // llvm.pow
+    powi,                                      // llvm.powi
+    prefetch,                                  // llvm.prefetch
+    ptr_annotation,                            // llvm.ptr.annotation
+    read_register,                             // llvm.read_register
+    readcyclecounter,                          // llvm.readcyclecounter
+    returnaddress,                             // llvm.returnaddress
+    rint,                                      // llvm.rint
+    round,                                     // llvm.round
+    sadd_with_overflow,                        // llvm.sadd.with.overflow
+    setjmp,                                    // llvm.setjmp
+    sideeffect,                                // llvm.sideeffect
+    siglongjmp,                                // llvm.siglongjmp
+    sigsetjmp,                                 // llvm.sigsetjmp
+    sin,                                       // llvm.sin
+    smul_with_overflow,                        // llvm.smul.with.overflow
+    sqrt,                                      // llvm.sqrt
+    ssa_copy,                                  // llvm.ssa.copy
+    ssub_with_overflow,                        // llvm.ssub.with.overflow
+    stackguard,                                // llvm.stackguard
+    stackprotector,                            // llvm.stackprotector
+    stackrestore,                              // llvm.stackrestore
+    stacksave,                                 // llvm.stacksave
+    strip_invariant_group,                     // llvm.strip.invariant.group
+    thread_pointer,                            // llvm.thread.pointer
+    trap,                                      // llvm.trap
+    trunc,                                     // llvm.trunc
+    type_checked_load,                         // llvm.type.checked.load
+    type_test,                                 // llvm.type.test
+    uadd_with_overflow,                        // llvm.uadd.with.overflow
+    umul_with_overflow,                        // llvm.umul.with.overflow
+    usub_with_overflow,                        // llvm.usub.with.overflow
+    vacopy,                                    // llvm.va_copy
+    vaend,                                     // llvm.va_end
+    vastart,                                   // llvm.va_start
+    var_annotation,                            // llvm.var.annotation
+    write_register,                            // llvm.write_register
+    xray_customevent,                          // llvm.xray.customevent
+    xray_typedevent,                           // llvm.xray.typedevent
+    aarch64_clrex,                             // llvm.aarch64.clrex
+    aarch64_crc32b,                            // llvm.aarch64.crc32b
+    aarch64_crc32cb,                           // llvm.aarch64.crc32cb
+    aarch64_crc32ch,                           // llvm.aarch64.crc32ch
+    aarch64_crc32cw,                           // llvm.aarch64.crc32cw
+    aarch64_crc32cx,                           // llvm.aarch64.crc32cx
+    aarch64_crc32h,                            // llvm.aarch64.crc32h
+    aarch64_crc32w,                            // llvm.aarch64.crc32w
+    aarch64_crc32x,                            // llvm.aarch64.crc32x
+    aarch64_crypto_aesd,                       // llvm.aarch64.crypto.aesd
+    aarch64_crypto_aese,                       // llvm.aarch64.crypto.aese
+    aarch64_crypto_aesimc,                     // llvm.aarch64.crypto.aesimc
+    aarch64_crypto_aesmc,                      // llvm.aarch64.crypto.aesmc
+    aarch64_crypto_sha1c,                      // llvm.aarch64.crypto.sha1c
+    aarch64_crypto_sha1h,                      // llvm.aarch64.crypto.sha1h
+    aarch64_crypto_sha1m,                      // llvm.aarch64.crypto.sha1m
+    aarch64_crypto_sha1p,                      // llvm.aarch64.crypto.sha1p
+    aarch64_crypto_sha1su0,                    // llvm.aarch64.crypto.sha1su0
+    aarch64_crypto_sha1su1,                    // llvm.aarch64.crypto.sha1su1
+    aarch64_crypto_sha256h,                    // llvm.aarch64.crypto.sha256h
+    aarch64_crypto_sha256h2,                   // llvm.aarch64.crypto.sha256h2
+    aarch64_crypto_sha256su0,                  // llvm.aarch64.crypto.sha256su0
+    aarch64_crypto_sha256su1,                  // llvm.aarch64.crypto.sha256su1
+    aarch64_dmb,                               // llvm.aarch64.dmb
+    aarch64_dsb,                               // llvm.aarch64.dsb
+    aarch64_get_fpcr,                          // llvm.aarch64.get.fpcr
+    aarch64_hint,                              // llvm.aarch64.hint
+    aarch64_isb,                               // llvm.aarch64.isb
+    aarch64_ldaxp,                             // llvm.aarch64.ldaxp
+    aarch64_ldaxr,                             // llvm.aarch64.ldaxr
+    aarch64_ldxp,                              // llvm.aarch64.ldxp
+    aarch64_ldxr,                              // llvm.aarch64.ldxr
+    aarch64_neon_abs,                          // llvm.aarch64.neon.abs
+    aarch64_neon_addhn,                        // llvm.aarch64.neon.addhn
+    aarch64_neon_addp,                         // llvm.aarch64.neon.addp
+    aarch64_neon_cls,                          // llvm.aarch64.neon.cls
+    aarch64_neon_fabd,                         // llvm.aarch64.neon.fabd
+    aarch64_neon_facge,                        // llvm.aarch64.neon.facge
+    aarch64_neon_facgt,                        // llvm.aarch64.neon.facgt
+    aarch64_neon_faddv,                        // llvm.aarch64.neon.faddv
+    aarch64_neon_fcvtas,                       // llvm.aarch64.neon.fcvtas
+    aarch64_neon_fcvtau,                       // llvm.aarch64.neon.fcvtau
+    aarch64_neon_fcvtms,                       // llvm.aarch64.neon.fcvtms
+    aarch64_neon_fcvtmu,                       // llvm.aarch64.neon.fcvtmu
+    aarch64_neon_fcvtns,                       // llvm.aarch64.neon.fcvtns
+    aarch64_neon_fcvtnu,                       // llvm.aarch64.neon.fcvtnu
+    aarch64_neon_fcvtps,                       // llvm.aarch64.neon.fcvtps
+    aarch64_neon_fcvtpu,                       // llvm.aarch64.neon.fcvtpu
+    aarch64_neon_fcvtxn,                       // llvm.aarch64.neon.fcvtxn
+    aarch64_neon_fcvtzs,                       // llvm.aarch64.neon.fcvtzs
+    aarch64_neon_fcvtzu,                       // llvm.aarch64.neon.fcvtzu
+    aarch64_neon_fmax,                         // llvm.aarch64.neon.fmax
+    aarch64_neon_fmaxnm,                       // llvm.aarch64.neon.fmaxnm
+    aarch64_neon_fmaxnmp,                      // llvm.aarch64.neon.fmaxnmp
+    aarch64_neon_fmaxnmv,                      // llvm.aarch64.neon.fmaxnmv
+    aarch64_neon_fmaxp,                        // llvm.aarch64.neon.fmaxp
+    aarch64_neon_fmaxv,                        // llvm.aarch64.neon.fmaxv
+    aarch64_neon_fmin,                         // llvm.aarch64.neon.fmin
+    aarch64_neon_fminnm,                       // llvm.aarch64.neon.fminnm
+    aarch64_neon_fminnmp,                      // llvm.aarch64.neon.fminnmp
+    aarch64_neon_fminnmv,                      // llvm.aarch64.neon.fminnmv
+    aarch64_neon_fminp,                        // llvm.aarch64.neon.fminp
+    aarch64_neon_fminv,                        // llvm.aarch64.neon.fminv
+    aarch64_neon_fmulx,                        // llvm.aarch64.neon.fmulx
+    aarch64_neon_frecpe,                       // llvm.aarch64.neon.frecpe
+    aarch64_neon_frecps,                       // llvm.aarch64.neon.frecps
+    aarch64_neon_frecpx,                       // llvm.aarch64.neon.frecpx
+    aarch64_neon_frintn,                       // llvm.aarch64.neon.frintn
+    aarch64_neon_frsqrte,                      // llvm.aarch64.neon.frsqrte
+    aarch64_neon_frsqrts,                      // llvm.aarch64.neon.frsqrts
+    aarch64_neon_ld1x2,                        // llvm.aarch64.neon.ld1x2
+    aarch64_neon_ld1x3,                        // llvm.aarch64.neon.ld1x3
+    aarch64_neon_ld1x4,                        // llvm.aarch64.neon.ld1x4
+    aarch64_neon_ld2,                          // llvm.aarch64.neon.ld2
+    aarch64_neon_ld2lane,                      // llvm.aarch64.neon.ld2lane
+    aarch64_neon_ld2r,                         // llvm.aarch64.neon.ld2r
+    aarch64_neon_ld3,                          // llvm.aarch64.neon.ld3
+    aarch64_neon_ld3lane,                      // llvm.aarch64.neon.ld3lane
+    aarch64_neon_ld3r,                         // llvm.aarch64.neon.ld3r
+    aarch64_neon_ld4,                          // llvm.aarch64.neon.ld4
+    aarch64_neon_ld4lane,                      // llvm.aarch64.neon.ld4lane
+    aarch64_neon_ld4r,                         // llvm.aarch64.neon.ld4r
+    aarch64_neon_pmul,                         // llvm.aarch64.neon.pmul
+    aarch64_neon_pmull,                        // llvm.aarch64.neon.pmull
+    aarch64_neon_pmull64,                      // llvm.aarch64.neon.pmull64
+    aarch64_neon_raddhn,                       // llvm.aarch64.neon.raddhn
+    aarch64_neon_rbit,                         // llvm.aarch64.neon.rbit
+    aarch64_neon_rshrn,                        // llvm.aarch64.neon.rshrn
+    aarch64_neon_rsubhn,                       // llvm.aarch64.neon.rsubhn
+    aarch64_neon_sabd,                         // llvm.aarch64.neon.sabd
+    aarch64_neon_saddlp,                       // llvm.aarch64.neon.saddlp
+    aarch64_neon_saddlv,                       // llvm.aarch64.neon.saddlv
+    aarch64_neon_saddv,                        // llvm.aarch64.neon.saddv
+    aarch64_neon_scalar_sqxtn,                 // llvm.aarch64.neon.scalar.sqxtn
+    aarch64_neon_scalar_sqxtun,                // llvm.aarch64.neon.scalar.sqxtun
+    aarch64_neon_scalar_uqxtn,                 // llvm.aarch64.neon.scalar.uqxtn
+    aarch64_neon_sdot,                         // llvm.aarch64.neon.sdot
+    aarch64_neon_shadd,                        // llvm.aarch64.neon.shadd
+    aarch64_neon_shll,                         // llvm.aarch64.neon.shll
+    aarch64_neon_shsub,                        // llvm.aarch64.neon.shsub
+    aarch64_neon_smax,                         // llvm.aarch64.neon.smax
+    aarch64_neon_smaxp,                        // llvm.aarch64.neon.smaxp
+    aarch64_neon_smaxv,                        // llvm.aarch64.neon.smaxv
+    aarch64_neon_smin,                         // llvm.aarch64.neon.smin
+    aarch64_neon_sminp,                        // llvm.aarch64.neon.sminp
+    aarch64_neon_sminv,                        // llvm.aarch64.neon.sminv
+    aarch64_neon_smull,                        // llvm.aarch64.neon.smull
+    aarch64_neon_sqabs,                        // llvm.aarch64.neon.sqabs
+    aarch64_neon_sqadd,                        // llvm.aarch64.neon.sqadd
+    aarch64_neon_sqdmulh,                      // llvm.aarch64.neon.sqdmulh
+    aarch64_neon_sqdmull,                      // llvm.aarch64.neon.sqdmull
+    aarch64_neon_sqdmulls_scalar,              // llvm.aarch64.neon.sqdmulls.scalar
+    aarch64_neon_sqneg,                        // llvm.aarch64.neon.sqneg
+    aarch64_neon_sqrdmulh,                     // llvm.aarch64.neon.sqrdmulh
+    aarch64_neon_sqrshl,                       // llvm.aarch64.neon.sqrshl
+    aarch64_neon_sqrshrn,                      // llvm.aarch64.neon.sqrshrn
+    aarch64_neon_sqrshrun,                     // llvm.aarch64.neon.sqrshrun
+    aarch64_neon_sqshl,                        // llvm.aarch64.neon.sqshl
+    aarch64_neon_sqshlu,                       // llvm.aarch64.neon.sqshlu
+    aarch64_neon_sqshrn,                       // llvm.aarch64.neon.sqshrn
+    aarch64_neon_sqshrun,                      // llvm.aarch64.neon.sqshrun
+    aarch64_neon_sqsub,                        // llvm.aarch64.neon.sqsub
+    aarch64_neon_sqxtn,                        // llvm.aarch64.neon.sqxtn
+    aarch64_neon_sqxtun,                       // llvm.aarch64.neon.sqxtun
+    aarch64_neon_srhadd,                       // llvm.aarch64.neon.srhadd
+    aarch64_neon_srshl,                        // llvm.aarch64.neon.srshl
+    aarch64_neon_sshl,                         // llvm.aarch64.neon.sshl
+    aarch64_neon_sshll,                        // llvm.aarch64.neon.sshll
+    aarch64_neon_st1x2,                        // llvm.aarch64.neon.st1x2
+    aarch64_neon_st1x3,                        // llvm.aarch64.neon.st1x3
+    aarch64_neon_st1x4,                        // llvm.aarch64.neon.st1x4
+    aarch64_neon_st2,                          // llvm.aarch64.neon.st2
+    aarch64_neon_st2lane,                      // llvm.aarch64.neon.st2lane
+    aarch64_neon_st3,                          // llvm.aarch64.neon.st3
+    aarch64_neon_st3lane,                      // llvm.aarch64.neon.st3lane
+    aarch64_neon_st4,                          // llvm.aarch64.neon.st4
+    aarch64_neon_st4lane,                      // llvm.aarch64.neon.st4lane
+    aarch64_neon_subhn,                        // llvm.aarch64.neon.subhn
+    aarch64_neon_suqadd,                       // llvm.aarch64.neon.suqadd
+    aarch64_neon_tbl1,                         // llvm.aarch64.neon.tbl1
+    aarch64_neon_tbl2,                         // llvm.aarch64.neon.tbl2
+    aarch64_neon_tbl3,                         // llvm.aarch64.neon.tbl3
+    aarch64_neon_tbl4,                         // llvm.aarch64.neon.tbl4
+    aarch64_neon_tbx1,                         // llvm.aarch64.neon.tbx1
+    aarch64_neon_tbx2,                         // llvm.aarch64.neon.tbx2
+    aarch64_neon_tbx3,                         // llvm.aarch64.neon.tbx3
+    aarch64_neon_tbx4,                         // llvm.aarch64.neon.tbx4
+    aarch64_neon_uabd,                         // llvm.aarch64.neon.uabd
+    aarch64_neon_uaddlp,                       // llvm.aarch64.neon.uaddlp
+    aarch64_neon_uaddlv,                       // llvm.aarch64.neon.uaddlv
+    aarch64_neon_uaddv,                        // llvm.aarch64.neon.uaddv
+    aarch64_neon_udot,                         // llvm.aarch64.neon.udot
+    aarch64_neon_uhadd,                        // llvm.aarch64.neon.uhadd
+    aarch64_neon_uhsub,                        // llvm.aarch64.neon.uhsub
+    aarch64_neon_umax,                         // llvm.aarch64.neon.umax
+    aarch64_neon_umaxp,                        // llvm.aarch64.neon.umaxp
+    aarch64_neon_umaxv,                        // llvm.aarch64.neon.umaxv
+    aarch64_neon_umin,                         // llvm.aarch64.neon.umin
+    aarch64_neon_uminp,                        // llvm.aarch64.neon.uminp
+    aarch64_neon_uminv,                        // llvm.aarch64.neon.uminv
+    aarch64_neon_umull,                        // llvm.aarch64.neon.umull
+    aarch64_neon_uqadd,                        // llvm.aarch64.neon.uqadd
+    aarch64_neon_uqrshl,                       // llvm.aarch64.neon.uqrshl
+    aarch64_neon_uqrshrn,                      // llvm.aarch64.neon.uqrshrn
+    aarch64_neon_uqshl,                        // llvm.aarch64.neon.uqshl
+    aarch64_neon_uqshrn,                       // llvm.aarch64.neon.uqshrn
+    aarch64_neon_uqsub,                        // llvm.aarch64.neon.uqsub
+    aarch64_neon_uqxtn,                        // llvm.aarch64.neon.uqxtn
+    aarch64_neon_urecpe,                       // llvm.aarch64.neon.urecpe
+    aarch64_neon_urhadd,                       // llvm.aarch64.neon.urhadd
+    aarch64_neon_urshl,                        // llvm.aarch64.neon.urshl
+    aarch64_neon_ursqrte,                      // llvm.aarch64.neon.ursqrte
+    aarch64_neon_ushl,                         // llvm.aarch64.neon.ushl
+    aarch64_neon_ushll,                        // llvm.aarch64.neon.ushll
+    aarch64_neon_usqadd,                       // llvm.aarch64.neon.usqadd
+    aarch64_neon_vcopy_lane,                   // llvm.aarch64.neon.vcopy.lane
+    aarch64_neon_vcvtfp2fxs,                   // llvm.aarch64.neon.vcvtfp2fxs
+    aarch64_neon_vcvtfp2fxu,                   // llvm.aarch64.neon.vcvtfp2fxu
+    aarch64_neon_vcvtfp2hf,                    // llvm.aarch64.neon.vcvtfp2hf
+    aarch64_neon_vcvtfxs2fp,                   // llvm.aarch64.neon.vcvtfxs2fp
+    aarch64_neon_vcvtfxu2fp,                   // llvm.aarch64.neon.vcvtfxu2fp
+    aarch64_neon_vcvthf2fp,                    // llvm.aarch64.neon.vcvthf2fp
+    aarch64_neon_vsli,                         // llvm.aarch64.neon.vsli
+    aarch64_neon_vsri,                         // llvm.aarch64.neon.vsri
+    aarch64_sdiv,                              // llvm.aarch64.sdiv
+    aarch64_sisd_fabd,                         // llvm.aarch64.sisd.fabd
+    aarch64_sisd_fcvtxn,                       // llvm.aarch64.sisd.fcvtxn
+    aarch64_stlxp,                             // llvm.aarch64.stlxp
+    aarch64_stlxr,                             // llvm.aarch64.stlxr
+    aarch64_stxp,                              // llvm.aarch64.stxp
+    aarch64_stxr,                              // llvm.aarch64.stxr
+    aarch64_udiv,                              // llvm.aarch64.udiv
+    amdgcn_alignbit,                           // llvm.amdgcn.alignbit
+    amdgcn_alignbyte,                          // llvm.amdgcn.alignbyte
+    amdgcn_atomic_dec,                         // llvm.amdgcn.atomic.dec
+    amdgcn_atomic_inc,                         // llvm.amdgcn.atomic.inc
+    amdgcn_break,                              // llvm.amdgcn.break
+    amdgcn_buffer_atomic_add,                  // llvm.amdgcn.buffer.atomic.add
+    amdgcn_buffer_atomic_and,                  // llvm.amdgcn.buffer.atomic.and
+    amdgcn_buffer_atomic_cmpswap,              // llvm.amdgcn.buffer.atomic.cmpswap
+    amdgcn_buffer_atomic_or,                   // llvm.amdgcn.buffer.atomic.or
+    amdgcn_buffer_atomic_smax,                 // llvm.amdgcn.buffer.atomic.smax
+    amdgcn_buffer_atomic_smin,                 // llvm.amdgcn.buffer.atomic.smin
+    amdgcn_buffer_atomic_sub,                  // llvm.amdgcn.buffer.atomic.sub
+    amdgcn_buffer_atomic_swap,                 // llvm.amdgcn.buffer.atomic.swap
+    amdgcn_buffer_atomic_umax,                 // llvm.amdgcn.buffer.atomic.umax
+    amdgcn_buffer_atomic_umin,                 // llvm.amdgcn.buffer.atomic.umin
+    amdgcn_buffer_atomic_xor,                  // llvm.amdgcn.buffer.atomic.xor
+    amdgcn_buffer_load,                        // llvm.amdgcn.buffer.load
+    amdgcn_buffer_load_format,                 // llvm.amdgcn.buffer.load.format
+    amdgcn_buffer_store,                       // llvm.amdgcn.buffer.store
+    amdgcn_buffer_store_format,                // llvm.amdgcn.buffer.store.format
+    amdgcn_buffer_wbinvl1,                     // llvm.amdgcn.buffer.wbinvl1
+    amdgcn_buffer_wbinvl1_sc,                  // llvm.amdgcn.buffer.wbinvl1.sc
+    amdgcn_buffer_wbinvl1_vol,                 // llvm.amdgcn.buffer.wbinvl1.vol
+    amdgcn_class,                              // llvm.amdgcn.class
+    amdgcn_cos,                                // llvm.amdgcn.cos
+    amdgcn_cubeid,                             // llvm.amdgcn.cubeid
+    amdgcn_cubema,                             // llvm.amdgcn.cubema
+    amdgcn_cubesc,                             // llvm.amdgcn.cubesc
+    amdgcn_cubetc,                             // llvm.amdgcn.cubetc
+    amdgcn_cvt_pk_i16,                         // llvm.amdgcn.cvt.pk.i16
+    amdgcn_cvt_pk_u16,                         // llvm.amdgcn.cvt.pk.u16
+    amdgcn_cvt_pk_u8_f32,                      // llvm.amdgcn.cvt.pk.u8.f32
+    amdgcn_cvt_pknorm_i16,                     // llvm.amdgcn.cvt.pknorm.i16
+    amdgcn_cvt_pknorm_u16,                     // llvm.amdgcn.cvt.pknorm.u16
+    amdgcn_cvt_pkrtz,                          // llvm.amdgcn.cvt.pkrtz
+    amdgcn_dispatch_id,                        // llvm.amdgcn.dispatch.id
+    amdgcn_dispatch_ptr,                       // llvm.amdgcn.dispatch.ptr
+    amdgcn_div_fixup,                          // llvm.amdgcn.div.fixup
+    amdgcn_div_fmas,                           // llvm.amdgcn.div.fmas
+    amdgcn_div_scale,                          // llvm.amdgcn.div.scale
+    amdgcn_ds_bpermute,                        // llvm.amdgcn.ds.bpermute
+    amdgcn_ds_fadd,                            // llvm.amdgcn.ds.fadd
+    amdgcn_ds_fmax,                            // llvm.amdgcn.ds.fmax
+    amdgcn_ds_fmin,                            // llvm.amdgcn.ds.fmin
+    amdgcn_ds_permute,                         // llvm.amdgcn.ds.permute
+    amdgcn_ds_swizzle,                         // llvm.amdgcn.ds.swizzle
+    amdgcn_else,                               // llvm.amdgcn.else
+    amdgcn_else_break,                         // llvm.amdgcn.else.break
+    amdgcn_end_cf,                             // llvm.amdgcn.end.cf
+    amdgcn_exp,                                // llvm.amdgcn.exp
+    amdgcn_exp_compr,                          // llvm.amdgcn.exp.compr
+    amdgcn_fcmp,                               // llvm.amdgcn.fcmp
+    amdgcn_fdiv_fast,                          // llvm.amdgcn.fdiv.fast
+    amdgcn_fdot2,                              // llvm.amdgcn.fdot2
+    amdgcn_fmad_ftz,                           // llvm.amdgcn.fmad.ftz
+    amdgcn_fmed3,                              // llvm.amdgcn.fmed3
+    amdgcn_fmul_legacy,                        // llvm.amdgcn.fmul.legacy
+    amdgcn_fract,                              // llvm.amdgcn.fract
+    amdgcn_frexp_exp,                          // llvm.amdgcn.frexp.exp
+    amdgcn_frexp_mant,                         // llvm.amdgcn.frexp.mant
+    amdgcn_groupstaticsize,                    // llvm.amdgcn.groupstaticsize
+    amdgcn_icmp,                               // llvm.amdgcn.icmp
+    amdgcn_if,                                 // llvm.amdgcn.if
+    amdgcn_if_break,                           // llvm.amdgcn.if.break
+    amdgcn_image_atomic_add_1d,                // llvm.amdgcn.image.atomic.add.1d
+    amdgcn_image_atomic_add_1darray,           // llvm.amdgcn.image.atomic.add.1darray
+    amdgcn_image_atomic_add_2d,                // llvm.amdgcn.image.atomic.add.2d
+    amdgcn_image_atomic_add_2darray,           // llvm.amdgcn.image.atomic.add.2darray
+    amdgcn_image_atomic_add_2darraymsaa,       // llvm.amdgcn.image.atomic.add.2darraymsaa
+    amdgcn_image_atomic_add_2dmsaa,            // llvm.amdgcn.image.atomic.add.2dmsaa
+    amdgcn_image_atomic_add_3d,                // llvm.amdgcn.image.atomic.add.3d
+    amdgcn_image_atomic_add_cube,              // llvm.amdgcn.image.atomic.add.cube
+    amdgcn_image_atomic_and_1d,                // llvm.amdgcn.image.atomic.and.1d
+    amdgcn_image_atomic_and_1darray,           // llvm.amdgcn.image.atomic.and.1darray
+    amdgcn_image_atomic_and_2d,                // llvm.amdgcn.image.atomic.and.2d
+    amdgcn_image_atomic_and_2darray,           // llvm.amdgcn.image.atomic.and.2darray
+    amdgcn_image_atomic_and_2darraymsaa,       // llvm.amdgcn.image.atomic.and.2darraymsaa
+    amdgcn_image_atomic_and_2dmsaa,            // llvm.amdgcn.image.atomic.and.2dmsaa
+    amdgcn_image_atomic_and_3d,                // llvm.amdgcn.image.atomic.and.3d
+    amdgcn_image_atomic_and_cube,              // llvm.amdgcn.image.atomic.and.cube
+    amdgcn_image_atomic_cmpswap_1d,            // llvm.amdgcn.image.atomic.cmpswap.1d
+    amdgcn_image_atomic_cmpswap_1darray,       // llvm.amdgcn.image.atomic.cmpswap.1darray
+    amdgcn_image_atomic_cmpswap_2d,            // llvm.amdgcn.image.atomic.cmpswap.2d
+    amdgcn_image_atomic_cmpswap_2darray,       // llvm.amdgcn.image.atomic.cmpswap.2darray
+    amdgcn_image_atomic_cmpswap_2darraymsaa,   // llvm.amdgcn.image.atomic.cmpswap.2darraymsaa
+    amdgcn_image_atomic_cmpswap_2dmsaa,        // llvm.amdgcn.image.atomic.cmpswap.2dmsaa
+    amdgcn_image_atomic_cmpswap_3d,            // llvm.amdgcn.image.atomic.cmpswap.3d
+    amdgcn_image_atomic_cmpswap_cube,          // llvm.amdgcn.image.atomic.cmpswap.cube
+    amdgcn_image_atomic_dec_1d,                // llvm.amdgcn.image.atomic.dec.1d
+    amdgcn_image_atomic_dec_1darray,           // llvm.amdgcn.image.atomic.dec.1darray
+    amdgcn_image_atomic_dec_2d,                // llvm.amdgcn.image.atomic.dec.2d
+    amdgcn_image_atomic_dec_2darray,           // llvm.amdgcn.image.atomic.dec.2darray
+    amdgcn_image_atomic_dec_2darraymsaa,       // llvm.amdgcn.image.atomic.dec.2darraymsaa
+    amdgcn_image_atomic_dec_2dmsaa,            // llvm.amdgcn.image.atomic.dec.2dmsaa
+    amdgcn_image_atomic_dec_3d,                // llvm.amdgcn.image.atomic.dec.3d
+    amdgcn_image_atomic_dec_cube,              // llvm.amdgcn.image.atomic.dec.cube
+    amdgcn_image_atomic_inc_1d,                // llvm.amdgcn.image.atomic.inc.1d
+    amdgcn_image_atomic_inc_1darray,           // llvm.amdgcn.image.atomic.inc.1darray
+    amdgcn_image_atomic_inc_2d,                // llvm.amdgcn.image.atomic.inc.2d
+    amdgcn_image_atomic_inc_2darray,           // llvm.amdgcn.image.atomic.inc.2darray
+    amdgcn_image_atomic_inc_2darraymsaa,       // llvm.amdgcn.image.atomic.inc.2darraymsaa
+    amdgcn_image_atomic_inc_2dmsaa,            // llvm.amdgcn.image.atomic.inc.2dmsaa
+    amdgcn_image_atomic_inc_3d,                // llvm.amdgcn.image.atomic.inc.3d
+    amdgcn_image_atomic_inc_cube,              // llvm.amdgcn.image.atomic.inc.cube
+    amdgcn_image_atomic_or_1d,                 // llvm.amdgcn.image.atomic.or.1d
+    amdgcn_image_atomic_or_1darray,            // llvm.amdgcn.image.atomic.or.1darray
+    amdgcn_image_atomic_or_2d,                 // llvm.amdgcn.image.atomic.or.2d
+    amdgcn_image_atomic_or_2darray,            // llvm.amdgcn.image.atomic.or.2darray
+    amdgcn_image_atomic_or_2darraymsaa,        // llvm.amdgcn.image.atomic.or.2darraymsaa
+    amdgcn_image_atomic_or_2dmsaa,             // llvm.amdgcn.image.atomic.or.2dmsaa
+    amdgcn_image_atomic_or_3d,                 // llvm.amdgcn.image.atomic.or.3d
+    amdgcn_image_atomic_or_cube,               // llvm.amdgcn.image.atomic.or.cube
+    amdgcn_image_atomic_smax_1d,               // llvm.amdgcn.image.atomic.smax.1d
+    amdgcn_image_atomic_smax_1darray,          // llvm.amdgcn.image.atomic.smax.1darray
+    amdgcn_image_atomic_smax_2d,               // llvm.amdgcn.image.atomic.smax.2d
+    amdgcn_image_atomic_smax_2darray,          // llvm.amdgcn.image.atomic.smax.2darray
+    amdgcn_image_atomic_smax_2darraymsaa,      // llvm.amdgcn.image.atomic.smax.2darraymsaa
+    amdgcn_image_atomic_smax_2dmsaa,           // llvm.amdgcn.image.atomic.smax.2dmsaa
+    amdgcn_image_atomic_smax_3d,               // llvm.amdgcn.image.atomic.smax.3d
+    amdgcn_image_atomic_smax_cube,             // llvm.amdgcn.image.atomic.smax.cube
+    amdgcn_image_atomic_smin_1d,               // llvm.amdgcn.image.atomic.smin.1d
+    amdgcn_image_atomic_smin_1darray,          // llvm.amdgcn.image.atomic.smin.1darray
+    amdgcn_image_atomic_smin_2d,               // llvm.amdgcn.image.atomic.smin.2d
+    amdgcn_image_atomic_smin_2darray,          // llvm.amdgcn.image.atomic.smin.2darray
+    amdgcn_image_atomic_smin_2darraymsaa,      // llvm.amdgcn.image.atomic.smin.2darraymsaa
+    amdgcn_image_atomic_smin_2dmsaa,           // llvm.amdgcn.image.atomic.smin.2dmsaa
+    amdgcn_image_atomic_smin_3d,               // llvm.amdgcn.image.atomic.smin.3d
+    amdgcn_image_atomic_smin_cube,             // llvm.amdgcn.image.atomic.smin.cube
+    amdgcn_image_atomic_sub_1d,                // llvm.amdgcn.image.atomic.sub.1d
+    amdgcn_image_atomic_sub_1darray,           // llvm.amdgcn.image.atomic.sub.1darray
+    amdgcn_image_atomic_sub_2d,                // llvm.amdgcn.image.atomic.sub.2d
+    amdgcn_image_atomic_sub_2darray,           // llvm.amdgcn.image.atomic.sub.2darray
+    amdgcn_image_atomic_sub_2darraymsaa,       // llvm.amdgcn.image.atomic.sub.2darraymsaa
+    amdgcn_image_atomic_sub_2dmsaa,            // llvm.amdgcn.image.atomic.sub.2dmsaa
+    amdgcn_image_atomic_sub_3d,                // llvm.amdgcn.image.atomic.sub.3d
+    amdgcn_image_atomic_sub_cube,              // llvm.amdgcn.image.atomic.sub.cube
+    amdgcn_image_atomic_swap_1d,               // llvm.amdgcn.image.atomic.swap.1d
+    amdgcn_image_atomic_swap_1darray,          // llvm.amdgcn.image.atomic.swap.1darray
+    amdgcn_image_atomic_swap_2d,               // llvm.amdgcn.image.atomic.swap.2d
+    amdgcn_image_atomic_swap_2darray,          // llvm.amdgcn.image.atomic.swap.2darray
+    amdgcn_image_atomic_swap_2darraymsaa,      // llvm.amdgcn.image.atomic.swap.2darraymsaa
+    amdgcn_image_atomic_swap_2dmsaa,           // llvm.amdgcn.image.atomic.swap.2dmsaa
+    amdgcn_image_atomic_swap_3d,               // llvm.amdgcn.image.atomic.swap.3d
+    amdgcn_image_atomic_swap_cube,             // llvm.amdgcn.image.atomic.swap.cube
+    amdgcn_image_atomic_umax_1d,               // llvm.amdgcn.image.atomic.umax.1d
+    amdgcn_image_atomic_umax_1darray,          // llvm.amdgcn.image.atomic.umax.1darray
+    amdgcn_image_atomic_umax_2d,               // llvm.amdgcn.image.atomic.umax.2d
+    amdgcn_image_atomic_umax_2darray,          // llvm.amdgcn.image.atomic.umax.2darray
+    amdgcn_image_atomic_umax_2darraymsaa,      // llvm.amdgcn.image.atomic.umax.2darraymsaa
+    amdgcn_image_atomic_umax_2dmsaa,           // llvm.amdgcn.image.atomic.umax.2dmsaa
+    amdgcn_image_atomic_umax_3d,               // llvm.amdgcn.image.atomic.umax.3d
+    amdgcn_image_atomic_umax_cube,             // llvm.amdgcn.image.atomic.umax.cube
+    amdgcn_image_atomic_umin_1d,               // llvm.amdgcn.image.atomic.umin.1d
+    amdgcn_image_atomic_umin_1darray,          // llvm.amdgcn.image.atomic.umin.1darray
+    amdgcn_image_atomic_umin_2d,               // llvm.amdgcn.image.atomic.umin.2d
+    amdgcn_image_atomic_umin_2darray,          // llvm.amdgcn.image.atomic.umin.2darray
+    amdgcn_image_atomic_umin_2darraymsaa,      // llvm.amdgcn.image.atomic.umin.2darraymsaa
+    amdgcn_image_atomic_umin_2dmsaa,           // llvm.amdgcn.image.atomic.umin.2dmsaa
+    amdgcn_image_atomic_umin_3d,               // llvm.amdgcn.image.atomic.umin.3d
+    amdgcn_image_atomic_umin_cube,             // llvm.amdgcn.image.atomic.umin.cube
+    amdgcn_image_atomic_xor_1d,                // llvm.amdgcn.image.atomic.xor.1d
+    amdgcn_image_atomic_xor_1darray,           // llvm.amdgcn.image.atomic.xor.1darray
+    amdgcn_image_atomic_xor_2d,                // llvm.amdgcn.image.atomic.xor.2d
+    amdgcn_image_atomic_xor_2darray,           // llvm.amdgcn.image.atomic.xor.2darray
+    amdgcn_image_atomic_xor_2darraymsaa,       // llvm.amdgcn.image.atomic.xor.2darraymsaa
+    amdgcn_image_atomic_xor_2dmsaa,            // llvm.amdgcn.image.atomic.xor.2dmsaa
+    amdgcn_image_atomic_xor_3d,                // llvm.amdgcn.image.atomic.xor.3d
+    amdgcn_image_atomic_xor_cube,              // llvm.amdgcn.image.atomic.xor.cube
+    amdgcn_image_gather4_2d,                   // llvm.amdgcn.image.gather4.2d
+    amdgcn_image_gather4_2darray,              // llvm.amdgcn.image.gather4.2darray
+    amdgcn_image_gather4_b_2d,                 // llvm.amdgcn.image.gather4.b.2d
+    amdgcn_image_gather4_b_2darray,            // llvm.amdgcn.image.gather4.b.2darray
+    amdgcn_image_gather4_b_cl_2d,              // llvm.amdgcn.image.gather4.b.cl.2d
+    amdgcn_image_gather4_b_cl_2darray,         // llvm.amdgcn.image.gather4.b.cl.2darray
+    amdgcn_image_gather4_b_cl_cube,            // llvm.amdgcn.image.gather4.b.cl.cube
+    amdgcn_image_gather4_b_cl_o_2d,            // llvm.amdgcn.image.gather4.b.cl.o.2d
+    amdgcn_image_gather4_b_cl_o_2darray,       // llvm.amdgcn.image.gather4.b.cl.o.2darray
+    amdgcn_image_gather4_b_cl_o_cube,          // llvm.amdgcn.image.gather4.b.cl.o.cube
+    amdgcn_image_gather4_b_cube,               // llvm.amdgcn.image.gather4.b.cube
+    amdgcn_image_gather4_b_o_2d,               // llvm.amdgcn.image.gather4.b.o.2d
+    amdgcn_image_gather4_b_o_2darray,          // llvm.amdgcn.image.gather4.b.o.2darray
+    amdgcn_image_gather4_b_o_cube,             // llvm.amdgcn.image.gather4.b.o.cube
+    amdgcn_image_gather4_c_2d,                 // llvm.amdgcn.image.gather4.c.2d
+    amdgcn_image_gather4_c_2darray,            // llvm.amdgcn.image.gather4.c.2darray
+    amdgcn_image_gather4_c_b_2d,               // llvm.amdgcn.image.gather4.c.b.2d
+    amdgcn_image_gather4_c_b_2darray,          // llvm.amdgcn.image.gather4.c.b.2darray
+    amdgcn_image_gather4_c_b_cl_2d,            // llvm.amdgcn.image.gather4.c.b.cl.2d
+    amdgcn_image_gather4_c_b_cl_2darray,       // llvm.amdgcn.image.gather4.c.b.cl.2darray
+    amdgcn_image_gather4_c_b_cl_cube,          // llvm.amdgcn.image.gather4.c.b.cl.cube
+    amdgcn_image_gather4_c_b_cl_o_2d,          // llvm.amdgcn.image.gather4.c.b.cl.o.2d
+    amdgcn_image_gather4_c_b_cl_o_2darray,     // llvm.amdgcn.image.gather4.c.b.cl.o.2darray
+    amdgcn_image_gather4_c_b_cl_o_cube,        // llvm.amdgcn.image.gather4.c.b.cl.o.cube
+    amdgcn_image_gather4_c_b_cube,             // llvm.amdgcn.image.gather4.c.b.cube
+    amdgcn_image_gather4_c_b_o_2d,             // llvm.amdgcn.image.gather4.c.b.o.2d
+    amdgcn_image_gather4_c_b_o_2darray,        // llvm.amdgcn.image.gather4.c.b.o.2darray
+    amdgcn_image_gather4_c_b_o_cube,           // llvm.amdgcn.image.gather4.c.b.o.cube
+    amdgcn_image_gather4_c_cl_2d,              // llvm.amdgcn.image.gather4.c.cl.2d
+    amdgcn_image_gather4_c_cl_2darray,         // llvm.amdgcn.image.gather4.c.cl.2darray
+    amdgcn_image_gather4_c_cl_cube,            // llvm.amdgcn.image.gather4.c.cl.cube
+    amdgcn_image_gather4_c_cl_o_2d,            // llvm.amdgcn.image.gather4.c.cl.o.2d
+    amdgcn_image_gather4_c_cl_o_2darray,       // llvm.amdgcn.image.gather4.c.cl.o.2darray
+    amdgcn_image_gather4_c_cl_o_cube,          // llvm.amdgcn.image.gather4.c.cl.o.cube
+    amdgcn_image_gather4_c_cube,               // llvm.amdgcn.image.gather4.c.cube
+    amdgcn_image_gather4_c_l_2d,               // llvm.amdgcn.image.gather4.c.l.2d
+    amdgcn_image_gather4_c_l_2darray,          // llvm.amdgcn.image.gather4.c.l.2darray
+    amdgcn_image_gather4_c_l_cube,             // llvm.amdgcn.image.gather4.c.l.cube
+    amdgcn_image_gather4_c_l_o_2d,             // llvm.amdgcn.image.gather4.c.l.o.2d
+    amdgcn_image_gather4_c_l_o_2darray,        // llvm.amdgcn.image.gather4.c.l.o.2darray
+    amdgcn_image_gather4_c_l_o_cube,           // llvm.amdgcn.image.gather4.c.l.o.cube
+    amdgcn_image_gather4_c_lz_2d,              // llvm.amdgcn.image.gather4.c.lz.2d
+    amdgcn_image_gather4_c_lz_2darray,         // llvm.amdgcn.image.gather4.c.lz.2darray
+    amdgcn_image_gather4_c_lz_cube,            // llvm.amdgcn.image.gather4.c.lz.cube
+    amdgcn_image_gather4_c_lz_o_2d,            // llvm.amdgcn.image.gather4.c.lz.o.2d
+    amdgcn_image_gather4_c_lz_o_2darray,       // llvm.amdgcn.image.gather4.c.lz.o.2darray
+    amdgcn_image_gather4_c_lz_o_cube,          // llvm.amdgcn.image.gather4.c.lz.o.cube
+    amdgcn_image_gather4_c_o_2d,               // llvm.amdgcn.image.gather4.c.o.2d
+    amdgcn_image_gather4_c_o_2darray,          // llvm.amdgcn.image.gather4.c.o.2darray
+    amdgcn_image_gather4_c_o_cube,             // llvm.amdgcn.image.gather4.c.o.cube
+    amdgcn_image_gather4_cl_2d,                // llvm.amdgcn.image.gather4.cl.2d
+    amdgcn_image_gather4_cl_2darray,           // llvm.amdgcn.image.gather4.cl.2darray
+    amdgcn_image_gather4_cl_cube,              // llvm.amdgcn.image.gather4.cl.cube
+    amdgcn_image_gather4_cl_o_2d,              // llvm.amdgcn.image.gather4.cl.o.2d
+    amdgcn_image_gather4_cl_o_2darray,         // llvm.amdgcn.image.gather4.cl.o.2darray
+    amdgcn_image_gather4_cl_o_cube,            // llvm.amdgcn.image.gather4.cl.o.cube
+    amdgcn_image_gather4_cube,                 // llvm.amdgcn.image.gather4.cube
+    amdgcn_image_gather4_l_2d,                 // llvm.amdgcn.image.gather4.l.2d
+    amdgcn_image_gather4_l_2darray,            // llvm.amdgcn.image.gather4.l.2darray
+    amdgcn_image_gather4_l_cube,               // llvm.amdgcn.image.gather4.l.cube
+    amdgcn_image_gather4_l_o_2d,               // llvm.amdgcn.image.gather4.l.o.2d
+    amdgcn_image_gather4_l_o_2darray,          // llvm.amdgcn.image.gather4.l.o.2darray
+    amdgcn_image_gather4_l_o_cube,             // llvm.amdgcn.image.gather4.l.o.cube
+    amdgcn_image_gather4_lz_2d,                // llvm.amdgcn.image.gather4.lz.2d
+    amdgcn_image_gather4_lz_2darray,           // llvm.amdgcn.image.gather4.lz.2darray
+    amdgcn_image_gather4_lz_cube,              // llvm.amdgcn.image.gather4.lz.cube
+    amdgcn_image_gather4_lz_o_2d,              // llvm.amdgcn.image.gather4.lz.o.2d
+    amdgcn_image_gather4_lz_o_2darray,         // llvm.amdgcn.image.gather4.lz.o.2darray
+    amdgcn_image_gather4_lz_o_cube,            // llvm.amdgcn.image.gather4.lz.o.cube
+    amdgcn_image_gather4_o_2d,                 // llvm.amdgcn.image.gather4.o.2d
+    amdgcn_image_gather4_o_2darray,            // llvm.amdgcn.image.gather4.o.2darray
+    amdgcn_image_gather4_o_cube,               // llvm.amdgcn.image.gather4.o.cube
+    amdgcn_image_getlod_1d,                    // llvm.amdgcn.image.getlod.1d
+    amdgcn_image_getlod_1darray,               // llvm.amdgcn.image.getlod.1darray
+    amdgcn_image_getlod_2d,                    // llvm.amdgcn.image.getlod.2d
+    amdgcn_image_getlod_2darray,               // llvm.amdgcn.image.getlod.2darray
+    amdgcn_image_getlod_3d,                    // llvm.amdgcn.image.getlod.3d
+    amdgcn_image_getlod_cube,                  // llvm.amdgcn.image.getlod.cube
+    amdgcn_image_getresinfo_1d,                // llvm.amdgcn.image.getresinfo.1d
+    amdgcn_image_getresinfo_1darray,           // llvm.amdgcn.image.getresinfo.1darray
+    amdgcn_image_getresinfo_2d,                // llvm.amdgcn.image.getresinfo.2d
+    amdgcn_image_getresinfo_2darray,           // llvm.amdgcn.image.getresinfo.2darray
+    amdgcn_image_getresinfo_2darraymsaa,       // llvm.amdgcn.image.getresinfo.2darraymsaa
+    amdgcn_image_getresinfo_2dmsaa,            // llvm.amdgcn.image.getresinfo.2dmsaa
+    amdgcn_image_getresinfo_3d,                // llvm.amdgcn.image.getresinfo.3d
+    amdgcn_image_getresinfo_cube,              // llvm.amdgcn.image.getresinfo.cube
+    amdgcn_image_load_1d,                      // llvm.amdgcn.image.load.1d
+    amdgcn_image_load_1darray,                 // llvm.amdgcn.image.load.1darray
+    amdgcn_image_load_2d,                      // llvm.amdgcn.image.load.2d
+    amdgcn_image_load_2darray,                 // llvm.amdgcn.image.load.2darray
+    amdgcn_image_load_2darraymsaa,             // llvm.amdgcn.image.load.2darraymsaa
+    amdgcn_image_load_2dmsaa,                  // llvm.amdgcn.image.load.2dmsaa
+    amdgcn_image_load_3d,                      // llvm.amdgcn.image.load.3d
+    amdgcn_image_load_cube,                    // llvm.amdgcn.image.load.cube
+    amdgcn_image_load_mip_1d,                  // llvm.amdgcn.image.load.mip.1d
+    amdgcn_image_load_mip_1darray,             // llvm.amdgcn.image.load.mip.1darray
+    amdgcn_image_load_mip_2d,                  // llvm.amdgcn.image.load.mip.2d
+    amdgcn_image_load_mip_2darray,             // llvm.amdgcn.image.load.mip.2darray
+    amdgcn_image_load_mip_3d,                  // llvm.amdgcn.image.load.mip.3d
+    amdgcn_image_load_mip_cube,                // llvm.amdgcn.image.load.mip.cube
+    amdgcn_image_sample_1d,                    // llvm.amdgcn.image.sample.1d
+    amdgcn_image_sample_1darray,               // llvm.amdgcn.image.sample.1darray
+    amdgcn_image_sample_2d,                    // llvm.amdgcn.image.sample.2d
+    amdgcn_image_sample_2darray,               // llvm.amdgcn.image.sample.2darray
+    amdgcn_image_sample_3d,                    // llvm.amdgcn.image.sample.3d
+    amdgcn_image_sample_b_1d,                  // llvm.amdgcn.image.sample.b.1d
+    amdgcn_image_sample_b_1darray,             // llvm.amdgcn.image.sample.b.1darray
+    amdgcn_image_sample_b_2d,                  // llvm.amdgcn.image.sample.b.2d
+    amdgcn_image_sample_b_2darray,             // llvm.amdgcn.image.sample.b.2darray
+    amdgcn_image_sample_b_3d,                  // llvm.amdgcn.image.sample.b.3d
+    amdgcn_image_sample_b_cl_1d,               // llvm.amdgcn.image.sample.b.cl.1d
+    amdgcn_image_sample_b_cl_1darray,          // llvm.amdgcn.image.sample.b.cl.1darray
+    amdgcn_image_sample_b_cl_2d,               // llvm.amdgcn.image.sample.b.cl.2d
+    amdgcn_image_sample_b_cl_2darray,          // llvm.amdgcn.image.sample.b.cl.2darray
+    amdgcn_image_sample_b_cl_3d,               // llvm.amdgcn.image.sample.b.cl.3d
+    amdgcn_image_sample_b_cl_cube,             // llvm.amdgcn.image.sample.b.cl.cube
+    amdgcn_image_sample_b_cl_o_1d,             // llvm.amdgcn.image.sample.b.cl.o.1d
+    amdgcn_image_sample_b_cl_o_1darray,        // llvm.amdgcn.image.sample.b.cl.o.1darray
+    amdgcn_image_sample_b_cl_o_2d,             // llvm.amdgcn.image.sample.b.cl.o.2d
+    amdgcn_image_sample_b_cl_o_2darray,        // llvm.amdgcn.image.sample.b.cl.o.2darray
+    amdgcn_image_sample_b_cl_o_3d,             // llvm.amdgcn.image.sample.b.cl.o.3d
+    amdgcn_image_sample_b_cl_o_cube,           // llvm.amdgcn.image.sample.b.cl.o.cube
+    amdgcn_image_sample_b_cube,                // llvm.amdgcn.image.sample.b.cube
+    amdgcn_image_sample_b_o_1d,                // llvm.amdgcn.image.sample.b.o.1d
+    amdgcn_image_sample_b_o_1darray,           // llvm.amdgcn.image.sample.b.o.1darray
+    amdgcn_image_sample_b_o_2d,                // llvm.amdgcn.image.sample.b.o.2d
+    amdgcn_image_sample_b_o_2darray,           // llvm.amdgcn.image.sample.b.o.2darray
+    amdgcn_image_sample_b_o_3d,                // llvm.amdgcn.image.sample.b.o.3d
+    amdgcn_image_sample_b_o_cube,              // llvm.amdgcn.image.sample.b.o.cube
+    amdgcn_image_sample_c_1d,                  // llvm.amdgcn.image.sample.c.1d
+    amdgcn_image_sample_c_1darray,             // llvm.amdgcn.image.sample.c.1darray
+    amdgcn_image_sample_c_2d,                  // llvm.amdgcn.image.sample.c.2d
+    amdgcn_image_sample_c_2darray,             // llvm.amdgcn.image.sample.c.2darray
+    amdgcn_image_sample_c_3d,                  // llvm.amdgcn.image.sample.c.3d
+    amdgcn_image_sample_c_b_1d,                // llvm.amdgcn.image.sample.c.b.1d
+    amdgcn_image_sample_c_b_1darray,           // llvm.amdgcn.image.sample.c.b.1darray
+    amdgcn_image_sample_c_b_2d,                // llvm.amdgcn.image.sample.c.b.2d
+    amdgcn_image_sample_c_b_2darray,           // llvm.amdgcn.image.sample.c.b.2darray
+    amdgcn_image_sample_c_b_3d,                // llvm.amdgcn.image.sample.c.b.3d
+    amdgcn_image_sample_c_b_cl_1d,             // llvm.amdgcn.image.sample.c.b.cl.1d
+    amdgcn_image_sample_c_b_cl_1darray,        // llvm.amdgcn.image.sample.c.b.cl.1darray
+    amdgcn_image_sample_c_b_cl_2d,             // llvm.amdgcn.image.sample.c.b.cl.2d
+    amdgcn_image_sample_c_b_cl_2darray,        // llvm.amdgcn.image.sample.c.b.cl.2darray
+    amdgcn_image_sample_c_b_cl_3d,             // llvm.amdgcn.image.sample.c.b.cl.3d
+    amdgcn_image_sample_c_b_cl_cube,           // llvm.amdgcn.image.sample.c.b.cl.cube
+    amdgcn_image_sample_c_b_cl_o_1d,           // llvm.amdgcn.image.sample.c.b.cl.o.1d
+    amdgcn_image_sample_c_b_cl_o_1darray,      // llvm.amdgcn.image.sample.c.b.cl.o.1darray
+    amdgcn_image_sample_c_b_cl_o_2d,           // llvm.amdgcn.image.sample.c.b.cl.o.2d
+    amdgcn_image_sample_c_b_cl_o_2darray,      // llvm.amdgcn.image.sample.c.b.cl.o.2darray
+    amdgcn_image_sample_c_b_cl_o_3d,           // llvm.amdgcn.image.sample.c.b.cl.o.3d
+    amdgcn_image_sample_c_b_cl_o_cube,         // llvm.amdgcn.image.sample.c.b.cl.o.cube
+    amdgcn_image_sample_c_b_cube,              // llvm.amdgcn.image.sample.c.b.cube
+    amdgcn_image_sample_c_b_o_1d,              // llvm.amdgcn.image.sample.c.b.o.1d
+    amdgcn_image_sample_c_b_o_1darray,         // llvm.amdgcn.image.sample.c.b.o.1darray
+    amdgcn_image_sample_c_b_o_2d,              // llvm.amdgcn.image.sample.c.b.o.2d
+    amdgcn_image_sample_c_b_o_2darray,         // llvm.amdgcn.image.sample.c.b.o.2darray
+    amdgcn_image_sample_c_b_o_3d,              // llvm.amdgcn.image.sample.c.b.o.3d
+    amdgcn_image_sample_c_b_o_cube,            // llvm.amdgcn.image.sample.c.b.o.cube
+    amdgcn_image_sample_c_cd_1d,               // llvm.amdgcn.image.sample.c.cd.1d
+    amdgcn_image_sample_c_cd_1darray,          // llvm.amdgcn.image.sample.c.cd.1darray
+    amdgcn_image_sample_c_cd_2d,               // llvm.amdgcn.image.sample.c.cd.2d
+    amdgcn_image_sample_c_cd_2darray,          // llvm.amdgcn.image.sample.c.cd.2darray
+    amdgcn_image_sample_c_cd_3d,               // llvm.amdgcn.image.sample.c.cd.3d
+    amdgcn_image_sample_c_cd_cl_1d,            // llvm.amdgcn.image.sample.c.cd.cl.1d
+    amdgcn_image_sample_c_cd_cl_1darray,       // llvm.amdgcn.image.sample.c.cd.cl.1darray
+    amdgcn_image_sample_c_cd_cl_2d,            // llvm.amdgcn.image.sample.c.cd.cl.2d
+    amdgcn_image_sample_c_cd_cl_2darray,       // llvm.amdgcn.image.sample.c.cd.cl.2darray
+    amdgcn_image_sample_c_cd_cl_3d,            // llvm.amdgcn.image.sample.c.cd.cl.3d
+    amdgcn_image_sample_c_cd_cl_cube,          // llvm.amdgcn.image.sample.c.cd.cl.cube
+    amdgcn_image_sample_c_cd_cl_o_1d,          // llvm.amdgcn.image.sample.c.cd.cl.o.1d
+    amdgcn_image_sample_c_cd_cl_o_1darray,     // llvm.amdgcn.image.sample.c.cd.cl.o.1darray
+    amdgcn_image_sample_c_cd_cl_o_2d,          // llvm.amdgcn.image.sample.c.cd.cl.o.2d
+    amdgcn_image_sample_c_cd_cl_o_2darray,     // llvm.amdgcn.image.sample.c.cd.cl.o.2darray
+    amdgcn_image_sample_c_cd_cl_o_3d,          // llvm.amdgcn.image.sample.c.cd.cl.o.3d
+    amdgcn_image_sample_c_cd_cl_o_cube,        // llvm.amdgcn.image.sample.c.cd.cl.o.cube
+    amdgcn_image_sample_c_cd_cube,             // llvm.amdgcn.image.sample.c.cd.cube
+    amdgcn_image_sample_c_cd_o_1d,             // llvm.amdgcn.image.sample.c.cd.o.1d
+    amdgcn_image_sample_c_cd_o_1darray,        // llvm.amdgcn.image.sample.c.cd.o.1darray
+    amdgcn_image_sample_c_cd_o_2d,             // llvm.amdgcn.image.sample.c.cd.o.2d
+    amdgcn_image_sample_c_cd_o_2darray,        // llvm.amdgcn.image.sample.c.cd.o.2darray
+    amdgcn_image_sample_c_cd_o_3d,             // llvm.amdgcn.image.sample.c.cd.o.3d
+    amdgcn_image_sample_c_cd_o_cube,           // llvm.amdgcn.image.sample.c.cd.o.cube
+    amdgcn_image_sample_c_cl_1d,               // llvm.amdgcn.image.sample.c.cl.1d
+    amdgcn_image_sample_c_cl_1darray,          // llvm.amdgcn.image.sample.c.cl.1darray
+    amdgcn_image_sample_c_cl_2d,               // llvm.amdgcn.image.sample.c.cl.2d
+    amdgcn_image_sample_c_cl_2darray,          // llvm.amdgcn.image.sample.c.cl.2darray
+    amdgcn_image_sample_c_cl_3d,               // llvm.amdgcn.image.sample.c.cl.3d
+    amdgcn_image_sample_c_cl_cube,             // llvm.amdgcn.image.sample.c.cl.cube
+    amdgcn_image_sample_c_cl_o_1d,             // llvm.amdgcn.image.sample.c.cl.o.1d
+    amdgcn_image_sample_c_cl_o_1darray,        // llvm.amdgcn.image.sample.c.cl.o.1darray
+    amdgcn_image_sample_c_cl_o_2d,             // llvm.amdgcn.image.sample.c.cl.o.2d
+    amdgcn_image_sample_c_cl_o_2darray,        // llvm.amdgcn.image.sample.c.cl.o.2darray
+    amdgcn_image_sample_c_cl_o_3d,             // llvm.amdgcn.image.sample.c.cl.o.3d
+    amdgcn_image_sample_c_cl_o_cube,           // llvm.amdgcn.image.sample.c.cl.o.cube
+    amdgcn_image_sample_c_cube,                // llvm.amdgcn.image.sample.c.cube
+    amdgcn_image_sample_c_d_1d,                // llvm.amdgcn.image.sample.c.d.1d
+    amdgcn_image_sample_c_d_1darray,           // llvm.amdgcn.image.sample.c.d.1darray
+    amdgcn_image_sample_c_d_2d,                // llvm.amdgcn.image.sample.c.d.2d
+    amdgcn_image_sample_c_d_2darray,           // llvm.amdgcn.image.sample.c.d.2darray
+    amdgcn_image_sample_c_d_3d,                // llvm.amdgcn.image.sample.c.d.3d
+    amdgcn_image_sample_c_d_cl_1d,             // llvm.amdgcn.image.sample.c.d.cl.1d
+    amdgcn_image_sample_c_d_cl_1darray,        // llvm.amdgcn.image.sample.c.d.cl.1darray
+    amdgcn_image_sample_c_d_cl_2d,             // llvm.amdgcn.image.sample.c.d.cl.2d
+    amdgcn_image_sample_c_d_cl_2darray,        // llvm.amdgcn.image.sample.c.d.cl.2darray
+    amdgcn_image_sample_c_d_cl_3d,             // llvm.amdgcn.image.sample.c.d.cl.3d
+    amdgcn_image_sample_c_d_cl_cube,           // llvm.amdgcn.image.sample.c.d.cl.cube
+    amdgcn_image_sample_c_d_cl_o_1d,           // llvm.amdgcn.image.sample.c.d.cl.o.1d
+    amdgcn_image_sample_c_d_cl_o_1darray,      // llvm.amdgcn.image.sample.c.d.cl.o.1darray
+    amdgcn_image_sample_c_d_cl_o_2d,           // llvm.amdgcn.image.sample.c.d.cl.o.2d
+    amdgcn_image_sample_c_d_cl_o_2darray,      // llvm.amdgcn.image.sample.c.d.cl.o.2darray
+    amdgcn_image_sample_c_d_cl_o_3d,           // llvm.amdgcn.image.sample.c.d.cl.o.3d
+    amdgcn_image_sample_c_d_cl_o_cube,         // llvm.amdgcn.image.sample.c.d.cl.o.cube
+    amdgcn_image_sample_c_d_cube,              // llvm.amdgcn.image.sample.c.d.cube
+    amdgcn_image_sample_c_d_o_1d,              // llvm.amdgcn.image.sample.c.d.o.1d
+    amdgcn_image_sample_c_d_o_1darray,         // llvm.amdgcn.image.sample.c.d.o.1darray
+    amdgcn_image_sample_c_d_o_2d,              // llvm.amdgcn.image.sample.c.d.o.2d
+    amdgcn_image_sample_c_d_o_2darray,         // llvm.amdgcn.image.sample.c.d.o.2darray
+    amdgcn_image_sample_c_d_o_3d,              // llvm.amdgcn.image.sample.c.d.o.3d
+    amdgcn_image_sample_c_d_o_cube,            // llvm.amdgcn.image.sample.c.d.o.cube
+    amdgcn_image_sample_c_l_1d,                // llvm.amdgcn.image.sample.c.l.1d
+    amdgcn_image_sample_c_l_1darray,           // llvm.amdgcn.image.sample.c.l.1darray
+    amdgcn_image_sample_c_l_2d,                // llvm.amdgcn.image.sample.c.l.2d
+    amdgcn_image_sample_c_l_2darray,           // llvm.amdgcn.image.sample.c.l.2darray
+    amdgcn_image_sample_c_l_3d,                // llvm.amdgcn.image.sample.c.l.3d
+    amdgcn_image_sample_c_l_cube,              // llvm.amdgcn.image.sample.c.l.cube
+    amdgcn_image_sample_c_l_o_1d,              // llvm.amdgcn.image.sample.c.l.o.1d
+    amdgcn_image_sample_c_l_o_1darray,         // llvm.amdgcn.image.sample.c.l.o.1darray
+    amdgcn_image_sample_c_l_o_2d,              // llvm.amdgcn.image.sample.c.l.o.2d
+    amdgcn_image_sample_c_l_o_2darray,         // llvm.amdgcn.image.sample.c.l.o.2darray
+    amdgcn_image_sample_c_l_o_3d,              // llvm.amdgcn.image.sample.c.l.o.3d
+    amdgcn_image_sample_c_l_o_cube,            // llvm.amdgcn.image.sample.c.l.o.cube
+    amdgcn_image_sample_c_lz_1d,               // llvm.amdgcn.image.sample.c.lz.1d
+    amdgcn_image_sample_c_lz_1darray,          // llvm.amdgcn.image.sample.c.lz.1darray
+    amdgcn_image_sample_c_lz_2d,               // llvm.amdgcn.image.sample.c.lz.2d
+    amdgcn_image_sample_c_lz_2darray,          // llvm.amdgcn.image.sample.c.lz.2darray
+    amdgcn_image_sample_c_lz_3d,               // llvm.amdgcn.image.sample.c.lz.3d
+    amdgcn_image_sample_c_lz_cube,             // llvm.amdgcn.image.sample.c.lz.cube
+    amdgcn_image_sample_c_lz_o_1d,             // llvm.amdgcn.image.sample.c.lz.o.1d
+    amdgcn_image_sample_c_lz_o_1darray,        // llvm.amdgcn.image.sample.c.lz.o.1darray
+    amdgcn_image_sample_c_lz_o_2d,             // llvm.amdgcn.image.sample.c.lz.o.2d
+    amdgcn_image_sample_c_lz_o_2darray,        // llvm.amdgcn.image.sample.c.lz.o.2darray
+    amdgcn_image_sample_c_lz_o_3d,             // llvm.amdgcn.image.sample.c.lz.o.3d
+    amdgcn_image_sample_c_lz_o_cube,           // llvm.amdgcn.image.sample.c.lz.o.cube
+    amdgcn_image_sample_c_o_1d,                // llvm.amdgcn.image.sample.c.o.1d
+    amdgcn_image_sample_c_o_1darray,           // llvm.amdgcn.image.sample.c.o.1darray
+    amdgcn_image_sample_c_o_2d,                // llvm.amdgcn.image.sample.c.o.2d
+    amdgcn_image_sample_c_o_2darray,           // llvm.amdgcn.image.sample.c.o.2darray
+    amdgcn_image_sample_c_o_3d,                // llvm.amdgcn.image.sample.c.o.3d
+    amdgcn_image_sample_c_o_cube,              // llvm.amdgcn.image.sample.c.o.cube
+    amdgcn_image_sample_cd_1d,                 // llvm.amdgcn.image.sample.cd.1d
+    amdgcn_image_sample_cd_1darray,            // llvm.amdgcn.image.sample.cd.1darray
+    amdgcn_image_sample_cd_2d,                 // llvm.amdgcn.image.sample.cd.2d
+    amdgcn_image_sample_cd_2darray,            // llvm.amdgcn.image.sample.cd.2darray
+    amdgcn_image_sample_cd_3d,                 // llvm.amdgcn.image.sample.cd.3d
+    amdgcn_image_sample_cd_cl_1d,              // llvm.amdgcn.image.sample.cd.cl.1d
+    amdgcn_image_sample_cd_cl_1darray,         // llvm.amdgcn.image.sample.cd.cl.1darray
+    amdgcn_image_sample_cd_cl_2d,              // llvm.amdgcn.image.sample.cd.cl.2d
+    amdgcn_image_sample_cd_cl_2darray,         // llvm.amdgcn.image.sample.cd.cl.2darray
+    amdgcn_image_sample_cd_cl_3d,              // llvm.amdgcn.image.sample.cd.cl.3d
+    amdgcn_image_sample_cd_cl_cube,            // llvm.amdgcn.image.sample.cd.cl.cube
+    amdgcn_image_sample_cd_cl_o_1d,            // llvm.amdgcn.image.sample.cd.cl.o.1d
+    amdgcn_image_sample_cd_cl_o_1darray,       // llvm.amdgcn.image.sample.cd.cl.o.1darray
+    amdgcn_image_sample_cd_cl_o_2d,            // llvm.amdgcn.image.sample.cd.cl.o.2d
+    amdgcn_image_sample_cd_cl_o_2darray,       // llvm.amdgcn.image.sample.cd.cl.o.2darray
+    amdgcn_image_sample_cd_cl_o_3d,            // llvm.amdgcn.image.sample.cd.cl.o.3d
+    amdgcn_image_sample_cd_cl_o_cube,          // llvm.amdgcn.image.sample.cd.cl.o.cube
+    amdgcn_image_sample_cd_cube,               // llvm.amdgcn.image.sample.cd.cube
+    amdgcn_image_sample_cd_o_1d,               // llvm.amdgcn.image.sample.cd.o.1d
+    amdgcn_image_sample_cd_o_1darray,          // llvm.amdgcn.image.sample.cd.o.1darray
+    amdgcn_image_sample_cd_o_2d,               // llvm.amdgcn.image.sample.cd.o.2d
+    amdgcn_image_sample_cd_o_2darray,          // llvm.amdgcn.image.sample.cd.o.2darray
+    amdgcn_image_sample_cd_o_3d,               // llvm.amdgcn.image.sample.cd.o.3d
+    amdgcn_image_sample_cd_o_cube,             // llvm.amdgcn.image.sample.cd.o.cube
+    amdgcn_image_sample_cl_1d,                 // llvm.amdgcn.image.sample.cl.1d
+    amdgcn_image_sample_cl_1darray,            // llvm.amdgcn.image.sample.cl.1darray
+    amdgcn_image_sample_cl_2d,                 // llvm.amdgcn.image.sample.cl.2d
+    amdgcn_image_sample_cl_2darray,            // llvm.amdgcn.image.sample.cl.2darray
+    amdgcn_image_sample_cl_3d,                 // llvm.amdgcn.image.sample.cl.3d
+    amdgcn_image_sample_cl_cube,               // llvm.amdgcn.image.sample.cl.cube
+    amdgcn_image_sample_cl_o_1d,               // llvm.amdgcn.image.sample.cl.o.1d
+    amdgcn_image_sample_cl_o_1darray,          // llvm.amdgcn.image.sample.cl.o.1darray
+    amdgcn_image_sample_cl_o_2d,               // llvm.amdgcn.image.sample.cl.o.2d
+    amdgcn_image_sample_cl_o_2darray,          // llvm.amdgcn.image.sample.cl.o.2darray
+    amdgcn_image_sample_cl_o_3d,               // llvm.amdgcn.image.sample.cl.o.3d
+    amdgcn_image_sample_cl_o_cube,             // llvm.amdgcn.image.sample.cl.o.cube
+    amdgcn_image_sample_cube,                  // llvm.amdgcn.image.sample.cube
+    amdgcn_image_sample_d_1d,                  // llvm.amdgcn.image.sample.d.1d
+    amdgcn_image_sample_d_1darray,             // llvm.amdgcn.image.sample.d.1darray
+    amdgcn_image_sample_d_2d,                  // llvm.amdgcn.image.sample.d.2d
+    amdgcn_image_sample_d_2darray,             // llvm.amdgcn.image.sample.d.2darray
+    amdgcn_image_sample_d_3d,                  // llvm.amdgcn.image.sample.d.3d
+    amdgcn_image_sample_d_cl_1d,               // llvm.amdgcn.image.sample.d.cl.1d
+    amdgcn_image_sample_d_cl_1darray,          // llvm.amdgcn.image.sample.d.cl.1darray
+    amdgcn_image_sample_d_cl_2d,               // llvm.amdgcn.image.sample.d.cl.2d
+    amdgcn_image_sample_d_cl_2darray,          // llvm.amdgcn.image.sample.d.cl.2darray
+    amdgcn_image_sample_d_cl_3d,               // llvm.amdgcn.image.sample.d.cl.3d
+    amdgcn_image_sample_d_cl_cube,             // llvm.amdgcn.image.sample.d.cl.cube
+    amdgcn_image_sample_d_cl_o_1d,             // llvm.amdgcn.image.sample.d.cl.o.1d
+    amdgcn_image_sample_d_cl_o_1darray,        // llvm.amdgcn.image.sample.d.cl.o.1darray
+    amdgcn_image_sample_d_cl_o_2d,             // llvm.amdgcn.image.sample.d.cl.o.2d
+    amdgcn_image_sample_d_cl_o_2darray,        // llvm.amdgcn.image.sample.d.cl.o.2darray
+    amdgcn_image_sample_d_cl_o_3d,             // llvm.amdgcn.image.sample.d.cl.o.3d
+    amdgcn_image_sample_d_cl_o_cube,           // llvm.amdgcn.image.sample.d.cl.o.cube
+    amdgcn_image_sample_d_cube,                // llvm.amdgcn.image.sample.d.cube
+    amdgcn_image_sample_d_o_1d,                // llvm.amdgcn.image.sample.d.o.1d
+    amdgcn_image_sample_d_o_1darray,           // llvm.amdgcn.image.sample.d.o.1darray
+    amdgcn_image_sample_d_o_2d,                // llvm.amdgcn.image.sample.d.o.2d
+    amdgcn_image_sample_d_o_2darray,           // llvm.amdgcn.image.sample.d.o.2darray
+    amdgcn_image_sample_d_o_3d,                // llvm.amdgcn.image.sample.d.o.3d
+    amdgcn_image_sample_d_o_cube,              // llvm.amdgcn.image.sample.d.o.cube
+    amdgcn_image_sample_l_1d,                  // llvm.amdgcn.image.sample.l.1d
+    amdgcn_image_sample_l_1darray,             // llvm.amdgcn.image.sample.l.1darray
+    amdgcn_image_sample_l_2d,                  // llvm.amdgcn.image.sample.l.2d
+    amdgcn_image_sample_l_2darray,             // llvm.amdgcn.image.sample.l.2darray
+    amdgcn_image_sample_l_3d,                  // llvm.amdgcn.image.sample.l.3d
+    amdgcn_image_sample_l_cube,                // llvm.amdgcn.image.sample.l.cube
+    amdgcn_image_sample_l_o_1d,                // llvm.amdgcn.image.sample.l.o.1d
+    amdgcn_image_sample_l_o_1darray,           // llvm.amdgcn.image.sample.l.o.1darray
+    amdgcn_image_sample_l_o_2d,                // llvm.amdgcn.image.sample.l.o.2d
+    amdgcn_image_sample_l_o_2darray,           // llvm.amdgcn.image.sample.l.o.2darray
+    amdgcn_image_sample_l_o_3d,                // llvm.amdgcn.image.sample.l.o.3d
+    amdgcn_image_sample_l_o_cube,              // llvm.amdgcn.image.sample.l.o.cube
+    amdgcn_image_sample_lz_1d,                 // llvm.amdgcn.image.sample.lz.1d
+    amdgcn_image_sample_lz_1darray,            // llvm.amdgcn.image.sample.lz.1darray
+    amdgcn_image_sample_lz_2d,                 // llvm.amdgcn.image.sample.lz.2d
+    amdgcn_image_sample_lz_2darray,            // llvm.amdgcn.image.sample.lz.2darray
+    amdgcn_image_sample_lz_3d,                 // llvm.amdgcn.image.sample.lz.3d
+    amdgcn_image_sample_lz_cube,               // llvm.amdgcn.image.sample.lz.cube
+    amdgcn_image_sample_lz_o_1d,               // llvm.amdgcn.image.sample.lz.o.1d
+    amdgcn_image_sample_lz_o_1darray,          // llvm.amdgcn.image.sample.lz.o.1darray
+    amdgcn_image_sample_lz_o_2d,               // llvm.amdgcn.image.sample.lz.o.2d
+    amdgcn_image_sample_lz_o_2darray,          // llvm.amdgcn.image.sample.lz.o.2darray
+    amdgcn_image_sample_lz_o_3d,               // llvm.amdgcn.image.sample.lz.o.3d
+    amdgcn_image_sample_lz_o_cube,             // llvm.amdgcn.image.sample.lz.o.cube
+    amdgcn_image_sample_o_1d,                  // llvm.amdgcn.image.sample.o.1d
+    amdgcn_image_sample_o_1darray,             // llvm.amdgcn.image.sample.o.1darray
+    amdgcn_image_sample_o_2d,                  // llvm.amdgcn.image.sample.o.2d
+    amdgcn_image_sample_o_2darray,             // llvm.amdgcn.image.sample.o.2darray
+    amdgcn_image_sample_o_3d,                  // llvm.amdgcn.image.sample.o.3d
+    amdgcn_image_sample_o_cube,                // llvm.amdgcn.image.sample.o.cube
+    amdgcn_image_store_1d,                     // llvm.amdgcn.image.store.1d
+    amdgcn_image_store_1darray,                // llvm.amdgcn.image.store.1darray
+    amdgcn_image_store_2d,                     // llvm.amdgcn.image.store.2d
+    amdgcn_image_store_2darray,                // llvm.amdgcn.image.store.2darray
+    amdgcn_image_store_2darraymsaa,            // llvm.amdgcn.image.store.2darraymsaa
+    amdgcn_image_store_2dmsaa,                 // llvm.amdgcn.image.store.2dmsaa
+    amdgcn_image_store_3d,                     // llvm.amdgcn.image.store.3d
+    amdgcn_image_store_cube,                   // llvm.amdgcn.image.store.cube
+    amdgcn_image_store_mip_1d,                 // llvm.amdgcn.image.store.mip.1d
+    amdgcn_image_store_mip_1darray,            // llvm.amdgcn.image.store.mip.1darray
+    amdgcn_image_store_mip_2d,                 // llvm.amdgcn.image.store.mip.2d
+    amdgcn_image_store_mip_2darray,            // llvm.amdgcn.image.store.mip.2darray
+    amdgcn_image_store_mip_3d,                 // llvm.amdgcn.image.store.mip.3d
+    amdgcn_image_store_mip_cube,               // llvm.amdgcn.image.store.mip.cube
+    amdgcn_implicit_buffer_ptr,                // llvm.amdgcn.implicit.buffer.ptr
+    amdgcn_implicitarg_ptr,                    // llvm.amdgcn.implicitarg.ptr
+    amdgcn_init_exec,                          // llvm.amdgcn.init.exec
+    amdgcn_init_exec_from_input,               // llvm.amdgcn.init.exec.from.input
+    amdgcn_interp_mov,                         // llvm.amdgcn.interp.mov
+    amdgcn_interp_p1,                          // llvm.amdgcn.interp.p1
+    amdgcn_interp_p2,                          // llvm.amdgcn.interp.p2
+    amdgcn_kernarg_segment_ptr,                // llvm.amdgcn.kernarg.segment.ptr
+    amdgcn_kill,                               // llvm.amdgcn.kill
+    amdgcn_ldexp,                              // llvm.amdgcn.ldexp
+    amdgcn_lerp,                               // llvm.amdgcn.lerp
+    amdgcn_log_clamp,                          // llvm.amdgcn.log.clamp
+    amdgcn_loop,                               // llvm.amdgcn.loop
+    amdgcn_mbcnt_hi,                           // llvm.amdgcn.mbcnt.hi
+    amdgcn_mbcnt_lo,                           // llvm.amdgcn.mbcnt.lo
+    amdgcn_mov_dpp,                            // llvm.amdgcn.mov.dpp
+    amdgcn_mqsad_pk_u16_u8,                    // llvm.amdgcn.mqsad.pk.u16.u8
+    amdgcn_mqsad_u32_u8,                       // llvm.amdgcn.mqsad.u32.u8
+    amdgcn_msad_u8,                            // llvm.amdgcn.msad.u8
+    amdgcn_ps_live,                            // llvm.amdgcn.ps.live
+    amdgcn_qsad_pk_u16_u8,                     // llvm.amdgcn.qsad.pk.u16.u8
+    amdgcn_queue_ptr,                          // llvm.amdgcn.queue.ptr
+    amdgcn_rcp,                                // llvm.amdgcn.rcp
+    amdgcn_rcp_legacy,                         // llvm.amdgcn.rcp.legacy
+    amdgcn_readfirstlane,                      // llvm.amdgcn.readfirstlane
+    amdgcn_readlane,                           // llvm.amdgcn.readlane
+    amdgcn_rsq,                                // llvm.amdgcn.rsq
+    amdgcn_rsq_clamp,                          // llvm.amdgcn.rsq.clamp
+    amdgcn_rsq_legacy,                         // llvm.amdgcn.rsq.legacy
+    amdgcn_s_barrier,                          // llvm.amdgcn.s.barrier
+    amdgcn_s_dcache_inv,                       // llvm.amdgcn.s.dcache.inv
+    amdgcn_s_dcache_inv_vol,                   // llvm.amdgcn.s.dcache.inv.vol
+    amdgcn_s_dcache_wb,                        // llvm.amdgcn.s.dcache.wb
+    amdgcn_s_dcache_wb_vol,                    // llvm.amdgcn.s.dcache.wb.vol
+    amdgcn_s_decperflevel,                     // llvm.amdgcn.s.decperflevel
+    amdgcn_s_getpc,                            // llvm.amdgcn.s.getpc
+    amdgcn_s_getreg,                           // llvm.amdgcn.s.getreg
+    amdgcn_s_incperflevel,                     // llvm.amdgcn.s.incperflevel
+    amdgcn_s_memrealtime,                      // llvm.amdgcn.s.memrealtime
+    amdgcn_s_memtime,                          // llvm.amdgcn.s.memtime
+    amdgcn_s_sendmsg,                          // llvm.amdgcn.s.sendmsg
+    amdgcn_s_sendmsghalt,                      // llvm.amdgcn.s.sendmsghalt
+    amdgcn_s_sleep,                            // llvm.amdgcn.s.sleep
+    amdgcn_s_waitcnt,                          // llvm.amdgcn.s.waitcnt
+    amdgcn_sad_hi_u8,                          // llvm.amdgcn.sad.hi.u8
+    amdgcn_sad_u16,                            // llvm.amdgcn.sad.u16
+    amdgcn_sad_u8,                             // llvm.amdgcn.sad.u8
+    amdgcn_sbfe,                               // llvm.amdgcn.sbfe
+    amdgcn_sdot2,                              // llvm.amdgcn.sdot2
+    amdgcn_sdot4,                              // llvm.amdgcn.sdot4
+    amdgcn_sdot8,                              // llvm.amdgcn.sdot8
+    amdgcn_set_inactive,                       // llvm.amdgcn.set.inactive
+    amdgcn_sffbh,                              // llvm.amdgcn.sffbh
+    amdgcn_sin,                                // llvm.amdgcn.sin
+    amdgcn_tbuffer_load,                       // llvm.amdgcn.tbuffer.load
+    amdgcn_tbuffer_store,                      // llvm.amdgcn.tbuffer.store
+    amdgcn_trig_preop,                         // llvm.amdgcn.trig.preop
+    amdgcn_ubfe,                               // llvm.amdgcn.ubfe
+    amdgcn_udot2,                              // llvm.amdgcn.udot2
+    amdgcn_udot4,                              // llvm.amdgcn.udot4
+    amdgcn_udot8,                              // llvm.amdgcn.udot8
+    amdgcn_unreachable,                        // llvm.amdgcn.unreachable
+    amdgcn_update_dpp,                         // llvm.amdgcn.update.dpp
+    amdgcn_wave_barrier,                       // llvm.amdgcn.wave.barrier
+    amdgcn_workgroup_id_x,                     // llvm.amdgcn.workgroup.id.x
+    amdgcn_workgroup_id_y,                     // llvm.amdgcn.workgroup.id.y
+    amdgcn_workgroup_id_z,                     // llvm.amdgcn.workgroup.id.z
+    amdgcn_workitem_id_x,                      // llvm.amdgcn.workitem.id.x
+    amdgcn_workitem_id_y,                      // llvm.amdgcn.workitem.id.y
+    amdgcn_workitem_id_z,                      // llvm.amdgcn.workitem.id.z
+    amdgcn_wqm,                                // llvm.amdgcn.wqm
+    amdgcn_wqm_vote,                           // llvm.amdgcn.wqm.vote
+    amdgcn_writelane,                          // llvm.amdgcn.writelane
+    amdgcn_wwm,                                // llvm.amdgcn.wwm
+    arm_cdp,                                   // llvm.arm.cdp
+    arm_cdp2,                                  // llvm.arm.cdp2
+    arm_clrex,                                 // llvm.arm.clrex
+    arm_crc32b,                                // llvm.arm.crc32b
+    arm_crc32cb,                               // llvm.arm.crc32cb
+    arm_crc32ch,                               // llvm.arm.crc32ch
+    arm_crc32cw,                               // llvm.arm.crc32cw
+    arm_crc32h,                                // llvm.arm.crc32h
+    arm_crc32w,                                // llvm.arm.crc32w
+    arm_dbg,                                   // llvm.arm.dbg
+    arm_dmb,                                   // llvm.arm.dmb
+    arm_dsb,                                   // llvm.arm.dsb
+    arm_get_fpscr,                             // llvm.arm.get.fpscr
+    arm_hint,                                  // llvm.arm.hint
+    arm_isb,                                   // llvm.arm.isb
+    arm_ldaex,                                 // llvm.arm.ldaex
+    arm_ldaexd,                                // llvm.arm.ldaexd
+    arm_ldc,                                   // llvm.arm.ldc
+    arm_ldc2,                                  // llvm.arm.ldc2
+    arm_ldc2l,                                 // llvm.arm.ldc2l
+    arm_ldcl,                                  // llvm.arm.ldcl
+    arm_ldrex,                                 // llvm.arm.ldrex
+    arm_ldrexd,                                // llvm.arm.ldrexd
+    arm_mcr,                                   // llvm.arm.mcr
+    arm_mcr2,                                  // llvm.arm.mcr2
+    arm_mcrr,                                  // llvm.arm.mcrr
+    arm_mcrr2,                                 // llvm.arm.mcrr2
+    arm_mrc,                                   // llvm.arm.mrc
+    arm_mrc2,                                  // llvm.arm.mrc2
+    arm_mrrc,                                  // llvm.arm.mrrc
+    arm_mrrc2,                                 // llvm.arm.mrrc2
+    arm_neon_aesd,                             // llvm.arm.neon.aesd
+    arm_neon_aese,                             // llvm.arm.neon.aese
+    arm_neon_aesimc,                           // llvm.arm.neon.aesimc
+    arm_neon_aesmc,                            // llvm.arm.neon.aesmc
+    arm_neon_sdot,                             // llvm.arm.neon.sdot
+    arm_neon_sha1c,                            // llvm.arm.neon.sha1c
+    arm_neon_sha1h,                            // llvm.arm.neon.sha1h
+    arm_neon_sha1m,                            // llvm.arm.neon.sha1m
+    arm_neon_sha1p,                            // llvm.arm.neon.sha1p
+    arm_neon_sha1su0,                          // llvm.arm.neon.sha1su0
+    arm_neon_sha1su1,                          // llvm.arm.neon.sha1su1
+    arm_neon_sha256h,                          // llvm.arm.neon.sha256h
+    arm_neon_sha256h2,                         // llvm.arm.neon.sha256h2
+    arm_neon_sha256su0,                        // llvm.arm.neon.sha256su0
+    arm_neon_sha256su1,                        // llvm.arm.neon.sha256su1
+    arm_neon_udot,                             // llvm.arm.neon.udot
+    arm_neon_vabds,                            // llvm.arm.neon.vabds
+    arm_neon_vabdu,                            // llvm.arm.neon.vabdu
+    arm_neon_vabs,                             // llvm.arm.neon.vabs
+    arm_neon_vacge,                            // llvm.arm.neon.vacge
+    arm_neon_vacgt,                            // llvm.arm.neon.vacgt
+    arm_neon_vbsl,                             // llvm.arm.neon.vbsl
+    arm_neon_vcls,                             // llvm.arm.neon.vcls
+    arm_neon_vcvtas,                           // llvm.arm.neon.vcvtas
+    arm_neon_vcvtau,                           // llvm.arm.neon.vcvtau
+    arm_neon_vcvtfp2fxs,                       // llvm.arm.neon.vcvtfp2fxs
+    arm_neon_vcvtfp2fxu,                       // llvm.arm.neon.vcvtfp2fxu
+    arm_neon_vcvtfp2hf,                        // llvm.arm.neon.vcvtfp2hf
+    arm_neon_vcvtfxs2fp,                       // llvm.arm.neon.vcvtfxs2fp
+    arm_neon_vcvtfxu2fp,                       // llvm.arm.neon.vcvtfxu2fp
+    arm_neon_vcvthf2fp,                        // llvm.arm.neon.vcvthf2fp
+    arm_neon_vcvtms,                           // llvm.arm.neon.vcvtms
+    arm_neon_vcvtmu,                           // llvm.arm.neon.vcvtmu
+    arm_neon_vcvtns,                           // llvm.arm.neon.vcvtns
+    arm_neon_vcvtnu,                           // llvm.arm.neon.vcvtnu
+    arm_neon_vcvtps,                           // llvm.arm.neon.vcvtps
+    arm_neon_vcvtpu,                           // llvm.arm.neon.vcvtpu
+    arm_neon_vhadds,                           // llvm.arm.neon.vhadds
+    arm_neon_vhaddu,                           // llvm.arm.neon.vhaddu
+    arm_neon_vhsubs,                           // llvm.arm.neon.vhsubs
+    arm_neon_vhsubu,                           // llvm.arm.neon.vhsubu
+    arm_neon_vld1,                             // llvm.arm.neon.vld1
+    arm_neon_vld1x2,                           // llvm.arm.neon.vld1x2
+    arm_neon_vld1x3,                           // llvm.arm.neon.vld1x3
+    arm_neon_vld1x4,                           // llvm.arm.neon.vld1x4
+    arm_neon_vld2,                             // llvm.arm.neon.vld2
+    arm_neon_vld2dup,                          // llvm.arm.neon.vld2dup
+    arm_neon_vld2lane,                         // llvm.arm.neon.vld2lane
+    arm_neon_vld3,                             // llvm.arm.neon.vld3
+    arm_neon_vld3dup,                          // llvm.arm.neon.vld3dup
+    arm_neon_vld3lane,                         // llvm.arm.neon.vld3lane
+    arm_neon_vld4,                             // llvm.arm.neon.vld4
+    arm_neon_vld4dup,                          // llvm.arm.neon.vld4dup
+    arm_neon_vld4lane,                         // llvm.arm.neon.vld4lane
+    arm_neon_vmaxnm,                           // llvm.arm.neon.vmaxnm
+    arm_neon_vmaxs,                            // llvm.arm.neon.vmaxs
+    arm_neon_vmaxu,                            // llvm.arm.neon.vmaxu
+    arm_neon_vminnm,                           // llvm.arm.neon.vminnm
+    arm_neon_vmins,                            // llvm.arm.neon.vmins
+    arm_neon_vminu,                            // llvm.arm.neon.vminu
+    arm_neon_vmullp,                           // llvm.arm.neon.vmullp
+    arm_neon_vmulls,                           // llvm.arm.neon.vmulls
+    arm_neon_vmullu,                           // llvm.arm.neon.vmullu
+    arm_neon_vmulp,                            // llvm.arm.neon.vmulp
+    arm_neon_vpadals,                          // llvm.arm.neon.vpadals
+    arm_neon_vpadalu,                          // llvm.arm.neon.vpadalu
+    arm_neon_vpadd,                            // llvm.arm.neon.vpadd
+    arm_neon_vpaddls,                          // llvm.arm.neon.vpaddls
+    arm_neon_vpaddlu,                          // llvm.arm.neon.vpaddlu
+    arm_neon_vpmaxs,                           // llvm.arm.neon.vpmaxs
+    arm_neon_vpmaxu,                           // llvm.arm.neon.vpmaxu
+    arm_neon_vpmins,                           // llvm.arm.neon.vpmins
+    arm_neon_vpminu,                           // llvm.arm.neon.vpminu
+    arm_neon_vqabs,                            // llvm.arm.neon.vqabs
+    arm_neon_vqadds,                           // llvm.arm.neon.vqadds
+    arm_neon_vqaddu,                           // llvm.arm.neon.vqaddu
+    arm_neon_vqdmulh,                          // llvm.arm.neon.vqdmulh
+    arm_neon_vqdmull,                          // llvm.arm.neon.vqdmull
+    arm_neon_vqmovns,                          // llvm.arm.neon.vqmovns
+    arm_neon_vqmovnsu,                         // llvm.arm.neon.vqmovnsu
+    arm_neon_vqmovnu,                          // llvm.arm.neon.vqmovnu
+    arm_neon_vqneg,                            // llvm.arm.neon.vqneg
+    arm_neon_vqrdmulh,                         // llvm.arm.neon.vqrdmulh
+    arm_neon_vqrshiftns,                       // llvm.arm.neon.vqrshiftns
+    arm_neon_vqrshiftnsu,                      // llvm.arm.neon.vqrshiftnsu
+    arm_neon_vqrshiftnu,                       // llvm.arm.neon.vqrshiftnu
+    arm_neon_vqrshifts,                        // llvm.arm.neon.vqrshifts
+    arm_neon_vqrshiftu,                        // llvm.arm.neon.vqrshiftu
+    arm_neon_vqshiftns,                        // llvm.arm.neon.vqshiftns
+    arm_neon_vqshiftnsu,                       // llvm.arm.neon.vqshiftnsu
+    arm_neon_vqshiftnu,                        // llvm.arm.neon.vqshiftnu
+    arm_neon_vqshifts,                         // llvm.arm.neon.vqshifts
+    arm_neon_vqshiftsu,                        // llvm.arm.neon.vqshiftsu
+    arm_neon_vqshiftu,                         // llvm.arm.neon.vqshiftu
+    arm_neon_vqsubs,                           // llvm.arm.neon.vqsubs
+    arm_neon_vqsubu,                           // llvm.arm.neon.vqsubu
+    arm_neon_vraddhn,                          // llvm.arm.neon.vraddhn
+    arm_neon_vrecpe,                           // llvm.arm.neon.vrecpe
+    arm_neon_vrecps,                           // llvm.arm.neon.vrecps
+    arm_neon_vrhadds,                          // llvm.arm.neon.vrhadds
+    arm_neon_vrhaddu,                          // llvm.arm.neon.vrhaddu
+    arm_neon_vrinta,                           // llvm.arm.neon.vrinta
+    arm_neon_vrintm,                           // llvm.arm.neon.vrintm
+    arm_neon_vrintn,                           // llvm.arm.neon.vrintn
+    arm_neon_vrintp,                           // llvm.arm.neon.vrintp
+    arm_neon_vrintx,                           // llvm.arm.neon.vrintx
+    arm_neon_vrintz,                           // llvm.arm.neon.vrintz
+    arm_neon_vrshiftn,                         // llvm.arm.neon.vrshiftn
+    arm_neon_vrshifts,                         // llvm.arm.neon.vrshifts
+    arm_neon_vrshiftu,                         // llvm.arm.neon.vrshiftu
+    arm_neon_vrsqrte,                          // llvm.arm.neon.vrsqrte
+    arm_neon_vrsqrts,                          // llvm.arm.neon.vrsqrts
+    arm_neon_vrsubhn,                          // llvm.arm.neon.vrsubhn
+    arm_neon_vshiftins,                        // llvm.arm.neon.vshiftins
+    arm_neon_vshifts,                          // llvm.arm.neon.vshifts
+    arm_neon_vshiftu,                          // llvm.arm.neon.vshiftu
+    arm_neon_vst1,                             // llvm.arm.neon.vst1
+    arm_neon_vst1x2,                           // llvm.arm.neon.vst1x2
+    arm_neon_vst1x3,                           // llvm.arm.neon.vst1x3
+    arm_neon_vst1x4,                           // llvm.arm.neon.vst1x4
+    arm_neon_vst2,                             // llvm.arm.neon.vst2
+    arm_neon_vst2lane,                         // llvm.arm.neon.vst2lane
+    arm_neon_vst3,                             // llvm.arm.neon.vst3
+    arm_neon_vst3lane,                         // llvm.arm.neon.vst3lane
+    arm_neon_vst4,                             // llvm.arm.neon.vst4
+    arm_neon_vst4lane,                         // llvm.arm.neon.vst4lane
+    arm_neon_vtbl1,                            // llvm.arm.neon.vtbl1
+    arm_neon_vtbl2,                            // llvm.arm.neon.vtbl2
+    arm_neon_vtbl3,                            // llvm.arm.neon.vtbl3
+    arm_neon_vtbl4,                            // llvm.arm.neon.vtbl4
+    arm_neon_vtbx1,                            // llvm.arm.neon.vtbx1
+    arm_neon_vtbx2,                            // llvm.arm.neon.vtbx2
+    arm_neon_vtbx3,                            // llvm.arm.neon.vtbx3
+    arm_neon_vtbx4,                            // llvm.arm.neon.vtbx4
+    arm_qadd,                                  // llvm.arm.qadd
+    arm_qadd16,                                // llvm.arm.qadd16
+    arm_qadd8,                                 // llvm.arm.qadd8
+    arm_qasx,                                  // llvm.arm.qasx
+    arm_qsax,                                  // llvm.arm.qsax
+    arm_qsub,                                  // llvm.arm.qsub
+    arm_qsub16,                                // llvm.arm.qsub16
+    arm_qsub8,                                 // llvm.arm.qsub8
+    arm_sadd16,                                // llvm.arm.sadd16
+    arm_sadd8,                                 // llvm.arm.sadd8
+    arm_sasx,                                  // llvm.arm.sasx
+    arm_sel,                                   // llvm.arm.sel
+    arm_set_fpscr,                             // llvm.arm.set.fpscr
+    arm_shadd16,                               // llvm.arm.shadd16
+    arm_shadd8,                                // llvm.arm.shadd8
+    arm_shasx,                                 // llvm.arm.shasx
+    arm_shsax,                                 // llvm.arm.shsax
+    arm_shsub16,                               // llvm.arm.shsub16
+    arm_shsub8,                                // llvm.arm.shsub8
+    arm_smlabb,                                // llvm.arm.smlabb
+    arm_smlabt,                                // llvm.arm.smlabt
+    arm_smlad,                                 // llvm.arm.smlad
+    arm_smladx,                                // llvm.arm.smladx
+    arm_smlald,                                // llvm.arm.smlald
+    arm_smlaldx,                               // llvm.arm.smlaldx
+    arm_smlatb,                                // llvm.arm.smlatb
+    arm_smlatt,                                // llvm.arm.smlatt
+    arm_smlawb,                                // llvm.arm.smlawb
+    arm_smlawt,                                // llvm.arm.smlawt
+    arm_smlsd,                                 // llvm.arm.smlsd
+    arm_smlsdx,                                // llvm.arm.smlsdx
+    arm_smlsld,                                // llvm.arm.smlsld
+    arm_smlsldx,                               // llvm.arm.smlsldx
+    arm_smuad,                                 // llvm.arm.smuad
+    arm_smuadx,                                // llvm.arm.smuadx
+    arm_smulbb,                                // llvm.arm.smulbb
+    arm_smulbt,                                // llvm.arm.smulbt
+    arm_smultb,                                // llvm.arm.smultb
+    arm_smultt,                                // llvm.arm.smultt
+    arm_smulwb,                                // llvm.arm.smulwb
+    arm_smulwt,                                // llvm.arm.smulwt
+    arm_smusd,                                 // llvm.arm.smusd
+    arm_smusdx,                                // llvm.arm.smusdx
+    arm_space,                                 // llvm.arm.space
+    arm_ssat,                                  // llvm.arm.ssat
+    arm_ssat16,                                // llvm.arm.ssat16
+    arm_ssax,                                  // llvm.arm.ssax
+    arm_ssub16,                                // llvm.arm.ssub16
+    arm_ssub8,                                 // llvm.arm.ssub8
+    arm_stc,                                   // llvm.arm.stc
+    arm_stc2,                                  // llvm.arm.stc2
+    arm_stc2l,                                 // llvm.arm.stc2l
+    arm_stcl,                                  // llvm.arm.stcl
+    arm_stlex,                                 // llvm.arm.stlex
+    arm_stlexd,                                // llvm.arm.stlexd
+    arm_strex,                                 // llvm.arm.strex
+    arm_strexd,                                // llvm.arm.strexd
+    arm_sxtab16,                               // llvm.arm.sxtab16
+    arm_sxtb16,                                // llvm.arm.sxtb16
+    arm_uadd16,                                // llvm.arm.uadd16
+    arm_uadd8,                                 // llvm.arm.uadd8
+    arm_uasx,                                  // llvm.arm.uasx
+    arm_uhadd16,                               // llvm.arm.uhadd16
+    arm_uhadd8,                                // llvm.arm.uhadd8
+    arm_uhasx,                                 // llvm.arm.uhasx
+    arm_uhsax,                                 // llvm.arm.uhsax
+    arm_uhsub16,                               // llvm.arm.uhsub16
+    arm_uhsub8,                                // llvm.arm.uhsub8
+    arm_undefined,                             // llvm.arm.undefined
+    arm_uqadd16,                               // llvm.arm.uqadd16
+    arm_uqadd8,                                // llvm.arm.uqadd8
+    arm_uqasx,                                 // llvm.arm.uqasx
+    arm_uqsax,                                 // llvm.arm.uqsax
+    arm_uqsub16,                               // llvm.arm.uqsub16
+    arm_uqsub8,                                // llvm.arm.uqsub8
+    arm_usad8,                                 // llvm.arm.usad8
+    arm_usada8,                                // llvm.arm.usada8
+    arm_usat,                                  // llvm.arm.usat
+    arm_usat16,                                // llvm.arm.usat16
+    arm_usax,                                  // llvm.arm.usax
+    arm_usub16,                                // llvm.arm.usub16
+    arm_usub8,                                 // llvm.arm.usub8
+    arm_uxtab16,                               // llvm.arm.uxtab16
+    arm_uxtb16,                                // llvm.arm.uxtb16
+    arm_vcvtr,                                 // llvm.arm.vcvtr
+    arm_vcvtru,                                // llvm.arm.vcvtru
+    bpf_load_byte,                             // llvm.bpf.load.byte
+    bpf_load_half,                             // llvm.bpf.load.half
+    bpf_load_word,                             // llvm.bpf.load.word
+    bpf_pseudo,                                // llvm.bpf.pseudo
+    hexagon_A2_abs,                            // llvm.hexagon.A2.abs
+    hexagon_A2_absp,                           // llvm.hexagon.A2.absp
+    hexagon_A2_abssat,                         // llvm.hexagon.A2.abssat
+    hexagon_A2_add,                            // llvm.hexagon.A2.add
+    hexagon_A2_addh_h16_hh,                    // llvm.hexagon.A2.addh.h16.hh
+    hexagon_A2_addh_h16_hl,                    // llvm.hexagon.A2.addh.h16.hl
+    hexagon_A2_addh_h16_lh,                    // llvm.hexagon.A2.addh.h16.lh
+    hexagon_A2_addh_h16_ll,                    // llvm.hexagon.A2.addh.h16.ll
+    hexagon_A2_addh_h16_sat_hh,                // llvm.hexagon.A2.addh.h16.sat.hh
+    hexagon_A2_addh_h16_sat_hl,                // llvm.hexagon.A2.addh.h16.sat.hl
+    hexagon_A2_addh_h16_sat_lh,                // llvm.hexagon.A2.addh.h16.sat.lh
+    hexagon_A2_addh_h16_sat_ll,                // llvm.hexagon.A2.addh.h16.sat.ll
+    hexagon_A2_addh_l16_hl,                    // llvm.hexagon.A2.addh.l16.hl
+    hexagon_A2_addh_l16_ll,                    // llvm.hexagon.A2.addh.l16.ll
+    hexagon_A2_addh_l16_sat_hl,                // llvm.hexagon.A2.addh.l16.sat.hl
+    hexagon_A2_addh_l16_sat_ll,                // llvm.hexagon.A2.addh.l16.sat.ll
+    hexagon_A2_addi,                           // llvm.hexagon.A2.addi
+    hexagon_A2_addp,                           // llvm.hexagon.A2.addp
+    hexagon_A2_addpsat,                        // llvm.hexagon.A2.addpsat
+    hexagon_A2_addsat,                         // llvm.hexagon.A2.addsat
+    hexagon_A2_addsp,                          // llvm.hexagon.A2.addsp
+    hexagon_A2_and,                            // llvm.hexagon.A2.and
+    hexagon_A2_andir,                          // llvm.hexagon.A2.andir
+    hexagon_A2_andp,                           // llvm.hexagon.A2.andp
+    hexagon_A2_aslh,                           // llvm.hexagon.A2.aslh
+    hexagon_A2_asrh,                           // llvm.hexagon.A2.asrh
+    hexagon_A2_combine_hh,                     // llvm.hexagon.A2.combine.hh
+    hexagon_A2_combine_hl,                     // llvm.hexagon.A2.combine.hl
+    hexagon_A2_combine_lh,                     // llvm.hexagon.A2.combine.lh
+    hexagon_A2_combine_ll,                     // llvm.hexagon.A2.combine.ll
+    hexagon_A2_combineii,                      // llvm.hexagon.A2.combineii
+    hexagon_A2_combinew,                       // llvm.hexagon.A2.combinew
+    hexagon_A2_max,                            // llvm.hexagon.A2.max
+    hexagon_A2_maxp,                           // llvm.hexagon.A2.maxp
+    hexagon_A2_maxu,                           // llvm.hexagon.A2.maxu
+    hexagon_A2_maxup,                          // llvm.hexagon.A2.maxup
+    hexagon_A2_min,                            // llvm.hexagon.A2.min
+    hexagon_A2_minp,                           // llvm.hexagon.A2.minp
+    hexagon_A2_minu,                           // llvm.hexagon.A2.minu
+    hexagon_A2_minup,                          // llvm.hexagon.A2.minup
+    hexagon_A2_neg,                            // llvm.hexagon.A2.neg
+    hexagon_A2_negp,                           // llvm.hexagon.A2.negp
+    hexagon_A2_negsat,                         // llvm.hexagon.A2.negsat
+    hexagon_A2_not,                            // llvm.hexagon.A2.not
+    hexagon_A2_notp,                           // llvm.hexagon.A2.notp
+    hexagon_A2_or,                             // llvm.hexagon.A2.or
+    hexagon_A2_orir,                           // llvm.hexagon.A2.orir
+    hexagon_A2_orp,                            // llvm.hexagon.A2.orp
+    hexagon_A2_roundsat,                       // llvm.hexagon.A2.roundsat
+    hexagon_A2_sat,                            // llvm.hexagon.A2.sat
+    hexagon_A2_satb,                           // llvm.hexagon.A2.satb
+    hexagon_A2_sath,                           // llvm.hexagon.A2.sath
+    hexagon_A2_satub,                          // llvm.hexagon.A2.satub
+    hexagon_A2_satuh,                          // llvm.hexagon.A2.satuh
+    hexagon_A2_sub,                            // llvm.hexagon.A2.sub
+    hexagon_A2_subh_h16_hh,                    // llvm.hexagon.A2.subh.h16.hh
+    hexagon_A2_subh_h16_hl,                    // llvm.hexagon.A2.subh.h16.hl
+    hexagon_A2_subh_h16_lh,                    // llvm.hexagon.A2.subh.h16.lh
+    hexagon_A2_subh_h16_ll,                    // llvm.hexagon.A2.subh.h16.ll
+    hexagon_A2_subh_h16_sat_hh,                // llvm.hexagon.A2.subh.h16.sat.hh
+    hexagon_A2_subh_h16_sat_hl,                // llvm.hexagon.A2.subh.h16.sat.hl
+    hexagon_A2_subh_h16_sat_lh,                // llvm.hexagon.A2.subh.h16.sat.lh
+    hexagon_A2_subh_h16_sat_ll,                // llvm.hexagon.A2.subh.h16.sat.ll
+    hexagon_A2_subh_l16_hl,                    // llvm.hexagon.A2.subh.l16.hl
+    hexagon_A2_subh_l16_ll,                    // llvm.hexagon.A2.subh.l16.ll
+    hexagon_A2_subh_l16_sat_hl,                // llvm.hexagon.A2.subh.l16.sat.hl
+    hexagon_A2_subh_l16_sat_ll,                // llvm.hexagon.A2.subh.l16.sat.ll
+    hexagon_A2_subp,                           // llvm.hexagon.A2.subp
+    hexagon_A2_subri,                          // llvm.hexagon.A2.subri
+    hexagon_A2_subsat,                         // llvm.hexagon.A2.subsat
+    hexagon_A2_svaddh,                         // llvm.hexagon.A2.svaddh
+    hexagon_A2_svaddhs,                        // llvm.hexagon.A2.svaddhs
+    hexagon_A2_svadduhs,                       // llvm.hexagon.A2.svadduhs
+    hexagon_A2_svavgh,                         // llvm.hexagon.A2.svavgh
+    hexagon_A2_svavghs,                        // llvm.hexagon.A2.svavghs
+    hexagon_A2_svnavgh,                        // llvm.hexagon.A2.svnavgh
+    hexagon_A2_svsubh,                         // llvm.hexagon.A2.svsubh
+    hexagon_A2_svsubhs,                        // llvm.hexagon.A2.svsubhs
+    hexagon_A2_svsubuhs,                       // llvm.hexagon.A2.svsubuhs
+    hexagon_A2_swiz,                           // llvm.hexagon.A2.swiz
+    hexagon_A2_sxtb,                           // llvm.hexagon.A2.sxtb
+    hexagon_A2_sxth,                           // llvm.hexagon.A2.sxth
+    hexagon_A2_sxtw,                           // llvm.hexagon.A2.sxtw
+    hexagon_A2_tfr,                            // llvm.hexagon.A2.tfr
+    hexagon_A2_tfrih,                          // llvm.hexagon.A2.tfrih
+    hexagon_A2_tfril,                          // llvm.hexagon.A2.tfril
+    hexagon_A2_tfrp,                           // llvm.hexagon.A2.tfrp
+    hexagon_A2_tfrpi,                          // llvm.hexagon.A2.tfrpi
+    hexagon_A2_tfrsi,                          // llvm.hexagon.A2.tfrsi
+    hexagon_A2_vabsh,                          // llvm.hexagon.A2.vabsh
+    hexagon_A2_vabshsat,                       // llvm.hexagon.A2.vabshsat
+    hexagon_A2_vabsw,                          // llvm.hexagon.A2.vabsw
+    hexagon_A2_vabswsat,                       // llvm.hexagon.A2.vabswsat
+    hexagon_A2_vaddb_map,                      // llvm.hexagon.A2.vaddb.map
+    hexagon_A2_vaddh,                          // llvm.hexagon.A2.vaddh
+    hexagon_A2_vaddhs,                         // llvm.hexagon.A2.vaddhs
+    hexagon_A2_vaddub,                         // llvm.hexagon.A2.vaddub
+    hexagon_A2_vaddubs,                        // llvm.hexagon.A2.vaddubs
+    hexagon_A2_vadduhs,                        // llvm.hexagon.A2.vadduhs
+    hexagon_A2_vaddw,                          // llvm.hexagon.A2.vaddw
+    hexagon_A2_vaddws,                         // llvm.hexagon.A2.vaddws
+    hexagon_A2_vavgh,                          // llvm.hexagon.A2.vavgh
+    hexagon_A2_vavghcr,                        // llvm.hexagon.A2.vavghcr
+    hexagon_A2_vavghr,                         // llvm.hexagon.A2.vavghr
+    hexagon_A2_vavgub,                         // llvm.hexagon.A2.vavgub
+    hexagon_A2_vavgubr,                        // llvm.hexagon.A2.vavgubr
+    hexagon_A2_vavguh,                         // llvm.hexagon.A2.vavguh
+    hexagon_A2_vavguhr,                        // llvm.hexagon.A2.vavguhr
+    hexagon_A2_vavguw,                         // llvm.hexagon.A2.vavguw
+    hexagon_A2_vavguwr,                        // llvm.hexagon.A2.vavguwr
+    hexagon_A2_vavgw,                          // llvm.hexagon.A2.vavgw
+    hexagon_A2_vavgwcr,                        // llvm.hexagon.A2.vavgwcr
+    hexagon_A2_vavgwr,                         // llvm.hexagon.A2.vavgwr
+    hexagon_A2_vcmpbeq,                        // llvm.hexagon.A2.vcmpbeq
+    hexagon_A2_vcmpbgtu,                       // llvm.hexagon.A2.vcmpbgtu
+    hexagon_A2_vcmpheq,                        // llvm.hexagon.A2.vcmpheq
+    hexagon_A2_vcmphgt,                        // llvm.hexagon.A2.vcmphgt
+    hexagon_A2_vcmphgtu,                       // llvm.hexagon.A2.vcmphgtu
+    hexagon_A2_vcmpweq,                        // llvm.hexagon.A2.vcmpweq
+    hexagon_A2_vcmpwgt,                        // llvm.hexagon.A2.vcmpwgt
+    hexagon_A2_vcmpwgtu,                       // llvm.hexagon.A2.vcmpwgtu
+    hexagon_A2_vconj,                          // llvm.hexagon.A2.vconj
+    hexagon_A2_vmaxb,                          // llvm.hexagon.A2.vmaxb
+    hexagon_A2_vmaxh,                          // llvm.hexagon.A2.vmaxh
+    hexagon_A2_vmaxub,                         // llvm.hexagon.A2.vmaxub
+    hexagon_A2_vmaxuh,                         // llvm.hexagon.A2.vmaxuh
+    hexagon_A2_vmaxuw,                         // llvm.hexagon.A2.vmaxuw
+    hexagon_A2_vmaxw,                          // llvm.hexagon.A2.vmaxw
+    hexagon_A2_vminb,                          // llvm.hexagon.A2.vminb
+    hexagon_A2_vminh,                          // llvm.hexagon.A2.vminh
+    hexagon_A2_vminub,                         // llvm.hexagon.A2.vminub
+    hexagon_A2_vminuh,                         // llvm.hexagon.A2.vminuh
+    hexagon_A2_vminuw,                         // llvm.hexagon.A2.vminuw
+    hexagon_A2_vminw,                          // llvm.hexagon.A2.vminw
+    hexagon_A2_vnavgh,                         // llvm.hexagon.A2.vnavgh
+    hexagon_A2_vnavghcr,                       // llvm.hexagon.A2.vnavghcr
+    hexagon_A2_vnavghr,                        // llvm.hexagon.A2.vnavghr
+    hexagon_A2_vnavgw,                         // llvm.hexagon.A2.vnavgw
+    hexagon_A2_vnavgwcr,                       // llvm.hexagon.A2.vnavgwcr
+    hexagon_A2_vnavgwr,                        // llvm.hexagon.A2.vnavgwr
+    hexagon_A2_vraddub,                        // llvm.hexagon.A2.vraddub
+    hexagon_A2_vraddub_acc,                    // llvm.hexagon.A2.vraddub.acc
+    hexagon_A2_vrsadub,                        // llvm.hexagon.A2.vrsadub
+    hexagon_A2_vrsadub_acc,                    // llvm.hexagon.A2.vrsadub.acc
+    hexagon_A2_vsubb_map,                      // llvm.hexagon.A2.vsubb.map
+    hexagon_A2_vsubh,                          // llvm.hexagon.A2.vsubh
+    hexagon_A2_vsubhs,                         // llvm.hexagon.A2.vsubhs
+    hexagon_A2_vsubub,                         // llvm.hexagon.A2.vsubub
+    hexagon_A2_vsububs,                        // llvm.hexagon.A2.vsububs
+    hexagon_A2_vsubuhs,                        // llvm.hexagon.A2.vsubuhs
+    hexagon_A2_vsubw,                          // llvm.hexagon.A2.vsubw
+    hexagon_A2_vsubws,                         // llvm.hexagon.A2.vsubws
+    hexagon_A2_xor,                            // llvm.hexagon.A2.xor
+    hexagon_A2_xorp,                           // llvm.hexagon.A2.xorp
+    hexagon_A2_zxtb,                           // llvm.hexagon.A2.zxtb
+    hexagon_A2_zxth,                           // llvm.hexagon.A2.zxth
+    hexagon_A4_andn,                           // llvm.hexagon.A4.andn
+    hexagon_A4_andnp,                          // llvm.hexagon.A4.andnp
+    hexagon_A4_bitsplit,                       // llvm.hexagon.A4.bitsplit
+    hexagon_A4_bitspliti,                      // llvm.hexagon.A4.bitspliti
+    hexagon_A4_boundscheck,                    // llvm.hexagon.A4.boundscheck
+    hexagon_A4_cmpbeq,                         // llvm.hexagon.A4.cmpbeq
+    hexagon_A4_cmpbeqi,                        // llvm.hexagon.A4.cmpbeqi
+    hexagon_A4_cmpbgt,                         // llvm.hexagon.A4.cmpbgt
+    hexagon_A4_cmpbgti,                        // llvm.hexagon.A4.cmpbgti
+    hexagon_A4_cmpbgtu,                        // llvm.hexagon.A4.cmpbgtu
+    hexagon_A4_cmpbgtui,                       // llvm.hexagon.A4.cmpbgtui
+    hexagon_A4_cmpheq,                         // llvm.hexagon.A4.cmpheq
+    hexagon_A4_cmpheqi,                        // llvm.hexagon.A4.cmpheqi
+    hexagon_A4_cmphgt,                         // llvm.hexagon.A4.cmphgt
+    hexagon_A4_cmphgti,                        // llvm.hexagon.A4.cmphgti
+    hexagon_A4_cmphgtu,                        // llvm.hexagon.A4.cmphgtu
+    hexagon_A4_cmphgtui,                       // llvm.hexagon.A4.cmphgtui
+    hexagon_A4_combineir,                      // llvm.hexagon.A4.combineir
+    hexagon_A4_combineri,                      // llvm.hexagon.A4.combineri
+    hexagon_A4_cround_ri,                      // llvm.hexagon.A4.cround.ri
+    hexagon_A4_cround_rr,                      // llvm.hexagon.A4.cround.rr
+    hexagon_A4_modwrapu,                       // llvm.hexagon.A4.modwrapu
+    hexagon_A4_orn,                            // llvm.hexagon.A4.orn
+    hexagon_A4_ornp,                           // llvm.hexagon.A4.ornp
+    hexagon_A4_rcmpeq,                         // llvm.hexagon.A4.rcmpeq
+    hexagon_A4_rcmpeqi,                        // llvm.hexagon.A4.rcmpeqi
+    hexagon_A4_rcmpneq,                        // llvm.hexagon.A4.rcmpneq
+    hexagon_A4_rcmpneqi,                       // llvm.hexagon.A4.rcmpneqi
+    hexagon_A4_round_ri,                       // llvm.hexagon.A4.round.ri
+    hexagon_A4_round_ri_sat,                   // llvm.hexagon.A4.round.ri.sat
+    hexagon_A4_round_rr,                       // llvm.hexagon.A4.round.rr
+    hexagon_A4_round_rr_sat,                   // llvm.hexagon.A4.round.rr.sat
+    hexagon_A4_tlbmatch,                       // llvm.hexagon.A4.tlbmatch
+    hexagon_A4_vcmpbeq_any,                    // llvm.hexagon.A4.vcmpbeq.any
+    hexagon_A4_vcmpbeqi,                       // llvm.hexagon.A4.vcmpbeqi
+    hexagon_A4_vcmpbgt,                        // llvm.hexagon.A4.vcmpbgt
+    hexagon_A4_vcmpbgti,                       // llvm.hexagon.A4.vcmpbgti
+    hexagon_A4_vcmpbgtui,                      // llvm.hexagon.A4.vcmpbgtui
+    hexagon_A4_vcmpheqi,                       // llvm.hexagon.A4.vcmpheqi
+    hexagon_A4_vcmphgti,                       // llvm.hexagon.A4.vcmphgti
+    hexagon_A4_vcmphgtui,                      // llvm.hexagon.A4.vcmphgtui
+    hexagon_A4_vcmpweqi,                       // llvm.hexagon.A4.vcmpweqi
+    hexagon_A4_vcmpwgti,                       // llvm.hexagon.A4.vcmpwgti
+    hexagon_A4_vcmpwgtui,                      // llvm.hexagon.A4.vcmpwgtui
+    hexagon_A4_vrmaxh,                         // llvm.hexagon.A4.vrmaxh
+    hexagon_A4_vrmaxuh,                        // llvm.hexagon.A4.vrmaxuh
+    hexagon_A4_vrmaxuw,                        // llvm.hexagon.A4.vrmaxuw
+    hexagon_A4_vrmaxw,                         // llvm.hexagon.A4.vrmaxw
+    hexagon_A4_vrminh,                         // llvm.hexagon.A4.vrminh
+    hexagon_A4_vrminuh,                        // llvm.hexagon.A4.vrminuh
+    hexagon_A4_vrminuw,                        // llvm.hexagon.A4.vrminuw
+    hexagon_A4_vrminw,                         // llvm.hexagon.A4.vrminw
+    hexagon_A5_vaddhubs,                       // llvm.hexagon.A5.vaddhubs
+    hexagon_A6_vcmpbeq_notany,                 // llvm.hexagon.A6.vcmpbeq.notany
+    hexagon_A6_vcmpbeq_notany_128B,            // llvm.hexagon.A6.vcmpbeq.notany.128B
+    hexagon_C2_all8,                           // llvm.hexagon.C2.all8
+    hexagon_C2_and,                            // llvm.hexagon.C2.and
+    hexagon_C2_andn,                           // llvm.hexagon.C2.andn
+    hexagon_C2_any8,                           // llvm.hexagon.C2.any8
+    hexagon_C2_bitsclr,                        // llvm.hexagon.C2.bitsclr
+    hexagon_C2_bitsclri,                       // llvm.hexagon.C2.bitsclri
+    hexagon_C2_bitsset,                        // llvm.hexagon.C2.bitsset
+    hexagon_C2_cmpeq,                          // llvm.hexagon.C2.cmpeq
+    hexagon_C2_cmpeqi,                         // llvm.hexagon.C2.cmpeqi
+    hexagon_C2_cmpeqp,                         // llvm.hexagon.C2.cmpeqp
+    hexagon_C2_cmpgei,                         // llvm.hexagon.C2.cmpgei
+    hexagon_C2_cmpgeui,                        // llvm.hexagon.C2.cmpgeui
+    hexagon_C2_cmpgt,                          // llvm.hexagon.C2.cmpgt
+    hexagon_C2_cmpgti,                         // llvm.hexagon.C2.cmpgti
+    hexagon_C2_cmpgtp,                         // llvm.hexagon.C2.cmpgtp
+    hexagon_C2_cmpgtu,                         // llvm.hexagon.C2.cmpgtu
+    hexagon_C2_cmpgtui,                        // llvm.hexagon.C2.cmpgtui
+    hexagon_C2_cmpgtup,                        // llvm.hexagon.C2.cmpgtup
+    hexagon_C2_cmplt,                          // llvm.hexagon.C2.cmplt
+    hexagon_C2_cmpltu,                         // llvm.hexagon.C2.cmpltu
+    hexagon_C2_mask,                           // llvm.hexagon.C2.mask
+    hexagon_C2_mux,                            // llvm.hexagon.C2.mux
+    hexagon_C2_muxii,                          // llvm.hexagon.C2.muxii
+    hexagon_C2_muxir,                          // llvm.hexagon.C2.muxir
+    hexagon_C2_muxri,                          // llvm.hexagon.C2.muxri
+    hexagon_C2_not,                            // llvm.hexagon.C2.not
+    hexagon_C2_or,                             // llvm.hexagon.C2.or
+    hexagon_C2_orn,                            // llvm.hexagon.C2.orn
+    hexagon_C2_pxfer_map,                      // llvm.hexagon.C2.pxfer.map
+    hexagon_C2_tfrpr,                          // llvm.hexagon.C2.tfrpr
+    hexagon_C2_tfrrp,                          // llvm.hexagon.C2.tfrrp
+    hexagon_C2_vitpack,                        // llvm.hexagon.C2.vitpack
+    hexagon_C2_vmux,                           // llvm.hexagon.C2.vmux
+    hexagon_C2_xor,                            // llvm.hexagon.C2.xor
+    hexagon_C4_and_and,                        // llvm.hexagon.C4.and.and
+    hexagon_C4_and_andn,                       // llvm.hexagon.C4.and.andn
+    hexagon_C4_and_or,                         // llvm.hexagon.C4.and.or
+    hexagon_C4_and_orn,                        // llvm.hexagon.C4.and.orn
+    hexagon_C4_cmplte,                         // llvm.hexagon.C4.cmplte
+    hexagon_C4_cmpltei,                        // llvm.hexagon.C4.cmpltei
+    hexagon_C4_cmplteu,                        // llvm.hexagon.C4.cmplteu
+    hexagon_C4_cmplteui,                       // llvm.hexagon.C4.cmplteui
+    hexagon_C4_cmpneq,                         // llvm.hexagon.C4.cmpneq
+    hexagon_C4_cmpneqi,                        // llvm.hexagon.C4.cmpneqi
+    hexagon_C4_fastcorner9,                    // llvm.hexagon.C4.fastcorner9
+    hexagon_C4_fastcorner9_not,                // llvm.hexagon.C4.fastcorner9.not
+    hexagon_C4_nbitsclr,                       // llvm.hexagon.C4.nbitsclr
+    hexagon_C4_nbitsclri,                      // llvm.hexagon.C4.nbitsclri
+    hexagon_C4_nbitsset,                       // llvm.hexagon.C4.nbitsset
+    hexagon_C4_or_and,                         // llvm.hexagon.C4.or.and
+    hexagon_C4_or_andn,                        // llvm.hexagon.C4.or.andn
+    hexagon_C4_or_or,                          // llvm.hexagon.C4.or.or
+    hexagon_C4_or_orn,                         // llvm.hexagon.C4.or.orn
+    hexagon_F2_conv_d2df,                      // llvm.hexagon.F2.conv.d2df
+    hexagon_F2_conv_d2sf,                      // llvm.hexagon.F2.conv.d2sf
+    hexagon_F2_conv_df2d,                      // llvm.hexagon.F2.conv.df2d
+    hexagon_F2_conv_df2d_chop,                 // llvm.hexagon.F2.conv.df2d.chop
+    hexagon_F2_conv_df2sf,                     // llvm.hexagon.F2.conv.df2sf
+    hexagon_F2_conv_df2ud,                     // llvm.hexagon.F2.conv.df2ud
+    hexagon_F2_conv_df2ud_chop,                // llvm.hexagon.F2.conv.df2ud.chop
+    hexagon_F2_conv_df2uw,                     // llvm.hexagon.F2.conv.df2uw
+    hexagon_F2_conv_df2uw_chop,                // llvm.hexagon.F2.conv.df2uw.chop
+    hexagon_F2_conv_df2w,                      // llvm.hexagon.F2.conv.df2w
+    hexagon_F2_conv_df2w_chop,                 // llvm.hexagon.F2.conv.df2w.chop
+    hexagon_F2_conv_sf2d,                      // llvm.hexagon.F2.conv.sf2d
+    hexagon_F2_conv_sf2d_chop,                 // llvm.hexagon.F2.conv.sf2d.chop
+    hexagon_F2_conv_sf2df,                     // llvm.hexagon.F2.conv.sf2df
+    hexagon_F2_conv_sf2ud,                     // llvm.hexagon.F2.conv.sf2ud
+    hexagon_F2_conv_sf2ud_chop,                // llvm.hexagon.F2.conv.sf2ud.chop
+    hexagon_F2_conv_sf2uw,                     // llvm.hexagon.F2.conv.sf2uw
+    hexagon_F2_conv_sf2uw_chop,                // llvm.hexagon.F2.conv.sf2uw.chop
+    hexagon_F2_conv_sf2w,                      // llvm.hexagon.F2.conv.sf2w
+    hexagon_F2_conv_sf2w_chop,                 // llvm.hexagon.F2.conv.sf2w.chop
+    hexagon_F2_conv_ud2df,                     // llvm.hexagon.F2.conv.ud2df
+    hexagon_F2_conv_ud2sf,                     // llvm.hexagon.F2.conv.ud2sf
+    hexagon_F2_conv_uw2df,                     // llvm.hexagon.F2.conv.uw2df
+    hexagon_F2_conv_uw2sf,                     // llvm.hexagon.F2.conv.uw2sf
+    hexagon_F2_conv_w2df,                      // llvm.hexagon.F2.conv.w2df
+    hexagon_F2_conv_w2sf,                      // llvm.hexagon.F2.conv.w2sf
+    hexagon_F2_dfclass,                        // llvm.hexagon.F2.dfclass
+    hexagon_F2_dfcmpeq,                        // llvm.hexagon.F2.dfcmpeq
+    hexagon_F2_dfcmpge,                        // llvm.hexagon.F2.dfcmpge
+    hexagon_F2_dfcmpgt,                        // llvm.hexagon.F2.dfcmpgt
+    hexagon_F2_dfcmpuo,                        // llvm.hexagon.F2.dfcmpuo
+    hexagon_F2_dfimm_n,                        // llvm.hexagon.F2.dfimm.n
+    hexagon_F2_dfimm_p,                        // llvm.hexagon.F2.dfimm.p
+    hexagon_F2_sfadd,                          // llvm.hexagon.F2.sfadd
+    hexagon_F2_sfclass,                        // llvm.hexagon.F2.sfclass
+    hexagon_F2_sfcmpeq,                        // llvm.hexagon.F2.sfcmpeq
+    hexagon_F2_sfcmpge,                        // llvm.hexagon.F2.sfcmpge
+    hexagon_F2_sfcmpgt,                        // llvm.hexagon.F2.sfcmpgt
+    hexagon_F2_sfcmpuo,                        // llvm.hexagon.F2.sfcmpuo
+    hexagon_F2_sffixupd,                       // llvm.hexagon.F2.sffixupd
+    hexagon_F2_sffixupn,                       // llvm.hexagon.F2.sffixupn
+    hexagon_F2_sffixupr,                       // llvm.hexagon.F2.sffixupr
+    hexagon_F2_sffma,                          // llvm.hexagon.F2.sffma
+    hexagon_F2_sffma_lib,                      // llvm.hexagon.F2.sffma.lib
+    hexagon_F2_sffma_sc,                       // llvm.hexagon.F2.sffma.sc
+    hexagon_F2_sffms,                          // llvm.hexagon.F2.sffms
+    hexagon_F2_sffms_lib,                      // llvm.hexagon.F2.sffms.lib
+    hexagon_F2_sfimm_n,                        // llvm.hexagon.F2.sfimm.n
+    hexagon_F2_sfimm_p,                        // llvm.hexagon.F2.sfimm.p
+    hexagon_F2_sfmax,                          // llvm.hexagon.F2.sfmax
+    hexagon_F2_sfmin,                          // llvm.hexagon.F2.sfmin
+    hexagon_F2_sfmpy,                          // llvm.hexagon.F2.sfmpy
+    hexagon_F2_sfsub,                          // llvm.hexagon.F2.sfsub
+    hexagon_L2_loadrb_pbr,                     // llvm.hexagon.L2.loadrb.pbr
+    hexagon_L2_loadrb_pci,                     // llvm.hexagon.L2.loadrb.pci
+    hexagon_L2_loadrb_pcr,                     // llvm.hexagon.L2.loadrb.pcr
+    hexagon_L2_loadrd_pbr,                     // llvm.hexagon.L2.loadrd.pbr
+    hexagon_L2_loadrd_pci,                     // llvm.hexagon.L2.loadrd.pci
+    hexagon_L2_loadrd_pcr,                     // llvm.hexagon.L2.loadrd.pcr
+    hexagon_L2_loadrh_pbr,                     // llvm.hexagon.L2.loadrh.pbr
+    hexagon_L2_loadrh_pci,                     // llvm.hexagon.L2.loadrh.pci
+    hexagon_L2_loadrh_pcr,                     // llvm.hexagon.L2.loadrh.pcr
+    hexagon_L2_loadri_pbr,                     // llvm.hexagon.L2.loadri.pbr
+    hexagon_L2_loadri_pci,                     // llvm.hexagon.L2.loadri.pci
+    hexagon_L2_loadri_pcr,                     // llvm.hexagon.L2.loadri.pcr
+    hexagon_L2_loadrub_pbr,                    // llvm.hexagon.L2.loadrub.pbr
+    hexagon_L2_loadrub_pci,                    // llvm.hexagon.L2.loadrub.pci
+    hexagon_L2_loadrub_pcr,                    // llvm.hexagon.L2.loadrub.pcr
+    hexagon_L2_loadruh_pbr,                    // llvm.hexagon.L2.loadruh.pbr
+    hexagon_L2_loadruh_pci,                    // llvm.hexagon.L2.loadruh.pci
+    hexagon_L2_loadruh_pcr,                    // llvm.hexagon.L2.loadruh.pcr
+    hexagon_L2_loadw_locked,                   // llvm.hexagon.L2.loadw.locked
+    hexagon_L4_loadd_locked,                   // llvm.hexagon.L4.loadd.locked
+    hexagon_M2_acci,                           // llvm.hexagon.M2.acci
+    hexagon_M2_accii,                          // llvm.hexagon.M2.accii
+    hexagon_M2_cmaci_s0,                       // llvm.hexagon.M2.cmaci.s0
+    hexagon_M2_cmacr_s0,                       // llvm.hexagon.M2.cmacr.s0
+    hexagon_M2_cmacs_s0,                       // llvm.hexagon.M2.cmacs.s0
+    hexagon_M2_cmacs_s1,                       // llvm.hexagon.M2.cmacs.s1
+    hexagon_M2_cmacsc_s0,                      // llvm.hexagon.M2.cmacsc.s0
+    hexagon_M2_cmacsc_s1,                      // llvm.hexagon.M2.cmacsc.s1
+    hexagon_M2_cmpyi_s0,                       // llvm.hexagon.M2.cmpyi.s0
+    hexagon_M2_cmpyr_s0,                       // llvm.hexagon.M2.cmpyr.s0
+    hexagon_M2_cmpyrs_s0,                      // llvm.hexagon.M2.cmpyrs.s0
+    hexagon_M2_cmpyrs_s1,                      // llvm.hexagon.M2.cmpyrs.s1
+    hexagon_M2_cmpyrsc_s0,                     // llvm.hexagon.M2.cmpyrsc.s0
+    hexagon_M2_cmpyrsc_s1,                     // llvm.hexagon.M2.cmpyrsc.s1
+    hexagon_M2_cmpys_s0,                       // llvm.hexagon.M2.cmpys.s0
+    hexagon_M2_cmpys_s1,                       // llvm.hexagon.M2.cmpys.s1
+    hexagon_M2_cmpysc_s0,                      // llvm.hexagon.M2.cmpysc.s0
+    hexagon_M2_cmpysc_s1,                      // llvm.hexagon.M2.cmpysc.s1
+    hexagon_M2_cnacs_s0,                       // llvm.hexagon.M2.cnacs.s0
+    hexagon_M2_cnacs_s1,                       // llvm.hexagon.M2.cnacs.s1
+    hexagon_M2_cnacsc_s0,                      // llvm.hexagon.M2.cnacsc.s0
+    hexagon_M2_cnacsc_s1,                      // llvm.hexagon.M2.cnacsc.s1
+    hexagon_M2_dpmpyss_acc_s0,                 // llvm.hexagon.M2.dpmpyss.acc.s0
+    hexagon_M2_dpmpyss_nac_s0,                 // llvm.hexagon.M2.dpmpyss.nac.s0
+    hexagon_M2_dpmpyss_rnd_s0,                 // llvm.hexagon.M2.dpmpyss.rnd.s0
+    hexagon_M2_dpmpyss_s0,                     // llvm.hexagon.M2.dpmpyss.s0
+    hexagon_M2_dpmpyuu_acc_s0,                 // llvm.hexagon.M2.dpmpyuu.acc.s0
+    hexagon_M2_dpmpyuu_nac_s0,                 // llvm.hexagon.M2.dpmpyuu.nac.s0
+    hexagon_M2_dpmpyuu_s0,                     // llvm.hexagon.M2.dpmpyuu.s0
+    hexagon_M2_hmmpyh_rs1,                     // llvm.hexagon.M2.hmmpyh.rs1
+    hexagon_M2_hmmpyh_s1,                      // llvm.hexagon.M2.hmmpyh.s1
+    hexagon_M2_hmmpyl_rs1,                     // llvm.hexagon.M2.hmmpyl.rs1
+    hexagon_M2_hmmpyl_s1,                      // llvm.hexagon.M2.hmmpyl.s1
+    hexagon_M2_maci,                           // llvm.hexagon.M2.maci
+    hexagon_M2_macsin,                         // llvm.hexagon.M2.macsin
+    hexagon_M2_macsip,                         // llvm.hexagon.M2.macsip
+    hexagon_M2_mmachs_rs0,                     // llvm.hexagon.M2.mmachs.rs0
+    hexagon_M2_mmachs_rs1,                     // llvm.hexagon.M2.mmachs.rs1
+    hexagon_M2_mmachs_s0,                      // llvm.hexagon.M2.mmachs.s0
+    hexagon_M2_mmachs_s1,                      // llvm.hexagon.M2.mmachs.s1
+    hexagon_M2_mmacls_rs0,                     // llvm.hexagon.M2.mmacls.rs0
+    hexagon_M2_mmacls_rs1,                     // llvm.hexagon.M2.mmacls.rs1
+    hexagon_M2_mmacls_s0,                      // llvm.hexagon.M2.mmacls.s0
+    hexagon_M2_mmacls_s1,                      // llvm.hexagon.M2.mmacls.s1
+    hexagon_M2_mmacuhs_rs0,                    // llvm.hexagon.M2.mmacuhs.rs0
+    hexagon_M2_mmacuhs_rs1,                    // llvm.hexagon.M2.mmacuhs.rs1
+    hexagon_M2_mmacuhs_s0,                     // llvm.hexagon.M2.mmacuhs.s0
+    hexagon_M2_mmacuhs_s1,                     // llvm.hexagon.M2.mmacuhs.s1
+    hexagon_M2_mmaculs_rs0,                    // llvm.hexagon.M2.mmaculs.rs0
+    hexagon_M2_mmaculs_rs1,                    // llvm.hexagon.M2.mmaculs.rs1
+    hexagon_M2_mmaculs_s0,                     // llvm.hexagon.M2.mmaculs.s0
+    hexagon_M2_mmaculs_s1,                     // llvm.hexagon.M2.mmaculs.s1
+    hexagon_M2_mmpyh_rs0,                      // llvm.hexagon.M2.mmpyh.rs0
+    hexagon_M2_mmpyh_rs1,                      // llvm.hexagon.M2.mmpyh.rs1
+    hexagon_M2_mmpyh_s0,                       // llvm.hexagon.M2.mmpyh.s0
+    hexagon_M2_mmpyh_s1,                       // llvm.hexagon.M2.mmpyh.s1
+    hexagon_M2_mmpyl_rs0,                      // llvm.hexagon.M2.mmpyl.rs0
+    hexagon_M2_mmpyl_rs1,                      // llvm.hexagon.M2.mmpyl.rs1
+    hexagon_M2_mmpyl_s0,                       // llvm.hexagon.M2.mmpyl.s0
+    hexagon_M2_mmpyl_s1,                       // llvm.hexagon.M2.mmpyl.s1
+    hexagon_M2_mmpyuh_rs0,                     // llvm.hexagon.M2.mmpyuh.rs0
+    hexagon_M2_mmpyuh_rs1,                     // llvm.hexagon.M2.mmpyuh.rs1
+    hexagon_M2_mmpyuh_s0,                      // llvm.hexagon.M2.mmpyuh.s0
+    hexagon_M2_mmpyuh_s1,                      // llvm.hexagon.M2.mmpyuh.s1
+    hexagon_M2_mmpyul_rs0,                     // llvm.hexagon.M2.mmpyul.rs0
+    hexagon_M2_mmpyul_rs1,                     // llvm.hexagon.M2.mmpyul.rs1
+    hexagon_M2_mmpyul_s0,                      // llvm.hexagon.M2.mmpyul.s0
+    hexagon_M2_mmpyul_s1,                      // llvm.hexagon.M2.mmpyul.s1
+    hexagon_M2_mpy_acc_hh_s0,                  // llvm.hexagon.M2.mpy.acc.hh.s0
+    hexagon_M2_mpy_acc_hh_s1,                  // llvm.hexagon.M2.mpy.acc.hh.s1
+    hexagon_M2_mpy_acc_hl_s0,                  // llvm.hexagon.M2.mpy.acc.hl.s0
+    hexagon_M2_mpy_acc_hl_s1,                  // llvm.hexagon.M2.mpy.acc.hl.s1
+    hexagon_M2_mpy_acc_lh_s0,                  // llvm.hexagon.M2.mpy.acc.lh.s0
+    hexagon_M2_mpy_acc_lh_s1,                  // llvm.hexagon.M2.mpy.acc.lh.s1
+    hexagon_M2_mpy_acc_ll_s0,                  // llvm.hexagon.M2.mpy.acc.ll.s0
+    hexagon_M2_mpy_acc_ll_s1,                  // llvm.hexagon.M2.mpy.acc.ll.s1
+    hexagon_M2_mpy_acc_sat_hh_s0,              // llvm.hexagon.M2.mpy.acc.sat.hh.s0
+    hexagon_M2_mpy_acc_sat_hh_s1,              // llvm.hexagon.M2.mpy.acc.sat.hh.s1
+    hexagon_M2_mpy_acc_sat_hl_s0,              // llvm.hexagon.M2.mpy.acc.sat.hl.s0
+    hexagon_M2_mpy_acc_sat_hl_s1,              // llvm.hexagon.M2.mpy.acc.sat.hl.s1
+    hexagon_M2_mpy_acc_sat_lh_s0,              // llvm.hexagon.M2.mpy.acc.sat.lh.s0
+    hexagon_M2_mpy_acc_sat_lh_s1,              // llvm.hexagon.M2.mpy.acc.sat.lh.s1
+    hexagon_M2_mpy_acc_sat_ll_s0,              // llvm.hexagon.M2.mpy.acc.sat.ll.s0
+    hexagon_M2_mpy_acc_sat_ll_s1,              // llvm.hexagon.M2.mpy.acc.sat.ll.s1
+    hexagon_M2_mpy_hh_s0,                      // llvm.hexagon.M2.mpy.hh.s0
+    hexagon_M2_mpy_hh_s1,                      // llvm.hexagon.M2.mpy.hh.s1
+    hexagon_M2_mpy_hl_s0,                      // llvm.hexagon.M2.mpy.hl.s0
+    hexagon_M2_mpy_hl_s1,                      // llvm.hexagon.M2.mpy.hl.s1
+    hexagon_M2_mpy_lh_s0,                      // llvm.hexagon.M2.mpy.lh.s0
+    hexagon_M2_mpy_lh_s1,                      // llvm.hexagon.M2.mpy.lh.s1
+    hexagon_M2_mpy_ll_s0,                      // llvm.hexagon.M2.mpy.ll.s0
+    hexagon_M2_mpy_ll_s1,                      // llvm.hexagon.M2.mpy.ll.s1
+    hexagon_M2_mpy_nac_hh_s0,                  // llvm.hexagon.M2.mpy.nac.hh.s0
+    hexagon_M2_mpy_nac_hh_s1,                  // llvm.hexagon.M2.mpy.nac.hh.s1
+    hexagon_M2_mpy_nac_hl_s0,                  // llvm.hexagon.M2.mpy.nac.hl.s0
+    hexagon_M2_mpy_nac_hl_s1,                  // llvm.hexagon.M2.mpy.nac.hl.s1
+    hexagon_M2_mpy_nac_lh_s0,                  // llvm.hexagon.M2.mpy.nac.lh.s0
+    hexagon_M2_mpy_nac_lh_s1,                  // llvm.hexagon.M2.mpy.nac.lh.s1
+    hexagon_M2_mpy_nac_ll_s0,                  // llvm.hexagon.M2.mpy.nac.ll.s0
+    hexagon_M2_mpy_nac_ll_s1,                  // llvm.hexagon.M2.mpy.nac.ll.s1
+    hexagon_M2_mpy_nac_sat_hh_s0,              // llvm.hexagon.M2.mpy.nac.sat.hh.s0
+    hexagon_M2_mpy_nac_sat_hh_s1,              // llvm.hexagon.M2.mpy.nac.sat.hh.s1
+    hexagon_M2_mpy_nac_sat_hl_s0,              // llvm.hexagon.M2.mpy.nac.sat.hl.s0
+    hexagon_M2_mpy_nac_sat_hl_s1,              // llvm.hexagon.M2.mpy.nac.sat.hl.s1
+    hexagon_M2_mpy_nac_sat_lh_s0,              // llvm.hexagon.M2.mpy.nac.sat.lh.s0
+    hexagon_M2_mpy_nac_sat_lh_s1,              // llvm.hexagon.M2.mpy.nac.sat.lh.s1
+    hexagon_M2_mpy_nac_sat_ll_s0,              // llvm.hexagon.M2.mpy.nac.sat.ll.s0
+    hexagon_M2_mpy_nac_sat_ll_s1,              // llvm.hexagon.M2.mpy.nac.sat.ll.s1
+    hexagon_M2_mpy_rnd_hh_s0,                  // llvm.hexagon.M2.mpy.rnd.hh.s0
+    hexagon_M2_mpy_rnd_hh_s1,                  // llvm.hexagon.M2.mpy.rnd.hh.s1
+    hexagon_M2_mpy_rnd_hl_s0,                  // llvm.hexagon.M2.mpy.rnd.hl.s0
+    hexagon_M2_mpy_rnd_hl_s1,                  // llvm.hexagon.M2.mpy.rnd.hl.s1
+    hexagon_M2_mpy_rnd_lh_s0,                  // llvm.hexagon.M2.mpy.rnd.lh.s0
+    hexagon_M2_mpy_rnd_lh_s1,                  // llvm.hexagon.M2.mpy.rnd.lh.s1
+    hexagon_M2_mpy_rnd_ll_s0,                  // llvm.hexagon.M2.mpy.rnd.ll.s0
+    hexagon_M2_mpy_rnd_ll_s1,                  // llvm.hexagon.M2.mpy.rnd.ll.s1
+    hexagon_M2_mpy_sat_hh_s0,                  // llvm.hexagon.M2.mpy.sat.hh.s0
+    hexagon_M2_mpy_sat_hh_s1,                  // llvm.hexagon.M2.mpy.sat.hh.s1
+    hexagon_M2_mpy_sat_hl_s0,                  // llvm.hexagon.M2.mpy.sat.hl.s0
+    hexagon_M2_mpy_sat_hl_s1,                  // llvm.hexagon.M2.mpy.sat.hl.s1
+    hexagon_M2_mpy_sat_lh_s0,                  // llvm.hexagon.M2.mpy.sat.lh.s0
+    hexagon_M2_mpy_sat_lh_s1,                  // llvm.hexagon.M2.mpy.sat.lh.s1
+    hexagon_M2_mpy_sat_ll_s0,                  // llvm.hexagon.M2.mpy.sat.ll.s0
+    hexagon_M2_mpy_sat_ll_s1,                  // llvm.hexagon.M2.mpy.sat.ll.s1
+    hexagon_M2_mpy_sat_rnd_hh_s0,              // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
+    hexagon_M2_mpy_sat_rnd_hh_s1,              // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
+    hexagon_M2_mpy_sat_rnd_hl_s0,              // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
+    hexagon_M2_mpy_sat_rnd_hl_s1,              // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
+    hexagon_M2_mpy_sat_rnd_lh_s0,              // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
+    hexagon_M2_mpy_sat_rnd_lh_s1,              // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
+    hexagon_M2_mpy_sat_rnd_ll_s0,              // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
+    hexagon_M2_mpy_sat_rnd_ll_s1,              // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
+    hexagon_M2_mpy_up,                         // llvm.hexagon.M2.mpy.up
+    hexagon_M2_mpy_up_s1,                      // llvm.hexagon.M2.mpy.up.s1
+    hexagon_M2_mpy_up_s1_sat,                  // llvm.hexagon.M2.mpy.up.s1.sat
+    hexagon_M2_mpyd_acc_hh_s0,                 // llvm.hexagon.M2.mpyd.acc.hh.s0
+    hexagon_M2_mpyd_acc_hh_s1,                 // llvm.hexagon.M2.mpyd.acc.hh.s1
+    hexagon_M2_mpyd_acc_hl_s0,                 // llvm.hexagon.M2.mpyd.acc.hl.s0
+    hexagon_M2_mpyd_acc_hl_s1,                 // llvm.hexagon.M2.mpyd.acc.hl.s1
+    hexagon_M2_mpyd_acc_lh_s0,                 // llvm.hexagon.M2.mpyd.acc.lh.s0
+    hexagon_M2_mpyd_acc_lh_s1,                 // llvm.hexagon.M2.mpyd.acc.lh.s1
+    hexagon_M2_mpyd_acc_ll_s0,                 // llvm.hexagon.M2.mpyd.acc.ll.s0
+    hexagon_M2_mpyd_acc_ll_s1,                 // llvm.hexagon.M2.mpyd.acc.ll.s1
+    hexagon_M2_mpyd_hh_s0,                     // llvm.hexagon.M2.mpyd.hh.s0
+    hexagon_M2_mpyd_hh_s1,                     // llvm.hexagon.M2.mpyd.hh.s1
+    hexagon_M2_mpyd_hl_s0,                     // llvm.hexagon.M2.mpyd.hl.s0
+    hexagon_M2_mpyd_hl_s1,                     // llvm.hexagon.M2.mpyd.hl.s1
+    hexagon_M2_mpyd_lh_s0,                     // llvm.hexagon.M2.mpyd.lh.s0
+    hexagon_M2_mpyd_lh_s1,                     // llvm.hexagon.M2.mpyd.lh.s1
+    hexagon_M2_mpyd_ll_s0,                     // llvm.hexagon.M2.mpyd.ll.s0
+    hexagon_M2_mpyd_ll_s1,                     // llvm.hexagon.M2.mpyd.ll.s1
+    hexagon_M2_mpyd_nac_hh_s0,                 // llvm.hexagon.M2.mpyd.nac.hh.s0
+    hexagon_M2_mpyd_nac_hh_s1,                 // llvm.hexagon.M2.mpyd.nac.hh.s1
+    hexagon_M2_mpyd_nac_hl_s0,                 // llvm.hexagon.M2.mpyd.nac.hl.s0
+    hexagon_M2_mpyd_nac_hl_s1,                 // llvm.hexagon.M2.mpyd.nac.hl.s1
+    hexagon_M2_mpyd_nac_lh_s0,                 // llvm.hexagon.M2.mpyd.nac.lh.s0
+    hexagon_M2_mpyd_nac_lh_s1,                 // llvm.hexagon.M2.mpyd.nac.lh.s1
+    hexagon_M2_mpyd_nac_ll_s0,                 // llvm.hexagon.M2.mpyd.nac.ll.s0
+    hexagon_M2_mpyd_nac_ll_s1,                 // llvm.hexagon.M2.mpyd.nac.ll.s1
+    hexagon_M2_mpyd_rnd_hh_s0,                 // llvm.hexagon.M2.mpyd.rnd.hh.s0
+    hexagon_M2_mpyd_rnd_hh_s1,                 // llvm.hexagon.M2.mpyd.rnd.hh.s1
+    hexagon_M2_mpyd_rnd_hl_s0,                 // llvm.hexagon.M2.mpyd.rnd.hl.s0
+    hexagon_M2_mpyd_rnd_hl_s1,                 // llvm.hexagon.M2.mpyd.rnd.hl.s1
+    hexagon_M2_mpyd_rnd_lh_s0,                 // llvm.hexagon.M2.mpyd.rnd.lh.s0
+    hexagon_M2_mpyd_rnd_lh_s1,                 // llvm.hexagon.M2.mpyd.rnd.lh.s1
+    hexagon_M2_mpyd_rnd_ll_s0,                 // llvm.hexagon.M2.mpyd.rnd.ll.s0
+    hexagon_M2_mpyd_rnd_ll_s1,                 // llvm.hexagon.M2.mpyd.rnd.ll.s1
+    hexagon_M2_mpyi,                           // llvm.hexagon.M2.mpyi
+    hexagon_M2_mpysmi,                         // llvm.hexagon.M2.mpysmi
+    hexagon_M2_mpysu_up,                       // llvm.hexagon.M2.mpysu.up
+    hexagon_M2_mpyu_acc_hh_s0,                 // llvm.hexagon.M2.mpyu.acc.hh.s0
+    hexagon_M2_mpyu_acc_hh_s1,                 // llvm.hexagon.M2.mpyu.acc.hh.s1
+    hexagon_M2_mpyu_acc_hl_s0,                 // llvm.hexagon.M2.mpyu.acc.hl.s0
+    hexagon_M2_mpyu_acc_hl_s1,                 // llvm.hexagon.M2.mpyu.acc.hl.s1
+    hexagon_M2_mpyu_acc_lh_s0,                 // llvm.hexagon.M2.mpyu.acc.lh.s0
+    hexagon_M2_mpyu_acc_lh_s1,                 // llvm.hexagon.M2.mpyu.acc.lh.s1
+    hexagon_M2_mpyu_acc_ll_s0,                 // llvm.hexagon.M2.mpyu.acc.ll.s0
+    hexagon_M2_mpyu_acc_ll_s1,                 // llvm.hexagon.M2.mpyu.acc.ll.s1
+    hexagon_M2_mpyu_hh_s0,                     // llvm.hexagon.M2.mpyu.hh.s0
+    hexagon_M2_mpyu_hh_s1,                     // llvm.hexagon.M2.mpyu.hh.s1
+    hexagon_M2_mpyu_hl_s0,                     // llvm.hexagon.M2.mpyu.hl.s0
+    hexagon_M2_mpyu_hl_s1,                     // llvm.hexagon.M2.mpyu.hl.s1
+    hexagon_M2_mpyu_lh_s0,                     // llvm.hexagon.M2.mpyu.lh.s0
+    hexagon_M2_mpyu_lh_s1,                     // llvm.hexagon.M2.mpyu.lh.s1
+    hexagon_M2_mpyu_ll_s0,                     // llvm.hexagon.M2.mpyu.ll.s0
+    hexagon_M2_mpyu_ll_s1,                     // llvm.hexagon.M2.mpyu.ll.s1
+    hexagon_M2_mpyu_nac_hh_s0,                 // llvm.hexagon.M2.mpyu.nac.hh.s0
+    hexagon_M2_mpyu_nac_hh_s1,                 // llvm.hexagon.M2.mpyu.nac.hh.s1
+    hexagon_M2_mpyu_nac_hl_s0,                 // llvm.hexagon.M2.mpyu.nac.hl.s0
+    hexagon_M2_mpyu_nac_hl_s1,                 // llvm.hexagon.M2.mpyu.nac.hl.s1
+    hexagon_M2_mpyu_nac_lh_s0,                 // llvm.hexagon.M2.mpyu.nac.lh.s0
+    hexagon_M2_mpyu_nac_lh_s1,                 // llvm.hexagon.M2.mpyu.nac.lh.s1
+    hexagon_M2_mpyu_nac_ll_s0,                 // llvm.hexagon.M2.mpyu.nac.ll.s0
+    hexagon_M2_mpyu_nac_ll_s1,                 // llvm.hexagon.M2.mpyu.nac.ll.s1
+    hexagon_M2_mpyu_up,                        // llvm.hexagon.M2.mpyu.up
+    hexagon_M2_mpyud_acc_hh_s0,                // llvm.hexagon.M2.mpyud.acc.hh.s0
+    hexagon_M2_mpyud_acc_hh_s1,                // llvm.hexagon.M2.mpyud.acc.hh.s1
+    hexagon_M2_mpyud_acc_hl_s0,                // llvm.hexagon.M2.mpyud.acc.hl.s0
+    hexagon_M2_mpyud_acc_hl_s1,                // llvm.hexagon.M2.mpyud.acc.hl.s1
+    hexagon_M2_mpyud_acc_lh_s0,                // llvm.hexagon.M2.mpyud.acc.lh.s0
+    hexagon_M2_mpyud_acc_lh_s1,                // llvm.hexagon.M2.mpyud.acc.lh.s1
+    hexagon_M2_mpyud_acc_ll_s0,                // llvm.hexagon.M2.mpyud.acc.ll.s0
+    hexagon_M2_mpyud_acc_ll_s1,                // llvm.hexagon.M2.mpyud.acc.ll.s1
+    hexagon_M2_mpyud_hh_s0,                    // llvm.hexagon.M2.mpyud.hh.s0
+    hexagon_M2_mpyud_hh_s1,                    // llvm.hexagon.M2.mpyud.hh.s1
+    hexagon_M2_mpyud_hl_s0,                    // llvm.hexagon.M2.mpyud.hl.s0
+    hexagon_M2_mpyud_hl_s1,                    // llvm.hexagon.M2.mpyud.hl.s1
+    hexagon_M2_mpyud_lh_s0,                    // llvm.hexagon.M2.mpyud.lh.s0
+    hexagon_M2_mpyud_lh_s1,                    // llvm.hexagon.M2.mpyud.lh.s1
+    hexagon_M2_mpyud_ll_s0,                    // llvm.hexagon.M2.mpyud.ll.s0
+    hexagon_M2_mpyud_ll_s1,                    // llvm.hexagon.M2.mpyud.ll.s1
+    hexagon_M2_mpyud_nac_hh_s0,                // llvm.hexagon.M2.mpyud.nac.hh.s0
+    hexagon_M2_mpyud_nac_hh_s1,                // llvm.hexagon.M2.mpyud.nac.hh.s1
+    hexagon_M2_mpyud_nac_hl_s0,                // llvm.hexagon.M2.mpyud.nac.hl.s0
+    hexagon_M2_mpyud_nac_hl_s1,                // llvm.hexagon.M2.mpyud.nac.hl.s1
+    hexagon_M2_mpyud_nac_lh_s0,                // llvm.hexagon.M2.mpyud.nac.lh.s0
+    hexagon_M2_mpyud_nac_lh_s1,                // llvm.hexagon.M2.mpyud.nac.lh.s1
+    hexagon_M2_mpyud_nac_ll_s0,                // llvm.hexagon.M2.mpyud.nac.ll.s0
+    hexagon_M2_mpyud_nac_ll_s1,                // llvm.hexagon.M2.mpyud.nac.ll.s1
+    hexagon_M2_mpyui,                          // llvm.hexagon.M2.mpyui
+    hexagon_M2_nacci,                          // llvm.hexagon.M2.nacci
+    hexagon_M2_naccii,                         // llvm.hexagon.M2.naccii
+    hexagon_M2_subacc,                         // llvm.hexagon.M2.subacc
+    hexagon_M2_vabsdiffh,                      // llvm.hexagon.M2.vabsdiffh
+    hexagon_M2_vabsdiffw,                      // llvm.hexagon.M2.vabsdiffw
+    hexagon_M2_vcmac_s0_sat_i,                 // llvm.hexagon.M2.vcmac.s0.sat.i
+    hexagon_M2_vcmac_s0_sat_r,                 // llvm.hexagon.M2.vcmac.s0.sat.r
+    hexagon_M2_vcmpy_s0_sat_i,                 // llvm.hexagon.M2.vcmpy.s0.sat.i
+    hexagon_M2_vcmpy_s0_sat_r,                 // llvm.hexagon.M2.vcmpy.s0.sat.r
+    hexagon_M2_vcmpy_s1_sat_i,                 // llvm.hexagon.M2.vcmpy.s1.sat.i
+    hexagon_M2_vcmpy_s1_sat_r,                 // llvm.hexagon.M2.vcmpy.s1.sat.r
+    hexagon_M2_vdmacs_s0,                      // llvm.hexagon.M2.vdmacs.s0
+    hexagon_M2_vdmacs_s1,                      // llvm.hexagon.M2.vdmacs.s1
+    hexagon_M2_vdmpyrs_s0,                     // llvm.hexagon.M2.vdmpyrs.s0
+    hexagon_M2_vdmpyrs_s1,                     // llvm.hexagon.M2.vdmpyrs.s1
+    hexagon_M2_vdmpys_s0,                      // llvm.hexagon.M2.vdmpys.s0
+    hexagon_M2_vdmpys_s1,                      // llvm.hexagon.M2.vdmpys.s1
+    hexagon_M2_vmac2,                          // llvm.hexagon.M2.vmac2
+    hexagon_M2_vmac2es,                        // llvm.hexagon.M2.vmac2es
+    hexagon_M2_vmac2es_s0,                     // llvm.hexagon.M2.vmac2es.s0
+    hexagon_M2_vmac2es_s1,                     // llvm.hexagon.M2.vmac2es.s1
+    hexagon_M2_vmac2s_s0,                      // llvm.hexagon.M2.vmac2s.s0
+    hexagon_M2_vmac2s_s1,                      // llvm.hexagon.M2.vmac2s.s1
+    hexagon_M2_vmac2su_s0,                     // llvm.hexagon.M2.vmac2su.s0
+    hexagon_M2_vmac2su_s1,                     // llvm.hexagon.M2.vmac2su.s1
+    hexagon_M2_vmpy2es_s0,                     // llvm.hexagon.M2.vmpy2es.s0
+    hexagon_M2_vmpy2es_s1,                     // llvm.hexagon.M2.vmpy2es.s1
+    hexagon_M2_vmpy2s_s0,                      // llvm.hexagon.M2.vmpy2s.s0
+    hexagon_M2_vmpy2s_s0pack,                  // llvm.hexagon.M2.vmpy2s.s0pack
+    hexagon_M2_vmpy2s_s1,                      // llvm.hexagon.M2.vmpy2s.s1
+    hexagon_M2_vmpy2s_s1pack,                  // llvm.hexagon.M2.vmpy2s.s1pack
+    hexagon_M2_vmpy2su_s0,                     // llvm.hexagon.M2.vmpy2su.s0
+    hexagon_M2_vmpy2su_s1,                     // llvm.hexagon.M2.vmpy2su.s1
+    hexagon_M2_vraddh,                         // llvm.hexagon.M2.vraddh
+    hexagon_M2_vradduh,                        // llvm.hexagon.M2.vradduh
+    hexagon_M2_vrcmaci_s0,                     // llvm.hexagon.M2.vrcmaci.s0
+    hexagon_M2_vrcmaci_s0c,                    // llvm.hexagon.M2.vrcmaci.s0c
+    hexagon_M2_vrcmacr_s0,                     // llvm.hexagon.M2.vrcmacr.s0
+    hexagon_M2_vrcmacr_s0c,                    // llvm.hexagon.M2.vrcmacr.s0c
+    hexagon_M2_vrcmpyi_s0,                     // llvm.hexagon.M2.vrcmpyi.s0
+    hexagon_M2_vrcmpyi_s0c,                    // llvm.hexagon.M2.vrcmpyi.s0c
+    hexagon_M2_vrcmpyr_s0,                     // llvm.hexagon.M2.vrcmpyr.s0
+    hexagon_M2_vrcmpyr_s0c,                    // llvm.hexagon.M2.vrcmpyr.s0c
+    hexagon_M2_vrcmpys_acc_s1,                 // llvm.hexagon.M2.vrcmpys.acc.s1
+    hexagon_M2_vrcmpys_s1,                     // llvm.hexagon.M2.vrcmpys.s1
+    hexagon_M2_vrcmpys_s1rp,                   // llvm.hexagon.M2.vrcmpys.s1rp
+    hexagon_M2_vrmac_s0,                       // llvm.hexagon.M2.vrmac.s0
+    hexagon_M2_vrmpy_s0,                       // llvm.hexagon.M2.vrmpy.s0
+    hexagon_M2_xor_xacc,                       // llvm.hexagon.M2.xor.xacc
+    hexagon_M4_and_and,                        // llvm.hexagon.M4.and.and
+    hexagon_M4_and_andn,                       // llvm.hexagon.M4.and.andn
+    hexagon_M4_and_or,                         // llvm.hexagon.M4.and.or
+    hexagon_M4_and_xor,                        // llvm.hexagon.M4.and.xor
+    hexagon_M4_cmpyi_wh,                       // llvm.hexagon.M4.cmpyi.wh
+    hexagon_M4_cmpyi_whc,                      // llvm.hexagon.M4.cmpyi.whc
+    hexagon_M4_cmpyr_wh,                       // llvm.hexagon.M4.cmpyr.wh
+    hexagon_M4_cmpyr_whc,                      // llvm.hexagon.M4.cmpyr.whc
+    hexagon_M4_mac_up_s1_sat,                  // llvm.hexagon.M4.mac.up.s1.sat
+    hexagon_M4_mpyri_addi,                     // llvm.hexagon.M4.mpyri.addi
+    hexagon_M4_mpyri_addr,                     // llvm.hexagon.M4.mpyri.addr
+    hexagon_M4_mpyri_addr_u2,                  // llvm.hexagon.M4.mpyri.addr.u2
+    hexagon_M4_mpyrr_addi,                     // llvm.hexagon.M4.mpyrr.addi
+    hexagon_M4_mpyrr_addr,                     // llvm.hexagon.M4.mpyrr.addr
+    hexagon_M4_nac_up_s1_sat,                  // llvm.hexagon.M4.nac.up.s1.sat
+    hexagon_M4_or_and,                         // llvm.hexagon.M4.or.and
+    hexagon_M4_or_andn,                        // llvm.hexagon.M4.or.andn
+    hexagon_M4_or_or,                          // llvm.hexagon.M4.or.or
+    hexagon_M4_or_xor,                         // llvm.hexagon.M4.or.xor
+    hexagon_M4_pmpyw,                          // llvm.hexagon.M4.pmpyw
+    hexagon_M4_pmpyw_acc,                      // llvm.hexagon.M4.pmpyw.acc
+    hexagon_M4_vpmpyh,                         // llvm.hexagon.M4.vpmpyh
+    hexagon_M4_vpmpyh_acc,                     // llvm.hexagon.M4.vpmpyh.acc
+    hexagon_M4_vrmpyeh_acc_s0,                 // llvm.hexagon.M4.vrmpyeh.acc.s0
+    hexagon_M4_vrmpyeh_acc_s1,                 // llvm.hexagon.M4.vrmpyeh.acc.s1
+    hexagon_M4_vrmpyeh_s0,                     // llvm.hexagon.M4.vrmpyeh.s0
+    hexagon_M4_vrmpyeh_s1,                     // llvm.hexagon.M4.vrmpyeh.s1
+    hexagon_M4_vrmpyoh_acc_s0,                 // llvm.hexagon.M4.vrmpyoh.acc.s0
+    hexagon_M4_vrmpyoh_acc_s1,                 // llvm.hexagon.M4.vrmpyoh.acc.s1
+    hexagon_M4_vrmpyoh_s0,                     // llvm.hexagon.M4.vrmpyoh.s0
+    hexagon_M4_vrmpyoh_s1,                     // llvm.hexagon.M4.vrmpyoh.s1
+    hexagon_M4_xor_and,                        // llvm.hexagon.M4.xor.and
+    hexagon_M4_xor_andn,                       // llvm.hexagon.M4.xor.andn
+    hexagon_M4_xor_or,                         // llvm.hexagon.M4.xor.or
+    hexagon_M4_xor_xacc,                       // llvm.hexagon.M4.xor.xacc
+    hexagon_M5_vdmacbsu,                       // llvm.hexagon.M5.vdmacbsu
+    hexagon_M5_vdmpybsu,                       // llvm.hexagon.M5.vdmpybsu
+    hexagon_M5_vmacbsu,                        // llvm.hexagon.M5.vmacbsu
+    hexagon_M5_vmacbuu,                        // llvm.hexagon.M5.vmacbuu
+    hexagon_M5_vmpybsu,                        // llvm.hexagon.M5.vmpybsu
+    hexagon_M5_vmpybuu,                        // llvm.hexagon.M5.vmpybuu
+    hexagon_M5_vrmacbsu,                       // llvm.hexagon.M5.vrmacbsu
+    hexagon_M5_vrmacbuu,                       // llvm.hexagon.M5.vrmacbuu
+    hexagon_M5_vrmpybsu,                       // llvm.hexagon.M5.vrmpybsu
+    hexagon_M5_vrmpybuu,                       // llvm.hexagon.M5.vrmpybuu
+    hexagon_M6_vabsdiffb,                      // llvm.hexagon.M6.vabsdiffb
+    hexagon_M6_vabsdiffub,                     // llvm.hexagon.M6.vabsdiffub
+    hexagon_S2_addasl_rrri,                    // llvm.hexagon.S2.addasl.rrri
+    hexagon_S2_asl_i_p,                        // llvm.hexagon.S2.asl.i.p
+    hexagon_S2_asl_i_p_acc,                    // llvm.hexagon.S2.asl.i.p.acc
+    hexagon_S2_asl_i_p_and,                    // llvm.hexagon.S2.asl.i.p.and
+    hexagon_S2_asl_i_p_nac,                    // llvm.hexagon.S2.asl.i.p.nac
+    hexagon_S2_asl_i_p_or,                     // llvm.hexagon.S2.asl.i.p.or
+    hexagon_S2_asl_i_p_xacc,                   // llvm.hexagon.S2.asl.i.p.xacc
+    hexagon_S2_asl_i_r,                        // llvm.hexagon.S2.asl.i.r
+    hexagon_S2_asl_i_r_acc,                    // llvm.hexagon.S2.asl.i.r.acc
+    hexagon_S2_asl_i_r_and,                    // llvm.hexagon.S2.asl.i.r.and
+    hexagon_S2_asl_i_r_nac,                    // llvm.hexagon.S2.asl.i.r.nac
+    hexagon_S2_asl_i_r_or,                     // llvm.hexagon.S2.asl.i.r.or
+    hexagon_S2_asl_i_r_sat,                    // llvm.hexagon.S2.asl.i.r.sat
+    hexagon_S2_asl_i_r_xacc,                   // llvm.hexagon.S2.asl.i.r.xacc
+    hexagon_S2_asl_i_vh,                       // llvm.hexagon.S2.asl.i.vh
+    hexagon_S2_asl_i_vw,                       // llvm.hexagon.S2.asl.i.vw
+    hexagon_S2_asl_r_p,                        // llvm.hexagon.S2.asl.r.p
+    hexagon_S2_asl_r_p_acc,                    // llvm.hexagon.S2.asl.r.p.acc
+    hexagon_S2_asl_r_p_and,                    // llvm.hexagon.S2.asl.r.p.and
+    hexagon_S2_asl_r_p_nac,                    // llvm.hexagon.S2.asl.r.p.nac
+    hexagon_S2_asl_r_p_or,                     // llvm.hexagon.S2.asl.r.p.or
+    hexagon_S2_asl_r_p_xor,                    // llvm.hexagon.S2.asl.r.p.xor
+    hexagon_S2_asl_r_r,                        // llvm.hexagon.S2.asl.r.r
+    hexagon_S2_asl_r_r_acc,                    // llvm.hexagon.S2.asl.r.r.acc
+    hexagon_S2_asl_r_r_and,                    // llvm.hexagon.S2.asl.r.r.and
+    hexagon_S2_asl_r_r_nac,                    // llvm.hexagon.S2.asl.r.r.nac
+    hexagon_S2_asl_r_r_or,                     // llvm.hexagon.S2.asl.r.r.or
+    hexagon_S2_asl_r_r_sat,                    // llvm.hexagon.S2.asl.r.r.sat
+    hexagon_S2_asl_r_vh,                       // llvm.hexagon.S2.asl.r.vh
+    hexagon_S2_asl_r_vw,                       // llvm.hexagon.S2.asl.r.vw
+    hexagon_S2_asr_i_p,                        // llvm.hexagon.S2.asr.i.p
+    hexagon_S2_asr_i_p_acc,                    // llvm.hexagon.S2.asr.i.p.acc
+    hexagon_S2_asr_i_p_and,                    // llvm.hexagon.S2.asr.i.p.and
+    hexagon_S2_asr_i_p_nac,                    // llvm.hexagon.S2.asr.i.p.nac
+    hexagon_S2_asr_i_p_or,                     // llvm.hexagon.S2.asr.i.p.or
+    hexagon_S2_asr_i_p_rnd,                    // llvm.hexagon.S2.asr.i.p.rnd
+    hexagon_S2_asr_i_p_rnd_goodsyntax,         // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
+    hexagon_S2_asr_i_r,                        // llvm.hexagon.S2.asr.i.r
+    hexagon_S2_asr_i_r_acc,                    // llvm.hexagon.S2.asr.i.r.acc
+    hexagon_S2_asr_i_r_and,                    // llvm.hexagon.S2.asr.i.r.and
+    hexagon_S2_asr_i_r_nac,                    // llvm.hexagon.S2.asr.i.r.nac
+    hexagon_S2_asr_i_r_or,                     // llvm.hexagon.S2.asr.i.r.or
+    hexagon_S2_asr_i_r_rnd,                    // llvm.hexagon.S2.asr.i.r.rnd
+    hexagon_S2_asr_i_r_rnd_goodsyntax,         // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
+    hexagon_S2_asr_i_svw_trun,                 // llvm.hexagon.S2.asr.i.svw.trun
+    hexagon_S2_asr_i_vh,                       // llvm.hexagon.S2.asr.i.vh
+    hexagon_S2_asr_i_vw,                       // llvm.hexagon.S2.asr.i.vw
+    hexagon_S2_asr_r_p,                        // llvm.hexagon.S2.asr.r.p
+    hexagon_S2_asr_r_p_acc,                    // llvm.hexagon.S2.asr.r.p.acc
+    hexagon_S2_asr_r_p_and,                    // llvm.hexagon.S2.asr.r.p.and
+    hexagon_S2_asr_r_p_nac,                    // llvm.hexagon.S2.asr.r.p.nac
+    hexagon_S2_asr_r_p_or,                     // llvm.hexagon.S2.asr.r.p.or
+    hexagon_S2_asr_r_p_xor,                    // llvm.hexagon.S2.asr.r.p.xor
+    hexagon_S2_asr_r_r,                        // llvm.hexagon.S2.asr.r.r
+    hexagon_S2_asr_r_r_acc,                    // llvm.hexagon.S2.asr.r.r.acc
+    hexagon_S2_asr_r_r_and,                    // llvm.hexagon.S2.asr.r.r.and
+    hexagon_S2_asr_r_r_nac,                    // llvm.hexagon.S2.asr.r.r.nac
+    hexagon_S2_asr_r_r_or,                     // llvm.hexagon.S2.asr.r.r.or
+    hexagon_S2_asr_r_r_sat,                    // llvm.hexagon.S2.asr.r.r.sat
+    hexagon_S2_asr_r_svw_trun,                 // llvm.hexagon.S2.asr.r.svw.trun
+    hexagon_S2_asr_r_vh,                       // llvm.hexagon.S2.asr.r.vh
+    hexagon_S2_asr_r_vw,                       // llvm.hexagon.S2.asr.r.vw
+    hexagon_S2_brev,                           // llvm.hexagon.S2.brev
+    hexagon_S2_brevp,                          // llvm.hexagon.S2.brevp
+    hexagon_S2_cabacencbin,                    // llvm.hexagon.S2.cabacencbin
+    hexagon_S2_cl0,                            // llvm.hexagon.S2.cl0
+    hexagon_S2_cl0p,                           // llvm.hexagon.S2.cl0p
+    hexagon_S2_cl1,                            // llvm.hexagon.S2.cl1
+    hexagon_S2_cl1p,                           // llvm.hexagon.S2.cl1p
+    hexagon_S2_clb,                            // llvm.hexagon.S2.clb
+    hexagon_S2_clbnorm,                        // llvm.hexagon.S2.clbnorm
+    hexagon_S2_clbp,                           // llvm.hexagon.S2.clbp
+    hexagon_S2_clrbit_i,                       // llvm.hexagon.S2.clrbit.i
+    hexagon_S2_clrbit_r,                       // llvm.hexagon.S2.clrbit.r
+    hexagon_S2_ct0,                            // llvm.hexagon.S2.ct0
+    hexagon_S2_ct0p,                           // llvm.hexagon.S2.ct0p
+    hexagon_S2_ct1,                            // llvm.hexagon.S2.ct1
+    hexagon_S2_ct1p,                           // llvm.hexagon.S2.ct1p
+    hexagon_S2_deinterleave,                   // llvm.hexagon.S2.deinterleave
+    hexagon_S2_extractu,                       // llvm.hexagon.S2.extractu
+    hexagon_S2_extractu_rp,                    // llvm.hexagon.S2.extractu.rp
+    hexagon_S2_extractup,                      // llvm.hexagon.S2.extractup
+    hexagon_S2_extractup_rp,                   // llvm.hexagon.S2.extractup.rp
+    hexagon_S2_insert,                         // llvm.hexagon.S2.insert
+    hexagon_S2_insert_rp,                      // llvm.hexagon.S2.insert.rp
+    hexagon_S2_insertp,                        // llvm.hexagon.S2.insertp
+    hexagon_S2_insertp_rp,                     // llvm.hexagon.S2.insertp.rp
+    hexagon_S2_interleave,                     // llvm.hexagon.S2.interleave
+    hexagon_S2_lfsp,                           // llvm.hexagon.S2.lfsp
+    hexagon_S2_lsl_r_p,                        // llvm.hexagon.S2.lsl.r.p
+    hexagon_S2_lsl_r_p_acc,                    // llvm.hexagon.S2.lsl.r.p.acc
+    hexagon_S2_lsl_r_p_and,                    // llvm.hexagon.S2.lsl.r.p.and
+    hexagon_S2_lsl_r_p_nac,                    // llvm.hexagon.S2.lsl.r.p.nac
+    hexagon_S2_lsl_r_p_or,                     // llvm.hexagon.S2.lsl.r.p.or
+    hexagon_S2_lsl_r_p_xor,                    // llvm.hexagon.S2.lsl.r.p.xor
+    hexagon_S2_lsl_r_r,                        // llvm.hexagon.S2.lsl.r.r
+    hexagon_S2_lsl_r_r_acc,                    // llvm.hexagon.S2.lsl.r.r.acc
+    hexagon_S2_lsl_r_r_and,                    // llvm.hexagon.S2.lsl.r.r.and
+    hexagon_S2_lsl_r_r_nac,                    // llvm.hexagon.S2.lsl.r.r.nac
+    hexagon_S2_lsl_r_r_or,                     // llvm.hexagon.S2.lsl.r.r.or
+    hexagon_S2_lsl_r_vh,                       // llvm.hexagon.S2.lsl.r.vh
+    hexagon_S2_lsl_r_vw,                       // llvm.hexagon.S2.lsl.r.vw
+    hexagon_S2_lsr_i_p,                        // llvm.hexagon.S2.lsr.i.p
+    hexagon_S2_lsr_i_p_acc,                    // llvm.hexagon.S2.lsr.i.p.acc
+    hexagon_S2_lsr_i_p_and,                    // llvm.hexagon.S2.lsr.i.p.and
+    hexagon_S2_lsr_i_p_nac,                    // llvm.hexagon.S2.lsr.i.p.nac
+    hexagon_S2_lsr_i_p_or,                     // llvm.hexagon.S2.lsr.i.p.or
+    hexagon_S2_lsr_i_p_xacc,                   // llvm.hexagon.S2.lsr.i.p.xacc
+    hexagon_S2_lsr_i_r,                        // llvm.hexagon.S2.lsr.i.r
+    hexagon_S2_lsr_i_r_acc,                    // llvm.hexagon.S2.lsr.i.r.acc
+    hexagon_S2_lsr_i_r_and,                    // llvm.hexagon.S2.lsr.i.r.and
+    hexagon_S2_lsr_i_r_nac,                    // llvm.hexagon.S2.lsr.i.r.nac
+    hexagon_S2_lsr_i_r_or,                     // llvm.hexagon.S2.lsr.i.r.or
+    hexagon_S2_lsr_i_r_xacc,                   // llvm.hexagon.S2.lsr.i.r.xacc
+    hexagon_S2_lsr_i_vh,                       // llvm.hexagon.S2.lsr.i.vh
+    hexagon_S2_lsr_i_vw,                       // llvm.hexagon.S2.lsr.i.vw
+    hexagon_S2_lsr_r_p,                        // llvm.hexagon.S2.lsr.r.p
+    hexagon_S2_lsr_r_p_acc,                    // llvm.hexagon.S2.lsr.r.p.acc
+    hexagon_S2_lsr_r_p_and,                    // llvm.hexagon.S2.lsr.r.p.and
+    hexagon_S2_lsr_r_p_nac,                    // llvm.hexagon.S2.lsr.r.p.nac
+    hexagon_S2_lsr_r_p_or,                     // llvm.hexagon.S2.lsr.r.p.or
+    hexagon_S2_lsr_r_p_xor,                    // llvm.hexagon.S2.lsr.r.p.xor
+    hexagon_S2_lsr_r_r,                        // llvm.hexagon.S2.lsr.r.r
+    hexagon_S2_lsr_r_r_acc,                    // llvm.hexagon.S2.lsr.r.r.acc
+    hexagon_S2_lsr_r_r_and,                    // llvm.hexagon.S2.lsr.r.r.and
+    hexagon_S2_lsr_r_r_nac,                    // llvm.hexagon.S2.lsr.r.r.nac
+    hexagon_S2_lsr_r_r_or,                     // llvm.hexagon.S2.lsr.r.r.or
+    hexagon_S2_lsr_r_vh,                       // llvm.hexagon.S2.lsr.r.vh
+    hexagon_S2_lsr_r_vw,                       // llvm.hexagon.S2.lsr.r.vw
+    hexagon_S2_packhl,                         // llvm.hexagon.S2.packhl
+    hexagon_S2_parityp,                        // llvm.hexagon.S2.parityp
+    hexagon_S2_setbit_i,                       // llvm.hexagon.S2.setbit.i
+    hexagon_S2_setbit_r,                       // llvm.hexagon.S2.setbit.r
+    hexagon_S2_shuffeb,                        // llvm.hexagon.S2.shuffeb
+    hexagon_S2_shuffeh,                        // llvm.hexagon.S2.shuffeh
+    hexagon_S2_shuffob,                        // llvm.hexagon.S2.shuffob
+    hexagon_S2_shuffoh,                        // llvm.hexagon.S2.shuffoh
+    hexagon_S2_storerb_pbr,                    // llvm.hexagon.S2.storerb.pbr
+    hexagon_S2_storerb_pci,                    // llvm.hexagon.S2.storerb.pci
+    hexagon_S2_storerb_pcr,                    // llvm.hexagon.S2.storerb.pcr
+    hexagon_S2_storerd_pbr,                    // llvm.hexagon.S2.storerd.pbr
+    hexagon_S2_storerd_pci,                    // llvm.hexagon.S2.storerd.pci
+    hexagon_S2_storerd_pcr,                    // llvm.hexagon.S2.storerd.pcr
+    hexagon_S2_storerf_pbr,                    // llvm.hexagon.S2.storerf.pbr
+    hexagon_S2_storerf_pci,                    // llvm.hexagon.S2.storerf.pci
+    hexagon_S2_storerf_pcr,                    // llvm.hexagon.S2.storerf.pcr
+    hexagon_S2_storerh_pbr,                    // llvm.hexagon.S2.storerh.pbr
+    hexagon_S2_storerh_pci,                    // llvm.hexagon.S2.storerh.pci
+    hexagon_S2_storerh_pcr,                    // llvm.hexagon.S2.storerh.pcr
+    hexagon_S2_storeri_pbr,                    // llvm.hexagon.S2.storeri.pbr
+    hexagon_S2_storeri_pci,                    // llvm.hexagon.S2.storeri.pci
+    hexagon_S2_storeri_pcr,                    // llvm.hexagon.S2.storeri.pcr
+    hexagon_S2_storew_locked,                  // llvm.hexagon.S2.storew.locked
+    hexagon_S2_svsathb,                        // llvm.hexagon.S2.svsathb
+    hexagon_S2_svsathub,                       // llvm.hexagon.S2.svsathub
+    hexagon_S2_tableidxb_goodsyntax,           // llvm.hexagon.S2.tableidxb.goodsyntax
+    hexagon_S2_tableidxd_goodsyntax,           // llvm.hexagon.S2.tableidxd.goodsyntax
+    hexagon_S2_tableidxh_goodsyntax,           // llvm.hexagon.S2.tableidxh.goodsyntax
+    hexagon_S2_tableidxw_goodsyntax,           // llvm.hexagon.S2.tableidxw.goodsyntax
+    hexagon_S2_togglebit_i,                    // llvm.hexagon.S2.togglebit.i
+    hexagon_S2_togglebit_r,                    // llvm.hexagon.S2.togglebit.r
+    hexagon_S2_tstbit_i,                       // llvm.hexagon.S2.tstbit.i
+    hexagon_S2_tstbit_r,                       // llvm.hexagon.S2.tstbit.r
+    hexagon_S2_valignib,                       // llvm.hexagon.S2.valignib
+    hexagon_S2_valignrb,                       // llvm.hexagon.S2.valignrb
+    hexagon_S2_vcnegh,                         // llvm.hexagon.S2.vcnegh
+    hexagon_S2_vcrotate,                       // llvm.hexagon.S2.vcrotate
+    hexagon_S2_vrcnegh,                        // llvm.hexagon.S2.vrcnegh
+    hexagon_S2_vrndpackwh,                     // llvm.hexagon.S2.vrndpackwh
+    hexagon_S2_vrndpackwhs,                    // llvm.hexagon.S2.vrndpackwhs
+    hexagon_S2_vsathb,                         // llvm.hexagon.S2.vsathb
+    hexagon_S2_vsathb_nopack,                  // llvm.hexagon.S2.vsathb.nopack
+    hexagon_S2_vsathub,                        // llvm.hexagon.S2.vsathub
+    hexagon_S2_vsathub_nopack,                 // llvm.hexagon.S2.vsathub.nopack
+    hexagon_S2_vsatwh,                         // llvm.hexagon.S2.vsatwh
+    hexagon_S2_vsatwh_nopack,                  // llvm.hexagon.S2.vsatwh.nopack
+    hexagon_S2_vsatwuh,                        // llvm.hexagon.S2.vsatwuh
+    hexagon_S2_vsatwuh_nopack,                 // llvm.hexagon.S2.vsatwuh.nopack
+    hexagon_S2_vsplatrb,                       // llvm.hexagon.S2.vsplatrb
+    hexagon_S2_vsplatrh,                       // llvm.hexagon.S2.vsplatrh
+    hexagon_S2_vspliceib,                      // llvm.hexagon.S2.vspliceib
+    hexagon_S2_vsplicerb,                      // llvm.hexagon.S2.vsplicerb
+    hexagon_S2_vsxtbh,                         // llvm.hexagon.S2.vsxtbh
+    hexagon_S2_vsxthw,                         // llvm.hexagon.S2.vsxthw
+    hexagon_S2_vtrunehb,                       // llvm.hexagon.S2.vtrunehb
+    hexagon_S2_vtrunewh,                       // llvm.hexagon.S2.vtrunewh
+    hexagon_S2_vtrunohb,                       // llvm.hexagon.S2.vtrunohb
+    hexagon_S2_vtrunowh,                       // llvm.hexagon.S2.vtrunowh
+    hexagon_S2_vzxtbh,                         // llvm.hexagon.S2.vzxtbh
+    hexagon_S2_vzxthw,                         // llvm.hexagon.S2.vzxthw
+    hexagon_S4_addaddi,                        // llvm.hexagon.S4.addaddi
+    hexagon_S4_addi_asl_ri,                    // llvm.hexagon.S4.addi.asl.ri
+    hexagon_S4_addi_lsr_ri,                    // llvm.hexagon.S4.addi.lsr.ri
+    hexagon_S4_andi_asl_ri,                    // llvm.hexagon.S4.andi.asl.ri
+    hexagon_S4_andi_lsr_ri,                    // llvm.hexagon.S4.andi.lsr.ri
+    hexagon_S4_clbaddi,                        // llvm.hexagon.S4.clbaddi
+    hexagon_S4_clbpaddi,                       // llvm.hexagon.S4.clbpaddi
+    hexagon_S4_clbpnorm,                       // llvm.hexagon.S4.clbpnorm
+    hexagon_S4_extract,                        // llvm.hexagon.S4.extract
+    hexagon_S4_extract_rp,                     // llvm.hexagon.S4.extract.rp
+    hexagon_S4_extractp,                       // llvm.hexagon.S4.extractp
+    hexagon_S4_extractp_rp,                    // llvm.hexagon.S4.extractp.rp
+    hexagon_S4_lsli,                           // llvm.hexagon.S4.lsli
+    hexagon_S4_ntstbit_i,                      // llvm.hexagon.S4.ntstbit.i
+    hexagon_S4_ntstbit_r,                      // llvm.hexagon.S4.ntstbit.r
+    hexagon_S4_or_andi,                        // llvm.hexagon.S4.or.andi
+    hexagon_S4_or_andix,                       // llvm.hexagon.S4.or.andix
+    hexagon_S4_or_ori,                         // llvm.hexagon.S4.or.ori
+    hexagon_S4_ori_asl_ri,                     // llvm.hexagon.S4.ori.asl.ri
+    hexagon_S4_ori_lsr_ri,                     // llvm.hexagon.S4.ori.lsr.ri
+    hexagon_S4_parity,                         // llvm.hexagon.S4.parity
+    hexagon_S4_stored_locked,                  // llvm.hexagon.S4.stored.locked
+    hexagon_S4_subaddi,                        // llvm.hexagon.S4.subaddi
+    hexagon_S4_subi_asl_ri,                    // llvm.hexagon.S4.subi.asl.ri
+    hexagon_S4_subi_lsr_ri,                    // llvm.hexagon.S4.subi.lsr.ri
+    hexagon_S4_vrcrotate,                      // llvm.hexagon.S4.vrcrotate
+    hexagon_S4_vrcrotate_acc,                  // llvm.hexagon.S4.vrcrotate.acc
+    hexagon_S4_vxaddsubh,                      // llvm.hexagon.S4.vxaddsubh
+    hexagon_S4_vxaddsubhr,                     // llvm.hexagon.S4.vxaddsubhr
+    hexagon_S4_vxaddsubw,                      // llvm.hexagon.S4.vxaddsubw
+    hexagon_S4_vxsubaddh,                      // llvm.hexagon.S4.vxsubaddh
+    hexagon_S4_vxsubaddhr,                     // llvm.hexagon.S4.vxsubaddhr
+    hexagon_S4_vxsubaddw,                      // llvm.hexagon.S4.vxsubaddw
+    hexagon_S5_asrhub_rnd_sat_goodsyntax,      // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
+    hexagon_S5_asrhub_sat,                     // llvm.hexagon.S5.asrhub.sat
+    hexagon_S5_popcountp,                      // llvm.hexagon.S5.popcountp
+    hexagon_S5_vasrhrnd_goodsyntax,            // llvm.hexagon.S5.vasrhrnd.goodsyntax
+    hexagon_S6_rol_i_p,                        // llvm.hexagon.S6.rol.i.p
+    hexagon_S6_rol_i_p_acc,                    // llvm.hexagon.S6.rol.i.p.acc
+    hexagon_S6_rol_i_p_and,                    // llvm.hexagon.S6.rol.i.p.and
+    hexagon_S6_rol_i_p_nac,                    // llvm.hexagon.S6.rol.i.p.nac
+    hexagon_S6_rol_i_p_or,                     // llvm.hexagon.S6.rol.i.p.or
+    hexagon_S6_rol_i_p_xacc,                   // llvm.hexagon.S6.rol.i.p.xacc
+    hexagon_S6_rol_i_r,                        // llvm.hexagon.S6.rol.i.r
+    hexagon_S6_rol_i_r_acc,                    // llvm.hexagon.S6.rol.i.r.acc
+    hexagon_S6_rol_i_r_and,                    // llvm.hexagon.S6.rol.i.r.and
+    hexagon_S6_rol_i_r_nac,                    // llvm.hexagon.S6.rol.i.r.nac
+    hexagon_S6_rol_i_r_or,                     // llvm.hexagon.S6.rol.i.r.or
+    hexagon_S6_rol_i_r_xacc,                   // llvm.hexagon.S6.rol.i.r.xacc
+    hexagon_S6_vsplatrbp,                      // llvm.hexagon.S6.vsplatrbp
+    hexagon_S6_vtrunehb_ppp,                   // llvm.hexagon.S6.vtrunehb.ppp
+    hexagon_S6_vtrunohb_ppp,                   // llvm.hexagon.S6.vtrunohb.ppp
+    hexagon_V6_extractw,                       // llvm.hexagon.V6.extractw
+    hexagon_V6_extractw_128B,                  // llvm.hexagon.V6.extractw.128B
+    hexagon_V6_hi,                             // llvm.hexagon.V6.hi
+    hexagon_V6_hi_128B,                        // llvm.hexagon.V6.hi.128B
+    hexagon_V6_lo,                             // llvm.hexagon.V6.lo
+    hexagon_V6_lo_128B,                        // llvm.hexagon.V6.lo.128B
+    hexagon_V6_lvsplatb,                       // llvm.hexagon.V6.lvsplatb
+    hexagon_V6_lvsplatb_128B,                  // llvm.hexagon.V6.lvsplatb.128B
+    hexagon_V6_lvsplath,                       // llvm.hexagon.V6.lvsplath
+    hexagon_V6_lvsplath_128B,                  // llvm.hexagon.V6.lvsplath.128B
+    hexagon_V6_lvsplatw,                       // llvm.hexagon.V6.lvsplatw
+    hexagon_V6_lvsplatw_128B,                  // llvm.hexagon.V6.lvsplatw.128B
+    hexagon_V6_pred_and,                       // llvm.hexagon.V6.pred.and
+    hexagon_V6_pred_and_128B,                  // llvm.hexagon.V6.pred.and.128B
+    hexagon_V6_pred_and_n,                     // llvm.hexagon.V6.pred.and.n
+    hexagon_V6_pred_and_n_128B,                // llvm.hexagon.V6.pred.and.n.128B
+    hexagon_V6_pred_not,                       // llvm.hexagon.V6.pred.not
+    hexagon_V6_pred_not_128B,                  // llvm.hexagon.V6.pred.not.128B
+    hexagon_V6_pred_or,                        // llvm.hexagon.V6.pred.or
+    hexagon_V6_pred_or_128B,                   // llvm.hexagon.V6.pred.or.128B
+    hexagon_V6_pred_or_n,                      // llvm.hexagon.V6.pred.or.n
+    hexagon_V6_pred_or_n_128B,                 // llvm.hexagon.V6.pred.or.n.128B
+    hexagon_V6_pred_scalar2,                   // llvm.hexagon.V6.pred.scalar2
+    hexagon_V6_pred_scalar2_128B,              // llvm.hexagon.V6.pred.scalar2.128B
+    hexagon_V6_pred_scalar2v2,                 // llvm.hexagon.V6.pred.scalar2v2
+    hexagon_V6_pred_scalar2v2_128B,            // llvm.hexagon.V6.pred.scalar2v2.128B
+    hexagon_V6_pred_xor,                       // llvm.hexagon.V6.pred.xor
+    hexagon_V6_pred_xor_128B,                  // llvm.hexagon.V6.pred.xor.128B
+    hexagon_V6_shuffeqh,                       // llvm.hexagon.V6.shuffeqh
+    hexagon_V6_shuffeqh_128B,                  // llvm.hexagon.V6.shuffeqh.128B
+    hexagon_V6_shuffeqw,                       // llvm.hexagon.V6.shuffeqw
+    hexagon_V6_shuffeqw_128B,                  // llvm.hexagon.V6.shuffeqw.128B
+    hexagon_V6_vS32b_nqpred_ai,                // llvm.hexagon.V6.vS32b.nqpred.ai
+    hexagon_V6_vS32b_nqpred_ai_128B,           // llvm.hexagon.V6.vS32b.nqpred.ai.128B
+    hexagon_V6_vS32b_nt_nqpred_ai,             // llvm.hexagon.V6.vS32b.nt.nqpred.ai
+    hexagon_V6_vS32b_nt_nqpred_ai_128B,        // llvm.hexagon.V6.vS32b.nt.nqpred.ai.128B
+    hexagon_V6_vS32b_nt_qpred_ai,              // llvm.hexagon.V6.vS32b.nt.qpred.ai
+    hexagon_V6_vS32b_nt_qpred_ai_128B,         // llvm.hexagon.V6.vS32b.nt.qpred.ai.128B
+    hexagon_V6_vS32b_qpred_ai,                 // llvm.hexagon.V6.vS32b.qpred.ai
+    hexagon_V6_vS32b_qpred_ai_128B,            // llvm.hexagon.V6.vS32b.qpred.ai.128B
+    hexagon_V6_vabsb,                          // llvm.hexagon.V6.vabsb
+    hexagon_V6_vabsb_128B,                     // llvm.hexagon.V6.vabsb.128B
+    hexagon_V6_vabsb_sat,                      // llvm.hexagon.V6.vabsb.sat
+    hexagon_V6_vabsb_sat_128B,                 // llvm.hexagon.V6.vabsb.sat.128B
+    hexagon_V6_vabsdiffh,                      // llvm.hexagon.V6.vabsdiffh
+    hexagon_V6_vabsdiffh_128B,                 // llvm.hexagon.V6.vabsdiffh.128B
+    hexagon_V6_vabsdiffub,                     // llvm.hexagon.V6.vabsdiffub
+    hexagon_V6_vabsdiffub_128B,                // llvm.hexagon.V6.vabsdiffub.128B
+    hexagon_V6_vabsdiffuh,                     // llvm.hexagon.V6.vabsdiffuh
+    hexagon_V6_vabsdiffuh_128B,                // llvm.hexagon.V6.vabsdiffuh.128B
+    hexagon_V6_vabsdiffw,                      // llvm.hexagon.V6.vabsdiffw
+    hexagon_V6_vabsdiffw_128B,                 // llvm.hexagon.V6.vabsdiffw.128B
+    hexagon_V6_vabsh,                          // llvm.hexagon.V6.vabsh
+    hexagon_V6_vabsh_128B,                     // llvm.hexagon.V6.vabsh.128B
+    hexagon_V6_vabsh_sat,                      // llvm.hexagon.V6.vabsh.sat
+    hexagon_V6_vabsh_sat_128B,                 // llvm.hexagon.V6.vabsh.sat.128B
+    hexagon_V6_vabsw,                          // llvm.hexagon.V6.vabsw
+    hexagon_V6_vabsw_128B,                     // llvm.hexagon.V6.vabsw.128B
+    hexagon_V6_vabsw_sat,                      // llvm.hexagon.V6.vabsw.sat
+    hexagon_V6_vabsw_sat_128B,                 // llvm.hexagon.V6.vabsw.sat.128B
+    hexagon_V6_vaddb,                          // llvm.hexagon.V6.vaddb
+    hexagon_V6_vaddb_128B,                     // llvm.hexagon.V6.vaddb.128B
+    hexagon_V6_vaddb_dv,                       // llvm.hexagon.V6.vaddb.dv
+    hexagon_V6_vaddb_dv_128B,                  // llvm.hexagon.V6.vaddb.dv.128B
+    hexagon_V6_vaddbnq,                        // llvm.hexagon.V6.vaddbnq
+    hexagon_V6_vaddbnq_128B,                   // llvm.hexagon.V6.vaddbnq.128B
+    hexagon_V6_vaddbq,                         // llvm.hexagon.V6.vaddbq
+    hexagon_V6_vaddbq_128B,                    // llvm.hexagon.V6.vaddbq.128B
+    hexagon_V6_vaddbsat,                       // llvm.hexagon.V6.vaddbsat
+    hexagon_V6_vaddbsat_128B,                  // llvm.hexagon.V6.vaddbsat.128B
+    hexagon_V6_vaddbsat_dv,                    // llvm.hexagon.V6.vaddbsat.dv
+    hexagon_V6_vaddbsat_dv_128B,               // llvm.hexagon.V6.vaddbsat.dv.128B
+    hexagon_V6_vaddcarry,                      // llvm.hexagon.V6.vaddcarry
+    hexagon_V6_vaddcarry_128B,                 // llvm.hexagon.V6.vaddcarry.128B
+    hexagon_V6_vaddclbh,                       // llvm.hexagon.V6.vaddclbh
+    hexagon_V6_vaddclbh_128B,                  // llvm.hexagon.V6.vaddclbh.128B
+    hexagon_V6_vaddclbw,                       // llvm.hexagon.V6.vaddclbw
+    hexagon_V6_vaddclbw_128B,                  // llvm.hexagon.V6.vaddclbw.128B
+    hexagon_V6_vaddh,                          // llvm.hexagon.V6.vaddh
+    hexagon_V6_vaddh_128B,                     // llvm.hexagon.V6.vaddh.128B
+    hexagon_V6_vaddh_dv,                       // llvm.hexagon.V6.vaddh.dv
+    hexagon_V6_vaddh_dv_128B,                  // llvm.hexagon.V6.vaddh.dv.128B
+    hexagon_V6_vaddhnq,                        // llvm.hexagon.V6.vaddhnq
+    hexagon_V6_vaddhnq_128B,                   // llvm.hexagon.V6.vaddhnq.128B
+    hexagon_V6_vaddhq,                         // llvm.hexagon.V6.vaddhq
+    hexagon_V6_vaddhq_128B,                    // llvm.hexagon.V6.vaddhq.128B
+    hexagon_V6_vaddhsat,                       // llvm.hexagon.V6.vaddhsat
+    hexagon_V6_vaddhsat_128B,                  // llvm.hexagon.V6.vaddhsat.128B
+    hexagon_V6_vaddhsat_dv,                    // llvm.hexagon.V6.vaddhsat.dv
+    hexagon_V6_vaddhsat_dv_128B,               // llvm.hexagon.V6.vaddhsat.dv.128B
+    hexagon_V6_vaddhw,                         // llvm.hexagon.V6.vaddhw
+    hexagon_V6_vaddhw_128B,                    // llvm.hexagon.V6.vaddhw.128B
+    hexagon_V6_vaddhw_acc,                     // llvm.hexagon.V6.vaddhw.acc
+    hexagon_V6_vaddhw_acc_128B,                // llvm.hexagon.V6.vaddhw.acc.128B
+    hexagon_V6_vaddubh,                        // llvm.hexagon.V6.vaddubh
+    hexagon_V6_vaddubh_128B,                   // llvm.hexagon.V6.vaddubh.128B
+    hexagon_V6_vaddubh_acc,                    // llvm.hexagon.V6.vaddubh.acc
+    hexagon_V6_vaddubh_acc_128B,               // llvm.hexagon.V6.vaddubh.acc.128B
+    hexagon_V6_vaddubsat,                      // llvm.hexagon.V6.vaddubsat
+    hexagon_V6_vaddubsat_128B,                 // llvm.hexagon.V6.vaddubsat.128B
+    hexagon_V6_vaddubsat_dv,                   // llvm.hexagon.V6.vaddubsat.dv
+    hexagon_V6_vaddubsat_dv_128B,              // llvm.hexagon.V6.vaddubsat.dv.128B
+    hexagon_V6_vaddububb_sat,                  // llvm.hexagon.V6.vaddububb.sat
+    hexagon_V6_vaddububb_sat_128B,             // llvm.hexagon.V6.vaddububb.sat.128B
+    hexagon_V6_vadduhsat,                      // llvm.hexagon.V6.vadduhsat
+    hexagon_V6_vadduhsat_128B,                 // llvm.hexagon.V6.vadduhsat.128B
+    hexagon_V6_vadduhsat_dv,                   // llvm.hexagon.V6.vadduhsat.dv
+    hexagon_V6_vadduhsat_dv_128B,              // llvm.hexagon.V6.vadduhsat.dv.128B
+    hexagon_V6_vadduhw,                        // llvm.hexagon.V6.vadduhw
+    hexagon_V6_vadduhw_128B,                   // llvm.hexagon.V6.vadduhw.128B
+    hexagon_V6_vadduhw_acc,                    // llvm.hexagon.V6.vadduhw.acc
+    hexagon_V6_vadduhw_acc_128B,               // llvm.hexagon.V6.vadduhw.acc.128B
+    hexagon_V6_vadduwsat,                      // llvm.hexagon.V6.vadduwsat
+    hexagon_V6_vadduwsat_128B,                 // llvm.hexagon.V6.vadduwsat.128B
+    hexagon_V6_vadduwsat_dv,                   // llvm.hexagon.V6.vadduwsat.dv
+    hexagon_V6_vadduwsat_dv_128B,              // llvm.hexagon.V6.vadduwsat.dv.128B
+    hexagon_V6_vaddw,                          // llvm.hexagon.V6.vaddw
+    hexagon_V6_vaddw_128B,                     // llvm.hexagon.V6.vaddw.128B
+    hexagon_V6_vaddw_dv,                       // llvm.hexagon.V6.vaddw.dv
+    hexagon_V6_vaddw_dv_128B,                  // llvm.hexagon.V6.vaddw.dv.128B
+    hexagon_V6_vaddwnq,                        // llvm.hexagon.V6.vaddwnq
+    hexagon_V6_vaddwnq_128B,                   // llvm.hexagon.V6.vaddwnq.128B
+    hexagon_V6_vaddwq,                         // llvm.hexagon.V6.vaddwq
+    hexagon_V6_vaddwq_128B,                    // llvm.hexagon.V6.vaddwq.128B
+    hexagon_V6_vaddwsat,                       // llvm.hexagon.V6.vaddwsat
+    hexagon_V6_vaddwsat_128B,                  // llvm.hexagon.V6.vaddwsat.128B
+    hexagon_V6_vaddwsat_dv,                    // llvm.hexagon.V6.vaddwsat.dv
+    hexagon_V6_vaddwsat_dv_128B,               // llvm.hexagon.V6.vaddwsat.dv.128B
+    hexagon_V6_valignb,                        // llvm.hexagon.V6.valignb
+    hexagon_V6_valignb_128B,                   // llvm.hexagon.V6.valignb.128B
+    hexagon_V6_valignbi,                       // llvm.hexagon.V6.valignbi
+    hexagon_V6_valignbi_128B,                  // llvm.hexagon.V6.valignbi.128B
+    hexagon_V6_vand,                           // llvm.hexagon.V6.vand
+    hexagon_V6_vand_128B,                      // llvm.hexagon.V6.vand.128B
+    hexagon_V6_vandnqrt,                       // llvm.hexagon.V6.vandnqrt
+    hexagon_V6_vandnqrt_128B,                  // llvm.hexagon.V6.vandnqrt.128B
+    hexagon_V6_vandnqrt_acc,                   // llvm.hexagon.V6.vandnqrt.acc
+    hexagon_V6_vandnqrt_acc_128B,              // llvm.hexagon.V6.vandnqrt.acc.128B
+    hexagon_V6_vandqrt,                        // llvm.hexagon.V6.vandqrt
+    hexagon_V6_vandqrt_128B,                   // llvm.hexagon.V6.vandqrt.128B
+    hexagon_V6_vandqrt_acc,                    // llvm.hexagon.V6.vandqrt.acc
+    hexagon_V6_vandqrt_acc_128B,               // llvm.hexagon.V6.vandqrt.acc.128B
+    hexagon_V6_vandvnqv,                       // llvm.hexagon.V6.vandvnqv
+    hexagon_V6_vandvnqv_128B,                  // llvm.hexagon.V6.vandvnqv.128B
+    hexagon_V6_vandvqv,                        // llvm.hexagon.V6.vandvqv
+    hexagon_V6_vandvqv_128B,                   // llvm.hexagon.V6.vandvqv.128B
+    hexagon_V6_vandvrt,                        // llvm.hexagon.V6.vandvrt
+    hexagon_V6_vandvrt_128B,                   // llvm.hexagon.V6.vandvrt.128B
+    hexagon_V6_vandvrt_acc,                    // llvm.hexagon.V6.vandvrt.acc
+    hexagon_V6_vandvrt_acc_128B,               // llvm.hexagon.V6.vandvrt.acc.128B
+    hexagon_V6_vaslh,                          // llvm.hexagon.V6.vaslh
+    hexagon_V6_vaslh_128B,                     // llvm.hexagon.V6.vaslh.128B
+    hexagon_V6_vaslh_acc,                      // llvm.hexagon.V6.vaslh.acc
+    hexagon_V6_vaslh_acc_128B,                 // llvm.hexagon.V6.vaslh.acc.128B
+    hexagon_V6_vaslhv,                         // llvm.hexagon.V6.vaslhv
+    hexagon_V6_vaslhv_128B,                    // llvm.hexagon.V6.vaslhv.128B
+    hexagon_V6_vaslw,                          // llvm.hexagon.V6.vaslw
+    hexagon_V6_vaslw_128B,                     // llvm.hexagon.V6.vaslw.128B
+    hexagon_V6_vaslw_acc,                      // llvm.hexagon.V6.vaslw.acc
+    hexagon_V6_vaslw_acc_128B,                 // llvm.hexagon.V6.vaslw.acc.128B
+    hexagon_V6_vaslwv,                         // llvm.hexagon.V6.vaslwv
+    hexagon_V6_vaslwv_128B,                    // llvm.hexagon.V6.vaslwv.128B
+    hexagon_V6_vasrh,                          // llvm.hexagon.V6.vasrh
+    hexagon_V6_vasrh_128B,                     // llvm.hexagon.V6.vasrh.128B
+    hexagon_V6_vasrh_acc,                      // llvm.hexagon.V6.vasrh.acc
+    hexagon_V6_vasrh_acc_128B,                 // llvm.hexagon.V6.vasrh.acc.128B
+    hexagon_V6_vasrhbrndsat,                   // llvm.hexagon.V6.vasrhbrndsat
+    hexagon_V6_vasrhbrndsat_128B,              // llvm.hexagon.V6.vasrhbrndsat.128B
+    hexagon_V6_vasrhbsat,                      // llvm.hexagon.V6.vasrhbsat
+    hexagon_V6_vasrhbsat_128B,                 // llvm.hexagon.V6.vasrhbsat.128B
+    hexagon_V6_vasrhubrndsat,                  // llvm.hexagon.V6.vasrhubrndsat
+    hexagon_V6_vasrhubrndsat_128B,             // llvm.hexagon.V6.vasrhubrndsat.128B
+    hexagon_V6_vasrhubsat,                     // llvm.hexagon.V6.vasrhubsat
+    hexagon_V6_vasrhubsat_128B,                // llvm.hexagon.V6.vasrhubsat.128B
+    hexagon_V6_vasrhv,                         // llvm.hexagon.V6.vasrhv
+    hexagon_V6_vasrhv_128B,                    // llvm.hexagon.V6.vasrhv.128B
+    hexagon_V6_vasruhubrndsat,                 // llvm.hexagon.V6.vasruhubrndsat
+    hexagon_V6_vasruhubrndsat_128B,            // llvm.hexagon.V6.vasruhubrndsat.128B
+    hexagon_V6_vasruhubsat,                    // llvm.hexagon.V6.vasruhubsat
+    hexagon_V6_vasruhubsat_128B,               // llvm.hexagon.V6.vasruhubsat.128B
+    hexagon_V6_vasruwuhrndsat,                 // llvm.hexagon.V6.vasruwuhrndsat
+    hexagon_V6_vasruwuhrndsat_128B,            // llvm.hexagon.V6.vasruwuhrndsat.128B
+    hexagon_V6_vasruwuhsat,                    // llvm.hexagon.V6.vasruwuhsat
+    hexagon_V6_vasruwuhsat_128B,               // llvm.hexagon.V6.vasruwuhsat.128B
+    hexagon_V6_vasrw,                          // llvm.hexagon.V6.vasrw
+    hexagon_V6_vasrw_128B,                     // llvm.hexagon.V6.vasrw.128B
+    hexagon_V6_vasrw_acc,                      // llvm.hexagon.V6.vasrw.acc
+    hexagon_V6_vasrw_acc_128B,                 // llvm.hexagon.V6.vasrw.acc.128B
+    hexagon_V6_vasrwh,                         // llvm.hexagon.V6.vasrwh
+    hexagon_V6_vasrwh_128B,                    // llvm.hexagon.V6.vasrwh.128B
+    hexagon_V6_vasrwhrndsat,                   // llvm.hexagon.V6.vasrwhrndsat
+    hexagon_V6_vasrwhrndsat_128B,              // llvm.hexagon.V6.vasrwhrndsat.128B
+    hexagon_V6_vasrwhsat,                      // llvm.hexagon.V6.vasrwhsat
+    hexagon_V6_vasrwhsat_128B,                 // llvm.hexagon.V6.vasrwhsat.128B
+    hexagon_V6_vasrwuhrndsat,                  // llvm.hexagon.V6.vasrwuhrndsat
+    hexagon_V6_vasrwuhrndsat_128B,             // llvm.hexagon.V6.vasrwuhrndsat.128B
+    hexagon_V6_vasrwuhsat,                     // llvm.hexagon.V6.vasrwuhsat
+    hexagon_V6_vasrwuhsat_128B,                // llvm.hexagon.V6.vasrwuhsat.128B
+    hexagon_V6_vasrwv,                         // llvm.hexagon.V6.vasrwv
+    hexagon_V6_vasrwv_128B,                    // llvm.hexagon.V6.vasrwv.128B
+    hexagon_V6_vassign,                        // llvm.hexagon.V6.vassign
+    hexagon_V6_vassign_128B,                   // llvm.hexagon.V6.vassign.128B
+    hexagon_V6_vassignp,                       // llvm.hexagon.V6.vassignp
+    hexagon_V6_vassignp_128B,                  // llvm.hexagon.V6.vassignp.128B
+    hexagon_V6_vavgb,                          // llvm.hexagon.V6.vavgb
+    hexagon_V6_vavgb_128B,                     // llvm.hexagon.V6.vavgb.128B
+    hexagon_V6_vavgbrnd,                       // llvm.hexagon.V6.vavgbrnd
+    hexagon_V6_vavgbrnd_128B,                  // llvm.hexagon.V6.vavgbrnd.128B
+    hexagon_V6_vavgh,                          // llvm.hexagon.V6.vavgh
+    hexagon_V6_vavgh_128B,                     // llvm.hexagon.V6.vavgh.128B
+    hexagon_V6_vavghrnd,                       // llvm.hexagon.V6.vavghrnd
+    hexagon_V6_vavghrnd_128B,                  // llvm.hexagon.V6.vavghrnd.128B
+    hexagon_V6_vavgub,                         // llvm.hexagon.V6.vavgub
+    hexagon_V6_vavgub_128B,                    // llvm.hexagon.V6.vavgub.128B
+    hexagon_V6_vavgubrnd,                      // llvm.hexagon.V6.vavgubrnd
+    hexagon_V6_vavgubrnd_128B,                 // llvm.hexagon.V6.vavgubrnd.128B
+    hexagon_V6_vavguh,                         // llvm.hexagon.V6.vavguh
+    hexagon_V6_vavguh_128B,                    // llvm.hexagon.V6.vavguh.128B
+    hexagon_V6_vavguhrnd,                      // llvm.hexagon.V6.vavguhrnd
+    hexagon_V6_vavguhrnd_128B,                 // llvm.hexagon.V6.vavguhrnd.128B
+    hexagon_V6_vavguw,                         // llvm.hexagon.V6.vavguw
+    hexagon_V6_vavguw_128B,                    // llvm.hexagon.V6.vavguw.128B
+    hexagon_V6_vavguwrnd,                      // llvm.hexagon.V6.vavguwrnd
+    hexagon_V6_vavguwrnd_128B,                 // llvm.hexagon.V6.vavguwrnd.128B
+    hexagon_V6_vavgw,                          // llvm.hexagon.V6.vavgw
+    hexagon_V6_vavgw_128B,                     // llvm.hexagon.V6.vavgw.128B
+    hexagon_V6_vavgwrnd,                       // llvm.hexagon.V6.vavgwrnd
+    hexagon_V6_vavgwrnd_128B,                  // llvm.hexagon.V6.vavgwrnd.128B
+    hexagon_V6_vcl0h,                          // llvm.hexagon.V6.vcl0h
+    hexagon_V6_vcl0h_128B,                     // llvm.hexagon.V6.vcl0h.128B
+    hexagon_V6_vcl0w,                          // llvm.hexagon.V6.vcl0w
+    hexagon_V6_vcl0w_128B,                     // llvm.hexagon.V6.vcl0w.128B
+    hexagon_V6_vcombine,                       // llvm.hexagon.V6.vcombine
+    hexagon_V6_vcombine_128B,                  // llvm.hexagon.V6.vcombine.128B
+    hexagon_V6_vd0,                            // llvm.hexagon.V6.vd0
+    hexagon_V6_vd0_128B,                       // llvm.hexagon.V6.vd0.128B
+    hexagon_V6_vdd0,                           // llvm.hexagon.V6.vdd0
+    hexagon_V6_vdd0_128B,                      // llvm.hexagon.V6.vdd0.128B
+    hexagon_V6_vdealb,                         // llvm.hexagon.V6.vdealb
+    hexagon_V6_vdealb_128B,                    // llvm.hexagon.V6.vdealb.128B
+    hexagon_V6_vdealb4w,                       // llvm.hexagon.V6.vdealb4w
+    hexagon_V6_vdealb4w_128B,                  // llvm.hexagon.V6.vdealb4w.128B
+    hexagon_V6_vdealh,                         // llvm.hexagon.V6.vdealh
+    hexagon_V6_vdealh_128B,                    // llvm.hexagon.V6.vdealh.128B
+    hexagon_V6_vdealvdd,                       // llvm.hexagon.V6.vdealvdd
+    hexagon_V6_vdealvdd_128B,                  // llvm.hexagon.V6.vdealvdd.128B
+    hexagon_V6_vdelta,                         // llvm.hexagon.V6.vdelta
+    hexagon_V6_vdelta_128B,                    // llvm.hexagon.V6.vdelta.128B
+    hexagon_V6_vdmpybus,                       // llvm.hexagon.V6.vdmpybus
+    hexagon_V6_vdmpybus_128B,                  // llvm.hexagon.V6.vdmpybus.128B
+    hexagon_V6_vdmpybus_acc,                   // llvm.hexagon.V6.vdmpybus.acc
+    hexagon_V6_vdmpybus_acc_128B,              // llvm.hexagon.V6.vdmpybus.acc.128B
+    hexagon_V6_vdmpybus_dv,                    // llvm.hexagon.V6.vdmpybus.dv
+    hexagon_V6_vdmpybus_dv_128B,               // llvm.hexagon.V6.vdmpybus.dv.128B
+    hexagon_V6_vdmpybus_dv_acc,                // llvm.hexagon.V6.vdmpybus.dv.acc
+    hexagon_V6_vdmpybus_dv_acc_128B,           // llvm.hexagon.V6.vdmpybus.dv.acc.128B
+    hexagon_V6_vdmpyhb,                        // llvm.hexagon.V6.vdmpyhb
+    hexagon_V6_vdmpyhb_128B,                   // llvm.hexagon.V6.vdmpyhb.128B
+    hexagon_V6_vdmpyhb_acc,                    // llvm.hexagon.V6.vdmpyhb.acc
+    hexagon_V6_vdmpyhb_acc_128B,               // llvm.hexagon.V6.vdmpyhb.acc.128B
+    hexagon_V6_vdmpyhb_dv,                     // llvm.hexagon.V6.vdmpyhb.dv
+    hexagon_V6_vdmpyhb_dv_128B,                // llvm.hexagon.V6.vdmpyhb.dv.128B
+    hexagon_V6_vdmpyhb_dv_acc,                 // llvm.hexagon.V6.vdmpyhb.dv.acc
+    hexagon_V6_vdmpyhb_dv_acc_128B,            // llvm.hexagon.V6.vdmpyhb.dv.acc.128B
+    hexagon_V6_vdmpyhisat,                     // llvm.hexagon.V6.vdmpyhisat
+    hexagon_V6_vdmpyhisat_128B,                // llvm.hexagon.V6.vdmpyhisat.128B
+    hexagon_V6_vdmpyhisat_acc,                 // llvm.hexagon.V6.vdmpyhisat.acc
+    hexagon_V6_vdmpyhisat_acc_128B,            // llvm.hexagon.V6.vdmpyhisat.acc.128B
+    hexagon_V6_vdmpyhsat,                      // llvm.hexagon.V6.vdmpyhsat
+    hexagon_V6_vdmpyhsat_128B,                 // llvm.hexagon.V6.vdmpyhsat.128B
+    hexagon_V6_vdmpyhsat_acc,                  // llvm.hexagon.V6.vdmpyhsat.acc
+    hexagon_V6_vdmpyhsat_acc_128B,             // llvm.hexagon.V6.vdmpyhsat.acc.128B
+    hexagon_V6_vdmpyhsuisat,                   // llvm.hexagon.V6.vdmpyhsuisat
+    hexagon_V6_vdmpyhsuisat_128B,              // llvm.hexagon.V6.vdmpyhsuisat.128B
+    hexagon_V6_vdmpyhsuisat_acc,               // llvm.hexagon.V6.vdmpyhsuisat.acc
+    hexagon_V6_vdmpyhsuisat_acc_128B,          // llvm.hexagon.V6.vdmpyhsuisat.acc.128B
+    hexagon_V6_vdmpyhsusat,                    // llvm.hexagon.V6.vdmpyhsusat
+    hexagon_V6_vdmpyhsusat_128B,               // llvm.hexagon.V6.vdmpyhsusat.128B
+    hexagon_V6_vdmpyhsusat_acc,                // llvm.hexagon.V6.vdmpyhsusat.acc
+    hexagon_V6_vdmpyhsusat_acc_128B,           // llvm.hexagon.V6.vdmpyhsusat.acc.128B
+    hexagon_V6_vdmpyhvsat,                     // llvm.hexagon.V6.vdmpyhvsat
+    hexagon_V6_vdmpyhvsat_128B,                // llvm.hexagon.V6.vdmpyhvsat.128B
+    hexagon_V6_vdmpyhvsat_acc,                 // llvm.hexagon.V6.vdmpyhvsat.acc
+    hexagon_V6_vdmpyhvsat_acc_128B,            // llvm.hexagon.V6.vdmpyhvsat.acc.128B
+    hexagon_V6_vdsaduh,                        // llvm.hexagon.V6.vdsaduh
+    hexagon_V6_vdsaduh_128B,                   // llvm.hexagon.V6.vdsaduh.128B
+    hexagon_V6_vdsaduh_acc,                    // llvm.hexagon.V6.vdsaduh.acc
+    hexagon_V6_vdsaduh_acc_128B,               // llvm.hexagon.V6.vdsaduh.acc.128B
+    hexagon_V6_veqb,                           // llvm.hexagon.V6.veqb
+    hexagon_V6_veqb_128B,                      // llvm.hexagon.V6.veqb.128B
+    hexagon_V6_veqb_and,                       // llvm.hexagon.V6.veqb.and
+    hexagon_V6_veqb_and_128B,                  // llvm.hexagon.V6.veqb.and.128B
+    hexagon_V6_veqb_or,                        // llvm.hexagon.V6.veqb.or
+    hexagon_V6_veqb_or_128B,                   // llvm.hexagon.V6.veqb.or.128B
+    hexagon_V6_veqb_xor,                       // llvm.hexagon.V6.veqb.xor
+    hexagon_V6_veqb_xor_128B,                  // llvm.hexagon.V6.veqb.xor.128B
+    hexagon_V6_veqh,                           // llvm.hexagon.V6.veqh
+    hexagon_V6_veqh_128B,                      // llvm.hexagon.V6.veqh.128B
+    hexagon_V6_veqh_and,                       // llvm.hexagon.V6.veqh.and
+    hexagon_V6_veqh_and_128B,                  // llvm.hexagon.V6.veqh.and.128B
+    hexagon_V6_veqh_or,                        // llvm.hexagon.V6.veqh.or
+    hexagon_V6_veqh_or_128B,                   // llvm.hexagon.V6.veqh.or.128B
+    hexagon_V6_veqh_xor,                       // llvm.hexagon.V6.veqh.xor
+    hexagon_V6_veqh_xor_128B,                  // llvm.hexagon.V6.veqh.xor.128B
+    hexagon_V6_veqw,                           // llvm.hexagon.V6.veqw
+    hexagon_V6_veqw_128B,                      // llvm.hexagon.V6.veqw.128B
+    hexagon_V6_veqw_and,                       // llvm.hexagon.V6.veqw.and
+    hexagon_V6_veqw_and_128B,                  // llvm.hexagon.V6.veqw.and.128B
+    hexagon_V6_veqw_or,                        // llvm.hexagon.V6.veqw.or
+    hexagon_V6_veqw_or_128B,                   // llvm.hexagon.V6.veqw.or.128B
+    hexagon_V6_veqw_xor,                       // llvm.hexagon.V6.veqw.xor
+    hexagon_V6_veqw_xor_128B,                  // llvm.hexagon.V6.veqw.xor.128B
+    hexagon_V6_vgathermh,                      // llvm.hexagon.V6.vgathermh
+    hexagon_V6_vgathermh_128B,                 // llvm.hexagon.V6.vgathermh.128B
+    hexagon_V6_vgathermhq,                     // llvm.hexagon.V6.vgathermhq
+    hexagon_V6_vgathermhq_128B,                // llvm.hexagon.V6.vgathermhq.128B
+    hexagon_V6_vgathermhw,                     // llvm.hexagon.V6.vgathermhw
+    hexagon_V6_vgathermhw_128B,                // llvm.hexagon.V6.vgathermhw.128B
+    hexagon_V6_vgathermhwq,                    // llvm.hexagon.V6.vgathermhwq
+    hexagon_V6_vgathermhwq_128B,               // llvm.hexagon.V6.vgathermhwq.128B
+    hexagon_V6_vgathermw,                      // llvm.hexagon.V6.vgathermw
+    hexagon_V6_vgathermw_128B,                 // llvm.hexagon.V6.vgathermw.128B
+    hexagon_V6_vgathermwq,                     // llvm.hexagon.V6.vgathermwq
+    hexagon_V6_vgathermwq_128B,                // llvm.hexagon.V6.vgathermwq.128B
+    hexagon_V6_vgtb,                           // llvm.hexagon.V6.vgtb
+    hexagon_V6_vgtb_128B,                      // llvm.hexagon.V6.vgtb.128B
+    hexagon_V6_vgtb_and,                       // llvm.hexagon.V6.vgtb.and
+    hexagon_V6_vgtb_and_128B,                  // llvm.hexagon.V6.vgtb.and.128B
+    hexagon_V6_vgtb_or,                        // llvm.hexagon.V6.vgtb.or
+    hexagon_V6_vgtb_or_128B,                   // llvm.hexagon.V6.vgtb.or.128B
+    hexagon_V6_vgtb_xor,                       // llvm.hexagon.V6.vgtb.xor
+    hexagon_V6_vgtb_xor_128B,                  // llvm.hexagon.V6.vgtb.xor.128B
+    hexagon_V6_vgth,                           // llvm.hexagon.V6.vgth
+    hexagon_V6_vgth_128B,                      // llvm.hexagon.V6.vgth.128B
+    hexagon_V6_vgth_and,                       // llvm.hexagon.V6.vgth.and
+    hexagon_V6_vgth_and_128B,                  // llvm.hexagon.V6.vgth.and.128B
+    hexagon_V6_vgth_or,                        // llvm.hexagon.V6.vgth.or
+    hexagon_V6_vgth_or_128B,                   // llvm.hexagon.V6.vgth.or.128B
+    hexagon_V6_vgth_xor,                       // llvm.hexagon.V6.vgth.xor
+    hexagon_V6_vgth_xor_128B,                  // llvm.hexagon.V6.vgth.xor.128B
+    hexagon_V6_vgtub,                          // llvm.hexagon.V6.vgtub
+    hexagon_V6_vgtub_128B,                     // llvm.hexagon.V6.vgtub.128B
+    hexagon_V6_vgtub_and,                      // llvm.hexagon.V6.vgtub.and
+    hexagon_V6_vgtub_and_128B,                 // llvm.hexagon.V6.vgtub.and.128B
+    hexagon_V6_vgtub_or,                       // llvm.hexagon.V6.vgtub.or
+    hexagon_V6_vgtub_or_128B,                  // llvm.hexagon.V6.vgtub.or.128B
+    hexagon_V6_vgtub_xor,                      // llvm.hexagon.V6.vgtub.xor
+    hexagon_V6_vgtub_xor_128B,                 // llvm.hexagon.V6.vgtub.xor.128B
+    hexagon_V6_vgtuh,                          // llvm.hexagon.V6.vgtuh
+    hexagon_V6_vgtuh_128B,                     // llvm.hexagon.V6.vgtuh.128B
+    hexagon_V6_vgtuh_and,                      // llvm.hexagon.V6.vgtuh.and
+    hexagon_V6_vgtuh_and_128B,                 // llvm.hexagon.V6.vgtuh.and.128B
+    hexagon_V6_vgtuh_or,                       // llvm.hexagon.V6.vgtuh.or
+    hexagon_V6_vgtuh_or_128B,                  // llvm.hexagon.V6.vgtuh.or.128B
+    hexagon_V6_vgtuh_xor,                      // llvm.hexagon.V6.vgtuh.xor
+    hexagon_V6_vgtuh_xor_128B,                 // llvm.hexagon.V6.vgtuh.xor.128B
+    hexagon_V6_vgtuw,                          // llvm.hexagon.V6.vgtuw
+    hexagon_V6_vgtuw_128B,                     // llvm.hexagon.V6.vgtuw.128B
+    hexagon_V6_vgtuw_and,                      // llvm.hexagon.V6.vgtuw.and
+    hexagon_V6_vgtuw_and_128B,                 // llvm.hexagon.V6.vgtuw.and.128B
+    hexagon_V6_vgtuw_or,                       // llvm.hexagon.V6.vgtuw.or
+    hexagon_V6_vgtuw_or_128B,                  // llvm.hexagon.V6.vgtuw.or.128B
+    hexagon_V6_vgtuw_xor,                      // llvm.hexagon.V6.vgtuw.xor
+    hexagon_V6_vgtuw_xor_128B,                 // llvm.hexagon.V6.vgtuw.xor.128B
+    hexagon_V6_vgtw,                           // llvm.hexagon.V6.vgtw
+    hexagon_V6_vgtw_128B,                      // llvm.hexagon.V6.vgtw.128B
+    hexagon_V6_vgtw_and,                       // llvm.hexagon.V6.vgtw.and
+    hexagon_V6_vgtw_and_128B,                  // llvm.hexagon.V6.vgtw.and.128B
+    hexagon_V6_vgtw_or,                        // llvm.hexagon.V6.vgtw.or
+    hexagon_V6_vgtw_or_128B,                   // llvm.hexagon.V6.vgtw.or.128B
+    hexagon_V6_vgtw_xor,                       // llvm.hexagon.V6.vgtw.xor
+    hexagon_V6_vgtw_xor_128B,                  // llvm.hexagon.V6.vgtw.xor.128B
+    hexagon_V6_vinsertwr,                      // llvm.hexagon.V6.vinsertwr
+    hexagon_V6_vinsertwr_128B,                 // llvm.hexagon.V6.vinsertwr.128B
+    hexagon_V6_vlalignb,                       // llvm.hexagon.V6.vlalignb
+    hexagon_V6_vlalignb_128B,                  // llvm.hexagon.V6.vlalignb.128B
+    hexagon_V6_vlalignbi,                      // llvm.hexagon.V6.vlalignbi
+    hexagon_V6_vlalignbi_128B,                 // llvm.hexagon.V6.vlalignbi.128B
+    hexagon_V6_vlsrb,                          // llvm.hexagon.V6.vlsrb
+    hexagon_V6_vlsrb_128B,                     // llvm.hexagon.V6.vlsrb.128B
+    hexagon_V6_vlsrh,                          // llvm.hexagon.V6.vlsrh
+    hexagon_V6_vlsrh_128B,                     // llvm.hexagon.V6.vlsrh.128B
+    hexagon_V6_vlsrhv,                         // llvm.hexagon.V6.vlsrhv
+    hexagon_V6_vlsrhv_128B,                    // llvm.hexagon.V6.vlsrhv.128B
+    hexagon_V6_vlsrw,                          // llvm.hexagon.V6.vlsrw
+    hexagon_V6_vlsrw_128B,                     // llvm.hexagon.V6.vlsrw.128B
+    hexagon_V6_vlsrwv,                         // llvm.hexagon.V6.vlsrwv
+    hexagon_V6_vlsrwv_128B,                    // llvm.hexagon.V6.vlsrwv.128B
+    hexagon_V6_vlut4,                          // llvm.hexagon.V6.vlut4
+    hexagon_V6_vlut4_128B,                     // llvm.hexagon.V6.vlut4.128B
+    hexagon_V6_vlutvvb,                        // llvm.hexagon.V6.vlutvvb
+    hexagon_V6_vlutvvb_128B,                   // llvm.hexagon.V6.vlutvvb.128B
+    hexagon_V6_vlutvvb_nm,                     // llvm.hexagon.V6.vlutvvb.nm
+    hexagon_V6_vlutvvb_nm_128B,                // llvm.hexagon.V6.vlutvvb.nm.128B
+    hexagon_V6_vlutvvb_oracc,                  // llvm.hexagon.V6.vlutvvb.oracc
+    hexagon_V6_vlutvvb_oracc_128B,             // llvm.hexagon.V6.vlutvvb.oracc.128B
+    hexagon_V6_vlutvvb_oracci,                 // llvm.hexagon.V6.vlutvvb.oracci
+    hexagon_V6_vlutvvb_oracci_128B,            // llvm.hexagon.V6.vlutvvb.oracci.128B
+    hexagon_V6_vlutvvbi,                       // llvm.hexagon.V6.vlutvvbi
+    hexagon_V6_vlutvvbi_128B,                  // llvm.hexagon.V6.vlutvvbi.128B
+    hexagon_V6_vlutvwh,                        // llvm.hexagon.V6.vlutvwh
+    hexagon_V6_vlutvwh_128B,                   // llvm.hexagon.V6.vlutvwh.128B
+    hexagon_V6_vlutvwh_nm,                     // llvm.hexagon.V6.vlutvwh.nm
+    hexagon_V6_vlutvwh_nm_128B,                // llvm.hexagon.V6.vlutvwh.nm.128B
+    hexagon_V6_vlutvwh_oracc,                  // llvm.hexagon.V6.vlutvwh.oracc
+    hexagon_V6_vlutvwh_oracc_128B,             // llvm.hexagon.V6.vlutvwh.oracc.128B
+    hexagon_V6_vlutvwh_oracci,                 // llvm.hexagon.V6.vlutvwh.oracci
+    hexagon_V6_vlutvwh_oracci_128B,            // llvm.hexagon.V6.vlutvwh.oracci.128B
+    hexagon_V6_vlutvwhi,                       // llvm.hexagon.V6.vlutvwhi
+    hexagon_V6_vlutvwhi_128B,                  // llvm.hexagon.V6.vlutvwhi.128B
+    hexagon_V6_vmaskedstorenq,                 // llvm.hexagon.V6.vmaskedstorenq
+    hexagon_V6_vmaskedstorenq_128B,            // llvm.hexagon.V6.vmaskedstorenq.128B
+    hexagon_V6_vmaskedstorentnq,               // llvm.hexagon.V6.vmaskedstorentnq
+    hexagon_V6_vmaskedstorentnq_128B,          // llvm.hexagon.V6.vmaskedstorentnq.128B
+    hexagon_V6_vmaskedstorentq,                // llvm.hexagon.V6.vmaskedstorentq
+    hexagon_V6_vmaskedstorentq_128B,           // llvm.hexagon.V6.vmaskedstorentq.128B
+    hexagon_V6_vmaskedstoreq,                  // llvm.hexagon.V6.vmaskedstoreq
+    hexagon_V6_vmaskedstoreq_128B,             // llvm.hexagon.V6.vmaskedstoreq.128B
+    hexagon_V6_vmaxb,                          // llvm.hexagon.V6.vmaxb
+    hexagon_V6_vmaxb_128B,                     // llvm.hexagon.V6.vmaxb.128B
+    hexagon_V6_vmaxh,                          // llvm.hexagon.V6.vmaxh
+    hexagon_V6_vmaxh_128B,                     // llvm.hexagon.V6.vmaxh.128B
+    hexagon_V6_vmaxub,                         // llvm.hexagon.V6.vmaxub
+    hexagon_V6_vmaxub_128B,                    // llvm.hexagon.V6.vmaxub.128B
+    hexagon_V6_vmaxuh,                         // llvm.hexagon.V6.vmaxuh
+    hexagon_V6_vmaxuh_128B,                    // llvm.hexagon.V6.vmaxuh.128B
+    hexagon_V6_vmaxw,                          // llvm.hexagon.V6.vmaxw
+    hexagon_V6_vmaxw_128B,                     // llvm.hexagon.V6.vmaxw.128B
+    hexagon_V6_vminb,                          // llvm.hexagon.V6.vminb
+    hexagon_V6_vminb_128B,                     // llvm.hexagon.V6.vminb.128B
+    hexagon_V6_vminh,                          // llvm.hexagon.V6.vminh
+    hexagon_V6_vminh_128B,                     // llvm.hexagon.V6.vminh.128B
+    hexagon_V6_vminub,                         // llvm.hexagon.V6.vminub
+    hexagon_V6_vminub_128B,                    // llvm.hexagon.V6.vminub.128B
+    hexagon_V6_vminuh,                         // llvm.hexagon.V6.vminuh
+    hexagon_V6_vminuh_128B,                    // llvm.hexagon.V6.vminuh.128B
+    hexagon_V6_vminw,                          // llvm.hexagon.V6.vminw
+    hexagon_V6_vminw_128B,                     // llvm.hexagon.V6.vminw.128B
+    hexagon_V6_vmpabus,                        // llvm.hexagon.V6.vmpabus
+    hexagon_V6_vmpabus_128B,                   // llvm.hexagon.V6.vmpabus.128B
+    hexagon_V6_vmpabus_acc,                    // llvm.hexagon.V6.vmpabus.acc
+    hexagon_V6_vmpabus_acc_128B,               // llvm.hexagon.V6.vmpabus.acc.128B
+    hexagon_V6_vmpabusv,                       // llvm.hexagon.V6.vmpabusv
+    hexagon_V6_vmpabusv_128B,                  // llvm.hexagon.V6.vmpabusv.128B
+    hexagon_V6_vmpabuu,                        // llvm.hexagon.V6.vmpabuu
+    hexagon_V6_vmpabuu_128B,                   // llvm.hexagon.V6.vmpabuu.128B
+    hexagon_V6_vmpabuu_acc,                    // llvm.hexagon.V6.vmpabuu.acc
+    hexagon_V6_vmpabuu_acc_128B,               // llvm.hexagon.V6.vmpabuu.acc.128B
+    hexagon_V6_vmpabuuv,                       // llvm.hexagon.V6.vmpabuuv
+    hexagon_V6_vmpabuuv_128B,                  // llvm.hexagon.V6.vmpabuuv.128B
+    hexagon_V6_vmpahb,                         // llvm.hexagon.V6.vmpahb
+    hexagon_V6_vmpahb_128B,                    // llvm.hexagon.V6.vmpahb.128B
+    hexagon_V6_vmpahb_acc,                     // llvm.hexagon.V6.vmpahb.acc
+    hexagon_V6_vmpahb_acc_128B,                // llvm.hexagon.V6.vmpahb.acc.128B
+    hexagon_V6_vmpahhsat,                      // llvm.hexagon.V6.vmpahhsat
+    hexagon_V6_vmpahhsat_128B,                 // llvm.hexagon.V6.vmpahhsat.128B
+    hexagon_V6_vmpauhb,                        // llvm.hexagon.V6.vmpauhb
+    hexagon_V6_vmpauhb_128B,                   // llvm.hexagon.V6.vmpauhb.128B
+    hexagon_V6_vmpauhb_acc,                    // llvm.hexagon.V6.vmpauhb.acc
+    hexagon_V6_vmpauhb_acc_128B,               // llvm.hexagon.V6.vmpauhb.acc.128B
+    hexagon_V6_vmpauhuhsat,                    // llvm.hexagon.V6.vmpauhuhsat
+    hexagon_V6_vmpauhuhsat_128B,               // llvm.hexagon.V6.vmpauhuhsat.128B
+    hexagon_V6_vmpsuhuhsat,                    // llvm.hexagon.V6.vmpsuhuhsat
+    hexagon_V6_vmpsuhuhsat_128B,               // llvm.hexagon.V6.vmpsuhuhsat.128B
+    hexagon_V6_vmpybus,                        // llvm.hexagon.V6.vmpybus
+    hexagon_V6_vmpybus_128B,                   // llvm.hexagon.V6.vmpybus.128B
+    hexagon_V6_vmpybus_acc,                    // llvm.hexagon.V6.vmpybus.acc
+    hexagon_V6_vmpybus_acc_128B,               // llvm.hexagon.V6.vmpybus.acc.128B
+    hexagon_V6_vmpybusv,                       // llvm.hexagon.V6.vmpybusv
+    hexagon_V6_vmpybusv_128B,                  // llvm.hexagon.V6.vmpybusv.128B
+    hexagon_V6_vmpybusv_acc,                   // llvm.hexagon.V6.vmpybusv.acc
+    hexagon_V6_vmpybusv_acc_128B,              // llvm.hexagon.V6.vmpybusv.acc.128B
+    hexagon_V6_vmpybv,                         // llvm.hexagon.V6.vmpybv
+    hexagon_V6_vmpybv_128B,                    // llvm.hexagon.V6.vmpybv.128B
+    hexagon_V6_vmpybv_acc,                     // llvm.hexagon.V6.vmpybv.acc
+    hexagon_V6_vmpybv_acc_128B,                // llvm.hexagon.V6.vmpybv.acc.128B
+    hexagon_V6_vmpyewuh,                       // llvm.hexagon.V6.vmpyewuh
+    hexagon_V6_vmpyewuh_128B,                  // llvm.hexagon.V6.vmpyewuh.128B
+    hexagon_V6_vmpyewuh_64,                    // llvm.hexagon.V6.vmpyewuh.64
+    hexagon_V6_vmpyewuh_64_128B,               // llvm.hexagon.V6.vmpyewuh.64.128B
+    hexagon_V6_vmpyh,                          // llvm.hexagon.V6.vmpyh
+    hexagon_V6_vmpyh_128B,                     // llvm.hexagon.V6.vmpyh.128B
+    hexagon_V6_vmpyh_acc,                      // llvm.hexagon.V6.vmpyh.acc
+    hexagon_V6_vmpyh_acc_128B,                 // llvm.hexagon.V6.vmpyh.acc.128B
+    hexagon_V6_vmpyhsat_acc,                   // llvm.hexagon.V6.vmpyhsat.acc
+    hexagon_V6_vmpyhsat_acc_128B,              // llvm.hexagon.V6.vmpyhsat.acc.128B
+    hexagon_V6_vmpyhsrs,                       // llvm.hexagon.V6.vmpyhsrs
+    hexagon_V6_vmpyhsrs_128B,                  // llvm.hexagon.V6.vmpyhsrs.128B
+    hexagon_V6_vmpyhss,                        // llvm.hexagon.V6.vmpyhss
+    hexagon_V6_vmpyhss_128B,                   // llvm.hexagon.V6.vmpyhss.128B
+    hexagon_V6_vmpyhus,                        // llvm.hexagon.V6.vmpyhus
+    hexagon_V6_vmpyhus_128B,                   // llvm.hexagon.V6.vmpyhus.128B
+    hexagon_V6_vmpyhus_acc,                    // llvm.hexagon.V6.vmpyhus.acc
+    hexagon_V6_vmpyhus_acc_128B,               // llvm.hexagon.V6.vmpyhus.acc.128B
+    hexagon_V6_vmpyhv,                         // llvm.hexagon.V6.vmpyhv
+    hexagon_V6_vmpyhv_128B,                    // llvm.hexagon.V6.vmpyhv.128B
+    hexagon_V6_vmpyhv_acc,                     // llvm.hexagon.V6.vmpyhv.acc
+    hexagon_V6_vmpyhv_acc_128B,                // llvm.hexagon.V6.vmpyhv.acc.128B
+    hexagon_V6_vmpyhvsrs,                      // llvm.hexagon.V6.vmpyhvsrs
+    hexagon_V6_vmpyhvsrs_128B,                 // llvm.hexagon.V6.vmpyhvsrs.128B
+    hexagon_V6_vmpyieoh,                       // llvm.hexagon.V6.vmpyieoh
+    hexagon_V6_vmpyieoh_128B,                  // llvm.hexagon.V6.vmpyieoh.128B
+    hexagon_V6_vmpyiewh_acc,                   // llvm.hexagon.V6.vmpyiewh.acc
+    hexagon_V6_vmpyiewh_acc_128B,              // llvm.hexagon.V6.vmpyiewh.acc.128B
+    hexagon_V6_vmpyiewuh,                      // llvm.hexagon.V6.vmpyiewuh
+    hexagon_V6_vmpyiewuh_128B,                 // llvm.hexagon.V6.vmpyiewuh.128B
+    hexagon_V6_vmpyiewuh_acc,                  // llvm.hexagon.V6.vmpyiewuh.acc
+    hexagon_V6_vmpyiewuh_acc_128B,             // llvm.hexagon.V6.vmpyiewuh.acc.128B
+    hexagon_V6_vmpyih,                         // llvm.hexagon.V6.vmpyih
+    hexagon_V6_vmpyih_128B,                    // llvm.hexagon.V6.vmpyih.128B
+    hexagon_V6_vmpyih_acc,                     // llvm.hexagon.V6.vmpyih.acc
+    hexagon_V6_vmpyih_acc_128B,                // llvm.hexagon.V6.vmpyih.acc.128B
+    hexagon_V6_vmpyihb,                        // llvm.hexagon.V6.vmpyihb
+    hexagon_V6_vmpyihb_128B,                   // llvm.hexagon.V6.vmpyihb.128B
+    hexagon_V6_vmpyihb_acc,                    // llvm.hexagon.V6.vmpyihb.acc
+    hexagon_V6_vmpyihb_acc_128B,               // llvm.hexagon.V6.vmpyihb.acc.128B
+    hexagon_V6_vmpyiowh,                       // llvm.hexagon.V6.vmpyiowh
+    hexagon_V6_vmpyiowh_128B,                  // llvm.hexagon.V6.vmpyiowh.128B
+    hexagon_V6_vmpyiwb,                        // llvm.hexagon.V6.vmpyiwb
+    hexagon_V6_vmpyiwb_128B,                   // llvm.hexagon.V6.vmpyiwb.128B
+    hexagon_V6_vmpyiwb_acc,                    // llvm.hexagon.V6.vmpyiwb.acc
+    hexagon_V6_vmpyiwb_acc_128B,               // llvm.hexagon.V6.vmpyiwb.acc.128B
+    hexagon_V6_vmpyiwh,                        // llvm.hexagon.V6.vmpyiwh
+    hexagon_V6_vmpyiwh_128B,                   // llvm.hexagon.V6.vmpyiwh.128B
+    hexagon_V6_vmpyiwh_acc,                    // llvm.hexagon.V6.vmpyiwh.acc
+    hexagon_V6_vmpyiwh_acc_128B,               // llvm.hexagon.V6.vmpyiwh.acc.128B
+    hexagon_V6_vmpyiwub,                       // llvm.hexagon.V6.vmpyiwub
+    hexagon_V6_vmpyiwub_128B,                  // llvm.hexagon.V6.vmpyiwub.128B
+    hexagon_V6_vmpyiwub_acc,                   // llvm.hexagon.V6.vmpyiwub.acc
+    hexagon_V6_vmpyiwub_acc_128B,              // llvm.hexagon.V6.vmpyiwub.acc.128B
+    hexagon_V6_vmpyowh,                        // llvm.hexagon.V6.vmpyowh
+    hexagon_V6_vmpyowh_128B,                   // llvm.hexagon.V6.vmpyowh.128B
+    hexagon_V6_vmpyowh_64_acc,                 // llvm.hexagon.V6.vmpyowh.64.acc
+    hexagon_V6_vmpyowh_64_acc_128B,            // llvm.hexagon.V6.vmpyowh.64.acc.128B
+    hexagon_V6_vmpyowh_rnd,                    // llvm.hexagon.V6.vmpyowh.rnd
+    hexagon_V6_vmpyowh_rnd_128B,               // llvm.hexagon.V6.vmpyowh.rnd.128B
+    hexagon_V6_vmpyowh_rnd_sacc,               // llvm.hexagon.V6.vmpyowh.rnd.sacc
+    hexagon_V6_vmpyowh_rnd_sacc_128B,          // llvm.hexagon.V6.vmpyowh.rnd.sacc.128B
+    hexagon_V6_vmpyowh_sacc,                   // llvm.hexagon.V6.vmpyowh.sacc
+    hexagon_V6_vmpyowh_sacc_128B,              // llvm.hexagon.V6.vmpyowh.sacc.128B
+    hexagon_V6_vmpyub,                         // llvm.hexagon.V6.vmpyub
+    hexagon_V6_vmpyub_128B,                    // llvm.hexagon.V6.vmpyub.128B
+    hexagon_V6_vmpyub_acc,                     // llvm.hexagon.V6.vmpyub.acc
+    hexagon_V6_vmpyub_acc_128B,                // llvm.hexagon.V6.vmpyub.acc.128B
+    hexagon_V6_vmpyubv,                        // llvm.hexagon.V6.vmpyubv
+    hexagon_V6_vmpyubv_128B,                   // llvm.hexagon.V6.vmpyubv.128B
+    hexagon_V6_vmpyubv_acc,                    // llvm.hexagon.V6.vmpyubv.acc
+    hexagon_V6_vmpyubv_acc_128B,               // llvm.hexagon.V6.vmpyubv.acc.128B
+    hexagon_V6_vmpyuh,                         // llvm.hexagon.V6.vmpyuh
+    hexagon_V6_vmpyuh_128B,                    // llvm.hexagon.V6.vmpyuh.128B
+    hexagon_V6_vmpyuh_acc,                     // llvm.hexagon.V6.vmpyuh.acc
+    hexagon_V6_vmpyuh_acc_128B,                // llvm.hexagon.V6.vmpyuh.acc.128B
+    hexagon_V6_vmpyuhe,                        // llvm.hexagon.V6.vmpyuhe
+    hexagon_V6_vmpyuhe_128B,                   // llvm.hexagon.V6.vmpyuhe.128B
+    hexagon_V6_vmpyuhe_acc,                    // llvm.hexagon.V6.vmpyuhe.acc
+    hexagon_V6_vmpyuhe_acc_128B,               // llvm.hexagon.V6.vmpyuhe.acc.128B
+    hexagon_V6_vmpyuhv,                        // llvm.hexagon.V6.vmpyuhv
+    hexagon_V6_vmpyuhv_128B,                   // llvm.hexagon.V6.vmpyuhv.128B
+    hexagon_V6_vmpyuhv_acc,                    // llvm.hexagon.V6.vmpyuhv.acc
+    hexagon_V6_vmpyuhv_acc_128B,               // llvm.hexagon.V6.vmpyuhv.acc.128B
+    hexagon_V6_vmux,                           // llvm.hexagon.V6.vmux
+    hexagon_V6_vmux_128B,                      // llvm.hexagon.V6.vmux.128B
+    hexagon_V6_vnavgb,                         // llvm.hexagon.V6.vnavgb
+    hexagon_V6_vnavgb_128B,                    // llvm.hexagon.V6.vnavgb.128B
+    hexagon_V6_vnavgh,                         // llvm.hexagon.V6.vnavgh
+    hexagon_V6_vnavgh_128B,                    // llvm.hexagon.V6.vnavgh.128B
+    hexagon_V6_vnavgub,                        // llvm.hexagon.V6.vnavgub
+    hexagon_V6_vnavgub_128B,                   // llvm.hexagon.V6.vnavgub.128B
+    hexagon_V6_vnavgw,                         // llvm.hexagon.V6.vnavgw
+    hexagon_V6_vnavgw_128B,                    // llvm.hexagon.V6.vnavgw.128B
+    hexagon_V6_vnormamth,                      // llvm.hexagon.V6.vnormamth
+    hexagon_V6_vnormamth_128B,                 // llvm.hexagon.V6.vnormamth.128B
+    hexagon_V6_vnormamtw,                      // llvm.hexagon.V6.vnormamtw
+    hexagon_V6_vnormamtw_128B,                 // llvm.hexagon.V6.vnormamtw.128B
+    hexagon_V6_vnot,                           // llvm.hexagon.V6.vnot
+    hexagon_V6_vnot_128B,                      // llvm.hexagon.V6.vnot.128B
+    hexagon_V6_vor,                            // llvm.hexagon.V6.vor
+    hexagon_V6_vor_128B,                       // llvm.hexagon.V6.vor.128B
+    hexagon_V6_vpackeb,                        // llvm.hexagon.V6.vpackeb
+    hexagon_V6_vpackeb_128B,                   // llvm.hexagon.V6.vpackeb.128B
+    hexagon_V6_vpackeh,                        // llvm.hexagon.V6.vpackeh
+    hexagon_V6_vpackeh_128B,                   // llvm.hexagon.V6.vpackeh.128B
+    hexagon_V6_vpackhb_sat,                    // llvm.hexagon.V6.vpackhb.sat
+    hexagon_V6_vpackhb_sat_128B,               // llvm.hexagon.V6.vpackhb.sat.128B
+    hexagon_V6_vpackhub_sat,                   // llvm.hexagon.V6.vpackhub.sat
+    hexagon_V6_vpackhub_sat_128B,              // llvm.hexagon.V6.vpackhub.sat.128B
+    hexagon_V6_vpackob,                        // llvm.hexagon.V6.vpackob
+    hexagon_V6_vpackob_128B,                   // llvm.hexagon.V6.vpackob.128B
+    hexagon_V6_vpackoh,                        // llvm.hexagon.V6.vpackoh
+    hexagon_V6_vpackoh_128B,                   // llvm.hexagon.V6.vpackoh.128B
+    hexagon_V6_vpackwh_sat,                    // llvm.hexagon.V6.vpackwh.sat
+    hexagon_V6_vpackwh_sat_128B,               // llvm.hexagon.V6.vpackwh.sat.128B
+    hexagon_V6_vpackwuh_sat,                   // llvm.hexagon.V6.vpackwuh.sat
+    hexagon_V6_vpackwuh_sat_128B,              // llvm.hexagon.V6.vpackwuh.sat.128B
+    hexagon_V6_vpopcounth,                     // llvm.hexagon.V6.vpopcounth
+    hexagon_V6_vpopcounth_128B,                // llvm.hexagon.V6.vpopcounth.128B
+    hexagon_V6_vprefixqb,                      // llvm.hexagon.V6.vprefixqb
+    hexagon_V6_vprefixqb_128B,                 // llvm.hexagon.V6.vprefixqb.128B
+    hexagon_V6_vprefixqh,                      // llvm.hexagon.V6.vprefixqh
+    hexagon_V6_vprefixqh_128B,                 // llvm.hexagon.V6.vprefixqh.128B
+    hexagon_V6_vprefixqw,                      // llvm.hexagon.V6.vprefixqw
+    hexagon_V6_vprefixqw_128B,                 // llvm.hexagon.V6.vprefixqw.128B
+    hexagon_V6_vrdelta,                        // llvm.hexagon.V6.vrdelta
+    hexagon_V6_vrdelta_128B,                   // llvm.hexagon.V6.vrdelta.128B
+    hexagon_V6_vrmpybub_rtt,                   // llvm.hexagon.V6.vrmpybub.rtt
+    hexagon_V6_vrmpybub_rtt_128B,              // llvm.hexagon.V6.vrmpybub.rtt.128B
+    hexagon_V6_vrmpybub_rtt_acc,               // llvm.hexagon.V6.vrmpybub.rtt.acc
+    hexagon_V6_vrmpybub_rtt_acc_128B,          // llvm.hexagon.V6.vrmpybub.rtt.acc.128B
+    hexagon_V6_vrmpybus,                       // llvm.hexagon.V6.vrmpybus
+    hexagon_V6_vrmpybus_128B,                  // llvm.hexagon.V6.vrmpybus.128B
+    hexagon_V6_vrmpybus_acc,                   // llvm.hexagon.V6.vrmpybus.acc
+    hexagon_V6_vrmpybus_acc_128B,              // llvm.hexagon.V6.vrmpybus.acc.128B
+    hexagon_V6_vrmpybusi,                      // llvm.hexagon.V6.vrmpybusi
+    hexagon_V6_vrmpybusi_128B,                 // llvm.hexagon.V6.vrmpybusi.128B
+    hexagon_V6_vrmpybusi_acc,                  // llvm.hexagon.V6.vrmpybusi.acc
+    hexagon_V6_vrmpybusi_acc_128B,             // llvm.hexagon.V6.vrmpybusi.acc.128B
+    hexagon_V6_vrmpybusv,                      // llvm.hexagon.V6.vrmpybusv
+    hexagon_V6_vrmpybusv_128B,                 // llvm.hexagon.V6.vrmpybusv.128B
+    hexagon_V6_vrmpybusv_acc,                  // llvm.hexagon.V6.vrmpybusv.acc
+    hexagon_V6_vrmpybusv_acc_128B,             // llvm.hexagon.V6.vrmpybusv.acc.128B
+    hexagon_V6_vrmpybv,                        // llvm.hexagon.V6.vrmpybv
+    hexagon_V6_vrmpybv_128B,                   // llvm.hexagon.V6.vrmpybv.128B
+    hexagon_V6_vrmpybv_acc,                    // llvm.hexagon.V6.vrmpybv.acc
+    hexagon_V6_vrmpybv_acc_128B,               // llvm.hexagon.V6.vrmpybv.acc.128B
+    hexagon_V6_vrmpyub,                        // llvm.hexagon.V6.vrmpyub
+    hexagon_V6_vrmpyub_128B,                   // llvm.hexagon.V6.vrmpyub.128B
+    hexagon_V6_vrmpyub_acc,                    // llvm.hexagon.V6.vrmpyub.acc
+    hexagon_V6_vrmpyub_acc_128B,               // llvm.hexagon.V6.vrmpyub.acc.128B
+    hexagon_V6_vrmpyub_rtt,                    // llvm.hexagon.V6.vrmpyub.rtt
+    hexagon_V6_vrmpyub_rtt_128B,               // llvm.hexagon.V6.vrmpyub.rtt.128B
+    hexagon_V6_vrmpyub_rtt_acc,                // llvm.hexagon.V6.vrmpyub.rtt.acc
+    hexagon_V6_vrmpyub_rtt_acc_128B,           // llvm.hexagon.V6.vrmpyub.rtt.acc.128B
+    hexagon_V6_vrmpyubi,                       // llvm.hexagon.V6.vrmpyubi
+    hexagon_V6_vrmpyubi_128B,                  // llvm.hexagon.V6.vrmpyubi.128B
+    hexagon_V6_vrmpyubi_acc,                   // llvm.hexagon.V6.vrmpyubi.acc
+    hexagon_V6_vrmpyubi_acc_128B,              // llvm.hexagon.V6.vrmpyubi.acc.128B
+    hexagon_V6_vrmpyubv,                       // llvm.hexagon.V6.vrmpyubv
+    hexagon_V6_vrmpyubv_128B,                  // llvm.hexagon.V6.vrmpyubv.128B
+    hexagon_V6_vrmpyubv_acc,                   // llvm.hexagon.V6.vrmpyubv.acc
+    hexagon_V6_vrmpyubv_acc_128B,              // llvm.hexagon.V6.vrmpyubv.acc.128B
+    hexagon_V6_vror,                           // llvm.hexagon.V6.vror
+    hexagon_V6_vror_128B,                      // llvm.hexagon.V6.vror.128B
+    hexagon_V6_vroundhb,                       // llvm.hexagon.V6.vroundhb
+    hexagon_V6_vroundhb_128B,                  // llvm.hexagon.V6.vroundhb.128B
+    hexagon_V6_vroundhub,                      // llvm.hexagon.V6.vroundhub
+    hexagon_V6_vroundhub_128B,                 // llvm.hexagon.V6.vroundhub.128B
+    hexagon_V6_vrounduhub,                     // llvm.hexagon.V6.vrounduhub
+    hexagon_V6_vrounduhub_128B,                // llvm.hexagon.V6.vrounduhub.128B
+    hexagon_V6_vrounduwuh,                     // llvm.hexagon.V6.vrounduwuh
+    hexagon_V6_vrounduwuh_128B,                // llvm.hexagon.V6.vrounduwuh.128B
+    hexagon_V6_vroundwh,                       // llvm.hexagon.V6.vroundwh
+    hexagon_V6_vroundwh_128B,                  // llvm.hexagon.V6.vroundwh.128B
+    hexagon_V6_vroundwuh,                      // llvm.hexagon.V6.vroundwuh
+    hexagon_V6_vroundwuh_128B,                 // llvm.hexagon.V6.vroundwuh.128B
+    hexagon_V6_vrsadubi,                       // llvm.hexagon.V6.vrsadubi
+    hexagon_V6_vrsadubi_128B,                  // llvm.hexagon.V6.vrsadubi.128B
+    hexagon_V6_vrsadubi_acc,                   // llvm.hexagon.V6.vrsadubi.acc
+    hexagon_V6_vrsadubi_acc_128B,              // llvm.hexagon.V6.vrsadubi.acc.128B
+    hexagon_V6_vsathub,                        // llvm.hexagon.V6.vsathub
+    hexagon_V6_vsathub_128B,                   // llvm.hexagon.V6.vsathub.128B
+    hexagon_V6_vsatuwuh,                       // llvm.hexagon.V6.vsatuwuh
+    hexagon_V6_vsatuwuh_128B,                  // llvm.hexagon.V6.vsatuwuh.128B
+    hexagon_V6_vsatwh,                         // llvm.hexagon.V6.vsatwh
+    hexagon_V6_vsatwh_128B,                    // llvm.hexagon.V6.vsatwh.128B
+    hexagon_V6_vsb,                            // llvm.hexagon.V6.vsb
+    hexagon_V6_vsb_128B,                       // llvm.hexagon.V6.vsb.128B
+    hexagon_V6_vscattermh,                     // llvm.hexagon.V6.vscattermh
+    hexagon_V6_vscattermh_128B,                // llvm.hexagon.V6.vscattermh.128B
+    hexagon_V6_vscattermh_add,                 // llvm.hexagon.V6.vscattermh.add
+    hexagon_V6_vscattermh_add_128B,            // llvm.hexagon.V6.vscattermh.add.128B
+    hexagon_V6_vscattermhq,                    // llvm.hexagon.V6.vscattermhq
+    hexagon_V6_vscattermhq_128B,               // llvm.hexagon.V6.vscattermhq.128B
+    hexagon_V6_vscattermhw,                    // llvm.hexagon.V6.vscattermhw
+    hexagon_V6_vscattermhw_128B,               // llvm.hexagon.V6.vscattermhw.128B
+    hexagon_V6_vscattermhw_add,                // llvm.hexagon.V6.vscattermhw.add
+    hexagon_V6_vscattermhw_add_128B,           // llvm.hexagon.V6.vscattermhw.add.128B
+    hexagon_V6_vscattermhwq,                   // llvm.hexagon.V6.vscattermhwq
+    hexagon_V6_vscattermhwq_128B,              // llvm.hexagon.V6.vscattermhwq.128B
+    hexagon_V6_vscattermw,                     // llvm.hexagon.V6.vscattermw
+    hexagon_V6_vscattermw_128B,                // llvm.hexagon.V6.vscattermw.128B
+    hexagon_V6_vscattermw_add,                 // llvm.hexagon.V6.vscattermw.add
+    hexagon_V6_vscattermw_add_128B,            // llvm.hexagon.V6.vscattermw.add.128B
+    hexagon_V6_vscattermwq,                    // llvm.hexagon.V6.vscattermwq
+    hexagon_V6_vscattermwq_128B,               // llvm.hexagon.V6.vscattermwq.128B
+    hexagon_V6_vsh,                            // llvm.hexagon.V6.vsh
+    hexagon_V6_vsh_128B,                       // llvm.hexagon.V6.vsh.128B
+    hexagon_V6_vshufeh,                        // llvm.hexagon.V6.vshufeh
+    hexagon_V6_vshufeh_128B,                   // llvm.hexagon.V6.vshufeh.128B
+    hexagon_V6_vshuffb,                        // llvm.hexagon.V6.vshuffb
+    hexagon_V6_vshuffb_128B,                   // llvm.hexagon.V6.vshuffb.128B
+    hexagon_V6_vshuffeb,                       // llvm.hexagon.V6.vshuffeb
+    hexagon_V6_vshuffeb_128B,                  // llvm.hexagon.V6.vshuffeb.128B
+    hexagon_V6_vshuffh,                        // llvm.hexagon.V6.vshuffh
+    hexagon_V6_vshuffh_128B,                   // llvm.hexagon.V6.vshuffh.128B
+    hexagon_V6_vshuffob,                       // llvm.hexagon.V6.vshuffob
+    hexagon_V6_vshuffob_128B,                  // llvm.hexagon.V6.vshuffob.128B
+    hexagon_V6_vshuffvdd,                      // llvm.hexagon.V6.vshuffvdd
+    hexagon_V6_vshuffvdd_128B,                 // llvm.hexagon.V6.vshuffvdd.128B
+    hexagon_V6_vshufoeb,                       // llvm.hexagon.V6.vshufoeb
+    hexagon_V6_vshufoeb_128B,                  // llvm.hexagon.V6.vshufoeb.128B
+    hexagon_V6_vshufoeh,                       // llvm.hexagon.V6.vshufoeh
+    hexagon_V6_vshufoeh_128B,                  // llvm.hexagon.V6.vshufoeh.128B
+    hexagon_V6_vshufoh,                        // llvm.hexagon.V6.vshufoh
+    hexagon_V6_vshufoh_128B,                   // llvm.hexagon.V6.vshufoh.128B
+    hexagon_V6_vsubb,                          // llvm.hexagon.V6.vsubb
+    hexagon_V6_vsubb_128B,                     // llvm.hexagon.V6.vsubb.128B
+    hexagon_V6_vsubb_dv,                       // llvm.hexagon.V6.vsubb.dv
+    hexagon_V6_vsubb_dv_128B,                  // llvm.hexagon.V6.vsubb.dv.128B
+    hexagon_V6_vsubbnq,                        // llvm.hexagon.V6.vsubbnq
+    hexagon_V6_vsubbnq_128B,                   // llvm.hexagon.V6.vsubbnq.128B
+    hexagon_V6_vsubbq,                         // llvm.hexagon.V6.vsubbq
+    hexagon_V6_vsubbq_128B,                    // llvm.hexagon.V6.vsubbq.128B
+    hexagon_V6_vsubbsat,                       // llvm.hexagon.V6.vsubbsat
+    hexagon_V6_vsubbsat_128B,                  // llvm.hexagon.V6.vsubbsat.128B
+    hexagon_V6_vsubbsat_dv,                    // llvm.hexagon.V6.vsubbsat.dv
+    hexagon_V6_vsubbsat_dv_128B,               // llvm.hexagon.V6.vsubbsat.dv.128B
+    hexagon_V6_vsubcarry,                      // llvm.hexagon.V6.vsubcarry
+    hexagon_V6_vsubcarry_128B,                 // llvm.hexagon.V6.vsubcarry.128B
+    hexagon_V6_vsubh,                          // llvm.hexagon.V6.vsubh
+    hexagon_V6_vsubh_128B,                     // llvm.hexagon.V6.vsubh.128B
+    hexagon_V6_vsubh_dv,                       // llvm.hexagon.V6.vsubh.dv
+    hexagon_V6_vsubh_dv_128B,                  // llvm.hexagon.V6.vsubh.dv.128B
+    hexagon_V6_vsubhnq,                        // llvm.hexagon.V6.vsubhnq
+    hexagon_V6_vsubhnq_128B,                   // llvm.hexagon.V6.vsubhnq.128B
+    hexagon_V6_vsubhq,                         // llvm.hexagon.V6.vsubhq
+    hexagon_V6_vsubhq_128B,                    // llvm.hexagon.V6.vsubhq.128B
+    hexagon_V6_vsubhsat,                       // llvm.hexagon.V6.vsubhsat
+    hexagon_V6_vsubhsat_128B,                  // llvm.hexagon.V6.vsubhsat.128B
+    hexagon_V6_vsubhsat_dv,                    // llvm.hexagon.V6.vsubhsat.dv
+    hexagon_V6_vsubhsat_dv_128B,               // llvm.hexagon.V6.vsubhsat.dv.128B
+    hexagon_V6_vsubhw,                         // llvm.hexagon.V6.vsubhw
+    hexagon_V6_vsubhw_128B,                    // llvm.hexagon.V6.vsubhw.128B
+    hexagon_V6_vsububh,                        // llvm.hexagon.V6.vsububh
+    hexagon_V6_vsububh_128B,                   // llvm.hexagon.V6.vsububh.128B
+    hexagon_V6_vsububsat,                      // llvm.hexagon.V6.vsububsat
+    hexagon_V6_vsububsat_128B,                 // llvm.hexagon.V6.vsububsat.128B
+    hexagon_V6_vsububsat_dv,                   // llvm.hexagon.V6.vsububsat.dv
+    hexagon_V6_vsububsat_dv_128B,              // llvm.hexagon.V6.vsububsat.dv.128B
+    hexagon_V6_vsubububb_sat,                  // llvm.hexagon.V6.vsubububb.sat
+    hexagon_V6_vsubububb_sat_128B,             // llvm.hexagon.V6.vsubububb.sat.128B
+    hexagon_V6_vsubuhsat,                      // llvm.hexagon.V6.vsubuhsat
+    hexagon_V6_vsubuhsat_128B,                 // llvm.hexagon.V6.vsubuhsat.128B
+    hexagon_V6_vsubuhsat_dv,                   // llvm.hexagon.V6.vsubuhsat.dv
+    hexagon_V6_vsubuhsat_dv_128B,              // llvm.hexagon.V6.vsubuhsat.dv.128B
+    hexagon_V6_vsubuhw,                        // llvm.hexagon.V6.vsubuhw
+    hexagon_V6_vsubuhw_128B,                   // llvm.hexagon.V6.vsubuhw.128B
+    hexagon_V6_vsubuwsat,                      // llvm.hexagon.V6.vsubuwsat
+    hexagon_V6_vsubuwsat_128B,                 // llvm.hexagon.V6.vsubuwsat.128B
+    hexagon_V6_vsubuwsat_dv,                   // llvm.hexagon.V6.vsubuwsat.dv
+    hexagon_V6_vsubuwsat_dv_128B,              // llvm.hexagon.V6.vsubuwsat.dv.128B
+    hexagon_V6_vsubw,                          // llvm.hexagon.V6.vsubw
+    hexagon_V6_vsubw_128B,                     // llvm.hexagon.V6.vsubw.128B
+    hexagon_V6_vsubw_dv,                       // llvm.hexagon.V6.vsubw.dv
+    hexagon_V6_vsubw_dv_128B,                  // llvm.hexagon.V6.vsubw.dv.128B
+    hexagon_V6_vsubwnq,                        // llvm.hexagon.V6.vsubwnq
+    hexagon_V6_vsubwnq_128B,                   // llvm.hexagon.V6.vsubwnq.128B
+    hexagon_V6_vsubwq,                         // llvm.hexagon.V6.vsubwq
+    hexagon_V6_vsubwq_128B,                    // llvm.hexagon.V6.vsubwq.128B
+    hexagon_V6_vsubwsat,                       // llvm.hexagon.V6.vsubwsat
+    hexagon_V6_vsubwsat_128B,                  // llvm.hexagon.V6.vsubwsat.128B
+    hexagon_V6_vsubwsat_dv,                    // llvm.hexagon.V6.vsubwsat.dv
+    hexagon_V6_vsubwsat_dv_128B,               // llvm.hexagon.V6.vsubwsat.dv.128B
+    hexagon_V6_vswap,                          // llvm.hexagon.V6.vswap
+    hexagon_V6_vswap_128B,                     // llvm.hexagon.V6.vswap.128B
+    hexagon_V6_vtmpyb,                         // llvm.hexagon.V6.vtmpyb
+    hexagon_V6_vtmpyb_128B,                    // llvm.hexagon.V6.vtmpyb.128B
+    hexagon_V6_vtmpyb_acc,                     // llvm.hexagon.V6.vtmpyb.acc
+    hexagon_V6_vtmpyb_acc_128B,                // llvm.hexagon.V6.vtmpyb.acc.128B
+    hexagon_V6_vtmpybus,                       // llvm.hexagon.V6.vtmpybus
+    hexagon_V6_vtmpybus_128B,                  // llvm.hexagon.V6.vtmpybus.128B
+    hexagon_V6_vtmpybus_acc,                   // llvm.hexagon.V6.vtmpybus.acc
+    hexagon_V6_vtmpybus_acc_128B,              // llvm.hexagon.V6.vtmpybus.acc.128B
+    hexagon_V6_vtmpyhb,                        // llvm.hexagon.V6.vtmpyhb
+    hexagon_V6_vtmpyhb_128B,                   // llvm.hexagon.V6.vtmpyhb.128B
+    hexagon_V6_vtmpyhb_acc,                    // llvm.hexagon.V6.vtmpyhb.acc
+    hexagon_V6_vtmpyhb_acc_128B,               // llvm.hexagon.V6.vtmpyhb.acc.128B
+    hexagon_V6_vunpackb,                       // llvm.hexagon.V6.vunpackb
+    hexagon_V6_vunpackb_128B,                  // llvm.hexagon.V6.vunpackb.128B
+    hexagon_V6_vunpackh,                       // llvm.hexagon.V6.vunpackh
+    hexagon_V6_vunpackh_128B,                  // llvm.hexagon.V6.vunpackh.128B
+    hexagon_V6_vunpackob,                      // llvm.hexagon.V6.vunpackob
+    hexagon_V6_vunpackob_128B,                 // llvm.hexagon.V6.vunpackob.128B
+    hexagon_V6_vunpackoh,                      // llvm.hexagon.V6.vunpackoh
+    hexagon_V6_vunpackoh_128B,                 // llvm.hexagon.V6.vunpackoh.128B
+    hexagon_V6_vunpackub,                      // llvm.hexagon.V6.vunpackub
+    hexagon_V6_vunpackub_128B,                 // llvm.hexagon.V6.vunpackub.128B
+    hexagon_V6_vunpackuh,                      // llvm.hexagon.V6.vunpackuh
+    hexagon_V6_vunpackuh_128B,                 // llvm.hexagon.V6.vunpackuh.128B
+    hexagon_V6_vxor,                           // llvm.hexagon.V6.vxor
+    hexagon_V6_vxor_128B,                      // llvm.hexagon.V6.vxor.128B
+    hexagon_V6_vzb,                            // llvm.hexagon.V6.vzb
+    hexagon_V6_vzb_128B,                       // llvm.hexagon.V6.vzb.128B
+    hexagon_V6_vzh,                            // llvm.hexagon.V6.vzh
+    hexagon_V6_vzh_128B,                       // llvm.hexagon.V6.vzh.128B
+    hexagon_Y2_dccleana,                       // llvm.hexagon.Y2.dccleana
+    hexagon_Y2_dccleaninva,                    // llvm.hexagon.Y2.dccleaninva
+    hexagon_Y2_dcinva,                         // llvm.hexagon.Y2.dcinva
+    hexagon_Y2_dczeroa,                        // llvm.hexagon.Y2.dczeroa
+    hexagon_Y4_l2fetch,                        // llvm.hexagon.Y4.l2fetch
+    hexagon_Y5_l2fetch,                        // llvm.hexagon.Y5.l2fetch
+    hexagon_circ_ldb,                          // llvm.hexagon.circ.ldb
+    hexagon_circ_ldd,                          // llvm.hexagon.circ.ldd
+    hexagon_circ_ldh,                          // llvm.hexagon.circ.ldh
+    hexagon_circ_ldub,                         // llvm.hexagon.circ.ldub
+    hexagon_circ_lduh,                         // llvm.hexagon.circ.lduh
+    hexagon_circ_ldw,                          // llvm.hexagon.circ.ldw
+    hexagon_circ_stb,                          // llvm.hexagon.circ.stb
+    hexagon_circ_std,                          // llvm.hexagon.circ.std
+    hexagon_circ_sth,                          // llvm.hexagon.circ.sth
+    hexagon_circ_sthhi,                        // llvm.hexagon.circ.sthhi
+    hexagon_circ_stw,                          // llvm.hexagon.circ.stw
+    hexagon_mm256i_vaddw,                      // llvm.hexagon.mm256i.vaddw
+    hexagon_prefetch,                          // llvm.hexagon.prefetch
+    mips_absq_s_ph,                            // llvm.mips.absq.s.ph
+    mips_absq_s_qb,                            // llvm.mips.absq.s.qb
+    mips_absq_s_w,                             // llvm.mips.absq.s.w
+    mips_add_a_b,                              // llvm.mips.add.a.b
+    mips_add_a_d,                              // llvm.mips.add.a.d
+    mips_add_a_h,                              // llvm.mips.add.a.h
+    mips_add_a_w,                              // llvm.mips.add.a.w
+    mips_addq_ph,                              // llvm.mips.addq.ph
+    mips_addq_s_ph,                            // llvm.mips.addq.s.ph
+    mips_addq_s_w,                             // llvm.mips.addq.s.w
+    mips_addqh_ph,                             // llvm.mips.addqh.ph
+    mips_addqh_r_ph,                           // llvm.mips.addqh.r.ph
+    mips_addqh_r_w,                            // llvm.mips.addqh.r.w
+    mips_addqh_w,                              // llvm.mips.addqh.w
+    mips_adds_a_b,                             // llvm.mips.adds.a.b
+    mips_adds_a_d,                             // llvm.mips.adds.a.d
+    mips_adds_a_h,                             // llvm.mips.adds.a.h
+    mips_adds_a_w,                             // llvm.mips.adds.a.w
+    mips_adds_s_b,                             // llvm.mips.adds.s.b
+    mips_adds_s_d,                             // llvm.mips.adds.s.d
+    mips_adds_s_h,                             // llvm.mips.adds.s.h
+    mips_adds_s_w,                             // llvm.mips.adds.s.w
+    mips_adds_u_b,                             // llvm.mips.adds.u.b
+    mips_adds_u_d,                             // llvm.mips.adds.u.d
+    mips_adds_u_h,                             // llvm.mips.adds.u.h
+    mips_adds_u_w,                             // llvm.mips.adds.u.w
+    mips_addsc,                                // llvm.mips.addsc
+    mips_addu_ph,                              // llvm.mips.addu.ph
+    mips_addu_qb,                              // llvm.mips.addu.qb
+    mips_addu_s_ph,                            // llvm.mips.addu.s.ph
+    mips_addu_s_qb,                            // llvm.mips.addu.s.qb
+    mips_adduh_qb,                             // llvm.mips.adduh.qb
+    mips_adduh_r_qb,                           // llvm.mips.adduh.r.qb
+    mips_addv_b,                               // llvm.mips.addv.b
+    mips_addv_d,                               // llvm.mips.addv.d
+    mips_addv_h,                               // llvm.mips.addv.h
+    mips_addv_w,                               // llvm.mips.addv.w
+    mips_addvi_b,                              // llvm.mips.addvi.b
+    mips_addvi_d,                              // llvm.mips.addvi.d
+    mips_addvi_h,                              // llvm.mips.addvi.h
+    mips_addvi_w,                              // llvm.mips.addvi.w
+    mips_addwc,                                // llvm.mips.addwc
+    mips_and_v,                                // llvm.mips.and.v
+    mips_andi_b,                               // llvm.mips.andi.b
+    mips_append,                               // llvm.mips.append
+    mips_asub_s_b,                             // llvm.mips.asub.s.b
+    mips_asub_s_d,                             // llvm.mips.asub.s.d
+    mips_asub_s_h,                             // llvm.mips.asub.s.h
+    mips_asub_s_w,                             // llvm.mips.asub.s.w
+    mips_asub_u_b,                             // llvm.mips.asub.u.b
+    mips_asub_u_d,                             // llvm.mips.asub.u.d
+    mips_asub_u_h,                             // llvm.mips.asub.u.h
+    mips_asub_u_w,                             // llvm.mips.asub.u.w
+    mips_ave_s_b,                              // llvm.mips.ave.s.b
+    mips_ave_s_d,                              // llvm.mips.ave.s.d
+    mips_ave_s_h,                              // llvm.mips.ave.s.h
+    mips_ave_s_w,                              // llvm.mips.ave.s.w
+    mips_ave_u_b,                              // llvm.mips.ave.u.b
+    mips_ave_u_d,                              // llvm.mips.ave.u.d
+    mips_ave_u_h,                              // llvm.mips.ave.u.h
+    mips_ave_u_w,                              // llvm.mips.ave.u.w
+    mips_aver_s_b,                             // llvm.mips.aver.s.b
+    mips_aver_s_d,                             // llvm.mips.aver.s.d
+    mips_aver_s_h,                             // llvm.mips.aver.s.h
+    mips_aver_s_w,                             // llvm.mips.aver.s.w
+    mips_aver_u_b,                             // llvm.mips.aver.u.b
+    mips_aver_u_d,                             // llvm.mips.aver.u.d
+    mips_aver_u_h,                             // llvm.mips.aver.u.h
+    mips_aver_u_w,                             // llvm.mips.aver.u.w
+    mips_balign,                               // llvm.mips.balign
+    mips_bclr_b,                               // llvm.mips.bclr.b
+    mips_bclr_d,                               // llvm.mips.bclr.d
+    mips_bclr_h,                               // llvm.mips.bclr.h
+    mips_bclr_w,                               // llvm.mips.bclr.w
+    mips_bclri_b,                              // llvm.mips.bclri.b
+    mips_bclri_d,                              // llvm.mips.bclri.d
+    mips_bclri_h,                              // llvm.mips.bclri.h
+    mips_bclri_w,                              // llvm.mips.bclri.w
+    mips_binsl_b,                              // llvm.mips.binsl.b
+    mips_binsl_d,                              // llvm.mips.binsl.d
+    mips_binsl_h,                              // llvm.mips.binsl.h
+    mips_binsl_w,                              // llvm.mips.binsl.w
+    mips_binsli_b,                             // llvm.mips.binsli.b
+    mips_binsli_d,                             // llvm.mips.binsli.d
+    mips_binsli_h,                             // llvm.mips.binsli.h
+    mips_binsli_w,                             // llvm.mips.binsli.w
+    mips_binsr_b,                              // llvm.mips.binsr.b
+    mips_binsr_d,                              // llvm.mips.binsr.d
+    mips_binsr_h,                              // llvm.mips.binsr.h
+    mips_binsr_w,                              // llvm.mips.binsr.w
+    mips_binsri_b,                             // llvm.mips.binsri.b
+    mips_binsri_d,                             // llvm.mips.binsri.d
+    mips_binsri_h,                             // llvm.mips.binsri.h
+    mips_binsri_w,                             // llvm.mips.binsri.w
+    mips_bitrev,                               // llvm.mips.bitrev
+    mips_bmnz_v,                               // llvm.mips.bmnz.v
+    mips_bmnzi_b,                              // llvm.mips.bmnzi.b
+    mips_bmz_v,                                // llvm.mips.bmz.v
+    mips_bmzi_b,                               // llvm.mips.bmzi.b
+    mips_bneg_b,                               // llvm.mips.bneg.b
+    mips_bneg_d,                               // llvm.mips.bneg.d
+    mips_bneg_h,                               // llvm.mips.bneg.h
+    mips_bneg_w,                               // llvm.mips.bneg.w
+    mips_bnegi_b,                              // llvm.mips.bnegi.b
+    mips_bnegi_d,                              // llvm.mips.bnegi.d
+    mips_bnegi_h,                              // llvm.mips.bnegi.h
+    mips_bnegi_w,                              // llvm.mips.bnegi.w
+    mips_bnz_b,                                // llvm.mips.bnz.b
+    mips_bnz_d,                                // llvm.mips.bnz.d
+    mips_bnz_h,                                // llvm.mips.bnz.h
+    mips_bnz_v,                                // llvm.mips.bnz.v
+    mips_bnz_w,                                // llvm.mips.bnz.w
+    mips_bposge32,                             // llvm.mips.bposge32
+    mips_bsel_v,                               // llvm.mips.bsel.v
+    mips_bseli_b,                              // llvm.mips.bseli.b
+    mips_bset_b,                               // llvm.mips.bset.b
+    mips_bset_d,                               // llvm.mips.bset.d
+    mips_bset_h,                               // llvm.mips.bset.h
+    mips_bset_w,                               // llvm.mips.bset.w
+    mips_bseti_b,                              // llvm.mips.bseti.b
+    mips_bseti_d,                              // llvm.mips.bseti.d
+    mips_bseti_h,                              // llvm.mips.bseti.h
+    mips_bseti_w,                              // llvm.mips.bseti.w
+    mips_bz_b,                                 // llvm.mips.bz.b
+    mips_bz_d,                                 // llvm.mips.bz.d
+    mips_bz_h,                                 // llvm.mips.bz.h
+    mips_bz_v,                                 // llvm.mips.bz.v
+    mips_bz_w,                                 // llvm.mips.bz.w
+    mips_ceq_b,                                // llvm.mips.ceq.b
+    mips_ceq_d,                                // llvm.mips.ceq.d
+    mips_ceq_h,                                // llvm.mips.ceq.h
+    mips_ceq_w,                                // llvm.mips.ceq.w
+    mips_ceqi_b,                               // llvm.mips.ceqi.b
+    mips_ceqi_d,                               // llvm.mips.ceqi.d
+    mips_ceqi_h,                               // llvm.mips.ceqi.h
+    mips_ceqi_w,                               // llvm.mips.ceqi.w
+    mips_cfcmsa,                               // llvm.mips.cfcmsa
+    mips_cle_s_b,                              // llvm.mips.cle.s.b
+    mips_cle_s_d,                              // llvm.mips.cle.s.d
+    mips_cle_s_h,                              // llvm.mips.cle.s.h
+    mips_cle_s_w,                              // llvm.mips.cle.s.w
+    mips_cle_u_b,                              // llvm.mips.cle.u.b
+    mips_cle_u_d,                              // llvm.mips.cle.u.d
+    mips_cle_u_h,                              // llvm.mips.cle.u.h
+    mips_cle_u_w,                              // llvm.mips.cle.u.w
+    mips_clei_s_b,                             // llvm.mips.clei.s.b
+    mips_clei_s_d,                             // llvm.mips.clei.s.d
+    mips_clei_s_h,                             // llvm.mips.clei.s.h
+    mips_clei_s_w,                             // llvm.mips.clei.s.w
+    mips_clei_u_b,                             // llvm.mips.clei.u.b
+    mips_clei_u_d,                             // llvm.mips.clei.u.d
+    mips_clei_u_h,                             // llvm.mips.clei.u.h
+    mips_clei_u_w,                             // llvm.mips.clei.u.w
+    mips_clt_s_b,                              // llvm.mips.clt.s.b
+    mips_clt_s_d,                              // llvm.mips.clt.s.d
+    mips_clt_s_h,                              // llvm.mips.clt.s.h
+    mips_clt_s_w,                              // llvm.mips.clt.s.w
+    mips_clt_u_b,                              // llvm.mips.clt.u.b
+    mips_clt_u_d,                              // llvm.mips.clt.u.d
+    mips_clt_u_h,                              // llvm.mips.clt.u.h
+    mips_clt_u_w,                              // llvm.mips.clt.u.w
+    mips_clti_s_b,                             // llvm.mips.clti.s.b
+    mips_clti_s_d,                             // llvm.mips.clti.s.d
+    mips_clti_s_h,                             // llvm.mips.clti.s.h
+    mips_clti_s_w,                             // llvm.mips.clti.s.w
+    mips_clti_u_b,                             // llvm.mips.clti.u.b
+    mips_clti_u_d,                             // llvm.mips.clti.u.d
+    mips_clti_u_h,                             // llvm.mips.clti.u.h
+    mips_clti_u_w,                             // llvm.mips.clti.u.w
+    mips_cmp_eq_ph,                            // llvm.mips.cmp.eq.ph
+    mips_cmp_le_ph,                            // llvm.mips.cmp.le.ph
+    mips_cmp_lt_ph,                            // llvm.mips.cmp.lt.ph
+    mips_cmpgdu_eq_qb,                         // llvm.mips.cmpgdu.eq.qb
+    mips_cmpgdu_le_qb,                         // llvm.mips.cmpgdu.le.qb
+    mips_cmpgdu_lt_qb,                         // llvm.mips.cmpgdu.lt.qb
+    mips_cmpgu_eq_qb,                          // llvm.mips.cmpgu.eq.qb
+    mips_cmpgu_le_qb,                          // llvm.mips.cmpgu.le.qb
+    mips_cmpgu_lt_qb,                          // llvm.mips.cmpgu.lt.qb
+    mips_cmpu_eq_qb,                           // llvm.mips.cmpu.eq.qb
+    mips_cmpu_le_qb,                           // llvm.mips.cmpu.le.qb
+    mips_cmpu_lt_qb,                           // llvm.mips.cmpu.lt.qb
+    mips_copy_s_b,                             // llvm.mips.copy.s.b
+    mips_copy_s_d,                             // llvm.mips.copy.s.d
+    mips_copy_s_h,                             // llvm.mips.copy.s.h
+    mips_copy_s_w,                             // llvm.mips.copy.s.w
+    mips_copy_u_b,                             // llvm.mips.copy.u.b
+    mips_copy_u_d,                             // llvm.mips.copy.u.d
+    mips_copy_u_h,                             // llvm.mips.copy.u.h
+    mips_copy_u_w,                             // llvm.mips.copy.u.w
+    mips_ctcmsa,                               // llvm.mips.ctcmsa
+    mips_div_s_b,                              // llvm.mips.div.s.b
+    mips_div_s_d,                              // llvm.mips.div.s.d
+    mips_div_s_h,                              // llvm.mips.div.s.h
+    mips_div_s_w,                              // llvm.mips.div.s.w
+    mips_div_u_b,                              // llvm.mips.div.u.b
+    mips_div_u_d,                              // llvm.mips.div.u.d
+    mips_div_u_h,                              // llvm.mips.div.u.h
+    mips_div_u_w,                              // llvm.mips.div.u.w
+    mips_dlsa,                                 // llvm.mips.dlsa
+    mips_dotp_s_d,                             // llvm.mips.dotp.s.d
+    mips_dotp_s_h,                             // llvm.mips.dotp.s.h
+    mips_dotp_s_w,                             // llvm.mips.dotp.s.w
+    mips_dotp_u_d,                             // llvm.mips.dotp.u.d
+    mips_dotp_u_h,                             // llvm.mips.dotp.u.h
+    mips_dotp_u_w,                             // llvm.mips.dotp.u.w
+    mips_dpa_w_ph,                             // llvm.mips.dpa.w.ph
+    mips_dpadd_s_d,                            // llvm.mips.dpadd.s.d
+    mips_dpadd_s_h,                            // llvm.mips.dpadd.s.h
+    mips_dpadd_s_w,                            // llvm.mips.dpadd.s.w
+    mips_dpadd_u_d,                            // llvm.mips.dpadd.u.d
+    mips_dpadd_u_h,                            // llvm.mips.dpadd.u.h
+    mips_dpadd_u_w,                            // llvm.mips.dpadd.u.w
+    mips_dpaq_s_w_ph,                          // llvm.mips.dpaq.s.w.ph
+    mips_dpaq_sa_l_w,                          // llvm.mips.dpaq.sa.l.w
+    mips_dpaqx_s_w_ph,                         // llvm.mips.dpaqx.s.w.ph
+    mips_dpaqx_sa_w_ph,                        // llvm.mips.dpaqx.sa.w.ph
+    mips_dpau_h_qbl,                           // llvm.mips.dpau.h.qbl
+    mips_dpau_h_qbr,                           // llvm.mips.dpau.h.qbr
+    mips_dpax_w_ph,                            // llvm.mips.dpax.w.ph
+    mips_dps_w_ph,                             // llvm.mips.dps.w.ph
+    mips_dpsq_s_w_ph,                          // llvm.mips.dpsq.s.w.ph
+    mips_dpsq_sa_l_w,                          // llvm.mips.dpsq.sa.l.w
+    mips_dpsqx_s_w_ph,                         // llvm.mips.dpsqx.s.w.ph
+    mips_dpsqx_sa_w_ph,                        // llvm.mips.dpsqx.sa.w.ph
+    mips_dpsu_h_qbl,                           // llvm.mips.dpsu.h.qbl
+    mips_dpsu_h_qbr,                           // llvm.mips.dpsu.h.qbr
+    mips_dpsub_s_d,                            // llvm.mips.dpsub.s.d
+    mips_dpsub_s_h,                            // llvm.mips.dpsub.s.h
+    mips_dpsub_s_w,                            // llvm.mips.dpsub.s.w
+    mips_dpsub_u_d,                            // llvm.mips.dpsub.u.d
+    mips_dpsub_u_h,                            // llvm.mips.dpsub.u.h
+    mips_dpsub_u_w,                            // llvm.mips.dpsub.u.w
+    mips_dpsx_w_ph,                            // llvm.mips.dpsx.w.ph
+    mips_extp,                                 // llvm.mips.extp
+    mips_extpdp,                               // llvm.mips.extpdp
+    mips_extr_r_w,                             // llvm.mips.extr.r.w
+    mips_extr_rs_w,                            // llvm.mips.extr.rs.w
+    mips_extr_s_h,                             // llvm.mips.extr.s.h
+    mips_extr_w,                               // llvm.mips.extr.w
+    mips_fadd_d,                               // llvm.mips.fadd.d
+    mips_fadd_w,                               // llvm.mips.fadd.w
+    mips_fcaf_d,                               // llvm.mips.fcaf.d
+    mips_fcaf_w,                               // llvm.mips.fcaf.w
+    mips_fceq_d,                               // llvm.mips.fceq.d
+    mips_fceq_w,                               // llvm.mips.fceq.w
+    mips_fclass_d,                             // llvm.mips.fclass.d
+    mips_fclass_w,                             // llvm.mips.fclass.w
+    mips_fcle_d,                               // llvm.mips.fcle.d
+    mips_fcle_w,                               // llvm.mips.fcle.w
+    mips_fclt_d,                               // llvm.mips.fclt.d
+    mips_fclt_w,                               // llvm.mips.fclt.w
+    mips_fcne_d,                               // llvm.mips.fcne.d
+    mips_fcne_w,                               // llvm.mips.fcne.w
+    mips_fcor_d,                               // llvm.mips.fcor.d
+    mips_fcor_w,                               // llvm.mips.fcor.w
+    mips_fcueq_d,                              // llvm.mips.fcueq.d
+    mips_fcueq_w,                              // llvm.mips.fcueq.w
+    mips_fcule_d,                              // llvm.mips.fcule.d
+    mips_fcule_w,                              // llvm.mips.fcule.w
+    mips_fcult_d,                              // llvm.mips.fcult.d
+    mips_fcult_w,                              // llvm.mips.fcult.w
+    mips_fcun_d,                               // llvm.mips.fcun.d
+    mips_fcun_w,                               // llvm.mips.fcun.w
+    mips_fcune_d,                              // llvm.mips.fcune.d
+    mips_fcune_w,                              // llvm.mips.fcune.w
+    mips_fdiv_d,                               // llvm.mips.fdiv.d
+    mips_fdiv_w,                               // llvm.mips.fdiv.w
+    mips_fexdo_h,                              // llvm.mips.fexdo.h
+    mips_fexdo_w,                              // llvm.mips.fexdo.w
+    mips_fexp2_d,                              // llvm.mips.fexp2.d
+    mips_fexp2_w,                              // llvm.mips.fexp2.w
+    mips_fexupl_d,                             // llvm.mips.fexupl.d
+    mips_fexupl_w,                             // llvm.mips.fexupl.w
+    mips_fexupr_d,                             // llvm.mips.fexupr.d
+    mips_fexupr_w,                             // llvm.mips.fexupr.w
+    mips_ffint_s_d,                            // llvm.mips.ffint.s.d
+    mips_ffint_s_w,                            // llvm.mips.ffint.s.w
+    mips_ffint_u_d,                            // llvm.mips.ffint.u.d
+    mips_ffint_u_w,                            // llvm.mips.ffint.u.w
+    mips_ffql_d,                               // llvm.mips.ffql.d
+    mips_ffql_w,                               // llvm.mips.ffql.w
+    mips_ffqr_d,                               // llvm.mips.ffqr.d
+    mips_ffqr_w,                               // llvm.mips.ffqr.w
+    mips_fill_b,                               // llvm.mips.fill.b
+    mips_fill_d,                               // llvm.mips.fill.d
+    mips_fill_h,                               // llvm.mips.fill.h
+    mips_fill_w,                               // llvm.mips.fill.w
+    mips_flog2_d,                              // llvm.mips.flog2.d
+    mips_flog2_w,                              // llvm.mips.flog2.w
+    mips_fmadd_d,                              // llvm.mips.fmadd.d
+    mips_fmadd_w,                              // llvm.mips.fmadd.w
+    mips_fmax_a_d,                             // llvm.mips.fmax.a.d
+    mips_fmax_a_w,                             // llvm.mips.fmax.a.w
+    mips_fmax_d,                               // llvm.mips.fmax.d
+    mips_fmax_w,                               // llvm.mips.fmax.w
+    mips_fmin_a_d,                             // llvm.mips.fmin.a.d
+    mips_fmin_a_w,                             // llvm.mips.fmin.a.w
+    mips_fmin_d,                               // llvm.mips.fmin.d
+    mips_fmin_w,                               // llvm.mips.fmin.w
+    mips_fmsub_d,                              // llvm.mips.fmsub.d
+    mips_fmsub_w,                              // llvm.mips.fmsub.w
+    mips_fmul_d,                               // llvm.mips.fmul.d
+    mips_fmul_w,                               // llvm.mips.fmul.w
+    mips_frcp_d,                               // llvm.mips.frcp.d
+    mips_frcp_w,                               // llvm.mips.frcp.w
+    mips_frint_d,                              // llvm.mips.frint.d
+    mips_frint_w,                              // llvm.mips.frint.w
+    mips_frsqrt_d,                             // llvm.mips.frsqrt.d
+    mips_frsqrt_w,                             // llvm.mips.frsqrt.w
+    mips_fsaf_d,                               // llvm.mips.fsaf.d
+    mips_fsaf_w,                               // llvm.mips.fsaf.w
+    mips_fseq_d,                               // llvm.mips.fseq.d
+    mips_fseq_w,                               // llvm.mips.fseq.w
+    mips_fsle_d,                               // llvm.mips.fsle.d
+    mips_fsle_w,                               // llvm.mips.fsle.w
+    mips_fslt_d,                               // llvm.mips.fslt.d
+    mips_fslt_w,                               // llvm.mips.fslt.w
+    mips_fsne_d,                               // llvm.mips.fsne.d
+    mips_fsne_w,                               // llvm.mips.fsne.w
+    mips_fsor_d,                               // llvm.mips.fsor.d
+    mips_fsor_w,                               // llvm.mips.fsor.w
+    mips_fsqrt_d,                              // llvm.mips.fsqrt.d
+    mips_fsqrt_w,                              // llvm.mips.fsqrt.w
+    mips_fsub_d,                               // llvm.mips.fsub.d
+    mips_fsub_w,                               // llvm.mips.fsub.w
+    mips_fsueq_d,                              // llvm.mips.fsueq.d
+    mips_fsueq_w,                              // llvm.mips.fsueq.w
+    mips_fsule_d,                              // llvm.mips.fsule.d
+    mips_fsule_w,                              // llvm.mips.fsule.w
+    mips_fsult_d,                              // llvm.mips.fsult.d
+    mips_fsult_w,                              // llvm.mips.fsult.w
+    mips_fsun_d,                               // llvm.mips.fsun.d
+    mips_fsun_w,                               // llvm.mips.fsun.w
+    mips_fsune_d,                              // llvm.mips.fsune.d
+    mips_fsune_w,                              // llvm.mips.fsune.w
+    mips_ftint_s_d,                            // llvm.mips.ftint.s.d
+    mips_ftint_s_w,                            // llvm.mips.ftint.s.w
+    mips_ftint_u_d,                            // llvm.mips.ftint.u.d
+    mips_ftint_u_w,                            // llvm.mips.ftint.u.w
+    mips_ftq_h,                                // llvm.mips.ftq.h
+    mips_ftq_w,                                // llvm.mips.ftq.w
+    mips_ftrunc_s_d,                           // llvm.mips.ftrunc.s.d
+    mips_ftrunc_s_w,                           // llvm.mips.ftrunc.s.w
+    mips_ftrunc_u_d,                           // llvm.mips.ftrunc.u.d
+    mips_ftrunc_u_w,                           // llvm.mips.ftrunc.u.w
+    mips_hadd_s_d,                             // llvm.mips.hadd.s.d
+    mips_hadd_s_h,                             // llvm.mips.hadd.s.h
+    mips_hadd_s_w,                             // llvm.mips.hadd.s.w
+    mips_hadd_u_d,                             // llvm.mips.hadd.u.d
+    mips_hadd_u_h,                             // llvm.mips.hadd.u.h
+    mips_hadd_u_w,                             // llvm.mips.hadd.u.w
+    mips_hsub_s_d,                             // llvm.mips.hsub.s.d
+    mips_hsub_s_h,                             // llvm.mips.hsub.s.h
+    mips_hsub_s_w,                             // llvm.mips.hsub.s.w
+    mips_hsub_u_d,                             // llvm.mips.hsub.u.d
+    mips_hsub_u_h,                             // llvm.mips.hsub.u.h
+    mips_hsub_u_w,                             // llvm.mips.hsub.u.w
+    mips_ilvev_b,                              // llvm.mips.ilvev.b
+    mips_ilvev_d,                              // llvm.mips.ilvev.d
+    mips_ilvev_h,                              // llvm.mips.ilvev.h
+    mips_ilvev_w,                              // llvm.mips.ilvev.w
+    mips_ilvl_b,                               // llvm.mips.ilvl.b
+    mips_ilvl_d,                               // llvm.mips.ilvl.d
+    mips_ilvl_h,                               // llvm.mips.ilvl.h
+    mips_ilvl_w,                               // llvm.mips.ilvl.w
+    mips_ilvod_b,                              // llvm.mips.ilvod.b
+    mips_ilvod_d,                              // llvm.mips.ilvod.d
+    mips_ilvod_h,                              // llvm.mips.ilvod.h
+    mips_ilvod_w,                              // llvm.mips.ilvod.w
+    mips_ilvr_b,                               // llvm.mips.ilvr.b
+    mips_ilvr_d,                               // llvm.mips.ilvr.d
+    mips_ilvr_h,                               // llvm.mips.ilvr.h
+    mips_ilvr_w,                               // llvm.mips.ilvr.w
+    mips_insert_b,                             // llvm.mips.insert.b
+    mips_insert_d,                             // llvm.mips.insert.d
+    mips_insert_h,                             // llvm.mips.insert.h
+    mips_insert_w,                             // llvm.mips.insert.w
+    mips_insv,                                 // llvm.mips.insv
+    mips_insve_b,                              // llvm.mips.insve.b
+    mips_insve_d,                              // llvm.mips.insve.d
+    mips_insve_h,                              // llvm.mips.insve.h
+    mips_insve_w,                              // llvm.mips.insve.w
+    mips_lbux,                                 // llvm.mips.lbux
+    mips_ld_b,                                 // llvm.mips.ld.b
+    mips_ld_d,                                 // llvm.mips.ld.d
+    mips_ld_h,                                 // llvm.mips.ld.h
+    mips_ld_w,                                 // llvm.mips.ld.w
+    mips_ldi_b,                                // llvm.mips.ldi.b
+    mips_ldi_d,                                // llvm.mips.ldi.d
+    mips_ldi_h,                                // llvm.mips.ldi.h
+    mips_ldi_w,                                // llvm.mips.ldi.w
+    mips_lhx,                                  // llvm.mips.lhx
+    mips_lsa,                                  // llvm.mips.lsa
+    mips_lwx,                                  // llvm.mips.lwx
+    mips_madd,                                 // llvm.mips.madd
+    mips_madd_q_h,                             // llvm.mips.madd.q.h
+    mips_madd_q_w,                             // llvm.mips.madd.q.w
+    mips_maddr_q_h,                            // llvm.mips.maddr.q.h
+    mips_maddr_q_w,                            // llvm.mips.maddr.q.w
+    mips_maddu,                                // llvm.mips.maddu
+    mips_maddv_b,                              // llvm.mips.maddv.b
+    mips_maddv_d,                              // llvm.mips.maddv.d
+    mips_maddv_h,                              // llvm.mips.maddv.h
+    mips_maddv_w,                              // llvm.mips.maddv.w
+    mips_maq_s_w_phl,                          // llvm.mips.maq.s.w.phl
+    mips_maq_s_w_phr,                          // llvm.mips.maq.s.w.phr
+    mips_maq_sa_w_phl,                         // llvm.mips.maq.sa.w.phl
+    mips_maq_sa_w_phr,                         // llvm.mips.maq.sa.w.phr
+    mips_max_a_b,                              // llvm.mips.max.a.b
+    mips_max_a_d,                              // llvm.mips.max.a.d
+    mips_max_a_h,                              // llvm.mips.max.a.h
+    mips_max_a_w,                              // llvm.mips.max.a.w
+    mips_max_s_b,                              // llvm.mips.max.s.b
+    mips_max_s_d,                              // llvm.mips.max.s.d
+    mips_max_s_h,                              // llvm.mips.max.s.h
+    mips_max_s_w,                              // llvm.mips.max.s.w
+    mips_max_u_b,                              // llvm.mips.max.u.b
+    mips_max_u_d,                              // llvm.mips.max.u.d
+    mips_max_u_h,                              // llvm.mips.max.u.h
+    mips_max_u_w,                              // llvm.mips.max.u.w
+    mips_maxi_s_b,                             // llvm.mips.maxi.s.b
+    mips_maxi_s_d,                             // llvm.mips.maxi.s.d
+    mips_maxi_s_h,                             // llvm.mips.maxi.s.h
+    mips_maxi_s_w,                             // llvm.mips.maxi.s.w
+    mips_maxi_u_b,                             // llvm.mips.maxi.u.b
+    mips_maxi_u_d,                             // llvm.mips.maxi.u.d
+    mips_maxi_u_h,                             // llvm.mips.maxi.u.h
+    mips_maxi_u_w,                             // llvm.mips.maxi.u.w
+    mips_min_a_b,                              // llvm.mips.min.a.b
+    mips_min_a_d,                              // llvm.mips.min.a.d
+    mips_min_a_h,                              // llvm.mips.min.a.h
+    mips_min_a_w,                              // llvm.mips.min.a.w
+    mips_min_s_b,                              // llvm.mips.min.s.b
+    mips_min_s_d,                              // llvm.mips.min.s.d
+    mips_min_s_h,                              // llvm.mips.min.s.h
+    mips_min_s_w,                              // llvm.mips.min.s.w
+    mips_min_u_b,                              // llvm.mips.min.u.b
+    mips_min_u_d,                              // llvm.mips.min.u.d
+    mips_min_u_h,                              // llvm.mips.min.u.h
+    mips_min_u_w,                              // llvm.mips.min.u.w
+    mips_mini_s_b,                             // llvm.mips.mini.s.b
+    mips_mini_s_d,                             // llvm.mips.mini.s.d
+    mips_mini_s_h,                             // llvm.mips.mini.s.h
+    mips_mini_s_w,                             // llvm.mips.mini.s.w
+    mips_mini_u_b,                             // llvm.mips.mini.u.b
+    mips_mini_u_d,                             // llvm.mips.mini.u.d
+    mips_mini_u_h,                             // llvm.mips.mini.u.h
+    mips_mini_u_w,                             // llvm.mips.mini.u.w
+    mips_mod_s_b,                              // llvm.mips.mod.s.b
+    mips_mod_s_d,                              // llvm.mips.mod.s.d
+    mips_mod_s_h,                              // llvm.mips.mod.s.h
+    mips_mod_s_w,                              // llvm.mips.mod.s.w
+    mips_mod_u_b,                              // llvm.mips.mod.u.b
+    mips_mod_u_d,                              // llvm.mips.mod.u.d
+    mips_mod_u_h,                              // llvm.mips.mod.u.h
+    mips_mod_u_w,                              // llvm.mips.mod.u.w
+    mips_modsub,                               // llvm.mips.modsub
+    mips_move_v,                               // llvm.mips.move.v
+    mips_msub,                                 // llvm.mips.msub
+    mips_msub_q_h,                             // llvm.mips.msub.q.h
+    mips_msub_q_w,                             // llvm.mips.msub.q.w
+    mips_msubr_q_h,                            // llvm.mips.msubr.q.h
+    mips_msubr_q_w,                            // llvm.mips.msubr.q.w
+    mips_msubu,                                // llvm.mips.msubu
+    mips_msubv_b,                              // llvm.mips.msubv.b
+    mips_msubv_d,                              // llvm.mips.msubv.d
+    mips_msubv_h,                              // llvm.mips.msubv.h
+    mips_msubv_w,                              // llvm.mips.msubv.w
+    mips_mthlip,                               // llvm.mips.mthlip
+    mips_mul_ph,                               // llvm.mips.mul.ph
+    mips_mul_q_h,                              // llvm.mips.mul.q.h
+    mips_mul_q_w,                              // llvm.mips.mul.q.w
+    mips_mul_s_ph,                             // llvm.mips.mul.s.ph
+    mips_muleq_s_w_phl,                        // llvm.mips.muleq.s.w.phl
+    mips_muleq_s_w_phr,                        // llvm.mips.muleq.s.w.phr
+    mips_muleu_s_ph_qbl,                       // llvm.mips.muleu.s.ph.qbl
+    mips_muleu_s_ph_qbr,                       // llvm.mips.muleu.s.ph.qbr
+    mips_mulq_rs_ph,                           // llvm.mips.mulq.rs.ph
+    mips_mulq_rs_w,                            // llvm.mips.mulq.rs.w
+    mips_mulq_s_ph,                            // llvm.mips.mulq.s.ph
+    mips_mulq_s_w,                             // llvm.mips.mulq.s.w
+    mips_mulr_q_h,                             // llvm.mips.mulr.q.h
+    mips_mulr_q_w,                             // llvm.mips.mulr.q.w
+    mips_mulsa_w_ph,                           // llvm.mips.mulsa.w.ph
+    mips_mulsaq_s_w_ph,                        // llvm.mips.mulsaq.s.w.ph
+    mips_mult,                                 // llvm.mips.mult
+    mips_multu,                                // llvm.mips.multu
+    mips_mulv_b,                               // llvm.mips.mulv.b
+    mips_mulv_d,                               // llvm.mips.mulv.d
+    mips_mulv_h,                               // llvm.mips.mulv.h
+    mips_mulv_w,                               // llvm.mips.mulv.w
+    mips_nloc_b,                               // llvm.mips.nloc.b
+    mips_nloc_d,                               // llvm.mips.nloc.d
+    mips_nloc_h,                               // llvm.mips.nloc.h
+    mips_nloc_w,                               // llvm.mips.nloc.w
+    mips_nlzc_b,                               // llvm.mips.nlzc.b
+    mips_nlzc_d,                               // llvm.mips.nlzc.d
+    mips_nlzc_h,                               // llvm.mips.nlzc.h
+    mips_nlzc_w,                               // llvm.mips.nlzc.w
+    mips_nor_v,                                // llvm.mips.nor.v
+    mips_nori_b,                               // llvm.mips.nori.b
+    mips_or_v,                                 // llvm.mips.or.v
+    mips_ori_b,                                // llvm.mips.ori.b
+    mips_packrl_ph,                            // llvm.mips.packrl.ph
+    mips_pckev_b,                              // llvm.mips.pckev.b
+    mips_pckev_d,                              // llvm.mips.pckev.d
+    mips_pckev_h,                              // llvm.mips.pckev.h
+    mips_pckev_w,                              // llvm.mips.pckev.w
+    mips_pckod_b,                              // llvm.mips.pckod.b
+    mips_pckod_d,                              // llvm.mips.pckod.d
+    mips_pckod_h,                              // llvm.mips.pckod.h
+    mips_pckod_w,                              // llvm.mips.pckod.w
+    mips_pcnt_b,                               // llvm.mips.pcnt.b
+    mips_pcnt_d,                               // llvm.mips.pcnt.d
+    mips_pcnt_h,                               // llvm.mips.pcnt.h
+    mips_pcnt_w,                               // llvm.mips.pcnt.w
+    mips_pick_ph,                              // llvm.mips.pick.ph
+    mips_pick_qb,                              // llvm.mips.pick.qb
+    mips_preceq_w_phl,                         // llvm.mips.preceq.w.phl
+    mips_preceq_w_phr,                         // llvm.mips.preceq.w.phr
+    mips_precequ_ph_qbl,                       // llvm.mips.precequ.ph.qbl
+    mips_precequ_ph_qbla,                      // llvm.mips.precequ.ph.qbla
+    mips_precequ_ph_qbr,                       // llvm.mips.precequ.ph.qbr
+    mips_precequ_ph_qbra,                      // llvm.mips.precequ.ph.qbra
+    mips_preceu_ph_qbl,                        // llvm.mips.preceu.ph.qbl
+    mips_preceu_ph_qbla,                       // llvm.mips.preceu.ph.qbla
+    mips_preceu_ph_qbr,                        // llvm.mips.preceu.ph.qbr
+    mips_preceu_ph_qbra,                       // llvm.mips.preceu.ph.qbra
+    mips_precr_qb_ph,                          // llvm.mips.precr.qb.ph
+    mips_precr_sra_ph_w,                       // llvm.mips.precr.sra.ph.w
+    mips_precr_sra_r_ph_w,                     // llvm.mips.precr.sra.r.ph.w
+    mips_precrq_ph_w,                          // llvm.mips.precrq.ph.w
+    mips_precrq_qb_ph,                         // llvm.mips.precrq.qb.ph
+    mips_precrq_rs_ph_w,                       // llvm.mips.precrq.rs.ph.w
+    mips_precrqu_s_qb_ph,                      // llvm.mips.precrqu.s.qb.ph
+    mips_prepend,                              // llvm.mips.prepend
+    mips_raddu_w_qb,                           // llvm.mips.raddu.w.qb
+    mips_rddsp,                                // llvm.mips.rddsp
+    mips_repl_ph,                              // llvm.mips.repl.ph
+    mips_repl_qb,                              // llvm.mips.repl.qb
+    mips_sat_s_b,                              // llvm.mips.sat.s.b
+    mips_sat_s_d,                              // llvm.mips.sat.s.d
+    mips_sat_s_h,                              // llvm.mips.sat.s.h
+    mips_sat_s_w,                              // llvm.mips.sat.s.w
+    mips_sat_u_b,                              // llvm.mips.sat.u.b
+    mips_sat_u_d,                              // llvm.mips.sat.u.d
+    mips_sat_u_h,                              // llvm.mips.sat.u.h
+    mips_sat_u_w,                              // llvm.mips.sat.u.w
+    mips_shf_b,                                // llvm.mips.shf.b
+    mips_shf_h,                                // llvm.mips.shf.h
+    mips_shf_w,                                // llvm.mips.shf.w
+    mips_shilo,                                // llvm.mips.shilo
+    mips_shll_ph,                              // llvm.mips.shll.ph
+    mips_shll_qb,                              // llvm.mips.shll.qb
+    mips_shll_s_ph,                            // llvm.mips.shll.s.ph
+    mips_shll_s_w,                             // llvm.mips.shll.s.w
+    mips_shra_ph,                              // llvm.mips.shra.ph
+    mips_shra_qb,                              // llvm.mips.shra.qb
+    mips_shra_r_ph,                            // llvm.mips.shra.r.ph
+    mips_shra_r_qb,                            // llvm.mips.shra.r.qb
+    mips_shra_r_w,                             // llvm.mips.shra.r.w
+    mips_shrl_ph,                              // llvm.mips.shrl.ph
+    mips_shrl_qb,                              // llvm.mips.shrl.qb
+    mips_sld_b,                                // llvm.mips.sld.b
+    mips_sld_d,                                // llvm.mips.sld.d
+    mips_sld_h,                                // llvm.mips.sld.h
+    mips_sld_w,                                // llvm.mips.sld.w
+    mips_sldi_b,                               // llvm.mips.sldi.b
+    mips_sldi_d,                               // llvm.mips.sldi.d
+    mips_sldi_h,                               // llvm.mips.sldi.h
+    mips_sldi_w,                               // llvm.mips.sldi.w
+    mips_sll_b,                                // llvm.mips.sll.b
+    mips_sll_d,                                // llvm.mips.sll.d
+    mips_sll_h,                                // llvm.mips.sll.h
+    mips_sll_w,                                // llvm.mips.sll.w
+    mips_slli_b,                               // llvm.mips.slli.b
+    mips_slli_d,                               // llvm.mips.slli.d
+    mips_slli_h,                               // llvm.mips.slli.h
+    mips_slli_w,                               // llvm.mips.slli.w
+    mips_splat_b,                              // llvm.mips.splat.b
+    mips_splat_d,                              // llvm.mips.splat.d
+    mips_splat_h,                              // llvm.mips.splat.h
+    mips_splat_w,                              // llvm.mips.splat.w
+    mips_splati_b,                             // llvm.mips.splati.b
+    mips_splati_d,                             // llvm.mips.splati.d
+    mips_splati_h,                             // llvm.mips.splati.h
+    mips_splati_w,                             // llvm.mips.splati.w
+    mips_sra_b,                                // llvm.mips.sra.b
+    mips_sra_d,                                // llvm.mips.sra.d
+    mips_sra_h,                                // llvm.mips.sra.h
+    mips_sra_w,                                // llvm.mips.sra.w
+    mips_srai_b,                               // llvm.mips.srai.b
+    mips_srai_d,                               // llvm.mips.srai.d
+    mips_srai_h,                               // llvm.mips.srai.h
+    mips_srai_w,                               // llvm.mips.srai.w
+    mips_srar_b,                               // llvm.mips.srar.b
+    mips_srar_d,                               // llvm.mips.srar.d
+    mips_srar_h,                               // llvm.mips.srar.h
+    mips_srar_w,                               // llvm.mips.srar.w
+    mips_srari_b,                              // llvm.mips.srari.b
+    mips_srari_d,                              // llvm.mips.srari.d
+    mips_srari_h,                              // llvm.mips.srari.h
+    mips_srari_w,                              // llvm.mips.srari.w
+    mips_srl_b,                                // llvm.mips.srl.b
+    mips_srl_d,                                // llvm.mips.srl.d
+    mips_srl_h,                                // llvm.mips.srl.h
+    mips_srl_w,                                // llvm.mips.srl.w
+    mips_srli_b,                               // llvm.mips.srli.b
+    mips_srli_d,                               // llvm.mips.srli.d
+    mips_srli_h,                               // llvm.mips.srli.h
+    mips_srli_w,                               // llvm.mips.srli.w
+    mips_srlr_b,                               // llvm.mips.srlr.b
+    mips_srlr_d,                               // llvm.mips.srlr.d
+    mips_srlr_h,                               // llvm.mips.srlr.h
+    mips_srlr_w,                               // llvm.mips.srlr.w
+    mips_srlri_b,                              // llvm.mips.srlri.b
+    mips_srlri_d,                              // llvm.mips.srlri.d
+    mips_srlri_h,                              // llvm.mips.srlri.h
+    mips_srlri_w,                              // llvm.mips.srlri.w
+    mips_st_b,                                 // llvm.mips.st.b
+    mips_st_d,                                 // llvm.mips.st.d
+    mips_st_h,                                 // llvm.mips.st.h
+    mips_st_w,                                 // llvm.mips.st.w
+    mips_subq_ph,                              // llvm.mips.subq.ph
+    mips_subq_s_ph,                            // llvm.mips.subq.s.ph
+    mips_subq_s_w,                             // llvm.mips.subq.s.w
+    mips_subqh_ph,                             // llvm.mips.subqh.ph
+    mips_subqh_r_ph,                           // llvm.mips.subqh.r.ph
+    mips_subqh_r_w,                            // llvm.mips.subqh.r.w
+    mips_subqh_w,                              // llvm.mips.subqh.w
+    mips_subs_s_b,                             // llvm.mips.subs.s.b
+    mips_subs_s_d,                             // llvm.mips.subs.s.d
+    mips_subs_s_h,                             // llvm.mips.subs.s.h
+    mips_subs_s_w,                             // llvm.mips.subs.s.w
+    mips_subs_u_b,                             // llvm.mips.subs.u.b
+    mips_subs_u_d,                             // llvm.mips.subs.u.d
+    mips_subs_u_h,                             // llvm.mips.subs.u.h
+    mips_subs_u_w,                             // llvm.mips.subs.u.w
+    mips_subsus_u_b,                           // llvm.mips.subsus.u.b
+    mips_subsus_u_d,                           // llvm.mips.subsus.u.d
+    mips_subsus_u_h,                           // llvm.mips.subsus.u.h
+    mips_subsus_u_w,                           // llvm.mips.subsus.u.w
+    mips_subsuu_s_b,                           // llvm.mips.subsuu.s.b
+    mips_subsuu_s_d,                           // llvm.mips.subsuu.s.d
+    mips_subsuu_s_h,                           // llvm.mips.subsuu.s.h
+    mips_subsuu_s_w,                           // llvm.mips.subsuu.s.w
+    mips_subu_ph,                              // llvm.mips.subu.ph
+    mips_subu_qb,                              // llvm.mips.subu.qb
+    mips_subu_s_ph,                            // llvm.mips.subu.s.ph
+    mips_subu_s_qb,                            // llvm.mips.subu.s.qb
+    mips_subuh_qb,                             // llvm.mips.subuh.qb
+    mips_subuh_r_qb,                           // llvm.mips.subuh.r.qb
+    mips_subv_b,                               // llvm.mips.subv.b
+    mips_subv_d,                               // llvm.mips.subv.d
+    mips_subv_h,                               // llvm.mips.subv.h
+    mips_subv_w,                               // llvm.mips.subv.w
+    mips_subvi_b,                              // llvm.mips.subvi.b
+    mips_subvi_d,                              // llvm.mips.subvi.d
+    mips_subvi_h,                              // llvm.mips.subvi.h
+    mips_subvi_w,                              // llvm.mips.subvi.w
+    mips_vshf_b,                               // llvm.mips.vshf.b
+    mips_vshf_d,                               // llvm.mips.vshf.d
+    mips_vshf_h,                               // llvm.mips.vshf.h
+    mips_vshf_w,                               // llvm.mips.vshf.w
+    mips_wrdsp,                                // llvm.mips.wrdsp
+    mips_xor_v,                                // llvm.mips.xor.v
+    mips_xori_b,                               // llvm.mips.xori.b
+    nvvm_add_rm_d,                             // llvm.nvvm.add.rm.d
+    nvvm_add_rm_f,                             // llvm.nvvm.add.rm.f
+    nvvm_add_rm_ftz_f,                         // llvm.nvvm.add.rm.ftz.f
+    nvvm_add_rn_d,                             // llvm.nvvm.add.rn.d
+    nvvm_add_rn_f,                             // llvm.nvvm.add.rn.f
+    nvvm_add_rn_ftz_f,                         // llvm.nvvm.add.rn.ftz.f
+    nvvm_add_rp_d,                             // llvm.nvvm.add.rp.d
+    nvvm_add_rp_f,                             // llvm.nvvm.add.rp.f
+    nvvm_add_rp_ftz_f,                         // llvm.nvvm.add.rp.ftz.f
+    nvvm_add_rz_d,                             // llvm.nvvm.add.rz.d
+    nvvm_add_rz_f,                             // llvm.nvvm.add.rz.f
+    nvvm_add_rz_ftz_f,                         // llvm.nvvm.add.rz.ftz.f
+    nvvm_atomic_add_gen_f_cta,                 // llvm.nvvm.atomic.add.gen.f.cta
+    nvvm_atomic_add_gen_f_sys,                 // llvm.nvvm.atomic.add.gen.f.sys
+    nvvm_atomic_add_gen_i_cta,                 // llvm.nvvm.atomic.add.gen.i.cta
+    nvvm_atomic_add_gen_i_sys,                 // llvm.nvvm.atomic.add.gen.i.sys
+    nvvm_atomic_and_gen_i_cta,                 // llvm.nvvm.atomic.and.gen.i.cta
+    nvvm_atomic_and_gen_i_sys,                 // llvm.nvvm.atomic.and.gen.i.sys
+    nvvm_atomic_cas_gen_i_cta,                 // llvm.nvvm.atomic.cas.gen.i.cta
+    nvvm_atomic_cas_gen_i_sys,                 // llvm.nvvm.atomic.cas.gen.i.sys
+    nvvm_atomic_dec_gen_i_cta,                 // llvm.nvvm.atomic.dec.gen.i.cta
+    nvvm_atomic_dec_gen_i_sys,                 // llvm.nvvm.atomic.dec.gen.i.sys
+    nvvm_atomic_exch_gen_i_cta,                // llvm.nvvm.atomic.exch.gen.i.cta
+    nvvm_atomic_exch_gen_i_sys,                // llvm.nvvm.atomic.exch.gen.i.sys
+    nvvm_atomic_inc_gen_i_cta,                 // llvm.nvvm.atomic.inc.gen.i.cta
+    nvvm_atomic_inc_gen_i_sys,                 // llvm.nvvm.atomic.inc.gen.i.sys
+    nvvm_atomic_load_add_f32,                  // llvm.nvvm.atomic.load.add.f32
+    nvvm_atomic_load_add_f64,                  // llvm.nvvm.atomic.load.add.f64
+    nvvm_atomic_load_dec_32,                   // llvm.nvvm.atomic.load.dec.32
+    nvvm_atomic_load_inc_32,                   // llvm.nvvm.atomic.load.inc.32
+    nvvm_atomic_max_gen_i_cta,                 // llvm.nvvm.atomic.max.gen.i.cta
+    nvvm_atomic_max_gen_i_sys,                 // llvm.nvvm.atomic.max.gen.i.sys
+    nvvm_atomic_min_gen_i_cta,                 // llvm.nvvm.atomic.min.gen.i.cta
+    nvvm_atomic_min_gen_i_sys,                 // llvm.nvvm.atomic.min.gen.i.sys
+    nvvm_atomic_or_gen_i_cta,                  // llvm.nvvm.atomic.or.gen.i.cta
+    nvvm_atomic_or_gen_i_sys,                  // llvm.nvvm.atomic.or.gen.i.sys
+    nvvm_atomic_xor_gen_i_cta,                 // llvm.nvvm.atomic.xor.gen.i.cta
+    nvvm_atomic_xor_gen_i_sys,                 // llvm.nvvm.atomic.xor.gen.i.sys
+    nvvm_bar_sync,                             // llvm.nvvm.bar.sync
+    nvvm_bar_warp_sync,                        // llvm.nvvm.bar.warp.sync
+    nvvm_barrier,                              // llvm.nvvm.barrier
+    nvvm_barrier_n,                            // llvm.nvvm.barrier.n
+    nvvm_barrier_sync,                         // llvm.nvvm.barrier.sync
+    nvvm_barrier_sync_cnt,                     // llvm.nvvm.barrier.sync.cnt
+    nvvm_barrier0,                             // llvm.nvvm.barrier0
+    nvvm_barrier0_and,                         // llvm.nvvm.barrier0.and
+    nvvm_barrier0_or,                          // llvm.nvvm.barrier0.or
+    nvvm_barrier0_popc,                        // llvm.nvvm.barrier0.popc
+    nvvm_bitcast_d2ll,                         // llvm.nvvm.bitcast.d2ll
+    nvvm_bitcast_f2i,                          // llvm.nvvm.bitcast.f2i
+    nvvm_bitcast_i2f,                          // llvm.nvvm.bitcast.i2f
+    nvvm_bitcast_ll2d,                         // llvm.nvvm.bitcast.ll2d
+    nvvm_ceil_d,                               // llvm.nvvm.ceil.d
+    nvvm_ceil_f,                               // llvm.nvvm.ceil.f
+    nvvm_ceil_ftz_f,                           // llvm.nvvm.ceil.ftz.f
+    nvvm_compiler_error,                       // llvm.nvvm.compiler.error
+    nvvm_compiler_warn,                        // llvm.nvvm.compiler.warn
+    nvvm_cos_approx_f,                         // llvm.nvvm.cos.approx.f
+    nvvm_cos_approx_ftz_f,                     // llvm.nvvm.cos.approx.ftz.f
+    nvvm_d2f_rm,                               // llvm.nvvm.d2f.rm
+    nvvm_d2f_rm_ftz,                           // llvm.nvvm.d2f.rm.ftz
+    nvvm_d2f_rn,                               // llvm.nvvm.d2f.rn
+    nvvm_d2f_rn_ftz,                           // llvm.nvvm.d2f.rn.ftz
+    nvvm_d2f_rp,                               // llvm.nvvm.d2f.rp
+    nvvm_d2f_rp_ftz,                           // llvm.nvvm.d2f.rp.ftz
+    nvvm_d2f_rz,                               // llvm.nvvm.d2f.rz
+    nvvm_d2f_rz_ftz,                           // llvm.nvvm.d2f.rz.ftz
+    nvvm_d2i_hi,                               // llvm.nvvm.d2i.hi
+    nvvm_d2i_lo,                               // llvm.nvvm.d2i.lo
+    nvvm_d2i_rm,                               // llvm.nvvm.d2i.rm
+    nvvm_d2i_rn,                               // llvm.nvvm.d2i.rn
+    nvvm_d2i_rp,                               // llvm.nvvm.d2i.rp
+    nvvm_d2i_rz,                               // llvm.nvvm.d2i.rz
+    nvvm_d2ll_rm,                              // llvm.nvvm.d2ll.rm
+    nvvm_d2ll_rn,                              // llvm.nvvm.d2ll.rn
+    nvvm_d2ll_rp,                              // llvm.nvvm.d2ll.rp
+    nvvm_d2ll_rz,                              // llvm.nvvm.d2ll.rz
+    nvvm_d2ui_rm,                              // llvm.nvvm.d2ui.rm
+    nvvm_d2ui_rn,                              // llvm.nvvm.d2ui.rn
+    nvvm_d2ui_rp,                              // llvm.nvvm.d2ui.rp
+    nvvm_d2ui_rz,                              // llvm.nvvm.d2ui.rz
+    nvvm_d2ull_rm,                             // llvm.nvvm.d2ull.rm
+    nvvm_d2ull_rn,                             // llvm.nvvm.d2ull.rn
+    nvvm_d2ull_rp,                             // llvm.nvvm.d2ull.rp
+    nvvm_d2ull_rz,                             // llvm.nvvm.d2ull.rz
+    nvvm_div_approx_f,                         // llvm.nvvm.div.approx.f
+    nvvm_div_approx_ftz_f,                     // llvm.nvvm.div.approx.ftz.f
+    nvvm_div_rm_d,                             // llvm.nvvm.div.rm.d
+    nvvm_div_rm_f,                             // llvm.nvvm.div.rm.f
+    nvvm_div_rm_ftz_f,                         // llvm.nvvm.div.rm.ftz.f
+    nvvm_div_rn_d,                             // llvm.nvvm.div.rn.d
+    nvvm_div_rn_f,                             // llvm.nvvm.div.rn.f
+    nvvm_div_rn_ftz_f,                         // llvm.nvvm.div.rn.ftz.f
+    nvvm_div_rp_d,                             // llvm.nvvm.div.rp.d
+    nvvm_div_rp_f,                             // llvm.nvvm.div.rp.f
+    nvvm_div_rp_ftz_f,                         // llvm.nvvm.div.rp.ftz.f
+    nvvm_div_rz_d,                             // llvm.nvvm.div.rz.d
+    nvvm_div_rz_f,                             // llvm.nvvm.div.rz.f
+    nvvm_div_rz_ftz_f,                         // llvm.nvvm.div.rz.ftz.f
+    nvvm_ex2_approx_d,                         // llvm.nvvm.ex2.approx.d
+    nvvm_ex2_approx_f,                         // llvm.nvvm.ex2.approx.f
+    nvvm_ex2_approx_ftz_f,                     // llvm.nvvm.ex2.approx.ftz.f
+    nvvm_f2h_rn,                               // llvm.nvvm.f2h.rn
+    nvvm_f2h_rn_ftz,                           // llvm.nvvm.f2h.rn.ftz
+    nvvm_f2i_rm,                               // llvm.nvvm.f2i.rm
+    nvvm_f2i_rm_ftz,                           // llvm.nvvm.f2i.rm.ftz
+    nvvm_f2i_rn,                               // llvm.nvvm.f2i.rn
+    nvvm_f2i_rn_ftz,                           // llvm.nvvm.f2i.rn.ftz
+    nvvm_f2i_rp,                               // llvm.nvvm.f2i.rp
+    nvvm_f2i_rp_ftz,                           // llvm.nvvm.f2i.rp.ftz
+    nvvm_f2i_rz,                               // llvm.nvvm.f2i.rz
+    nvvm_f2i_rz_ftz,                           // llvm.nvvm.f2i.rz.ftz
+    nvvm_f2ll_rm,                              // llvm.nvvm.f2ll.rm
+    nvvm_f2ll_rm_ftz,                          // llvm.nvvm.f2ll.rm.ftz
+    nvvm_f2ll_rn,                              // llvm.nvvm.f2ll.rn
+    nvvm_f2ll_rn_ftz,                          // llvm.nvvm.f2ll.rn.ftz
+    nvvm_f2ll_rp,                              // llvm.nvvm.f2ll.rp
+    nvvm_f2ll_rp_ftz,                          // llvm.nvvm.f2ll.rp.ftz
+    nvvm_f2ll_rz,                              // llvm.nvvm.f2ll.rz
+    nvvm_f2ll_rz_ftz,                          // llvm.nvvm.f2ll.rz.ftz
+    nvvm_f2ui_rm,                              // llvm.nvvm.f2ui.rm
+    nvvm_f2ui_rm_ftz,                          // llvm.nvvm.f2ui.rm.ftz
+    nvvm_f2ui_rn,                              // llvm.nvvm.f2ui.rn
+    nvvm_f2ui_rn_ftz,                          // llvm.nvvm.f2ui.rn.ftz
+    nvvm_f2ui_rp,                              // llvm.nvvm.f2ui.rp
+    nvvm_f2ui_rp_ftz,                          // llvm.nvvm.f2ui.rp.ftz
+    nvvm_f2ui_rz,                              // llvm.nvvm.f2ui.rz
+    nvvm_f2ui_rz_ftz,                          // llvm.nvvm.f2ui.rz.ftz
+    nvvm_f2ull_rm,                             // llvm.nvvm.f2ull.rm
+    nvvm_f2ull_rm_ftz,                         // llvm.nvvm.f2ull.rm.ftz
+    nvvm_f2ull_rn,                             // llvm.nvvm.f2ull.rn
+    nvvm_f2ull_rn_ftz,                         // llvm.nvvm.f2ull.rn.ftz
+    nvvm_f2ull_rp,                             // llvm.nvvm.f2ull.rp
+    nvvm_f2ull_rp_ftz,                         // llvm.nvvm.f2ull.rp.ftz
+    nvvm_f2ull_rz,                             // llvm.nvvm.f2ull.rz
+    nvvm_f2ull_rz_ftz,                         // llvm.nvvm.f2ull.rz.ftz
+    nvvm_fabs_d,                               // llvm.nvvm.fabs.d
+    nvvm_fabs_f,                               // llvm.nvvm.fabs.f
+    nvvm_fabs_ftz_f,                           // llvm.nvvm.fabs.ftz.f
+    nvvm_floor_d,                              // llvm.nvvm.floor.d
+    nvvm_floor_f,                              // llvm.nvvm.floor.f
+    nvvm_floor_ftz_f,                          // llvm.nvvm.floor.ftz.f
+    nvvm_fma_rm_d,                             // llvm.nvvm.fma.rm.d
+    nvvm_fma_rm_f,                             // llvm.nvvm.fma.rm.f
+    nvvm_fma_rm_ftz_f,                         // llvm.nvvm.fma.rm.ftz.f
+    nvvm_fma_rn_d,                             // llvm.nvvm.fma.rn.d
+    nvvm_fma_rn_f,                             // llvm.nvvm.fma.rn.f
+    nvvm_fma_rn_ftz_f,                         // llvm.nvvm.fma.rn.ftz.f
+    nvvm_fma_rp_d,                             // llvm.nvvm.fma.rp.d
+    nvvm_fma_rp_f,                             // llvm.nvvm.fma.rp.f
+    nvvm_fma_rp_ftz_f,                         // llvm.nvvm.fma.rp.ftz.f
+    nvvm_fma_rz_d,                             // llvm.nvvm.fma.rz.d
+    nvvm_fma_rz_f,                             // llvm.nvvm.fma.rz.f
+    nvvm_fma_rz_ftz_f,                         // llvm.nvvm.fma.rz.ftz.f
+    nvvm_fmax_d,                               // llvm.nvvm.fmax.d
+    nvvm_fmax_f,                               // llvm.nvvm.fmax.f
+    nvvm_fmax_ftz_f,                           // llvm.nvvm.fmax.ftz.f
+    nvvm_fmin_d,                               // llvm.nvvm.fmin.d
+    nvvm_fmin_f,                               // llvm.nvvm.fmin.f
+    nvvm_fmin_ftz_f,                           // llvm.nvvm.fmin.ftz.f
+    nvvm_fns,                                  // llvm.nvvm.fns
+    nvvm_i2d_rm,                               // llvm.nvvm.i2d.rm
+    nvvm_i2d_rn,                               // llvm.nvvm.i2d.rn
+    nvvm_i2d_rp,                               // llvm.nvvm.i2d.rp
+    nvvm_i2d_rz,                               // llvm.nvvm.i2d.rz
+    nvvm_i2f_rm,                               // llvm.nvvm.i2f.rm
+    nvvm_i2f_rn,                               // llvm.nvvm.i2f.rn
+    nvvm_i2f_rp,                               // llvm.nvvm.i2f.rp
+    nvvm_i2f_rz,                               // llvm.nvvm.i2f.rz
+    nvvm_isspacep_const,                       // llvm.nvvm.isspacep.const
+    nvvm_isspacep_global,                      // llvm.nvvm.isspacep.global
+    nvvm_isspacep_local,                       // llvm.nvvm.isspacep.local
+    nvvm_isspacep_shared,                      // llvm.nvvm.isspacep.shared
+    nvvm_istypep_sampler,                      // llvm.nvvm.istypep.sampler
+    nvvm_istypep_surface,                      // llvm.nvvm.istypep.surface
+    nvvm_istypep_texture,                      // llvm.nvvm.istypep.texture
+    nvvm_ldg_global_f,                         // llvm.nvvm.ldg.global.f
+    nvvm_ldg_global_i,                         // llvm.nvvm.ldg.global.i
+    nvvm_ldg_global_p,                         // llvm.nvvm.ldg.global.p
+    nvvm_ldu_global_f,                         // llvm.nvvm.ldu.global.f
+    nvvm_ldu_global_i,                         // llvm.nvvm.ldu.global.i
+    nvvm_ldu_global_p,                         // llvm.nvvm.ldu.global.p
+    nvvm_lg2_approx_d,                         // llvm.nvvm.lg2.approx.d
+    nvvm_lg2_approx_f,                         // llvm.nvvm.lg2.approx.f
+    nvvm_lg2_approx_ftz_f,                     // llvm.nvvm.lg2.approx.ftz.f
+    nvvm_ll2d_rm,                              // llvm.nvvm.ll2d.rm
+    nvvm_ll2d_rn,                              // llvm.nvvm.ll2d.rn
+    nvvm_ll2d_rp,                              // llvm.nvvm.ll2d.rp
+    nvvm_ll2d_rz,                              // llvm.nvvm.ll2d.rz
+    nvvm_ll2f_rm,                              // llvm.nvvm.ll2f.rm
+    nvvm_ll2f_rn,                              // llvm.nvvm.ll2f.rn
+    nvvm_ll2f_rp,                              // llvm.nvvm.ll2f.rp
+    nvvm_ll2f_rz,                              // llvm.nvvm.ll2f.rz
+    nvvm_lohi_i2d,                             // llvm.nvvm.lohi.i2d
+    nvvm_match_all_sync_i32p,                  // llvm.nvvm.match.all.sync.i32p
+    nvvm_match_all_sync_i64p,                  // llvm.nvvm.match.all.sync.i64p
+    nvvm_match_any_sync_i32,                   // llvm.nvvm.match.any.sync.i32
+    nvvm_match_any_sync_i64,                   // llvm.nvvm.match.any.sync.i64
+    nvvm_membar_cta,                           // llvm.nvvm.membar.cta
+    nvvm_membar_gl,                            // llvm.nvvm.membar.gl
+    nvvm_membar_sys,                           // llvm.nvvm.membar.sys
+    nvvm_move_double,                          // llvm.nvvm.move.double
+    nvvm_move_float,                           // llvm.nvvm.move.float
+    nvvm_move_i16,                             // llvm.nvvm.move.i16
+    nvvm_move_i32,                             // llvm.nvvm.move.i32
+    nvvm_move_i64,                             // llvm.nvvm.move.i64
+    nvvm_move_ptr,                             // llvm.nvvm.move.ptr
+    nvvm_mul_rm_d,                             // llvm.nvvm.mul.rm.d
+    nvvm_mul_rm_f,                             // llvm.nvvm.mul.rm.f
+    nvvm_mul_rm_ftz_f,                         // llvm.nvvm.mul.rm.ftz.f
+    nvvm_mul_rn_d,                             // llvm.nvvm.mul.rn.d
+    nvvm_mul_rn_f,                             // llvm.nvvm.mul.rn.f
+    nvvm_mul_rn_ftz_f,                         // llvm.nvvm.mul.rn.ftz.f
+    nvvm_mul_rp_d,                             // llvm.nvvm.mul.rp.d
+    nvvm_mul_rp_f,                             // llvm.nvvm.mul.rp.f
+    nvvm_mul_rp_ftz_f,                         // llvm.nvvm.mul.rp.ftz.f
+    nvvm_mul_rz_d,                             // llvm.nvvm.mul.rz.d
+    nvvm_mul_rz_f,                             // llvm.nvvm.mul.rz.f
+    nvvm_mul_rz_ftz_f,                         // llvm.nvvm.mul.rz.ftz.f
+    nvvm_mul24_i,                              // llvm.nvvm.mul24.i
+    nvvm_mul24_ui,                             // llvm.nvvm.mul24.ui
+    nvvm_mulhi_i,                              // llvm.nvvm.mulhi.i
+    nvvm_mulhi_ll,                             // llvm.nvvm.mulhi.ll
+    nvvm_mulhi_ui,                             // llvm.nvvm.mulhi.ui
+    nvvm_mulhi_ull,                            // llvm.nvvm.mulhi.ull
+    nvvm_prmt,                                 // llvm.nvvm.prmt
+    nvvm_ptr_constant_to_gen,                  // llvm.nvvm.ptr.constant.to.gen
+    nvvm_ptr_gen_to_constant,                  // llvm.nvvm.ptr.gen.to.constant
+    nvvm_ptr_gen_to_global,                    // llvm.nvvm.ptr.gen.to.global
+    nvvm_ptr_gen_to_local,                     // llvm.nvvm.ptr.gen.to.local
+    nvvm_ptr_gen_to_param,                     // llvm.nvvm.ptr.gen.to.param
+    nvvm_ptr_gen_to_shared,                    // llvm.nvvm.ptr.gen.to.shared
+    nvvm_ptr_global_to_gen,                    // llvm.nvvm.ptr.global.to.gen
+    nvvm_ptr_local_to_gen,                     // llvm.nvvm.ptr.local.to.gen
+    nvvm_ptr_shared_to_gen,                    // llvm.nvvm.ptr.shared.to.gen
+    nvvm_rcp_approx_ftz_d,                     // llvm.nvvm.rcp.approx.ftz.d
+    nvvm_rcp_rm_d,                             // llvm.nvvm.rcp.rm.d
+    nvvm_rcp_rm_f,                             // llvm.nvvm.rcp.rm.f
+    nvvm_rcp_rm_ftz_f,                         // llvm.nvvm.rcp.rm.ftz.f
+    nvvm_rcp_rn_d,                             // llvm.nvvm.rcp.rn.d
+    nvvm_rcp_rn_f,                             // llvm.nvvm.rcp.rn.f
+    nvvm_rcp_rn_ftz_f,                         // llvm.nvvm.rcp.rn.ftz.f
+    nvvm_rcp_rp_d,                             // llvm.nvvm.rcp.rp.d
+    nvvm_rcp_rp_f,                             // llvm.nvvm.rcp.rp.f
+    nvvm_rcp_rp_ftz_f,                         // llvm.nvvm.rcp.rp.ftz.f
+    nvvm_rcp_rz_d,                             // llvm.nvvm.rcp.rz.d
+    nvvm_rcp_rz_f,                             // llvm.nvvm.rcp.rz.f
+    nvvm_rcp_rz_ftz_f,                         // llvm.nvvm.rcp.rz.ftz.f
+    nvvm_read_ptx_sreg_clock,                  // llvm.nvvm.read.ptx.sreg.clock
+    nvvm_read_ptx_sreg_clock64,                // llvm.nvvm.read.ptx.sreg.clock64
+    nvvm_read_ptx_sreg_ctaid_w,                // llvm.nvvm.read.ptx.sreg.ctaid.w
+    nvvm_read_ptx_sreg_ctaid_x,                // llvm.nvvm.read.ptx.sreg.ctaid.x
+    nvvm_read_ptx_sreg_ctaid_y,                // llvm.nvvm.read.ptx.sreg.ctaid.y
+    nvvm_read_ptx_sreg_ctaid_z,                // llvm.nvvm.read.ptx.sreg.ctaid.z
+    nvvm_read_ptx_sreg_envreg0,                // llvm.nvvm.read.ptx.sreg.envreg0
+    nvvm_read_ptx_sreg_envreg1,                // llvm.nvvm.read.ptx.sreg.envreg1
+    nvvm_read_ptx_sreg_envreg10,               // llvm.nvvm.read.ptx.sreg.envreg10
+    nvvm_read_ptx_sreg_envreg11,               // llvm.nvvm.read.ptx.sreg.envreg11
+    nvvm_read_ptx_sreg_envreg12,               // llvm.nvvm.read.ptx.sreg.envreg12
+    nvvm_read_ptx_sreg_envreg13,               // llvm.nvvm.read.ptx.sreg.envreg13
+    nvvm_read_ptx_sreg_envreg14,               // llvm.nvvm.read.ptx.sreg.envreg14
+    nvvm_read_ptx_sreg_envreg15,               // llvm.nvvm.read.ptx.sreg.envreg15
+    nvvm_read_ptx_sreg_envreg16,               // llvm.nvvm.read.ptx.sreg.envreg16
+    nvvm_read_ptx_sreg_envreg17,               // llvm.nvvm.read.ptx.sreg.envreg17
+    nvvm_read_ptx_sreg_envreg18,               // llvm.nvvm.read.ptx.sreg.envreg18
+    nvvm_read_ptx_sreg_envreg19,               // llvm.nvvm.read.ptx.sreg.envreg19
+    nvvm_read_ptx_sreg_envreg2,                // llvm.nvvm.read.ptx.sreg.envreg2
+    nvvm_read_ptx_sreg_envreg20,               // llvm.nvvm.read.ptx.sreg.envreg20
+    nvvm_read_ptx_sreg_envreg21,               // llvm.nvvm.read.ptx.sreg.envreg21
+    nvvm_read_ptx_sreg_envreg22,               // llvm.nvvm.read.ptx.sreg.envreg22
+    nvvm_read_ptx_sreg_envreg23,               // llvm.nvvm.read.ptx.sreg.envreg23
+    nvvm_read_ptx_sreg_envreg24,               // llvm.nvvm.read.ptx.sreg.envreg24
+    nvvm_read_ptx_sreg_envreg25,               // llvm.nvvm.read.ptx.sreg.envreg25
+    nvvm_read_ptx_sreg_envreg26,               // llvm.nvvm.read.ptx.sreg.envreg26
+    nvvm_read_ptx_sreg_envreg27,               // llvm.nvvm.read.ptx.sreg.envreg27
+    nvvm_read_ptx_sreg_envreg28,               // llvm.nvvm.read.ptx.sreg.envreg28
+    nvvm_read_ptx_sreg_envreg29,               // llvm.nvvm.read.ptx.sreg.envreg29
+    nvvm_read_ptx_sreg_envreg3,                // llvm.nvvm.read.ptx.sreg.envreg3
+    nvvm_read_ptx_sreg_envreg30,               // llvm.nvvm.read.ptx.sreg.envreg30
+    nvvm_read_ptx_sreg_envreg31,               // llvm.nvvm.read.ptx.sreg.envreg31
+    nvvm_read_ptx_sreg_envreg4,                // llvm.nvvm.read.ptx.sreg.envreg4
+    nvvm_read_ptx_sreg_envreg5,                // llvm.nvvm.read.ptx.sreg.envreg5
+    nvvm_read_ptx_sreg_envreg6,                // llvm.nvvm.read.ptx.sreg.envreg6
+    nvvm_read_ptx_sreg_envreg7,                // llvm.nvvm.read.ptx.sreg.envreg7
+    nvvm_read_ptx_sreg_envreg8,                // llvm.nvvm.read.ptx.sreg.envreg8
+    nvvm_read_ptx_sreg_envreg9,                // llvm.nvvm.read.ptx.sreg.envreg9
+    nvvm_read_ptx_sreg_gridid,                 // llvm.nvvm.read.ptx.sreg.gridid
+    nvvm_read_ptx_sreg_laneid,                 // llvm.nvvm.read.ptx.sreg.laneid
+    nvvm_read_ptx_sreg_lanemask_eq,            // llvm.nvvm.read.ptx.sreg.lanemask.eq
+    nvvm_read_ptx_sreg_lanemask_ge,            // llvm.nvvm.read.ptx.sreg.lanemask.ge
+    nvvm_read_ptx_sreg_lanemask_gt,            // llvm.nvvm.read.ptx.sreg.lanemask.gt
+    nvvm_read_ptx_sreg_lanemask_le,            // llvm.nvvm.read.ptx.sreg.lanemask.le
+    nvvm_read_ptx_sreg_lanemask_lt,            // llvm.nvvm.read.ptx.sreg.lanemask.lt
+    nvvm_read_ptx_sreg_nctaid_w,               // llvm.nvvm.read.ptx.sreg.nctaid.w
+    nvvm_read_ptx_sreg_nctaid_x,               // llvm.nvvm.read.ptx.sreg.nctaid.x
+    nvvm_read_ptx_sreg_nctaid_y,               // llvm.nvvm.read.ptx.sreg.nctaid.y
+    nvvm_read_ptx_sreg_nctaid_z,               // llvm.nvvm.read.ptx.sreg.nctaid.z
+    nvvm_read_ptx_sreg_nsmid,                  // llvm.nvvm.read.ptx.sreg.nsmid
+    nvvm_read_ptx_sreg_ntid_w,                 // llvm.nvvm.read.ptx.sreg.ntid.w
+    nvvm_read_ptx_sreg_ntid_x,                 // llvm.nvvm.read.ptx.sreg.ntid.x
+    nvvm_read_ptx_sreg_ntid_y,                 // llvm.nvvm.read.ptx.sreg.ntid.y
+    nvvm_read_ptx_sreg_ntid_z,                 // llvm.nvvm.read.ptx.sreg.ntid.z
+    nvvm_read_ptx_sreg_nwarpid,                // llvm.nvvm.read.ptx.sreg.nwarpid
+    nvvm_read_ptx_sreg_pm0,                    // llvm.nvvm.read.ptx.sreg.pm0
+    nvvm_read_ptx_sreg_pm1,                    // llvm.nvvm.read.ptx.sreg.pm1
+    nvvm_read_ptx_sreg_pm2,                    // llvm.nvvm.read.ptx.sreg.pm2
+    nvvm_read_ptx_sreg_pm3,                    // llvm.nvvm.read.ptx.sreg.pm3
+    nvvm_read_ptx_sreg_smid,                   // llvm.nvvm.read.ptx.sreg.smid
+    nvvm_read_ptx_sreg_tid_w,                  // llvm.nvvm.read.ptx.sreg.tid.w
+    nvvm_read_ptx_sreg_tid_x,                  // llvm.nvvm.read.ptx.sreg.tid.x
+    nvvm_read_ptx_sreg_tid_y,                  // llvm.nvvm.read.ptx.sreg.tid.y
+    nvvm_read_ptx_sreg_tid_z,                  // llvm.nvvm.read.ptx.sreg.tid.z
+    nvvm_read_ptx_sreg_warpid,                 // llvm.nvvm.read.ptx.sreg.warpid
+    nvvm_read_ptx_sreg_warpsize,               // llvm.nvvm.read.ptx.sreg.warpsize
+    nvvm_reflect,                              // llvm.nvvm.reflect
+    nvvm_rotate_b32,                           // llvm.nvvm.rotate.b32
+    nvvm_rotate_b64,                           // llvm.nvvm.rotate.b64
+    nvvm_rotate_right_b64,                     // llvm.nvvm.rotate.right.b64
+    nvvm_round_d,                              // llvm.nvvm.round.d
+    nvvm_round_f,                              // llvm.nvvm.round.f
+    nvvm_round_ftz_f,                          // llvm.nvvm.round.ftz.f
+    nvvm_rsqrt_approx_d,                       // llvm.nvvm.rsqrt.approx.d
+    nvvm_rsqrt_approx_f,                       // llvm.nvvm.rsqrt.approx.f
+    nvvm_rsqrt_approx_ftz_f,                   // llvm.nvvm.rsqrt.approx.ftz.f
+    nvvm_sad_i,                                // llvm.nvvm.sad.i
+    nvvm_sad_ui,                               // llvm.nvvm.sad.ui
+    nvvm_saturate_d,                           // llvm.nvvm.saturate.d
+    nvvm_saturate_f,                           // llvm.nvvm.saturate.f
+    nvvm_saturate_ftz_f,                       // llvm.nvvm.saturate.ftz.f
+    nvvm_shfl_bfly_f32,                        // llvm.nvvm.shfl.bfly.f32
+    nvvm_shfl_bfly_i32,                        // llvm.nvvm.shfl.bfly.i32
+    nvvm_shfl_down_f32,                        // llvm.nvvm.shfl.down.f32
+    nvvm_shfl_down_i32,                        // llvm.nvvm.shfl.down.i32
+    nvvm_shfl_idx_f32,                         // llvm.nvvm.shfl.idx.f32
+    nvvm_shfl_idx_i32,                         // llvm.nvvm.shfl.idx.i32
+    nvvm_shfl_sync_bfly_f32,                   // llvm.nvvm.shfl.sync.bfly.f32
+    nvvm_shfl_sync_bfly_i32,                   // llvm.nvvm.shfl.sync.bfly.i32
+    nvvm_shfl_sync_down_f32,                   // llvm.nvvm.shfl.sync.down.f32
+    nvvm_shfl_sync_down_i32,                   // llvm.nvvm.shfl.sync.down.i32
+    nvvm_shfl_sync_idx_f32,                    // llvm.nvvm.shfl.sync.idx.f32
+    nvvm_shfl_sync_idx_i32,                    // llvm.nvvm.shfl.sync.idx.i32
+    nvvm_shfl_sync_up_f32,                     // llvm.nvvm.shfl.sync.up.f32
+    nvvm_shfl_sync_up_i32,                     // llvm.nvvm.shfl.sync.up.i32
+    nvvm_shfl_up_f32,                          // llvm.nvvm.shfl.up.f32
+    nvvm_shfl_up_i32,                          // llvm.nvvm.shfl.up.i32
+    nvvm_sin_approx_f,                         // llvm.nvvm.sin.approx.f
+    nvvm_sin_approx_ftz_f,                     // llvm.nvvm.sin.approx.ftz.f
+    nvvm_sqrt_approx_f,                        // llvm.nvvm.sqrt.approx.f
+    nvvm_sqrt_approx_ftz_f,                    // llvm.nvvm.sqrt.approx.ftz.f
+    nvvm_sqrt_f,                               // llvm.nvvm.sqrt.f
+    nvvm_sqrt_rm_d,                            // llvm.nvvm.sqrt.rm.d
+    nvvm_sqrt_rm_f,                            // llvm.nvvm.sqrt.rm.f
+    nvvm_sqrt_rm_ftz_f,                        // llvm.nvvm.sqrt.rm.ftz.f
+    nvvm_sqrt_rn_d,                            // llvm.nvvm.sqrt.rn.d
+    nvvm_sqrt_rn_f,                            // llvm.nvvm.sqrt.rn.f
+    nvvm_sqrt_rn_ftz_f,                        // llvm.nvvm.sqrt.rn.ftz.f
+    nvvm_sqrt_rp_d,                            // llvm.nvvm.sqrt.rp.d
+    nvvm_sqrt_rp_f,                            // llvm.nvvm.sqrt.rp.f
+    nvvm_sqrt_rp_ftz_f,                        // llvm.nvvm.sqrt.rp.ftz.f
+    nvvm_sqrt_rz_d,                            // llvm.nvvm.sqrt.rz.d
+    nvvm_sqrt_rz_f,                            // llvm.nvvm.sqrt.rz.f
+    nvvm_sqrt_rz_ftz_f,                        // llvm.nvvm.sqrt.rz.ftz.f
+    nvvm_suld_1d_array_i16_clamp,              // llvm.nvvm.suld.1d.array.i16.clamp
+    nvvm_suld_1d_array_i16_trap,               // llvm.nvvm.suld.1d.array.i16.trap
+    nvvm_suld_1d_array_i16_zero,               // llvm.nvvm.suld.1d.array.i16.zero
+    nvvm_suld_1d_array_i32_clamp,              // llvm.nvvm.suld.1d.array.i32.clamp
+    nvvm_suld_1d_array_i32_trap,               // llvm.nvvm.suld.1d.array.i32.trap
+    nvvm_suld_1d_array_i32_zero,               // llvm.nvvm.suld.1d.array.i32.zero
+    nvvm_suld_1d_array_i64_clamp,              // llvm.nvvm.suld.1d.array.i64.clamp
+    nvvm_suld_1d_array_i64_trap,               // llvm.nvvm.suld.1d.array.i64.trap
+    nvvm_suld_1d_array_i64_zero,               // llvm.nvvm.suld.1d.array.i64.zero
+    nvvm_suld_1d_array_i8_clamp,               // llvm.nvvm.suld.1d.array.i8.clamp
+    nvvm_suld_1d_array_i8_trap,                // llvm.nvvm.suld.1d.array.i8.trap
+    nvvm_suld_1d_array_i8_zero,                // llvm.nvvm.suld.1d.array.i8.zero
+    nvvm_suld_1d_array_v2i16_clamp,            // llvm.nvvm.suld.1d.array.v2i16.clamp
+    nvvm_suld_1d_array_v2i16_trap,             // llvm.nvvm.suld.1d.array.v2i16.trap
+    nvvm_suld_1d_array_v2i16_zero,             // llvm.nvvm.suld.1d.array.v2i16.zero
+    nvvm_suld_1d_array_v2i32_clamp,            // llvm.nvvm.suld.1d.array.v2i32.clamp
+    nvvm_suld_1d_array_v2i32_trap,             // llvm.nvvm.suld.1d.array.v2i32.trap
+    nvvm_suld_1d_array_v2i32_zero,             // llvm.nvvm.suld.1d.array.v2i32.zero
+    nvvm_suld_1d_array_v2i64_clamp,            // llvm.nvvm.suld.1d.array.v2i64.clamp
+    nvvm_suld_1d_array_v2i64_trap,             // llvm.nvvm.suld.1d.array.v2i64.trap
+    nvvm_suld_1d_array_v2i64_zero,             // llvm.nvvm.suld.1d.array.v2i64.zero
+    nvvm_suld_1d_array_v2i8_clamp,             // llvm.nvvm.suld.1d.array.v2i8.clamp
+    nvvm_suld_1d_array_v2i8_trap,              // llvm.nvvm.suld.1d.array.v2i8.trap
+    nvvm_suld_1d_array_v2i8_zero,              // llvm.nvvm.suld.1d.array.v2i8.zero
+    nvvm_suld_1d_array_v4i16_clamp,            // llvm.nvvm.suld.1d.array.v4i16.clamp
+    nvvm_suld_1d_array_v4i16_trap,             // llvm.nvvm.suld.1d.array.v4i16.trap
+    nvvm_suld_1d_array_v4i16_zero,             // llvm.nvvm.suld.1d.array.v4i16.zero
+    nvvm_suld_1d_array_v4i32_clamp,            // llvm.nvvm.suld.1d.array.v4i32.clamp
+    nvvm_suld_1d_array_v4i32_trap,             // llvm.nvvm.suld.1d.array.v4i32.trap
+    nvvm_suld_1d_array_v4i32_zero,             // llvm.nvvm.suld.1d.array.v4i32.zero
+    nvvm_suld_1d_array_v4i8_clamp,             // llvm.nvvm.suld.1d.array.v4i8.clamp
+    nvvm_suld_1d_array_v4i8_trap,              // llvm.nvvm.suld.1d.array.v4i8.trap
+    nvvm_suld_1d_array_v4i8_zero,              // llvm.nvvm.suld.1d.array.v4i8.zero
+    nvvm_suld_1d_i16_clamp,                    // llvm.nvvm.suld.1d.i16.clamp
+    nvvm_suld_1d_i16_trap,                     // llvm.nvvm.suld.1d.i16.trap
+    nvvm_suld_1d_i16_zero,                     // llvm.nvvm.suld.1d.i16.zero
+    nvvm_suld_1d_i32_clamp,                    // llvm.nvvm.suld.1d.i32.clamp
+    nvvm_suld_1d_i32_trap,                     // llvm.nvvm.suld.1d.i32.trap
+    nvvm_suld_1d_i32_zero,                     // llvm.nvvm.suld.1d.i32.zero
+    nvvm_suld_1d_i64_clamp,                    // llvm.nvvm.suld.1d.i64.clamp
+    nvvm_suld_1d_i64_trap,                     // llvm.nvvm.suld.1d.i64.trap
+    nvvm_suld_1d_i64_zero,                     // llvm.nvvm.suld.1d.i64.zero
+    nvvm_suld_1d_i8_clamp,                     // llvm.nvvm.suld.1d.i8.clamp
+    nvvm_suld_1d_i8_trap,                      // llvm.nvvm.suld.1d.i8.trap
+    nvvm_suld_1d_i8_zero,                      // llvm.nvvm.suld.1d.i8.zero
+    nvvm_suld_1d_v2i16_clamp,                  // llvm.nvvm.suld.1d.v2i16.clamp
+    nvvm_suld_1d_v2i16_trap,                   // llvm.nvvm.suld.1d.v2i16.trap
+    nvvm_suld_1d_v2i16_zero,                   // llvm.nvvm.suld.1d.v2i16.zero
+    nvvm_suld_1d_v2i32_clamp,                  // llvm.nvvm.suld.1d.v2i32.clamp
+    nvvm_suld_1d_v2i32_trap,                   // llvm.nvvm.suld.1d.v2i32.trap
+    nvvm_suld_1d_v2i32_zero,                   // llvm.nvvm.suld.1d.v2i32.zero
+    nvvm_suld_1d_v2i64_clamp,                  // llvm.nvvm.suld.1d.v2i64.clamp
+    nvvm_suld_1d_v2i64_trap,                   // llvm.nvvm.suld.1d.v2i64.trap
+    nvvm_suld_1d_v2i64_zero,                   // llvm.nvvm.suld.1d.v2i64.zero
+    nvvm_suld_1d_v2i8_clamp,                   // llvm.nvvm.suld.1d.v2i8.clamp
+    nvvm_suld_1d_v2i8_trap,                    // llvm.nvvm.suld.1d.v2i8.trap
+    nvvm_suld_1d_v2i8_zero,                    // llvm.nvvm.suld.1d.v2i8.zero
+    nvvm_suld_1d_v4i16_clamp,                  // llvm.nvvm.suld.1d.v4i16.clamp
+    nvvm_suld_1d_v4i16_trap,                   // llvm.nvvm.suld.1d.v4i16.trap
+    nvvm_suld_1d_v4i16_zero,                   // llvm.nvvm.suld.1d.v4i16.zero
+    nvvm_suld_1d_v4i32_clamp,                  // llvm.nvvm.suld.1d.v4i32.clamp
+    nvvm_suld_1d_v4i32_trap,                   // llvm.nvvm.suld.1d.v4i32.trap
+    nvvm_suld_1d_v4i32_zero,                   // llvm.nvvm.suld.1d.v4i32.zero
+    nvvm_suld_1d_v4i8_clamp,                   // llvm.nvvm.suld.1d.v4i8.clamp
+    nvvm_suld_1d_v4i8_trap,                    // llvm.nvvm.suld.1d.v4i8.trap
+    nvvm_suld_1d_v4i8_zero,                    // llvm.nvvm.suld.1d.v4i8.zero
+    nvvm_suld_2d_array_i16_clamp,              // llvm.nvvm.suld.2d.array.i16.clamp
+    nvvm_suld_2d_array_i16_trap,               // llvm.nvvm.suld.2d.array.i16.trap
+    nvvm_suld_2d_array_i16_zero,               // llvm.nvvm.suld.2d.array.i16.zero
+    nvvm_suld_2d_array_i32_clamp,              // llvm.nvvm.suld.2d.array.i32.clamp
+    nvvm_suld_2d_array_i32_trap,               // llvm.nvvm.suld.2d.array.i32.trap
+    nvvm_suld_2d_array_i32_zero,               // llvm.nvvm.suld.2d.array.i32.zero
+    nvvm_suld_2d_array_i64_clamp,              // llvm.nvvm.suld.2d.array.i64.clamp
+    nvvm_suld_2d_array_i64_trap,               // llvm.nvvm.suld.2d.array.i64.trap
+    nvvm_suld_2d_array_i64_zero,               // llvm.nvvm.suld.2d.array.i64.zero
+    nvvm_suld_2d_array_i8_clamp,               // llvm.nvvm.suld.2d.array.i8.clamp
+    nvvm_suld_2d_array_i8_trap,                // llvm.nvvm.suld.2d.array.i8.trap
+    nvvm_suld_2d_array_i8_zero,                // llvm.nvvm.suld.2d.array.i8.zero
+    nvvm_suld_2d_array_v2i16_clamp,            // llvm.nvvm.suld.2d.array.v2i16.clamp
+    nvvm_suld_2d_array_v2i16_trap,             // llvm.nvvm.suld.2d.array.v2i16.trap
+    nvvm_suld_2d_array_v2i16_zero,             // llvm.nvvm.suld.2d.array.v2i16.zero
+    nvvm_suld_2d_array_v2i32_clamp,            // llvm.nvvm.suld.2d.array.v2i32.clamp
+    nvvm_suld_2d_array_v2i32_trap,             // llvm.nvvm.suld.2d.array.v2i32.trap
+    nvvm_suld_2d_array_v2i32_zero,             // llvm.nvvm.suld.2d.array.v2i32.zero
+    nvvm_suld_2d_array_v2i64_clamp,            // llvm.nvvm.suld.2d.array.v2i64.clamp
+    nvvm_suld_2d_array_v2i64_trap,             // llvm.nvvm.suld.2d.array.v2i64.trap
+    nvvm_suld_2d_array_v2i64_zero,             // llvm.nvvm.suld.2d.array.v2i64.zero
+    nvvm_suld_2d_array_v2i8_clamp,             // llvm.nvvm.suld.2d.array.v2i8.clamp
+    nvvm_suld_2d_array_v2i8_trap,              // llvm.nvvm.suld.2d.array.v2i8.trap
+    nvvm_suld_2d_array_v2i8_zero,              // llvm.nvvm.suld.2d.array.v2i8.zero
+    nvvm_suld_2d_array_v4i16_clamp,            // llvm.nvvm.suld.2d.array.v4i16.clamp
+    nvvm_suld_2d_array_v4i16_trap,             // llvm.nvvm.suld.2d.array.v4i16.trap
+    nvvm_suld_2d_array_v4i16_zero,             // llvm.nvvm.suld.2d.array.v4i16.zero
+    nvvm_suld_2d_array_v4i32_clamp,            // llvm.nvvm.suld.2d.array.v4i32.clamp
+    nvvm_suld_2d_array_v4i32_trap,             // llvm.nvvm.suld.2d.array.v4i32.trap
+    nvvm_suld_2d_array_v4i32_zero,             // llvm.nvvm.suld.2d.array.v4i32.zero
+    nvvm_suld_2d_array_v4i8_clamp,             // llvm.nvvm.suld.2d.array.v4i8.clamp
+    nvvm_suld_2d_array_v4i8_trap,              // llvm.nvvm.suld.2d.array.v4i8.trap
+    nvvm_suld_2d_array_v4i8_zero,              // llvm.nvvm.suld.2d.array.v4i8.zero
+    nvvm_suld_2d_i16_clamp,                    // llvm.nvvm.suld.2d.i16.clamp
+    nvvm_suld_2d_i16_trap,                     // llvm.nvvm.suld.2d.i16.trap
+    nvvm_suld_2d_i16_zero,                     // llvm.nvvm.suld.2d.i16.zero
+    nvvm_suld_2d_i32_clamp,                    // llvm.nvvm.suld.2d.i32.clamp
+    nvvm_suld_2d_i32_trap,                     // llvm.nvvm.suld.2d.i32.trap
+    nvvm_suld_2d_i32_zero,                     // llvm.nvvm.suld.2d.i32.zero
+    nvvm_suld_2d_i64_clamp,                    // llvm.nvvm.suld.2d.i64.clamp
+    nvvm_suld_2d_i64_trap,                     // llvm.nvvm.suld.2d.i64.trap
+    nvvm_suld_2d_i64_zero,                     // llvm.nvvm.suld.2d.i64.zero
+    nvvm_suld_2d_i8_clamp,                     // llvm.nvvm.suld.2d.i8.clamp
+    nvvm_suld_2d_i8_trap,                      // llvm.nvvm.suld.2d.i8.trap
+    nvvm_suld_2d_i8_zero,                      // llvm.nvvm.suld.2d.i8.zero
+    nvvm_suld_2d_v2i16_clamp,                  // llvm.nvvm.suld.2d.v2i16.clamp
+    nvvm_suld_2d_v2i16_trap,                   // llvm.nvvm.suld.2d.v2i16.trap
+    nvvm_suld_2d_v2i16_zero,                   // llvm.nvvm.suld.2d.v2i16.zero
+    nvvm_suld_2d_v2i32_clamp,                  // llvm.nvvm.suld.2d.v2i32.clamp
+    nvvm_suld_2d_v2i32_trap,                   // llvm.nvvm.suld.2d.v2i32.trap
+    nvvm_suld_2d_v2i32_zero,                   // llvm.nvvm.suld.2d.v2i32.zero
+    nvvm_suld_2d_v2i64_clamp,                  // llvm.nvvm.suld.2d.v2i64.clamp
+    nvvm_suld_2d_v2i64_trap,                   // llvm.nvvm.suld.2d.v2i64.trap
+    nvvm_suld_2d_v2i64_zero,                   // llvm.nvvm.suld.2d.v2i64.zero
+    nvvm_suld_2d_v2i8_clamp,                   // llvm.nvvm.suld.2d.v2i8.clamp
+    nvvm_suld_2d_v2i8_trap,                    // llvm.nvvm.suld.2d.v2i8.trap
+    nvvm_suld_2d_v2i8_zero,                    // llvm.nvvm.suld.2d.v2i8.zero
+    nvvm_suld_2d_v4i16_clamp,                  // llvm.nvvm.suld.2d.v4i16.clamp
+    nvvm_suld_2d_v4i16_trap,                   // llvm.nvvm.suld.2d.v4i16.trap
+    nvvm_suld_2d_v4i16_zero,                   // llvm.nvvm.suld.2d.v4i16.zero
+    nvvm_suld_2d_v4i32_clamp,                  // llvm.nvvm.suld.2d.v4i32.clamp
+    nvvm_suld_2d_v4i32_trap,                   // llvm.nvvm.suld.2d.v4i32.trap
+    nvvm_suld_2d_v4i32_zero,                   // llvm.nvvm.suld.2d.v4i32.zero
+    nvvm_suld_2d_v4i8_clamp,                   // llvm.nvvm.suld.2d.v4i8.clamp
+    nvvm_suld_2d_v4i8_trap,                    // llvm.nvvm.suld.2d.v4i8.trap
+    nvvm_suld_2d_v4i8_zero,                    // llvm.nvvm.suld.2d.v4i8.zero
+    nvvm_suld_3d_i16_clamp,                    // llvm.nvvm.suld.3d.i16.clamp
+    nvvm_suld_3d_i16_trap,                     // llvm.nvvm.suld.3d.i16.trap
+    nvvm_suld_3d_i16_zero,                     // llvm.nvvm.suld.3d.i16.zero
+    nvvm_suld_3d_i32_clamp,                    // llvm.nvvm.suld.3d.i32.clamp
+    nvvm_suld_3d_i32_trap,                     // llvm.nvvm.suld.3d.i32.trap
+    nvvm_suld_3d_i32_zero,                     // llvm.nvvm.suld.3d.i32.zero
+    nvvm_suld_3d_i64_clamp,                    // llvm.nvvm.suld.3d.i64.clamp
+    nvvm_suld_3d_i64_trap,                     // llvm.nvvm.suld.3d.i64.trap
+    nvvm_suld_3d_i64_zero,                     // llvm.nvvm.suld.3d.i64.zero
+    nvvm_suld_3d_i8_clamp,                     // llvm.nvvm.suld.3d.i8.clamp
+    nvvm_suld_3d_i8_trap,                      // llvm.nvvm.suld.3d.i8.trap
+    nvvm_suld_3d_i8_zero,                      // llvm.nvvm.suld.3d.i8.zero
+    nvvm_suld_3d_v2i16_clamp,                  // llvm.nvvm.suld.3d.v2i16.clamp
+    nvvm_suld_3d_v2i16_trap,                   // llvm.nvvm.suld.3d.v2i16.trap
+    nvvm_suld_3d_v2i16_zero,                   // llvm.nvvm.suld.3d.v2i16.zero
+    nvvm_suld_3d_v2i32_clamp,                  // llvm.nvvm.suld.3d.v2i32.clamp
+    nvvm_suld_3d_v2i32_trap,                   // llvm.nvvm.suld.3d.v2i32.trap
+    nvvm_suld_3d_v2i32_zero,                   // llvm.nvvm.suld.3d.v2i32.zero
+    nvvm_suld_3d_v2i64_clamp,                  // llvm.nvvm.suld.3d.v2i64.clamp
+    nvvm_suld_3d_v2i64_trap,                   // llvm.nvvm.suld.3d.v2i64.trap
+    nvvm_suld_3d_v2i64_zero,                   // llvm.nvvm.suld.3d.v2i64.zero
+    nvvm_suld_3d_v2i8_clamp,                   // llvm.nvvm.suld.3d.v2i8.clamp
+    nvvm_suld_3d_v2i8_trap,                    // llvm.nvvm.suld.3d.v2i8.trap
+    nvvm_suld_3d_v2i8_zero,                    // llvm.nvvm.suld.3d.v2i8.zero
+    nvvm_suld_3d_v4i16_clamp,                  // llvm.nvvm.suld.3d.v4i16.clamp
+    nvvm_suld_3d_v4i16_trap,                   // llvm.nvvm.suld.3d.v4i16.trap
+    nvvm_suld_3d_v4i16_zero,                   // llvm.nvvm.suld.3d.v4i16.zero
+    nvvm_suld_3d_v4i32_clamp,                  // llvm.nvvm.suld.3d.v4i32.clamp
+    nvvm_suld_3d_v4i32_trap,                   // llvm.nvvm.suld.3d.v4i32.trap
+    nvvm_suld_3d_v4i32_zero,                   // llvm.nvvm.suld.3d.v4i32.zero
+    nvvm_suld_3d_v4i8_clamp,                   // llvm.nvvm.suld.3d.v4i8.clamp
+    nvvm_suld_3d_v4i8_trap,                    // llvm.nvvm.suld.3d.v4i8.trap
+    nvvm_suld_3d_v4i8_zero,                    // llvm.nvvm.suld.3d.v4i8.zero
+    nvvm_suq_array_size,                       // llvm.nvvm.suq.array.size
+    nvvm_suq_channel_data_type,                // llvm.nvvm.suq.channel.data.type
+    nvvm_suq_channel_order,                    // llvm.nvvm.suq.channel.order
+    nvvm_suq_depth,                            // llvm.nvvm.suq.depth
+    nvvm_suq_height,                           // llvm.nvvm.suq.height
+    nvvm_suq_width,                            // llvm.nvvm.suq.width
+    nvvm_sust_b_1d_array_i16_clamp,            // llvm.nvvm.sust.b.1d.array.i16.clamp
+    nvvm_sust_b_1d_array_i16_trap,             // llvm.nvvm.sust.b.1d.array.i16.trap
+    nvvm_sust_b_1d_array_i16_zero,             // llvm.nvvm.sust.b.1d.array.i16.zero
+    nvvm_sust_b_1d_array_i32_clamp,            // llvm.nvvm.sust.b.1d.array.i32.clamp
+    nvvm_sust_b_1d_array_i32_trap,             // llvm.nvvm.sust.b.1d.array.i32.trap
+    nvvm_sust_b_1d_array_i32_zero,             // llvm.nvvm.sust.b.1d.array.i32.zero
+    nvvm_sust_b_1d_array_i64_clamp,            // llvm.nvvm.sust.b.1d.array.i64.clamp
+    nvvm_sust_b_1d_array_i64_trap,             // llvm.nvvm.sust.b.1d.array.i64.trap
+    nvvm_sust_b_1d_array_i64_zero,             // llvm.nvvm.sust.b.1d.array.i64.zero
+    nvvm_sust_b_1d_array_i8_clamp,             // llvm.nvvm.sust.b.1d.array.i8.clamp
+    nvvm_sust_b_1d_array_i8_trap,              // llvm.nvvm.sust.b.1d.array.i8.trap
+    nvvm_sust_b_1d_array_i8_zero,              // llvm.nvvm.sust.b.1d.array.i8.zero
+    nvvm_sust_b_1d_array_v2i16_clamp,          // llvm.nvvm.sust.b.1d.array.v2i16.clamp
+    nvvm_sust_b_1d_array_v2i16_trap,           // llvm.nvvm.sust.b.1d.array.v2i16.trap
+    nvvm_sust_b_1d_array_v2i16_zero,           // llvm.nvvm.sust.b.1d.array.v2i16.zero
+    nvvm_sust_b_1d_array_v2i32_clamp,          // llvm.nvvm.sust.b.1d.array.v2i32.clamp
+    nvvm_sust_b_1d_array_v2i32_trap,           // llvm.nvvm.sust.b.1d.array.v2i32.trap
+    nvvm_sust_b_1d_array_v2i32_zero,           // llvm.nvvm.sust.b.1d.array.v2i32.zero
+    nvvm_sust_b_1d_array_v2i64_clamp,          // llvm.nvvm.sust.b.1d.array.v2i64.clamp
+    nvvm_sust_b_1d_array_v2i64_trap,           // llvm.nvvm.sust.b.1d.array.v2i64.trap
+    nvvm_sust_b_1d_array_v2i64_zero,           // llvm.nvvm.sust.b.1d.array.v2i64.zero
+    nvvm_sust_b_1d_array_v2i8_clamp,           // llvm.nvvm.sust.b.1d.array.v2i8.clamp
+    nvvm_sust_b_1d_array_v2i8_trap,            // llvm.nvvm.sust.b.1d.array.v2i8.trap
+    nvvm_sust_b_1d_array_v2i8_zero,            // llvm.nvvm.sust.b.1d.array.v2i8.zero
+    nvvm_sust_b_1d_array_v4i16_clamp,          // llvm.nvvm.sust.b.1d.array.v4i16.clamp
+    nvvm_sust_b_1d_array_v4i16_trap,           // llvm.nvvm.sust.b.1d.array.v4i16.trap
+    nvvm_sust_b_1d_array_v4i16_zero,           // llvm.nvvm.sust.b.1d.array.v4i16.zero
+    nvvm_sust_b_1d_array_v4i32_clamp,          // llvm.nvvm.sust.b.1d.array.v4i32.clamp
+    nvvm_sust_b_1d_array_v4i32_trap,           // llvm.nvvm.sust.b.1d.array.v4i32.trap
+    nvvm_sust_b_1d_array_v4i32_zero,           // llvm.nvvm.sust.b.1d.array.v4i32.zero
+    nvvm_sust_b_1d_array_v4i8_clamp,           // llvm.nvvm.sust.b.1d.array.v4i8.clamp
+    nvvm_sust_b_1d_array_v4i8_trap,            // llvm.nvvm.sust.b.1d.array.v4i8.trap
+    nvvm_sust_b_1d_array_v4i8_zero,            // llvm.nvvm.sust.b.1d.array.v4i8.zero
+    nvvm_sust_b_1d_i16_clamp,                  // llvm.nvvm.sust.b.1d.i16.clamp
+    nvvm_sust_b_1d_i16_trap,                   // llvm.nvvm.sust.b.1d.i16.trap
+    nvvm_sust_b_1d_i16_zero,                   // llvm.nvvm.sust.b.1d.i16.zero
+    nvvm_sust_b_1d_i32_clamp,                  // llvm.nvvm.sust.b.1d.i32.clamp
+    nvvm_sust_b_1d_i32_trap,                   // llvm.nvvm.sust.b.1d.i32.trap
+    nvvm_sust_b_1d_i32_zero,                   // llvm.nvvm.sust.b.1d.i32.zero
+    nvvm_sust_b_1d_i64_clamp,                  // llvm.nvvm.sust.b.1d.i64.clamp
+    nvvm_sust_b_1d_i64_trap,                   // llvm.nvvm.sust.b.1d.i64.trap
+    nvvm_sust_b_1d_i64_zero,                   // llvm.nvvm.sust.b.1d.i64.zero
+    nvvm_sust_b_1d_i8_clamp,                   // llvm.nvvm.sust.b.1d.i8.clamp
+    nvvm_sust_b_1d_i8_trap,                    // llvm.nvvm.sust.b.1d.i8.trap
+    nvvm_sust_b_1d_i8_zero,                    // llvm.nvvm.sust.b.1d.i8.zero
+    nvvm_sust_b_1d_v2i16_clamp,                // llvm.nvvm.sust.b.1d.v2i16.clamp
+    nvvm_sust_b_1d_v2i16_trap,                 // llvm.nvvm.sust.b.1d.v2i16.trap
+    nvvm_sust_b_1d_v2i16_zero,                 // llvm.nvvm.sust.b.1d.v2i16.zero
+    nvvm_sust_b_1d_v2i32_clamp,                // llvm.nvvm.sust.b.1d.v2i32.clamp
+    nvvm_sust_b_1d_v2i32_trap,                 // llvm.nvvm.sust.b.1d.v2i32.trap
+    nvvm_sust_b_1d_v2i32_zero,                 // llvm.nvvm.sust.b.1d.v2i32.zero
+    nvvm_sust_b_1d_v2i64_clamp,                // llvm.nvvm.sust.b.1d.v2i64.clamp
+    nvvm_sust_b_1d_v2i64_trap,                 // llvm.nvvm.sust.b.1d.v2i64.trap
+    nvvm_sust_b_1d_v2i64_zero,                 // llvm.nvvm.sust.b.1d.v2i64.zero
+    nvvm_sust_b_1d_v2i8_clamp,                 // llvm.nvvm.sust.b.1d.v2i8.clamp
+    nvvm_sust_b_1d_v2i8_trap,                  // llvm.nvvm.sust.b.1d.v2i8.trap
+    nvvm_sust_b_1d_v2i8_zero,                  // llvm.nvvm.sust.b.1d.v2i8.zero
+    nvvm_sust_b_1d_v4i16_clamp,                // llvm.nvvm.sust.b.1d.v4i16.clamp
+    nvvm_sust_b_1d_v4i16_trap,                 // llvm.nvvm.sust.b.1d.v4i16.trap
+    nvvm_sust_b_1d_v4i16_zero,                 // llvm.nvvm.sust.b.1d.v4i16.zero
+    nvvm_sust_b_1d_v4i32_clamp,                // llvm.nvvm.sust.b.1d.v4i32.clamp
+    nvvm_sust_b_1d_v4i32_trap,                 // llvm.nvvm.sust.b.1d.v4i32.trap
+    nvvm_sust_b_1d_v4i32_zero,                 // llvm.nvvm.sust.b.1d.v4i32.zero
+    nvvm_sust_b_1d_v4i8_clamp,                 // llvm.nvvm.sust.b.1d.v4i8.clamp
+    nvvm_sust_b_1d_v4i8_trap,                  // llvm.nvvm.sust.b.1d.v4i8.trap
+    nvvm_sust_b_1d_v4i8_zero,                  // llvm.nvvm.sust.b.1d.v4i8.zero
+    nvvm_sust_b_2d_array_i16_clamp,            // llvm.nvvm.sust.b.2d.array.i16.clamp
+    nvvm_sust_b_2d_array_i16_trap,             // llvm.nvvm.sust.b.2d.array.i16.trap
+    nvvm_sust_b_2d_array_i16_zero,             // llvm.nvvm.sust.b.2d.array.i16.zero
+    nvvm_sust_b_2d_array_i32_clamp,            // llvm.nvvm.sust.b.2d.array.i32.clamp
+    nvvm_sust_b_2d_array_i32_trap,             // llvm.nvvm.sust.b.2d.array.i32.trap
+    nvvm_sust_b_2d_array_i32_zero,             // llvm.nvvm.sust.b.2d.array.i32.zero
+    nvvm_sust_b_2d_array_i64_clamp,            // llvm.nvvm.sust.b.2d.array.i64.clamp
+    nvvm_sust_b_2d_array_i64_trap,             // llvm.nvvm.sust.b.2d.array.i64.trap
+    nvvm_sust_b_2d_array_i64_zero,             // llvm.nvvm.sust.b.2d.array.i64.zero
+    nvvm_sust_b_2d_array_i8_clamp,             // llvm.nvvm.sust.b.2d.array.i8.clamp
+    nvvm_sust_b_2d_array_i8_trap,              // llvm.nvvm.sust.b.2d.array.i8.trap
+    nvvm_sust_b_2d_array_i8_zero,              // llvm.nvvm.sust.b.2d.array.i8.zero
+    nvvm_sust_b_2d_array_v2i16_clamp,          // llvm.nvvm.sust.b.2d.array.v2i16.clamp
+    nvvm_sust_b_2d_array_v2i16_trap,           // llvm.nvvm.sust.b.2d.array.v2i16.trap
+    nvvm_sust_b_2d_array_v2i16_zero,           // llvm.nvvm.sust.b.2d.array.v2i16.zero
+    nvvm_sust_b_2d_array_v2i32_clamp,          // llvm.nvvm.sust.b.2d.array.v2i32.clamp
+    nvvm_sust_b_2d_array_v2i32_trap,           // llvm.nvvm.sust.b.2d.array.v2i32.trap
+    nvvm_sust_b_2d_array_v2i32_zero,           // llvm.nvvm.sust.b.2d.array.v2i32.zero
+    nvvm_sust_b_2d_array_v2i64_clamp,          // llvm.nvvm.sust.b.2d.array.v2i64.clamp
+    nvvm_sust_b_2d_array_v2i64_trap,           // llvm.nvvm.sust.b.2d.array.v2i64.trap
+    nvvm_sust_b_2d_array_v2i64_zero,           // llvm.nvvm.sust.b.2d.array.v2i64.zero
+    nvvm_sust_b_2d_array_v2i8_clamp,           // llvm.nvvm.sust.b.2d.array.v2i8.clamp
+    nvvm_sust_b_2d_array_v2i8_trap,            // llvm.nvvm.sust.b.2d.array.v2i8.trap
+    nvvm_sust_b_2d_array_v2i8_zero,            // llvm.nvvm.sust.b.2d.array.v2i8.zero
+    nvvm_sust_b_2d_array_v4i16_clamp,          // llvm.nvvm.sust.b.2d.array.v4i16.clamp
+    nvvm_sust_b_2d_array_v4i16_trap,           // llvm.nvvm.sust.b.2d.array.v4i16.trap
+    nvvm_sust_b_2d_array_v4i16_zero,           // llvm.nvvm.sust.b.2d.array.v4i16.zero
+    nvvm_sust_b_2d_array_v4i32_clamp,          // llvm.nvvm.sust.b.2d.array.v4i32.clamp
+    nvvm_sust_b_2d_array_v4i32_trap,           // llvm.nvvm.sust.b.2d.array.v4i32.trap
+    nvvm_sust_b_2d_array_v4i32_zero,           // llvm.nvvm.sust.b.2d.array.v4i32.zero
+    nvvm_sust_b_2d_array_v4i8_clamp,           // llvm.nvvm.sust.b.2d.array.v4i8.clamp
+    nvvm_sust_b_2d_array_v4i8_trap,            // llvm.nvvm.sust.b.2d.array.v4i8.trap
+    nvvm_sust_b_2d_array_v4i8_zero,            // llvm.nvvm.sust.b.2d.array.v4i8.zero
+    nvvm_sust_b_2d_i16_clamp,                  // llvm.nvvm.sust.b.2d.i16.clamp
+    nvvm_sust_b_2d_i16_trap,                   // llvm.nvvm.sust.b.2d.i16.trap
+    nvvm_sust_b_2d_i16_zero,                   // llvm.nvvm.sust.b.2d.i16.zero
+    nvvm_sust_b_2d_i32_clamp,                  // llvm.nvvm.sust.b.2d.i32.clamp
+    nvvm_sust_b_2d_i32_trap,                   // llvm.nvvm.sust.b.2d.i32.trap
+    nvvm_sust_b_2d_i32_zero,                   // llvm.nvvm.sust.b.2d.i32.zero
+    nvvm_sust_b_2d_i64_clamp,                  // llvm.nvvm.sust.b.2d.i64.clamp
+    nvvm_sust_b_2d_i64_trap,                   // llvm.nvvm.sust.b.2d.i64.trap
+    nvvm_sust_b_2d_i64_zero,                   // llvm.nvvm.sust.b.2d.i64.zero
+    nvvm_sust_b_2d_i8_clamp,                   // llvm.nvvm.sust.b.2d.i8.clamp
+    nvvm_sust_b_2d_i8_trap,                    // llvm.nvvm.sust.b.2d.i8.trap
+    nvvm_sust_b_2d_i8_zero,                    // llvm.nvvm.sust.b.2d.i8.zero
+    nvvm_sust_b_2d_v2i16_clamp,                // llvm.nvvm.sust.b.2d.v2i16.clamp
+    nvvm_sust_b_2d_v2i16_trap,                 // llvm.nvvm.sust.b.2d.v2i16.trap
+    nvvm_sust_b_2d_v2i16_zero,                 // llvm.nvvm.sust.b.2d.v2i16.zero
+    nvvm_sust_b_2d_v2i32_clamp,                // llvm.nvvm.sust.b.2d.v2i32.clamp
+    nvvm_sust_b_2d_v2i32_trap,                 // llvm.nvvm.sust.b.2d.v2i32.trap
+    nvvm_sust_b_2d_v2i32_zero,                 // llvm.nvvm.sust.b.2d.v2i32.zero
+    nvvm_sust_b_2d_v2i64_clamp,                // llvm.nvvm.sust.b.2d.v2i64.clamp
+    nvvm_sust_b_2d_v2i64_trap,                 // llvm.nvvm.sust.b.2d.v2i64.trap
+    nvvm_sust_b_2d_v2i64_zero,                 // llvm.nvvm.sust.b.2d.v2i64.zero
+    nvvm_sust_b_2d_v2i8_clamp,                 // llvm.nvvm.sust.b.2d.v2i8.clamp
+    nvvm_sust_b_2d_v2i8_trap,                  // llvm.nvvm.sust.b.2d.v2i8.trap
+    nvvm_sust_b_2d_v2i8_zero,                  // llvm.nvvm.sust.b.2d.v2i8.zero
+    nvvm_sust_b_2d_v4i16_clamp,                // llvm.nvvm.sust.b.2d.v4i16.clamp
+    nvvm_sust_b_2d_v4i16_trap,                 // llvm.nvvm.sust.b.2d.v4i16.trap
+    nvvm_sust_b_2d_v4i16_zero,                 // llvm.nvvm.sust.b.2d.v4i16.zero
+    nvvm_sust_b_2d_v4i32_clamp,                // llvm.nvvm.sust.b.2d.v4i32.clamp
+    nvvm_sust_b_2d_v4i32_trap,                 // llvm.nvvm.sust.b.2d.v4i32.trap
+    nvvm_sust_b_2d_v4i32_zero,                 // llvm.nvvm.sust.b.2d.v4i32.zero
+    nvvm_sust_b_2d_v4i8_clamp,                 // llvm.nvvm.sust.b.2d.v4i8.clamp
+    nvvm_sust_b_2d_v4i8_trap,                  // llvm.nvvm.sust.b.2d.v4i8.trap
+    nvvm_sust_b_2d_v4i8_zero,                  // llvm.nvvm.sust.b.2d.v4i8.zero
+    nvvm_sust_b_3d_i16_clamp,                  // llvm.nvvm.sust.b.3d.i16.clamp
+    nvvm_sust_b_3d_i16_trap,                   // llvm.nvvm.sust.b.3d.i16.trap
+    nvvm_sust_b_3d_i16_zero,                   // llvm.nvvm.sust.b.3d.i16.zero
+    nvvm_sust_b_3d_i32_clamp,                  // llvm.nvvm.sust.b.3d.i32.clamp
+    nvvm_sust_b_3d_i32_trap,                   // llvm.nvvm.sust.b.3d.i32.trap
+    nvvm_sust_b_3d_i32_zero,                   // llvm.nvvm.sust.b.3d.i32.zero
+    nvvm_sust_b_3d_i64_clamp,                  // llvm.nvvm.sust.b.3d.i64.clamp
+    nvvm_sust_b_3d_i64_trap,                   // llvm.nvvm.sust.b.3d.i64.trap
+    nvvm_sust_b_3d_i64_zero,                   // llvm.nvvm.sust.b.3d.i64.zero
+    nvvm_sust_b_3d_i8_clamp,                   // llvm.nvvm.sust.b.3d.i8.clamp
+    nvvm_sust_b_3d_i8_trap,                    // llvm.nvvm.sust.b.3d.i8.trap
+    nvvm_sust_b_3d_i8_zero,                    // llvm.nvvm.sust.b.3d.i8.zero
+    nvvm_sust_b_3d_v2i16_clamp,                // llvm.nvvm.sust.b.3d.v2i16.clamp
+    nvvm_sust_b_3d_v2i16_trap,                 // llvm.nvvm.sust.b.3d.v2i16.trap
+    nvvm_sust_b_3d_v2i16_zero,                 // llvm.nvvm.sust.b.3d.v2i16.zero
+    nvvm_sust_b_3d_v2i32_clamp,                // llvm.nvvm.sust.b.3d.v2i32.clamp
+    nvvm_sust_b_3d_v2i32_trap,                 // llvm.nvvm.sust.b.3d.v2i32.trap
+    nvvm_sust_b_3d_v2i32_zero,                 // llvm.nvvm.sust.b.3d.v2i32.zero
+    nvvm_sust_b_3d_v2i64_clamp,                // llvm.nvvm.sust.b.3d.v2i64.clamp
+    nvvm_sust_b_3d_v2i64_trap,                 // llvm.nvvm.sust.b.3d.v2i64.trap
+    nvvm_sust_b_3d_v2i64_zero,                 // llvm.nvvm.sust.b.3d.v2i64.zero
+    nvvm_sust_b_3d_v2i8_clamp,                 // llvm.nvvm.sust.b.3d.v2i8.clamp
+    nvvm_sust_b_3d_v2i8_trap,                  // llvm.nvvm.sust.b.3d.v2i8.trap
+    nvvm_sust_b_3d_v2i8_zero,                  // llvm.nvvm.sust.b.3d.v2i8.zero
+    nvvm_sust_b_3d_v4i16_clamp,                // llvm.nvvm.sust.b.3d.v4i16.clamp
+    nvvm_sust_b_3d_v4i16_trap,                 // llvm.nvvm.sust.b.3d.v4i16.trap
+    nvvm_sust_b_3d_v4i16_zero,                 // llvm.nvvm.sust.b.3d.v4i16.zero
+    nvvm_sust_b_3d_v4i32_clamp,                // llvm.nvvm.sust.b.3d.v4i32.clamp
+    nvvm_sust_b_3d_v4i32_trap,                 // llvm.nvvm.sust.b.3d.v4i32.trap
+    nvvm_sust_b_3d_v4i32_zero,                 // llvm.nvvm.sust.b.3d.v4i32.zero
+    nvvm_sust_b_3d_v4i8_clamp,                 // llvm.nvvm.sust.b.3d.v4i8.clamp
+    nvvm_sust_b_3d_v4i8_trap,                  // llvm.nvvm.sust.b.3d.v4i8.trap
+    nvvm_sust_b_3d_v4i8_zero,                  // llvm.nvvm.sust.b.3d.v4i8.zero
+    nvvm_sust_p_1d_array_i16_trap,             // llvm.nvvm.sust.p.1d.array.i16.trap
+    nvvm_sust_p_1d_array_i32_trap,             // llvm.nvvm.sust.p.1d.array.i32.trap
+    nvvm_sust_p_1d_array_i8_trap,              // llvm.nvvm.sust.p.1d.array.i8.trap
+    nvvm_sust_p_1d_array_v2i16_trap,           // llvm.nvvm.sust.p.1d.array.v2i16.trap
+    nvvm_sust_p_1d_array_v2i32_trap,           // llvm.nvvm.sust.p.1d.array.v2i32.trap
+    nvvm_sust_p_1d_array_v2i8_trap,            // llvm.nvvm.sust.p.1d.array.v2i8.trap
+    nvvm_sust_p_1d_array_v4i16_trap,           // llvm.nvvm.sust.p.1d.array.v4i16.trap
+    nvvm_sust_p_1d_array_v4i32_trap,           // llvm.nvvm.sust.p.1d.array.v4i32.trap
+    nvvm_sust_p_1d_array_v4i8_trap,            // llvm.nvvm.sust.p.1d.array.v4i8.trap
+    nvvm_sust_p_1d_i16_trap,                   // llvm.nvvm.sust.p.1d.i16.trap
+    nvvm_sust_p_1d_i32_trap,                   // llvm.nvvm.sust.p.1d.i32.trap
+    nvvm_sust_p_1d_i8_trap,                    // llvm.nvvm.sust.p.1d.i8.trap
+    nvvm_sust_p_1d_v2i16_trap,                 // llvm.nvvm.sust.p.1d.v2i16.trap
+    nvvm_sust_p_1d_v2i32_trap,                 // llvm.nvvm.sust.p.1d.v2i32.trap
+    nvvm_sust_p_1d_v2i8_trap,                  // llvm.nvvm.sust.p.1d.v2i8.trap
+    nvvm_sust_p_1d_v4i16_trap,                 // llvm.nvvm.sust.p.1d.v4i16.trap
+    nvvm_sust_p_1d_v4i32_trap,                 // llvm.nvvm.sust.p.1d.v4i32.trap
+    nvvm_sust_p_1d_v4i8_trap,                  // llvm.nvvm.sust.p.1d.v4i8.trap
+    nvvm_sust_p_2d_array_i16_trap,             // llvm.nvvm.sust.p.2d.array.i16.trap
+    nvvm_sust_p_2d_array_i32_trap,             // llvm.nvvm.sust.p.2d.array.i32.trap
+    nvvm_sust_p_2d_array_i8_trap,              // llvm.nvvm.sust.p.2d.array.i8.trap
+    nvvm_sust_p_2d_array_v2i16_trap,           // llvm.nvvm.sust.p.2d.array.v2i16.trap
+    nvvm_sust_p_2d_array_v2i32_trap,           // llvm.nvvm.sust.p.2d.array.v2i32.trap
+    nvvm_sust_p_2d_array_v2i8_trap,            // llvm.nvvm.sust.p.2d.array.v2i8.trap
+    nvvm_sust_p_2d_array_v4i16_trap,           // llvm.nvvm.sust.p.2d.array.v4i16.trap
+    nvvm_sust_p_2d_array_v4i32_trap,           // llvm.nvvm.sust.p.2d.array.v4i32.trap
+    nvvm_sust_p_2d_array_v4i8_trap,            // llvm.nvvm.sust.p.2d.array.v4i8.trap
+    nvvm_sust_p_2d_i16_trap,                   // llvm.nvvm.sust.p.2d.i16.trap
+    nvvm_sust_p_2d_i32_trap,                   // llvm.nvvm.sust.p.2d.i32.trap
+    nvvm_sust_p_2d_i8_trap,                    // llvm.nvvm.sust.p.2d.i8.trap
+    nvvm_sust_p_2d_v2i16_trap,                 // llvm.nvvm.sust.p.2d.v2i16.trap
+    nvvm_sust_p_2d_v2i32_trap,                 // llvm.nvvm.sust.p.2d.v2i32.trap
+    nvvm_sust_p_2d_v2i8_trap,                  // llvm.nvvm.sust.p.2d.v2i8.trap
+    nvvm_sust_p_2d_v4i16_trap,                 // llvm.nvvm.sust.p.2d.v4i16.trap
+    nvvm_sust_p_2d_v4i32_trap,                 // llvm.nvvm.sust.p.2d.v4i32.trap
+    nvvm_sust_p_2d_v4i8_trap,                  // llvm.nvvm.sust.p.2d.v4i8.trap
+    nvvm_sust_p_3d_i16_trap,                   // llvm.nvvm.sust.p.3d.i16.trap
+    nvvm_sust_p_3d_i32_trap,                   // llvm.nvvm.sust.p.3d.i32.trap
+    nvvm_sust_p_3d_i8_trap,                    // llvm.nvvm.sust.p.3d.i8.trap
+    nvvm_sust_p_3d_v2i16_trap,                 // llvm.nvvm.sust.p.3d.v2i16.trap
+    nvvm_sust_p_3d_v2i32_trap,                 // llvm.nvvm.sust.p.3d.v2i32.trap
+    nvvm_sust_p_3d_v2i8_trap,                  // llvm.nvvm.sust.p.3d.v2i8.trap
+    nvvm_sust_p_3d_v4i16_trap,                 // llvm.nvvm.sust.p.3d.v4i16.trap
+    nvvm_sust_p_3d_v4i32_trap,                 // llvm.nvvm.sust.p.3d.v4i32.trap
+    nvvm_sust_p_3d_v4i8_trap,                  // llvm.nvvm.sust.p.3d.v4i8.trap
+    nvvm_swap_lo_hi_b64,                       // llvm.nvvm.swap.lo.hi.b64
+    nvvm_tex_1d_array_grad_v4f32_f32,          // llvm.nvvm.tex.1d.array.grad.v4f32.f32
+    nvvm_tex_1d_array_grad_v4s32_f32,          // llvm.nvvm.tex.1d.array.grad.v4s32.f32
+    nvvm_tex_1d_array_grad_v4u32_f32,          // llvm.nvvm.tex.1d.array.grad.v4u32.f32
+    nvvm_tex_1d_array_level_v4f32_f32,         // llvm.nvvm.tex.1d.array.level.v4f32.f32
+    nvvm_tex_1d_array_level_v4s32_f32,         // llvm.nvvm.tex.1d.array.level.v4s32.f32
+    nvvm_tex_1d_array_level_v4u32_f32,         // llvm.nvvm.tex.1d.array.level.v4u32.f32
+    nvvm_tex_1d_array_v4f32_f32,               // llvm.nvvm.tex.1d.array.v4f32.f32
+    nvvm_tex_1d_array_v4f32_s32,               // llvm.nvvm.tex.1d.array.v4f32.s32
+    nvvm_tex_1d_array_v4s32_f32,               // llvm.nvvm.tex.1d.array.v4s32.f32
+    nvvm_tex_1d_array_v4s32_s32,               // llvm.nvvm.tex.1d.array.v4s32.s32
+    nvvm_tex_1d_array_v4u32_f32,               // llvm.nvvm.tex.1d.array.v4u32.f32
+    nvvm_tex_1d_array_v4u32_s32,               // llvm.nvvm.tex.1d.array.v4u32.s32
+    nvvm_tex_1d_grad_v4f32_f32,                // llvm.nvvm.tex.1d.grad.v4f32.f32
+    nvvm_tex_1d_grad_v4s32_f32,                // llvm.nvvm.tex.1d.grad.v4s32.f32
+    nvvm_tex_1d_grad_v4u32_f32,                // llvm.nvvm.tex.1d.grad.v4u32.f32
+    nvvm_tex_1d_level_v4f32_f32,               // llvm.nvvm.tex.1d.level.v4f32.f32
+    nvvm_tex_1d_level_v4s32_f32,               // llvm.nvvm.tex.1d.level.v4s32.f32
+    nvvm_tex_1d_level_v4u32_f32,               // llvm.nvvm.tex.1d.level.v4u32.f32
+    nvvm_tex_1d_v4f32_f32,                     // llvm.nvvm.tex.1d.v4f32.f32
+    nvvm_tex_1d_v4f32_s32,                     // llvm.nvvm.tex.1d.v4f32.s32
+    nvvm_tex_1d_v4s32_f32,                     // llvm.nvvm.tex.1d.v4s32.f32
+    nvvm_tex_1d_v4s32_s32,                     // llvm.nvvm.tex.1d.v4s32.s32
+    nvvm_tex_1d_v4u32_f32,                     // llvm.nvvm.tex.1d.v4u32.f32
+    nvvm_tex_1d_v4u32_s32,                     // llvm.nvvm.tex.1d.v4u32.s32
+    nvvm_tex_2d_array_grad_v4f32_f32,          // llvm.nvvm.tex.2d.array.grad.v4f32.f32
+    nvvm_tex_2d_array_grad_v4s32_f32,          // llvm.nvvm.tex.2d.array.grad.v4s32.f32
+    nvvm_tex_2d_array_grad_v4u32_f32,          // llvm.nvvm.tex.2d.array.grad.v4u32.f32
+    nvvm_tex_2d_array_level_v4f32_f32,         // llvm.nvvm.tex.2d.array.level.v4f32.f32
+    nvvm_tex_2d_array_level_v4s32_f32,         // llvm.nvvm.tex.2d.array.level.v4s32.f32
+    nvvm_tex_2d_array_level_v4u32_f32,         // llvm.nvvm.tex.2d.array.level.v4u32.f32
+    nvvm_tex_2d_array_v4f32_f32,               // llvm.nvvm.tex.2d.array.v4f32.f32
+    nvvm_tex_2d_array_v4f32_s32,               // llvm.nvvm.tex.2d.array.v4f32.s32
+    nvvm_tex_2d_array_v4s32_f32,               // llvm.nvvm.tex.2d.array.v4s32.f32
+    nvvm_tex_2d_array_v4s32_s32,               // llvm.nvvm.tex.2d.array.v4s32.s32
+    nvvm_tex_2d_array_v4u32_f32,               // llvm.nvvm.tex.2d.array.v4u32.f32
+    nvvm_tex_2d_array_v4u32_s32,               // llvm.nvvm.tex.2d.array.v4u32.s32
+    nvvm_tex_2d_grad_v4f32_f32,                // llvm.nvvm.tex.2d.grad.v4f32.f32
+    nvvm_tex_2d_grad_v4s32_f32,                // llvm.nvvm.tex.2d.grad.v4s32.f32
+    nvvm_tex_2d_grad_v4u32_f32,                // llvm.nvvm.tex.2d.grad.v4u32.f32
+    nvvm_tex_2d_level_v4f32_f32,               // llvm.nvvm.tex.2d.level.v4f32.f32
+    nvvm_tex_2d_level_v4s32_f32,               // llvm.nvvm.tex.2d.level.v4s32.f32
+    nvvm_tex_2d_level_v4u32_f32,               // llvm.nvvm.tex.2d.level.v4u32.f32
+    nvvm_tex_2d_v4f32_f32,                     // llvm.nvvm.tex.2d.v4f32.f32
+    nvvm_tex_2d_v4f32_s32,                     // llvm.nvvm.tex.2d.v4f32.s32
+    nvvm_tex_2d_v4s32_f32,                     // llvm.nvvm.tex.2d.v4s32.f32
+    nvvm_tex_2d_v4s32_s32,                     // llvm.nvvm.tex.2d.v4s32.s32
+    nvvm_tex_2d_v4u32_f32,                     // llvm.nvvm.tex.2d.v4u32.f32
+    nvvm_tex_2d_v4u32_s32,                     // llvm.nvvm.tex.2d.v4u32.s32
+    nvvm_tex_3d_grad_v4f32_f32,                // llvm.nvvm.tex.3d.grad.v4f32.f32
+    nvvm_tex_3d_grad_v4s32_f32,                // llvm.nvvm.tex.3d.grad.v4s32.f32
+    nvvm_tex_3d_grad_v4u32_f32,                // llvm.nvvm.tex.3d.grad.v4u32.f32
+    nvvm_tex_3d_level_v4f32_f32,               // llvm.nvvm.tex.3d.level.v4f32.f32
+    nvvm_tex_3d_level_v4s32_f32,               // llvm.nvvm.tex.3d.level.v4s32.f32
+    nvvm_tex_3d_level_v4u32_f32,               // llvm.nvvm.tex.3d.level.v4u32.f32
+    nvvm_tex_3d_v4f32_f32,                     // llvm.nvvm.tex.3d.v4f32.f32
+    nvvm_tex_3d_v4f32_s32,                     // llvm.nvvm.tex.3d.v4f32.s32
+    nvvm_tex_3d_v4s32_f32,                     // llvm.nvvm.tex.3d.v4s32.f32
+    nvvm_tex_3d_v4s32_s32,                     // llvm.nvvm.tex.3d.v4s32.s32
+    nvvm_tex_3d_v4u32_f32,                     // llvm.nvvm.tex.3d.v4u32.f32
+    nvvm_tex_3d_v4u32_s32,                     // llvm.nvvm.tex.3d.v4u32.s32
+    nvvm_tex_cube_array_level_v4f32_f32,       // llvm.nvvm.tex.cube.array.level.v4f32.f32
+    nvvm_tex_cube_array_level_v4s32_f32,       // llvm.nvvm.tex.cube.array.level.v4s32.f32
+    nvvm_tex_cube_array_level_v4u32_f32,       // llvm.nvvm.tex.cube.array.level.v4u32.f32
+    nvvm_tex_cube_array_v4f32_f32,             // llvm.nvvm.tex.cube.array.v4f32.f32
+    nvvm_tex_cube_array_v4s32_f32,             // llvm.nvvm.tex.cube.array.v4s32.f32
+    nvvm_tex_cube_array_v4u32_f32,             // llvm.nvvm.tex.cube.array.v4u32.f32
+    nvvm_tex_cube_level_v4f32_f32,             // llvm.nvvm.tex.cube.level.v4f32.f32
+    nvvm_tex_cube_level_v4s32_f32,             // llvm.nvvm.tex.cube.level.v4s32.f32
+    nvvm_tex_cube_level_v4u32_f32,             // llvm.nvvm.tex.cube.level.v4u32.f32
+    nvvm_tex_cube_v4f32_f32,                   // llvm.nvvm.tex.cube.v4f32.f32
+    nvvm_tex_cube_v4s32_f32,                   // llvm.nvvm.tex.cube.v4s32.f32
+    nvvm_tex_cube_v4u32_f32,                   // llvm.nvvm.tex.cube.v4u32.f32
+    nvvm_tex_unified_1d_array_grad_v4f32_f32,  // llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32
+    nvvm_tex_unified_1d_array_grad_v4s32_f32,  // llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32
+    nvvm_tex_unified_1d_array_grad_v4u32_f32,  // llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32
+    nvvm_tex_unified_1d_array_level_v4f32_f32,  // llvm.nvvm.tex.unified.1d.array.level.v4f32.f32
+    nvvm_tex_unified_1d_array_level_v4s32_f32,  // llvm.nvvm.tex.unified.1d.array.level.v4s32.f32
+    nvvm_tex_unified_1d_array_level_v4u32_f32,  // llvm.nvvm.tex.unified.1d.array.level.v4u32.f32
+    nvvm_tex_unified_1d_array_v4f32_f32,       // llvm.nvvm.tex.unified.1d.array.v4f32.f32
+    nvvm_tex_unified_1d_array_v4f32_s32,       // llvm.nvvm.tex.unified.1d.array.v4f32.s32
+    nvvm_tex_unified_1d_array_v4s32_f32,       // llvm.nvvm.tex.unified.1d.array.v4s32.f32
+    nvvm_tex_unified_1d_array_v4s32_s32,       // llvm.nvvm.tex.unified.1d.array.v4s32.s32
+    nvvm_tex_unified_1d_array_v4u32_f32,       // llvm.nvvm.tex.unified.1d.array.v4u32.f32
+    nvvm_tex_unified_1d_array_v4u32_s32,       // llvm.nvvm.tex.unified.1d.array.v4u32.s32
+    nvvm_tex_unified_1d_grad_v4f32_f32,        // llvm.nvvm.tex.unified.1d.grad.v4f32.f32
+    nvvm_tex_unified_1d_grad_v4s32_f32,        // llvm.nvvm.tex.unified.1d.grad.v4s32.f32
+    nvvm_tex_unified_1d_grad_v4u32_f32,        // llvm.nvvm.tex.unified.1d.grad.v4u32.f32
+    nvvm_tex_unified_1d_level_v4f32_f32,       // llvm.nvvm.tex.unified.1d.level.v4f32.f32
+    nvvm_tex_unified_1d_level_v4s32_f32,       // llvm.nvvm.tex.unified.1d.level.v4s32.f32
+    nvvm_tex_unified_1d_level_v4u32_f32,       // llvm.nvvm.tex.unified.1d.level.v4u32.f32
+    nvvm_tex_unified_1d_v4f32_f32,             // llvm.nvvm.tex.unified.1d.v4f32.f32
+    nvvm_tex_unified_1d_v4f32_s32,             // llvm.nvvm.tex.unified.1d.v4f32.s32
+    nvvm_tex_unified_1d_v4s32_f32,             // llvm.nvvm.tex.unified.1d.v4s32.f32
+    nvvm_tex_unified_1d_v4s32_s32,             // llvm.nvvm.tex.unified.1d.v4s32.s32
+    nvvm_tex_unified_1d_v4u32_f32,             // llvm.nvvm.tex.unified.1d.v4u32.f32
+    nvvm_tex_unified_1d_v4u32_s32,             // llvm.nvvm.tex.unified.1d.v4u32.s32
+    nvvm_tex_unified_2d_array_grad_v4f32_f32,  // llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32
+    nvvm_tex_unified_2d_array_grad_v4s32_f32,  // llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32
+    nvvm_tex_unified_2d_array_grad_v4u32_f32,  // llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32
+    nvvm_tex_unified_2d_array_level_v4f32_f32,  // llvm.nvvm.tex.unified.2d.array.level.v4f32.f32
+    nvvm_tex_unified_2d_array_level_v4s32_f32,  // llvm.nvvm.tex.unified.2d.array.level.v4s32.f32
+    nvvm_tex_unified_2d_array_level_v4u32_f32,  // llvm.nvvm.tex.unified.2d.array.level.v4u32.f32
+    nvvm_tex_unified_2d_array_v4f32_f32,       // llvm.nvvm.tex.unified.2d.array.v4f32.f32
+    nvvm_tex_unified_2d_array_v4f32_s32,       // llvm.nvvm.tex.unified.2d.array.v4f32.s32
+    nvvm_tex_unified_2d_array_v4s32_f32,       // llvm.nvvm.tex.unified.2d.array.v4s32.f32
+    nvvm_tex_unified_2d_array_v4s32_s32,       // llvm.nvvm.tex.unified.2d.array.v4s32.s32
+    nvvm_tex_unified_2d_array_v4u32_f32,       // llvm.nvvm.tex.unified.2d.array.v4u32.f32
+    nvvm_tex_unified_2d_array_v4u32_s32,       // llvm.nvvm.tex.unified.2d.array.v4u32.s32
+    nvvm_tex_unified_2d_grad_v4f32_f32,        // llvm.nvvm.tex.unified.2d.grad.v4f32.f32
+    nvvm_tex_unified_2d_grad_v4s32_f32,        // llvm.nvvm.tex.unified.2d.grad.v4s32.f32
+    nvvm_tex_unified_2d_grad_v4u32_f32,        // llvm.nvvm.tex.unified.2d.grad.v4u32.f32
+    nvvm_tex_unified_2d_level_v4f32_f32,       // llvm.nvvm.tex.unified.2d.level.v4f32.f32
+    nvvm_tex_unified_2d_level_v4s32_f32,       // llvm.nvvm.tex.unified.2d.level.v4s32.f32
+    nvvm_tex_unified_2d_level_v4u32_f32,       // llvm.nvvm.tex.unified.2d.level.v4u32.f32
+    nvvm_tex_unified_2d_v4f32_f32,             // llvm.nvvm.tex.unified.2d.v4f32.f32
+    nvvm_tex_unified_2d_v4f32_s32,             // llvm.nvvm.tex.unified.2d.v4f32.s32
+    nvvm_tex_unified_2d_v4s32_f32,             // llvm.nvvm.tex.unified.2d.v4s32.f32
+    nvvm_tex_unified_2d_v4s32_s32,             // llvm.nvvm.tex.unified.2d.v4s32.s32
+    nvvm_tex_unified_2d_v4u32_f32,             // llvm.nvvm.tex.unified.2d.v4u32.f32
+    nvvm_tex_unified_2d_v4u32_s32,             // llvm.nvvm.tex.unified.2d.v4u32.s32
+    nvvm_tex_unified_3d_grad_v4f32_f32,        // llvm.nvvm.tex.unified.3d.grad.v4f32.f32
+    nvvm_tex_unified_3d_grad_v4s32_f32,        // llvm.nvvm.tex.unified.3d.grad.v4s32.f32
+    nvvm_tex_unified_3d_grad_v4u32_f32,        // llvm.nvvm.tex.unified.3d.grad.v4u32.f32
+    nvvm_tex_unified_3d_level_v4f32_f32,       // llvm.nvvm.tex.unified.3d.level.v4f32.f32
+    nvvm_tex_unified_3d_level_v4s32_f32,       // llvm.nvvm.tex.unified.3d.level.v4s32.f32
+    nvvm_tex_unified_3d_level_v4u32_f32,       // llvm.nvvm.tex.unified.3d.level.v4u32.f32
+    nvvm_tex_unified_3d_v4f32_f32,             // llvm.nvvm.tex.unified.3d.v4f32.f32
+    nvvm_tex_unified_3d_v4f32_s32,             // llvm.nvvm.tex.unified.3d.v4f32.s32
+    nvvm_tex_unified_3d_v4s32_f32,             // llvm.nvvm.tex.unified.3d.v4s32.f32
+    nvvm_tex_unified_3d_v4s32_s32,             // llvm.nvvm.tex.unified.3d.v4s32.s32
+    nvvm_tex_unified_3d_v4u32_f32,             // llvm.nvvm.tex.unified.3d.v4u32.f32
+    nvvm_tex_unified_3d_v4u32_s32,             // llvm.nvvm.tex.unified.3d.v4u32.s32
+    nvvm_tex_unified_cube_array_level_v4f32_f32,  // llvm.nvvm.tex.unified.cube.array.level.v4f32.f32
+    nvvm_tex_unified_cube_array_level_v4s32_f32,  // llvm.nvvm.tex.unified.cube.array.level.v4s32.f32
+    nvvm_tex_unified_cube_array_level_v4u32_f32,  // llvm.nvvm.tex.unified.cube.array.level.v4u32.f32
+    nvvm_tex_unified_cube_array_v4f32_f32,     // llvm.nvvm.tex.unified.cube.array.v4f32.f32
+    nvvm_tex_unified_cube_array_v4s32_f32,     // llvm.nvvm.tex.unified.cube.array.v4s32.f32
+    nvvm_tex_unified_cube_array_v4u32_f32,     // llvm.nvvm.tex.unified.cube.array.v4u32.f32
+    nvvm_tex_unified_cube_level_v4f32_f32,     // llvm.nvvm.tex.unified.cube.level.v4f32.f32
+    nvvm_tex_unified_cube_level_v4s32_f32,     // llvm.nvvm.tex.unified.cube.level.v4s32.f32
+    nvvm_tex_unified_cube_level_v4u32_f32,     // llvm.nvvm.tex.unified.cube.level.v4u32.f32
+    nvvm_tex_unified_cube_v4f32_f32,           // llvm.nvvm.tex.unified.cube.v4f32.f32
+    nvvm_tex_unified_cube_v4s32_f32,           // llvm.nvvm.tex.unified.cube.v4s32.f32
+    nvvm_tex_unified_cube_v4u32_f32,           // llvm.nvvm.tex.unified.cube.v4u32.f32
+    nvvm_texsurf_handle,                       // llvm.nvvm.texsurf.handle
+    nvvm_texsurf_handle_internal,              // llvm.nvvm.texsurf.handle.internal
+    nvvm_tld4_a_2d_v4f32_f32,                  // llvm.nvvm.tld4.a.2d.v4f32.f32
+    nvvm_tld4_a_2d_v4s32_f32,                  // llvm.nvvm.tld4.a.2d.v4s32.f32
+    nvvm_tld4_a_2d_v4u32_f32,                  // llvm.nvvm.tld4.a.2d.v4u32.f32
+    nvvm_tld4_b_2d_v4f32_f32,                  // llvm.nvvm.tld4.b.2d.v4f32.f32
+    nvvm_tld4_b_2d_v4s32_f32,                  // llvm.nvvm.tld4.b.2d.v4s32.f32
+    nvvm_tld4_b_2d_v4u32_f32,                  // llvm.nvvm.tld4.b.2d.v4u32.f32
+    nvvm_tld4_g_2d_v4f32_f32,                  // llvm.nvvm.tld4.g.2d.v4f32.f32
+    nvvm_tld4_g_2d_v4s32_f32,                  // llvm.nvvm.tld4.g.2d.v4s32.f32
+    nvvm_tld4_g_2d_v4u32_f32,                  // llvm.nvvm.tld4.g.2d.v4u32.f32
+    nvvm_tld4_r_2d_v4f32_f32,                  // llvm.nvvm.tld4.r.2d.v4f32.f32
+    nvvm_tld4_r_2d_v4s32_f32,                  // llvm.nvvm.tld4.r.2d.v4s32.f32
+    nvvm_tld4_r_2d_v4u32_f32,                  // llvm.nvvm.tld4.r.2d.v4u32.f32
+    nvvm_tld4_unified_a_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.a.2d.v4f32.f32
+    nvvm_tld4_unified_a_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.a.2d.v4s32.f32
+    nvvm_tld4_unified_a_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.a.2d.v4u32.f32
+    nvvm_tld4_unified_b_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.b.2d.v4f32.f32
+    nvvm_tld4_unified_b_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.b.2d.v4s32.f32
+    nvvm_tld4_unified_b_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.b.2d.v4u32.f32
+    nvvm_tld4_unified_g_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.g.2d.v4f32.f32
+    nvvm_tld4_unified_g_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.g.2d.v4s32.f32
+    nvvm_tld4_unified_g_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.g.2d.v4u32.f32
+    nvvm_tld4_unified_r_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.r.2d.v4f32.f32
+    nvvm_tld4_unified_r_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.r.2d.v4s32.f32
+    nvvm_tld4_unified_r_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.r.2d.v4u32.f32
+    nvvm_trunc_d,                              // llvm.nvvm.trunc.d
+    nvvm_trunc_f,                              // llvm.nvvm.trunc.f
+    nvvm_trunc_ftz_f,                          // llvm.nvvm.trunc.ftz.f
+    nvvm_txq_array_size,                       // llvm.nvvm.txq.array.size
+    nvvm_txq_channel_data_type,                // llvm.nvvm.txq.channel.data.type
+    nvvm_txq_channel_order,                    // llvm.nvvm.txq.channel.order
+    nvvm_txq_depth,                            // llvm.nvvm.txq.depth
+    nvvm_txq_height,                           // llvm.nvvm.txq.height
+    nvvm_txq_num_mipmap_levels,                // llvm.nvvm.txq.num.mipmap.levels
+    nvvm_txq_num_samples,                      // llvm.nvvm.txq.num.samples
+    nvvm_txq_width,                            // llvm.nvvm.txq.width
+    nvvm_ui2d_rm,                              // llvm.nvvm.ui2d.rm
+    nvvm_ui2d_rn,                              // llvm.nvvm.ui2d.rn
+    nvvm_ui2d_rp,                              // llvm.nvvm.ui2d.rp
+    nvvm_ui2d_rz,                              // llvm.nvvm.ui2d.rz
+    nvvm_ui2f_rm,                              // llvm.nvvm.ui2f.rm
+    nvvm_ui2f_rn,                              // llvm.nvvm.ui2f.rn
+    nvvm_ui2f_rp,                              // llvm.nvvm.ui2f.rp
+    nvvm_ui2f_rz,                              // llvm.nvvm.ui2f.rz
+    nvvm_ull2d_rm,                             // llvm.nvvm.ull2d.rm
+    nvvm_ull2d_rn,                             // llvm.nvvm.ull2d.rn
+    nvvm_ull2d_rp,                             // llvm.nvvm.ull2d.rp
+    nvvm_ull2d_rz,                             // llvm.nvvm.ull2d.rz
+    nvvm_ull2f_rm,                             // llvm.nvvm.ull2f.rm
+    nvvm_ull2f_rn,                             // llvm.nvvm.ull2f.rn
+    nvvm_ull2f_rp,                             // llvm.nvvm.ull2f.rp
+    nvvm_ull2f_rz,                             // llvm.nvvm.ull2f.rz
+    nvvm_vote_all,                             // llvm.nvvm.vote.all
+    nvvm_vote_all_sync,                        // llvm.nvvm.vote.all.sync
+    nvvm_vote_any,                             // llvm.nvvm.vote.any
+    nvvm_vote_any_sync,                        // llvm.nvvm.vote.any.sync
+    nvvm_vote_ballot,                          // llvm.nvvm.vote.ballot
+    nvvm_vote_ballot_sync,                     // llvm.nvvm.vote.ballot.sync
+    nvvm_vote_uni,                             // llvm.nvvm.vote.uni
+    nvvm_vote_uni_sync,                        // llvm.nvvm.vote.uni.sync
+    nvvm_wmma_m16n16k16_load_a_f16_col,        // llvm.nvvm.wmma.m16n16k16.load.a.col.f16
+    nvvm_wmma_m16n16k16_load_a_f16_col_stride,  // llvm.nvvm.wmma.m16n16k16.load.a.col.stride.f16
+    nvvm_wmma_m16n16k16_load_a_f16_row,        // llvm.nvvm.wmma.m16n16k16.load.a.row.f16
+    nvvm_wmma_m16n16k16_load_a_f16_row_stride,  // llvm.nvvm.wmma.m16n16k16.load.a.row.stride.f16
+    nvvm_wmma_m16n16k16_load_b_f16_col,        // llvm.nvvm.wmma.m16n16k16.load.b.col.f16
+    nvvm_wmma_m16n16k16_load_b_f16_col_stride,  // llvm.nvvm.wmma.m16n16k16.load.b.col.stride.f16
+    nvvm_wmma_m16n16k16_load_b_f16_row,        // llvm.nvvm.wmma.m16n16k16.load.b.row.f16
+    nvvm_wmma_m16n16k16_load_b_f16_row_stride,  // llvm.nvvm.wmma.m16n16k16.load.b.row.stride.f16
+    nvvm_wmma_m16n16k16_load_c_f16_col,        // llvm.nvvm.wmma.m16n16k16.load.c.col.f16
+    nvvm_wmma_m16n16k16_load_c_f32_col,        // llvm.nvvm.wmma.m16n16k16.load.c.col.f32
+    nvvm_wmma_m16n16k16_load_c_f16_col_stride,  // llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f16
+    nvvm_wmma_m16n16k16_load_c_f32_col_stride,  // llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f32
+    nvvm_wmma_m16n16k16_load_c_f16_row,        // llvm.nvvm.wmma.m16n16k16.load.c.row.f16
+    nvvm_wmma_m16n16k16_load_c_f32_row,        // llvm.nvvm.wmma.m16n16k16.load.c.row.f32
+    nvvm_wmma_m16n16k16_load_c_f16_row_stride,  // llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f16
+    nvvm_wmma_m16n16k16_load_c_f32_row_stride,  // llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f32
+    nvvm_wmma_m16n16k16_mma_col_col_f16_f16,   // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16
+    nvvm_wmma_m16n16k16_mma_col_col_f16_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16.satfinite
+    nvvm_wmma_m16n16k16_mma_col_col_f16_f32,   // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32
+    nvvm_wmma_m16n16k16_mma_col_col_f16_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32.satfinite
+    nvvm_wmma_m16n16k16_mma_col_col_f32_f16,   // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16
+    nvvm_wmma_m16n16k16_mma_col_col_f32_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16.satfinite
+    nvvm_wmma_m16n16k16_mma_col_col_f32_f32,   // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32
+    nvvm_wmma_m16n16k16_mma_col_col_f32_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32.satfinite
+    nvvm_wmma_m16n16k16_mma_col_row_f16_f16,   // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16
+    nvvm_wmma_m16n16k16_mma_col_row_f16_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16.satfinite
+    nvvm_wmma_m16n16k16_mma_col_row_f16_f32,   // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32
+    nvvm_wmma_m16n16k16_mma_col_row_f16_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32.satfinite
+    nvvm_wmma_m16n16k16_mma_col_row_f32_f16,   // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16
+    nvvm_wmma_m16n16k16_mma_col_row_f32_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16.satfinite
+    nvvm_wmma_m16n16k16_mma_col_row_f32_f32,   // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32
+    nvvm_wmma_m16n16k16_mma_col_row_f32_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32.satfinite
+    nvvm_wmma_m16n16k16_mma_row_col_f16_f16,   // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16
+    nvvm_wmma_m16n16k16_mma_row_col_f16_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16.satfinite
+    nvvm_wmma_m16n16k16_mma_row_col_f16_f32,   // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32
+    nvvm_wmma_m16n16k16_mma_row_col_f16_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32.satfinite
+    nvvm_wmma_m16n16k16_mma_row_col_f32_f16,   // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16
+    nvvm_wmma_m16n16k16_mma_row_col_f32_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16.satfinite
+    nvvm_wmma_m16n16k16_mma_row_col_f32_f32,   // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32
+    nvvm_wmma_m16n16k16_mma_row_col_f32_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32.satfinite
+    nvvm_wmma_m16n16k16_mma_row_row_f16_f16,   // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16
+    nvvm_wmma_m16n16k16_mma_row_row_f16_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16.satfinite
+    nvvm_wmma_m16n16k16_mma_row_row_f16_f32,   // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32
+    nvvm_wmma_m16n16k16_mma_row_row_f16_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32.satfinite
+    nvvm_wmma_m16n16k16_mma_row_row_f32_f16,   // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16
+    nvvm_wmma_m16n16k16_mma_row_row_f32_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16.satfinite
+    nvvm_wmma_m16n16k16_mma_row_row_f32_f32,   // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32
+    nvvm_wmma_m16n16k16_mma_row_row_f32_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32.satfinite
+    nvvm_wmma_m16n16k16_store_d_f16_col,       // llvm.nvvm.wmma.m16n16k16.store.d.col.f16
+    nvvm_wmma_m16n16k16_store_d_f32_col,       // llvm.nvvm.wmma.m16n16k16.store.d.col.f32
+    nvvm_wmma_m16n16k16_store_d_f16_col_stride,  // llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f16
+    nvvm_wmma_m16n16k16_store_d_f32_col_stride,  // llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f32
+    nvvm_wmma_m16n16k16_store_d_f16_row,       // llvm.nvvm.wmma.m16n16k16.store.d.row.f16
+    nvvm_wmma_m16n16k16_store_d_f32_row,       // llvm.nvvm.wmma.m16n16k16.store.d.row.f32
+    nvvm_wmma_m16n16k16_store_d_f16_row_stride,  // llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f16
+    nvvm_wmma_m16n16k16_store_d_f32_row_stride,  // llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f32
+    nvvm_wmma_m32n8k16_load_a_f16_col,         // llvm.nvvm.wmma.m32n8k16.load.a.col.f16
+    nvvm_wmma_m32n8k16_load_a_f16_col_stride,  // llvm.nvvm.wmma.m32n8k16.load.a.col.stride.f16
+    nvvm_wmma_m32n8k16_load_a_f16_row,         // llvm.nvvm.wmma.m32n8k16.load.a.row.f16
+    nvvm_wmma_m32n8k16_load_a_f16_row_stride,  // llvm.nvvm.wmma.m32n8k16.load.a.row.stride.f16
+    nvvm_wmma_m32n8k16_load_b_f16_col,         // llvm.nvvm.wmma.m32n8k16.load.b.col.f16
+    nvvm_wmma_m32n8k16_load_b_f16_col_stride,  // llvm.nvvm.wmma.m32n8k16.load.b.col.stride.f16
+    nvvm_wmma_m32n8k16_load_b_f16_row,         // llvm.nvvm.wmma.m32n8k16.load.b.row.f16
+    nvvm_wmma_m32n8k16_load_b_f16_row_stride,  // llvm.nvvm.wmma.m32n8k16.load.b.row.stride.f16
+    nvvm_wmma_m32n8k16_load_c_f16_col,         // llvm.nvvm.wmma.m32n8k16.load.c.col.f16
+    nvvm_wmma_m32n8k16_load_c_f32_col,         // llvm.nvvm.wmma.m32n8k16.load.c.col.f32
+    nvvm_wmma_m32n8k16_load_c_f16_col_stride,  // llvm.nvvm.wmma.m32n8k16.load.c.col.stride.f16
+    nvvm_wmma_m32n8k16_load_c_f32_col_stride,  // llvm.nvvm.wmma.m32n8k16.load.c.col.stride.f32
+    nvvm_wmma_m32n8k16_load_c_f16_row,         // llvm.nvvm.wmma.m32n8k16.load.c.row.f16
+    nvvm_wmma_m32n8k16_load_c_f32_row,         // llvm.nvvm.wmma.m32n8k16.load.c.row.f32
+    nvvm_wmma_m32n8k16_load_c_f16_row_stride,  // llvm.nvvm.wmma.m32n8k16.load.c.row.stride.f16
+    nvvm_wmma_m32n8k16_load_c_f32_row_stride,  // llvm.nvvm.wmma.m32n8k16.load.c.row.stride.f32
+    nvvm_wmma_m32n8k16_mma_col_col_f16_f16,    // llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f16
+    nvvm_wmma_m32n8k16_mma_col_col_f16_f16_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f16.satfinite
+    nvvm_wmma_m32n8k16_mma_col_col_f16_f32,    // llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f32
+    nvvm_wmma_m32n8k16_mma_col_col_f16_f32_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f32.satfinite
+    nvvm_wmma_m32n8k16_mma_col_col_f32_f16,    // llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f16
+    nvvm_wmma_m32n8k16_mma_col_col_f32_f16_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f16.satfinite
+    nvvm_wmma_m32n8k16_mma_col_col_f32_f32,    // llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f32
+    nvvm_wmma_m32n8k16_mma_col_col_f32_f32_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f32.satfinite
+    nvvm_wmma_m32n8k16_mma_col_row_f16_f16,    // llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f16
+    nvvm_wmma_m32n8k16_mma_col_row_f16_f16_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f16.satfinite
+    nvvm_wmma_m32n8k16_mma_col_row_f16_f32,    // llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f32
+    nvvm_wmma_m32n8k16_mma_col_row_f16_f32_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f32.satfinite
+    nvvm_wmma_m32n8k16_mma_col_row_f32_f16,    // llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f16
+    nvvm_wmma_m32n8k16_mma_col_row_f32_f16_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f16.satfinite
+    nvvm_wmma_m32n8k16_mma_col_row_f32_f32,    // llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f32
+    nvvm_wmma_m32n8k16_mma_col_row_f32_f32_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f32.satfinite
+    nvvm_wmma_m32n8k16_mma_row_col_f16_f16,    // llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f16
+    nvvm_wmma_m32n8k16_mma_row_col_f16_f16_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f16.satfinite
+    nvvm_wmma_m32n8k16_mma_row_col_f16_f32,    // llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f32
+    nvvm_wmma_m32n8k16_mma_row_col_f16_f32_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f32.satfinite
+    nvvm_wmma_m32n8k16_mma_row_col_f32_f16,    // llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f16
+    nvvm_wmma_m32n8k16_mma_row_col_f32_f16_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f16.satfinite
+    nvvm_wmma_m32n8k16_mma_row_col_f32_f32,    // llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f32
+    nvvm_wmma_m32n8k16_mma_row_col_f32_f32_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f32.satfinite
+    nvvm_wmma_m32n8k16_mma_row_row_f16_f16,    // llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f16
+    nvvm_wmma_m32n8k16_mma_row_row_f16_f16_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f16.satfinite
+    nvvm_wmma_m32n8k16_mma_row_row_f16_f32,    // llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f32
+    nvvm_wmma_m32n8k16_mma_row_row_f16_f32_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f32.satfinite
+    nvvm_wmma_m32n8k16_mma_row_row_f32_f16,    // llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f16
+    nvvm_wmma_m32n8k16_mma_row_row_f32_f16_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f16.satfinite
+    nvvm_wmma_m32n8k16_mma_row_row_f32_f32,    // llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f32
+    nvvm_wmma_m32n8k16_mma_row_row_f32_f32_satfinite,  // llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f32.satfinite
+    nvvm_wmma_m32n8k16_store_d_f16_col,        // llvm.nvvm.wmma.m32n8k16.store.d.col.f16
+    nvvm_wmma_m32n8k16_store_d_f32_col,        // llvm.nvvm.wmma.m32n8k16.store.d.col.f32
+    nvvm_wmma_m32n8k16_store_d_f16_col_stride,  // llvm.nvvm.wmma.m32n8k16.store.d.col.stride.f16
+    nvvm_wmma_m32n8k16_store_d_f32_col_stride,  // llvm.nvvm.wmma.m32n8k16.store.d.col.stride.f32
+    nvvm_wmma_m32n8k16_store_d_f16_row,        // llvm.nvvm.wmma.m32n8k16.store.d.row.f16
+    nvvm_wmma_m32n8k16_store_d_f32_row,        // llvm.nvvm.wmma.m32n8k16.store.d.row.f32
+    nvvm_wmma_m32n8k16_store_d_f16_row_stride,  // llvm.nvvm.wmma.m32n8k16.store.d.row.stride.f16
+    nvvm_wmma_m32n8k16_store_d_f32_row_stride,  // llvm.nvvm.wmma.m32n8k16.store.d.row.stride.f32
+    nvvm_wmma_m8n32k16_load_a_f16_col,         // llvm.nvvm.wmma.m8n32k16.load.a.col.f16
+    nvvm_wmma_m8n32k16_load_a_f16_col_stride,  // llvm.nvvm.wmma.m8n32k16.load.a.col.stride.f16
+    nvvm_wmma_m8n32k16_load_a_f16_row,         // llvm.nvvm.wmma.m8n32k16.load.a.row.f16
+    nvvm_wmma_m8n32k16_load_a_f16_row_stride,  // llvm.nvvm.wmma.m8n32k16.load.a.row.stride.f16
+    nvvm_wmma_m8n32k16_load_b_f16_col,         // llvm.nvvm.wmma.m8n32k16.load.b.col.f16
+    nvvm_wmma_m8n32k16_load_b_f16_col_stride,  // llvm.nvvm.wmma.m8n32k16.load.b.col.stride.f16
+    nvvm_wmma_m8n32k16_load_b_f16_row,         // llvm.nvvm.wmma.m8n32k16.load.b.row.f16
+    nvvm_wmma_m8n32k16_load_b_f16_row_stride,  // llvm.nvvm.wmma.m8n32k16.load.b.row.stride.f16
+    nvvm_wmma_m8n32k16_load_c_f16_col,         // llvm.nvvm.wmma.m8n32k16.load.c.col.f16
+    nvvm_wmma_m8n32k16_load_c_f32_col,         // llvm.nvvm.wmma.m8n32k16.load.c.col.f32
+    nvvm_wmma_m8n32k16_load_c_f16_col_stride,  // llvm.nvvm.wmma.m8n32k16.load.c.col.stride.f16
+    nvvm_wmma_m8n32k16_load_c_f32_col_stride,  // llvm.nvvm.wmma.m8n32k16.load.c.col.stride.f32
+    nvvm_wmma_m8n32k16_load_c_f16_row,         // llvm.nvvm.wmma.m8n32k16.load.c.row.f16
+    nvvm_wmma_m8n32k16_load_c_f32_row,         // llvm.nvvm.wmma.m8n32k16.load.c.row.f32
+    nvvm_wmma_m8n32k16_load_c_f16_row_stride,  // llvm.nvvm.wmma.m8n32k16.load.c.row.stride.f16
+    nvvm_wmma_m8n32k16_load_c_f32_row_stride,  // llvm.nvvm.wmma.m8n32k16.load.c.row.stride.f32
+    nvvm_wmma_m8n32k16_mma_col_col_f16_f16,    // llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f16
+    nvvm_wmma_m8n32k16_mma_col_col_f16_f16_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f16.satfinite
+    nvvm_wmma_m8n32k16_mma_col_col_f16_f32,    // llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f32
+    nvvm_wmma_m8n32k16_mma_col_col_f16_f32_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f32.satfinite
+    nvvm_wmma_m8n32k16_mma_col_col_f32_f16,    // llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f16
+    nvvm_wmma_m8n32k16_mma_col_col_f32_f16_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f16.satfinite
+    nvvm_wmma_m8n32k16_mma_col_col_f32_f32,    // llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f32
+    nvvm_wmma_m8n32k16_mma_col_col_f32_f32_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f32.satfinite
+    nvvm_wmma_m8n32k16_mma_col_row_f16_f16,    // llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f16
+    nvvm_wmma_m8n32k16_mma_col_row_f16_f16_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f16.satfinite
+    nvvm_wmma_m8n32k16_mma_col_row_f16_f32,    // llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f32
+    nvvm_wmma_m8n32k16_mma_col_row_f16_f32_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f32.satfinite
+    nvvm_wmma_m8n32k16_mma_col_row_f32_f16,    // llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f16
+    nvvm_wmma_m8n32k16_mma_col_row_f32_f16_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f16.satfinite
+    nvvm_wmma_m8n32k16_mma_col_row_f32_f32,    // llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f32
+    nvvm_wmma_m8n32k16_mma_col_row_f32_f32_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f32.satfinite
+    nvvm_wmma_m8n32k16_mma_row_col_f16_f16,    // llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f16
+    nvvm_wmma_m8n32k16_mma_row_col_f16_f16_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f16.satfinite
+    nvvm_wmma_m8n32k16_mma_row_col_f16_f32,    // llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f32
+    nvvm_wmma_m8n32k16_mma_row_col_f16_f32_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f32.satfinite
+    nvvm_wmma_m8n32k16_mma_row_col_f32_f16,    // llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f16
+    nvvm_wmma_m8n32k16_mma_row_col_f32_f16_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f16.satfinite
+    nvvm_wmma_m8n32k16_mma_row_col_f32_f32,    // llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f32
+    nvvm_wmma_m8n32k16_mma_row_col_f32_f32_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f32.satfinite
+    nvvm_wmma_m8n32k16_mma_row_row_f16_f16,    // llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f16
+    nvvm_wmma_m8n32k16_mma_row_row_f16_f16_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f16.satfinite
+    nvvm_wmma_m8n32k16_mma_row_row_f16_f32,    // llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f32
+    nvvm_wmma_m8n32k16_mma_row_row_f16_f32_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f32.satfinite
+    nvvm_wmma_m8n32k16_mma_row_row_f32_f16,    // llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f16
+    nvvm_wmma_m8n32k16_mma_row_row_f32_f16_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f16.satfinite
+    nvvm_wmma_m8n32k16_mma_row_row_f32_f32,    // llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f32
+    nvvm_wmma_m8n32k16_mma_row_row_f32_f32_satfinite,  // llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f32.satfinite
+    nvvm_wmma_m8n32k16_store_d_f16_col,        // llvm.nvvm.wmma.m8n32k16.store.d.col.f16
+    nvvm_wmma_m8n32k16_store_d_f32_col,        // llvm.nvvm.wmma.m8n32k16.store.d.col.f32
+    nvvm_wmma_m8n32k16_store_d_f16_col_stride,  // llvm.nvvm.wmma.m8n32k16.store.d.col.stride.f16
+    nvvm_wmma_m8n32k16_store_d_f32_col_stride,  // llvm.nvvm.wmma.m8n32k16.store.d.col.stride.f32
+    nvvm_wmma_m8n32k16_store_d_f16_row,        // llvm.nvvm.wmma.m8n32k16.store.d.row.f16
+    nvvm_wmma_m8n32k16_store_d_f32_row,        // llvm.nvvm.wmma.m8n32k16.store.d.row.f32
+    nvvm_wmma_m8n32k16_store_d_f16_row_stride,  // llvm.nvvm.wmma.m8n32k16.store.d.row.stride.f16
+    nvvm_wmma_m8n32k16_store_d_f32_row_stride,  // llvm.nvvm.wmma.m8n32k16.store.d.row.stride.f32
+    ppc_addf128_round_to_odd,                  // llvm.ppc.addf128.round.to.odd
+    ppc_altivec_crypto_vcipher,                // llvm.ppc.altivec.crypto.vcipher
+    ppc_altivec_crypto_vcipherlast,            // llvm.ppc.altivec.crypto.vcipherlast
+    ppc_altivec_crypto_vncipher,               // llvm.ppc.altivec.crypto.vncipher
+    ppc_altivec_crypto_vncipherlast,           // llvm.ppc.altivec.crypto.vncipherlast
+    ppc_altivec_crypto_vpermxor,               // llvm.ppc.altivec.crypto.vpermxor
+    ppc_altivec_crypto_vpmsumb,                // llvm.ppc.altivec.crypto.vpmsumb
+    ppc_altivec_crypto_vpmsumd,                // llvm.ppc.altivec.crypto.vpmsumd
+    ppc_altivec_crypto_vpmsumh,                // llvm.ppc.altivec.crypto.vpmsumh
+    ppc_altivec_crypto_vpmsumw,                // llvm.ppc.altivec.crypto.vpmsumw
+    ppc_altivec_crypto_vsbox,                  // llvm.ppc.altivec.crypto.vsbox
+    ppc_altivec_crypto_vshasigmad,             // llvm.ppc.altivec.crypto.vshasigmad
+    ppc_altivec_crypto_vshasigmaw,             // llvm.ppc.altivec.crypto.vshasigmaw
+    ppc_altivec_dss,                           // llvm.ppc.altivec.dss
+    ppc_altivec_dssall,                        // llvm.ppc.altivec.dssall
+    ppc_altivec_dst,                           // llvm.ppc.altivec.dst
+    ppc_altivec_dstst,                         // llvm.ppc.altivec.dstst
+    ppc_altivec_dststt,                        // llvm.ppc.altivec.dststt
+    ppc_altivec_dstt,                          // llvm.ppc.altivec.dstt
+    ppc_altivec_lvebx,                         // llvm.ppc.altivec.lvebx
+    ppc_altivec_lvehx,                         // llvm.ppc.altivec.lvehx
+    ppc_altivec_lvewx,                         // llvm.ppc.altivec.lvewx
+    ppc_altivec_lvsl,                          // llvm.ppc.altivec.lvsl
+    ppc_altivec_lvsr,                          // llvm.ppc.altivec.lvsr
+    ppc_altivec_lvx,                           // llvm.ppc.altivec.lvx
+    ppc_altivec_lvxl,                          // llvm.ppc.altivec.lvxl
+    ppc_altivec_mfvscr,                        // llvm.ppc.altivec.mfvscr
+    ppc_altivec_mtvscr,                        // llvm.ppc.altivec.mtvscr
+    ppc_altivec_stvebx,                        // llvm.ppc.altivec.stvebx
+    ppc_altivec_stvehx,                        // llvm.ppc.altivec.stvehx
+    ppc_altivec_stvewx,                        // llvm.ppc.altivec.stvewx
+    ppc_altivec_stvx,                          // llvm.ppc.altivec.stvx
+    ppc_altivec_stvxl,                         // llvm.ppc.altivec.stvxl
+    ppc_altivec_vabsdub,                       // llvm.ppc.altivec.vabsdub
+    ppc_altivec_vabsduh,                       // llvm.ppc.altivec.vabsduh
+    ppc_altivec_vabsduw,                       // llvm.ppc.altivec.vabsduw
+    ppc_altivec_vaddcuq,                       // llvm.ppc.altivec.vaddcuq
+    ppc_altivec_vaddcuw,                       // llvm.ppc.altivec.vaddcuw
+    ppc_altivec_vaddecuq,                      // llvm.ppc.altivec.vaddecuq
+    ppc_altivec_vaddeuqm,                      // llvm.ppc.altivec.vaddeuqm
+    ppc_altivec_vaddsbs,                       // llvm.ppc.altivec.vaddsbs
+    ppc_altivec_vaddshs,                       // llvm.ppc.altivec.vaddshs
+    ppc_altivec_vaddsws,                       // llvm.ppc.altivec.vaddsws
+    ppc_altivec_vaddubs,                       // llvm.ppc.altivec.vaddubs
+    ppc_altivec_vadduhs,                       // llvm.ppc.altivec.vadduhs
+    ppc_altivec_vadduws,                       // llvm.ppc.altivec.vadduws
+    ppc_altivec_vavgsb,                        // llvm.ppc.altivec.vavgsb
+    ppc_altivec_vavgsh,                        // llvm.ppc.altivec.vavgsh
+    ppc_altivec_vavgsw,                        // llvm.ppc.altivec.vavgsw
+    ppc_altivec_vavgub,                        // llvm.ppc.altivec.vavgub
+    ppc_altivec_vavguh,                        // llvm.ppc.altivec.vavguh
+    ppc_altivec_vavguw,                        // llvm.ppc.altivec.vavguw
+    ppc_altivec_vbpermq,                       // llvm.ppc.altivec.vbpermq
+    ppc_altivec_vcfsx,                         // llvm.ppc.altivec.vcfsx
+    ppc_altivec_vcfux,                         // llvm.ppc.altivec.vcfux
+    ppc_altivec_vclzlsbb,                      // llvm.ppc.altivec.vclzlsbb
+    ppc_altivec_vcmpbfp,                       // llvm.ppc.altivec.vcmpbfp
+    ppc_altivec_vcmpbfp_p,                     // llvm.ppc.altivec.vcmpbfp.p
+    ppc_altivec_vcmpeqfp,                      // llvm.ppc.altivec.vcmpeqfp
+    ppc_altivec_vcmpeqfp_p,                    // llvm.ppc.altivec.vcmpeqfp.p
+    ppc_altivec_vcmpequb,                      // llvm.ppc.altivec.vcmpequb
+    ppc_altivec_vcmpequb_p,                    // llvm.ppc.altivec.vcmpequb.p
+    ppc_altivec_vcmpequd,                      // llvm.ppc.altivec.vcmpequd
+    ppc_altivec_vcmpequd_p,                    // llvm.ppc.altivec.vcmpequd.p
+    ppc_altivec_vcmpequh,                      // llvm.ppc.altivec.vcmpequh
+    ppc_altivec_vcmpequh_p,                    // llvm.ppc.altivec.vcmpequh.p
+    ppc_altivec_vcmpequw,                      // llvm.ppc.altivec.vcmpequw
+    ppc_altivec_vcmpequw_p,                    // llvm.ppc.altivec.vcmpequw.p
+    ppc_altivec_vcmpgefp,                      // llvm.ppc.altivec.vcmpgefp
+    ppc_altivec_vcmpgefp_p,                    // llvm.ppc.altivec.vcmpgefp.p
+    ppc_altivec_vcmpgtfp,                      // llvm.ppc.altivec.vcmpgtfp
+    ppc_altivec_vcmpgtfp_p,                    // llvm.ppc.altivec.vcmpgtfp.p
+    ppc_altivec_vcmpgtsb,                      // llvm.ppc.altivec.vcmpgtsb
+    ppc_altivec_vcmpgtsb_p,                    // llvm.ppc.altivec.vcmpgtsb.p
+    ppc_altivec_vcmpgtsd,                      // llvm.ppc.altivec.vcmpgtsd
+    ppc_altivec_vcmpgtsd_p,                    // llvm.ppc.altivec.vcmpgtsd.p
+    ppc_altivec_vcmpgtsh,                      // llvm.ppc.altivec.vcmpgtsh
+    ppc_altivec_vcmpgtsh_p,                    // llvm.ppc.altivec.vcmpgtsh.p
+    ppc_altivec_vcmpgtsw,                      // llvm.ppc.altivec.vcmpgtsw
+    ppc_altivec_vcmpgtsw_p,                    // llvm.ppc.altivec.vcmpgtsw.p
+    ppc_altivec_vcmpgtub,                      // llvm.ppc.altivec.vcmpgtub
+    ppc_altivec_vcmpgtub_p,                    // llvm.ppc.altivec.vcmpgtub.p
+    ppc_altivec_vcmpgtud,                      // llvm.ppc.altivec.vcmpgtud
+    ppc_altivec_vcmpgtud_p,                    // llvm.ppc.altivec.vcmpgtud.p
+    ppc_altivec_vcmpgtuh,                      // llvm.ppc.altivec.vcmpgtuh
+    ppc_altivec_vcmpgtuh_p,                    // llvm.ppc.altivec.vcmpgtuh.p
+    ppc_altivec_vcmpgtuw,                      // llvm.ppc.altivec.vcmpgtuw
+    ppc_altivec_vcmpgtuw_p,                    // llvm.ppc.altivec.vcmpgtuw.p
+    ppc_altivec_vcmpneb,                       // llvm.ppc.altivec.vcmpneb
+    ppc_altivec_vcmpneb_p,                     // llvm.ppc.altivec.vcmpneb.p
+    ppc_altivec_vcmpneh,                       // llvm.ppc.altivec.vcmpneh
+    ppc_altivec_vcmpneh_p,                     // llvm.ppc.altivec.vcmpneh.p
+    ppc_altivec_vcmpnew,                       // llvm.ppc.altivec.vcmpnew
+    ppc_altivec_vcmpnew_p,                     // llvm.ppc.altivec.vcmpnew.p
+    ppc_altivec_vcmpnezb,                      // llvm.ppc.altivec.vcmpnezb
+    ppc_altivec_vcmpnezb_p,                    // llvm.ppc.altivec.vcmpnezb.p
+    ppc_altivec_vcmpnezh,                      // llvm.ppc.altivec.vcmpnezh
+    ppc_altivec_vcmpnezh_p,                    // llvm.ppc.altivec.vcmpnezh.p
+    ppc_altivec_vcmpnezw,                      // llvm.ppc.altivec.vcmpnezw
+    ppc_altivec_vcmpnezw_p,                    // llvm.ppc.altivec.vcmpnezw.p
+    ppc_altivec_vctsxs,                        // llvm.ppc.altivec.vctsxs
+    ppc_altivec_vctuxs,                        // llvm.ppc.altivec.vctuxs
+    ppc_altivec_vctzlsbb,                      // llvm.ppc.altivec.vctzlsbb
+    ppc_altivec_vexptefp,                      // llvm.ppc.altivec.vexptefp
+    ppc_altivec_vgbbd,                         // llvm.ppc.altivec.vgbbd
+    ppc_altivec_vlogefp,                       // llvm.ppc.altivec.vlogefp
+    ppc_altivec_vmaddfp,                       // llvm.ppc.altivec.vmaddfp
+    ppc_altivec_vmaxfp,                        // llvm.ppc.altivec.vmaxfp
+    ppc_altivec_vmaxsb,                        // llvm.ppc.altivec.vmaxsb
+    ppc_altivec_vmaxsd,                        // llvm.ppc.altivec.vmaxsd
+    ppc_altivec_vmaxsh,                        // llvm.ppc.altivec.vmaxsh
+    ppc_altivec_vmaxsw,                        // llvm.ppc.altivec.vmaxsw
+    ppc_altivec_vmaxub,                        // llvm.ppc.altivec.vmaxub
+    ppc_altivec_vmaxud,                        // llvm.ppc.altivec.vmaxud
+    ppc_altivec_vmaxuh,                        // llvm.ppc.altivec.vmaxuh
+    ppc_altivec_vmaxuw,                        // llvm.ppc.altivec.vmaxuw
+    ppc_altivec_vmhaddshs,                     // llvm.ppc.altivec.vmhaddshs
+    ppc_altivec_vmhraddshs,                    // llvm.ppc.altivec.vmhraddshs
+    ppc_altivec_vminfp,                        // llvm.ppc.altivec.vminfp
+    ppc_altivec_vminsb,                        // llvm.ppc.altivec.vminsb
+    ppc_altivec_vminsd,                        // llvm.ppc.altivec.vminsd
+    ppc_altivec_vminsh,                        // llvm.ppc.altivec.vminsh
+    ppc_altivec_vminsw,                        // llvm.ppc.altivec.vminsw
+    ppc_altivec_vminub,                        // llvm.ppc.altivec.vminub
+    ppc_altivec_vminud,                        // llvm.ppc.altivec.vminud
+    ppc_altivec_vminuh,                        // llvm.ppc.altivec.vminuh
+    ppc_altivec_vminuw,                        // llvm.ppc.altivec.vminuw
+    ppc_altivec_vmladduhm,                     // llvm.ppc.altivec.vmladduhm
+    ppc_altivec_vmsummbm,                      // llvm.ppc.altivec.vmsummbm
+    ppc_altivec_vmsumshm,                      // llvm.ppc.altivec.vmsumshm
+    ppc_altivec_vmsumshs,                      // llvm.ppc.altivec.vmsumshs
+    ppc_altivec_vmsumubm,                      // llvm.ppc.altivec.vmsumubm
+    ppc_altivec_vmsumuhm,                      // llvm.ppc.altivec.vmsumuhm
+    ppc_altivec_vmsumuhs,                      // llvm.ppc.altivec.vmsumuhs
+    ppc_altivec_vmulesb,                       // llvm.ppc.altivec.vmulesb
+    ppc_altivec_vmulesh,                       // llvm.ppc.altivec.vmulesh
+    ppc_altivec_vmulesw,                       // llvm.ppc.altivec.vmulesw
+    ppc_altivec_vmuleub,                       // llvm.ppc.altivec.vmuleub
+    ppc_altivec_vmuleuh,                       // llvm.ppc.altivec.vmuleuh
+    ppc_altivec_vmuleuw,                       // llvm.ppc.altivec.vmuleuw
+    ppc_altivec_vmulosb,                       // llvm.ppc.altivec.vmulosb
+    ppc_altivec_vmulosh,                       // llvm.ppc.altivec.vmulosh
+    ppc_altivec_vmulosw,                       // llvm.ppc.altivec.vmulosw
+    ppc_altivec_vmuloub,                       // llvm.ppc.altivec.vmuloub
+    ppc_altivec_vmulouh,                       // llvm.ppc.altivec.vmulouh
+    ppc_altivec_vmulouw,                       // llvm.ppc.altivec.vmulouw
+    ppc_altivec_vnmsubfp,                      // llvm.ppc.altivec.vnmsubfp
+    ppc_altivec_vperm,                         // llvm.ppc.altivec.vperm
+    ppc_altivec_vpkpx,                         // llvm.ppc.altivec.vpkpx
+    ppc_altivec_vpksdss,                       // llvm.ppc.altivec.vpksdss
+    ppc_altivec_vpksdus,                       // llvm.ppc.altivec.vpksdus
+    ppc_altivec_vpkshss,                       // llvm.ppc.altivec.vpkshss
+    ppc_altivec_vpkshus,                       // llvm.ppc.altivec.vpkshus
+    ppc_altivec_vpkswss,                       // llvm.ppc.altivec.vpkswss
+    ppc_altivec_vpkswus,                       // llvm.ppc.altivec.vpkswus
+    ppc_altivec_vpkudus,                       // llvm.ppc.altivec.vpkudus
+    ppc_altivec_vpkuhus,                       // llvm.ppc.altivec.vpkuhus
+    ppc_altivec_vpkuwus,                       // llvm.ppc.altivec.vpkuwus
+    ppc_altivec_vprtybd,                       // llvm.ppc.altivec.vprtybd
+    ppc_altivec_vprtybq,                       // llvm.ppc.altivec.vprtybq
+    ppc_altivec_vprtybw,                       // llvm.ppc.altivec.vprtybw
+    ppc_altivec_vrefp,                         // llvm.ppc.altivec.vrefp
+    ppc_altivec_vrfim,                         // llvm.ppc.altivec.vrfim
+    ppc_altivec_vrfin,                         // llvm.ppc.altivec.vrfin
+    ppc_altivec_vrfip,                         // llvm.ppc.altivec.vrfip
+    ppc_altivec_vrfiz,                         // llvm.ppc.altivec.vrfiz
+    ppc_altivec_vrlb,                          // llvm.ppc.altivec.vrlb
+    ppc_altivec_vrld,                          // llvm.ppc.altivec.vrld
+    ppc_altivec_vrldmi,                        // llvm.ppc.altivec.vrldmi
+    ppc_altivec_vrldnm,                        // llvm.ppc.altivec.vrldnm
+    ppc_altivec_vrlh,                          // llvm.ppc.altivec.vrlh
+    ppc_altivec_vrlw,                          // llvm.ppc.altivec.vrlw
+    ppc_altivec_vrlwmi,                        // llvm.ppc.altivec.vrlwmi
+    ppc_altivec_vrlwnm,                        // llvm.ppc.altivec.vrlwnm
+    ppc_altivec_vrsqrtefp,                     // llvm.ppc.altivec.vrsqrtefp
+    ppc_altivec_vsel,                          // llvm.ppc.altivec.vsel
+    ppc_altivec_vsl,                           // llvm.ppc.altivec.vsl
+    ppc_altivec_vslb,                          // llvm.ppc.altivec.vslb
+    ppc_altivec_vslh,                          // llvm.ppc.altivec.vslh
+    ppc_altivec_vslo,                          // llvm.ppc.altivec.vslo
+    ppc_altivec_vslv,                          // llvm.ppc.altivec.vslv
+    ppc_altivec_vslw,                          // llvm.ppc.altivec.vslw
+    ppc_altivec_vsr,                           // llvm.ppc.altivec.vsr
+    ppc_altivec_vsrab,                         // llvm.ppc.altivec.vsrab
+    ppc_altivec_vsrah,                         // llvm.ppc.altivec.vsrah
+    ppc_altivec_vsraw,                         // llvm.ppc.altivec.vsraw
+    ppc_altivec_vsrb,                          // llvm.ppc.altivec.vsrb
+    ppc_altivec_vsrh,                          // llvm.ppc.altivec.vsrh
+    ppc_altivec_vsro,                          // llvm.ppc.altivec.vsro
+    ppc_altivec_vsrv,                          // llvm.ppc.altivec.vsrv
+    ppc_altivec_vsrw,                          // llvm.ppc.altivec.vsrw
+    ppc_altivec_vsubcuq,                       // llvm.ppc.altivec.vsubcuq
+    ppc_altivec_vsubcuw,                       // llvm.ppc.altivec.vsubcuw
+    ppc_altivec_vsubecuq,                      // llvm.ppc.altivec.vsubecuq
+    ppc_altivec_vsubeuqm,                      // llvm.ppc.altivec.vsubeuqm
+    ppc_altivec_vsubsbs,                       // llvm.ppc.altivec.vsubsbs
+    ppc_altivec_vsubshs,                       // llvm.ppc.altivec.vsubshs
+    ppc_altivec_vsubsws,                       // llvm.ppc.altivec.vsubsws
+    ppc_altivec_vsububs,                       // llvm.ppc.altivec.vsububs
+    ppc_altivec_vsubuhs,                       // llvm.ppc.altivec.vsubuhs
+    ppc_altivec_vsubuws,                       // llvm.ppc.altivec.vsubuws
+    ppc_altivec_vsum2sws,                      // llvm.ppc.altivec.vsum2sws
+    ppc_altivec_vsum4sbs,                      // llvm.ppc.altivec.vsum4sbs
+    ppc_altivec_vsum4shs,                      // llvm.ppc.altivec.vsum4shs
+    ppc_altivec_vsum4ubs,                      // llvm.ppc.altivec.vsum4ubs
+    ppc_altivec_vsumsws,                       // llvm.ppc.altivec.vsumsws
+    ppc_altivec_vupkhpx,                       // llvm.ppc.altivec.vupkhpx
+    ppc_altivec_vupkhsb,                       // llvm.ppc.altivec.vupkhsb
+    ppc_altivec_vupkhsh,                       // llvm.ppc.altivec.vupkhsh
+    ppc_altivec_vupkhsw,                       // llvm.ppc.altivec.vupkhsw
+    ppc_altivec_vupklpx,                       // llvm.ppc.altivec.vupklpx
+    ppc_altivec_vupklsb,                       // llvm.ppc.altivec.vupklsb
+    ppc_altivec_vupklsh,                       // llvm.ppc.altivec.vupklsh
+    ppc_altivec_vupklsw,                       // llvm.ppc.altivec.vupklsw
+    ppc_bpermd,                                // llvm.ppc.bpermd
+    ppc_cfence,                                // llvm.ppc.cfence
+    ppc_dcba,                                  // llvm.ppc.dcba
+    ppc_dcbf,                                  // llvm.ppc.dcbf
+    ppc_dcbi,                                  // llvm.ppc.dcbi
+    ppc_dcbst,                                 // llvm.ppc.dcbst
+    ppc_dcbt,                                  // llvm.ppc.dcbt
+    ppc_dcbtst,                                // llvm.ppc.dcbtst
+    ppc_dcbz,                                  // llvm.ppc.dcbz
+    ppc_dcbzl,                                 // llvm.ppc.dcbzl
+    ppc_divde,                                 // llvm.ppc.divde
+    ppc_divdeu,                                // llvm.ppc.divdeu
+    ppc_divf128_round_to_odd,                  // llvm.ppc.divf128.round.to.odd
+    ppc_divwe,                                 // llvm.ppc.divwe
+    ppc_divweu,                                // llvm.ppc.divweu
+    ppc_fmaf128_round_to_odd,                  // llvm.ppc.fmaf128.round.to.odd
+    ppc_get_texasr,                            // llvm.ppc.get.texasr
+    ppc_get_texasru,                           // llvm.ppc.get.texasru
+    ppc_get_tfhar,                             // llvm.ppc.get.tfhar
+    ppc_get_tfiar,                             // llvm.ppc.get.tfiar
+    ppc_is_decremented_ctr_nonzero,            // llvm.ppc.is.decremented.ctr.nonzero
+    ppc_lwsync,                                // llvm.ppc.lwsync
+    ppc_mtctr,                                 // llvm.ppc.mtctr
+    ppc_mulf128_round_to_odd,                  // llvm.ppc.mulf128.round.to.odd
+    ppc_qpx_qvfabs,                            // llvm.ppc.qpx.qvfabs
+    ppc_qpx_qvfadd,                            // llvm.ppc.qpx.qvfadd
+    ppc_qpx_qvfadds,                           // llvm.ppc.qpx.qvfadds
+    ppc_qpx_qvfcfid,                           // llvm.ppc.qpx.qvfcfid
+    ppc_qpx_qvfcfids,                          // llvm.ppc.qpx.qvfcfids
+    ppc_qpx_qvfcfidu,                          // llvm.ppc.qpx.qvfcfidu
+    ppc_qpx_qvfcfidus,                         // llvm.ppc.qpx.qvfcfidus
+    ppc_qpx_qvfcmpeq,                          // llvm.ppc.qpx.qvfcmpeq
+    ppc_qpx_qvfcmpgt,                          // llvm.ppc.qpx.qvfcmpgt
+    ppc_qpx_qvfcmplt,                          // llvm.ppc.qpx.qvfcmplt
+    ppc_qpx_qvfcpsgn,                          // llvm.ppc.qpx.qvfcpsgn
+    ppc_qpx_qvfctid,                           // llvm.ppc.qpx.qvfctid
+    ppc_qpx_qvfctidu,                          // llvm.ppc.qpx.qvfctidu
+    ppc_qpx_qvfctiduz,                         // llvm.ppc.qpx.qvfctiduz
+    ppc_qpx_qvfctidz,                          // llvm.ppc.qpx.qvfctidz
+    ppc_qpx_qvfctiw,                           // llvm.ppc.qpx.qvfctiw
+    ppc_qpx_qvfctiwu,                          // llvm.ppc.qpx.qvfctiwu
+    ppc_qpx_qvfctiwuz,                         // llvm.ppc.qpx.qvfctiwuz
+    ppc_qpx_qvfctiwz,                          // llvm.ppc.qpx.qvfctiwz
+    ppc_qpx_qvflogical,                        // llvm.ppc.qpx.qvflogical
+    ppc_qpx_qvfmadd,                           // llvm.ppc.qpx.qvfmadd
+    ppc_qpx_qvfmadds,                          // llvm.ppc.qpx.qvfmadds
+    ppc_qpx_qvfmsub,                           // llvm.ppc.qpx.qvfmsub
+    ppc_qpx_qvfmsubs,                          // llvm.ppc.qpx.qvfmsubs
+    ppc_qpx_qvfmul,                            // llvm.ppc.qpx.qvfmul
+    ppc_qpx_qvfmuls,                           // llvm.ppc.qpx.qvfmuls
+    ppc_qpx_qvfnabs,                           // llvm.ppc.qpx.qvfnabs
+    ppc_qpx_qvfneg,                            // llvm.ppc.qpx.qvfneg
+    ppc_qpx_qvfnmadd,                          // llvm.ppc.qpx.qvfnmadd
+    ppc_qpx_qvfnmadds,                         // llvm.ppc.qpx.qvfnmadds
+    ppc_qpx_qvfnmsub,                          // llvm.ppc.qpx.qvfnmsub
+    ppc_qpx_qvfnmsubs,                         // llvm.ppc.qpx.qvfnmsubs
+    ppc_qpx_qvfperm,                           // llvm.ppc.qpx.qvfperm
+    ppc_qpx_qvfre,                             // llvm.ppc.qpx.qvfre
+    ppc_qpx_qvfres,                            // llvm.ppc.qpx.qvfres
+    ppc_qpx_qvfrim,                            // llvm.ppc.qpx.qvfrim
+    ppc_qpx_qvfrin,                            // llvm.ppc.qpx.qvfrin
+    ppc_qpx_qvfrip,                            // llvm.ppc.qpx.qvfrip
+    ppc_qpx_qvfriz,                            // llvm.ppc.qpx.qvfriz
+    ppc_qpx_qvfrsp,                            // llvm.ppc.qpx.qvfrsp
+    ppc_qpx_qvfrsqrte,                         // llvm.ppc.qpx.qvfrsqrte
+    ppc_qpx_qvfrsqrtes,                        // llvm.ppc.qpx.qvfrsqrtes
+    ppc_qpx_qvfsel,                            // llvm.ppc.qpx.qvfsel
+    ppc_qpx_qvfsub,                            // llvm.ppc.qpx.qvfsub
+    ppc_qpx_qvfsubs,                           // llvm.ppc.qpx.qvfsubs
+    ppc_qpx_qvftstnan,                         // llvm.ppc.qpx.qvftstnan
+    ppc_qpx_qvfxmadd,                          // llvm.ppc.qpx.qvfxmadd
+    ppc_qpx_qvfxmadds,                         // llvm.ppc.qpx.qvfxmadds
+    ppc_qpx_qvfxmul,                           // llvm.ppc.qpx.qvfxmul
+    ppc_qpx_qvfxmuls,                          // llvm.ppc.qpx.qvfxmuls
+    ppc_qpx_qvfxxcpnmadd,                      // llvm.ppc.qpx.qvfxxcpnmadd
+    ppc_qpx_qvfxxcpnmadds,                     // llvm.ppc.qpx.qvfxxcpnmadds
+    ppc_qpx_qvfxxmadd,                         // llvm.ppc.qpx.qvfxxmadd
+    ppc_qpx_qvfxxmadds,                        // llvm.ppc.qpx.qvfxxmadds
+    ppc_qpx_qvfxxnpmadd,                       // llvm.ppc.qpx.qvfxxnpmadd
+    ppc_qpx_qvfxxnpmadds,                      // llvm.ppc.qpx.qvfxxnpmadds
+    ppc_qpx_qvgpci,                            // llvm.ppc.qpx.qvgpci
+    ppc_qpx_qvlfcd,                            // llvm.ppc.qpx.qvlfcd
+    ppc_qpx_qvlfcda,                           // llvm.ppc.qpx.qvlfcda
+    ppc_qpx_qvlfcs,                            // llvm.ppc.qpx.qvlfcs
+    ppc_qpx_qvlfcsa,                           // llvm.ppc.qpx.qvlfcsa
+    ppc_qpx_qvlfd,                             // llvm.ppc.qpx.qvlfd
+    ppc_qpx_qvlfda,                            // llvm.ppc.qpx.qvlfda
+    ppc_qpx_qvlfiwa,                           // llvm.ppc.qpx.qvlfiwa
+    ppc_qpx_qvlfiwaa,                          // llvm.ppc.qpx.qvlfiwaa
+    ppc_qpx_qvlfiwz,                           // llvm.ppc.qpx.qvlfiwz
+    ppc_qpx_qvlfiwza,                          // llvm.ppc.qpx.qvlfiwza
+    ppc_qpx_qvlfs,                             // llvm.ppc.qpx.qvlfs
+    ppc_qpx_qvlfsa,                            // llvm.ppc.qpx.qvlfsa
+    ppc_qpx_qvlpcld,                           // llvm.ppc.qpx.qvlpcld
+    ppc_qpx_qvlpcls,                           // llvm.ppc.qpx.qvlpcls
+    ppc_qpx_qvlpcrd,                           // llvm.ppc.qpx.qvlpcrd
+    ppc_qpx_qvlpcrs,                           // llvm.ppc.qpx.qvlpcrs
+    ppc_qpx_qvstfcd,                           // llvm.ppc.qpx.qvstfcd
+    ppc_qpx_qvstfcda,                          // llvm.ppc.qpx.qvstfcda
+    ppc_qpx_qvstfcs,                           // llvm.ppc.qpx.qvstfcs
+    ppc_qpx_qvstfcsa,                          // llvm.ppc.qpx.qvstfcsa
+    ppc_qpx_qvstfd,                            // llvm.ppc.qpx.qvstfd
+    ppc_qpx_qvstfda,                           // llvm.ppc.qpx.qvstfda
+    ppc_qpx_qvstfiw,                           // llvm.ppc.qpx.qvstfiw
+    ppc_qpx_qvstfiwa,                          // llvm.ppc.qpx.qvstfiwa
+    ppc_qpx_qvstfs,                            // llvm.ppc.qpx.qvstfs
+    ppc_qpx_qvstfsa,                           // llvm.ppc.qpx.qvstfsa
+    ppc_set_texasr,                            // llvm.ppc.set.texasr
+    ppc_set_texasru,                           // llvm.ppc.set.texasru
+    ppc_set_tfhar,                             // llvm.ppc.set.tfhar
+    ppc_set_tfiar,                             // llvm.ppc.set.tfiar
+    ppc_sqrtf128_round_to_odd,                 // llvm.ppc.sqrtf128.round.to.odd
+    ppc_subf128_round_to_odd,                  // llvm.ppc.subf128.round.to.odd
+    ppc_sync,                                  // llvm.ppc.sync
+    ppc_tabort,                                // llvm.ppc.tabort
+    ppc_tabortdc,                              // llvm.ppc.tabortdc
+    ppc_tabortdci,                             // llvm.ppc.tabortdci
+    ppc_tabortwc,                              // llvm.ppc.tabortwc
+    ppc_tabortwci,                             // llvm.ppc.tabortwci
+    ppc_tbegin,                                // llvm.ppc.tbegin
+    ppc_tcheck,                                // llvm.ppc.tcheck
+    ppc_tend,                                  // llvm.ppc.tend
+    ppc_tendall,                               // llvm.ppc.tendall
+    ppc_trechkpt,                              // llvm.ppc.trechkpt
+    ppc_treclaim,                              // llvm.ppc.treclaim
+    ppc_tresume,                               // llvm.ppc.tresume
+    ppc_truncf128_round_to_odd,                // llvm.ppc.truncf128.round.to.odd
+    ppc_tsr,                                   // llvm.ppc.tsr
+    ppc_tsuspend,                              // llvm.ppc.tsuspend
+    ppc_ttest,                                 // llvm.ppc.ttest
+    ppc_vsx_lxvd2x,                            // llvm.ppc.vsx.lxvd2x
+    ppc_vsx_lxvd2x_be,                         // llvm.ppc.vsx.lxvd2x.be
+    ppc_vsx_lxvl,                              // llvm.ppc.vsx.lxvl
+    ppc_vsx_lxvll,                             // llvm.ppc.vsx.lxvll
+    ppc_vsx_lxvw4x,                            // llvm.ppc.vsx.lxvw4x
+    ppc_vsx_lxvw4x_be,                         // llvm.ppc.vsx.lxvw4x.be
+    ppc_vsx_stxvd2x,                           // llvm.ppc.vsx.stxvd2x
+    ppc_vsx_stxvd2x_be,                        // llvm.ppc.vsx.stxvd2x.be
+    ppc_vsx_stxvl,                             // llvm.ppc.vsx.stxvl
+    ppc_vsx_stxvll,                            // llvm.ppc.vsx.stxvll
+    ppc_vsx_stxvw4x,                           // llvm.ppc.vsx.stxvw4x
+    ppc_vsx_stxvw4x_be,                        // llvm.ppc.vsx.stxvw4x.be
+    ppc_vsx_xsmaxdp,                           // llvm.ppc.vsx.xsmaxdp
+    ppc_vsx_xsmindp,                           // llvm.ppc.vsx.xsmindp
+    ppc_vsx_xvcmpeqdp,                         // llvm.ppc.vsx.xvcmpeqdp
+    ppc_vsx_xvcmpeqdp_p,                       // llvm.ppc.vsx.xvcmpeqdp.p
+    ppc_vsx_xvcmpeqsp,                         // llvm.ppc.vsx.xvcmpeqsp
+    ppc_vsx_xvcmpeqsp_p,                       // llvm.ppc.vsx.xvcmpeqsp.p
+    ppc_vsx_xvcmpgedp,                         // llvm.ppc.vsx.xvcmpgedp
+    ppc_vsx_xvcmpgedp_p,                       // llvm.ppc.vsx.xvcmpgedp.p
+    ppc_vsx_xvcmpgesp,                         // llvm.ppc.vsx.xvcmpgesp
+    ppc_vsx_xvcmpgesp_p,                       // llvm.ppc.vsx.xvcmpgesp.p
+    ppc_vsx_xvcmpgtdp,                         // llvm.ppc.vsx.xvcmpgtdp
+    ppc_vsx_xvcmpgtdp_p,                       // llvm.ppc.vsx.xvcmpgtdp.p
+    ppc_vsx_xvcmpgtsp,                         // llvm.ppc.vsx.xvcmpgtsp
+    ppc_vsx_xvcmpgtsp_p,                       // llvm.ppc.vsx.xvcmpgtsp.p
+    ppc_vsx_xvcvdpsp,                          // llvm.ppc.vsx.xvcvdpsp
+    ppc_vsx_xvcvdpsxws,                        // llvm.ppc.vsx.xvcvdpsxws
+    ppc_vsx_xvcvdpuxws,                        // llvm.ppc.vsx.xvcvdpuxws
+    ppc_vsx_xvcvhpsp,                          // llvm.ppc.vsx.xvcvhpsp
+    ppc_vsx_xvcvspdp,                          // llvm.ppc.vsx.xvcvspdp
+    ppc_vsx_xvcvsphp,                          // llvm.ppc.vsx.xvcvsphp
+    ppc_vsx_xvcvsxdsp,                         // llvm.ppc.vsx.xvcvsxdsp
+    ppc_vsx_xvcvsxwdp,                         // llvm.ppc.vsx.xvcvsxwdp
+    ppc_vsx_xvcvuxdsp,                         // llvm.ppc.vsx.xvcvuxdsp
+    ppc_vsx_xvcvuxwdp,                         // llvm.ppc.vsx.xvcvuxwdp
+    ppc_vsx_xvdivdp,                           // llvm.ppc.vsx.xvdivdp
+    ppc_vsx_xvdivsp,                           // llvm.ppc.vsx.xvdivsp
+    ppc_vsx_xviexpdp,                          // llvm.ppc.vsx.xviexpdp
+    ppc_vsx_xviexpsp,                          // llvm.ppc.vsx.xviexpsp
+    ppc_vsx_xvmaxdp,                           // llvm.ppc.vsx.xvmaxdp
+    ppc_vsx_xvmaxsp,                           // llvm.ppc.vsx.xvmaxsp
+    ppc_vsx_xvmindp,                           // llvm.ppc.vsx.xvmindp
+    ppc_vsx_xvminsp,                           // llvm.ppc.vsx.xvminsp
+    ppc_vsx_xvrdpip,                           // llvm.ppc.vsx.xvrdpip
+    ppc_vsx_xvredp,                            // llvm.ppc.vsx.xvredp
+    ppc_vsx_xvresp,                            // llvm.ppc.vsx.xvresp
+    ppc_vsx_xvrspip,                           // llvm.ppc.vsx.xvrspip
+    ppc_vsx_xvrsqrtedp,                        // llvm.ppc.vsx.xvrsqrtedp
+    ppc_vsx_xvrsqrtesp,                        // llvm.ppc.vsx.xvrsqrtesp
+    ppc_vsx_xvtstdcdp,                         // llvm.ppc.vsx.xvtstdcdp
+    ppc_vsx_xvtstdcsp,                         // llvm.ppc.vsx.xvtstdcsp
+    ppc_vsx_xvxexpdp,                          // llvm.ppc.vsx.xvxexpdp
+    ppc_vsx_xvxexpsp,                          // llvm.ppc.vsx.xvxexpsp
+    ppc_vsx_xvxsigdp,                          // llvm.ppc.vsx.xvxsigdp
+    ppc_vsx_xvxsigsp,                          // llvm.ppc.vsx.xvxsigsp
+    ppc_vsx_xxextractuw,                       // llvm.ppc.vsx.xxextractuw
+    ppc_vsx_xxinsertw,                         // llvm.ppc.vsx.xxinsertw
+    ppc_vsx_xxleqv,                            // llvm.ppc.vsx.xxleqv
+    r600_cube,                                 // llvm.r600.cube
+    r600_ddx,                                  // llvm.r600.ddx
+    r600_ddy,                                  // llvm.r600.ddy
+    r600_dot4,                                 // llvm.r600.dot4
+    r600_group_barrier,                        // llvm.r600.group.barrier
+    r600_implicitarg_ptr,                      // llvm.r600.implicitarg.ptr
+    r600_kill,                                 // llvm.r600.kill
+    r600_rat_store_typed,                      // llvm.r600.rat.store.typed
+    r600_read_global_size_x,                   // llvm.r600.read.global.size.x
+    r600_read_global_size_y,                   // llvm.r600.read.global.size.y
+    r600_read_global_size_z,                   // llvm.r600.read.global.size.z
+    r600_read_local_size_x,                    // llvm.r600.read.local.size.x
+    r600_read_local_size_y,                    // llvm.r600.read.local.size.y
+    r600_read_local_size_z,                    // llvm.r600.read.local.size.z
+    r600_read_ngroups_x,                       // llvm.r600.read.ngroups.x
+    r600_read_ngroups_y,                       // llvm.r600.read.ngroups.y
+    r600_read_ngroups_z,                       // llvm.r600.read.ngroups.z
+    r600_read_tgid_x,                          // llvm.r600.read.tgid.x
+    r600_read_tgid_y,                          // llvm.r600.read.tgid.y
+    r600_read_tgid_z,                          // llvm.r600.read.tgid.z
+    r600_read_tidig_x,                         // llvm.r600.read.tidig.x
+    r600_read_tidig_y,                         // llvm.r600.read.tidig.y
+    r600_read_tidig_z,                         // llvm.r600.read.tidig.z
+    r600_recipsqrt_clamped,                    // llvm.r600.recipsqrt.clamped
+    r600_recipsqrt_ieee,                       // llvm.r600.recipsqrt.ieee
+    r600_store_stream_output,                  // llvm.r600.store.stream.output
+    r600_store_swizzle,                        // llvm.r600.store.swizzle
+    r600_tex,                                  // llvm.r600.tex
+    r600_texc,                                 // llvm.r600.texc
+    r600_txb,                                  // llvm.r600.txb
+    r600_txbc,                                 // llvm.r600.txbc
+    r600_txf,                                  // llvm.r600.txf
+    r600_txl,                                  // llvm.r600.txl
+    r600_txlc,                                 // llvm.r600.txlc
+    r600_txq,                                  // llvm.r600.txq
+    s390_efpc,                                 // llvm.s390.efpc
+    s390_etnd,                                 // llvm.s390.etnd
+    s390_lcbb,                                 // llvm.s390.lcbb
+    s390_ntstg,                                // llvm.s390.ntstg
+    s390_ppa_txassist,                         // llvm.s390.ppa.txassist
+    s390_sfpc,                                 // llvm.s390.sfpc
+    s390_tabort,                               // llvm.s390.tabort
+    s390_tbegin,                               // llvm.s390.tbegin
+    s390_tbegin_nofloat,                       // llvm.s390.tbegin.nofloat
+    s390_tbeginc,                              // llvm.s390.tbeginc
+    s390_tdc,                                  // llvm.s390.tdc
+    s390_tend,                                 // llvm.s390.tend
+    s390_vaccb,                                // llvm.s390.vaccb
+    s390_vacccq,                               // llvm.s390.vacccq
+    s390_vaccf,                                // llvm.s390.vaccf
+    s390_vaccg,                                // llvm.s390.vaccg
+    s390_vacch,                                // llvm.s390.vacch
+    s390_vaccq,                                // llvm.s390.vaccq
+    s390_vacq,                                 // llvm.s390.vacq
+    s390_vaq,                                  // llvm.s390.vaq
+    s390_vavgb,                                // llvm.s390.vavgb
+    s390_vavgf,                                // llvm.s390.vavgf
+    s390_vavgg,                                // llvm.s390.vavgg
+    s390_vavgh,                                // llvm.s390.vavgh
+    s390_vavglb,                               // llvm.s390.vavglb
+    s390_vavglf,                               // llvm.s390.vavglf
+    s390_vavglg,                               // llvm.s390.vavglg
+    s390_vavglh,                               // llvm.s390.vavglh
+    s390_vbperm,                               // llvm.s390.vbperm
+    s390_vceqbs,                               // llvm.s390.vceqbs
+    s390_vceqfs,                               // llvm.s390.vceqfs
+    s390_vceqgs,                               // llvm.s390.vceqgs
+    s390_vceqhs,                               // llvm.s390.vceqhs
+    s390_vchbs,                                // llvm.s390.vchbs
+    s390_vchfs,                                // llvm.s390.vchfs
+    s390_vchgs,                                // llvm.s390.vchgs
+    s390_vchhs,                                // llvm.s390.vchhs
+    s390_vchlbs,                               // llvm.s390.vchlbs
+    s390_vchlfs,                               // llvm.s390.vchlfs
+    s390_vchlgs,                               // llvm.s390.vchlgs
+    s390_vchlhs,                               // llvm.s390.vchlhs
+    s390_vcksm,                                // llvm.s390.vcksm
+    s390_verimb,                               // llvm.s390.verimb
+    s390_verimf,                               // llvm.s390.verimf
+    s390_verimg,                               // llvm.s390.verimg
+    s390_verimh,                               // llvm.s390.verimh
+    s390_verllb,                               // llvm.s390.verllb
+    s390_verllf,                               // llvm.s390.verllf
+    s390_verllg,                               // llvm.s390.verllg
+    s390_verllh,                               // llvm.s390.verllh
+    s390_verllvb,                              // llvm.s390.verllvb
+    s390_verllvf,                              // llvm.s390.verllvf
+    s390_verllvg,                              // llvm.s390.verllvg
+    s390_verllvh,                              // llvm.s390.verllvh
+    s390_vfaeb,                                // llvm.s390.vfaeb
+    s390_vfaebs,                               // llvm.s390.vfaebs
+    s390_vfaef,                                // llvm.s390.vfaef
+    s390_vfaefs,                               // llvm.s390.vfaefs
+    s390_vfaeh,                                // llvm.s390.vfaeh
+    s390_vfaehs,                               // llvm.s390.vfaehs
+    s390_vfaezb,                               // llvm.s390.vfaezb
+    s390_vfaezbs,                              // llvm.s390.vfaezbs
+    s390_vfaezf,                               // llvm.s390.vfaezf
+    s390_vfaezfs,                              // llvm.s390.vfaezfs
+    s390_vfaezh,                               // llvm.s390.vfaezh
+    s390_vfaezhs,                              // llvm.s390.vfaezhs
+    s390_vfcedbs,                              // llvm.s390.vfcedbs
+    s390_vfcesbs,                              // llvm.s390.vfcesbs
+    s390_vfchdbs,                              // llvm.s390.vfchdbs
+    s390_vfchedbs,                             // llvm.s390.vfchedbs
+    s390_vfchesbs,                             // llvm.s390.vfchesbs
+    s390_vfchsbs,                              // llvm.s390.vfchsbs
+    s390_vfeeb,                                // llvm.s390.vfeeb
+    s390_vfeebs,                               // llvm.s390.vfeebs
+    s390_vfeef,                                // llvm.s390.vfeef
+    s390_vfeefs,                               // llvm.s390.vfeefs
+    s390_vfeeh,                                // llvm.s390.vfeeh
+    s390_vfeehs,                               // llvm.s390.vfeehs
+    s390_vfeezb,                               // llvm.s390.vfeezb
+    s390_vfeezbs,                              // llvm.s390.vfeezbs
+    s390_vfeezf,                               // llvm.s390.vfeezf
+    s390_vfeezfs,                              // llvm.s390.vfeezfs
+    s390_vfeezh,                               // llvm.s390.vfeezh
+    s390_vfeezhs,                              // llvm.s390.vfeezhs
+    s390_vfeneb,                               // llvm.s390.vfeneb
+    s390_vfenebs,                              // llvm.s390.vfenebs
+    s390_vfenef,                               // llvm.s390.vfenef
+    s390_vfenefs,                              // llvm.s390.vfenefs
+    s390_vfeneh,                               // llvm.s390.vfeneh
+    s390_vfenehs,                              // llvm.s390.vfenehs
+    s390_vfenezb,                              // llvm.s390.vfenezb
+    s390_vfenezbs,                             // llvm.s390.vfenezbs
+    s390_vfenezf,                              // llvm.s390.vfenezf
+    s390_vfenezfs,                             // llvm.s390.vfenezfs
+    s390_vfenezh,                              // llvm.s390.vfenezh
+    s390_vfenezhs,                             // llvm.s390.vfenezhs
+    s390_vfidb,                                // llvm.s390.vfidb
+    s390_vfisb,                                // llvm.s390.vfisb
+    s390_vfmaxdb,                              // llvm.s390.vfmaxdb
+    s390_vfmaxsb,                              // llvm.s390.vfmaxsb
+    s390_vfmindb,                              // llvm.s390.vfmindb
+    s390_vfminsb,                              // llvm.s390.vfminsb
+    s390_vftcidb,                              // llvm.s390.vftcidb
+    s390_vftcisb,                              // llvm.s390.vftcisb
+    s390_vgfmab,                               // llvm.s390.vgfmab
+    s390_vgfmaf,                               // llvm.s390.vgfmaf
+    s390_vgfmag,                               // llvm.s390.vgfmag
+    s390_vgfmah,                               // llvm.s390.vgfmah
+    s390_vgfmb,                                // llvm.s390.vgfmb
+    s390_vgfmf,                                // llvm.s390.vgfmf
+    s390_vgfmg,                                // llvm.s390.vgfmg
+    s390_vgfmh,                                // llvm.s390.vgfmh
+    s390_vistrb,                               // llvm.s390.vistrb
+    s390_vistrbs,                              // llvm.s390.vistrbs
+    s390_vistrf,                               // llvm.s390.vistrf
+    s390_vistrfs,                              // llvm.s390.vistrfs
+    s390_vistrh,                               // llvm.s390.vistrh
+    s390_vistrhs,                              // llvm.s390.vistrhs
+    s390_vlbb,                                 // llvm.s390.vlbb
+    s390_vll,                                  // llvm.s390.vll
+    s390_vlrl,                                 // llvm.s390.vlrl
+    s390_vmaeb,                                // llvm.s390.vmaeb
+    s390_vmaef,                                // llvm.s390.vmaef
+    s390_vmaeh,                                // llvm.s390.vmaeh
+    s390_vmahb,                                // llvm.s390.vmahb
+    s390_vmahf,                                // llvm.s390.vmahf
+    s390_vmahh,                                // llvm.s390.vmahh
+    s390_vmaleb,                               // llvm.s390.vmaleb
+    s390_vmalef,                               // llvm.s390.vmalef
+    s390_vmaleh,                               // llvm.s390.vmaleh
+    s390_vmalhb,                               // llvm.s390.vmalhb
+    s390_vmalhf,                               // llvm.s390.vmalhf
+    s390_vmalhh,                               // llvm.s390.vmalhh
+    s390_vmalob,                               // llvm.s390.vmalob
+    s390_vmalof,                               // llvm.s390.vmalof
+    s390_vmaloh,                               // llvm.s390.vmaloh
+    s390_vmaob,                                // llvm.s390.vmaob
+    s390_vmaof,                                // llvm.s390.vmaof
+    s390_vmaoh,                                // llvm.s390.vmaoh
+    s390_vmeb,                                 // llvm.s390.vmeb
+    s390_vmef,                                 // llvm.s390.vmef
+    s390_vmeh,                                 // llvm.s390.vmeh
+    s390_vmhb,                                 // llvm.s390.vmhb
+    s390_vmhf,                                 // llvm.s390.vmhf
+    s390_vmhh,                                 // llvm.s390.vmhh
+    s390_vmleb,                                // llvm.s390.vmleb
+    s390_vmlef,                                // llvm.s390.vmlef
+    s390_vmleh,                                // llvm.s390.vmleh
+    s390_vmlhb,                                // llvm.s390.vmlhb
+    s390_vmlhf,                                // llvm.s390.vmlhf
+    s390_vmlhh,                                // llvm.s390.vmlhh
+    s390_vmlob,                                // llvm.s390.vmlob
+    s390_vmlof,                                // llvm.s390.vmlof
+    s390_vmloh,                                // llvm.s390.vmloh
+    s390_vmob,                                 // llvm.s390.vmob
+    s390_vmof,                                 // llvm.s390.vmof
+    s390_vmoh,                                 // llvm.s390.vmoh
+    s390_vmslg,                                // llvm.s390.vmslg
+    s390_vpdi,                                 // llvm.s390.vpdi
+    s390_vperm,                                // llvm.s390.vperm
+    s390_vpklsf,                               // llvm.s390.vpklsf
+    s390_vpklsfs,                              // llvm.s390.vpklsfs
+    s390_vpklsg,                               // llvm.s390.vpklsg
+    s390_vpklsgs,                              // llvm.s390.vpklsgs
+    s390_vpklsh,                               // llvm.s390.vpklsh
+    s390_vpklshs,                              // llvm.s390.vpklshs
+    s390_vpksf,                                // llvm.s390.vpksf
+    s390_vpksfs,                               // llvm.s390.vpksfs
+    s390_vpksg,                                // llvm.s390.vpksg
+    s390_vpksgs,                               // llvm.s390.vpksgs
+    s390_vpksh,                                // llvm.s390.vpksh
+    s390_vpkshs,                               // llvm.s390.vpkshs
+    s390_vsbcbiq,                              // llvm.s390.vsbcbiq
+    s390_vsbiq,                                // llvm.s390.vsbiq
+    s390_vscbib,                               // llvm.s390.vscbib
+    s390_vscbif,                               // llvm.s390.vscbif
+    s390_vscbig,                               // llvm.s390.vscbig
+    s390_vscbih,                               // llvm.s390.vscbih
+    s390_vscbiq,                               // llvm.s390.vscbiq
+    s390_vsl,                                  // llvm.s390.vsl
+    s390_vslb,                                 // llvm.s390.vslb
+    s390_vsldb,                                // llvm.s390.vsldb
+    s390_vsq,                                  // llvm.s390.vsq
+    s390_vsra,                                 // llvm.s390.vsra
+    s390_vsrab,                                // llvm.s390.vsrab
+    s390_vsrl,                                 // llvm.s390.vsrl
+    s390_vsrlb,                                // llvm.s390.vsrlb
+    s390_vstl,                                 // llvm.s390.vstl
+    s390_vstrcb,                               // llvm.s390.vstrcb
+    s390_vstrcbs,                              // llvm.s390.vstrcbs
+    s390_vstrcf,                               // llvm.s390.vstrcf
+    s390_vstrcfs,                              // llvm.s390.vstrcfs
+    s390_vstrch,                               // llvm.s390.vstrch
+    s390_vstrchs,                              // llvm.s390.vstrchs
+    s390_vstrczb,                              // llvm.s390.vstrczb
+    s390_vstrczbs,                             // llvm.s390.vstrczbs
+    s390_vstrczf,                              // llvm.s390.vstrczf
+    s390_vstrczfs,                             // llvm.s390.vstrczfs
+    s390_vstrczh,                              // llvm.s390.vstrczh
+    s390_vstrczhs,                             // llvm.s390.vstrczhs
+    s390_vstrl,                                // llvm.s390.vstrl
+    s390_vsumb,                                // llvm.s390.vsumb
+    s390_vsumgf,                               // llvm.s390.vsumgf
+    s390_vsumgh,                               // llvm.s390.vsumgh
+    s390_vsumh,                                // llvm.s390.vsumh
+    s390_vsumqf,                               // llvm.s390.vsumqf
+    s390_vsumqg,                               // llvm.s390.vsumqg
+    s390_vtm,                                  // llvm.s390.vtm
+    s390_vuphb,                                // llvm.s390.vuphb
+    s390_vuphf,                                // llvm.s390.vuphf
+    s390_vuphh,                                // llvm.s390.vuphh
+    s390_vuplb,                                // llvm.s390.vuplb
+    s390_vuplf,                                // llvm.s390.vuplf
+    s390_vuplhb,                               // llvm.s390.vuplhb
+    s390_vuplhf,                               // llvm.s390.vuplhf
+    s390_vuplhh,                               // llvm.s390.vuplhh
+    s390_vuplhw,                               // llvm.s390.vuplhw
+    s390_vupllb,                               // llvm.s390.vupllb
+    s390_vupllf,                               // llvm.s390.vupllf
+    s390_vupllh,                               // llvm.s390.vupllh
+    wasm_atomic_notify,                        // llvm.wasm.atomic.notify
+    wasm_atomic_wait_i32,                      // llvm.wasm.atomic.wait.i32
+    wasm_atomic_wait_i64,                      // llvm.wasm.atomic.wait.i64
+    wasm_catch,                                // llvm.wasm.catch
+    wasm_current_memory,                       // llvm.wasm.current.memory
+    wasm_get_ehselector,                       // llvm.wasm.get.ehselector
+    wasm_get_exception,                        // llvm.wasm.get.exception
+    wasm_grow_memory,                          // llvm.wasm.grow.memory
+    wasm_landingpad_index,                     // llvm.wasm.landingpad.index
+    wasm_lsda,                                 // llvm.wasm.lsda
+    wasm_mem_grow,                             // llvm.wasm.mem.grow
+    wasm_mem_size,                             // llvm.wasm.mem.size
+    wasm_memory_grow,                          // llvm.wasm.memory.grow
+    wasm_memory_size,                          // llvm.wasm.memory.size
+    wasm_rethrow,                              // llvm.wasm.rethrow
+    wasm_throw,                                // llvm.wasm.throw
+    x86_3dnow_pavgusb,                         // llvm.x86.3dnow.pavgusb
+    x86_3dnow_pf2id,                           // llvm.x86.3dnow.pf2id
+    x86_3dnow_pfacc,                           // llvm.x86.3dnow.pfacc
+    x86_3dnow_pfadd,                           // llvm.x86.3dnow.pfadd
+    x86_3dnow_pfcmpeq,                         // llvm.x86.3dnow.pfcmpeq
+    x86_3dnow_pfcmpge,                         // llvm.x86.3dnow.pfcmpge
+    x86_3dnow_pfcmpgt,                         // llvm.x86.3dnow.pfcmpgt
+    x86_3dnow_pfmax,                           // llvm.x86.3dnow.pfmax
+    x86_3dnow_pfmin,                           // llvm.x86.3dnow.pfmin
+    x86_3dnow_pfmul,                           // llvm.x86.3dnow.pfmul
+    x86_3dnow_pfrcp,                           // llvm.x86.3dnow.pfrcp
+    x86_3dnow_pfrcpit1,                        // llvm.x86.3dnow.pfrcpit1
+    x86_3dnow_pfrcpit2,                        // llvm.x86.3dnow.pfrcpit2
+    x86_3dnow_pfrsqit1,                        // llvm.x86.3dnow.pfrsqit1
+    x86_3dnow_pfrsqrt,                         // llvm.x86.3dnow.pfrsqrt
+    x86_3dnow_pfsub,                           // llvm.x86.3dnow.pfsub
+    x86_3dnow_pfsubr,                          // llvm.x86.3dnow.pfsubr
+    x86_3dnow_pi2fd,                           // llvm.x86.3dnow.pi2fd
+    x86_3dnow_pmulhrw,                         // llvm.x86.3dnow.pmulhrw
+    x86_3dnowa_pf2iw,                          // llvm.x86.3dnowa.pf2iw
+    x86_3dnowa_pfnacc,                         // llvm.x86.3dnowa.pfnacc
+    x86_3dnowa_pfpnacc,                        // llvm.x86.3dnowa.pfpnacc
+    x86_3dnowa_pi2fw,                          // llvm.x86.3dnowa.pi2fw
+    x86_3dnowa_pswapd,                         // llvm.x86.3dnowa.pswapd
+    x86_addcarry_u32,                          // llvm.x86.addcarry.u32
+    x86_addcarry_u64,                          // llvm.x86.addcarry.u64
+    x86_addcarryx_u32,                         // llvm.x86.addcarryx.u32
+    x86_addcarryx_u64,                         // llvm.x86.addcarryx.u64
+    x86_aesni_aesdec,                          // llvm.x86.aesni.aesdec
+    x86_aesni_aesdec_256,                      // llvm.x86.aesni.aesdec.256
+    x86_aesni_aesdec_512,                      // llvm.x86.aesni.aesdec.512
+    x86_aesni_aesdeclast,                      // llvm.x86.aesni.aesdeclast
+    x86_aesni_aesdeclast_256,                  // llvm.x86.aesni.aesdeclast.256
+    x86_aesni_aesdeclast_512,                  // llvm.x86.aesni.aesdeclast.512
+    x86_aesni_aesenc,                          // llvm.x86.aesni.aesenc
+    x86_aesni_aesenc_256,                      // llvm.x86.aesni.aesenc.256
+    x86_aesni_aesenc_512,                      // llvm.x86.aesni.aesenc.512
+    x86_aesni_aesenclast,                      // llvm.x86.aesni.aesenclast
+    x86_aesni_aesenclast_256,                  // llvm.x86.aesni.aesenclast.256
+    x86_aesni_aesenclast_512,                  // llvm.x86.aesni.aesenclast.512
+    x86_aesni_aesimc,                          // llvm.x86.aesni.aesimc
+    x86_aesni_aeskeygenassist,                 // llvm.x86.aesni.aeskeygenassist
+    x86_avx_addsub_pd_256,                     // llvm.x86.avx.addsub.pd.256
+    x86_avx_addsub_ps_256,                     // llvm.x86.avx.addsub.ps.256
+    x86_avx_blendv_pd_256,                     // llvm.x86.avx.blendv.pd.256
+    x86_avx_blendv_ps_256,                     // llvm.x86.avx.blendv.ps.256
+    x86_avx_cmp_pd_256,                        // llvm.x86.avx.cmp.pd.256
+    x86_avx_cmp_ps_256,                        // llvm.x86.avx.cmp.ps.256
+    x86_avx_cvt_pd2_ps_256,                    // llvm.x86.avx.cvt.pd2.ps.256
+    x86_avx_cvt_pd2dq_256,                     // llvm.x86.avx.cvt.pd2dq.256
+    x86_avx_cvt_ps2dq_256,                     // llvm.x86.avx.cvt.ps2dq.256
+    x86_avx_cvtt_pd2dq_256,                    // llvm.x86.avx.cvtt.pd2dq.256
+    x86_avx_cvtt_ps2dq_256,                    // llvm.x86.avx.cvtt.ps2dq.256
+    x86_avx_dp_ps_256,                         // llvm.x86.avx.dp.ps.256
+    x86_avx_hadd_pd_256,                       // llvm.x86.avx.hadd.pd.256
+    x86_avx_hadd_ps_256,                       // llvm.x86.avx.hadd.ps.256
+    x86_avx_hsub_pd_256,                       // llvm.x86.avx.hsub.pd.256
+    x86_avx_hsub_ps_256,                       // llvm.x86.avx.hsub.ps.256
+    x86_avx_ldu_dq_256,                        // llvm.x86.avx.ldu.dq.256
+    x86_avx_maskload_pd,                       // llvm.x86.avx.maskload.pd
+    x86_avx_maskload_pd_256,                   // llvm.x86.avx.maskload.pd.256
+    x86_avx_maskload_ps,                       // llvm.x86.avx.maskload.ps
+    x86_avx_maskload_ps_256,                   // llvm.x86.avx.maskload.ps.256
+    x86_avx_maskstore_pd,                      // llvm.x86.avx.maskstore.pd
+    x86_avx_maskstore_pd_256,                  // llvm.x86.avx.maskstore.pd.256
+    x86_avx_maskstore_ps,                      // llvm.x86.avx.maskstore.ps
+    x86_avx_maskstore_ps_256,                  // llvm.x86.avx.maskstore.ps.256
+    x86_avx_max_pd_256,                        // llvm.x86.avx.max.pd.256
+    x86_avx_max_ps_256,                        // llvm.x86.avx.max.ps.256
+    x86_avx_min_pd_256,                        // llvm.x86.avx.min.pd.256
+    x86_avx_min_ps_256,                        // llvm.x86.avx.min.ps.256
+    x86_avx_movmsk_pd_256,                     // llvm.x86.avx.movmsk.pd.256
+    x86_avx_movmsk_ps_256,                     // llvm.x86.avx.movmsk.ps.256
+    x86_avx_ptestc_256,                        // llvm.x86.avx.ptestc.256
+    x86_avx_ptestnzc_256,                      // llvm.x86.avx.ptestnzc.256
+    x86_avx_ptestz_256,                        // llvm.x86.avx.ptestz.256
+    x86_avx_rcp_ps_256,                        // llvm.x86.avx.rcp.ps.256
+    x86_avx_round_pd_256,                      // llvm.x86.avx.round.pd.256
+    x86_avx_round_ps_256,                      // llvm.x86.avx.round.ps.256
+    x86_avx_rsqrt_ps_256,                      // llvm.x86.avx.rsqrt.ps.256
+    x86_avx_vpermilvar_pd,                     // llvm.x86.avx.vpermilvar.pd
+    x86_avx_vpermilvar_pd_256,                 // llvm.x86.avx.vpermilvar.pd.256
+    x86_avx_vpermilvar_ps,                     // llvm.x86.avx.vpermilvar.ps
+    x86_avx_vpermilvar_ps_256,                 // llvm.x86.avx.vpermilvar.ps.256
+    x86_avx_vtestc_pd,                         // llvm.x86.avx.vtestc.pd
+    x86_avx_vtestc_pd_256,                     // llvm.x86.avx.vtestc.pd.256
+    x86_avx_vtestc_ps,                         // llvm.x86.avx.vtestc.ps
+    x86_avx_vtestc_ps_256,                     // llvm.x86.avx.vtestc.ps.256
+    x86_avx_vtestnzc_pd,                       // llvm.x86.avx.vtestnzc.pd
+    x86_avx_vtestnzc_pd_256,                   // llvm.x86.avx.vtestnzc.pd.256
+    x86_avx_vtestnzc_ps,                       // llvm.x86.avx.vtestnzc.ps
+    x86_avx_vtestnzc_ps_256,                   // llvm.x86.avx.vtestnzc.ps.256
+    x86_avx_vtestz_pd,                         // llvm.x86.avx.vtestz.pd
+    x86_avx_vtestz_pd_256,                     // llvm.x86.avx.vtestz.pd.256
+    x86_avx_vtestz_ps,                         // llvm.x86.avx.vtestz.ps
+    x86_avx_vtestz_ps_256,                     // llvm.x86.avx.vtestz.ps.256
+    x86_avx_vzeroall,                          // llvm.x86.avx.vzeroall
+    x86_avx_vzeroupper,                        // llvm.x86.avx.vzeroupper
+    x86_avx2_gather_d_d,                       // llvm.x86.avx2.gather.d.d
+    x86_avx2_gather_d_d_256,                   // llvm.x86.avx2.gather.d.d.256
+    x86_avx2_gather_d_pd,                      // llvm.x86.avx2.gather.d.pd
+    x86_avx2_gather_d_pd_256,                  // llvm.x86.avx2.gather.d.pd.256
+    x86_avx2_gather_d_ps,                      // llvm.x86.avx2.gather.d.ps
+    x86_avx2_gather_d_ps_256,                  // llvm.x86.avx2.gather.d.ps.256
+    x86_avx2_gather_d_q,                       // llvm.x86.avx2.gather.d.q
+    x86_avx2_gather_d_q_256,                   // llvm.x86.avx2.gather.d.q.256
+    x86_avx2_gather_q_d,                       // llvm.x86.avx2.gather.q.d
+    x86_avx2_gather_q_d_256,                   // llvm.x86.avx2.gather.q.d.256
+    x86_avx2_gather_q_pd,                      // llvm.x86.avx2.gather.q.pd
+    x86_avx2_gather_q_pd_256,                  // llvm.x86.avx2.gather.q.pd.256
+    x86_avx2_gather_q_ps,                      // llvm.x86.avx2.gather.q.ps
+    x86_avx2_gather_q_ps_256,                  // llvm.x86.avx2.gather.q.ps.256
+    x86_avx2_gather_q_q,                       // llvm.x86.avx2.gather.q.q
+    x86_avx2_gather_q_q_256,                   // llvm.x86.avx2.gather.q.q.256
+    x86_avx2_maskload_d,                       // llvm.x86.avx2.maskload.d
+    x86_avx2_maskload_d_256,                   // llvm.x86.avx2.maskload.d.256
+    x86_avx2_maskload_q,                       // llvm.x86.avx2.maskload.q
+    x86_avx2_maskload_q_256,                   // llvm.x86.avx2.maskload.q.256
+    x86_avx2_maskstore_d,                      // llvm.x86.avx2.maskstore.d
+    x86_avx2_maskstore_d_256,                  // llvm.x86.avx2.maskstore.d.256
+    x86_avx2_maskstore_q,                      // llvm.x86.avx2.maskstore.q
+    x86_avx2_maskstore_q_256,                  // llvm.x86.avx2.maskstore.q.256
+    x86_avx2_mpsadbw,                          // llvm.x86.avx2.mpsadbw
+    x86_avx2_packssdw,                         // llvm.x86.avx2.packssdw
+    x86_avx2_packsswb,                         // llvm.x86.avx2.packsswb
+    x86_avx2_packusdw,                         // llvm.x86.avx2.packusdw
+    x86_avx2_packuswb,                         // llvm.x86.avx2.packuswb
+    x86_avx2_padds_b,                          // llvm.x86.avx2.padds.b
+    x86_avx2_padds_w,                          // llvm.x86.avx2.padds.w
+    x86_avx2_paddus_b,                         // llvm.x86.avx2.paddus.b
+    x86_avx2_paddus_w,                         // llvm.x86.avx2.paddus.w
+    x86_avx2_pblendvb,                         // llvm.x86.avx2.pblendvb
+    x86_avx2_permd,                            // llvm.x86.avx2.permd
+    x86_avx2_permps,                           // llvm.x86.avx2.permps
+    x86_avx2_phadd_d,                          // llvm.x86.avx2.phadd.d
+    x86_avx2_phadd_sw,                         // llvm.x86.avx2.phadd.sw
+    x86_avx2_phadd_w,                          // llvm.x86.avx2.phadd.w
+    x86_avx2_phsub_d,                          // llvm.x86.avx2.phsub.d
+    x86_avx2_phsub_sw,                         // llvm.x86.avx2.phsub.sw
+    x86_avx2_phsub_w,                          // llvm.x86.avx2.phsub.w
+    x86_avx2_pmadd_ub_sw,                      // llvm.x86.avx2.pmadd.ub.sw
+    x86_avx2_pmadd_wd,                         // llvm.x86.avx2.pmadd.wd
+    x86_avx2_pmovmskb,                         // llvm.x86.avx2.pmovmskb
+    x86_avx2_pmul_hr_sw,                       // llvm.x86.avx2.pmul.hr.sw
+    x86_avx2_pmulh_w,                          // llvm.x86.avx2.pmulh.w
+    x86_avx2_pmulhu_w,                         // llvm.x86.avx2.pmulhu.w
+    x86_avx2_psad_bw,                          // llvm.x86.avx2.psad.bw
+    x86_avx2_pshuf_b,                          // llvm.x86.avx2.pshuf.b
+    x86_avx2_psign_b,                          // llvm.x86.avx2.psign.b
+    x86_avx2_psign_d,                          // llvm.x86.avx2.psign.d
+    x86_avx2_psign_w,                          // llvm.x86.avx2.psign.w
+    x86_avx2_psll_d,                           // llvm.x86.avx2.psll.d
+    x86_avx2_psll_q,                           // llvm.x86.avx2.psll.q
+    x86_avx2_psll_w,                           // llvm.x86.avx2.psll.w
+    x86_avx2_pslli_d,                          // llvm.x86.avx2.pslli.d
+    x86_avx2_pslli_q,                          // llvm.x86.avx2.pslli.q
+    x86_avx2_pslli_w,                          // llvm.x86.avx2.pslli.w
+    x86_avx2_psllv_d,                          // llvm.x86.avx2.psllv.d
+    x86_avx2_psllv_d_256,                      // llvm.x86.avx2.psllv.d.256
+    x86_avx2_psllv_q,                          // llvm.x86.avx2.psllv.q
+    x86_avx2_psllv_q_256,                      // llvm.x86.avx2.psllv.q.256
+    x86_avx2_psra_d,                           // llvm.x86.avx2.psra.d
+    x86_avx2_psra_w,                           // llvm.x86.avx2.psra.w
+    x86_avx2_psrai_d,                          // llvm.x86.avx2.psrai.d
+    x86_avx2_psrai_w,                          // llvm.x86.avx2.psrai.w
+    x86_avx2_psrav_d,                          // llvm.x86.avx2.psrav.d
+    x86_avx2_psrav_d_256,                      // llvm.x86.avx2.psrav.d.256
+    x86_avx2_psrl_d,                           // llvm.x86.avx2.psrl.d
+    x86_avx2_psrl_q,                           // llvm.x86.avx2.psrl.q
+    x86_avx2_psrl_w,                           // llvm.x86.avx2.psrl.w
+    x86_avx2_psrli_d,                          // llvm.x86.avx2.psrli.d
+    x86_avx2_psrli_q,                          // llvm.x86.avx2.psrli.q
+    x86_avx2_psrli_w,                          // llvm.x86.avx2.psrli.w
+    x86_avx2_psrlv_d,                          // llvm.x86.avx2.psrlv.d
+    x86_avx2_psrlv_d_256,                      // llvm.x86.avx2.psrlv.d.256
+    x86_avx2_psrlv_q,                          // llvm.x86.avx2.psrlv.q
+    x86_avx2_psrlv_q_256,                      // llvm.x86.avx2.psrlv.q.256
+    x86_avx2_psubs_b,                          // llvm.x86.avx2.psubs.b
+    x86_avx2_psubs_w,                          // llvm.x86.avx2.psubs.w
+    x86_avx2_psubus_b,                         // llvm.x86.avx2.psubus.b
+    x86_avx2_psubus_w,                         // llvm.x86.avx2.psubus.w
+    x86_avx512_add_pd_512,                     // llvm.x86.avx512.add.pd.512
+    x86_avx512_add_ps_512,                     // llvm.x86.avx512.add.ps.512
+    x86_avx512_broadcastmb_128,                // llvm.x86.avx512.broadcastmb.128
+    x86_avx512_broadcastmb_256,                // llvm.x86.avx512.broadcastmb.256
+    x86_avx512_broadcastmb_512,                // llvm.x86.avx512.broadcastmb.512
+    x86_avx512_broadcastmw_128,                // llvm.x86.avx512.broadcastmw.128
+    x86_avx512_broadcastmw_256,                // llvm.x86.avx512.broadcastmw.256
+    x86_avx512_broadcastmw_512,                // llvm.x86.avx512.broadcastmw.512
+    x86_avx512_cmp_pd_128,                     // llvm.x86.avx512.cmp.pd.128
+    x86_avx512_cmp_pd_256,                     // llvm.x86.avx512.cmp.pd.256
+    x86_avx512_cmp_pd_512,                     // llvm.x86.avx512.cmp.pd.512
+    x86_avx512_cmp_ps_128,                     // llvm.x86.avx512.cmp.ps.128
+    x86_avx512_cmp_ps_256,                     // llvm.x86.avx512.cmp.ps.256
+    x86_avx512_cmp_ps_512,                     // llvm.x86.avx512.cmp.ps.512
+    x86_avx512_cvtsi2sd64,                     // llvm.x86.avx512.cvtsi2sd64
+    x86_avx512_cvtsi2ss32,                     // llvm.x86.avx512.cvtsi2ss32
+    x86_avx512_cvtsi2ss64,                     // llvm.x86.avx512.cvtsi2ss64
+    x86_avx512_cvttsd2si,                      // llvm.x86.avx512.cvttsd2si
+    x86_avx512_cvttsd2si64,                    // llvm.x86.avx512.cvttsd2si64
+    x86_avx512_cvttsd2usi,                     // llvm.x86.avx512.cvttsd2usi
+    x86_avx512_cvttsd2usi64,                   // llvm.x86.avx512.cvttsd2usi64
+    x86_avx512_cvttss2si,                      // llvm.x86.avx512.cvttss2si
+    x86_avx512_cvttss2si64,                    // llvm.x86.avx512.cvttss2si64
+    x86_avx512_cvttss2usi,                     // llvm.x86.avx512.cvttss2usi
+    x86_avx512_cvttss2usi64,                   // llvm.x86.avx512.cvttss2usi64
+    x86_avx512_cvtusi2ss,                      // llvm.x86.avx512.cvtusi2ss
+    x86_avx512_cvtusi642sd,                    // llvm.x86.avx512.cvtusi642sd
+    x86_avx512_cvtusi642ss,                    // llvm.x86.avx512.cvtusi642ss
+    x86_avx512_dbpsadbw_128,                   // llvm.x86.avx512.dbpsadbw.128
+    x86_avx512_dbpsadbw_256,                   // llvm.x86.avx512.dbpsadbw.256
+    x86_avx512_dbpsadbw_512,                   // llvm.x86.avx512.dbpsadbw.512
+    x86_avx512_div_pd_512,                     // llvm.x86.avx512.div.pd.512
+    x86_avx512_div_ps_512,                     // llvm.x86.avx512.div.ps.512
+    x86_avx512_exp2_pd,                        // llvm.x86.avx512.exp2.pd
+    x86_avx512_exp2_ps,                        // llvm.x86.avx512.exp2.ps
+    x86_avx512_fpclass_pd_128,                 // llvm.x86.avx512.fpclass.pd.128
+    x86_avx512_fpclass_pd_256,                 // llvm.x86.avx512.fpclass.pd.256
+    x86_avx512_fpclass_pd_512,                 // llvm.x86.avx512.fpclass.pd.512
+    x86_avx512_fpclass_ps_128,                 // llvm.x86.avx512.fpclass.ps.128
+    x86_avx512_fpclass_ps_256,                 // llvm.x86.avx512.fpclass.ps.256
+    x86_avx512_fpclass_ps_512,                 // llvm.x86.avx512.fpclass.ps.512
+    x86_avx512_gather_dpd_512,                 // llvm.x86.avx512.gather.dpd.512
+    x86_avx512_gather_dpi_512,                 // llvm.x86.avx512.gather.dpi.512
+    x86_avx512_gather_dpq_512,                 // llvm.x86.avx512.gather.dpq.512
+    x86_avx512_gather_dps_512,                 // llvm.x86.avx512.gather.dps.512
+    x86_avx512_gather_qpd_512,                 // llvm.x86.avx512.gather.qpd.512
+    x86_avx512_gather_qpi_512,                 // llvm.x86.avx512.gather.qpi.512
+    x86_avx512_gather_qpq_512,                 // llvm.x86.avx512.gather.qpq.512
+    x86_avx512_gather_qps_512,                 // llvm.x86.avx512.gather.qps.512
+    x86_avx512_gather3div2_df,                 // llvm.x86.avx512.gather3div2.df
+    x86_avx512_gather3div2_di,                 // llvm.x86.avx512.gather3div2.di
+    x86_avx512_gather3div4_df,                 // llvm.x86.avx512.gather3div4.df
+    x86_avx512_gather3div4_di,                 // llvm.x86.avx512.gather3div4.di
+    x86_avx512_gather3div4_sf,                 // llvm.x86.avx512.gather3div4.sf
+    x86_avx512_gather3div4_si,                 // llvm.x86.avx512.gather3div4.si
+    x86_avx512_gather3div8_sf,                 // llvm.x86.avx512.gather3div8.sf
+    x86_avx512_gather3div8_si,                 // llvm.x86.avx512.gather3div8.si
+    x86_avx512_gather3siv2_df,                 // llvm.x86.avx512.gather3siv2.df
+    x86_avx512_gather3siv2_di,                 // llvm.x86.avx512.gather3siv2.di
+    x86_avx512_gather3siv4_df,                 // llvm.x86.avx512.gather3siv4.df
+    x86_avx512_gather3siv4_di,                 // llvm.x86.avx512.gather3siv4.di
+    x86_avx512_gather3siv4_sf,                 // llvm.x86.avx512.gather3siv4.sf
+    x86_avx512_gather3siv4_si,                 // llvm.x86.avx512.gather3siv4.si
+    x86_avx512_gather3siv8_sf,                 // llvm.x86.avx512.gather3siv8.sf
+    x86_avx512_gather3siv8_si,                 // llvm.x86.avx512.gather3siv8.si
+    x86_avx512_gatherpf_dpd_512,               // llvm.x86.avx512.gatherpf.dpd.512
+    x86_avx512_gatherpf_dps_512,               // llvm.x86.avx512.gatherpf.dps.512
+    x86_avx512_gatherpf_qpd_512,               // llvm.x86.avx512.gatherpf.qpd.512
+    x86_avx512_gatherpf_qps_512,               // llvm.x86.avx512.gatherpf.qps.512
+    x86_avx512_mask_add_sd_round,              // llvm.x86.avx512.mask.add.sd.round
+    x86_avx512_mask_add_ss_round,              // llvm.x86.avx512.mask.add.ss.round
+    x86_avx512_mask_cmp_sd,                    // llvm.x86.avx512.mask.cmp.sd
+    x86_avx512_mask_cmp_ss,                    // llvm.x86.avx512.mask.cmp.ss
+    x86_avx512_mask_compress_b_128,            // llvm.x86.avx512.mask.compress.b.128
+    x86_avx512_mask_compress_b_256,            // llvm.x86.avx512.mask.compress.b.256
+    x86_avx512_mask_compress_b_512,            // llvm.x86.avx512.mask.compress.b.512
+    x86_avx512_mask_compress_d_128,            // llvm.x86.avx512.mask.compress.d.128
+    x86_avx512_mask_compress_d_256,            // llvm.x86.avx512.mask.compress.d.256
+    x86_avx512_mask_compress_d_512,            // llvm.x86.avx512.mask.compress.d.512
+    x86_avx512_mask_compress_pd_128,           // llvm.x86.avx512.mask.compress.pd.128
+    x86_avx512_mask_compress_pd_256,           // llvm.x86.avx512.mask.compress.pd.256
+    x86_avx512_mask_compress_pd_512,           // llvm.x86.avx512.mask.compress.pd.512
+    x86_avx512_mask_compress_ps_128,           // llvm.x86.avx512.mask.compress.ps.128
+    x86_avx512_mask_compress_ps_256,           // llvm.x86.avx512.mask.compress.ps.256
+    x86_avx512_mask_compress_ps_512,           // llvm.x86.avx512.mask.compress.ps.512
+    x86_avx512_mask_compress_q_128,            // llvm.x86.avx512.mask.compress.q.128
+    x86_avx512_mask_compress_q_256,            // llvm.x86.avx512.mask.compress.q.256
+    x86_avx512_mask_compress_q_512,            // llvm.x86.avx512.mask.compress.q.512
+    x86_avx512_mask_compress_w_128,            // llvm.x86.avx512.mask.compress.w.128
+    x86_avx512_mask_compress_w_256,            // llvm.x86.avx512.mask.compress.w.256
+    x86_avx512_mask_compress_w_512,            // llvm.x86.avx512.mask.compress.w.512
+    x86_avx512_mask_conflict_d_128,            // llvm.x86.avx512.mask.conflict.d.128
+    x86_avx512_mask_conflict_d_256,            // llvm.x86.avx512.mask.conflict.d.256
+    x86_avx512_mask_conflict_d_512,            // llvm.x86.avx512.mask.conflict.d.512
+    x86_avx512_mask_conflict_q_128,            // llvm.x86.avx512.mask.conflict.q.128
+    x86_avx512_mask_conflict_q_256,            // llvm.x86.avx512.mask.conflict.q.256
+    x86_avx512_mask_conflict_q_512,            // llvm.x86.avx512.mask.conflict.q.512
+    x86_avx512_mask_cvtdq2ps_512,              // llvm.x86.avx512.mask.cvtdq2ps.512
+    x86_avx512_mask_cvtpd2dq_128,              // llvm.x86.avx512.mask.cvtpd2dq.128
+    x86_avx512_mask_cvtpd2dq_512,              // llvm.x86.avx512.mask.cvtpd2dq.512
+    x86_avx512_mask_cvtpd2ps,                  // llvm.x86.avx512.mask.cvtpd2ps
+    x86_avx512_mask_cvtpd2ps_512,              // llvm.x86.avx512.mask.cvtpd2ps.512
+    x86_avx512_mask_cvtpd2qq_128,              // llvm.x86.avx512.mask.cvtpd2qq.128
+    x86_avx512_mask_cvtpd2qq_256,              // llvm.x86.avx512.mask.cvtpd2qq.256
+    x86_avx512_mask_cvtpd2qq_512,              // llvm.x86.avx512.mask.cvtpd2qq.512
+    x86_avx512_mask_cvtpd2udq_128,             // llvm.x86.avx512.mask.cvtpd2udq.128
+    x86_avx512_mask_cvtpd2udq_256,             // llvm.x86.avx512.mask.cvtpd2udq.256
+    x86_avx512_mask_cvtpd2udq_512,             // llvm.x86.avx512.mask.cvtpd2udq.512
+    x86_avx512_mask_cvtpd2uqq_128,             // llvm.x86.avx512.mask.cvtpd2uqq.128
+    x86_avx512_mask_cvtpd2uqq_256,             // llvm.x86.avx512.mask.cvtpd2uqq.256
+    x86_avx512_mask_cvtpd2uqq_512,             // llvm.x86.avx512.mask.cvtpd2uqq.512
+    x86_avx512_mask_cvtps2dq_128,              // llvm.x86.avx512.mask.cvtps2dq.128
+    x86_avx512_mask_cvtps2dq_256,              // llvm.x86.avx512.mask.cvtps2dq.256
+    x86_avx512_mask_cvtps2dq_512,              // llvm.x86.avx512.mask.cvtps2dq.512
+    x86_avx512_mask_cvtps2pd_512,              // llvm.x86.avx512.mask.cvtps2pd.512
+    x86_avx512_mask_cvtps2qq_128,              // llvm.x86.avx512.mask.cvtps2qq.128
+    x86_avx512_mask_cvtps2qq_256,              // llvm.x86.avx512.mask.cvtps2qq.256
+    x86_avx512_mask_cvtps2qq_512,              // llvm.x86.avx512.mask.cvtps2qq.512
+    x86_avx512_mask_cvtps2udq_128,             // llvm.x86.avx512.mask.cvtps2udq.128
+    x86_avx512_mask_cvtps2udq_256,             // llvm.x86.avx512.mask.cvtps2udq.256
+    x86_avx512_mask_cvtps2udq_512,             // llvm.x86.avx512.mask.cvtps2udq.512
+    x86_avx512_mask_cvtps2uqq_128,             // llvm.x86.avx512.mask.cvtps2uqq.128
+    x86_avx512_mask_cvtps2uqq_256,             // llvm.x86.avx512.mask.cvtps2uqq.256
+    x86_avx512_mask_cvtps2uqq_512,             // llvm.x86.avx512.mask.cvtps2uqq.512
+    x86_avx512_mask_cvtqq2pd_512,              // llvm.x86.avx512.mask.cvtqq2pd.512
+    x86_avx512_mask_cvtqq2ps_128,              // llvm.x86.avx512.mask.cvtqq2ps.128
+    x86_avx512_mask_cvtqq2ps_256,              // llvm.x86.avx512.mask.cvtqq2ps.256
+    x86_avx512_mask_cvtqq2ps_512,              // llvm.x86.avx512.mask.cvtqq2ps.512
+    x86_avx512_mask_cvtsd2ss_round,            // llvm.x86.avx512.mask.cvtsd2ss.round
+    x86_avx512_mask_cvtss2sd_round,            // llvm.x86.avx512.mask.cvtss2sd.round
+    x86_avx512_mask_cvttpd2dq_128,             // llvm.x86.avx512.mask.cvttpd2dq.128
+    x86_avx512_mask_cvttpd2dq_512,             // llvm.x86.avx512.mask.cvttpd2dq.512
+    x86_avx512_mask_cvttpd2qq_128,             // llvm.x86.avx512.mask.cvttpd2qq.128
+    x86_avx512_mask_cvttpd2qq_256,             // llvm.x86.avx512.mask.cvttpd2qq.256
+    x86_avx512_mask_cvttpd2qq_512,             // llvm.x86.avx512.mask.cvttpd2qq.512
+    x86_avx512_mask_cvttpd2udq_128,            // llvm.x86.avx512.mask.cvttpd2udq.128
+    x86_avx512_mask_cvttpd2udq_256,            // llvm.x86.avx512.mask.cvttpd2udq.256
+    x86_avx512_mask_cvttpd2udq_512,            // llvm.x86.avx512.mask.cvttpd2udq.512
+    x86_avx512_mask_cvttpd2uqq_128,            // llvm.x86.avx512.mask.cvttpd2uqq.128
+    x86_avx512_mask_cvttpd2uqq_256,            // llvm.x86.avx512.mask.cvttpd2uqq.256
+    x86_avx512_mask_cvttpd2uqq_512,            // llvm.x86.avx512.mask.cvttpd2uqq.512
+    x86_avx512_mask_cvttps2dq_512,             // llvm.x86.avx512.mask.cvttps2dq.512
+    x86_avx512_mask_cvttps2qq_128,             // llvm.x86.avx512.mask.cvttps2qq.128
+    x86_avx512_mask_cvttps2qq_256,             // llvm.x86.avx512.mask.cvttps2qq.256
+    x86_avx512_mask_cvttps2qq_512,             // llvm.x86.avx512.mask.cvttps2qq.512
+    x86_avx512_mask_cvttps2udq_128,            // llvm.x86.avx512.mask.cvttps2udq.128
+    x86_avx512_mask_cvttps2udq_256,            // llvm.x86.avx512.mask.cvttps2udq.256
+    x86_avx512_mask_cvttps2udq_512,            // llvm.x86.avx512.mask.cvttps2udq.512
+    x86_avx512_mask_cvttps2uqq_128,            // llvm.x86.avx512.mask.cvttps2uqq.128
+    x86_avx512_mask_cvttps2uqq_256,            // llvm.x86.avx512.mask.cvttps2uqq.256
+    x86_avx512_mask_cvttps2uqq_512,            // llvm.x86.avx512.mask.cvttps2uqq.512
+    x86_avx512_mask_cvtudq2ps_512,             // llvm.x86.avx512.mask.cvtudq2ps.512
+    x86_avx512_mask_cvtuqq2pd_512,             // llvm.x86.avx512.mask.cvtuqq2pd.512
+    x86_avx512_mask_cvtuqq2ps_128,             // llvm.x86.avx512.mask.cvtuqq2ps.128
+    x86_avx512_mask_cvtuqq2ps_256,             // llvm.x86.avx512.mask.cvtuqq2ps.256
+    x86_avx512_mask_cvtuqq2ps_512,             // llvm.x86.avx512.mask.cvtuqq2ps.512
+    x86_avx512_mask_div_sd_round,              // llvm.x86.avx512.mask.div.sd.round
+    x86_avx512_mask_div_ss_round,              // llvm.x86.avx512.mask.div.ss.round
+    x86_avx512_mask_expand_b_128,              // llvm.x86.avx512.mask.expand.b.128
+    x86_avx512_mask_expand_b_256,              // llvm.x86.avx512.mask.expand.b.256
+    x86_avx512_mask_expand_b_512,              // llvm.x86.avx512.mask.expand.b.512
+    x86_avx512_mask_expand_d_128,              // llvm.x86.avx512.mask.expand.d.128
+    x86_avx512_mask_expand_d_256,              // llvm.x86.avx512.mask.expand.d.256
+    x86_avx512_mask_expand_d_512,              // llvm.x86.avx512.mask.expand.d.512
+    x86_avx512_mask_expand_pd_128,             // llvm.x86.avx512.mask.expand.pd.128
+    x86_avx512_mask_expand_pd_256,             // llvm.x86.avx512.mask.expand.pd.256
+    x86_avx512_mask_expand_pd_512,             // llvm.x86.avx512.mask.expand.pd.512
+    x86_avx512_mask_expand_ps_128,             // llvm.x86.avx512.mask.expand.ps.128
+    x86_avx512_mask_expand_ps_256,             // llvm.x86.avx512.mask.expand.ps.256
+    x86_avx512_mask_expand_ps_512,             // llvm.x86.avx512.mask.expand.ps.512
+    x86_avx512_mask_expand_q_128,              // llvm.x86.avx512.mask.expand.q.128
+    x86_avx512_mask_expand_q_256,              // llvm.x86.avx512.mask.expand.q.256
+    x86_avx512_mask_expand_q_512,              // llvm.x86.avx512.mask.expand.q.512
+    x86_avx512_mask_expand_w_128,              // llvm.x86.avx512.mask.expand.w.128
+    x86_avx512_mask_expand_w_256,              // llvm.x86.avx512.mask.expand.w.256
+    x86_avx512_mask_expand_w_512,              // llvm.x86.avx512.mask.expand.w.512
+    x86_avx512_mask_fixupimm_pd_128,           // llvm.x86.avx512.mask.fixupimm.pd.128
+    x86_avx512_mask_fixupimm_pd_256,           // llvm.x86.avx512.mask.fixupimm.pd.256
+    x86_avx512_mask_fixupimm_pd_512,           // llvm.x86.avx512.mask.fixupimm.pd.512
+    x86_avx512_mask_fixupimm_ps_128,           // llvm.x86.avx512.mask.fixupimm.ps.128
+    x86_avx512_mask_fixupimm_ps_256,           // llvm.x86.avx512.mask.fixupimm.ps.256
+    x86_avx512_mask_fixupimm_ps_512,           // llvm.x86.avx512.mask.fixupimm.ps.512
+    x86_avx512_mask_fixupimm_sd,               // llvm.x86.avx512.mask.fixupimm.sd
+    x86_avx512_mask_fixupimm_ss,               // llvm.x86.avx512.mask.fixupimm.ss
+    x86_avx512_mask_fpclass_sd,                // llvm.x86.avx512.mask.fpclass.sd
+    x86_avx512_mask_fpclass_ss,                // llvm.x86.avx512.mask.fpclass.ss
+    x86_avx512_mask_getexp_pd_128,             // llvm.x86.avx512.mask.getexp.pd.128
+    x86_avx512_mask_getexp_pd_256,             // llvm.x86.avx512.mask.getexp.pd.256
+    x86_avx512_mask_getexp_pd_512,             // llvm.x86.avx512.mask.getexp.pd.512
+    x86_avx512_mask_getexp_ps_128,             // llvm.x86.avx512.mask.getexp.ps.128
+    x86_avx512_mask_getexp_ps_256,             // llvm.x86.avx512.mask.getexp.ps.256
+    x86_avx512_mask_getexp_ps_512,             // llvm.x86.avx512.mask.getexp.ps.512
+    x86_avx512_mask_getexp_sd,                 // llvm.x86.avx512.mask.getexp.sd
+    x86_avx512_mask_getexp_ss,                 // llvm.x86.avx512.mask.getexp.ss
+    x86_avx512_mask_getmant_pd_128,            // llvm.x86.avx512.mask.getmant.pd.128
+    x86_avx512_mask_getmant_pd_256,            // llvm.x86.avx512.mask.getmant.pd.256
+    x86_avx512_mask_getmant_pd_512,            // llvm.x86.avx512.mask.getmant.pd.512
+    x86_avx512_mask_getmant_ps_128,            // llvm.x86.avx512.mask.getmant.ps.128
+    x86_avx512_mask_getmant_ps_256,            // llvm.x86.avx512.mask.getmant.ps.256
+    x86_avx512_mask_getmant_ps_512,            // llvm.x86.avx512.mask.getmant.ps.512
+    x86_avx512_mask_getmant_sd,                // llvm.x86.avx512.mask.getmant.sd
+    x86_avx512_mask_getmant_ss,                // llvm.x86.avx512.mask.getmant.ss
+    x86_avx512_mask_max_sd_round,              // llvm.x86.avx512.mask.max.sd.round
+    x86_avx512_mask_max_ss_round,              // llvm.x86.avx512.mask.max.ss.round
+    x86_avx512_mask_min_sd_round,              // llvm.x86.avx512.mask.min.sd.round
+    x86_avx512_mask_min_ss_round,              // llvm.x86.avx512.mask.min.ss.round
+    x86_avx512_mask_mul_sd_round,              // llvm.x86.avx512.mask.mul.sd.round
+    x86_avx512_mask_mul_ss_round,              // llvm.x86.avx512.mask.mul.ss.round
+    x86_avx512_mask_padds_b_128,               // llvm.x86.avx512.mask.padds.b.128
+    x86_avx512_mask_padds_b_256,               // llvm.x86.avx512.mask.padds.b.256
+    x86_avx512_mask_padds_b_512,               // llvm.x86.avx512.mask.padds.b.512
+    x86_avx512_mask_padds_w_128,               // llvm.x86.avx512.mask.padds.w.128
+    x86_avx512_mask_padds_w_256,               // llvm.x86.avx512.mask.padds.w.256
+    x86_avx512_mask_padds_w_512,               // llvm.x86.avx512.mask.padds.w.512
+    x86_avx512_mask_paddus_b_128,              // llvm.x86.avx512.mask.paddus.b.128
+    x86_avx512_mask_paddus_b_256,              // llvm.x86.avx512.mask.paddus.b.256
+    x86_avx512_mask_paddus_b_512,              // llvm.x86.avx512.mask.paddus.b.512
+    x86_avx512_mask_paddus_w_128,              // llvm.x86.avx512.mask.paddus.w.128
+    x86_avx512_mask_paddus_w_256,              // llvm.x86.avx512.mask.paddus.w.256
+    x86_avx512_mask_paddus_w_512,              // llvm.x86.avx512.mask.paddus.w.512
+    x86_avx512_mask_pmov_db_128,               // llvm.x86.avx512.mask.pmov.db.128
+    x86_avx512_mask_pmov_db_256,               // llvm.x86.avx512.mask.pmov.db.256
+    x86_avx512_mask_pmov_db_512,               // llvm.x86.avx512.mask.pmov.db.512
+    x86_avx512_mask_pmov_db_mem_128,           // llvm.x86.avx512.mask.pmov.db.mem.128
+    x86_avx512_mask_pmov_db_mem_256,           // llvm.x86.avx512.mask.pmov.db.mem.256
+    x86_avx512_mask_pmov_db_mem_512,           // llvm.x86.avx512.mask.pmov.db.mem.512
+    x86_avx512_mask_pmov_dw_128,               // llvm.x86.avx512.mask.pmov.dw.128
+    x86_avx512_mask_pmov_dw_256,               // llvm.x86.avx512.mask.pmov.dw.256
+    x86_avx512_mask_pmov_dw_512,               // llvm.x86.avx512.mask.pmov.dw.512
+    x86_avx512_mask_pmov_dw_mem_128,           // llvm.x86.avx512.mask.pmov.dw.mem.128
+    x86_avx512_mask_pmov_dw_mem_256,           // llvm.x86.avx512.mask.pmov.dw.mem.256
+    x86_avx512_mask_pmov_dw_mem_512,           // llvm.x86.avx512.mask.pmov.dw.mem.512
+    x86_avx512_mask_pmov_qb_128,               // llvm.x86.avx512.mask.pmov.qb.128
+    x86_avx512_mask_pmov_qb_256,               // llvm.x86.avx512.mask.pmov.qb.256
+    x86_avx512_mask_pmov_qb_512,               // llvm.x86.avx512.mask.pmov.qb.512
+    x86_avx512_mask_pmov_qb_mem_128,           // llvm.x86.avx512.mask.pmov.qb.mem.128
+    x86_avx512_mask_pmov_qb_mem_256,           // llvm.x86.avx512.mask.pmov.qb.mem.256
+    x86_avx512_mask_pmov_qb_mem_512,           // llvm.x86.avx512.mask.pmov.qb.mem.512
+    x86_avx512_mask_pmov_qd_128,               // llvm.x86.avx512.mask.pmov.qd.128
+    x86_avx512_mask_pmov_qd_256,               // llvm.x86.avx512.mask.pmov.qd.256
+    x86_avx512_mask_pmov_qd_512,               // llvm.x86.avx512.mask.pmov.qd.512
+    x86_avx512_mask_pmov_qd_mem_128,           // llvm.x86.avx512.mask.pmov.qd.mem.128
+    x86_avx512_mask_pmov_qd_mem_256,           // llvm.x86.avx512.mask.pmov.qd.mem.256
+    x86_avx512_mask_pmov_qd_mem_512,           // llvm.x86.avx512.mask.pmov.qd.mem.512
+    x86_avx512_mask_pmov_qw_128,               // llvm.x86.avx512.mask.pmov.qw.128
+    x86_avx512_mask_pmov_qw_256,               // llvm.x86.avx512.mask.pmov.qw.256
+    x86_avx512_mask_pmov_qw_512,               // llvm.x86.avx512.mask.pmov.qw.512
+    x86_avx512_mask_pmov_qw_mem_128,           // llvm.x86.avx512.mask.pmov.qw.mem.128
+    x86_avx512_mask_pmov_qw_mem_256,           // llvm.x86.avx512.mask.pmov.qw.mem.256
+    x86_avx512_mask_pmov_qw_mem_512,           // llvm.x86.avx512.mask.pmov.qw.mem.512
+    x86_avx512_mask_pmov_wb_128,               // llvm.x86.avx512.mask.pmov.wb.128
+    x86_avx512_mask_pmov_wb_256,               // llvm.x86.avx512.mask.pmov.wb.256
+    x86_avx512_mask_pmov_wb_512,               // llvm.x86.avx512.mask.pmov.wb.512
+    x86_avx512_mask_pmov_wb_mem_128,           // llvm.x86.avx512.mask.pmov.wb.mem.128
+    x86_avx512_mask_pmov_wb_mem_256,           // llvm.x86.avx512.mask.pmov.wb.mem.256
+    x86_avx512_mask_pmov_wb_mem_512,           // llvm.x86.avx512.mask.pmov.wb.mem.512
+    x86_avx512_mask_pmovs_db_128,              // llvm.x86.avx512.mask.pmovs.db.128
+    x86_avx512_mask_pmovs_db_256,              // llvm.x86.avx512.mask.pmovs.db.256
+    x86_avx512_mask_pmovs_db_512,              // llvm.x86.avx512.mask.pmovs.db.512
+    x86_avx512_mask_pmovs_db_mem_128,          // llvm.x86.avx512.mask.pmovs.db.mem.128
+    x86_avx512_mask_pmovs_db_mem_256,          // llvm.x86.avx512.mask.pmovs.db.mem.256
+    x86_avx512_mask_pmovs_db_mem_512,          // llvm.x86.avx512.mask.pmovs.db.mem.512
+    x86_avx512_mask_pmovs_dw_128,              // llvm.x86.avx512.mask.pmovs.dw.128
+    x86_avx512_mask_pmovs_dw_256,              // llvm.x86.avx512.mask.pmovs.dw.256
+    x86_avx512_mask_pmovs_dw_512,              // llvm.x86.avx512.mask.pmovs.dw.512
+    x86_avx512_mask_pmovs_dw_mem_128,          // llvm.x86.avx512.mask.pmovs.dw.mem.128
+    x86_avx512_mask_pmovs_dw_mem_256,          // llvm.x86.avx512.mask.pmovs.dw.mem.256
+    x86_avx512_mask_pmovs_dw_mem_512,          // llvm.x86.avx512.mask.pmovs.dw.mem.512
+    x86_avx512_mask_pmovs_qb_128,              // llvm.x86.avx512.mask.pmovs.qb.128
+    x86_avx512_mask_pmovs_qb_256,              // llvm.x86.avx512.mask.pmovs.qb.256
+    x86_avx512_mask_pmovs_qb_512,              // llvm.x86.avx512.mask.pmovs.qb.512
+    x86_avx512_mask_pmovs_qb_mem_128,          // llvm.x86.avx512.mask.pmovs.qb.mem.128
+    x86_avx512_mask_pmovs_qb_mem_256,          // llvm.x86.avx512.mask.pmovs.qb.mem.256
+    x86_avx512_mask_pmovs_qb_mem_512,          // llvm.x86.avx512.mask.pmovs.qb.mem.512
+    x86_avx512_mask_pmovs_qd_128,              // llvm.x86.avx512.mask.pmovs.qd.128
+    x86_avx512_mask_pmovs_qd_256,              // llvm.x86.avx512.mask.pmovs.qd.256
+    x86_avx512_mask_pmovs_qd_512,              // llvm.x86.avx512.mask.pmovs.qd.512
+    x86_avx512_mask_pmovs_qd_mem_128,          // llvm.x86.avx512.mask.pmovs.qd.mem.128
+    x86_avx512_mask_pmovs_qd_mem_256,          // llvm.x86.avx512.mask.pmovs.qd.mem.256
+    x86_avx512_mask_pmovs_qd_mem_512,          // llvm.x86.avx512.mask.pmovs.qd.mem.512
+    x86_avx512_mask_pmovs_qw_128,              // llvm.x86.avx512.mask.pmovs.qw.128
+    x86_avx512_mask_pmovs_qw_256,              // llvm.x86.avx512.mask.pmovs.qw.256
+    x86_avx512_mask_pmovs_qw_512,              // llvm.x86.avx512.mask.pmovs.qw.512
+    x86_avx512_mask_pmovs_qw_mem_128,          // llvm.x86.avx512.mask.pmovs.qw.mem.128
+    x86_avx512_mask_pmovs_qw_mem_256,          // llvm.x86.avx512.mask.pmovs.qw.mem.256
+    x86_avx512_mask_pmovs_qw_mem_512,          // llvm.x86.avx512.mask.pmovs.qw.mem.512
+    x86_avx512_mask_pmovs_wb_128,              // llvm.x86.avx512.mask.pmovs.wb.128
+    x86_avx512_mask_pmovs_wb_256,              // llvm.x86.avx512.mask.pmovs.wb.256
+    x86_avx512_mask_pmovs_wb_512,              // llvm.x86.avx512.mask.pmovs.wb.512
+    x86_avx512_mask_pmovs_wb_mem_128,          // llvm.x86.avx512.mask.pmovs.wb.mem.128
+    x86_avx512_mask_pmovs_wb_mem_256,          // llvm.x86.avx512.mask.pmovs.wb.mem.256
+    x86_avx512_mask_pmovs_wb_mem_512,          // llvm.x86.avx512.mask.pmovs.wb.mem.512
+    x86_avx512_mask_pmovus_db_128,             // llvm.x86.avx512.mask.pmovus.db.128
+    x86_avx512_mask_pmovus_db_256,             // llvm.x86.avx512.mask.pmovus.db.256
+    x86_avx512_mask_pmovus_db_512,             // llvm.x86.avx512.mask.pmovus.db.512
+    x86_avx512_mask_pmovus_db_mem_128,         // llvm.x86.avx512.mask.pmovus.db.mem.128
+    x86_avx512_mask_pmovus_db_mem_256,         // llvm.x86.avx512.mask.pmovus.db.mem.256
+    x86_avx512_mask_pmovus_db_mem_512,         // llvm.x86.avx512.mask.pmovus.db.mem.512
+    x86_avx512_mask_pmovus_dw_128,             // llvm.x86.avx512.mask.pmovus.dw.128
+    x86_avx512_mask_pmovus_dw_256,             // llvm.x86.avx512.mask.pmovus.dw.256
+    x86_avx512_mask_pmovus_dw_512,             // llvm.x86.avx512.mask.pmovus.dw.512
+    x86_avx512_mask_pmovus_dw_mem_128,         // llvm.x86.avx512.mask.pmovus.dw.mem.128
+    x86_avx512_mask_pmovus_dw_mem_256,         // llvm.x86.avx512.mask.pmovus.dw.mem.256
+    x86_avx512_mask_pmovus_dw_mem_512,         // llvm.x86.avx512.mask.pmovus.dw.mem.512
+    x86_avx512_mask_pmovus_qb_128,             // llvm.x86.avx512.mask.pmovus.qb.128
+    x86_avx512_mask_pmovus_qb_256,             // llvm.x86.avx512.mask.pmovus.qb.256
+    x86_avx512_mask_pmovus_qb_512,             // llvm.x86.avx512.mask.pmovus.qb.512
+    x86_avx512_mask_pmovus_qb_mem_128,         // llvm.x86.avx512.mask.pmovus.qb.mem.128
+    x86_avx512_mask_pmovus_qb_mem_256,         // llvm.x86.avx512.mask.pmovus.qb.mem.256
+    x86_avx512_mask_pmovus_qb_mem_512,         // llvm.x86.avx512.mask.pmovus.qb.mem.512
+    x86_avx512_mask_pmovus_qd_128,             // llvm.x86.avx512.mask.pmovus.qd.128
+    x86_avx512_mask_pmovus_qd_256,             // llvm.x86.avx512.mask.pmovus.qd.256
+    x86_avx512_mask_pmovus_qd_512,             // llvm.x86.avx512.mask.pmovus.qd.512
+    x86_avx512_mask_pmovus_qd_mem_128,         // llvm.x86.avx512.mask.pmovus.qd.mem.128
+    x86_avx512_mask_pmovus_qd_mem_256,         // llvm.x86.avx512.mask.pmovus.qd.mem.256
+    x86_avx512_mask_pmovus_qd_mem_512,         // llvm.x86.avx512.mask.pmovus.qd.mem.512
+    x86_avx512_mask_pmovus_qw_128,             // llvm.x86.avx512.mask.pmovus.qw.128
+    x86_avx512_mask_pmovus_qw_256,             // llvm.x86.avx512.mask.pmovus.qw.256
+    x86_avx512_mask_pmovus_qw_512,             // llvm.x86.avx512.mask.pmovus.qw.512
+    x86_avx512_mask_pmovus_qw_mem_128,         // llvm.x86.avx512.mask.pmovus.qw.mem.128
+    x86_avx512_mask_pmovus_qw_mem_256,         // llvm.x86.avx512.mask.pmovus.qw.mem.256
+    x86_avx512_mask_pmovus_qw_mem_512,         // llvm.x86.avx512.mask.pmovus.qw.mem.512
+    x86_avx512_mask_pmovus_wb_128,             // llvm.x86.avx512.mask.pmovus.wb.128
+    x86_avx512_mask_pmovus_wb_256,             // llvm.x86.avx512.mask.pmovus.wb.256
+    x86_avx512_mask_pmovus_wb_512,             // llvm.x86.avx512.mask.pmovus.wb.512
+    x86_avx512_mask_pmovus_wb_mem_128,         // llvm.x86.avx512.mask.pmovus.wb.mem.128
+    x86_avx512_mask_pmovus_wb_mem_256,         // llvm.x86.avx512.mask.pmovus.wb.mem.256
+    x86_avx512_mask_pmovus_wb_mem_512,         // llvm.x86.avx512.mask.pmovus.wb.mem.512
+    x86_avx512_mask_pmultishift_qb_128,        // llvm.x86.avx512.mask.pmultishift.qb.128
+    x86_avx512_mask_pmultishift_qb_256,        // llvm.x86.avx512.mask.pmultishift.qb.256
+    x86_avx512_mask_pmultishift_qb_512,        // llvm.x86.avx512.mask.pmultishift.qb.512
+    x86_avx512_mask_psubs_b_128,               // llvm.x86.avx512.mask.psubs.b.128
+    x86_avx512_mask_psubs_b_256,               // llvm.x86.avx512.mask.psubs.b.256
+    x86_avx512_mask_psubs_b_512,               // llvm.x86.avx512.mask.psubs.b.512
+    x86_avx512_mask_psubs_w_128,               // llvm.x86.avx512.mask.psubs.w.128
+    x86_avx512_mask_psubs_w_256,               // llvm.x86.avx512.mask.psubs.w.256
+    x86_avx512_mask_psubs_w_512,               // llvm.x86.avx512.mask.psubs.w.512
+    x86_avx512_mask_psubus_b_128,              // llvm.x86.avx512.mask.psubus.b.128
+    x86_avx512_mask_psubus_b_256,              // llvm.x86.avx512.mask.psubus.b.256
+    x86_avx512_mask_psubus_b_512,              // llvm.x86.avx512.mask.psubus.b.512
+    x86_avx512_mask_psubus_w_128,              // llvm.x86.avx512.mask.psubus.w.128
+    x86_avx512_mask_psubus_w_256,              // llvm.x86.avx512.mask.psubus.w.256
+    x86_avx512_mask_psubus_w_512,              // llvm.x86.avx512.mask.psubus.w.512
+    x86_avx512_mask_range_pd_128,              // llvm.x86.avx512.mask.range.pd.128
+    x86_avx512_mask_range_pd_256,              // llvm.x86.avx512.mask.range.pd.256
+    x86_avx512_mask_range_pd_512,              // llvm.x86.avx512.mask.range.pd.512
+    x86_avx512_mask_range_ps_128,              // llvm.x86.avx512.mask.range.ps.128
+    x86_avx512_mask_range_ps_256,              // llvm.x86.avx512.mask.range.ps.256
+    x86_avx512_mask_range_ps_512,              // llvm.x86.avx512.mask.range.ps.512
+    x86_avx512_mask_range_sd,                  // llvm.x86.avx512.mask.range.sd
+    x86_avx512_mask_range_ss,                  // llvm.x86.avx512.mask.range.ss
+    x86_avx512_mask_reduce_pd_128,             // llvm.x86.avx512.mask.reduce.pd.128
+    x86_avx512_mask_reduce_pd_256,             // llvm.x86.avx512.mask.reduce.pd.256
+    x86_avx512_mask_reduce_pd_512,             // llvm.x86.avx512.mask.reduce.pd.512
+    x86_avx512_mask_reduce_ps_128,             // llvm.x86.avx512.mask.reduce.ps.128
+    x86_avx512_mask_reduce_ps_256,             // llvm.x86.avx512.mask.reduce.ps.256
+    x86_avx512_mask_reduce_ps_512,             // llvm.x86.avx512.mask.reduce.ps.512
+    x86_avx512_mask_reduce_sd,                 // llvm.x86.avx512.mask.reduce.sd
+    x86_avx512_mask_reduce_ss,                 // llvm.x86.avx512.mask.reduce.ss
+    x86_avx512_mask_rndscale_pd_128,           // llvm.x86.avx512.mask.rndscale.pd.128
+    x86_avx512_mask_rndscale_pd_256,           // llvm.x86.avx512.mask.rndscale.pd.256
+    x86_avx512_mask_rndscale_pd_512,           // llvm.x86.avx512.mask.rndscale.pd.512
+    x86_avx512_mask_rndscale_ps_128,           // llvm.x86.avx512.mask.rndscale.ps.128
+    x86_avx512_mask_rndscale_ps_256,           // llvm.x86.avx512.mask.rndscale.ps.256
+    x86_avx512_mask_rndscale_ps_512,           // llvm.x86.avx512.mask.rndscale.ps.512
+    x86_avx512_mask_rndscale_sd,               // llvm.x86.avx512.mask.rndscale.sd
+    x86_avx512_mask_rndscale_ss,               // llvm.x86.avx512.mask.rndscale.ss
+    x86_avx512_mask_scalef_pd_128,             // llvm.x86.avx512.mask.scalef.pd.128
+    x86_avx512_mask_scalef_pd_256,             // llvm.x86.avx512.mask.scalef.pd.256
+    x86_avx512_mask_scalef_pd_512,             // llvm.x86.avx512.mask.scalef.pd.512
+    x86_avx512_mask_scalef_ps_128,             // llvm.x86.avx512.mask.scalef.ps.128
+    x86_avx512_mask_scalef_ps_256,             // llvm.x86.avx512.mask.scalef.ps.256
+    x86_avx512_mask_scalef_ps_512,             // llvm.x86.avx512.mask.scalef.ps.512
+    x86_avx512_mask_scalef_sd,                 // llvm.x86.avx512.mask.scalef.sd
+    x86_avx512_mask_scalef_ss,                 // llvm.x86.avx512.mask.scalef.ss
+    x86_avx512_mask_sqrt_sd,                   // llvm.x86.avx512.mask.sqrt.sd
+    x86_avx512_mask_sqrt_ss,                   // llvm.x86.avx512.mask.sqrt.ss
+    x86_avx512_mask_sub_sd_round,              // llvm.x86.avx512.mask.sub.sd.round
+    x86_avx512_mask_sub_ss_round,              // llvm.x86.avx512.mask.sub.ss.round
+    x86_avx512_mask_vcvtph2ps_128,             // llvm.x86.avx512.mask.vcvtph2ps.128
+    x86_avx512_mask_vcvtph2ps_256,             // llvm.x86.avx512.mask.vcvtph2ps.256
+    x86_avx512_mask_vcvtph2ps_512,             // llvm.x86.avx512.mask.vcvtph2ps.512
+    x86_avx512_mask_vcvtps2ph_128,             // llvm.x86.avx512.mask.vcvtps2ph.128
+    x86_avx512_mask_vcvtps2ph_256,             // llvm.x86.avx512.mask.vcvtps2ph.256
+    x86_avx512_mask_vcvtps2ph_512,             // llvm.x86.avx512.mask.vcvtps2ph.512
+    x86_avx512_mask_vpshldv_d_128,             // llvm.x86.avx512.mask.vpshldv.d.128
+    x86_avx512_mask_vpshldv_d_256,             // llvm.x86.avx512.mask.vpshldv.d.256
+    x86_avx512_mask_vpshldv_d_512,             // llvm.x86.avx512.mask.vpshldv.d.512
+    x86_avx512_mask_vpshldv_q_128,             // llvm.x86.avx512.mask.vpshldv.q.128
+    x86_avx512_mask_vpshldv_q_256,             // llvm.x86.avx512.mask.vpshldv.q.256
+    x86_avx512_mask_vpshldv_q_512,             // llvm.x86.avx512.mask.vpshldv.q.512
+    x86_avx512_mask_vpshldv_w_128,             // llvm.x86.avx512.mask.vpshldv.w.128
+    x86_avx512_mask_vpshldv_w_256,             // llvm.x86.avx512.mask.vpshldv.w.256
+    x86_avx512_mask_vpshldv_w_512,             // llvm.x86.avx512.mask.vpshldv.w.512
+    x86_avx512_mask_vpshrdv_d_128,             // llvm.x86.avx512.mask.vpshrdv.d.128
+    x86_avx512_mask_vpshrdv_d_256,             // llvm.x86.avx512.mask.vpshrdv.d.256
+    x86_avx512_mask_vpshrdv_d_512,             // llvm.x86.avx512.mask.vpshrdv.d.512
+    x86_avx512_mask_vpshrdv_q_128,             // llvm.x86.avx512.mask.vpshrdv.q.128
+    x86_avx512_mask_vpshrdv_q_256,             // llvm.x86.avx512.mask.vpshrdv.q.256
+    x86_avx512_mask_vpshrdv_q_512,             // llvm.x86.avx512.mask.vpshrdv.q.512
+    x86_avx512_mask_vpshrdv_w_128,             // llvm.x86.avx512.mask.vpshrdv.w.128
+    x86_avx512_mask_vpshrdv_w_256,             // llvm.x86.avx512.mask.vpshrdv.w.256
+    x86_avx512_mask_vpshrdv_w_512,             // llvm.x86.avx512.mask.vpshrdv.w.512
+    x86_avx512_mask_vpshufbitqmb_128,          // llvm.x86.avx512.mask.vpshufbitqmb.128
+    x86_avx512_mask_vpshufbitqmb_256,          // llvm.x86.avx512.mask.vpshufbitqmb.256
+    x86_avx512_mask_vpshufbitqmb_512,          // llvm.x86.avx512.mask.vpshufbitqmb.512
+    x86_avx512_maskz_fixupimm_pd_128,          // llvm.x86.avx512.maskz.fixupimm.pd.128
+    x86_avx512_maskz_fixupimm_pd_256,          // llvm.x86.avx512.maskz.fixupimm.pd.256
+    x86_avx512_maskz_fixupimm_pd_512,          // llvm.x86.avx512.maskz.fixupimm.pd.512
+    x86_avx512_maskz_fixupimm_ps_128,          // llvm.x86.avx512.maskz.fixupimm.ps.128
+    x86_avx512_maskz_fixupimm_ps_256,          // llvm.x86.avx512.maskz.fixupimm.ps.256
+    x86_avx512_maskz_fixupimm_ps_512,          // llvm.x86.avx512.maskz.fixupimm.ps.512
+    x86_avx512_maskz_fixupimm_sd,              // llvm.x86.avx512.maskz.fixupimm.sd
+    x86_avx512_maskz_fixupimm_ss,              // llvm.x86.avx512.maskz.fixupimm.ss
+    x86_avx512_maskz_vpshldv_d_128,            // llvm.x86.avx512.maskz.vpshldv.d.128
+    x86_avx512_maskz_vpshldv_d_256,            // llvm.x86.avx512.maskz.vpshldv.d.256
+    x86_avx512_maskz_vpshldv_d_512,            // llvm.x86.avx512.maskz.vpshldv.d.512
+    x86_avx512_maskz_vpshldv_q_128,            // llvm.x86.avx512.maskz.vpshldv.q.128
+    x86_avx512_maskz_vpshldv_q_256,            // llvm.x86.avx512.maskz.vpshldv.q.256
+    x86_avx512_maskz_vpshldv_q_512,            // llvm.x86.avx512.maskz.vpshldv.q.512
+    x86_avx512_maskz_vpshldv_w_128,            // llvm.x86.avx512.maskz.vpshldv.w.128
+    x86_avx512_maskz_vpshldv_w_256,            // llvm.x86.avx512.maskz.vpshldv.w.256
+    x86_avx512_maskz_vpshldv_w_512,            // llvm.x86.avx512.maskz.vpshldv.w.512
+    x86_avx512_maskz_vpshrdv_d_128,            // llvm.x86.avx512.maskz.vpshrdv.d.128
+    x86_avx512_maskz_vpshrdv_d_256,            // llvm.x86.avx512.maskz.vpshrdv.d.256
+    x86_avx512_maskz_vpshrdv_d_512,            // llvm.x86.avx512.maskz.vpshrdv.d.512
+    x86_avx512_maskz_vpshrdv_q_128,            // llvm.x86.avx512.maskz.vpshrdv.q.128
+    x86_avx512_maskz_vpshrdv_q_256,            // llvm.x86.avx512.maskz.vpshrdv.q.256
+    x86_avx512_maskz_vpshrdv_q_512,            // llvm.x86.avx512.maskz.vpshrdv.q.512
+    x86_avx512_maskz_vpshrdv_w_128,            // llvm.x86.avx512.maskz.vpshrdv.w.128
+    x86_avx512_maskz_vpshrdv_w_256,            // llvm.x86.avx512.maskz.vpshrdv.w.256
+    x86_avx512_maskz_vpshrdv_w_512,            // llvm.x86.avx512.maskz.vpshrdv.w.512
+    x86_avx512_max_pd_512,                     // llvm.x86.avx512.max.pd.512
+    x86_avx512_max_ps_512,                     // llvm.x86.avx512.max.ps.512
+    x86_avx512_min_pd_512,                     // llvm.x86.avx512.min.pd.512
+    x86_avx512_min_ps_512,                     // llvm.x86.avx512.min.ps.512
+    x86_avx512_mul_pd_512,                     // llvm.x86.avx512.mul.pd.512
+    x86_avx512_mul_ps_512,                     // llvm.x86.avx512.mul.ps.512
+    x86_avx512_packssdw_512,                   // llvm.x86.avx512.packssdw.512
+    x86_avx512_packsswb_512,                   // llvm.x86.avx512.packsswb.512
+    x86_avx512_packusdw_512,                   // llvm.x86.avx512.packusdw.512
+    x86_avx512_packuswb_512,                   // llvm.x86.avx512.packuswb.512
+    x86_avx512_permvar_df_256,                 // llvm.x86.avx512.permvar.df.256
+    x86_avx512_permvar_df_512,                 // llvm.x86.avx512.permvar.df.512
+    x86_avx512_permvar_di_256,                 // llvm.x86.avx512.permvar.di.256
+    x86_avx512_permvar_di_512,                 // llvm.x86.avx512.permvar.di.512
+    x86_avx512_permvar_hi_128,                 // llvm.x86.avx512.permvar.hi.128
+    x86_avx512_permvar_hi_256,                 // llvm.x86.avx512.permvar.hi.256
+    x86_avx512_permvar_hi_512,                 // llvm.x86.avx512.permvar.hi.512
+    x86_avx512_permvar_qi_128,                 // llvm.x86.avx512.permvar.qi.128
+    x86_avx512_permvar_qi_256,                 // llvm.x86.avx512.permvar.qi.256
+    x86_avx512_permvar_qi_512,                 // llvm.x86.avx512.permvar.qi.512
+    x86_avx512_permvar_sf_512,                 // llvm.x86.avx512.permvar.sf.512
+    x86_avx512_permvar_si_512,                 // llvm.x86.avx512.permvar.si.512
+    x86_avx512_pmaddubs_w_512,                 // llvm.x86.avx512.pmaddubs.w.512
+    x86_avx512_pmaddw_d_512,                   // llvm.x86.avx512.pmaddw.d.512
+    x86_avx512_pmul_hr_sw_512,                 // llvm.x86.avx512.pmul.hr.sw.512
+    x86_avx512_pmulh_w_512,                    // llvm.x86.avx512.pmulh.w.512
+    x86_avx512_pmulhu_w_512,                   // llvm.x86.avx512.pmulhu.w.512
+    x86_avx512_prol_d_128,                     // llvm.x86.avx512.prol.d.128
+    x86_avx512_prol_d_256,                     // llvm.x86.avx512.prol.d.256
+    x86_avx512_prol_d_512,                     // llvm.x86.avx512.prol.d.512
+    x86_avx512_prol_q_128,                     // llvm.x86.avx512.prol.q.128
+    x86_avx512_prol_q_256,                     // llvm.x86.avx512.prol.q.256
+    x86_avx512_prol_q_512,                     // llvm.x86.avx512.prol.q.512
+    x86_avx512_prolv_d_128,                    // llvm.x86.avx512.prolv.d.128
+    x86_avx512_prolv_d_256,                    // llvm.x86.avx512.prolv.d.256
+    x86_avx512_prolv_d_512,                    // llvm.x86.avx512.prolv.d.512
+    x86_avx512_prolv_q_128,                    // llvm.x86.avx512.prolv.q.128
+    x86_avx512_prolv_q_256,                    // llvm.x86.avx512.prolv.q.256
+    x86_avx512_prolv_q_512,                    // llvm.x86.avx512.prolv.q.512
+    x86_avx512_pror_d_128,                     // llvm.x86.avx512.pror.d.128
+    x86_avx512_pror_d_256,                     // llvm.x86.avx512.pror.d.256
+    x86_avx512_pror_d_512,                     // llvm.x86.avx512.pror.d.512
+    x86_avx512_pror_q_128,                     // llvm.x86.avx512.pror.q.128
+    x86_avx512_pror_q_256,                     // llvm.x86.avx512.pror.q.256
+    x86_avx512_pror_q_512,                     // llvm.x86.avx512.pror.q.512
+    x86_avx512_prorv_d_128,                    // llvm.x86.avx512.prorv.d.128
+    x86_avx512_prorv_d_256,                    // llvm.x86.avx512.prorv.d.256
+    x86_avx512_prorv_d_512,                    // llvm.x86.avx512.prorv.d.512
+    x86_avx512_prorv_q_128,                    // llvm.x86.avx512.prorv.q.128
+    x86_avx512_prorv_q_256,                    // llvm.x86.avx512.prorv.q.256
+    x86_avx512_prorv_q_512,                    // llvm.x86.avx512.prorv.q.512
+    x86_avx512_psad_bw_512,                    // llvm.x86.avx512.psad.bw.512
+    x86_avx512_pshuf_b_512,                    // llvm.x86.avx512.pshuf.b.512
+    x86_avx512_psll_d_512,                     // llvm.x86.avx512.psll.d.512
+    x86_avx512_psll_q_512,                     // llvm.x86.avx512.psll.q.512
+    x86_avx512_psll_w_512,                     // llvm.x86.avx512.psll.w.512
+    x86_avx512_pslli_d_512,                    // llvm.x86.avx512.pslli.d.512
+    x86_avx512_pslli_q_512,                    // llvm.x86.avx512.pslli.q.512
+    x86_avx512_pslli_w_512,                    // llvm.x86.avx512.pslli.w.512
+    x86_avx512_psllv_d_512,                    // llvm.x86.avx512.psllv.d.512
+    x86_avx512_psllv_q_512,                    // llvm.x86.avx512.psllv.q.512
+    x86_avx512_psllv_w_128,                    // llvm.x86.avx512.psllv.w.128
+    x86_avx512_psllv_w_256,                    // llvm.x86.avx512.psllv.w.256
+    x86_avx512_psllv_w_512,                    // llvm.x86.avx512.psllv.w.512
+    x86_avx512_psra_d_512,                     // llvm.x86.avx512.psra.d.512
+    x86_avx512_psra_q_128,                     // llvm.x86.avx512.psra.q.128
+    x86_avx512_psra_q_256,                     // llvm.x86.avx512.psra.q.256
+    x86_avx512_psra_q_512,                     // llvm.x86.avx512.psra.q.512
+    x86_avx512_psra_w_512,                     // llvm.x86.avx512.psra.w.512
+    x86_avx512_psrai_d_512,                    // llvm.x86.avx512.psrai.d.512
+    x86_avx512_psrai_q_128,                    // llvm.x86.avx512.psrai.q.128
+    x86_avx512_psrai_q_256,                    // llvm.x86.avx512.psrai.q.256
+    x86_avx512_psrai_q_512,                    // llvm.x86.avx512.psrai.q.512
+    x86_avx512_psrai_w_512,                    // llvm.x86.avx512.psrai.w.512
+    x86_avx512_psrav_d_512,                    // llvm.x86.avx512.psrav.d.512
+    x86_avx512_psrav_q_128,                    // llvm.x86.avx512.psrav.q.128
+    x86_avx512_psrav_q_256,                    // llvm.x86.avx512.psrav.q.256
+    x86_avx512_psrav_q_512,                    // llvm.x86.avx512.psrav.q.512
+    x86_avx512_psrav_w_128,                    // llvm.x86.avx512.psrav.w.128
+    x86_avx512_psrav_w_256,                    // llvm.x86.avx512.psrav.w.256
+    x86_avx512_psrav_w_512,                    // llvm.x86.avx512.psrav.w.512
+    x86_avx512_psrl_d_512,                     // llvm.x86.avx512.psrl.d.512
+    x86_avx512_psrl_q_512,                     // llvm.x86.avx512.psrl.q.512
+    x86_avx512_psrl_w_512,                     // llvm.x86.avx512.psrl.w.512
+    x86_avx512_psrli_d_512,                    // llvm.x86.avx512.psrli.d.512
+    x86_avx512_psrli_q_512,                    // llvm.x86.avx512.psrli.q.512
+    x86_avx512_psrli_w_512,                    // llvm.x86.avx512.psrli.w.512
+    x86_avx512_psrlv_d_512,                    // llvm.x86.avx512.psrlv.d.512
+    x86_avx512_psrlv_q_512,                    // llvm.x86.avx512.psrlv.q.512
+    x86_avx512_psrlv_w_128,                    // llvm.x86.avx512.psrlv.w.128
+    x86_avx512_psrlv_w_256,                    // llvm.x86.avx512.psrlv.w.256
+    x86_avx512_psrlv_w_512,                    // llvm.x86.avx512.psrlv.w.512
+    x86_avx512_pternlog_d_128,                 // llvm.x86.avx512.pternlog.d.128
+    x86_avx512_pternlog_d_256,                 // llvm.x86.avx512.pternlog.d.256
+    x86_avx512_pternlog_d_512,                 // llvm.x86.avx512.pternlog.d.512
+    x86_avx512_pternlog_q_128,                 // llvm.x86.avx512.pternlog.q.128
+    x86_avx512_pternlog_q_256,                 // llvm.x86.avx512.pternlog.q.256
+    x86_avx512_pternlog_q_512,                 // llvm.x86.avx512.pternlog.q.512
+    x86_avx512_rcp14_pd_128,                   // llvm.x86.avx512.rcp14.pd.128
+    x86_avx512_rcp14_pd_256,                   // llvm.x86.avx512.rcp14.pd.256
+    x86_avx512_rcp14_pd_512,                   // llvm.x86.avx512.rcp14.pd.512
+    x86_avx512_rcp14_ps_128,                   // llvm.x86.avx512.rcp14.ps.128
+    x86_avx512_rcp14_ps_256,                   // llvm.x86.avx512.rcp14.ps.256
+    x86_avx512_rcp14_ps_512,                   // llvm.x86.avx512.rcp14.ps.512
+    x86_avx512_rcp14_sd,                       // llvm.x86.avx512.rcp14.sd
+    x86_avx512_rcp14_ss,                       // llvm.x86.avx512.rcp14.ss
+    x86_avx512_rcp28_pd,                       // llvm.x86.avx512.rcp28.pd
+    x86_avx512_rcp28_ps,                       // llvm.x86.avx512.rcp28.ps
+    x86_avx512_rcp28_sd,                       // llvm.x86.avx512.rcp28.sd
+    x86_avx512_rcp28_ss,                       // llvm.x86.avx512.rcp28.ss
+    x86_avx512_rsqrt14_pd_128,                 // llvm.x86.avx512.rsqrt14.pd.128
+    x86_avx512_rsqrt14_pd_256,                 // llvm.x86.avx512.rsqrt14.pd.256
+    x86_avx512_rsqrt14_pd_512,                 // llvm.x86.avx512.rsqrt14.pd.512
+    x86_avx512_rsqrt14_ps_128,                 // llvm.x86.avx512.rsqrt14.ps.128
+    x86_avx512_rsqrt14_ps_256,                 // llvm.x86.avx512.rsqrt14.ps.256
+    x86_avx512_rsqrt14_ps_512,                 // llvm.x86.avx512.rsqrt14.ps.512
+    x86_avx512_rsqrt14_sd,                     // llvm.x86.avx512.rsqrt14.sd
+    x86_avx512_rsqrt14_ss,                     // llvm.x86.avx512.rsqrt14.ss
+    x86_avx512_rsqrt28_pd,                     // llvm.x86.avx512.rsqrt28.pd
+    x86_avx512_rsqrt28_ps,                     // llvm.x86.avx512.rsqrt28.ps
+    x86_avx512_rsqrt28_sd,                     // llvm.x86.avx512.rsqrt28.sd
+    x86_avx512_rsqrt28_ss,                     // llvm.x86.avx512.rsqrt28.ss
+    x86_avx512_scatter_dpd_512,                // llvm.x86.avx512.scatter.dpd.512
+    x86_avx512_scatter_dpi_512,                // llvm.x86.avx512.scatter.dpi.512
+    x86_avx512_scatter_dpq_512,                // llvm.x86.avx512.scatter.dpq.512
+    x86_avx512_scatter_dps_512,                // llvm.x86.avx512.scatter.dps.512
+    x86_avx512_scatter_qpd_512,                // llvm.x86.avx512.scatter.qpd.512
+    x86_avx512_scatter_qpi_512,                // llvm.x86.avx512.scatter.qpi.512
+    x86_avx512_scatter_qpq_512,                // llvm.x86.avx512.scatter.qpq.512
+    x86_avx512_scatter_qps_512,                // llvm.x86.avx512.scatter.qps.512
+    x86_avx512_scatterdiv2_df,                 // llvm.x86.avx512.scatterdiv2.df
+    x86_avx512_scatterdiv2_di,                 // llvm.x86.avx512.scatterdiv2.di
+    x86_avx512_scatterdiv4_df,                 // llvm.x86.avx512.scatterdiv4.df
+    x86_avx512_scatterdiv4_di,                 // llvm.x86.avx512.scatterdiv4.di
+    x86_avx512_scatterdiv4_sf,                 // llvm.x86.avx512.scatterdiv4.sf
+    x86_avx512_scatterdiv4_si,                 // llvm.x86.avx512.scatterdiv4.si
+    x86_avx512_scatterdiv8_sf,                 // llvm.x86.avx512.scatterdiv8.sf
+    x86_avx512_scatterdiv8_si,                 // llvm.x86.avx512.scatterdiv8.si
+    x86_avx512_scatterpf_dpd_512,              // llvm.x86.avx512.scatterpf.dpd.512
+    x86_avx512_scatterpf_dps_512,              // llvm.x86.avx512.scatterpf.dps.512
+    x86_avx512_scatterpf_qpd_512,              // llvm.x86.avx512.scatterpf.qpd.512
+    x86_avx512_scatterpf_qps_512,              // llvm.x86.avx512.scatterpf.qps.512
+    x86_avx512_scattersiv2_df,                 // llvm.x86.avx512.scattersiv2.df
+    x86_avx512_scattersiv2_di,                 // llvm.x86.avx512.scattersiv2.di
+    x86_avx512_scattersiv4_df,                 // llvm.x86.avx512.scattersiv4.df
+    x86_avx512_scattersiv4_di,                 // llvm.x86.avx512.scattersiv4.di
+    x86_avx512_scattersiv4_sf,                 // llvm.x86.avx512.scattersiv4.sf
+    x86_avx512_scattersiv4_si,                 // llvm.x86.avx512.scattersiv4.si
+    x86_avx512_scattersiv8_sf,                 // llvm.x86.avx512.scattersiv8.sf
+    x86_avx512_scattersiv8_si,                 // llvm.x86.avx512.scattersiv8.si
+    x86_avx512_sqrt_pd_512,                    // llvm.x86.avx512.sqrt.pd.512
+    x86_avx512_sqrt_ps_512,                    // llvm.x86.avx512.sqrt.ps.512
+    x86_avx512_sub_pd_512,                     // llvm.x86.avx512.sub.pd.512
+    x86_avx512_sub_ps_512,                     // llvm.x86.avx512.sub.ps.512
+    x86_avx512_vcomi_sd,                       // llvm.x86.avx512.vcomi.sd
+    x86_avx512_vcomi_ss,                       // llvm.x86.avx512.vcomi.ss
+    x86_avx512_vcvtsd2si32,                    // llvm.x86.avx512.vcvtsd2si32
+    x86_avx512_vcvtsd2si64,                    // llvm.x86.avx512.vcvtsd2si64
+    x86_avx512_vcvtsd2usi32,                   // llvm.x86.avx512.vcvtsd2usi32
+    x86_avx512_vcvtsd2usi64,                   // llvm.x86.avx512.vcvtsd2usi64
+    x86_avx512_vcvtss2si32,                    // llvm.x86.avx512.vcvtss2si32
+    x86_avx512_vcvtss2si64,                    // llvm.x86.avx512.vcvtss2si64
+    x86_avx512_vcvtss2usi32,                   // llvm.x86.avx512.vcvtss2usi32
+    x86_avx512_vcvtss2usi64,                   // llvm.x86.avx512.vcvtss2usi64
+    x86_avx512_vfmadd_f32,                     // llvm.x86.avx512.vfmadd.f32
+    x86_avx512_vfmadd_f64,                     // llvm.x86.avx512.vfmadd.f64
+    x86_avx512_vfmadd_pd_512,                  // llvm.x86.avx512.vfmadd.pd.512
+    x86_avx512_vfmadd_ps_512,                  // llvm.x86.avx512.vfmadd.ps.512
+    x86_avx512_vfmaddsub_pd_512,               // llvm.x86.avx512.vfmaddsub.pd.512
+    x86_avx512_vfmaddsub_ps_512,               // llvm.x86.avx512.vfmaddsub.ps.512
+    x86_avx512_vpdpbusd_128,                   // llvm.x86.avx512.vpdpbusd.128
+    x86_avx512_vpdpbusd_256,                   // llvm.x86.avx512.vpdpbusd.256
+    x86_avx512_vpdpbusd_512,                   // llvm.x86.avx512.vpdpbusd.512
+    x86_avx512_vpdpbusds_128,                  // llvm.x86.avx512.vpdpbusds.128
+    x86_avx512_vpdpbusds_256,                  // llvm.x86.avx512.vpdpbusds.256
+    x86_avx512_vpdpbusds_512,                  // llvm.x86.avx512.vpdpbusds.512
+    x86_avx512_vpdpwssd_128,                   // llvm.x86.avx512.vpdpwssd.128
+    x86_avx512_vpdpwssd_256,                   // llvm.x86.avx512.vpdpwssd.256
+    x86_avx512_vpdpwssd_512,                   // llvm.x86.avx512.vpdpwssd.512
+    x86_avx512_vpdpwssds_128,                  // llvm.x86.avx512.vpdpwssds.128
+    x86_avx512_vpdpwssds_256,                  // llvm.x86.avx512.vpdpwssds.256
+    x86_avx512_vpdpwssds_512,                  // llvm.x86.avx512.vpdpwssds.512
+    x86_avx512_vpermi2var_d_128,               // llvm.x86.avx512.vpermi2var.d.128
+    x86_avx512_vpermi2var_d_256,               // llvm.x86.avx512.vpermi2var.d.256
+    x86_avx512_vpermi2var_d_512,               // llvm.x86.avx512.vpermi2var.d.512
+    x86_avx512_vpermi2var_hi_128,              // llvm.x86.avx512.vpermi2var.hi.128
+    x86_avx512_vpermi2var_hi_256,              // llvm.x86.avx512.vpermi2var.hi.256
+    x86_avx512_vpermi2var_hi_512,              // llvm.x86.avx512.vpermi2var.hi.512
+    x86_avx512_vpermi2var_pd_128,              // llvm.x86.avx512.vpermi2var.pd.128
+    x86_avx512_vpermi2var_pd_256,              // llvm.x86.avx512.vpermi2var.pd.256
+    x86_avx512_vpermi2var_pd_512,              // llvm.x86.avx512.vpermi2var.pd.512
+    x86_avx512_vpermi2var_ps_128,              // llvm.x86.avx512.vpermi2var.ps.128
+    x86_avx512_vpermi2var_ps_256,              // llvm.x86.avx512.vpermi2var.ps.256
+    x86_avx512_vpermi2var_ps_512,              // llvm.x86.avx512.vpermi2var.ps.512
+    x86_avx512_vpermi2var_q_128,               // llvm.x86.avx512.vpermi2var.q.128
+    x86_avx512_vpermi2var_q_256,               // llvm.x86.avx512.vpermi2var.q.256
+    x86_avx512_vpermi2var_q_512,               // llvm.x86.avx512.vpermi2var.q.512
+    x86_avx512_vpermi2var_qi_128,              // llvm.x86.avx512.vpermi2var.qi.128
+    x86_avx512_vpermi2var_qi_256,              // llvm.x86.avx512.vpermi2var.qi.256
+    x86_avx512_vpermi2var_qi_512,              // llvm.x86.avx512.vpermi2var.qi.512
+    x86_avx512_vpermilvar_pd_512,              // llvm.x86.avx512.vpermilvar.pd.512
+    x86_avx512_vpermilvar_ps_512,              // llvm.x86.avx512.vpermilvar.ps.512
+    x86_avx512_vpmadd52h_uq_128,               // llvm.x86.avx512.vpmadd52h.uq.128
+    x86_avx512_vpmadd52h_uq_256,               // llvm.x86.avx512.vpmadd52h.uq.256
+    x86_avx512_vpmadd52h_uq_512,               // llvm.x86.avx512.vpmadd52h.uq.512
+    x86_avx512_vpmadd52l_uq_128,               // llvm.x86.avx512.vpmadd52l.uq.128
+    x86_avx512_vpmadd52l_uq_256,               // llvm.x86.avx512.vpmadd52l.uq.256
+    x86_avx512_vpmadd52l_uq_512,               // llvm.x86.avx512.vpmadd52l.uq.512
+    x86_avx512_vpshld_d_128,                   // llvm.x86.avx512.vpshld.d.128
+    x86_avx512_vpshld_d_256,                   // llvm.x86.avx512.vpshld.d.256
+    x86_avx512_vpshld_d_512,                   // llvm.x86.avx512.vpshld.d.512
+    x86_avx512_vpshld_q_128,                   // llvm.x86.avx512.vpshld.q.128
+    x86_avx512_vpshld_q_256,                   // llvm.x86.avx512.vpshld.q.256
+    x86_avx512_vpshld_q_512,                   // llvm.x86.avx512.vpshld.q.512
+    x86_avx512_vpshld_w_128,                   // llvm.x86.avx512.vpshld.w.128
+    x86_avx512_vpshld_w_256,                   // llvm.x86.avx512.vpshld.w.256
+    x86_avx512_vpshld_w_512,                   // llvm.x86.avx512.vpshld.w.512
+    x86_avx512_vpshrd_d_128,                   // llvm.x86.avx512.vpshrd.d.128
+    x86_avx512_vpshrd_d_256,                   // llvm.x86.avx512.vpshrd.d.256
+    x86_avx512_vpshrd_d_512,                   // llvm.x86.avx512.vpshrd.d.512
+    x86_avx512_vpshrd_q_128,                   // llvm.x86.avx512.vpshrd.q.128
+    x86_avx512_vpshrd_q_256,                   // llvm.x86.avx512.vpshrd.q.256
+    x86_avx512_vpshrd_q_512,                   // llvm.x86.avx512.vpshrd.q.512
+    x86_avx512_vpshrd_w_128,                   // llvm.x86.avx512.vpshrd.w.128
+    x86_avx512_vpshrd_w_256,                   // llvm.x86.avx512.vpshrd.w.256
+    x86_avx512_vpshrd_w_512,                   // llvm.x86.avx512.vpshrd.w.512
+    x86_bmi_bextr_32,                          // llvm.x86.bmi.bextr.32
+    x86_bmi_bextr_64,                          // llvm.x86.bmi.bextr.64
+    x86_bmi_bzhi_32,                           // llvm.x86.bmi.bzhi.32
+    x86_bmi_bzhi_64,                           // llvm.x86.bmi.bzhi.64
+    x86_bmi_pdep_32,                           // llvm.x86.bmi.pdep.32
+    x86_bmi_pdep_64,                           // llvm.x86.bmi.pdep.64
+    x86_bmi_pext_32,                           // llvm.x86.bmi.pext.32
+    x86_bmi_pext_64,                           // llvm.x86.bmi.pext.64
+    x86_cldemote,                              // llvm.x86.cldemote
+    x86_clflushopt,                            // llvm.x86.clflushopt
+    x86_clrssbsy,                              // llvm.x86.clrssbsy
+    x86_clwb,                                  // llvm.x86.clwb
+    x86_clzero,                                // llvm.x86.clzero
+    x86_directstore32,                         // llvm.x86.directstore32
+    x86_directstore64,                         // llvm.x86.directstore64
+    x86_flags_read_u32,                        // llvm.x86.flags.read.u32
+    x86_flags_read_u64,                        // llvm.x86.flags.read.u64
+    x86_flags_write_u32,                       // llvm.x86.flags.write.u32
+    x86_flags_write_u64,                       // llvm.x86.flags.write.u64
+    x86_fxrstor,                               // llvm.x86.fxrstor
+    x86_fxrstor64,                             // llvm.x86.fxrstor64
+    x86_fxsave,                                // llvm.x86.fxsave
+    x86_fxsave64,                              // llvm.x86.fxsave64
+    x86_incsspd,                               // llvm.x86.incsspd
+    x86_incsspq,                               // llvm.x86.incsspq
+    x86_int,                                   // llvm.x86.int
+    x86_invpcid,                               // llvm.x86.invpcid
+    x86_llwpcb,                                // llvm.x86.llwpcb
+    x86_lwpins32,                              // llvm.x86.lwpins32
+    x86_lwpins64,                              // llvm.x86.lwpins64
+    x86_lwpval32,                              // llvm.x86.lwpval32
+    x86_lwpval64,                              // llvm.x86.lwpval64
+    x86_mmx_emms,                              // llvm.x86.mmx.emms
+    x86_mmx_femms,                             // llvm.x86.mmx.femms
+    x86_mmx_maskmovq,                          // llvm.x86.mmx.maskmovq
+    x86_mmx_movnt_dq,                          // llvm.x86.mmx.movnt.dq
+    x86_mmx_packssdw,                          // llvm.x86.mmx.packssdw
+    x86_mmx_packsswb,                          // llvm.x86.mmx.packsswb
+    x86_mmx_packuswb,                          // llvm.x86.mmx.packuswb
+    x86_mmx_padd_b,                            // llvm.x86.mmx.padd.b
+    x86_mmx_padd_d,                            // llvm.x86.mmx.padd.d
+    x86_mmx_padd_q,                            // llvm.x86.mmx.padd.q
+    x86_mmx_padd_w,                            // llvm.x86.mmx.padd.w
+    x86_mmx_padds_b,                           // llvm.x86.mmx.padds.b
+    x86_mmx_padds_w,                           // llvm.x86.mmx.padds.w
+    x86_mmx_paddus_b,                          // llvm.x86.mmx.paddus.b
+    x86_mmx_paddus_w,                          // llvm.x86.mmx.paddus.w
+    x86_mmx_palignr_b,                         // llvm.x86.mmx.palignr.b
+    x86_mmx_pand,                              // llvm.x86.mmx.pand
+    x86_mmx_pandn,                             // llvm.x86.mmx.pandn
+    x86_mmx_pavg_b,                            // llvm.x86.mmx.pavg.b
+    x86_mmx_pavg_w,                            // llvm.x86.mmx.pavg.w
+    x86_mmx_pcmpeq_b,                          // llvm.x86.mmx.pcmpeq.b
+    x86_mmx_pcmpeq_d,                          // llvm.x86.mmx.pcmpeq.d
+    x86_mmx_pcmpeq_w,                          // llvm.x86.mmx.pcmpeq.w
+    x86_mmx_pcmpgt_b,                          // llvm.x86.mmx.pcmpgt.b
+    x86_mmx_pcmpgt_d,                          // llvm.x86.mmx.pcmpgt.d
+    x86_mmx_pcmpgt_w,                          // llvm.x86.mmx.pcmpgt.w
+    x86_mmx_pextr_w,                           // llvm.x86.mmx.pextr.w
+    x86_mmx_pinsr_w,                           // llvm.x86.mmx.pinsr.w
+    x86_mmx_pmadd_wd,                          // llvm.x86.mmx.pmadd.wd
+    x86_mmx_pmaxs_w,                           // llvm.x86.mmx.pmaxs.w
+    x86_mmx_pmaxu_b,                           // llvm.x86.mmx.pmaxu.b
+    x86_mmx_pmins_w,                           // llvm.x86.mmx.pmins.w
+    x86_mmx_pminu_b,                           // llvm.x86.mmx.pminu.b
+    x86_mmx_pmovmskb,                          // llvm.x86.mmx.pmovmskb
+    x86_mmx_pmulh_w,                           // llvm.x86.mmx.pmulh.w
+    x86_mmx_pmulhu_w,                          // llvm.x86.mmx.pmulhu.w
+    x86_mmx_pmull_w,                           // llvm.x86.mmx.pmull.w
+    x86_mmx_pmulu_dq,                          // llvm.x86.mmx.pmulu.dq
+    x86_mmx_por,                               // llvm.x86.mmx.por
+    x86_mmx_psad_bw,                           // llvm.x86.mmx.psad.bw
+    x86_mmx_psll_d,                            // llvm.x86.mmx.psll.d
+    x86_mmx_psll_q,                            // llvm.x86.mmx.psll.q
+    x86_mmx_psll_w,                            // llvm.x86.mmx.psll.w
+    x86_mmx_pslli_d,                           // llvm.x86.mmx.pslli.d
+    x86_mmx_pslli_q,                           // llvm.x86.mmx.pslli.q
+    x86_mmx_pslli_w,                           // llvm.x86.mmx.pslli.w
+    x86_mmx_psra_d,                            // llvm.x86.mmx.psra.d
+    x86_mmx_psra_w,                            // llvm.x86.mmx.psra.w
+    x86_mmx_psrai_d,                           // llvm.x86.mmx.psrai.d
+    x86_mmx_psrai_w,                           // llvm.x86.mmx.psrai.w
+    x86_mmx_psrl_d,                            // llvm.x86.mmx.psrl.d
+    x86_mmx_psrl_q,                            // llvm.x86.mmx.psrl.q
+    x86_mmx_psrl_w,                            // llvm.x86.mmx.psrl.w
+    x86_mmx_psrli_d,                           // llvm.x86.mmx.psrli.d
+    x86_mmx_psrli_q,                           // llvm.x86.mmx.psrli.q
+    x86_mmx_psrli_w,                           // llvm.x86.mmx.psrli.w
+    x86_mmx_psub_b,                            // llvm.x86.mmx.psub.b
+    x86_mmx_psub_d,                            // llvm.x86.mmx.psub.d
+    x86_mmx_psub_q,                            // llvm.x86.mmx.psub.q
+    x86_mmx_psub_w,                            // llvm.x86.mmx.psub.w
+    x86_mmx_psubs_b,                           // llvm.x86.mmx.psubs.b
+    x86_mmx_psubs_w,                           // llvm.x86.mmx.psubs.w
+    x86_mmx_psubus_b,                          // llvm.x86.mmx.psubus.b
+    x86_mmx_psubus_w,                          // llvm.x86.mmx.psubus.w
+    x86_mmx_punpckhbw,                         // llvm.x86.mmx.punpckhbw
+    x86_mmx_punpckhdq,                         // llvm.x86.mmx.punpckhdq
+    x86_mmx_punpckhwd,                         // llvm.x86.mmx.punpckhwd
+    x86_mmx_punpcklbw,                         // llvm.x86.mmx.punpcklbw
+    x86_mmx_punpckldq,                         // llvm.x86.mmx.punpckldq
+    x86_mmx_punpcklwd,                         // llvm.x86.mmx.punpcklwd
+    x86_mmx_pxor,                              // llvm.x86.mmx.pxor
+    x86_monitorx,                              // llvm.x86.monitorx
+    x86_movdir64b,                             // llvm.x86.movdir64b
+    x86_mwaitx,                                // llvm.x86.mwaitx
+    x86_pclmulqdq,                             // llvm.x86.pclmulqdq
+    x86_pclmulqdq_256,                         // llvm.x86.pclmulqdq.256
+    x86_pclmulqdq_512,                         // llvm.x86.pclmulqdq.512
+    x86_ptwrite32,                             // llvm.x86.ptwrite32
+    x86_ptwrite64,                             // llvm.x86.ptwrite64
+    x86_rdfsbase_32,                           // llvm.x86.rdfsbase.32
+    x86_rdfsbase_64,                           // llvm.x86.rdfsbase.64
+    x86_rdgsbase_32,                           // llvm.x86.rdgsbase.32
+    x86_rdgsbase_64,                           // llvm.x86.rdgsbase.64
+    x86_rdpid,                                 // llvm.x86.rdpid
+    x86_rdpkru,                                // llvm.x86.rdpkru
+    x86_rdpmc,                                 // llvm.x86.rdpmc
+    x86_rdrand_16,                             // llvm.x86.rdrand.16
+    x86_rdrand_32,                             // llvm.x86.rdrand.32
+    x86_rdrand_64,                             // llvm.x86.rdrand.64
+    x86_rdseed_16,                             // llvm.x86.rdseed.16
+    x86_rdseed_32,                             // llvm.x86.rdseed.32
+    x86_rdseed_64,                             // llvm.x86.rdseed.64
+    x86_rdsspd,                                // llvm.x86.rdsspd
+    x86_rdsspq,                                // llvm.x86.rdsspq
+    x86_rdtsc,                                 // llvm.x86.rdtsc
+    x86_rdtscp,                                // llvm.x86.rdtscp
+    x86_rstorssp,                              // llvm.x86.rstorssp
+    x86_saveprevssp,                           // llvm.x86.saveprevssp
+    x86_seh_ehguard,                           // llvm.x86.seh.ehguard
+    x86_seh_ehregnode,                         // llvm.x86.seh.ehregnode
+    x86_seh_lsda,                              // llvm.x86.seh.lsda
+    x86_seh_recoverfp,                         // llvm.x86.seh.recoverfp
+    x86_setssbsy,                              // llvm.x86.setssbsy
+    x86_sha1msg1,                              // llvm.x86.sha1msg1
+    x86_sha1msg2,                              // llvm.x86.sha1msg2
+    x86_sha1nexte,                             // llvm.x86.sha1nexte
+    x86_sha1rnds4,                             // llvm.x86.sha1rnds4
+    x86_sha256msg1,                            // llvm.x86.sha256msg1
+    x86_sha256msg2,                            // llvm.x86.sha256msg2
+    x86_sha256rnds2,                           // llvm.x86.sha256rnds2
+    x86_slwpcb,                                // llvm.x86.slwpcb
+    x86_sse_cmp_ps,                            // llvm.x86.sse.cmp.ps
+    x86_sse_cmp_ss,                            // llvm.x86.sse.cmp.ss
+    x86_sse_comieq_ss,                         // llvm.x86.sse.comieq.ss
+    x86_sse_comige_ss,                         // llvm.x86.sse.comige.ss
+    x86_sse_comigt_ss,                         // llvm.x86.sse.comigt.ss
+    x86_sse_comile_ss,                         // llvm.x86.sse.comile.ss
+    x86_sse_comilt_ss,                         // llvm.x86.sse.comilt.ss
+    x86_sse_comineq_ss,                        // llvm.x86.sse.comineq.ss
+    x86_sse_cvtpd2pi,                          // llvm.x86.sse.cvtpd2pi
+    x86_sse_cvtpi2pd,                          // llvm.x86.sse.cvtpi2pd
+    x86_sse_cvtpi2ps,                          // llvm.x86.sse.cvtpi2ps
+    x86_sse_cvtps2pi,                          // llvm.x86.sse.cvtps2pi
+    x86_sse_cvtss2si,                          // llvm.x86.sse.cvtss2si
+    x86_sse_cvtss2si64,                        // llvm.x86.sse.cvtss2si64
+    x86_sse_cvttpd2pi,                         // llvm.x86.sse.cvttpd2pi
+    x86_sse_cvttps2pi,                         // llvm.x86.sse.cvttps2pi
+    x86_sse_cvttss2si,                         // llvm.x86.sse.cvttss2si
+    x86_sse_cvttss2si64,                       // llvm.x86.sse.cvttss2si64
+    x86_sse_ldmxcsr,                           // llvm.x86.sse.ldmxcsr
+    x86_sse_max_ps,                            // llvm.x86.sse.max.ps
+    x86_sse_max_ss,                            // llvm.x86.sse.max.ss
+    x86_sse_min_ps,                            // llvm.x86.sse.min.ps
+    x86_sse_min_ss,                            // llvm.x86.sse.min.ss
+    x86_sse_movmsk_ps,                         // llvm.x86.sse.movmsk.ps
+    x86_sse_pshuf_w,                           // llvm.x86.sse.pshuf.w
+    x86_sse_rcp_ps,                            // llvm.x86.sse.rcp.ps
+    x86_sse_rcp_ss,                            // llvm.x86.sse.rcp.ss
+    x86_sse_rsqrt_ps,                          // llvm.x86.sse.rsqrt.ps
+    x86_sse_rsqrt_ss,                          // llvm.x86.sse.rsqrt.ss
+    x86_sse_sfence,                            // llvm.x86.sse.sfence
+    x86_sse_stmxcsr,                           // llvm.x86.sse.stmxcsr
+    x86_sse_ucomieq_ss,                        // llvm.x86.sse.ucomieq.ss
+    x86_sse_ucomige_ss,                        // llvm.x86.sse.ucomige.ss
+    x86_sse_ucomigt_ss,                        // llvm.x86.sse.ucomigt.ss
+    x86_sse_ucomile_ss,                        // llvm.x86.sse.ucomile.ss
+    x86_sse_ucomilt_ss,                        // llvm.x86.sse.ucomilt.ss
+    x86_sse_ucomineq_ss,                       // llvm.x86.sse.ucomineq.ss
+    x86_sse2_clflush,                          // llvm.x86.sse2.clflush
+    x86_sse2_cmp_pd,                           // llvm.x86.sse2.cmp.pd
+    x86_sse2_cmp_sd,                           // llvm.x86.sse2.cmp.sd
+    x86_sse2_comieq_sd,                        // llvm.x86.sse2.comieq.sd
+    x86_sse2_comige_sd,                        // llvm.x86.sse2.comige.sd
+    x86_sse2_comigt_sd,                        // llvm.x86.sse2.comigt.sd
+    x86_sse2_comile_sd,                        // llvm.x86.sse2.comile.sd
+    x86_sse2_comilt_sd,                        // llvm.x86.sse2.comilt.sd
+    x86_sse2_comineq_sd,                       // llvm.x86.sse2.comineq.sd
+    x86_sse2_cvtpd2dq,                         // llvm.x86.sse2.cvtpd2dq
+    x86_sse2_cvtpd2ps,                         // llvm.x86.sse2.cvtpd2ps
+    x86_sse2_cvtps2dq,                         // llvm.x86.sse2.cvtps2dq
+    x86_sse2_cvtsd2si,                         // llvm.x86.sse2.cvtsd2si
+    x86_sse2_cvtsd2si64,                       // llvm.x86.sse2.cvtsd2si64
+    x86_sse2_cvtsd2ss,                         // llvm.x86.sse2.cvtsd2ss
+    x86_sse2_cvttpd2dq,                        // llvm.x86.sse2.cvttpd2dq
+    x86_sse2_cvttps2dq,                        // llvm.x86.sse2.cvttps2dq
+    x86_sse2_cvttsd2si,                        // llvm.x86.sse2.cvttsd2si
+    x86_sse2_cvttsd2si64,                      // llvm.x86.sse2.cvttsd2si64
+    x86_sse2_lfence,                           // llvm.x86.sse2.lfence
+    x86_sse2_maskmov_dqu,                      // llvm.x86.sse2.maskmov.dqu
+    x86_sse2_max_pd,                           // llvm.x86.sse2.max.pd
+    x86_sse2_max_sd,                           // llvm.x86.sse2.max.sd
+    x86_sse2_mfence,                           // llvm.x86.sse2.mfence
+    x86_sse2_min_pd,                           // llvm.x86.sse2.min.pd
+    x86_sse2_min_sd,                           // llvm.x86.sse2.min.sd
+    x86_sse2_movmsk_pd,                        // llvm.x86.sse2.movmsk.pd
+    x86_sse2_packssdw_128,                     // llvm.x86.sse2.packssdw.128
+    x86_sse2_packsswb_128,                     // llvm.x86.sse2.packsswb.128
+    x86_sse2_packuswb_128,                     // llvm.x86.sse2.packuswb.128
+    x86_sse2_padds_b,                          // llvm.x86.sse2.padds.b
+    x86_sse2_padds_w,                          // llvm.x86.sse2.padds.w
+    x86_sse2_paddus_b,                         // llvm.x86.sse2.paddus.b
+    x86_sse2_paddus_w,                         // llvm.x86.sse2.paddus.w
+    x86_sse2_pause,                            // llvm.x86.sse2.pause
+    x86_sse2_pmadd_wd,                         // llvm.x86.sse2.pmadd.wd
+    x86_sse2_pmovmskb_128,                     // llvm.x86.sse2.pmovmskb.128
+    x86_sse2_pmulh_w,                          // llvm.x86.sse2.pmulh.w
+    x86_sse2_pmulhu_w,                         // llvm.x86.sse2.pmulhu.w
+    x86_sse2_psad_bw,                          // llvm.x86.sse2.psad.bw
+    x86_sse2_psll_d,                           // llvm.x86.sse2.psll.d
+    x86_sse2_psll_q,                           // llvm.x86.sse2.psll.q
+    x86_sse2_psll_w,                           // llvm.x86.sse2.psll.w
+    x86_sse2_pslli_d,                          // llvm.x86.sse2.pslli.d
+    x86_sse2_pslli_q,                          // llvm.x86.sse2.pslli.q
+    x86_sse2_pslli_w,                          // llvm.x86.sse2.pslli.w
+    x86_sse2_psra_d,                           // llvm.x86.sse2.psra.d
+    x86_sse2_psra_w,                           // llvm.x86.sse2.psra.w
+    x86_sse2_psrai_d,                          // llvm.x86.sse2.psrai.d
+    x86_sse2_psrai_w,                          // llvm.x86.sse2.psrai.w
+    x86_sse2_psrl_d,                           // llvm.x86.sse2.psrl.d
+    x86_sse2_psrl_q,                           // llvm.x86.sse2.psrl.q
+    x86_sse2_psrl_w,                           // llvm.x86.sse2.psrl.w
+    x86_sse2_psrli_d,                          // llvm.x86.sse2.psrli.d
+    x86_sse2_psrli_q,                          // llvm.x86.sse2.psrli.q
+    x86_sse2_psrli_w,                          // llvm.x86.sse2.psrli.w
+    x86_sse2_psubs_b,                          // llvm.x86.sse2.psubs.b
+    x86_sse2_psubs_w,                          // llvm.x86.sse2.psubs.w
+    x86_sse2_psubus_b,                         // llvm.x86.sse2.psubus.b
+    x86_sse2_psubus_w,                         // llvm.x86.sse2.psubus.w
+    x86_sse2_ucomieq_sd,                       // llvm.x86.sse2.ucomieq.sd
+    x86_sse2_ucomige_sd,                       // llvm.x86.sse2.ucomige.sd
+    x86_sse2_ucomigt_sd,                       // llvm.x86.sse2.ucomigt.sd
+    x86_sse2_ucomile_sd,                       // llvm.x86.sse2.ucomile.sd
+    x86_sse2_ucomilt_sd,                       // llvm.x86.sse2.ucomilt.sd
+    x86_sse2_ucomineq_sd,                      // llvm.x86.sse2.ucomineq.sd
+    x86_sse3_addsub_pd,                        // llvm.x86.sse3.addsub.pd
+    x86_sse3_addsub_ps,                        // llvm.x86.sse3.addsub.ps
+    x86_sse3_hadd_pd,                          // llvm.x86.sse3.hadd.pd
+    x86_sse3_hadd_ps,                          // llvm.x86.sse3.hadd.ps
+    x86_sse3_hsub_pd,                          // llvm.x86.sse3.hsub.pd
+    x86_sse3_hsub_ps,                          // llvm.x86.sse3.hsub.ps
+    x86_sse3_ldu_dq,                           // llvm.x86.sse3.ldu.dq
+    x86_sse3_monitor,                          // llvm.x86.sse3.monitor
+    x86_sse3_mwait,                            // llvm.x86.sse3.mwait
+    x86_sse41_blendvpd,                        // llvm.x86.sse41.blendvpd
+    x86_sse41_blendvps,                        // llvm.x86.sse41.blendvps
+    x86_sse41_dppd,                            // llvm.x86.sse41.dppd
+    x86_sse41_dpps,                            // llvm.x86.sse41.dpps
+    x86_sse41_insertps,                        // llvm.x86.sse41.insertps
+    x86_sse41_mpsadbw,                         // llvm.x86.sse41.mpsadbw
+    x86_sse41_packusdw,                        // llvm.x86.sse41.packusdw
+    x86_sse41_pblendvb,                        // llvm.x86.sse41.pblendvb
+    x86_sse41_phminposuw,                      // llvm.x86.sse41.phminposuw
+    x86_sse41_ptestc,                          // llvm.x86.sse41.ptestc
+    x86_sse41_ptestnzc,                        // llvm.x86.sse41.ptestnzc
+    x86_sse41_ptestz,                          // llvm.x86.sse41.ptestz
+    x86_sse41_round_pd,                        // llvm.x86.sse41.round.pd
+    x86_sse41_round_ps,                        // llvm.x86.sse41.round.ps
+    x86_sse41_round_sd,                        // llvm.x86.sse41.round.sd
+    x86_sse41_round_ss,                        // llvm.x86.sse41.round.ss
+    x86_sse42_crc32_32_16,                     // llvm.x86.sse42.crc32.32.16
+    x86_sse42_crc32_32_32,                     // llvm.x86.sse42.crc32.32.32
+    x86_sse42_crc32_32_8,                      // llvm.x86.sse42.crc32.32.8
+    x86_sse42_crc32_64_64,                     // llvm.x86.sse42.crc32.64.64
+    x86_sse42_pcmpestri128,                    // llvm.x86.sse42.pcmpestri128
+    x86_sse42_pcmpestria128,                   // llvm.x86.sse42.pcmpestria128
+    x86_sse42_pcmpestric128,                   // llvm.x86.sse42.pcmpestric128
+    x86_sse42_pcmpestrio128,                   // llvm.x86.sse42.pcmpestrio128
+    x86_sse42_pcmpestris128,                   // llvm.x86.sse42.pcmpestris128
+    x86_sse42_pcmpestriz128,                   // llvm.x86.sse42.pcmpestriz128
+    x86_sse42_pcmpestrm128,                    // llvm.x86.sse42.pcmpestrm128
+    x86_sse42_pcmpistri128,                    // llvm.x86.sse42.pcmpistri128
+    x86_sse42_pcmpistria128,                   // llvm.x86.sse42.pcmpistria128
+    x86_sse42_pcmpistric128,                   // llvm.x86.sse42.pcmpistric128
+    x86_sse42_pcmpistrio128,                   // llvm.x86.sse42.pcmpistrio128
+    x86_sse42_pcmpistris128,                   // llvm.x86.sse42.pcmpistris128
+    x86_sse42_pcmpistriz128,                   // llvm.x86.sse42.pcmpistriz128
+    x86_sse42_pcmpistrm128,                    // llvm.x86.sse42.pcmpistrm128
+    x86_sse4a_extrq,                           // llvm.x86.sse4a.extrq
+    x86_sse4a_extrqi,                          // llvm.x86.sse4a.extrqi
+    x86_sse4a_insertq,                         // llvm.x86.sse4a.insertq
+    x86_sse4a_insertqi,                        // llvm.x86.sse4a.insertqi
+    x86_ssse3_pabs_b,                          // llvm.x86.ssse3.pabs.b
+    x86_ssse3_pabs_d,                          // llvm.x86.ssse3.pabs.d
+    x86_ssse3_pabs_w,                          // llvm.x86.ssse3.pabs.w
+    x86_ssse3_phadd_d,                         // llvm.x86.ssse3.phadd.d
+    x86_ssse3_phadd_d_128,                     // llvm.x86.ssse3.phadd.d.128
+    x86_ssse3_phadd_sw,                        // llvm.x86.ssse3.phadd.sw
+    x86_ssse3_phadd_sw_128,                    // llvm.x86.ssse3.phadd.sw.128
+    x86_ssse3_phadd_w,                         // llvm.x86.ssse3.phadd.w
+    x86_ssse3_phadd_w_128,                     // llvm.x86.ssse3.phadd.w.128
+    x86_ssse3_phsub_d,                         // llvm.x86.ssse3.phsub.d
+    x86_ssse3_phsub_d_128,                     // llvm.x86.ssse3.phsub.d.128
+    x86_ssse3_phsub_sw,                        // llvm.x86.ssse3.phsub.sw
+    x86_ssse3_phsub_sw_128,                    // llvm.x86.ssse3.phsub.sw.128
+    x86_ssse3_phsub_w,                         // llvm.x86.ssse3.phsub.w
+    x86_ssse3_phsub_w_128,                     // llvm.x86.ssse3.phsub.w.128
+    x86_ssse3_pmadd_ub_sw,                     // llvm.x86.ssse3.pmadd.ub.sw
+    x86_ssse3_pmadd_ub_sw_128,                 // llvm.x86.ssse3.pmadd.ub.sw.128
+    x86_ssse3_pmul_hr_sw,                      // llvm.x86.ssse3.pmul.hr.sw
+    x86_ssse3_pmul_hr_sw_128,                  // llvm.x86.ssse3.pmul.hr.sw.128
+    x86_ssse3_pshuf_b,                         // llvm.x86.ssse3.pshuf.b
+    x86_ssse3_pshuf_b_128,                     // llvm.x86.ssse3.pshuf.b.128
+    x86_ssse3_psign_b,                         // llvm.x86.ssse3.psign.b
+    x86_ssse3_psign_b_128,                     // llvm.x86.ssse3.psign.b.128
+    x86_ssse3_psign_d,                         // llvm.x86.ssse3.psign.d
+    x86_ssse3_psign_d_128,                     // llvm.x86.ssse3.psign.d.128
+    x86_ssse3_psign_w,                         // llvm.x86.ssse3.psign.w
+    x86_ssse3_psign_w_128,                     // llvm.x86.ssse3.psign.w.128
+    x86_subborrow_u32,                         // llvm.x86.subborrow.u32
+    x86_subborrow_u64,                         // llvm.x86.subborrow.u64
+    x86_tbm_bextri_u32,                        // llvm.x86.tbm.bextri.u32
+    x86_tbm_bextri_u64,                        // llvm.x86.tbm.bextri.u64
+    x86_tpause,                                // llvm.x86.tpause
+    x86_umonitor,                              // llvm.x86.umonitor
+    x86_umwait,                                // llvm.x86.umwait
+    x86_vcvtph2ps_128,                         // llvm.x86.vcvtph2ps.128
+    x86_vcvtph2ps_256,                         // llvm.x86.vcvtph2ps.256
+    x86_vcvtps2ph_128,                         // llvm.x86.vcvtps2ph.128
+    x86_vcvtps2ph_256,                         // llvm.x86.vcvtps2ph.256
+    x86_vgf2p8affineinvqb_128,                 // llvm.x86.vgf2p8affineinvqb.128
+    x86_vgf2p8affineinvqb_256,                 // llvm.x86.vgf2p8affineinvqb.256
+    x86_vgf2p8affineinvqb_512,                 // llvm.x86.vgf2p8affineinvqb.512
+    x86_vgf2p8affineqb_128,                    // llvm.x86.vgf2p8affineqb.128
+    x86_vgf2p8affineqb_256,                    // llvm.x86.vgf2p8affineqb.256
+    x86_vgf2p8affineqb_512,                    // llvm.x86.vgf2p8affineqb.512
+    x86_vgf2p8mulb_128,                        // llvm.x86.vgf2p8mulb.128
+    x86_vgf2p8mulb_256,                        // llvm.x86.vgf2p8mulb.256
+    x86_vgf2p8mulb_512,                        // llvm.x86.vgf2p8mulb.512
+    x86_wbinvd,                                // llvm.x86.wbinvd
+    x86_wbnoinvd,                              // llvm.x86.wbnoinvd
+    x86_wrfsbase_32,                           // llvm.x86.wrfsbase.32
+    x86_wrfsbase_64,                           // llvm.x86.wrfsbase.64
+    x86_wrgsbase_32,                           // llvm.x86.wrgsbase.32
+    x86_wrgsbase_64,                           // llvm.x86.wrgsbase.64
+    x86_wrpkru,                                // llvm.x86.wrpkru
+    x86_wrssd,                                 // llvm.x86.wrssd
+    x86_wrssq,                                 // llvm.x86.wrssq
+    x86_wrussd,                                // llvm.x86.wrussd
+    x86_wrussq,                                // llvm.x86.wrussq
+    x86_xabort,                                // llvm.x86.xabort
+    x86_xbegin,                                // llvm.x86.xbegin
+    x86_xend,                                  // llvm.x86.xend
+    x86_xgetbv,                                // llvm.x86.xgetbv
+    x86_xop_vfrcz_pd,                          // llvm.x86.xop.vfrcz.pd
+    x86_xop_vfrcz_pd_256,                      // llvm.x86.xop.vfrcz.pd.256
+    x86_xop_vfrcz_ps,                          // llvm.x86.xop.vfrcz.ps
+    x86_xop_vfrcz_ps_256,                      // llvm.x86.xop.vfrcz.ps.256
+    x86_xop_vfrcz_sd,                          // llvm.x86.xop.vfrcz.sd
+    x86_xop_vfrcz_ss,                          // llvm.x86.xop.vfrcz.ss
+    x86_xop_vpcomb,                            // llvm.x86.xop.vpcomb
+    x86_xop_vpcomd,                            // llvm.x86.xop.vpcomd
+    x86_xop_vpcomq,                            // llvm.x86.xop.vpcomq
+    x86_xop_vpcomub,                           // llvm.x86.xop.vpcomub
+    x86_xop_vpcomud,                           // llvm.x86.xop.vpcomud
+    x86_xop_vpcomuq,                           // llvm.x86.xop.vpcomuq
+    x86_xop_vpcomuw,                           // llvm.x86.xop.vpcomuw
+    x86_xop_vpcomw,                            // llvm.x86.xop.vpcomw
+    x86_xop_vpermil2pd,                        // llvm.x86.xop.vpermil2pd
+    x86_xop_vpermil2pd_256,                    // llvm.x86.xop.vpermil2pd.256
+    x86_xop_vpermil2ps,                        // llvm.x86.xop.vpermil2ps
+    x86_xop_vpermil2ps_256,                    // llvm.x86.xop.vpermil2ps.256
+    x86_xop_vphaddbd,                          // llvm.x86.xop.vphaddbd
+    x86_xop_vphaddbq,                          // llvm.x86.xop.vphaddbq
+    x86_xop_vphaddbw,                          // llvm.x86.xop.vphaddbw
+    x86_xop_vphadddq,                          // llvm.x86.xop.vphadddq
+    x86_xop_vphaddubd,                         // llvm.x86.xop.vphaddubd
+    x86_xop_vphaddubq,                         // llvm.x86.xop.vphaddubq
+    x86_xop_vphaddubw,                         // llvm.x86.xop.vphaddubw
+    x86_xop_vphaddudq,                         // llvm.x86.xop.vphaddudq
+    x86_xop_vphadduwd,                         // llvm.x86.xop.vphadduwd
+    x86_xop_vphadduwq,                         // llvm.x86.xop.vphadduwq
+    x86_xop_vphaddwd,                          // llvm.x86.xop.vphaddwd
+    x86_xop_vphaddwq,                          // llvm.x86.xop.vphaddwq
+    x86_xop_vphsubbw,                          // llvm.x86.xop.vphsubbw
+    x86_xop_vphsubdq,                          // llvm.x86.xop.vphsubdq
+    x86_xop_vphsubwd,                          // llvm.x86.xop.vphsubwd
+    x86_xop_vpmacsdd,                          // llvm.x86.xop.vpmacsdd
+    x86_xop_vpmacsdqh,                         // llvm.x86.xop.vpmacsdqh
+    x86_xop_vpmacsdql,                         // llvm.x86.xop.vpmacsdql
+    x86_xop_vpmacssdd,                         // llvm.x86.xop.vpmacssdd
+    x86_xop_vpmacssdqh,                        // llvm.x86.xop.vpmacssdqh
+    x86_xop_vpmacssdql,                        // llvm.x86.xop.vpmacssdql
+    x86_xop_vpmacsswd,                         // llvm.x86.xop.vpmacsswd
+    x86_xop_vpmacssww,                         // llvm.x86.xop.vpmacssww
+    x86_xop_vpmacswd,                          // llvm.x86.xop.vpmacswd
+    x86_xop_vpmacsww,                          // llvm.x86.xop.vpmacsww
+    x86_xop_vpmadcsswd,                        // llvm.x86.xop.vpmadcsswd
+    x86_xop_vpmadcswd,                         // llvm.x86.xop.vpmadcswd
+    x86_xop_vpperm,                            // llvm.x86.xop.vpperm
+    x86_xop_vprotb,                            // llvm.x86.xop.vprotb
+    x86_xop_vprotbi,                           // llvm.x86.xop.vprotbi
+    x86_xop_vprotd,                            // llvm.x86.xop.vprotd
+    x86_xop_vprotdi,                           // llvm.x86.xop.vprotdi
+    x86_xop_vprotq,                            // llvm.x86.xop.vprotq
+    x86_xop_vprotqi,                           // llvm.x86.xop.vprotqi
+    x86_xop_vprotw,                            // llvm.x86.xop.vprotw
+    x86_xop_vprotwi,                           // llvm.x86.xop.vprotwi
+    x86_xop_vpshab,                            // llvm.x86.xop.vpshab
+    x86_xop_vpshad,                            // llvm.x86.xop.vpshad
+    x86_xop_vpshaq,                            // llvm.x86.xop.vpshaq
+    x86_xop_vpshaw,                            // llvm.x86.xop.vpshaw
+    x86_xop_vpshlb,                            // llvm.x86.xop.vpshlb
+    x86_xop_vpshld,                            // llvm.x86.xop.vpshld
+    x86_xop_vpshlq,                            // llvm.x86.xop.vpshlq
+    x86_xop_vpshlw,                            // llvm.x86.xop.vpshlw
+    x86_xrstor,                                // llvm.x86.xrstor
+    x86_xrstor64,                              // llvm.x86.xrstor64
+    x86_xrstors,                               // llvm.x86.xrstors
+    x86_xrstors64,                             // llvm.x86.xrstors64
+    x86_xsave,                                 // llvm.x86.xsave
+    x86_xsave64,                               // llvm.x86.xsave64
+    x86_xsavec,                                // llvm.x86.xsavec
+    x86_xsavec64,                              // llvm.x86.xsavec64
+    x86_xsaveopt,                              // llvm.x86.xsaveopt
+    x86_xsaveopt64,                            // llvm.x86.xsaveopt64
+    x86_xsaves,                                // llvm.x86.xsaves
+    x86_xsaves64,                              // llvm.x86.xsaves64
+    x86_xsetbv,                                // llvm.x86.xsetbv
+    x86_xtest,                                 // llvm.x86.xtest
+    xcore_bitrev,                              // llvm.xcore.bitrev
+    xcore_checkevent,                          // llvm.xcore.checkevent
+    xcore_chkct,                               // llvm.xcore.chkct
+    xcore_clre,                                // llvm.xcore.clre
+    xcore_clrpt,                               // llvm.xcore.clrpt
+    xcore_clrsr,                               // llvm.xcore.clrsr
+    xcore_crc32,                               // llvm.xcore.crc32
+    xcore_crc8,                                // llvm.xcore.crc8
+    xcore_edu,                                 // llvm.xcore.edu
+    xcore_eeu,                                 // llvm.xcore.eeu
+    xcore_endin,                               // llvm.xcore.endin
+    xcore_freer,                               // llvm.xcore.freer
+    xcore_geted,                               // llvm.xcore.geted
+    xcore_getet,                               // llvm.xcore.getet
+    xcore_getid,                               // llvm.xcore.getid
+    xcore_getps,                               // llvm.xcore.getps
+    xcore_getr,                                // llvm.xcore.getr
+    xcore_getst,                               // llvm.xcore.getst
+    xcore_getts,                               // llvm.xcore.getts
+    xcore_in,                                  // llvm.xcore.in
+    xcore_inct,                                // llvm.xcore.inct
+    xcore_initcp,                              // llvm.xcore.initcp
+    xcore_initdp,                              // llvm.xcore.initdp
+    xcore_initlr,                              // llvm.xcore.initlr
+    xcore_initpc,                              // llvm.xcore.initpc
+    xcore_initsp,                              // llvm.xcore.initsp
+    xcore_inshr,                               // llvm.xcore.inshr
+    xcore_int,                                 // llvm.xcore.int
+    xcore_mjoin,                               // llvm.xcore.mjoin
+    xcore_msync,                               // llvm.xcore.msync
+    xcore_out,                                 // llvm.xcore.out
+    xcore_outct,                               // llvm.xcore.outct
+    xcore_outshr,                              // llvm.xcore.outshr
+    xcore_outt,                                // llvm.xcore.outt
+    xcore_peek,                                // llvm.xcore.peek
+    xcore_setc,                                // llvm.xcore.setc
+    xcore_setclk,                              // llvm.xcore.setclk
+    xcore_setd,                                // llvm.xcore.setd
+    xcore_setev,                               // llvm.xcore.setev
+    xcore_setps,                               // llvm.xcore.setps
+    xcore_setpsc,                              // llvm.xcore.setpsc
+    xcore_setpt,                               // llvm.xcore.setpt
+    xcore_setrdy,                              // llvm.xcore.setrdy
+    xcore_setsr,                               // llvm.xcore.setsr
+    xcore_settw,                               // llvm.xcore.settw
+    xcore_setv,                                // llvm.xcore.setv
+    xcore_sext,                                // llvm.xcore.sext
+    xcore_ssync,                               // llvm.xcore.ssync
+    xcore_syncr,                               // llvm.xcore.syncr
+    xcore_testct,                              // llvm.xcore.testct
+    xcore_testwct,                             // llvm.xcore.testwct
+    xcore_waitevent,                           // llvm.xcore.waitevent
+    xcore_zext                                 // llvm.xcore.zext
+#endif
+
+#if defined(_MSC_VER) && defined(setjmp_undefined_for_msvc)
+// let's return it to _setjmp state
+#  pragma pop_macro("setjmp")
+#  undef setjmp_undefined_for_msvc
+#endif
+
diff --git a/linux-x64/clang/include/llvm/IR/IntrinsicImpl.inc b/linux-x64/clang/include/llvm/IR/IntrinsicImpl.inc
new file mode 100644
index 0000000..82bd4e9
--- /dev/null
+++ b/linux-x64/clang/include/llvm/IR/IntrinsicImpl.inc
@@ -0,0 +1,29841 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Intrinsic Function Source Fragment                                         *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+// VisualStudio defines setjmp as _setjmp
+#if defined(_MSC_VER) && defined(setjmp) && \
+                         !defined(setjmp_undefined_for_msvc)
+#  pragma push_macro("setjmp")
+#  undef setjmp
+#  define setjmp_undefined_for_msvc
+#endif
+
+// Target mapping
+#ifdef GET_INTRINSIC_TARGET_DATA
+struct IntrinsicTargetInfo {
+  llvm::StringLiteral Name;
+  size_t Offset;
+  size_t Count;
+};
+static constexpr IntrinsicTargetInfo TargetInfos[] = {
+  {llvm::StringLiteral(""), 0, 180},
+  {llvm::StringLiteral("aarch64"), 180, 192},
+  {llvm::StringLiteral("amdgcn"), 372, 596},
+  {llvm::StringLiteral("arm"), 968, 251},
+  {llvm::StringLiteral("bpf"), 1219, 4},
+  {llvm::StringLiteral("hexagon"), 1223, 1708},
+  {llvm::StringLiteral("mips"), 2931, 667},
+  {llvm::StringLiteral("nvvm"), 3598, 1117},
+  {llvm::StringLiteral("ppc"), 4715, 403},
+  {llvm::StringLiteral("r600"), 5118, 35},
+  {llvm::StringLiteral("s390"), 5153, 220},
+  {llvm::StringLiteral("wasm"), 5373, 16},
+  {llvm::StringLiteral("x86"), 5389, 1270},
+  {llvm::StringLiteral("xcore"), 6659, 53},
+};
+#endif
+
+// Intrinsic ID to name table
+#ifdef GET_INTRINSIC_NAME_TABLE
+  // Note that entry #0 is the invalid intrinsic!
+  "llvm.addressofreturnaddress",
+  "llvm.adjust.trampoline",
+  "llvm.annotation",
+  "llvm.assume",
+  "llvm.bitreverse",
+  "llvm.bswap",
+  "llvm.canonicalize",
+  "llvm.ceil",
+  "llvm.clear_cache",
+  "llvm.codeview.annotation",
+  "llvm.convert.from.fp16",
+  "llvm.convert.to.fp16",
+  "llvm.copysign",
+  "llvm.coro.alloc",
+  "llvm.coro.begin",
+  "llvm.coro.destroy",
+  "llvm.coro.done",
+  "llvm.coro.end",
+  "llvm.coro.frame",
+  "llvm.coro.free",
+  "llvm.coro.id",
+  "llvm.coro.noop",
+  "llvm.coro.param",
+  "llvm.coro.promise",
+  "llvm.coro.resume",
+  "llvm.coro.save",
+  "llvm.coro.size",
+  "llvm.coro.subfn.addr",
+  "llvm.coro.suspend",
+  "llvm.cos",
+  "llvm.ctlz",
+  "llvm.ctpop",
+  "llvm.cttz",
+  "llvm.dbg.addr",
+  "llvm.dbg.declare",
+  "llvm.dbg.label",
+  "llvm.dbg.value",
+  "llvm.debugtrap",
+  "llvm.donothing",
+  "llvm.eh.dwarf.cfa",
+  "llvm.eh.exceptioncode",
+  "llvm.eh.exceptionpointer",
+  "llvm.eh.return.i32",
+  "llvm.eh.return.i64",
+  "llvm.eh.sjlj.callsite",
+  "llvm.eh.sjlj.functioncontext",
+  "llvm.eh.sjlj.longjmp",
+  "llvm.eh.sjlj.lsda",
+  "llvm.eh.sjlj.setjmp",
+  "llvm.eh.sjlj.setup.dispatch",
+  "llvm.eh.typeid.for",
+  "llvm.eh.unwind.init",
+  "llvm.exp",
+  "llvm.exp2",
+  "llvm.expect",
+  "llvm.experimental.constrained.cos",
+  "llvm.experimental.constrained.exp",
+  "llvm.experimental.constrained.exp2",
+  "llvm.experimental.constrained.fadd",
+  "llvm.experimental.constrained.fdiv",
+  "llvm.experimental.constrained.fma",
+  "llvm.experimental.constrained.fmul",
+  "llvm.experimental.constrained.frem",
+  "llvm.experimental.constrained.fsub",
+  "llvm.experimental.constrained.log",
+  "llvm.experimental.constrained.log10",
+  "llvm.experimental.constrained.log2",
+  "llvm.experimental.constrained.nearbyint",
+  "llvm.experimental.constrained.pow",
+  "llvm.experimental.constrained.powi",
+  "llvm.experimental.constrained.rint",
+  "llvm.experimental.constrained.sin",
+  "llvm.experimental.constrained.sqrt",
+  "llvm.experimental.deoptimize",
+  "llvm.experimental.gc.relocate",
+  "llvm.experimental.gc.result",
+  "llvm.experimental.gc.statepoint",
+  "llvm.experimental.guard",
+  "llvm.experimental.patchpoint.i64",
+  "llvm.experimental.patchpoint.void",
+  "llvm.experimental.stackmap",
+  "llvm.experimental.vector.reduce.add",
+  "llvm.experimental.vector.reduce.and",
+  "llvm.experimental.vector.reduce.fadd",
+  "llvm.experimental.vector.reduce.fmax",
+  "llvm.experimental.vector.reduce.fmin",
+  "llvm.experimental.vector.reduce.fmul",
+  "llvm.experimental.vector.reduce.mul",
+  "llvm.experimental.vector.reduce.or",
+  "llvm.experimental.vector.reduce.smax",
+  "llvm.experimental.vector.reduce.smin",
+  "llvm.experimental.vector.reduce.umax",
+  "llvm.experimental.vector.reduce.umin",
+  "llvm.experimental.vector.reduce.xor",
+  "llvm.fabs",
+  "llvm.floor",
+  "llvm.flt.rounds",
+  "llvm.fma",
+  "llvm.fmuladd",
+  "llvm.frameaddress",
+  "llvm.fshl",
+  "llvm.fshr",
+  "llvm.gcread",
+  "llvm.gcroot",
+  "llvm.gcwrite",
+  "llvm.get.dynamic.area.offset",
+  "llvm.icall.branch.funnel",
+  "llvm.init.trampoline",
+  "llvm.instrprof.increment",
+  "llvm.instrprof.increment.step",
+  "llvm.instrprof.value.profile",
+  "llvm.invariant.end",
+  "llvm.invariant.start",
+  "llvm.launder.invariant.group",
+  "llvm.lifetime.end",
+  "llvm.lifetime.start",
+  "llvm.load.relative",
+  "llvm.localaddress",
+  "llvm.localescape",
+  "llvm.localrecover",
+  "llvm.log",
+  "llvm.log10",
+  "llvm.log2",
+  "llvm.longjmp",
+  "llvm.masked.compressstore",
+  "llvm.masked.expandload",
+  "llvm.masked.gather",
+  "llvm.masked.load",
+  "llvm.masked.scatter",
+  "llvm.masked.store",
+  "llvm.maxnum",
+  "llvm.memcpy",
+  "llvm.memcpy.element.unordered.atomic",
+  "llvm.memmove",
+  "llvm.memmove.element.unordered.atomic",
+  "llvm.memset",
+  "llvm.memset.element.unordered.atomic",
+  "llvm.minnum",
+  "llvm.nearbyint",
+  "llvm.objectsize",
+  "llvm.pcmarker",
+  "llvm.pow",
+  "llvm.powi",
+  "llvm.prefetch",
+  "llvm.ptr.annotation",
+  "llvm.read_register",
+  "llvm.readcyclecounter",
+  "llvm.returnaddress",
+  "llvm.rint",
+  "llvm.round",
+  "llvm.sadd.with.overflow",
+  "llvm.setjmp",
+  "llvm.sideeffect",
+  "llvm.siglongjmp",
+  "llvm.sigsetjmp",
+  "llvm.sin",
+  "llvm.smul.with.overflow",
+  "llvm.sqrt",
+  "llvm.ssa.copy",
+  "llvm.ssub.with.overflow",
+  "llvm.stackguard",
+  "llvm.stackprotector",
+  "llvm.stackrestore",
+  "llvm.stacksave",
+  "llvm.strip.invariant.group",
+  "llvm.thread.pointer",
+  "llvm.trap",
+  "llvm.trunc",
+  "llvm.type.checked.load",
+  "llvm.type.test",
+  "llvm.uadd.with.overflow",
+  "llvm.umul.with.overflow",
+  "llvm.usub.with.overflow",
+  "llvm.va_copy",
+  "llvm.va_end",
+  "llvm.va_start",
+  "llvm.var.annotation",
+  "llvm.write_register",
+  "llvm.xray.customevent",
+  "llvm.xray.typedevent",
+  "llvm.aarch64.clrex",
+  "llvm.aarch64.crc32b",
+  "llvm.aarch64.crc32cb",
+  "llvm.aarch64.crc32ch",
+  "llvm.aarch64.crc32cw",
+  "llvm.aarch64.crc32cx",
+  "llvm.aarch64.crc32h",
+  "llvm.aarch64.crc32w",
+  "llvm.aarch64.crc32x",
+  "llvm.aarch64.crypto.aesd",
+  "llvm.aarch64.crypto.aese",
+  "llvm.aarch64.crypto.aesimc",
+  "llvm.aarch64.crypto.aesmc",
+  "llvm.aarch64.crypto.sha1c",
+  "llvm.aarch64.crypto.sha1h",
+  "llvm.aarch64.crypto.sha1m",
+  "llvm.aarch64.crypto.sha1p",
+  "llvm.aarch64.crypto.sha1su0",
+  "llvm.aarch64.crypto.sha1su1",
+  "llvm.aarch64.crypto.sha256h",
+  "llvm.aarch64.crypto.sha256h2",
+  "llvm.aarch64.crypto.sha256su0",
+  "llvm.aarch64.crypto.sha256su1",
+  "llvm.aarch64.dmb",
+  "llvm.aarch64.dsb",
+  "llvm.aarch64.get.fpcr",
+  "llvm.aarch64.hint",
+  "llvm.aarch64.isb",
+  "llvm.aarch64.ldaxp",
+  "llvm.aarch64.ldaxr",
+  "llvm.aarch64.ldxp",
+  "llvm.aarch64.ldxr",
+  "llvm.aarch64.neon.abs",
+  "llvm.aarch64.neon.addhn",
+  "llvm.aarch64.neon.addp",
+  "llvm.aarch64.neon.cls",
+  "llvm.aarch64.neon.fabd",
+  "llvm.aarch64.neon.facge",
+  "llvm.aarch64.neon.facgt",
+  "llvm.aarch64.neon.faddv",
+  "llvm.aarch64.neon.fcvtas",
+  "llvm.aarch64.neon.fcvtau",
+  "llvm.aarch64.neon.fcvtms",
+  "llvm.aarch64.neon.fcvtmu",
+  "llvm.aarch64.neon.fcvtns",
+  "llvm.aarch64.neon.fcvtnu",
+  "llvm.aarch64.neon.fcvtps",
+  "llvm.aarch64.neon.fcvtpu",
+  "llvm.aarch64.neon.fcvtxn",
+  "llvm.aarch64.neon.fcvtzs",
+  "llvm.aarch64.neon.fcvtzu",
+  "llvm.aarch64.neon.fmax",
+  "llvm.aarch64.neon.fmaxnm",
+  "llvm.aarch64.neon.fmaxnmp",
+  "llvm.aarch64.neon.fmaxnmv",
+  "llvm.aarch64.neon.fmaxp",
+  "llvm.aarch64.neon.fmaxv",
+  "llvm.aarch64.neon.fmin",
+  "llvm.aarch64.neon.fminnm",
+  "llvm.aarch64.neon.fminnmp",
+  "llvm.aarch64.neon.fminnmv",
+  "llvm.aarch64.neon.fminp",
+  "llvm.aarch64.neon.fminv",
+  "llvm.aarch64.neon.fmulx",
+  "llvm.aarch64.neon.frecpe",
+  "llvm.aarch64.neon.frecps",
+  "llvm.aarch64.neon.frecpx",
+  "llvm.aarch64.neon.frintn",
+  "llvm.aarch64.neon.frsqrte",
+  "llvm.aarch64.neon.frsqrts",
+  "llvm.aarch64.neon.ld1x2",
+  "llvm.aarch64.neon.ld1x3",
+  "llvm.aarch64.neon.ld1x4",
+  "llvm.aarch64.neon.ld2",
+  "llvm.aarch64.neon.ld2lane",
+  "llvm.aarch64.neon.ld2r",
+  "llvm.aarch64.neon.ld3",
+  "llvm.aarch64.neon.ld3lane",
+  "llvm.aarch64.neon.ld3r",
+  "llvm.aarch64.neon.ld4",
+  "llvm.aarch64.neon.ld4lane",
+  "llvm.aarch64.neon.ld4r",
+  "llvm.aarch64.neon.pmul",
+  "llvm.aarch64.neon.pmull",
+  "llvm.aarch64.neon.pmull64",
+  "llvm.aarch64.neon.raddhn",
+  "llvm.aarch64.neon.rbit",
+  "llvm.aarch64.neon.rshrn",
+  "llvm.aarch64.neon.rsubhn",
+  "llvm.aarch64.neon.sabd",
+  "llvm.aarch64.neon.saddlp",
+  "llvm.aarch64.neon.saddlv",
+  "llvm.aarch64.neon.saddv",
+  "llvm.aarch64.neon.scalar.sqxtn",
+  "llvm.aarch64.neon.scalar.sqxtun",
+  "llvm.aarch64.neon.scalar.uqxtn",
+  "llvm.aarch64.neon.sdot",
+  "llvm.aarch64.neon.shadd",
+  "llvm.aarch64.neon.shll",
+  "llvm.aarch64.neon.shsub",
+  "llvm.aarch64.neon.smax",
+  "llvm.aarch64.neon.smaxp",
+  "llvm.aarch64.neon.smaxv",
+  "llvm.aarch64.neon.smin",
+  "llvm.aarch64.neon.sminp",
+  "llvm.aarch64.neon.sminv",
+  "llvm.aarch64.neon.smull",
+  "llvm.aarch64.neon.sqabs",
+  "llvm.aarch64.neon.sqadd",
+  "llvm.aarch64.neon.sqdmulh",
+  "llvm.aarch64.neon.sqdmull",
+  "llvm.aarch64.neon.sqdmulls.scalar",
+  "llvm.aarch64.neon.sqneg",
+  "llvm.aarch64.neon.sqrdmulh",
+  "llvm.aarch64.neon.sqrshl",
+  "llvm.aarch64.neon.sqrshrn",
+  "llvm.aarch64.neon.sqrshrun",
+  "llvm.aarch64.neon.sqshl",
+  "llvm.aarch64.neon.sqshlu",
+  "llvm.aarch64.neon.sqshrn",
+  "llvm.aarch64.neon.sqshrun",
+  "llvm.aarch64.neon.sqsub",
+  "llvm.aarch64.neon.sqxtn",
+  "llvm.aarch64.neon.sqxtun",
+  "llvm.aarch64.neon.srhadd",
+  "llvm.aarch64.neon.srshl",
+  "llvm.aarch64.neon.sshl",
+  "llvm.aarch64.neon.sshll",
+  "llvm.aarch64.neon.st1x2",
+  "llvm.aarch64.neon.st1x3",
+  "llvm.aarch64.neon.st1x4",
+  "llvm.aarch64.neon.st2",
+  "llvm.aarch64.neon.st2lane",
+  "llvm.aarch64.neon.st3",
+  "llvm.aarch64.neon.st3lane",
+  "llvm.aarch64.neon.st4",
+  "llvm.aarch64.neon.st4lane",
+  "llvm.aarch64.neon.subhn",
+  "llvm.aarch64.neon.suqadd",
+  "llvm.aarch64.neon.tbl1",
+  "llvm.aarch64.neon.tbl2",
+  "llvm.aarch64.neon.tbl3",
+  "llvm.aarch64.neon.tbl4",
+  "llvm.aarch64.neon.tbx1",
+  "llvm.aarch64.neon.tbx2",
+  "llvm.aarch64.neon.tbx3",
+  "llvm.aarch64.neon.tbx4",
+  "llvm.aarch64.neon.uabd",
+  "llvm.aarch64.neon.uaddlp",
+  "llvm.aarch64.neon.uaddlv",
+  "llvm.aarch64.neon.uaddv",
+  "llvm.aarch64.neon.udot",
+  "llvm.aarch64.neon.uhadd",
+  "llvm.aarch64.neon.uhsub",
+  "llvm.aarch64.neon.umax",
+  "llvm.aarch64.neon.umaxp",
+  "llvm.aarch64.neon.umaxv",
+  "llvm.aarch64.neon.umin",
+  "llvm.aarch64.neon.uminp",
+  "llvm.aarch64.neon.uminv",
+  "llvm.aarch64.neon.umull",
+  "llvm.aarch64.neon.uqadd",
+  "llvm.aarch64.neon.uqrshl",
+  "llvm.aarch64.neon.uqrshrn",
+  "llvm.aarch64.neon.uqshl",
+  "llvm.aarch64.neon.uqshrn",
+  "llvm.aarch64.neon.uqsub",
+  "llvm.aarch64.neon.uqxtn",
+  "llvm.aarch64.neon.urecpe",
+  "llvm.aarch64.neon.urhadd",
+  "llvm.aarch64.neon.urshl",
+  "llvm.aarch64.neon.ursqrte",
+  "llvm.aarch64.neon.ushl",
+  "llvm.aarch64.neon.ushll",
+  "llvm.aarch64.neon.usqadd",
+  "llvm.aarch64.neon.vcopy.lane",
+  "llvm.aarch64.neon.vcvtfp2fxs",
+  "llvm.aarch64.neon.vcvtfp2fxu",
+  "llvm.aarch64.neon.vcvtfp2hf",
+  "llvm.aarch64.neon.vcvtfxs2fp",
+  "llvm.aarch64.neon.vcvtfxu2fp",
+  "llvm.aarch64.neon.vcvthf2fp",
+  "llvm.aarch64.neon.vsli",
+  "llvm.aarch64.neon.vsri",
+  "llvm.aarch64.sdiv",
+  "llvm.aarch64.sisd.fabd",
+  "llvm.aarch64.sisd.fcvtxn",
+  "llvm.aarch64.stlxp",
+  "llvm.aarch64.stlxr",
+  "llvm.aarch64.stxp",
+  "llvm.aarch64.stxr",
+  "llvm.aarch64.udiv",
+  "llvm.amdgcn.alignbit",
+  "llvm.amdgcn.alignbyte",
+  "llvm.amdgcn.atomic.dec",
+  "llvm.amdgcn.atomic.inc",
+  "llvm.amdgcn.break",
+  "llvm.amdgcn.buffer.atomic.add",
+  "llvm.amdgcn.buffer.atomic.and",
+  "llvm.amdgcn.buffer.atomic.cmpswap",
+  "llvm.amdgcn.buffer.atomic.or",
+  "llvm.amdgcn.buffer.atomic.smax",
+  "llvm.amdgcn.buffer.atomic.smin",
+  "llvm.amdgcn.buffer.atomic.sub",
+  "llvm.amdgcn.buffer.atomic.swap",
+  "llvm.amdgcn.buffer.atomic.umax",
+  "llvm.amdgcn.buffer.atomic.umin",
+  "llvm.amdgcn.buffer.atomic.xor",
+  "llvm.amdgcn.buffer.load",
+  "llvm.amdgcn.buffer.load.format",
+  "llvm.amdgcn.buffer.store",
+  "llvm.amdgcn.buffer.store.format",
+  "llvm.amdgcn.buffer.wbinvl1",
+  "llvm.amdgcn.buffer.wbinvl1.sc",
+  "llvm.amdgcn.buffer.wbinvl1.vol",
+  "llvm.amdgcn.class",
+  "llvm.amdgcn.cos",
+  "llvm.amdgcn.cubeid",
+  "llvm.amdgcn.cubema",
+  "llvm.amdgcn.cubesc",
+  "llvm.amdgcn.cubetc",
+  "llvm.amdgcn.cvt.pk.i16",
+  "llvm.amdgcn.cvt.pk.u16",
+  "llvm.amdgcn.cvt.pk.u8.f32",
+  "llvm.amdgcn.cvt.pknorm.i16",
+  "llvm.amdgcn.cvt.pknorm.u16",
+  "llvm.amdgcn.cvt.pkrtz",
+  "llvm.amdgcn.dispatch.id",
+  "llvm.amdgcn.dispatch.ptr",
+  "llvm.amdgcn.div.fixup",
+  "llvm.amdgcn.div.fmas",
+  "llvm.amdgcn.div.scale",
+  "llvm.amdgcn.ds.bpermute",
+  "llvm.amdgcn.ds.fadd",
+  "llvm.amdgcn.ds.fmax",
+  "llvm.amdgcn.ds.fmin",
+  "llvm.amdgcn.ds.permute",
+  "llvm.amdgcn.ds.swizzle",
+  "llvm.amdgcn.else",
+  "llvm.amdgcn.else.break",
+  "llvm.amdgcn.end.cf",
+  "llvm.amdgcn.exp",
+  "llvm.amdgcn.exp.compr",
+  "llvm.amdgcn.fcmp",
+  "llvm.amdgcn.fdiv.fast",
+  "llvm.amdgcn.fdot2",
+  "llvm.amdgcn.fmad.ftz",
+  "llvm.amdgcn.fmed3",
+  "llvm.amdgcn.fmul.legacy",
+  "llvm.amdgcn.fract",
+  "llvm.amdgcn.frexp.exp",
+  "llvm.amdgcn.frexp.mant",
+  "llvm.amdgcn.groupstaticsize",
+  "llvm.amdgcn.icmp",
+  "llvm.amdgcn.if",
+  "llvm.amdgcn.if.break",
+  "llvm.amdgcn.image.atomic.add.1d",
+  "llvm.amdgcn.image.atomic.add.1darray",
+  "llvm.amdgcn.image.atomic.add.2d",
+  "llvm.amdgcn.image.atomic.add.2darray",
+  "llvm.amdgcn.image.atomic.add.2darraymsaa",
+  "llvm.amdgcn.image.atomic.add.2dmsaa",
+  "llvm.amdgcn.image.atomic.add.3d",
+  "llvm.amdgcn.image.atomic.add.cube",
+  "llvm.amdgcn.image.atomic.and.1d",
+  "llvm.amdgcn.image.atomic.and.1darray",
+  "llvm.amdgcn.image.atomic.and.2d",
+  "llvm.amdgcn.image.atomic.and.2darray",
+  "llvm.amdgcn.image.atomic.and.2darraymsaa",
+  "llvm.amdgcn.image.atomic.and.2dmsaa",
+  "llvm.amdgcn.image.atomic.and.3d",
+  "llvm.amdgcn.image.atomic.and.cube",
+  "llvm.amdgcn.image.atomic.cmpswap.1d",
+  "llvm.amdgcn.image.atomic.cmpswap.1darray",
+  "llvm.amdgcn.image.atomic.cmpswap.2d",
+  "llvm.amdgcn.image.atomic.cmpswap.2darray",
+  "llvm.amdgcn.image.atomic.cmpswap.2darraymsaa",
+  "llvm.amdgcn.image.atomic.cmpswap.2dmsaa",
+  "llvm.amdgcn.image.atomic.cmpswap.3d",
+  "llvm.amdgcn.image.atomic.cmpswap.cube",
+  "llvm.amdgcn.image.atomic.dec.1d",
+  "llvm.amdgcn.image.atomic.dec.1darray",
+  "llvm.amdgcn.image.atomic.dec.2d",
+  "llvm.amdgcn.image.atomic.dec.2darray",
+  "llvm.amdgcn.image.atomic.dec.2darraymsaa",
+  "llvm.amdgcn.image.atomic.dec.2dmsaa",
+  "llvm.amdgcn.image.atomic.dec.3d",
+  "llvm.amdgcn.image.atomic.dec.cube",
+  "llvm.amdgcn.image.atomic.inc.1d",
+  "llvm.amdgcn.image.atomic.inc.1darray",
+  "llvm.amdgcn.image.atomic.inc.2d",
+  "llvm.amdgcn.image.atomic.inc.2darray",
+  "llvm.amdgcn.image.atomic.inc.2darraymsaa",
+  "llvm.amdgcn.image.atomic.inc.2dmsaa",
+  "llvm.amdgcn.image.atomic.inc.3d",
+  "llvm.amdgcn.image.atomic.inc.cube",
+  "llvm.amdgcn.image.atomic.or.1d",
+  "llvm.amdgcn.image.atomic.or.1darray",
+  "llvm.amdgcn.image.atomic.or.2d",
+  "llvm.amdgcn.image.atomic.or.2darray",
+  "llvm.amdgcn.image.atomic.or.2darraymsaa",
+  "llvm.amdgcn.image.atomic.or.2dmsaa",
+  "llvm.amdgcn.image.atomic.or.3d",
+  "llvm.amdgcn.image.atomic.or.cube",
+  "llvm.amdgcn.image.atomic.smax.1d",
+  "llvm.amdgcn.image.atomic.smax.1darray",
+  "llvm.amdgcn.image.atomic.smax.2d",
+  "llvm.amdgcn.image.atomic.smax.2darray",
+  "llvm.amdgcn.image.atomic.smax.2darraymsaa",
+  "llvm.amdgcn.image.atomic.smax.2dmsaa",
+  "llvm.amdgcn.image.atomic.smax.3d",
+  "llvm.amdgcn.image.atomic.smax.cube",
+  "llvm.amdgcn.image.atomic.smin.1d",
+  "llvm.amdgcn.image.atomic.smin.1darray",
+  "llvm.amdgcn.image.atomic.smin.2d",
+  "llvm.amdgcn.image.atomic.smin.2darray",
+  "llvm.amdgcn.image.atomic.smin.2darraymsaa",
+  "llvm.amdgcn.image.atomic.smin.2dmsaa",
+  "llvm.amdgcn.image.atomic.smin.3d",
+  "llvm.amdgcn.image.atomic.smin.cube",
+  "llvm.amdgcn.image.atomic.sub.1d",
+  "llvm.amdgcn.image.atomic.sub.1darray",
+  "llvm.amdgcn.image.atomic.sub.2d",
+  "llvm.amdgcn.image.atomic.sub.2darray",
+  "llvm.amdgcn.image.atomic.sub.2darraymsaa",
+  "llvm.amdgcn.image.atomic.sub.2dmsaa",
+  "llvm.amdgcn.image.atomic.sub.3d",
+  "llvm.amdgcn.image.atomic.sub.cube",
+  "llvm.amdgcn.image.atomic.swap.1d",
+  "llvm.amdgcn.image.atomic.swap.1darray",
+  "llvm.amdgcn.image.atomic.swap.2d",
+  "llvm.amdgcn.image.atomic.swap.2darray",
+  "llvm.amdgcn.image.atomic.swap.2darraymsaa",
+  "llvm.amdgcn.image.atomic.swap.2dmsaa",
+  "llvm.amdgcn.image.atomic.swap.3d",
+  "llvm.amdgcn.image.atomic.swap.cube",
+  "llvm.amdgcn.image.atomic.umax.1d",
+  "llvm.amdgcn.image.atomic.umax.1darray",
+  "llvm.amdgcn.image.atomic.umax.2d",
+  "llvm.amdgcn.image.atomic.umax.2darray",
+  "llvm.amdgcn.image.atomic.umax.2darraymsaa",
+  "llvm.amdgcn.image.atomic.umax.2dmsaa",
+  "llvm.amdgcn.image.atomic.umax.3d",
+  "llvm.amdgcn.image.atomic.umax.cube",
+  "llvm.amdgcn.image.atomic.umin.1d",
+  "llvm.amdgcn.image.atomic.umin.1darray",
+  "llvm.amdgcn.image.atomic.umin.2d",
+  "llvm.amdgcn.image.atomic.umin.2darray",
+  "llvm.amdgcn.image.atomic.umin.2darraymsaa",
+  "llvm.amdgcn.image.atomic.umin.2dmsaa",
+  "llvm.amdgcn.image.atomic.umin.3d",
+  "llvm.amdgcn.image.atomic.umin.cube",
+  "llvm.amdgcn.image.atomic.xor.1d",
+  "llvm.amdgcn.image.atomic.xor.1darray",
+  "llvm.amdgcn.image.atomic.xor.2d",
+  "llvm.amdgcn.image.atomic.xor.2darray",
+  "llvm.amdgcn.image.atomic.xor.2darraymsaa",
+  "llvm.amdgcn.image.atomic.xor.2dmsaa",
+  "llvm.amdgcn.image.atomic.xor.3d",
+  "llvm.amdgcn.image.atomic.xor.cube",
+  "llvm.amdgcn.image.gather4.2d",
+  "llvm.amdgcn.image.gather4.2darray",
+  "llvm.amdgcn.image.gather4.b.2d",
+  "llvm.amdgcn.image.gather4.b.2darray",
+  "llvm.amdgcn.image.gather4.b.cl.2d",
+  "llvm.amdgcn.image.gather4.b.cl.2darray",
+  "llvm.amdgcn.image.gather4.b.cl.cube",
+  "llvm.amdgcn.image.gather4.b.cl.o.2d",
+  "llvm.amdgcn.image.gather4.b.cl.o.2darray",
+  "llvm.amdgcn.image.gather4.b.cl.o.cube",
+  "llvm.amdgcn.image.gather4.b.cube",
+  "llvm.amdgcn.image.gather4.b.o.2d",
+  "llvm.amdgcn.image.gather4.b.o.2darray",
+  "llvm.amdgcn.image.gather4.b.o.cube",
+  "llvm.amdgcn.image.gather4.c.2d",
+  "llvm.amdgcn.image.gather4.c.2darray",
+  "llvm.amdgcn.image.gather4.c.b.2d",
+  "llvm.amdgcn.image.gather4.c.b.2darray",
+  "llvm.amdgcn.image.gather4.c.b.cl.2d",
+  "llvm.amdgcn.image.gather4.c.b.cl.2darray",
+  "llvm.amdgcn.image.gather4.c.b.cl.cube",
+  "llvm.amdgcn.image.gather4.c.b.cl.o.2d",
+  "llvm.amdgcn.image.gather4.c.b.cl.o.2darray",
+  "llvm.amdgcn.image.gather4.c.b.cl.o.cube",
+  "llvm.amdgcn.image.gather4.c.b.cube",
+  "llvm.amdgcn.image.gather4.c.b.o.2d",
+  "llvm.amdgcn.image.gather4.c.b.o.2darray",
+  "llvm.amdgcn.image.gather4.c.b.o.cube",
+  "llvm.amdgcn.image.gather4.c.cl.2d",
+  "llvm.amdgcn.image.gather4.c.cl.2darray",
+  "llvm.amdgcn.image.gather4.c.cl.cube",
+  "llvm.amdgcn.image.gather4.c.cl.o.2d",
+  "llvm.amdgcn.image.gather4.c.cl.o.2darray",
+  "llvm.amdgcn.image.gather4.c.cl.o.cube",
+  "llvm.amdgcn.image.gather4.c.cube",
+  "llvm.amdgcn.image.gather4.c.l.2d",
+  "llvm.amdgcn.image.gather4.c.l.2darray",
+  "llvm.amdgcn.image.gather4.c.l.cube",
+  "llvm.amdgcn.image.gather4.c.l.o.2d",
+  "llvm.amdgcn.image.gather4.c.l.o.2darray",
+  "llvm.amdgcn.image.gather4.c.l.o.cube",
+  "llvm.amdgcn.image.gather4.c.lz.2d",
+  "llvm.amdgcn.image.gather4.c.lz.2darray",
+  "llvm.amdgcn.image.gather4.c.lz.cube",
+  "llvm.amdgcn.image.gather4.c.lz.o.2d",
+  "llvm.amdgcn.image.gather4.c.lz.o.2darray",
+  "llvm.amdgcn.image.gather4.c.lz.o.cube",
+  "llvm.amdgcn.image.gather4.c.o.2d",
+  "llvm.amdgcn.image.gather4.c.o.2darray",
+  "llvm.amdgcn.image.gather4.c.o.cube",
+  "llvm.amdgcn.image.gather4.cl.2d",
+  "llvm.amdgcn.image.gather4.cl.2darray",
+  "llvm.amdgcn.image.gather4.cl.cube",
+  "llvm.amdgcn.image.gather4.cl.o.2d",
+  "llvm.amdgcn.image.gather4.cl.o.2darray",
+  "llvm.amdgcn.image.gather4.cl.o.cube",
+  "llvm.amdgcn.image.gather4.cube",
+  "llvm.amdgcn.image.gather4.l.2d",
+  "llvm.amdgcn.image.gather4.l.2darray",
+  "llvm.amdgcn.image.gather4.l.cube",
+  "llvm.amdgcn.image.gather4.l.o.2d",
+  "llvm.amdgcn.image.gather4.l.o.2darray",
+  "llvm.amdgcn.image.gather4.l.o.cube",
+  "llvm.amdgcn.image.gather4.lz.2d",
+  "llvm.amdgcn.image.gather4.lz.2darray",
+  "llvm.amdgcn.image.gather4.lz.cube",
+  "llvm.amdgcn.image.gather4.lz.o.2d",
+  "llvm.amdgcn.image.gather4.lz.o.2darray",
+  "llvm.amdgcn.image.gather4.lz.o.cube",
+  "llvm.amdgcn.image.gather4.o.2d",
+  "llvm.amdgcn.image.gather4.o.2darray",
+  "llvm.amdgcn.image.gather4.o.cube",
+  "llvm.amdgcn.image.getlod.1d",
+  "llvm.amdgcn.image.getlod.1darray",
+  "llvm.amdgcn.image.getlod.2d",
+  "llvm.amdgcn.image.getlod.2darray",
+  "llvm.amdgcn.image.getlod.3d",
+  "llvm.amdgcn.image.getlod.cube",
+  "llvm.amdgcn.image.getresinfo.1d",
+  "llvm.amdgcn.image.getresinfo.1darray",
+  "llvm.amdgcn.image.getresinfo.2d",
+  "llvm.amdgcn.image.getresinfo.2darray",
+  "llvm.amdgcn.image.getresinfo.2darraymsaa",
+  "llvm.amdgcn.image.getresinfo.2dmsaa",
+  "llvm.amdgcn.image.getresinfo.3d",
+  "llvm.amdgcn.image.getresinfo.cube",
+  "llvm.amdgcn.image.load.1d",
+  "llvm.amdgcn.image.load.1darray",
+  "llvm.amdgcn.image.load.2d",
+  "llvm.amdgcn.image.load.2darray",
+  "llvm.amdgcn.image.load.2darraymsaa",
+  "llvm.amdgcn.image.load.2dmsaa",
+  "llvm.amdgcn.image.load.3d",
+  "llvm.amdgcn.image.load.cube",
+  "llvm.amdgcn.image.load.mip.1d",
+  "llvm.amdgcn.image.load.mip.1darray",
+  "llvm.amdgcn.image.load.mip.2d",
+  "llvm.amdgcn.image.load.mip.2darray",
+  "llvm.amdgcn.image.load.mip.3d",
+  "llvm.amdgcn.image.load.mip.cube",
+  "llvm.amdgcn.image.sample.1d",
+  "llvm.amdgcn.image.sample.1darray",
+  "llvm.amdgcn.image.sample.2d",
+  "llvm.amdgcn.image.sample.2darray",
+  "llvm.amdgcn.image.sample.3d",
+  "llvm.amdgcn.image.sample.b.1d",
+  "llvm.amdgcn.image.sample.b.1darray",
+  "llvm.amdgcn.image.sample.b.2d",
+  "llvm.amdgcn.image.sample.b.2darray",
+  "llvm.amdgcn.image.sample.b.3d",
+  "llvm.amdgcn.image.sample.b.cl.1d",
+  "llvm.amdgcn.image.sample.b.cl.1darray",
+  "llvm.amdgcn.image.sample.b.cl.2d",
+  "llvm.amdgcn.image.sample.b.cl.2darray",
+  "llvm.amdgcn.image.sample.b.cl.3d",
+  "llvm.amdgcn.image.sample.b.cl.cube",
+  "llvm.amdgcn.image.sample.b.cl.o.1d",
+  "llvm.amdgcn.image.sample.b.cl.o.1darray",
+  "llvm.amdgcn.image.sample.b.cl.o.2d",
+  "llvm.amdgcn.image.sample.b.cl.o.2darray",
+  "llvm.amdgcn.image.sample.b.cl.o.3d",
+  "llvm.amdgcn.image.sample.b.cl.o.cube",
+  "llvm.amdgcn.image.sample.b.cube",
+  "llvm.amdgcn.image.sample.b.o.1d",
+  "llvm.amdgcn.image.sample.b.o.1darray",
+  "llvm.amdgcn.image.sample.b.o.2d",
+  "llvm.amdgcn.image.sample.b.o.2darray",
+  "llvm.amdgcn.image.sample.b.o.3d",
+  "llvm.amdgcn.image.sample.b.o.cube",
+  "llvm.amdgcn.image.sample.c.1d",
+  "llvm.amdgcn.image.sample.c.1darray",
+  "llvm.amdgcn.image.sample.c.2d",
+  "llvm.amdgcn.image.sample.c.2darray",
+  "llvm.amdgcn.image.sample.c.3d",
+  "llvm.amdgcn.image.sample.c.b.1d",
+  "llvm.amdgcn.image.sample.c.b.1darray",
+  "llvm.amdgcn.image.sample.c.b.2d",
+  "llvm.amdgcn.image.sample.c.b.2darray",
+  "llvm.amdgcn.image.sample.c.b.3d",
+  "llvm.amdgcn.image.sample.c.b.cl.1d",
+  "llvm.amdgcn.image.sample.c.b.cl.1darray",
+  "llvm.amdgcn.image.sample.c.b.cl.2d",
+  "llvm.amdgcn.image.sample.c.b.cl.2darray",
+  "llvm.amdgcn.image.sample.c.b.cl.3d",
+  "llvm.amdgcn.image.sample.c.b.cl.cube",
+  "llvm.amdgcn.image.sample.c.b.cl.o.1d",
+  "llvm.amdgcn.image.sample.c.b.cl.o.1darray",
+  "llvm.amdgcn.image.sample.c.b.cl.o.2d",
+  "llvm.amdgcn.image.sample.c.b.cl.o.2darray",
+  "llvm.amdgcn.image.sample.c.b.cl.o.3d",
+  "llvm.amdgcn.image.sample.c.b.cl.o.cube",
+  "llvm.amdgcn.image.sample.c.b.cube",
+  "llvm.amdgcn.image.sample.c.b.o.1d",
+  "llvm.amdgcn.image.sample.c.b.o.1darray",
+  "llvm.amdgcn.image.sample.c.b.o.2d",
+  "llvm.amdgcn.image.sample.c.b.o.2darray",
+  "llvm.amdgcn.image.sample.c.b.o.3d",
+  "llvm.amdgcn.image.sample.c.b.o.cube",
+  "llvm.amdgcn.image.sample.c.cd.1d",
+  "llvm.amdgcn.image.sample.c.cd.1darray",
+  "llvm.amdgcn.image.sample.c.cd.2d",
+  "llvm.amdgcn.image.sample.c.cd.2darray",
+  "llvm.amdgcn.image.sample.c.cd.3d",
+  "llvm.amdgcn.image.sample.c.cd.cl.1d",
+  "llvm.amdgcn.image.sample.c.cd.cl.1darray",
+  "llvm.amdgcn.image.sample.c.cd.cl.2d",
+  "llvm.amdgcn.image.sample.c.cd.cl.2darray",
+  "llvm.amdgcn.image.sample.c.cd.cl.3d",
+  "llvm.amdgcn.image.sample.c.cd.cl.cube",
+  "llvm.amdgcn.image.sample.c.cd.cl.o.1d",
+  "llvm.amdgcn.image.sample.c.cd.cl.o.1darray",
+  "llvm.amdgcn.image.sample.c.cd.cl.o.2d",
+  "llvm.amdgcn.image.sample.c.cd.cl.o.2darray",
+  "llvm.amdgcn.image.sample.c.cd.cl.o.3d",
+  "llvm.amdgcn.image.sample.c.cd.cl.o.cube",
+  "llvm.amdgcn.image.sample.c.cd.cube",
+  "llvm.amdgcn.image.sample.c.cd.o.1d",
+  "llvm.amdgcn.image.sample.c.cd.o.1darray",
+  "llvm.amdgcn.image.sample.c.cd.o.2d",
+  "llvm.amdgcn.image.sample.c.cd.o.2darray",
+  "llvm.amdgcn.image.sample.c.cd.o.3d",
+  "llvm.amdgcn.image.sample.c.cd.o.cube",
+  "llvm.amdgcn.image.sample.c.cl.1d",
+  "llvm.amdgcn.image.sample.c.cl.1darray",
+  "llvm.amdgcn.image.sample.c.cl.2d",
+  "llvm.amdgcn.image.sample.c.cl.2darray",
+  "llvm.amdgcn.image.sample.c.cl.3d",
+  "llvm.amdgcn.image.sample.c.cl.cube",
+  "llvm.amdgcn.image.sample.c.cl.o.1d",
+  "llvm.amdgcn.image.sample.c.cl.o.1darray",
+  "llvm.amdgcn.image.sample.c.cl.o.2d",
+  "llvm.amdgcn.image.sample.c.cl.o.2darray",
+  "llvm.amdgcn.image.sample.c.cl.o.3d",
+  "llvm.amdgcn.image.sample.c.cl.o.cube",
+  "llvm.amdgcn.image.sample.c.cube",
+  "llvm.amdgcn.image.sample.c.d.1d",
+  "llvm.amdgcn.image.sample.c.d.1darray",
+  "llvm.amdgcn.image.sample.c.d.2d",
+  "llvm.amdgcn.image.sample.c.d.2darray",
+  "llvm.amdgcn.image.sample.c.d.3d",
+  "llvm.amdgcn.image.sample.c.d.cl.1d",
+  "llvm.amdgcn.image.sample.c.d.cl.1darray",
+  "llvm.amdgcn.image.sample.c.d.cl.2d",
+  "llvm.amdgcn.image.sample.c.d.cl.2darray",
+  "llvm.amdgcn.image.sample.c.d.cl.3d",
+  "llvm.amdgcn.image.sample.c.d.cl.cube",
+  "llvm.amdgcn.image.sample.c.d.cl.o.1d",
+  "llvm.amdgcn.image.sample.c.d.cl.o.1darray",
+  "llvm.amdgcn.image.sample.c.d.cl.o.2d",
+  "llvm.amdgcn.image.sample.c.d.cl.o.2darray",
+  "llvm.amdgcn.image.sample.c.d.cl.o.3d",
+  "llvm.amdgcn.image.sample.c.d.cl.o.cube",
+  "llvm.amdgcn.image.sample.c.d.cube",
+  "llvm.amdgcn.image.sample.c.d.o.1d",
+  "llvm.amdgcn.image.sample.c.d.o.1darray",
+  "llvm.amdgcn.image.sample.c.d.o.2d",
+  "llvm.amdgcn.image.sample.c.d.o.2darray",
+  "llvm.amdgcn.image.sample.c.d.o.3d",
+  "llvm.amdgcn.image.sample.c.d.o.cube",
+  "llvm.amdgcn.image.sample.c.l.1d",
+  "llvm.amdgcn.image.sample.c.l.1darray",
+  "llvm.amdgcn.image.sample.c.l.2d",
+  "llvm.amdgcn.image.sample.c.l.2darray",
+  "llvm.amdgcn.image.sample.c.l.3d",
+  "llvm.amdgcn.image.sample.c.l.cube",
+  "llvm.amdgcn.image.sample.c.l.o.1d",
+  "llvm.amdgcn.image.sample.c.l.o.1darray",
+  "llvm.amdgcn.image.sample.c.l.o.2d",
+  "llvm.amdgcn.image.sample.c.l.o.2darray",
+  "llvm.amdgcn.image.sample.c.l.o.3d",
+  "llvm.amdgcn.image.sample.c.l.o.cube",
+  "llvm.amdgcn.image.sample.c.lz.1d",
+  "llvm.amdgcn.image.sample.c.lz.1darray",
+  "llvm.amdgcn.image.sample.c.lz.2d",
+  "llvm.amdgcn.image.sample.c.lz.2darray",
+  "llvm.amdgcn.image.sample.c.lz.3d",
+  "llvm.amdgcn.image.sample.c.lz.cube",
+  "llvm.amdgcn.image.sample.c.lz.o.1d",
+  "llvm.amdgcn.image.sample.c.lz.o.1darray",
+  "llvm.amdgcn.image.sample.c.lz.o.2d",
+  "llvm.amdgcn.image.sample.c.lz.o.2darray",
+  "llvm.amdgcn.image.sample.c.lz.o.3d",
+  "llvm.amdgcn.image.sample.c.lz.o.cube",
+  "llvm.amdgcn.image.sample.c.o.1d",
+  "llvm.amdgcn.image.sample.c.o.1darray",
+  "llvm.amdgcn.image.sample.c.o.2d",
+  "llvm.amdgcn.image.sample.c.o.2darray",
+  "llvm.amdgcn.image.sample.c.o.3d",
+  "llvm.amdgcn.image.sample.c.o.cube",
+  "llvm.amdgcn.image.sample.cd.1d",
+  "llvm.amdgcn.image.sample.cd.1darray",
+  "llvm.amdgcn.image.sample.cd.2d",
+  "llvm.amdgcn.image.sample.cd.2darray",
+  "llvm.amdgcn.image.sample.cd.3d",
+  "llvm.amdgcn.image.sample.cd.cl.1d",
+  "llvm.amdgcn.image.sample.cd.cl.1darray",
+  "llvm.amdgcn.image.sample.cd.cl.2d",
+  "llvm.amdgcn.image.sample.cd.cl.2darray",
+  "llvm.amdgcn.image.sample.cd.cl.3d",
+  "llvm.amdgcn.image.sample.cd.cl.cube",
+  "llvm.amdgcn.image.sample.cd.cl.o.1d",
+  "llvm.amdgcn.image.sample.cd.cl.o.1darray",
+  "llvm.amdgcn.image.sample.cd.cl.o.2d",
+  "llvm.amdgcn.image.sample.cd.cl.o.2darray",
+  "llvm.amdgcn.image.sample.cd.cl.o.3d",
+  "llvm.amdgcn.image.sample.cd.cl.o.cube",
+  "llvm.amdgcn.image.sample.cd.cube",
+  "llvm.amdgcn.image.sample.cd.o.1d",
+  "llvm.amdgcn.image.sample.cd.o.1darray",
+  "llvm.amdgcn.image.sample.cd.o.2d",
+  "llvm.amdgcn.image.sample.cd.o.2darray",
+  "llvm.amdgcn.image.sample.cd.o.3d",
+  "llvm.amdgcn.image.sample.cd.o.cube",
+  "llvm.amdgcn.image.sample.cl.1d",
+  "llvm.amdgcn.image.sample.cl.1darray",
+  "llvm.amdgcn.image.sample.cl.2d",
+  "llvm.amdgcn.image.sample.cl.2darray",
+  "llvm.amdgcn.image.sample.cl.3d",
+  "llvm.amdgcn.image.sample.cl.cube",
+  "llvm.amdgcn.image.sample.cl.o.1d",
+  "llvm.amdgcn.image.sample.cl.o.1darray",
+  "llvm.amdgcn.image.sample.cl.o.2d",
+  "llvm.amdgcn.image.sample.cl.o.2darray",
+  "llvm.amdgcn.image.sample.cl.o.3d",
+  "llvm.amdgcn.image.sample.cl.o.cube",
+  "llvm.amdgcn.image.sample.cube",
+  "llvm.amdgcn.image.sample.d.1d",
+  "llvm.amdgcn.image.sample.d.1darray",
+  "llvm.amdgcn.image.sample.d.2d",
+  "llvm.amdgcn.image.sample.d.2darray",
+  "llvm.amdgcn.image.sample.d.3d",
+  "llvm.amdgcn.image.sample.d.cl.1d",
+  "llvm.amdgcn.image.sample.d.cl.1darray",
+  "llvm.amdgcn.image.sample.d.cl.2d",
+  "llvm.amdgcn.image.sample.d.cl.2darray",
+  "llvm.amdgcn.image.sample.d.cl.3d",
+  "llvm.amdgcn.image.sample.d.cl.cube",
+  "llvm.amdgcn.image.sample.d.cl.o.1d",
+  "llvm.amdgcn.image.sample.d.cl.o.1darray",
+  "llvm.amdgcn.image.sample.d.cl.o.2d",
+  "llvm.amdgcn.image.sample.d.cl.o.2darray",
+  "llvm.amdgcn.image.sample.d.cl.o.3d",
+  "llvm.amdgcn.image.sample.d.cl.o.cube",
+  "llvm.amdgcn.image.sample.d.cube",
+  "llvm.amdgcn.image.sample.d.o.1d",
+  "llvm.amdgcn.image.sample.d.o.1darray",
+  "llvm.amdgcn.image.sample.d.o.2d",
+  "llvm.amdgcn.image.sample.d.o.2darray",
+  "llvm.amdgcn.image.sample.d.o.3d",
+  "llvm.amdgcn.image.sample.d.o.cube",
+  "llvm.amdgcn.image.sample.l.1d",
+  "llvm.amdgcn.image.sample.l.1darray",
+  "llvm.amdgcn.image.sample.l.2d",
+  "llvm.amdgcn.image.sample.l.2darray",
+  "llvm.amdgcn.image.sample.l.3d",
+  "llvm.amdgcn.image.sample.l.cube",
+  "llvm.amdgcn.image.sample.l.o.1d",
+  "llvm.amdgcn.image.sample.l.o.1darray",
+  "llvm.amdgcn.image.sample.l.o.2d",
+  "llvm.amdgcn.image.sample.l.o.2darray",
+  "llvm.amdgcn.image.sample.l.o.3d",
+  "llvm.amdgcn.image.sample.l.o.cube",
+  "llvm.amdgcn.image.sample.lz.1d",
+  "llvm.amdgcn.image.sample.lz.1darray",
+  "llvm.amdgcn.image.sample.lz.2d",
+  "llvm.amdgcn.image.sample.lz.2darray",
+  "llvm.amdgcn.image.sample.lz.3d",
+  "llvm.amdgcn.image.sample.lz.cube",
+  "llvm.amdgcn.image.sample.lz.o.1d",
+  "llvm.amdgcn.image.sample.lz.o.1darray",
+  "llvm.amdgcn.image.sample.lz.o.2d",
+  "llvm.amdgcn.image.sample.lz.o.2darray",
+  "llvm.amdgcn.image.sample.lz.o.3d",
+  "llvm.amdgcn.image.sample.lz.o.cube",
+  "llvm.amdgcn.image.sample.o.1d",
+  "llvm.amdgcn.image.sample.o.1darray",
+  "llvm.amdgcn.image.sample.o.2d",
+  "llvm.amdgcn.image.sample.o.2darray",
+  "llvm.amdgcn.image.sample.o.3d",
+  "llvm.amdgcn.image.sample.o.cube",
+  "llvm.amdgcn.image.store.1d",
+  "llvm.amdgcn.image.store.1darray",
+  "llvm.amdgcn.image.store.2d",
+  "llvm.amdgcn.image.store.2darray",
+  "llvm.amdgcn.image.store.2darraymsaa",
+  "llvm.amdgcn.image.store.2dmsaa",
+  "llvm.amdgcn.image.store.3d",
+  "llvm.amdgcn.image.store.cube",
+  "llvm.amdgcn.image.store.mip.1d",
+  "llvm.amdgcn.image.store.mip.1darray",
+  "llvm.amdgcn.image.store.mip.2d",
+  "llvm.amdgcn.image.store.mip.2darray",
+  "llvm.amdgcn.image.store.mip.3d",
+  "llvm.amdgcn.image.store.mip.cube",
+  "llvm.amdgcn.implicit.buffer.ptr",
+  "llvm.amdgcn.implicitarg.ptr",
+  "llvm.amdgcn.init.exec",
+  "llvm.amdgcn.init.exec.from.input",
+  "llvm.amdgcn.interp.mov",
+  "llvm.amdgcn.interp.p1",
+  "llvm.amdgcn.interp.p2",
+  "llvm.amdgcn.kernarg.segment.ptr",
+  "llvm.amdgcn.kill",
+  "llvm.amdgcn.ldexp",
+  "llvm.amdgcn.lerp",
+  "llvm.amdgcn.log.clamp",
+  "llvm.amdgcn.loop",
+  "llvm.amdgcn.mbcnt.hi",
+  "llvm.amdgcn.mbcnt.lo",
+  "llvm.amdgcn.mov.dpp",
+  "llvm.amdgcn.mqsad.pk.u16.u8",
+  "llvm.amdgcn.mqsad.u32.u8",
+  "llvm.amdgcn.msad.u8",
+  "llvm.amdgcn.ps.live",
+  "llvm.amdgcn.qsad.pk.u16.u8",
+  "llvm.amdgcn.queue.ptr",
+  "llvm.amdgcn.rcp",
+  "llvm.amdgcn.rcp.legacy",
+  "llvm.amdgcn.readfirstlane",
+  "llvm.amdgcn.readlane",
+  "llvm.amdgcn.rsq",
+  "llvm.amdgcn.rsq.clamp",
+  "llvm.amdgcn.rsq.legacy",
+  "llvm.amdgcn.s.barrier",
+  "llvm.amdgcn.s.dcache.inv",
+  "llvm.amdgcn.s.dcache.inv.vol",
+  "llvm.amdgcn.s.dcache.wb",
+  "llvm.amdgcn.s.dcache.wb.vol",
+  "llvm.amdgcn.s.decperflevel",
+  "llvm.amdgcn.s.getpc",
+  "llvm.amdgcn.s.getreg",
+  "llvm.amdgcn.s.incperflevel",
+  "llvm.amdgcn.s.memrealtime",
+  "llvm.amdgcn.s.memtime",
+  "llvm.amdgcn.s.sendmsg",
+  "llvm.amdgcn.s.sendmsghalt",
+  "llvm.amdgcn.s.sleep",
+  "llvm.amdgcn.s.waitcnt",
+  "llvm.amdgcn.sad.hi.u8",
+  "llvm.amdgcn.sad.u16",
+  "llvm.amdgcn.sad.u8",
+  "llvm.amdgcn.sbfe",
+  "llvm.amdgcn.sdot2",
+  "llvm.amdgcn.sdot4",
+  "llvm.amdgcn.sdot8",
+  "llvm.amdgcn.set.inactive",
+  "llvm.amdgcn.sffbh",
+  "llvm.amdgcn.sin",
+  "llvm.amdgcn.tbuffer.load",
+  "llvm.amdgcn.tbuffer.store",
+  "llvm.amdgcn.trig.preop",
+  "llvm.amdgcn.ubfe",
+  "llvm.amdgcn.udot2",
+  "llvm.amdgcn.udot4",
+  "llvm.amdgcn.udot8",
+  "llvm.amdgcn.unreachable",
+  "llvm.amdgcn.update.dpp",
+  "llvm.amdgcn.wave.barrier",
+  "llvm.amdgcn.workgroup.id.x",
+  "llvm.amdgcn.workgroup.id.y",
+  "llvm.amdgcn.workgroup.id.z",
+  "llvm.amdgcn.workitem.id.x",
+  "llvm.amdgcn.workitem.id.y",
+  "llvm.amdgcn.workitem.id.z",
+  "llvm.amdgcn.wqm",
+  "llvm.amdgcn.wqm.vote",
+  "llvm.amdgcn.writelane",
+  "llvm.amdgcn.wwm",
+  "llvm.arm.cdp",
+  "llvm.arm.cdp2",
+  "llvm.arm.clrex",
+  "llvm.arm.crc32b",
+  "llvm.arm.crc32cb",
+  "llvm.arm.crc32ch",
+  "llvm.arm.crc32cw",
+  "llvm.arm.crc32h",
+  "llvm.arm.crc32w",
+  "llvm.arm.dbg",
+  "llvm.arm.dmb",
+  "llvm.arm.dsb",
+  "llvm.arm.get.fpscr",
+  "llvm.arm.hint",
+  "llvm.arm.isb",
+  "llvm.arm.ldaex",
+  "llvm.arm.ldaexd",
+  "llvm.arm.ldc",
+  "llvm.arm.ldc2",
+  "llvm.arm.ldc2l",
+  "llvm.arm.ldcl",
+  "llvm.arm.ldrex",
+  "llvm.arm.ldrexd",
+  "llvm.arm.mcr",
+  "llvm.arm.mcr2",
+  "llvm.arm.mcrr",
+  "llvm.arm.mcrr2",
+  "llvm.arm.mrc",
+  "llvm.arm.mrc2",
+  "llvm.arm.mrrc",
+  "llvm.arm.mrrc2",
+  "llvm.arm.neon.aesd",
+  "llvm.arm.neon.aese",
+  "llvm.arm.neon.aesimc",
+  "llvm.arm.neon.aesmc",
+  "llvm.arm.neon.sdot",
+  "llvm.arm.neon.sha1c",
+  "llvm.arm.neon.sha1h",
+  "llvm.arm.neon.sha1m",
+  "llvm.arm.neon.sha1p",
+  "llvm.arm.neon.sha1su0",
+  "llvm.arm.neon.sha1su1",
+  "llvm.arm.neon.sha256h",
+  "llvm.arm.neon.sha256h2",
+  "llvm.arm.neon.sha256su0",
+  "llvm.arm.neon.sha256su1",
+  "llvm.arm.neon.udot",
+  "llvm.arm.neon.vabds",
+  "llvm.arm.neon.vabdu",
+  "llvm.arm.neon.vabs",
+  "llvm.arm.neon.vacge",
+  "llvm.arm.neon.vacgt",
+  "llvm.arm.neon.vbsl",
+  "llvm.arm.neon.vcls",
+  "llvm.arm.neon.vcvtas",
+  "llvm.arm.neon.vcvtau",
+  "llvm.arm.neon.vcvtfp2fxs",
+  "llvm.arm.neon.vcvtfp2fxu",
+  "llvm.arm.neon.vcvtfp2hf",
+  "llvm.arm.neon.vcvtfxs2fp",
+  "llvm.arm.neon.vcvtfxu2fp",
+  "llvm.arm.neon.vcvthf2fp",
+  "llvm.arm.neon.vcvtms",
+  "llvm.arm.neon.vcvtmu",
+  "llvm.arm.neon.vcvtns",
+  "llvm.arm.neon.vcvtnu",
+  "llvm.arm.neon.vcvtps",
+  "llvm.arm.neon.vcvtpu",
+  "llvm.arm.neon.vhadds",
+  "llvm.arm.neon.vhaddu",
+  "llvm.arm.neon.vhsubs",
+  "llvm.arm.neon.vhsubu",
+  "llvm.arm.neon.vld1",
+  "llvm.arm.neon.vld1x2",
+  "llvm.arm.neon.vld1x3",
+  "llvm.arm.neon.vld1x4",
+  "llvm.arm.neon.vld2",
+  "llvm.arm.neon.vld2dup",
+  "llvm.arm.neon.vld2lane",
+  "llvm.arm.neon.vld3",
+  "llvm.arm.neon.vld3dup",
+  "llvm.arm.neon.vld3lane",
+  "llvm.arm.neon.vld4",
+  "llvm.arm.neon.vld4dup",
+  "llvm.arm.neon.vld4lane",
+  "llvm.arm.neon.vmaxnm",
+  "llvm.arm.neon.vmaxs",
+  "llvm.arm.neon.vmaxu",
+  "llvm.arm.neon.vminnm",
+  "llvm.arm.neon.vmins",
+  "llvm.arm.neon.vminu",
+  "llvm.arm.neon.vmullp",
+  "llvm.arm.neon.vmulls",
+  "llvm.arm.neon.vmullu",
+  "llvm.arm.neon.vmulp",
+  "llvm.arm.neon.vpadals",
+  "llvm.arm.neon.vpadalu",
+  "llvm.arm.neon.vpadd",
+  "llvm.arm.neon.vpaddls",
+  "llvm.arm.neon.vpaddlu",
+  "llvm.arm.neon.vpmaxs",
+  "llvm.arm.neon.vpmaxu",
+  "llvm.arm.neon.vpmins",
+  "llvm.arm.neon.vpminu",
+  "llvm.arm.neon.vqabs",
+  "llvm.arm.neon.vqadds",
+  "llvm.arm.neon.vqaddu",
+  "llvm.arm.neon.vqdmulh",
+  "llvm.arm.neon.vqdmull",
+  "llvm.arm.neon.vqmovns",
+  "llvm.arm.neon.vqmovnsu",
+  "llvm.arm.neon.vqmovnu",
+  "llvm.arm.neon.vqneg",
+  "llvm.arm.neon.vqrdmulh",
+  "llvm.arm.neon.vqrshiftns",
+  "llvm.arm.neon.vqrshiftnsu",
+  "llvm.arm.neon.vqrshiftnu",
+  "llvm.arm.neon.vqrshifts",
+  "llvm.arm.neon.vqrshiftu",
+  "llvm.arm.neon.vqshiftns",
+  "llvm.arm.neon.vqshiftnsu",
+  "llvm.arm.neon.vqshiftnu",
+  "llvm.arm.neon.vqshifts",
+  "llvm.arm.neon.vqshiftsu",
+  "llvm.arm.neon.vqshiftu",
+  "llvm.arm.neon.vqsubs",
+  "llvm.arm.neon.vqsubu",
+  "llvm.arm.neon.vraddhn",
+  "llvm.arm.neon.vrecpe",
+  "llvm.arm.neon.vrecps",
+  "llvm.arm.neon.vrhadds",
+  "llvm.arm.neon.vrhaddu",
+  "llvm.arm.neon.vrinta",
+  "llvm.arm.neon.vrintm",
+  "llvm.arm.neon.vrintn",
+  "llvm.arm.neon.vrintp",
+  "llvm.arm.neon.vrintx",
+  "llvm.arm.neon.vrintz",
+  "llvm.arm.neon.vrshiftn",
+  "llvm.arm.neon.vrshifts",
+  "llvm.arm.neon.vrshiftu",
+  "llvm.arm.neon.vrsqrte",
+  "llvm.arm.neon.vrsqrts",
+  "llvm.arm.neon.vrsubhn",
+  "llvm.arm.neon.vshiftins",
+  "llvm.arm.neon.vshifts",
+  "llvm.arm.neon.vshiftu",
+  "llvm.arm.neon.vst1",
+  "llvm.arm.neon.vst1x2",
+  "llvm.arm.neon.vst1x3",
+  "llvm.arm.neon.vst1x4",
+  "llvm.arm.neon.vst2",
+  "llvm.arm.neon.vst2lane",
+  "llvm.arm.neon.vst3",
+  "llvm.arm.neon.vst3lane",
+  "llvm.arm.neon.vst4",
+  "llvm.arm.neon.vst4lane",
+  "llvm.arm.neon.vtbl1",
+  "llvm.arm.neon.vtbl2",
+  "llvm.arm.neon.vtbl3",
+  "llvm.arm.neon.vtbl4",
+  "llvm.arm.neon.vtbx1",
+  "llvm.arm.neon.vtbx2",
+  "llvm.arm.neon.vtbx3",
+  "llvm.arm.neon.vtbx4",
+  "llvm.arm.qadd",
+  "llvm.arm.qadd16",
+  "llvm.arm.qadd8",
+  "llvm.arm.qasx",
+  "llvm.arm.qsax",
+  "llvm.arm.qsub",
+  "llvm.arm.qsub16",
+  "llvm.arm.qsub8",
+  "llvm.arm.sadd16",
+  "llvm.arm.sadd8",
+  "llvm.arm.sasx",
+  "llvm.arm.sel",
+  "llvm.arm.set.fpscr",
+  "llvm.arm.shadd16",
+  "llvm.arm.shadd8",
+  "llvm.arm.shasx",
+  "llvm.arm.shsax",
+  "llvm.arm.shsub16",
+  "llvm.arm.shsub8",
+  "llvm.arm.smlabb",
+  "llvm.arm.smlabt",
+  "llvm.arm.smlad",
+  "llvm.arm.smladx",
+  "llvm.arm.smlald",
+  "llvm.arm.smlaldx",
+  "llvm.arm.smlatb",
+  "llvm.arm.smlatt",
+  "llvm.arm.smlawb",
+  "llvm.arm.smlawt",
+  "llvm.arm.smlsd",
+  "llvm.arm.smlsdx",
+  "llvm.arm.smlsld",
+  "llvm.arm.smlsldx",
+  "llvm.arm.smuad",
+  "llvm.arm.smuadx",
+  "llvm.arm.smulbb",
+  "llvm.arm.smulbt",
+  "llvm.arm.smultb",
+  "llvm.arm.smultt",
+  "llvm.arm.smulwb",
+  "llvm.arm.smulwt",
+  "llvm.arm.smusd",
+  "llvm.arm.smusdx",
+  "llvm.arm.space",
+  "llvm.arm.ssat",
+  "llvm.arm.ssat16",
+  "llvm.arm.ssax",
+  "llvm.arm.ssub16",
+  "llvm.arm.ssub8",
+  "llvm.arm.stc",
+  "llvm.arm.stc2",
+  "llvm.arm.stc2l",
+  "llvm.arm.stcl",
+  "llvm.arm.stlex",
+  "llvm.arm.stlexd",
+  "llvm.arm.strex",
+  "llvm.arm.strexd",
+  "llvm.arm.sxtab16",
+  "llvm.arm.sxtb16",
+  "llvm.arm.uadd16",
+  "llvm.arm.uadd8",
+  "llvm.arm.uasx",
+  "llvm.arm.uhadd16",
+  "llvm.arm.uhadd8",
+  "llvm.arm.uhasx",
+  "llvm.arm.uhsax",
+  "llvm.arm.uhsub16",
+  "llvm.arm.uhsub8",
+  "llvm.arm.undefined",
+  "llvm.arm.uqadd16",
+  "llvm.arm.uqadd8",
+  "llvm.arm.uqasx",
+  "llvm.arm.uqsax",
+  "llvm.arm.uqsub16",
+  "llvm.arm.uqsub8",
+  "llvm.arm.usad8",
+  "llvm.arm.usada8",
+  "llvm.arm.usat",
+  "llvm.arm.usat16",
+  "llvm.arm.usax",
+  "llvm.arm.usub16",
+  "llvm.arm.usub8",
+  "llvm.arm.uxtab16",
+  "llvm.arm.uxtb16",
+  "llvm.arm.vcvtr",
+  "llvm.arm.vcvtru",
+  "llvm.bpf.load.byte",
+  "llvm.bpf.load.half",
+  "llvm.bpf.load.word",
+  "llvm.bpf.pseudo",
+  "llvm.hexagon.A2.abs",
+  "llvm.hexagon.A2.absp",
+  "llvm.hexagon.A2.abssat",
+  "llvm.hexagon.A2.add",
+  "llvm.hexagon.A2.addh.h16.hh",
+  "llvm.hexagon.A2.addh.h16.hl",
+  "llvm.hexagon.A2.addh.h16.lh",
+  "llvm.hexagon.A2.addh.h16.ll",
+  "llvm.hexagon.A2.addh.h16.sat.hh",
+  "llvm.hexagon.A2.addh.h16.sat.hl",
+  "llvm.hexagon.A2.addh.h16.sat.lh",
+  "llvm.hexagon.A2.addh.h16.sat.ll",
+  "llvm.hexagon.A2.addh.l16.hl",
+  "llvm.hexagon.A2.addh.l16.ll",
+  "llvm.hexagon.A2.addh.l16.sat.hl",
+  "llvm.hexagon.A2.addh.l16.sat.ll",
+  "llvm.hexagon.A2.addi",
+  "llvm.hexagon.A2.addp",
+  "llvm.hexagon.A2.addpsat",
+  "llvm.hexagon.A2.addsat",
+  "llvm.hexagon.A2.addsp",
+  "llvm.hexagon.A2.and",
+  "llvm.hexagon.A2.andir",
+  "llvm.hexagon.A2.andp",
+  "llvm.hexagon.A2.aslh",
+  "llvm.hexagon.A2.asrh",
+  "llvm.hexagon.A2.combine.hh",
+  "llvm.hexagon.A2.combine.hl",
+  "llvm.hexagon.A2.combine.lh",
+  "llvm.hexagon.A2.combine.ll",
+  "llvm.hexagon.A2.combineii",
+  "llvm.hexagon.A2.combinew",
+  "llvm.hexagon.A2.max",
+  "llvm.hexagon.A2.maxp",
+  "llvm.hexagon.A2.maxu",
+  "llvm.hexagon.A2.maxup",
+  "llvm.hexagon.A2.min",
+  "llvm.hexagon.A2.minp",
+  "llvm.hexagon.A2.minu",
+  "llvm.hexagon.A2.minup",
+  "llvm.hexagon.A2.neg",
+  "llvm.hexagon.A2.negp",
+  "llvm.hexagon.A2.negsat",
+  "llvm.hexagon.A2.not",
+  "llvm.hexagon.A2.notp",
+  "llvm.hexagon.A2.or",
+  "llvm.hexagon.A2.orir",
+  "llvm.hexagon.A2.orp",
+  "llvm.hexagon.A2.roundsat",
+  "llvm.hexagon.A2.sat",
+  "llvm.hexagon.A2.satb",
+  "llvm.hexagon.A2.sath",
+  "llvm.hexagon.A2.satub",
+  "llvm.hexagon.A2.satuh",
+  "llvm.hexagon.A2.sub",
+  "llvm.hexagon.A2.subh.h16.hh",
+  "llvm.hexagon.A2.subh.h16.hl",
+  "llvm.hexagon.A2.subh.h16.lh",
+  "llvm.hexagon.A2.subh.h16.ll",
+  "llvm.hexagon.A2.subh.h16.sat.hh",
+  "llvm.hexagon.A2.subh.h16.sat.hl",
+  "llvm.hexagon.A2.subh.h16.sat.lh",
+  "llvm.hexagon.A2.subh.h16.sat.ll",
+  "llvm.hexagon.A2.subh.l16.hl",
+  "llvm.hexagon.A2.subh.l16.ll",
+  "llvm.hexagon.A2.subh.l16.sat.hl",
+  "llvm.hexagon.A2.subh.l16.sat.ll",
+  "llvm.hexagon.A2.subp",
+  "llvm.hexagon.A2.subri",
+  "llvm.hexagon.A2.subsat",
+  "llvm.hexagon.A2.svaddh",
+  "llvm.hexagon.A2.svaddhs",
+  "llvm.hexagon.A2.svadduhs",
+  "llvm.hexagon.A2.svavgh",
+  "llvm.hexagon.A2.svavghs",
+  "llvm.hexagon.A2.svnavgh",
+  "llvm.hexagon.A2.svsubh",
+  "llvm.hexagon.A2.svsubhs",
+  "llvm.hexagon.A2.svsubuhs",
+  "llvm.hexagon.A2.swiz",
+  "llvm.hexagon.A2.sxtb",
+  "llvm.hexagon.A2.sxth",
+  "llvm.hexagon.A2.sxtw",
+  "llvm.hexagon.A2.tfr",
+  "llvm.hexagon.A2.tfrih",
+  "llvm.hexagon.A2.tfril",
+  "llvm.hexagon.A2.tfrp",
+  "llvm.hexagon.A2.tfrpi",
+  "llvm.hexagon.A2.tfrsi",
+  "llvm.hexagon.A2.vabsh",
+  "llvm.hexagon.A2.vabshsat",
+  "llvm.hexagon.A2.vabsw",
+  "llvm.hexagon.A2.vabswsat",
+  "llvm.hexagon.A2.vaddb.map",
+  "llvm.hexagon.A2.vaddh",
+  "llvm.hexagon.A2.vaddhs",
+  "llvm.hexagon.A2.vaddub",
+  "llvm.hexagon.A2.vaddubs",
+  "llvm.hexagon.A2.vadduhs",
+  "llvm.hexagon.A2.vaddw",
+  "llvm.hexagon.A2.vaddws",
+  "llvm.hexagon.A2.vavgh",
+  "llvm.hexagon.A2.vavghcr",
+  "llvm.hexagon.A2.vavghr",
+  "llvm.hexagon.A2.vavgub",
+  "llvm.hexagon.A2.vavgubr",
+  "llvm.hexagon.A2.vavguh",
+  "llvm.hexagon.A2.vavguhr",
+  "llvm.hexagon.A2.vavguw",
+  "llvm.hexagon.A2.vavguwr",
+  "llvm.hexagon.A2.vavgw",
+  "llvm.hexagon.A2.vavgwcr",
+  "llvm.hexagon.A2.vavgwr",
+  "llvm.hexagon.A2.vcmpbeq",
+  "llvm.hexagon.A2.vcmpbgtu",
+  "llvm.hexagon.A2.vcmpheq",
+  "llvm.hexagon.A2.vcmphgt",
+  "llvm.hexagon.A2.vcmphgtu",
+  "llvm.hexagon.A2.vcmpweq",
+  "llvm.hexagon.A2.vcmpwgt",
+  "llvm.hexagon.A2.vcmpwgtu",
+  "llvm.hexagon.A2.vconj",
+  "llvm.hexagon.A2.vmaxb",
+  "llvm.hexagon.A2.vmaxh",
+  "llvm.hexagon.A2.vmaxub",
+  "llvm.hexagon.A2.vmaxuh",
+  "llvm.hexagon.A2.vmaxuw",
+  "llvm.hexagon.A2.vmaxw",
+  "llvm.hexagon.A2.vminb",
+  "llvm.hexagon.A2.vminh",
+  "llvm.hexagon.A2.vminub",
+  "llvm.hexagon.A2.vminuh",
+  "llvm.hexagon.A2.vminuw",
+  "llvm.hexagon.A2.vminw",
+  "llvm.hexagon.A2.vnavgh",
+  "llvm.hexagon.A2.vnavghcr",
+  "llvm.hexagon.A2.vnavghr",
+  "llvm.hexagon.A2.vnavgw",
+  "llvm.hexagon.A2.vnavgwcr",
+  "llvm.hexagon.A2.vnavgwr",
+  "llvm.hexagon.A2.vraddub",
+  "llvm.hexagon.A2.vraddub.acc",
+  "llvm.hexagon.A2.vrsadub",
+  "llvm.hexagon.A2.vrsadub.acc",
+  "llvm.hexagon.A2.vsubb.map",
+  "llvm.hexagon.A2.vsubh",
+  "llvm.hexagon.A2.vsubhs",
+  "llvm.hexagon.A2.vsubub",
+  "llvm.hexagon.A2.vsububs",
+  "llvm.hexagon.A2.vsubuhs",
+  "llvm.hexagon.A2.vsubw",
+  "llvm.hexagon.A2.vsubws",
+  "llvm.hexagon.A2.xor",
+  "llvm.hexagon.A2.xorp",
+  "llvm.hexagon.A2.zxtb",
+  "llvm.hexagon.A2.zxth",
+  "llvm.hexagon.A4.andn",
+  "llvm.hexagon.A4.andnp",
+  "llvm.hexagon.A4.bitsplit",
+  "llvm.hexagon.A4.bitspliti",
+  "llvm.hexagon.A4.boundscheck",
+  "llvm.hexagon.A4.cmpbeq",
+  "llvm.hexagon.A4.cmpbeqi",
+  "llvm.hexagon.A4.cmpbgt",
+  "llvm.hexagon.A4.cmpbgti",
+  "llvm.hexagon.A4.cmpbgtu",
+  "llvm.hexagon.A4.cmpbgtui",
+  "llvm.hexagon.A4.cmpheq",
+  "llvm.hexagon.A4.cmpheqi",
+  "llvm.hexagon.A4.cmphgt",
+  "llvm.hexagon.A4.cmphgti",
+  "llvm.hexagon.A4.cmphgtu",
+  "llvm.hexagon.A4.cmphgtui",
+  "llvm.hexagon.A4.combineir",
+  "llvm.hexagon.A4.combineri",
+  "llvm.hexagon.A4.cround.ri",
+  "llvm.hexagon.A4.cround.rr",
+  "llvm.hexagon.A4.modwrapu",
+  "llvm.hexagon.A4.orn",
+  "llvm.hexagon.A4.ornp",
+  "llvm.hexagon.A4.rcmpeq",
+  "llvm.hexagon.A4.rcmpeqi",
+  "llvm.hexagon.A4.rcmpneq",
+  "llvm.hexagon.A4.rcmpneqi",
+  "llvm.hexagon.A4.round.ri",
+  "llvm.hexagon.A4.round.ri.sat",
+  "llvm.hexagon.A4.round.rr",
+  "llvm.hexagon.A4.round.rr.sat",
+  "llvm.hexagon.A4.tlbmatch",
+  "llvm.hexagon.A4.vcmpbeq.any",
+  "llvm.hexagon.A4.vcmpbeqi",
+  "llvm.hexagon.A4.vcmpbgt",
+  "llvm.hexagon.A4.vcmpbgti",
+  "llvm.hexagon.A4.vcmpbgtui",
+  "llvm.hexagon.A4.vcmpheqi",
+  "llvm.hexagon.A4.vcmphgti",
+  "llvm.hexagon.A4.vcmphgtui",
+  "llvm.hexagon.A4.vcmpweqi",
+  "llvm.hexagon.A4.vcmpwgti",
+  "llvm.hexagon.A4.vcmpwgtui",
+  "llvm.hexagon.A4.vrmaxh",
+  "llvm.hexagon.A4.vrmaxuh",
+  "llvm.hexagon.A4.vrmaxuw",
+  "llvm.hexagon.A4.vrmaxw",
+  "llvm.hexagon.A4.vrminh",
+  "llvm.hexagon.A4.vrminuh",
+  "llvm.hexagon.A4.vrminuw",
+  "llvm.hexagon.A4.vrminw",
+  "llvm.hexagon.A5.vaddhubs",
+  "llvm.hexagon.A6.vcmpbeq.notany",
+  "llvm.hexagon.A6.vcmpbeq.notany.128B",
+  "llvm.hexagon.C2.all8",
+  "llvm.hexagon.C2.and",
+  "llvm.hexagon.C2.andn",
+  "llvm.hexagon.C2.any8",
+  "llvm.hexagon.C2.bitsclr",
+  "llvm.hexagon.C2.bitsclri",
+  "llvm.hexagon.C2.bitsset",
+  "llvm.hexagon.C2.cmpeq",
+  "llvm.hexagon.C2.cmpeqi",
+  "llvm.hexagon.C2.cmpeqp",
+  "llvm.hexagon.C2.cmpgei",
+  "llvm.hexagon.C2.cmpgeui",
+  "llvm.hexagon.C2.cmpgt",
+  "llvm.hexagon.C2.cmpgti",
+  "llvm.hexagon.C2.cmpgtp",
+  "llvm.hexagon.C2.cmpgtu",
+  "llvm.hexagon.C2.cmpgtui",
+  "llvm.hexagon.C2.cmpgtup",
+  "llvm.hexagon.C2.cmplt",
+  "llvm.hexagon.C2.cmpltu",
+  "llvm.hexagon.C2.mask",
+  "llvm.hexagon.C2.mux",
+  "llvm.hexagon.C2.muxii",
+  "llvm.hexagon.C2.muxir",
+  "llvm.hexagon.C2.muxri",
+  "llvm.hexagon.C2.not",
+  "llvm.hexagon.C2.or",
+  "llvm.hexagon.C2.orn",
+  "llvm.hexagon.C2.pxfer.map",
+  "llvm.hexagon.C2.tfrpr",
+  "llvm.hexagon.C2.tfrrp",
+  "llvm.hexagon.C2.vitpack",
+  "llvm.hexagon.C2.vmux",
+  "llvm.hexagon.C2.xor",
+  "llvm.hexagon.C4.and.and",
+  "llvm.hexagon.C4.and.andn",
+  "llvm.hexagon.C4.and.or",
+  "llvm.hexagon.C4.and.orn",
+  "llvm.hexagon.C4.cmplte",
+  "llvm.hexagon.C4.cmpltei",
+  "llvm.hexagon.C4.cmplteu",
+  "llvm.hexagon.C4.cmplteui",
+  "llvm.hexagon.C4.cmpneq",
+  "llvm.hexagon.C4.cmpneqi",
+  "llvm.hexagon.C4.fastcorner9",
+  "llvm.hexagon.C4.fastcorner9.not",
+  "llvm.hexagon.C4.nbitsclr",
+  "llvm.hexagon.C4.nbitsclri",
+  "llvm.hexagon.C4.nbitsset",
+  "llvm.hexagon.C4.or.and",
+  "llvm.hexagon.C4.or.andn",
+  "llvm.hexagon.C4.or.or",
+  "llvm.hexagon.C4.or.orn",
+  "llvm.hexagon.F2.conv.d2df",
+  "llvm.hexagon.F2.conv.d2sf",
+  "llvm.hexagon.F2.conv.df2d",
+  "llvm.hexagon.F2.conv.df2d.chop",
+  "llvm.hexagon.F2.conv.df2sf",
+  "llvm.hexagon.F2.conv.df2ud",
+  "llvm.hexagon.F2.conv.df2ud.chop",
+  "llvm.hexagon.F2.conv.df2uw",
+  "llvm.hexagon.F2.conv.df2uw.chop",
+  "llvm.hexagon.F2.conv.df2w",
+  "llvm.hexagon.F2.conv.df2w.chop",
+  "llvm.hexagon.F2.conv.sf2d",
+  "llvm.hexagon.F2.conv.sf2d.chop",
+  "llvm.hexagon.F2.conv.sf2df",
+  "llvm.hexagon.F2.conv.sf2ud",
+  "llvm.hexagon.F2.conv.sf2ud.chop",
+  "llvm.hexagon.F2.conv.sf2uw",
+  "llvm.hexagon.F2.conv.sf2uw.chop",
+  "llvm.hexagon.F2.conv.sf2w",
+  "llvm.hexagon.F2.conv.sf2w.chop",
+  "llvm.hexagon.F2.conv.ud2df",
+  "llvm.hexagon.F2.conv.ud2sf",
+  "llvm.hexagon.F2.conv.uw2df",
+  "llvm.hexagon.F2.conv.uw2sf",
+  "llvm.hexagon.F2.conv.w2df",
+  "llvm.hexagon.F2.conv.w2sf",
+  "llvm.hexagon.F2.dfclass",
+  "llvm.hexagon.F2.dfcmpeq",
+  "llvm.hexagon.F2.dfcmpge",
+  "llvm.hexagon.F2.dfcmpgt",
+  "llvm.hexagon.F2.dfcmpuo",
+  "llvm.hexagon.F2.dfimm.n",
+  "llvm.hexagon.F2.dfimm.p",
+  "llvm.hexagon.F2.sfadd",
+  "llvm.hexagon.F2.sfclass",
+  "llvm.hexagon.F2.sfcmpeq",
+  "llvm.hexagon.F2.sfcmpge",
+  "llvm.hexagon.F2.sfcmpgt",
+  "llvm.hexagon.F2.sfcmpuo",
+  "llvm.hexagon.F2.sffixupd",
+  "llvm.hexagon.F2.sffixupn",
+  "llvm.hexagon.F2.sffixupr",
+  "llvm.hexagon.F2.sffma",
+  "llvm.hexagon.F2.sffma.lib",
+  "llvm.hexagon.F2.sffma.sc",
+  "llvm.hexagon.F2.sffms",
+  "llvm.hexagon.F2.sffms.lib",
+  "llvm.hexagon.F2.sfimm.n",
+  "llvm.hexagon.F2.sfimm.p",
+  "llvm.hexagon.F2.sfmax",
+  "llvm.hexagon.F2.sfmin",
+  "llvm.hexagon.F2.sfmpy",
+  "llvm.hexagon.F2.sfsub",
+  "llvm.hexagon.L2.loadrb.pbr",
+  "llvm.hexagon.L2.loadrb.pci",
+  "llvm.hexagon.L2.loadrb.pcr",
+  "llvm.hexagon.L2.loadrd.pbr",
+  "llvm.hexagon.L2.loadrd.pci",
+  "llvm.hexagon.L2.loadrd.pcr",
+  "llvm.hexagon.L2.loadrh.pbr",
+  "llvm.hexagon.L2.loadrh.pci",
+  "llvm.hexagon.L2.loadrh.pcr",
+  "llvm.hexagon.L2.loadri.pbr",
+  "llvm.hexagon.L2.loadri.pci",
+  "llvm.hexagon.L2.loadri.pcr",
+  "llvm.hexagon.L2.loadrub.pbr",
+  "llvm.hexagon.L2.loadrub.pci",
+  "llvm.hexagon.L2.loadrub.pcr",
+  "llvm.hexagon.L2.loadruh.pbr",
+  "llvm.hexagon.L2.loadruh.pci",
+  "llvm.hexagon.L2.loadruh.pcr",
+  "llvm.hexagon.L2.loadw.locked",
+  "llvm.hexagon.L4.loadd.locked",
+  "llvm.hexagon.M2.acci",
+  "llvm.hexagon.M2.accii",
+  "llvm.hexagon.M2.cmaci.s0",
+  "llvm.hexagon.M2.cmacr.s0",
+  "llvm.hexagon.M2.cmacs.s0",
+  "llvm.hexagon.M2.cmacs.s1",
+  "llvm.hexagon.M2.cmacsc.s0",
+  "llvm.hexagon.M2.cmacsc.s1",
+  "llvm.hexagon.M2.cmpyi.s0",
+  "llvm.hexagon.M2.cmpyr.s0",
+  "llvm.hexagon.M2.cmpyrs.s0",
+  "llvm.hexagon.M2.cmpyrs.s1",
+  "llvm.hexagon.M2.cmpyrsc.s0",
+  "llvm.hexagon.M2.cmpyrsc.s1",
+  "llvm.hexagon.M2.cmpys.s0",
+  "llvm.hexagon.M2.cmpys.s1",
+  "llvm.hexagon.M2.cmpysc.s0",
+  "llvm.hexagon.M2.cmpysc.s1",
+  "llvm.hexagon.M2.cnacs.s0",
+  "llvm.hexagon.M2.cnacs.s1",
+  "llvm.hexagon.M2.cnacsc.s0",
+  "llvm.hexagon.M2.cnacsc.s1",
+  "llvm.hexagon.M2.dpmpyss.acc.s0",
+  "llvm.hexagon.M2.dpmpyss.nac.s0",
+  "llvm.hexagon.M2.dpmpyss.rnd.s0",
+  "llvm.hexagon.M2.dpmpyss.s0",
+  "llvm.hexagon.M2.dpmpyuu.acc.s0",
+  "llvm.hexagon.M2.dpmpyuu.nac.s0",
+  "llvm.hexagon.M2.dpmpyuu.s0",
+  "llvm.hexagon.M2.hmmpyh.rs1",
+  "llvm.hexagon.M2.hmmpyh.s1",
+  "llvm.hexagon.M2.hmmpyl.rs1",
+  "llvm.hexagon.M2.hmmpyl.s1",
+  "llvm.hexagon.M2.maci",
+  "llvm.hexagon.M2.macsin",
+  "llvm.hexagon.M2.macsip",
+  "llvm.hexagon.M2.mmachs.rs0",
+  "llvm.hexagon.M2.mmachs.rs1",
+  "llvm.hexagon.M2.mmachs.s0",
+  "llvm.hexagon.M2.mmachs.s1",
+  "llvm.hexagon.M2.mmacls.rs0",
+  "llvm.hexagon.M2.mmacls.rs1",
+  "llvm.hexagon.M2.mmacls.s0",
+  "llvm.hexagon.M2.mmacls.s1",
+  "llvm.hexagon.M2.mmacuhs.rs0",
+  "llvm.hexagon.M2.mmacuhs.rs1",
+  "llvm.hexagon.M2.mmacuhs.s0",
+  "llvm.hexagon.M2.mmacuhs.s1",
+  "llvm.hexagon.M2.mmaculs.rs0",
+  "llvm.hexagon.M2.mmaculs.rs1",
+  "llvm.hexagon.M2.mmaculs.s0",
+  "llvm.hexagon.M2.mmaculs.s1",
+  "llvm.hexagon.M2.mmpyh.rs0",
+  "llvm.hexagon.M2.mmpyh.rs1",
+  "llvm.hexagon.M2.mmpyh.s0",
+  "llvm.hexagon.M2.mmpyh.s1",
+  "llvm.hexagon.M2.mmpyl.rs0",
+  "llvm.hexagon.M2.mmpyl.rs1",
+  "llvm.hexagon.M2.mmpyl.s0",
+  "llvm.hexagon.M2.mmpyl.s1",
+  "llvm.hexagon.M2.mmpyuh.rs0",
+  "llvm.hexagon.M2.mmpyuh.rs1",
+  "llvm.hexagon.M2.mmpyuh.s0",
+  "llvm.hexagon.M2.mmpyuh.s1",
+  "llvm.hexagon.M2.mmpyul.rs0",
+  "llvm.hexagon.M2.mmpyul.rs1",
+  "llvm.hexagon.M2.mmpyul.s0",
+  "llvm.hexagon.M2.mmpyul.s1",
+  "llvm.hexagon.M2.mpy.acc.hh.s0",
+  "llvm.hexagon.M2.mpy.acc.hh.s1",
+  "llvm.hexagon.M2.mpy.acc.hl.s0",
+  "llvm.hexagon.M2.mpy.acc.hl.s1",
+  "llvm.hexagon.M2.mpy.acc.lh.s0",
+  "llvm.hexagon.M2.mpy.acc.lh.s1",
+  "llvm.hexagon.M2.mpy.acc.ll.s0",
+  "llvm.hexagon.M2.mpy.acc.ll.s1",
+  "llvm.hexagon.M2.mpy.acc.sat.hh.s0",
+  "llvm.hexagon.M2.mpy.acc.sat.hh.s1",
+  "llvm.hexagon.M2.mpy.acc.sat.hl.s0",
+  "llvm.hexagon.M2.mpy.acc.sat.hl.s1",
+  "llvm.hexagon.M2.mpy.acc.sat.lh.s0",
+  "llvm.hexagon.M2.mpy.acc.sat.lh.s1",
+  "llvm.hexagon.M2.mpy.acc.sat.ll.s0",
+  "llvm.hexagon.M2.mpy.acc.sat.ll.s1",
+  "llvm.hexagon.M2.mpy.hh.s0",
+  "llvm.hexagon.M2.mpy.hh.s1",
+  "llvm.hexagon.M2.mpy.hl.s0",
+  "llvm.hexagon.M2.mpy.hl.s1",
+  "llvm.hexagon.M2.mpy.lh.s0",
+  "llvm.hexagon.M2.mpy.lh.s1",
+  "llvm.hexagon.M2.mpy.ll.s0",
+  "llvm.hexagon.M2.mpy.ll.s1",
+  "llvm.hexagon.M2.mpy.nac.hh.s0",
+  "llvm.hexagon.M2.mpy.nac.hh.s1",
+  "llvm.hexagon.M2.mpy.nac.hl.s0",
+  "llvm.hexagon.M2.mpy.nac.hl.s1",
+  "llvm.hexagon.M2.mpy.nac.lh.s0",
+  "llvm.hexagon.M2.mpy.nac.lh.s1",
+  "llvm.hexagon.M2.mpy.nac.ll.s0",
+  "llvm.hexagon.M2.mpy.nac.ll.s1",
+  "llvm.hexagon.M2.mpy.nac.sat.hh.s0",
+  "llvm.hexagon.M2.mpy.nac.sat.hh.s1",
+  "llvm.hexagon.M2.mpy.nac.sat.hl.s0",
+  "llvm.hexagon.M2.mpy.nac.sat.hl.s1",
+  "llvm.hexagon.M2.mpy.nac.sat.lh.s0",
+  "llvm.hexagon.M2.mpy.nac.sat.lh.s1",
+  "llvm.hexagon.M2.mpy.nac.sat.ll.s0",
+  "llvm.hexagon.M2.mpy.nac.sat.ll.s1",
+  "llvm.hexagon.M2.mpy.rnd.hh.s0",
+  "llvm.hexagon.M2.mpy.rnd.hh.s1",
+  "llvm.hexagon.M2.mpy.rnd.hl.s0",
+  "llvm.hexagon.M2.mpy.rnd.hl.s1",
+  "llvm.hexagon.M2.mpy.rnd.lh.s0",
+  "llvm.hexagon.M2.mpy.rnd.lh.s1",
+  "llvm.hexagon.M2.mpy.rnd.ll.s0",
+  "llvm.hexagon.M2.mpy.rnd.ll.s1",
+  "llvm.hexagon.M2.mpy.sat.hh.s0",
+  "llvm.hexagon.M2.mpy.sat.hh.s1",
+  "llvm.hexagon.M2.mpy.sat.hl.s0",
+  "llvm.hexagon.M2.mpy.sat.hl.s1",
+  "llvm.hexagon.M2.mpy.sat.lh.s0",
+  "llvm.hexagon.M2.mpy.sat.lh.s1",
+  "llvm.hexagon.M2.mpy.sat.ll.s0",
+  "llvm.hexagon.M2.mpy.sat.ll.s1",
+  "llvm.hexagon.M2.mpy.sat.rnd.hh.s0",
+  "llvm.hexagon.M2.mpy.sat.rnd.hh.s1",
+  "llvm.hexagon.M2.mpy.sat.rnd.hl.s0",
+  "llvm.hexagon.M2.mpy.sat.rnd.hl.s1",
+  "llvm.hexagon.M2.mpy.sat.rnd.lh.s0",
+  "llvm.hexagon.M2.mpy.sat.rnd.lh.s1",
+  "llvm.hexagon.M2.mpy.sat.rnd.ll.s0",
+  "llvm.hexagon.M2.mpy.sat.rnd.ll.s1",
+  "llvm.hexagon.M2.mpy.up",
+  "llvm.hexagon.M2.mpy.up.s1",
+  "llvm.hexagon.M2.mpy.up.s1.sat",
+  "llvm.hexagon.M2.mpyd.acc.hh.s0",
+  "llvm.hexagon.M2.mpyd.acc.hh.s1",
+  "llvm.hexagon.M2.mpyd.acc.hl.s0",
+  "llvm.hexagon.M2.mpyd.acc.hl.s1",
+  "llvm.hexagon.M2.mpyd.acc.lh.s0",
+  "llvm.hexagon.M2.mpyd.acc.lh.s1",
+  "llvm.hexagon.M2.mpyd.acc.ll.s0",
+  "llvm.hexagon.M2.mpyd.acc.ll.s1",
+  "llvm.hexagon.M2.mpyd.hh.s0",
+  "llvm.hexagon.M2.mpyd.hh.s1",
+  "llvm.hexagon.M2.mpyd.hl.s0",
+  "llvm.hexagon.M2.mpyd.hl.s1",
+  "llvm.hexagon.M2.mpyd.lh.s0",
+  "llvm.hexagon.M2.mpyd.lh.s1",
+  "llvm.hexagon.M2.mpyd.ll.s0",
+  "llvm.hexagon.M2.mpyd.ll.s1",
+  "llvm.hexagon.M2.mpyd.nac.hh.s0",
+  "llvm.hexagon.M2.mpyd.nac.hh.s1",
+  "llvm.hexagon.M2.mpyd.nac.hl.s0",
+  "llvm.hexagon.M2.mpyd.nac.hl.s1",
+  "llvm.hexagon.M2.mpyd.nac.lh.s0",
+  "llvm.hexagon.M2.mpyd.nac.lh.s1",
+  "llvm.hexagon.M2.mpyd.nac.ll.s0",
+  "llvm.hexagon.M2.mpyd.nac.ll.s1",
+  "llvm.hexagon.M2.mpyd.rnd.hh.s0",
+  "llvm.hexagon.M2.mpyd.rnd.hh.s1",
+  "llvm.hexagon.M2.mpyd.rnd.hl.s0",
+  "llvm.hexagon.M2.mpyd.rnd.hl.s1",
+  "llvm.hexagon.M2.mpyd.rnd.lh.s0",
+  "llvm.hexagon.M2.mpyd.rnd.lh.s1",
+  "llvm.hexagon.M2.mpyd.rnd.ll.s0",
+  "llvm.hexagon.M2.mpyd.rnd.ll.s1",
+  "llvm.hexagon.M2.mpyi",
+  "llvm.hexagon.M2.mpysmi",
+  "llvm.hexagon.M2.mpysu.up",
+  "llvm.hexagon.M2.mpyu.acc.hh.s0",
+  "llvm.hexagon.M2.mpyu.acc.hh.s1",
+  "llvm.hexagon.M2.mpyu.acc.hl.s0",
+  "llvm.hexagon.M2.mpyu.acc.hl.s1",
+  "llvm.hexagon.M2.mpyu.acc.lh.s0",
+  "llvm.hexagon.M2.mpyu.acc.lh.s1",
+  "llvm.hexagon.M2.mpyu.acc.ll.s0",
+  "llvm.hexagon.M2.mpyu.acc.ll.s1",
+  "llvm.hexagon.M2.mpyu.hh.s0",
+  "llvm.hexagon.M2.mpyu.hh.s1",
+  "llvm.hexagon.M2.mpyu.hl.s0",
+  "llvm.hexagon.M2.mpyu.hl.s1",
+  "llvm.hexagon.M2.mpyu.lh.s0",
+  "llvm.hexagon.M2.mpyu.lh.s1",
+  "llvm.hexagon.M2.mpyu.ll.s0",
+  "llvm.hexagon.M2.mpyu.ll.s1",
+  "llvm.hexagon.M2.mpyu.nac.hh.s0",
+  "llvm.hexagon.M2.mpyu.nac.hh.s1",
+  "llvm.hexagon.M2.mpyu.nac.hl.s0",
+  "llvm.hexagon.M2.mpyu.nac.hl.s1",
+  "llvm.hexagon.M2.mpyu.nac.lh.s0",
+  "llvm.hexagon.M2.mpyu.nac.lh.s1",
+  "llvm.hexagon.M2.mpyu.nac.ll.s0",
+  "llvm.hexagon.M2.mpyu.nac.ll.s1",
+  "llvm.hexagon.M2.mpyu.up",
+  "llvm.hexagon.M2.mpyud.acc.hh.s0",
+  "llvm.hexagon.M2.mpyud.acc.hh.s1",
+  "llvm.hexagon.M2.mpyud.acc.hl.s0",
+  "llvm.hexagon.M2.mpyud.acc.hl.s1",
+  "llvm.hexagon.M2.mpyud.acc.lh.s0",
+  "llvm.hexagon.M2.mpyud.acc.lh.s1",
+  "llvm.hexagon.M2.mpyud.acc.ll.s0",
+  "llvm.hexagon.M2.mpyud.acc.ll.s1",
+  "llvm.hexagon.M2.mpyud.hh.s0",
+  "llvm.hexagon.M2.mpyud.hh.s1",
+  "llvm.hexagon.M2.mpyud.hl.s0",
+  "llvm.hexagon.M2.mpyud.hl.s1",
+  "llvm.hexagon.M2.mpyud.lh.s0",
+  "llvm.hexagon.M2.mpyud.lh.s1",
+  "llvm.hexagon.M2.mpyud.ll.s0",
+  "llvm.hexagon.M2.mpyud.ll.s1",
+  "llvm.hexagon.M2.mpyud.nac.hh.s0",
+  "llvm.hexagon.M2.mpyud.nac.hh.s1",
+  "llvm.hexagon.M2.mpyud.nac.hl.s0",
+  "llvm.hexagon.M2.mpyud.nac.hl.s1",
+  "llvm.hexagon.M2.mpyud.nac.lh.s0",
+  "llvm.hexagon.M2.mpyud.nac.lh.s1",
+  "llvm.hexagon.M2.mpyud.nac.ll.s0",
+  "llvm.hexagon.M2.mpyud.nac.ll.s1",
+  "llvm.hexagon.M2.mpyui",
+  "llvm.hexagon.M2.nacci",
+  "llvm.hexagon.M2.naccii",
+  "llvm.hexagon.M2.subacc",
+  "llvm.hexagon.M2.vabsdiffh",
+  "llvm.hexagon.M2.vabsdiffw",
+  "llvm.hexagon.M2.vcmac.s0.sat.i",
+  "llvm.hexagon.M2.vcmac.s0.sat.r",
+  "llvm.hexagon.M2.vcmpy.s0.sat.i",
+  "llvm.hexagon.M2.vcmpy.s0.sat.r",
+  "llvm.hexagon.M2.vcmpy.s1.sat.i",
+  "llvm.hexagon.M2.vcmpy.s1.sat.r",
+  "llvm.hexagon.M2.vdmacs.s0",
+  "llvm.hexagon.M2.vdmacs.s1",
+  "llvm.hexagon.M2.vdmpyrs.s0",
+  "llvm.hexagon.M2.vdmpyrs.s1",
+  "llvm.hexagon.M2.vdmpys.s0",
+  "llvm.hexagon.M2.vdmpys.s1",
+  "llvm.hexagon.M2.vmac2",
+  "llvm.hexagon.M2.vmac2es",
+  "llvm.hexagon.M2.vmac2es.s0",
+  "llvm.hexagon.M2.vmac2es.s1",
+  "llvm.hexagon.M2.vmac2s.s0",
+  "llvm.hexagon.M2.vmac2s.s1",
+  "llvm.hexagon.M2.vmac2su.s0",
+  "llvm.hexagon.M2.vmac2su.s1",
+  "llvm.hexagon.M2.vmpy2es.s0",
+  "llvm.hexagon.M2.vmpy2es.s1",
+  "llvm.hexagon.M2.vmpy2s.s0",
+  "llvm.hexagon.M2.vmpy2s.s0pack",
+  "llvm.hexagon.M2.vmpy2s.s1",
+  "llvm.hexagon.M2.vmpy2s.s1pack",
+  "llvm.hexagon.M2.vmpy2su.s0",
+  "llvm.hexagon.M2.vmpy2su.s1",
+  "llvm.hexagon.M2.vraddh",
+  "llvm.hexagon.M2.vradduh",
+  "llvm.hexagon.M2.vrcmaci.s0",
+  "llvm.hexagon.M2.vrcmaci.s0c",
+  "llvm.hexagon.M2.vrcmacr.s0",
+  "llvm.hexagon.M2.vrcmacr.s0c",
+  "llvm.hexagon.M2.vrcmpyi.s0",
+  "llvm.hexagon.M2.vrcmpyi.s0c",
+  "llvm.hexagon.M2.vrcmpyr.s0",
+  "llvm.hexagon.M2.vrcmpyr.s0c",
+  "llvm.hexagon.M2.vrcmpys.acc.s1",
+  "llvm.hexagon.M2.vrcmpys.s1",
+  "llvm.hexagon.M2.vrcmpys.s1rp",
+  "llvm.hexagon.M2.vrmac.s0",
+  "llvm.hexagon.M2.vrmpy.s0",
+  "llvm.hexagon.M2.xor.xacc",
+  "llvm.hexagon.M4.and.and",
+  "llvm.hexagon.M4.and.andn",
+  "llvm.hexagon.M4.and.or",
+  "llvm.hexagon.M4.and.xor",
+  "llvm.hexagon.M4.cmpyi.wh",
+  "llvm.hexagon.M4.cmpyi.whc",
+  "llvm.hexagon.M4.cmpyr.wh",
+  "llvm.hexagon.M4.cmpyr.whc",
+  "llvm.hexagon.M4.mac.up.s1.sat",
+  "llvm.hexagon.M4.mpyri.addi",
+  "llvm.hexagon.M4.mpyri.addr",
+  "llvm.hexagon.M4.mpyri.addr.u2",
+  "llvm.hexagon.M4.mpyrr.addi",
+  "llvm.hexagon.M4.mpyrr.addr",
+  "llvm.hexagon.M4.nac.up.s1.sat",
+  "llvm.hexagon.M4.or.and",
+  "llvm.hexagon.M4.or.andn",
+  "llvm.hexagon.M4.or.or",
+  "llvm.hexagon.M4.or.xor",
+  "llvm.hexagon.M4.pmpyw",
+  "llvm.hexagon.M4.pmpyw.acc",
+  "llvm.hexagon.M4.vpmpyh",
+  "llvm.hexagon.M4.vpmpyh.acc",
+  "llvm.hexagon.M4.vrmpyeh.acc.s0",
+  "llvm.hexagon.M4.vrmpyeh.acc.s1",
+  "llvm.hexagon.M4.vrmpyeh.s0",
+  "llvm.hexagon.M4.vrmpyeh.s1",
+  "llvm.hexagon.M4.vrmpyoh.acc.s0",
+  "llvm.hexagon.M4.vrmpyoh.acc.s1",
+  "llvm.hexagon.M4.vrmpyoh.s0",
+  "llvm.hexagon.M4.vrmpyoh.s1",
+  "llvm.hexagon.M4.xor.and",
+  "llvm.hexagon.M4.xor.andn",
+  "llvm.hexagon.M4.xor.or",
+  "llvm.hexagon.M4.xor.xacc",
+  "llvm.hexagon.M5.vdmacbsu",
+  "llvm.hexagon.M5.vdmpybsu",
+  "llvm.hexagon.M5.vmacbsu",
+  "llvm.hexagon.M5.vmacbuu",
+  "llvm.hexagon.M5.vmpybsu",
+  "llvm.hexagon.M5.vmpybuu",
+  "llvm.hexagon.M5.vrmacbsu",
+  "llvm.hexagon.M5.vrmacbuu",
+  "llvm.hexagon.M5.vrmpybsu",
+  "llvm.hexagon.M5.vrmpybuu",
+  "llvm.hexagon.M6.vabsdiffb",
+  "llvm.hexagon.M6.vabsdiffub",
+  "llvm.hexagon.S2.addasl.rrri",
+  "llvm.hexagon.S2.asl.i.p",
+  "llvm.hexagon.S2.asl.i.p.acc",
+  "llvm.hexagon.S2.asl.i.p.and",
+  "llvm.hexagon.S2.asl.i.p.nac",
+  "llvm.hexagon.S2.asl.i.p.or",
+  "llvm.hexagon.S2.asl.i.p.xacc",
+  "llvm.hexagon.S2.asl.i.r",
+  "llvm.hexagon.S2.asl.i.r.acc",
+  "llvm.hexagon.S2.asl.i.r.and",
+  "llvm.hexagon.S2.asl.i.r.nac",
+  "llvm.hexagon.S2.asl.i.r.or",
+  "llvm.hexagon.S2.asl.i.r.sat",
+  "llvm.hexagon.S2.asl.i.r.xacc",
+  "llvm.hexagon.S2.asl.i.vh",
+  "llvm.hexagon.S2.asl.i.vw",
+  "llvm.hexagon.S2.asl.r.p",
+  "llvm.hexagon.S2.asl.r.p.acc",
+  "llvm.hexagon.S2.asl.r.p.and",
+  "llvm.hexagon.S2.asl.r.p.nac",
+  "llvm.hexagon.S2.asl.r.p.or",
+  "llvm.hexagon.S2.asl.r.p.xor",
+  "llvm.hexagon.S2.asl.r.r",
+  "llvm.hexagon.S2.asl.r.r.acc",
+  "llvm.hexagon.S2.asl.r.r.and",
+  "llvm.hexagon.S2.asl.r.r.nac",
+  "llvm.hexagon.S2.asl.r.r.or",
+  "llvm.hexagon.S2.asl.r.r.sat",
+  "llvm.hexagon.S2.asl.r.vh",
+  "llvm.hexagon.S2.asl.r.vw",
+  "llvm.hexagon.S2.asr.i.p",
+  "llvm.hexagon.S2.asr.i.p.acc",
+  "llvm.hexagon.S2.asr.i.p.and",
+  "llvm.hexagon.S2.asr.i.p.nac",
+  "llvm.hexagon.S2.asr.i.p.or",
+  "llvm.hexagon.S2.asr.i.p.rnd",
+  "llvm.hexagon.S2.asr.i.p.rnd.goodsyntax",
+  "llvm.hexagon.S2.asr.i.r",
+  "llvm.hexagon.S2.asr.i.r.acc",
+  "llvm.hexagon.S2.asr.i.r.and",
+  "llvm.hexagon.S2.asr.i.r.nac",
+  "llvm.hexagon.S2.asr.i.r.or",
+  "llvm.hexagon.S2.asr.i.r.rnd",
+  "llvm.hexagon.S2.asr.i.r.rnd.goodsyntax",
+  "llvm.hexagon.S2.asr.i.svw.trun",
+  "llvm.hexagon.S2.asr.i.vh",
+  "llvm.hexagon.S2.asr.i.vw",
+  "llvm.hexagon.S2.asr.r.p",
+  "llvm.hexagon.S2.asr.r.p.acc",
+  "llvm.hexagon.S2.asr.r.p.and",
+  "llvm.hexagon.S2.asr.r.p.nac",
+  "llvm.hexagon.S2.asr.r.p.or",
+  "llvm.hexagon.S2.asr.r.p.xor",
+  "llvm.hexagon.S2.asr.r.r",
+  "llvm.hexagon.S2.asr.r.r.acc",
+  "llvm.hexagon.S2.asr.r.r.and",
+  "llvm.hexagon.S2.asr.r.r.nac",
+  "llvm.hexagon.S2.asr.r.r.or",
+  "llvm.hexagon.S2.asr.r.r.sat",
+  "llvm.hexagon.S2.asr.r.svw.trun",
+  "llvm.hexagon.S2.asr.r.vh",
+  "llvm.hexagon.S2.asr.r.vw",
+  "llvm.hexagon.S2.brev",
+  "llvm.hexagon.S2.brevp",
+  "llvm.hexagon.S2.cabacencbin",
+  "llvm.hexagon.S2.cl0",
+  "llvm.hexagon.S2.cl0p",
+  "llvm.hexagon.S2.cl1",
+  "llvm.hexagon.S2.cl1p",
+  "llvm.hexagon.S2.clb",
+  "llvm.hexagon.S2.clbnorm",
+  "llvm.hexagon.S2.clbp",
+  "llvm.hexagon.S2.clrbit.i",
+  "llvm.hexagon.S2.clrbit.r",
+  "llvm.hexagon.S2.ct0",
+  "llvm.hexagon.S2.ct0p",
+  "llvm.hexagon.S2.ct1",
+  "llvm.hexagon.S2.ct1p",
+  "llvm.hexagon.S2.deinterleave",
+  "llvm.hexagon.S2.extractu",
+  "llvm.hexagon.S2.extractu.rp",
+  "llvm.hexagon.S2.extractup",
+  "llvm.hexagon.S2.extractup.rp",
+  "llvm.hexagon.S2.insert",
+  "llvm.hexagon.S2.insert.rp",
+  "llvm.hexagon.S2.insertp",
+  "llvm.hexagon.S2.insertp.rp",
+  "llvm.hexagon.S2.interleave",
+  "llvm.hexagon.S2.lfsp",
+  "llvm.hexagon.S2.lsl.r.p",
+  "llvm.hexagon.S2.lsl.r.p.acc",
+  "llvm.hexagon.S2.lsl.r.p.and",
+  "llvm.hexagon.S2.lsl.r.p.nac",
+  "llvm.hexagon.S2.lsl.r.p.or",
+  "llvm.hexagon.S2.lsl.r.p.xor",
+  "llvm.hexagon.S2.lsl.r.r",
+  "llvm.hexagon.S2.lsl.r.r.acc",
+  "llvm.hexagon.S2.lsl.r.r.and",
+  "llvm.hexagon.S2.lsl.r.r.nac",
+  "llvm.hexagon.S2.lsl.r.r.or",
+  "llvm.hexagon.S2.lsl.r.vh",
+  "llvm.hexagon.S2.lsl.r.vw",
+  "llvm.hexagon.S2.lsr.i.p",
+  "llvm.hexagon.S2.lsr.i.p.acc",
+  "llvm.hexagon.S2.lsr.i.p.and",
+  "llvm.hexagon.S2.lsr.i.p.nac",
+  "llvm.hexagon.S2.lsr.i.p.or",
+  "llvm.hexagon.S2.lsr.i.p.xacc",
+  "llvm.hexagon.S2.lsr.i.r",
+  "llvm.hexagon.S2.lsr.i.r.acc",
+  "llvm.hexagon.S2.lsr.i.r.and",
+  "llvm.hexagon.S2.lsr.i.r.nac",
+  "llvm.hexagon.S2.lsr.i.r.or",
+  "llvm.hexagon.S2.lsr.i.r.xacc",
+  "llvm.hexagon.S2.lsr.i.vh",
+  "llvm.hexagon.S2.lsr.i.vw",
+  "llvm.hexagon.S2.lsr.r.p",
+  "llvm.hexagon.S2.lsr.r.p.acc",
+  "llvm.hexagon.S2.lsr.r.p.and",
+  "llvm.hexagon.S2.lsr.r.p.nac",
+  "llvm.hexagon.S2.lsr.r.p.or",
+  "llvm.hexagon.S2.lsr.r.p.xor",
+  "llvm.hexagon.S2.lsr.r.r",
+  "llvm.hexagon.S2.lsr.r.r.acc",
+  "llvm.hexagon.S2.lsr.r.r.and",
+  "llvm.hexagon.S2.lsr.r.r.nac",
+  "llvm.hexagon.S2.lsr.r.r.or",
+  "llvm.hexagon.S2.lsr.r.vh",
+  "llvm.hexagon.S2.lsr.r.vw",
+  "llvm.hexagon.S2.packhl",
+  "llvm.hexagon.S2.parityp",
+  "llvm.hexagon.S2.setbit.i",
+  "llvm.hexagon.S2.setbit.r",
+  "llvm.hexagon.S2.shuffeb",
+  "llvm.hexagon.S2.shuffeh",
+  "llvm.hexagon.S2.shuffob",
+  "llvm.hexagon.S2.shuffoh",
+  "llvm.hexagon.S2.storerb.pbr",
+  "llvm.hexagon.S2.storerb.pci",
+  "llvm.hexagon.S2.storerb.pcr",
+  "llvm.hexagon.S2.storerd.pbr",
+  "llvm.hexagon.S2.storerd.pci",
+  "llvm.hexagon.S2.storerd.pcr",
+  "llvm.hexagon.S2.storerf.pbr",
+  "llvm.hexagon.S2.storerf.pci",
+  "llvm.hexagon.S2.storerf.pcr",
+  "llvm.hexagon.S2.storerh.pbr",
+  "llvm.hexagon.S2.storerh.pci",
+  "llvm.hexagon.S2.storerh.pcr",
+  "llvm.hexagon.S2.storeri.pbr",
+  "llvm.hexagon.S2.storeri.pci",
+  "llvm.hexagon.S2.storeri.pcr",
+  "llvm.hexagon.S2.storew.locked",
+  "llvm.hexagon.S2.svsathb",
+  "llvm.hexagon.S2.svsathub",
+  "llvm.hexagon.S2.tableidxb.goodsyntax",
+  "llvm.hexagon.S2.tableidxd.goodsyntax",
+  "llvm.hexagon.S2.tableidxh.goodsyntax",
+  "llvm.hexagon.S2.tableidxw.goodsyntax",
+  "llvm.hexagon.S2.togglebit.i",
+  "llvm.hexagon.S2.togglebit.r",
+  "llvm.hexagon.S2.tstbit.i",
+  "llvm.hexagon.S2.tstbit.r",
+  "llvm.hexagon.S2.valignib",
+  "llvm.hexagon.S2.valignrb",
+  "llvm.hexagon.S2.vcnegh",
+  "llvm.hexagon.S2.vcrotate",
+  "llvm.hexagon.S2.vrcnegh",
+  "llvm.hexagon.S2.vrndpackwh",
+  "llvm.hexagon.S2.vrndpackwhs",
+  "llvm.hexagon.S2.vsathb",
+  "llvm.hexagon.S2.vsathb.nopack",
+  "llvm.hexagon.S2.vsathub",
+  "llvm.hexagon.S2.vsathub.nopack",
+  "llvm.hexagon.S2.vsatwh",
+  "llvm.hexagon.S2.vsatwh.nopack",
+  "llvm.hexagon.S2.vsatwuh",
+  "llvm.hexagon.S2.vsatwuh.nopack",
+  "llvm.hexagon.S2.vsplatrb",
+  "llvm.hexagon.S2.vsplatrh",
+  "llvm.hexagon.S2.vspliceib",
+  "llvm.hexagon.S2.vsplicerb",
+  "llvm.hexagon.S2.vsxtbh",
+  "llvm.hexagon.S2.vsxthw",
+  "llvm.hexagon.S2.vtrunehb",
+  "llvm.hexagon.S2.vtrunewh",
+  "llvm.hexagon.S2.vtrunohb",
+  "llvm.hexagon.S2.vtrunowh",
+  "llvm.hexagon.S2.vzxtbh",
+  "llvm.hexagon.S2.vzxthw",
+  "llvm.hexagon.S4.addaddi",
+  "llvm.hexagon.S4.addi.asl.ri",
+  "llvm.hexagon.S4.addi.lsr.ri",
+  "llvm.hexagon.S4.andi.asl.ri",
+  "llvm.hexagon.S4.andi.lsr.ri",
+  "llvm.hexagon.S4.clbaddi",
+  "llvm.hexagon.S4.clbpaddi",
+  "llvm.hexagon.S4.clbpnorm",
+  "llvm.hexagon.S4.extract",
+  "llvm.hexagon.S4.extract.rp",
+  "llvm.hexagon.S4.extractp",
+  "llvm.hexagon.S4.extractp.rp",
+  "llvm.hexagon.S4.lsli",
+  "llvm.hexagon.S4.ntstbit.i",
+  "llvm.hexagon.S4.ntstbit.r",
+  "llvm.hexagon.S4.or.andi",
+  "llvm.hexagon.S4.or.andix",
+  "llvm.hexagon.S4.or.ori",
+  "llvm.hexagon.S4.ori.asl.ri",
+  "llvm.hexagon.S4.ori.lsr.ri",
+  "llvm.hexagon.S4.parity",
+  "llvm.hexagon.S4.stored.locked",
+  "llvm.hexagon.S4.subaddi",
+  "llvm.hexagon.S4.subi.asl.ri",
+  "llvm.hexagon.S4.subi.lsr.ri",
+  "llvm.hexagon.S4.vrcrotate",
+  "llvm.hexagon.S4.vrcrotate.acc",
+  "llvm.hexagon.S4.vxaddsubh",
+  "llvm.hexagon.S4.vxaddsubhr",
+  "llvm.hexagon.S4.vxaddsubw",
+  "llvm.hexagon.S4.vxsubaddh",
+  "llvm.hexagon.S4.vxsubaddhr",
+  "llvm.hexagon.S4.vxsubaddw",
+  "llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax",
+  "llvm.hexagon.S5.asrhub.sat",
+  "llvm.hexagon.S5.popcountp",
+  "llvm.hexagon.S5.vasrhrnd.goodsyntax",
+  "llvm.hexagon.S6.rol.i.p",
+  "llvm.hexagon.S6.rol.i.p.acc",
+  "llvm.hexagon.S6.rol.i.p.and",
+  "llvm.hexagon.S6.rol.i.p.nac",
+  "llvm.hexagon.S6.rol.i.p.or",
+  "llvm.hexagon.S6.rol.i.p.xacc",
+  "llvm.hexagon.S6.rol.i.r",
+  "llvm.hexagon.S6.rol.i.r.acc",
+  "llvm.hexagon.S6.rol.i.r.and",
+  "llvm.hexagon.S6.rol.i.r.nac",
+  "llvm.hexagon.S6.rol.i.r.or",
+  "llvm.hexagon.S6.rol.i.r.xacc",
+  "llvm.hexagon.S6.vsplatrbp",
+  "llvm.hexagon.S6.vtrunehb.ppp",
+  "llvm.hexagon.S6.vtrunohb.ppp",
+  "llvm.hexagon.V6.extractw",
+  "llvm.hexagon.V6.extractw.128B",
+  "llvm.hexagon.V6.hi",
+  "llvm.hexagon.V6.hi.128B",
+  "llvm.hexagon.V6.lo",
+  "llvm.hexagon.V6.lo.128B",
+  "llvm.hexagon.V6.lvsplatb",
+  "llvm.hexagon.V6.lvsplatb.128B",
+  "llvm.hexagon.V6.lvsplath",
+  "llvm.hexagon.V6.lvsplath.128B",
+  "llvm.hexagon.V6.lvsplatw",
+  "llvm.hexagon.V6.lvsplatw.128B",
+  "llvm.hexagon.V6.pred.and",
+  "llvm.hexagon.V6.pred.and.128B",
+  "llvm.hexagon.V6.pred.and.n",
+  "llvm.hexagon.V6.pred.and.n.128B",
+  "llvm.hexagon.V6.pred.not",
+  "llvm.hexagon.V6.pred.not.128B",
+  "llvm.hexagon.V6.pred.or",
+  "llvm.hexagon.V6.pred.or.128B",
+  "llvm.hexagon.V6.pred.or.n",
+  "llvm.hexagon.V6.pred.or.n.128B",
+  "llvm.hexagon.V6.pred.scalar2",
+  "llvm.hexagon.V6.pred.scalar2.128B",
+  "llvm.hexagon.V6.pred.scalar2v2",
+  "llvm.hexagon.V6.pred.scalar2v2.128B",
+  "llvm.hexagon.V6.pred.xor",
+  "llvm.hexagon.V6.pred.xor.128B",
+  "llvm.hexagon.V6.shuffeqh",
+  "llvm.hexagon.V6.shuffeqh.128B",
+  "llvm.hexagon.V6.shuffeqw",
+  "llvm.hexagon.V6.shuffeqw.128B",
+  "llvm.hexagon.V6.vS32b.nqpred.ai",
+  "llvm.hexagon.V6.vS32b.nqpred.ai.128B",
+  "llvm.hexagon.V6.vS32b.nt.nqpred.ai",
+  "llvm.hexagon.V6.vS32b.nt.nqpred.ai.128B",
+  "llvm.hexagon.V6.vS32b.nt.qpred.ai",
+  "llvm.hexagon.V6.vS32b.nt.qpred.ai.128B",
+  "llvm.hexagon.V6.vS32b.qpred.ai",
+  "llvm.hexagon.V6.vS32b.qpred.ai.128B",
+  "llvm.hexagon.V6.vabsb",
+  "llvm.hexagon.V6.vabsb.128B",
+  "llvm.hexagon.V6.vabsb.sat",
+  "llvm.hexagon.V6.vabsb.sat.128B",
+  "llvm.hexagon.V6.vabsdiffh",
+  "llvm.hexagon.V6.vabsdiffh.128B",
+  "llvm.hexagon.V6.vabsdiffub",
+  "llvm.hexagon.V6.vabsdiffub.128B",
+  "llvm.hexagon.V6.vabsdiffuh",
+  "llvm.hexagon.V6.vabsdiffuh.128B",
+  "llvm.hexagon.V6.vabsdiffw",
+  "llvm.hexagon.V6.vabsdiffw.128B",
+  "llvm.hexagon.V6.vabsh",
+  "llvm.hexagon.V6.vabsh.128B",
+  "llvm.hexagon.V6.vabsh.sat",
+  "llvm.hexagon.V6.vabsh.sat.128B",
+  "llvm.hexagon.V6.vabsw",
+  "llvm.hexagon.V6.vabsw.128B",
+  "llvm.hexagon.V6.vabsw.sat",
+  "llvm.hexagon.V6.vabsw.sat.128B",
+  "llvm.hexagon.V6.vaddb",
+  "llvm.hexagon.V6.vaddb.128B",
+  "llvm.hexagon.V6.vaddb.dv",
+  "llvm.hexagon.V6.vaddb.dv.128B",
+  "llvm.hexagon.V6.vaddbnq",
+  "llvm.hexagon.V6.vaddbnq.128B",
+  "llvm.hexagon.V6.vaddbq",
+  "llvm.hexagon.V6.vaddbq.128B",
+  "llvm.hexagon.V6.vaddbsat",
+  "llvm.hexagon.V6.vaddbsat.128B",
+  "llvm.hexagon.V6.vaddbsat.dv",
+  "llvm.hexagon.V6.vaddbsat.dv.128B",
+  "llvm.hexagon.V6.vaddcarry",
+  "llvm.hexagon.V6.vaddcarry.128B",
+  "llvm.hexagon.V6.vaddclbh",
+  "llvm.hexagon.V6.vaddclbh.128B",
+  "llvm.hexagon.V6.vaddclbw",
+  "llvm.hexagon.V6.vaddclbw.128B",
+  "llvm.hexagon.V6.vaddh",
+  "llvm.hexagon.V6.vaddh.128B",
+  "llvm.hexagon.V6.vaddh.dv",
+  "llvm.hexagon.V6.vaddh.dv.128B",
+  "llvm.hexagon.V6.vaddhnq",
+  "llvm.hexagon.V6.vaddhnq.128B",
+  "llvm.hexagon.V6.vaddhq",
+  "llvm.hexagon.V6.vaddhq.128B",
+  "llvm.hexagon.V6.vaddhsat",
+  "llvm.hexagon.V6.vaddhsat.128B",
+  "llvm.hexagon.V6.vaddhsat.dv",
+  "llvm.hexagon.V6.vaddhsat.dv.128B",
+  "llvm.hexagon.V6.vaddhw",
+  "llvm.hexagon.V6.vaddhw.128B",
+  "llvm.hexagon.V6.vaddhw.acc",
+  "llvm.hexagon.V6.vaddhw.acc.128B",
+  "llvm.hexagon.V6.vaddubh",
+  "llvm.hexagon.V6.vaddubh.128B",
+  "llvm.hexagon.V6.vaddubh.acc",
+  "llvm.hexagon.V6.vaddubh.acc.128B",
+  "llvm.hexagon.V6.vaddubsat",
+  "llvm.hexagon.V6.vaddubsat.128B",
+  "llvm.hexagon.V6.vaddubsat.dv",
+  "llvm.hexagon.V6.vaddubsat.dv.128B",
+  "llvm.hexagon.V6.vaddububb.sat",
+  "llvm.hexagon.V6.vaddububb.sat.128B",
+  "llvm.hexagon.V6.vadduhsat",
+  "llvm.hexagon.V6.vadduhsat.128B",
+  "llvm.hexagon.V6.vadduhsat.dv",
+  "llvm.hexagon.V6.vadduhsat.dv.128B",
+  "llvm.hexagon.V6.vadduhw",
+  "llvm.hexagon.V6.vadduhw.128B",
+  "llvm.hexagon.V6.vadduhw.acc",
+  "llvm.hexagon.V6.vadduhw.acc.128B",
+  "llvm.hexagon.V6.vadduwsat",
+  "llvm.hexagon.V6.vadduwsat.128B",
+  "llvm.hexagon.V6.vadduwsat.dv",
+  "llvm.hexagon.V6.vadduwsat.dv.128B",
+  "llvm.hexagon.V6.vaddw",
+  "llvm.hexagon.V6.vaddw.128B",
+  "llvm.hexagon.V6.vaddw.dv",
+  "llvm.hexagon.V6.vaddw.dv.128B",
+  "llvm.hexagon.V6.vaddwnq",
+  "llvm.hexagon.V6.vaddwnq.128B",
+  "llvm.hexagon.V6.vaddwq",
+  "llvm.hexagon.V6.vaddwq.128B",
+  "llvm.hexagon.V6.vaddwsat",
+  "llvm.hexagon.V6.vaddwsat.128B",
+  "llvm.hexagon.V6.vaddwsat.dv",
+  "llvm.hexagon.V6.vaddwsat.dv.128B",
+  "llvm.hexagon.V6.valignb",
+  "llvm.hexagon.V6.valignb.128B",
+  "llvm.hexagon.V6.valignbi",
+  "llvm.hexagon.V6.valignbi.128B",
+  "llvm.hexagon.V6.vand",
+  "llvm.hexagon.V6.vand.128B",
+  "llvm.hexagon.V6.vandnqrt",
+  "llvm.hexagon.V6.vandnqrt.128B",
+  "llvm.hexagon.V6.vandnqrt.acc",
+  "llvm.hexagon.V6.vandnqrt.acc.128B",
+  "llvm.hexagon.V6.vandqrt",
+  "llvm.hexagon.V6.vandqrt.128B",
+  "llvm.hexagon.V6.vandqrt.acc",
+  "llvm.hexagon.V6.vandqrt.acc.128B",
+  "llvm.hexagon.V6.vandvnqv",
+  "llvm.hexagon.V6.vandvnqv.128B",
+  "llvm.hexagon.V6.vandvqv",
+  "llvm.hexagon.V6.vandvqv.128B",
+  "llvm.hexagon.V6.vandvrt",
+  "llvm.hexagon.V6.vandvrt.128B",
+  "llvm.hexagon.V6.vandvrt.acc",
+  "llvm.hexagon.V6.vandvrt.acc.128B",
+  "llvm.hexagon.V6.vaslh",
+  "llvm.hexagon.V6.vaslh.128B",
+  "llvm.hexagon.V6.vaslh.acc",
+  "llvm.hexagon.V6.vaslh.acc.128B",
+  "llvm.hexagon.V6.vaslhv",
+  "llvm.hexagon.V6.vaslhv.128B",
+  "llvm.hexagon.V6.vaslw",
+  "llvm.hexagon.V6.vaslw.128B",
+  "llvm.hexagon.V6.vaslw.acc",
+  "llvm.hexagon.V6.vaslw.acc.128B",
+  "llvm.hexagon.V6.vaslwv",
+  "llvm.hexagon.V6.vaslwv.128B",
+  "llvm.hexagon.V6.vasrh",
+  "llvm.hexagon.V6.vasrh.128B",
+  "llvm.hexagon.V6.vasrh.acc",
+  "llvm.hexagon.V6.vasrh.acc.128B",
+  "llvm.hexagon.V6.vasrhbrndsat",
+  "llvm.hexagon.V6.vasrhbrndsat.128B",
+  "llvm.hexagon.V6.vasrhbsat",
+  "llvm.hexagon.V6.vasrhbsat.128B",
+  "llvm.hexagon.V6.vasrhubrndsat",
+  "llvm.hexagon.V6.vasrhubrndsat.128B",
+  "llvm.hexagon.V6.vasrhubsat",
+  "llvm.hexagon.V6.vasrhubsat.128B",
+  "llvm.hexagon.V6.vasrhv",
+  "llvm.hexagon.V6.vasrhv.128B",
+  "llvm.hexagon.V6.vasruhubrndsat",
+  "llvm.hexagon.V6.vasruhubrndsat.128B",
+  "llvm.hexagon.V6.vasruhubsat",
+  "llvm.hexagon.V6.vasruhubsat.128B",
+  "llvm.hexagon.V6.vasruwuhrndsat",
+  "llvm.hexagon.V6.vasruwuhrndsat.128B",
+  "llvm.hexagon.V6.vasruwuhsat",
+  "llvm.hexagon.V6.vasruwuhsat.128B",
+  "llvm.hexagon.V6.vasrw",
+  "llvm.hexagon.V6.vasrw.128B",
+  "llvm.hexagon.V6.vasrw.acc",
+  "llvm.hexagon.V6.vasrw.acc.128B",
+  "llvm.hexagon.V6.vasrwh",
+  "llvm.hexagon.V6.vasrwh.128B",
+  "llvm.hexagon.V6.vasrwhrndsat",
+  "llvm.hexagon.V6.vasrwhrndsat.128B",
+  "llvm.hexagon.V6.vasrwhsat",
+  "llvm.hexagon.V6.vasrwhsat.128B",
+  "llvm.hexagon.V6.vasrwuhrndsat",
+  "llvm.hexagon.V6.vasrwuhrndsat.128B",
+  "llvm.hexagon.V6.vasrwuhsat",
+  "llvm.hexagon.V6.vasrwuhsat.128B",
+  "llvm.hexagon.V6.vasrwv",
+  "llvm.hexagon.V6.vasrwv.128B",
+  "llvm.hexagon.V6.vassign",
+  "llvm.hexagon.V6.vassign.128B",
+  "llvm.hexagon.V6.vassignp",
+  "llvm.hexagon.V6.vassignp.128B",
+  "llvm.hexagon.V6.vavgb",
+  "llvm.hexagon.V6.vavgb.128B",
+  "llvm.hexagon.V6.vavgbrnd",
+  "llvm.hexagon.V6.vavgbrnd.128B",
+  "llvm.hexagon.V6.vavgh",
+  "llvm.hexagon.V6.vavgh.128B",
+  "llvm.hexagon.V6.vavghrnd",
+  "llvm.hexagon.V6.vavghrnd.128B",
+  "llvm.hexagon.V6.vavgub",
+  "llvm.hexagon.V6.vavgub.128B",
+  "llvm.hexagon.V6.vavgubrnd",
+  "llvm.hexagon.V6.vavgubrnd.128B",
+  "llvm.hexagon.V6.vavguh",
+  "llvm.hexagon.V6.vavguh.128B",
+  "llvm.hexagon.V6.vavguhrnd",
+  "llvm.hexagon.V6.vavguhrnd.128B",
+  "llvm.hexagon.V6.vavguw",
+  "llvm.hexagon.V6.vavguw.128B",
+  "llvm.hexagon.V6.vavguwrnd",
+  "llvm.hexagon.V6.vavguwrnd.128B",
+  "llvm.hexagon.V6.vavgw",
+  "llvm.hexagon.V6.vavgw.128B",
+  "llvm.hexagon.V6.vavgwrnd",
+  "llvm.hexagon.V6.vavgwrnd.128B",
+  "llvm.hexagon.V6.vcl0h",
+  "llvm.hexagon.V6.vcl0h.128B",
+  "llvm.hexagon.V6.vcl0w",
+  "llvm.hexagon.V6.vcl0w.128B",
+  "llvm.hexagon.V6.vcombine",
+  "llvm.hexagon.V6.vcombine.128B",
+  "llvm.hexagon.V6.vd0",
+  "llvm.hexagon.V6.vd0.128B",
+  "llvm.hexagon.V6.vdd0",
+  "llvm.hexagon.V6.vdd0.128B",
+  "llvm.hexagon.V6.vdealb",
+  "llvm.hexagon.V6.vdealb.128B",
+  "llvm.hexagon.V6.vdealb4w",
+  "llvm.hexagon.V6.vdealb4w.128B",
+  "llvm.hexagon.V6.vdealh",
+  "llvm.hexagon.V6.vdealh.128B",
+  "llvm.hexagon.V6.vdealvdd",
+  "llvm.hexagon.V6.vdealvdd.128B",
+  "llvm.hexagon.V6.vdelta",
+  "llvm.hexagon.V6.vdelta.128B",
+  "llvm.hexagon.V6.vdmpybus",
+  "llvm.hexagon.V6.vdmpybus.128B",
+  "llvm.hexagon.V6.vdmpybus.acc",
+  "llvm.hexagon.V6.vdmpybus.acc.128B",
+  "llvm.hexagon.V6.vdmpybus.dv",
+  "llvm.hexagon.V6.vdmpybus.dv.128B",
+  "llvm.hexagon.V6.vdmpybus.dv.acc",
+  "llvm.hexagon.V6.vdmpybus.dv.acc.128B",
+  "llvm.hexagon.V6.vdmpyhb",
+  "llvm.hexagon.V6.vdmpyhb.128B",
+  "llvm.hexagon.V6.vdmpyhb.acc",
+  "llvm.hexagon.V6.vdmpyhb.acc.128B",
+  "llvm.hexagon.V6.vdmpyhb.dv",
+  "llvm.hexagon.V6.vdmpyhb.dv.128B",
+  "llvm.hexagon.V6.vdmpyhb.dv.acc",
+  "llvm.hexagon.V6.vdmpyhb.dv.acc.128B",
+  "llvm.hexagon.V6.vdmpyhisat",
+  "llvm.hexagon.V6.vdmpyhisat.128B",
+  "llvm.hexagon.V6.vdmpyhisat.acc",
+  "llvm.hexagon.V6.vdmpyhisat.acc.128B",
+  "llvm.hexagon.V6.vdmpyhsat",
+  "llvm.hexagon.V6.vdmpyhsat.128B",
+  "llvm.hexagon.V6.vdmpyhsat.acc",
+  "llvm.hexagon.V6.vdmpyhsat.acc.128B",
+  "llvm.hexagon.V6.vdmpyhsuisat",
+  "llvm.hexagon.V6.vdmpyhsuisat.128B",
+  "llvm.hexagon.V6.vdmpyhsuisat.acc",
+  "llvm.hexagon.V6.vdmpyhsuisat.acc.128B",
+  "llvm.hexagon.V6.vdmpyhsusat",
+  "llvm.hexagon.V6.vdmpyhsusat.128B",
+  "llvm.hexagon.V6.vdmpyhsusat.acc",
+  "llvm.hexagon.V6.vdmpyhsusat.acc.128B",
+  "llvm.hexagon.V6.vdmpyhvsat",
+  "llvm.hexagon.V6.vdmpyhvsat.128B",
+  "llvm.hexagon.V6.vdmpyhvsat.acc",
+  "llvm.hexagon.V6.vdmpyhvsat.acc.128B",
+  "llvm.hexagon.V6.vdsaduh",
+  "llvm.hexagon.V6.vdsaduh.128B",
+  "llvm.hexagon.V6.vdsaduh.acc",
+  "llvm.hexagon.V6.vdsaduh.acc.128B",
+  "llvm.hexagon.V6.veqb",
+  "llvm.hexagon.V6.veqb.128B",
+  "llvm.hexagon.V6.veqb.and",
+  "llvm.hexagon.V6.veqb.and.128B",
+  "llvm.hexagon.V6.veqb.or",
+  "llvm.hexagon.V6.veqb.or.128B",
+  "llvm.hexagon.V6.veqb.xor",
+  "llvm.hexagon.V6.veqb.xor.128B",
+  "llvm.hexagon.V6.veqh",
+  "llvm.hexagon.V6.veqh.128B",
+  "llvm.hexagon.V6.veqh.and",
+  "llvm.hexagon.V6.veqh.and.128B",
+  "llvm.hexagon.V6.veqh.or",
+  "llvm.hexagon.V6.veqh.or.128B",
+  "llvm.hexagon.V6.veqh.xor",
+  "llvm.hexagon.V6.veqh.xor.128B",
+  "llvm.hexagon.V6.veqw",
+  "llvm.hexagon.V6.veqw.128B",
+  "llvm.hexagon.V6.veqw.and",
+  "llvm.hexagon.V6.veqw.and.128B",
+  "llvm.hexagon.V6.veqw.or",
+  "llvm.hexagon.V6.veqw.or.128B",
+  "llvm.hexagon.V6.veqw.xor",
+  "llvm.hexagon.V6.veqw.xor.128B",
+  "llvm.hexagon.V6.vgathermh",
+  "llvm.hexagon.V6.vgathermh.128B",
+  "llvm.hexagon.V6.vgathermhq",
+  "llvm.hexagon.V6.vgathermhq.128B",
+  "llvm.hexagon.V6.vgathermhw",
+  "llvm.hexagon.V6.vgathermhw.128B",
+  "llvm.hexagon.V6.vgathermhwq",
+  "llvm.hexagon.V6.vgathermhwq.128B",
+  "llvm.hexagon.V6.vgathermw",
+  "llvm.hexagon.V6.vgathermw.128B",
+  "llvm.hexagon.V6.vgathermwq",
+  "llvm.hexagon.V6.vgathermwq.128B",
+  "llvm.hexagon.V6.vgtb",
+  "llvm.hexagon.V6.vgtb.128B",
+  "llvm.hexagon.V6.vgtb.and",
+  "llvm.hexagon.V6.vgtb.and.128B",
+  "llvm.hexagon.V6.vgtb.or",
+  "llvm.hexagon.V6.vgtb.or.128B",
+  "llvm.hexagon.V6.vgtb.xor",
+  "llvm.hexagon.V6.vgtb.xor.128B",
+  "llvm.hexagon.V6.vgth",
+  "llvm.hexagon.V6.vgth.128B",
+  "llvm.hexagon.V6.vgth.and",
+  "llvm.hexagon.V6.vgth.and.128B",
+  "llvm.hexagon.V6.vgth.or",
+  "llvm.hexagon.V6.vgth.or.128B",
+  "llvm.hexagon.V6.vgth.xor",
+  "llvm.hexagon.V6.vgth.xor.128B",
+  "llvm.hexagon.V6.vgtub",
+  "llvm.hexagon.V6.vgtub.128B",
+  "llvm.hexagon.V6.vgtub.and",
+  "llvm.hexagon.V6.vgtub.and.128B",
+  "llvm.hexagon.V6.vgtub.or",
+  "llvm.hexagon.V6.vgtub.or.128B",
+  "llvm.hexagon.V6.vgtub.xor",
+  "llvm.hexagon.V6.vgtub.xor.128B",
+  "llvm.hexagon.V6.vgtuh",
+  "llvm.hexagon.V6.vgtuh.128B",
+  "llvm.hexagon.V6.vgtuh.and",
+  "llvm.hexagon.V6.vgtuh.and.128B",
+  "llvm.hexagon.V6.vgtuh.or",
+  "llvm.hexagon.V6.vgtuh.or.128B",
+  "llvm.hexagon.V6.vgtuh.xor",
+  "llvm.hexagon.V6.vgtuh.xor.128B",
+  "llvm.hexagon.V6.vgtuw",
+  "llvm.hexagon.V6.vgtuw.128B",
+  "llvm.hexagon.V6.vgtuw.and",
+  "llvm.hexagon.V6.vgtuw.and.128B",
+  "llvm.hexagon.V6.vgtuw.or",
+  "llvm.hexagon.V6.vgtuw.or.128B",
+  "llvm.hexagon.V6.vgtuw.xor",
+  "llvm.hexagon.V6.vgtuw.xor.128B",
+  "llvm.hexagon.V6.vgtw",
+  "llvm.hexagon.V6.vgtw.128B",
+  "llvm.hexagon.V6.vgtw.and",
+  "llvm.hexagon.V6.vgtw.and.128B",
+  "llvm.hexagon.V6.vgtw.or",
+  "llvm.hexagon.V6.vgtw.or.128B",
+  "llvm.hexagon.V6.vgtw.xor",
+  "llvm.hexagon.V6.vgtw.xor.128B",
+  "llvm.hexagon.V6.vinsertwr",
+  "llvm.hexagon.V6.vinsertwr.128B",
+  "llvm.hexagon.V6.vlalignb",
+  "llvm.hexagon.V6.vlalignb.128B",
+  "llvm.hexagon.V6.vlalignbi",
+  "llvm.hexagon.V6.vlalignbi.128B",
+  "llvm.hexagon.V6.vlsrb",
+  "llvm.hexagon.V6.vlsrb.128B",
+  "llvm.hexagon.V6.vlsrh",
+  "llvm.hexagon.V6.vlsrh.128B",
+  "llvm.hexagon.V6.vlsrhv",
+  "llvm.hexagon.V6.vlsrhv.128B",
+  "llvm.hexagon.V6.vlsrw",
+  "llvm.hexagon.V6.vlsrw.128B",
+  "llvm.hexagon.V6.vlsrwv",
+  "llvm.hexagon.V6.vlsrwv.128B",
+  "llvm.hexagon.V6.vlut4",
+  "llvm.hexagon.V6.vlut4.128B",
+  "llvm.hexagon.V6.vlutvvb",
+  "llvm.hexagon.V6.vlutvvb.128B",
+  "llvm.hexagon.V6.vlutvvb.nm",
+  "llvm.hexagon.V6.vlutvvb.nm.128B",
+  "llvm.hexagon.V6.vlutvvb.oracc",
+  "llvm.hexagon.V6.vlutvvb.oracc.128B",
+  "llvm.hexagon.V6.vlutvvb.oracci",
+  "llvm.hexagon.V6.vlutvvb.oracci.128B",
+  "llvm.hexagon.V6.vlutvvbi",
+  "llvm.hexagon.V6.vlutvvbi.128B",
+  "llvm.hexagon.V6.vlutvwh",
+  "llvm.hexagon.V6.vlutvwh.128B",
+  "llvm.hexagon.V6.vlutvwh.nm",
+  "llvm.hexagon.V6.vlutvwh.nm.128B",
+  "llvm.hexagon.V6.vlutvwh.oracc",
+  "llvm.hexagon.V6.vlutvwh.oracc.128B",
+  "llvm.hexagon.V6.vlutvwh.oracci",
+  "llvm.hexagon.V6.vlutvwh.oracci.128B",
+  "llvm.hexagon.V6.vlutvwhi",
+  "llvm.hexagon.V6.vlutvwhi.128B",
+  "llvm.hexagon.V6.vmaskedstorenq",
+  "llvm.hexagon.V6.vmaskedstorenq.128B",
+  "llvm.hexagon.V6.vmaskedstorentnq",
+  "llvm.hexagon.V6.vmaskedstorentnq.128B",
+  "llvm.hexagon.V6.vmaskedstorentq",
+  "llvm.hexagon.V6.vmaskedstorentq.128B",
+  "llvm.hexagon.V6.vmaskedstoreq",
+  "llvm.hexagon.V6.vmaskedstoreq.128B",
+  "llvm.hexagon.V6.vmaxb",
+  "llvm.hexagon.V6.vmaxb.128B",
+  "llvm.hexagon.V6.vmaxh",
+  "llvm.hexagon.V6.vmaxh.128B",
+  "llvm.hexagon.V6.vmaxub",
+  "llvm.hexagon.V6.vmaxub.128B",
+  "llvm.hexagon.V6.vmaxuh",
+  "llvm.hexagon.V6.vmaxuh.128B",
+  "llvm.hexagon.V6.vmaxw",
+  "llvm.hexagon.V6.vmaxw.128B",
+  "llvm.hexagon.V6.vminb",
+  "llvm.hexagon.V6.vminb.128B",
+  "llvm.hexagon.V6.vminh",
+  "llvm.hexagon.V6.vminh.128B",
+  "llvm.hexagon.V6.vminub",
+  "llvm.hexagon.V6.vminub.128B",
+  "llvm.hexagon.V6.vminuh",
+  "llvm.hexagon.V6.vminuh.128B",
+  "llvm.hexagon.V6.vminw",
+  "llvm.hexagon.V6.vminw.128B",
+  "llvm.hexagon.V6.vmpabus",
+  "llvm.hexagon.V6.vmpabus.128B",
+  "llvm.hexagon.V6.vmpabus.acc",
+  "llvm.hexagon.V6.vmpabus.acc.128B",
+  "llvm.hexagon.V6.vmpabusv",
+  "llvm.hexagon.V6.vmpabusv.128B",
+  "llvm.hexagon.V6.vmpabuu",
+  "llvm.hexagon.V6.vmpabuu.128B",
+  "llvm.hexagon.V6.vmpabuu.acc",
+  "llvm.hexagon.V6.vmpabuu.acc.128B",
+  "llvm.hexagon.V6.vmpabuuv",
+  "llvm.hexagon.V6.vmpabuuv.128B",
+  "llvm.hexagon.V6.vmpahb",
+  "llvm.hexagon.V6.vmpahb.128B",
+  "llvm.hexagon.V6.vmpahb.acc",
+  "llvm.hexagon.V6.vmpahb.acc.128B",
+  "llvm.hexagon.V6.vmpahhsat",
+  "llvm.hexagon.V6.vmpahhsat.128B",
+  "llvm.hexagon.V6.vmpauhb",
+  "llvm.hexagon.V6.vmpauhb.128B",
+  "llvm.hexagon.V6.vmpauhb.acc",
+  "llvm.hexagon.V6.vmpauhb.acc.128B",
+  "llvm.hexagon.V6.vmpauhuhsat",
+  "llvm.hexagon.V6.vmpauhuhsat.128B",
+  "llvm.hexagon.V6.vmpsuhuhsat",
+  "llvm.hexagon.V6.vmpsuhuhsat.128B",
+  "llvm.hexagon.V6.vmpybus",
+  "llvm.hexagon.V6.vmpybus.128B",
+  "llvm.hexagon.V6.vmpybus.acc",
+  "llvm.hexagon.V6.vmpybus.acc.128B",
+  "llvm.hexagon.V6.vmpybusv",
+  "llvm.hexagon.V6.vmpybusv.128B",
+  "llvm.hexagon.V6.vmpybusv.acc",
+  "llvm.hexagon.V6.vmpybusv.acc.128B",
+  "llvm.hexagon.V6.vmpybv",
+  "llvm.hexagon.V6.vmpybv.128B",
+  "llvm.hexagon.V6.vmpybv.acc",
+  "llvm.hexagon.V6.vmpybv.acc.128B",
+  "llvm.hexagon.V6.vmpyewuh",
+  "llvm.hexagon.V6.vmpyewuh.128B",
+  "llvm.hexagon.V6.vmpyewuh.64",
+  "llvm.hexagon.V6.vmpyewuh.64.128B",
+  "llvm.hexagon.V6.vmpyh",
+  "llvm.hexagon.V6.vmpyh.128B",
+  "llvm.hexagon.V6.vmpyh.acc",
+  "llvm.hexagon.V6.vmpyh.acc.128B",
+  "llvm.hexagon.V6.vmpyhsat.acc",
+  "llvm.hexagon.V6.vmpyhsat.acc.128B",
+  "llvm.hexagon.V6.vmpyhsrs",
+  "llvm.hexagon.V6.vmpyhsrs.128B",
+  "llvm.hexagon.V6.vmpyhss",
+  "llvm.hexagon.V6.vmpyhss.128B",
+  "llvm.hexagon.V6.vmpyhus",
+  "llvm.hexagon.V6.vmpyhus.128B",
+  "llvm.hexagon.V6.vmpyhus.acc",
+  "llvm.hexagon.V6.vmpyhus.acc.128B",
+  "llvm.hexagon.V6.vmpyhv",
+  "llvm.hexagon.V6.vmpyhv.128B",
+  "llvm.hexagon.V6.vmpyhv.acc",
+  "llvm.hexagon.V6.vmpyhv.acc.128B",
+  "llvm.hexagon.V6.vmpyhvsrs",
+  "llvm.hexagon.V6.vmpyhvsrs.128B",
+  "llvm.hexagon.V6.vmpyieoh",
+  "llvm.hexagon.V6.vmpyieoh.128B",
+  "llvm.hexagon.V6.vmpyiewh.acc",
+  "llvm.hexagon.V6.vmpyiewh.acc.128B",
+  "llvm.hexagon.V6.vmpyiewuh",
+  "llvm.hexagon.V6.vmpyiewuh.128B",
+  "llvm.hexagon.V6.vmpyiewuh.acc",
+  "llvm.hexagon.V6.vmpyiewuh.acc.128B",
+  "llvm.hexagon.V6.vmpyih",
+  "llvm.hexagon.V6.vmpyih.128B",
+  "llvm.hexagon.V6.vmpyih.acc",
+  "llvm.hexagon.V6.vmpyih.acc.128B",
+  "llvm.hexagon.V6.vmpyihb",
+  "llvm.hexagon.V6.vmpyihb.128B",
+  "llvm.hexagon.V6.vmpyihb.acc",
+  "llvm.hexagon.V6.vmpyihb.acc.128B",
+  "llvm.hexagon.V6.vmpyiowh",
+  "llvm.hexagon.V6.vmpyiowh.128B",
+  "llvm.hexagon.V6.vmpyiwb",
+  "llvm.hexagon.V6.vmpyiwb.128B",
+  "llvm.hexagon.V6.vmpyiwb.acc",
+  "llvm.hexagon.V6.vmpyiwb.acc.128B",
+  "llvm.hexagon.V6.vmpyiwh",
+  "llvm.hexagon.V6.vmpyiwh.128B",
+  "llvm.hexagon.V6.vmpyiwh.acc",
+  "llvm.hexagon.V6.vmpyiwh.acc.128B",
+  "llvm.hexagon.V6.vmpyiwub",
+  "llvm.hexagon.V6.vmpyiwub.128B",
+  "llvm.hexagon.V6.vmpyiwub.acc",
+  "llvm.hexagon.V6.vmpyiwub.acc.128B",
+  "llvm.hexagon.V6.vmpyowh",
+  "llvm.hexagon.V6.vmpyowh.128B",
+  "llvm.hexagon.V6.vmpyowh.64.acc",
+  "llvm.hexagon.V6.vmpyowh.64.acc.128B",
+  "llvm.hexagon.V6.vmpyowh.rnd",
+  "llvm.hexagon.V6.vmpyowh.rnd.128B",
+  "llvm.hexagon.V6.vmpyowh.rnd.sacc",
+  "llvm.hexagon.V6.vmpyowh.rnd.sacc.128B",
+  "llvm.hexagon.V6.vmpyowh.sacc",
+  "llvm.hexagon.V6.vmpyowh.sacc.128B",
+  "llvm.hexagon.V6.vmpyub",
+  "llvm.hexagon.V6.vmpyub.128B",
+  "llvm.hexagon.V6.vmpyub.acc",
+  "llvm.hexagon.V6.vmpyub.acc.128B",
+  "llvm.hexagon.V6.vmpyubv",
+  "llvm.hexagon.V6.vmpyubv.128B",
+  "llvm.hexagon.V6.vmpyubv.acc",
+  "llvm.hexagon.V6.vmpyubv.acc.128B",
+  "llvm.hexagon.V6.vmpyuh",
+  "llvm.hexagon.V6.vmpyuh.128B",
+  "llvm.hexagon.V6.vmpyuh.acc",
+  "llvm.hexagon.V6.vmpyuh.acc.128B",
+  "llvm.hexagon.V6.vmpyuhe",
+  "llvm.hexagon.V6.vmpyuhe.128B",
+  "llvm.hexagon.V6.vmpyuhe.acc",
+  "llvm.hexagon.V6.vmpyuhe.acc.128B",
+  "llvm.hexagon.V6.vmpyuhv",
+  "llvm.hexagon.V6.vmpyuhv.128B",
+  "llvm.hexagon.V6.vmpyuhv.acc",
+  "llvm.hexagon.V6.vmpyuhv.acc.128B",
+  "llvm.hexagon.V6.vmux",
+  "llvm.hexagon.V6.vmux.128B",
+  "llvm.hexagon.V6.vnavgb",
+  "llvm.hexagon.V6.vnavgb.128B",
+  "llvm.hexagon.V6.vnavgh",
+  "llvm.hexagon.V6.vnavgh.128B",
+  "llvm.hexagon.V6.vnavgub",
+  "llvm.hexagon.V6.vnavgub.128B",
+  "llvm.hexagon.V6.vnavgw",
+  "llvm.hexagon.V6.vnavgw.128B",
+  "llvm.hexagon.V6.vnormamth",
+  "llvm.hexagon.V6.vnormamth.128B",
+  "llvm.hexagon.V6.vnormamtw",
+  "llvm.hexagon.V6.vnormamtw.128B",
+  "llvm.hexagon.V6.vnot",
+  "llvm.hexagon.V6.vnot.128B",
+  "llvm.hexagon.V6.vor",
+  "llvm.hexagon.V6.vor.128B",
+  "llvm.hexagon.V6.vpackeb",
+  "llvm.hexagon.V6.vpackeb.128B",
+  "llvm.hexagon.V6.vpackeh",
+  "llvm.hexagon.V6.vpackeh.128B",
+  "llvm.hexagon.V6.vpackhb.sat",
+  "llvm.hexagon.V6.vpackhb.sat.128B",
+  "llvm.hexagon.V6.vpackhub.sat",
+  "llvm.hexagon.V6.vpackhub.sat.128B",
+  "llvm.hexagon.V6.vpackob",
+  "llvm.hexagon.V6.vpackob.128B",
+  "llvm.hexagon.V6.vpackoh",
+  "llvm.hexagon.V6.vpackoh.128B",
+  "llvm.hexagon.V6.vpackwh.sat",
+  "llvm.hexagon.V6.vpackwh.sat.128B",
+  "llvm.hexagon.V6.vpackwuh.sat",
+  "llvm.hexagon.V6.vpackwuh.sat.128B",
+  "llvm.hexagon.V6.vpopcounth",
+  "llvm.hexagon.V6.vpopcounth.128B",
+  "llvm.hexagon.V6.vprefixqb",
+  "llvm.hexagon.V6.vprefixqb.128B",
+  "llvm.hexagon.V6.vprefixqh",
+  "llvm.hexagon.V6.vprefixqh.128B",
+  "llvm.hexagon.V6.vprefixqw",
+  "llvm.hexagon.V6.vprefixqw.128B",
+  "llvm.hexagon.V6.vrdelta",
+  "llvm.hexagon.V6.vrdelta.128B",
+  "llvm.hexagon.V6.vrmpybub.rtt",
+  "llvm.hexagon.V6.vrmpybub.rtt.128B",
+  "llvm.hexagon.V6.vrmpybub.rtt.acc",
+  "llvm.hexagon.V6.vrmpybub.rtt.acc.128B",
+  "llvm.hexagon.V6.vrmpybus",
+  "llvm.hexagon.V6.vrmpybus.128B",
+  "llvm.hexagon.V6.vrmpybus.acc",
+  "llvm.hexagon.V6.vrmpybus.acc.128B",
+  "llvm.hexagon.V6.vrmpybusi",
+  "llvm.hexagon.V6.vrmpybusi.128B",
+  "llvm.hexagon.V6.vrmpybusi.acc",
+  "llvm.hexagon.V6.vrmpybusi.acc.128B",
+  "llvm.hexagon.V6.vrmpybusv",
+  "llvm.hexagon.V6.vrmpybusv.128B",
+  "llvm.hexagon.V6.vrmpybusv.acc",
+  "llvm.hexagon.V6.vrmpybusv.acc.128B",
+  "llvm.hexagon.V6.vrmpybv",
+  "llvm.hexagon.V6.vrmpybv.128B",
+  "llvm.hexagon.V6.vrmpybv.acc",
+  "llvm.hexagon.V6.vrmpybv.acc.128B",
+  "llvm.hexagon.V6.vrmpyub",
+  "llvm.hexagon.V6.vrmpyub.128B",
+  "llvm.hexagon.V6.vrmpyub.acc",
+  "llvm.hexagon.V6.vrmpyub.acc.128B",
+  "llvm.hexagon.V6.vrmpyub.rtt",
+  "llvm.hexagon.V6.vrmpyub.rtt.128B",
+  "llvm.hexagon.V6.vrmpyub.rtt.acc",
+  "llvm.hexagon.V6.vrmpyub.rtt.acc.128B",
+  "llvm.hexagon.V6.vrmpyubi",
+  "llvm.hexagon.V6.vrmpyubi.128B",
+  "llvm.hexagon.V6.vrmpyubi.acc",
+  "llvm.hexagon.V6.vrmpyubi.acc.128B",
+  "llvm.hexagon.V6.vrmpyubv",
+  "llvm.hexagon.V6.vrmpyubv.128B",
+  "llvm.hexagon.V6.vrmpyubv.acc",
+  "llvm.hexagon.V6.vrmpyubv.acc.128B",
+  "llvm.hexagon.V6.vror",
+  "llvm.hexagon.V6.vror.128B",
+  "llvm.hexagon.V6.vroundhb",
+  "llvm.hexagon.V6.vroundhb.128B",
+  "llvm.hexagon.V6.vroundhub",
+  "llvm.hexagon.V6.vroundhub.128B",
+  "llvm.hexagon.V6.vrounduhub",
+  "llvm.hexagon.V6.vrounduhub.128B",
+  "llvm.hexagon.V6.vrounduwuh",
+  "llvm.hexagon.V6.vrounduwuh.128B",
+  "llvm.hexagon.V6.vroundwh",
+  "llvm.hexagon.V6.vroundwh.128B",
+  "llvm.hexagon.V6.vroundwuh",
+  "llvm.hexagon.V6.vroundwuh.128B",
+  "llvm.hexagon.V6.vrsadubi",
+  "llvm.hexagon.V6.vrsadubi.128B",
+  "llvm.hexagon.V6.vrsadubi.acc",
+  "llvm.hexagon.V6.vrsadubi.acc.128B",
+  "llvm.hexagon.V6.vsathub",
+  "llvm.hexagon.V6.vsathub.128B",
+  "llvm.hexagon.V6.vsatuwuh",
+  "llvm.hexagon.V6.vsatuwuh.128B",
+  "llvm.hexagon.V6.vsatwh",
+  "llvm.hexagon.V6.vsatwh.128B",
+  "llvm.hexagon.V6.vsb",
+  "llvm.hexagon.V6.vsb.128B",
+  "llvm.hexagon.V6.vscattermh",
+  "llvm.hexagon.V6.vscattermh.128B",
+  "llvm.hexagon.V6.vscattermh.add",
+  "llvm.hexagon.V6.vscattermh.add.128B",
+  "llvm.hexagon.V6.vscattermhq",
+  "llvm.hexagon.V6.vscattermhq.128B",
+  "llvm.hexagon.V6.vscattermhw",
+  "llvm.hexagon.V6.vscattermhw.128B",
+  "llvm.hexagon.V6.vscattermhw.add",
+  "llvm.hexagon.V6.vscattermhw.add.128B",
+  "llvm.hexagon.V6.vscattermhwq",
+  "llvm.hexagon.V6.vscattermhwq.128B",
+  "llvm.hexagon.V6.vscattermw",
+  "llvm.hexagon.V6.vscattermw.128B",
+  "llvm.hexagon.V6.vscattermw.add",
+  "llvm.hexagon.V6.vscattermw.add.128B",
+  "llvm.hexagon.V6.vscattermwq",
+  "llvm.hexagon.V6.vscattermwq.128B",
+  "llvm.hexagon.V6.vsh",
+  "llvm.hexagon.V6.vsh.128B",
+  "llvm.hexagon.V6.vshufeh",
+  "llvm.hexagon.V6.vshufeh.128B",
+  "llvm.hexagon.V6.vshuffb",
+  "llvm.hexagon.V6.vshuffb.128B",
+  "llvm.hexagon.V6.vshuffeb",
+  "llvm.hexagon.V6.vshuffeb.128B",
+  "llvm.hexagon.V6.vshuffh",
+  "llvm.hexagon.V6.vshuffh.128B",
+  "llvm.hexagon.V6.vshuffob",
+  "llvm.hexagon.V6.vshuffob.128B",
+  "llvm.hexagon.V6.vshuffvdd",
+  "llvm.hexagon.V6.vshuffvdd.128B",
+  "llvm.hexagon.V6.vshufoeb",
+  "llvm.hexagon.V6.vshufoeb.128B",
+  "llvm.hexagon.V6.vshufoeh",
+  "llvm.hexagon.V6.vshufoeh.128B",
+  "llvm.hexagon.V6.vshufoh",
+  "llvm.hexagon.V6.vshufoh.128B",
+  "llvm.hexagon.V6.vsubb",
+  "llvm.hexagon.V6.vsubb.128B",
+  "llvm.hexagon.V6.vsubb.dv",
+  "llvm.hexagon.V6.vsubb.dv.128B",
+  "llvm.hexagon.V6.vsubbnq",
+  "llvm.hexagon.V6.vsubbnq.128B",
+  "llvm.hexagon.V6.vsubbq",
+  "llvm.hexagon.V6.vsubbq.128B",
+  "llvm.hexagon.V6.vsubbsat",
+  "llvm.hexagon.V6.vsubbsat.128B",
+  "llvm.hexagon.V6.vsubbsat.dv",
+  "llvm.hexagon.V6.vsubbsat.dv.128B",
+  "llvm.hexagon.V6.vsubcarry",
+  "llvm.hexagon.V6.vsubcarry.128B",
+  "llvm.hexagon.V6.vsubh",
+  "llvm.hexagon.V6.vsubh.128B",
+  "llvm.hexagon.V6.vsubh.dv",
+  "llvm.hexagon.V6.vsubh.dv.128B",
+  "llvm.hexagon.V6.vsubhnq",
+  "llvm.hexagon.V6.vsubhnq.128B",
+  "llvm.hexagon.V6.vsubhq",
+  "llvm.hexagon.V6.vsubhq.128B",
+  "llvm.hexagon.V6.vsubhsat",
+  "llvm.hexagon.V6.vsubhsat.128B",
+  "llvm.hexagon.V6.vsubhsat.dv",
+  "llvm.hexagon.V6.vsubhsat.dv.128B",
+  "llvm.hexagon.V6.vsubhw",
+  "llvm.hexagon.V6.vsubhw.128B",
+  "llvm.hexagon.V6.vsububh",
+  "llvm.hexagon.V6.vsububh.128B",
+  "llvm.hexagon.V6.vsububsat",
+  "llvm.hexagon.V6.vsububsat.128B",
+  "llvm.hexagon.V6.vsububsat.dv",
+  "llvm.hexagon.V6.vsububsat.dv.128B",
+  "llvm.hexagon.V6.vsubububb.sat",
+  "llvm.hexagon.V6.vsubububb.sat.128B",
+  "llvm.hexagon.V6.vsubuhsat",
+  "llvm.hexagon.V6.vsubuhsat.128B",
+  "llvm.hexagon.V6.vsubuhsat.dv",
+  "llvm.hexagon.V6.vsubuhsat.dv.128B",
+  "llvm.hexagon.V6.vsubuhw",
+  "llvm.hexagon.V6.vsubuhw.128B",
+  "llvm.hexagon.V6.vsubuwsat",
+  "llvm.hexagon.V6.vsubuwsat.128B",
+  "llvm.hexagon.V6.vsubuwsat.dv",
+  "llvm.hexagon.V6.vsubuwsat.dv.128B",
+  "llvm.hexagon.V6.vsubw",
+  "llvm.hexagon.V6.vsubw.128B",
+  "llvm.hexagon.V6.vsubw.dv",
+  "llvm.hexagon.V6.vsubw.dv.128B",
+  "llvm.hexagon.V6.vsubwnq",
+  "llvm.hexagon.V6.vsubwnq.128B",
+  "llvm.hexagon.V6.vsubwq",
+  "llvm.hexagon.V6.vsubwq.128B",
+  "llvm.hexagon.V6.vsubwsat",
+  "llvm.hexagon.V6.vsubwsat.128B",
+  "llvm.hexagon.V6.vsubwsat.dv",
+  "llvm.hexagon.V6.vsubwsat.dv.128B",
+  "llvm.hexagon.V6.vswap",
+  "llvm.hexagon.V6.vswap.128B",
+  "llvm.hexagon.V6.vtmpyb",
+  "llvm.hexagon.V6.vtmpyb.128B",
+  "llvm.hexagon.V6.vtmpyb.acc",
+  "llvm.hexagon.V6.vtmpyb.acc.128B",
+  "llvm.hexagon.V6.vtmpybus",
+  "llvm.hexagon.V6.vtmpybus.128B",
+  "llvm.hexagon.V6.vtmpybus.acc",
+  "llvm.hexagon.V6.vtmpybus.acc.128B",
+  "llvm.hexagon.V6.vtmpyhb",
+  "llvm.hexagon.V6.vtmpyhb.128B",
+  "llvm.hexagon.V6.vtmpyhb.acc",
+  "llvm.hexagon.V6.vtmpyhb.acc.128B",
+  "llvm.hexagon.V6.vunpackb",
+  "llvm.hexagon.V6.vunpackb.128B",
+  "llvm.hexagon.V6.vunpackh",
+  "llvm.hexagon.V6.vunpackh.128B",
+  "llvm.hexagon.V6.vunpackob",
+  "llvm.hexagon.V6.vunpackob.128B",
+  "llvm.hexagon.V6.vunpackoh",
+  "llvm.hexagon.V6.vunpackoh.128B",
+  "llvm.hexagon.V6.vunpackub",
+  "llvm.hexagon.V6.vunpackub.128B",
+  "llvm.hexagon.V6.vunpackuh",
+  "llvm.hexagon.V6.vunpackuh.128B",
+  "llvm.hexagon.V6.vxor",
+  "llvm.hexagon.V6.vxor.128B",
+  "llvm.hexagon.V6.vzb",
+  "llvm.hexagon.V6.vzb.128B",
+  "llvm.hexagon.V6.vzh",
+  "llvm.hexagon.V6.vzh.128B",
+  "llvm.hexagon.Y2.dccleana",
+  "llvm.hexagon.Y2.dccleaninva",
+  "llvm.hexagon.Y2.dcinva",
+  "llvm.hexagon.Y2.dczeroa",
+  "llvm.hexagon.Y4.l2fetch",
+  "llvm.hexagon.Y5.l2fetch",
+  "llvm.hexagon.circ.ldb",
+  "llvm.hexagon.circ.ldd",
+  "llvm.hexagon.circ.ldh",
+  "llvm.hexagon.circ.ldub",
+  "llvm.hexagon.circ.lduh",
+  "llvm.hexagon.circ.ldw",
+  "llvm.hexagon.circ.stb",
+  "llvm.hexagon.circ.std",
+  "llvm.hexagon.circ.sth",
+  "llvm.hexagon.circ.sthhi",
+  "llvm.hexagon.circ.stw",
+  "llvm.hexagon.mm256i.vaddw",
+  "llvm.hexagon.prefetch",
+  "llvm.mips.absq.s.ph",
+  "llvm.mips.absq.s.qb",
+  "llvm.mips.absq.s.w",
+  "llvm.mips.add.a.b",
+  "llvm.mips.add.a.d",
+  "llvm.mips.add.a.h",
+  "llvm.mips.add.a.w",
+  "llvm.mips.addq.ph",
+  "llvm.mips.addq.s.ph",
+  "llvm.mips.addq.s.w",
+  "llvm.mips.addqh.ph",
+  "llvm.mips.addqh.r.ph",
+  "llvm.mips.addqh.r.w",
+  "llvm.mips.addqh.w",
+  "llvm.mips.adds.a.b",
+  "llvm.mips.adds.a.d",
+  "llvm.mips.adds.a.h",
+  "llvm.mips.adds.a.w",
+  "llvm.mips.adds.s.b",
+  "llvm.mips.adds.s.d",
+  "llvm.mips.adds.s.h",
+  "llvm.mips.adds.s.w",
+  "llvm.mips.adds.u.b",
+  "llvm.mips.adds.u.d",
+  "llvm.mips.adds.u.h",
+  "llvm.mips.adds.u.w",
+  "llvm.mips.addsc",
+  "llvm.mips.addu.ph",
+  "llvm.mips.addu.qb",
+  "llvm.mips.addu.s.ph",
+  "llvm.mips.addu.s.qb",
+  "llvm.mips.adduh.qb",
+  "llvm.mips.adduh.r.qb",
+  "llvm.mips.addv.b",
+  "llvm.mips.addv.d",
+  "llvm.mips.addv.h",
+  "llvm.mips.addv.w",
+  "llvm.mips.addvi.b",
+  "llvm.mips.addvi.d",
+  "llvm.mips.addvi.h",
+  "llvm.mips.addvi.w",
+  "llvm.mips.addwc",
+  "llvm.mips.and.v",
+  "llvm.mips.andi.b",
+  "llvm.mips.append",
+  "llvm.mips.asub.s.b",
+  "llvm.mips.asub.s.d",
+  "llvm.mips.asub.s.h",
+  "llvm.mips.asub.s.w",
+  "llvm.mips.asub.u.b",
+  "llvm.mips.asub.u.d",
+  "llvm.mips.asub.u.h",
+  "llvm.mips.asub.u.w",
+  "llvm.mips.ave.s.b",
+  "llvm.mips.ave.s.d",
+  "llvm.mips.ave.s.h",
+  "llvm.mips.ave.s.w",
+  "llvm.mips.ave.u.b",
+  "llvm.mips.ave.u.d",
+  "llvm.mips.ave.u.h",
+  "llvm.mips.ave.u.w",
+  "llvm.mips.aver.s.b",
+  "llvm.mips.aver.s.d",
+  "llvm.mips.aver.s.h",
+  "llvm.mips.aver.s.w",
+  "llvm.mips.aver.u.b",
+  "llvm.mips.aver.u.d",
+  "llvm.mips.aver.u.h",
+  "llvm.mips.aver.u.w",
+  "llvm.mips.balign",
+  "llvm.mips.bclr.b",
+  "llvm.mips.bclr.d",
+  "llvm.mips.bclr.h",
+  "llvm.mips.bclr.w",
+  "llvm.mips.bclri.b",
+  "llvm.mips.bclri.d",
+  "llvm.mips.bclri.h",
+  "llvm.mips.bclri.w",
+  "llvm.mips.binsl.b",
+  "llvm.mips.binsl.d",
+  "llvm.mips.binsl.h",
+  "llvm.mips.binsl.w",
+  "llvm.mips.binsli.b",
+  "llvm.mips.binsli.d",
+  "llvm.mips.binsli.h",
+  "llvm.mips.binsli.w",
+  "llvm.mips.binsr.b",
+  "llvm.mips.binsr.d",
+  "llvm.mips.binsr.h",
+  "llvm.mips.binsr.w",
+  "llvm.mips.binsri.b",
+  "llvm.mips.binsri.d",
+  "llvm.mips.binsri.h",
+  "llvm.mips.binsri.w",
+  "llvm.mips.bitrev",
+  "llvm.mips.bmnz.v",
+  "llvm.mips.bmnzi.b",
+  "llvm.mips.bmz.v",
+  "llvm.mips.bmzi.b",
+  "llvm.mips.bneg.b",
+  "llvm.mips.bneg.d",
+  "llvm.mips.bneg.h",
+  "llvm.mips.bneg.w",
+  "llvm.mips.bnegi.b",
+  "llvm.mips.bnegi.d",
+  "llvm.mips.bnegi.h",
+  "llvm.mips.bnegi.w",
+  "llvm.mips.bnz.b",
+  "llvm.mips.bnz.d",
+  "llvm.mips.bnz.h",
+  "llvm.mips.bnz.v",
+  "llvm.mips.bnz.w",
+  "llvm.mips.bposge32",
+  "llvm.mips.bsel.v",
+  "llvm.mips.bseli.b",
+  "llvm.mips.bset.b",
+  "llvm.mips.bset.d",
+  "llvm.mips.bset.h",
+  "llvm.mips.bset.w",
+  "llvm.mips.bseti.b",
+  "llvm.mips.bseti.d",
+  "llvm.mips.bseti.h",
+  "llvm.mips.bseti.w",
+  "llvm.mips.bz.b",
+  "llvm.mips.bz.d",
+  "llvm.mips.bz.h",
+  "llvm.mips.bz.v",
+  "llvm.mips.bz.w",
+  "llvm.mips.ceq.b",
+  "llvm.mips.ceq.d",
+  "llvm.mips.ceq.h",
+  "llvm.mips.ceq.w",
+  "llvm.mips.ceqi.b",
+  "llvm.mips.ceqi.d",
+  "llvm.mips.ceqi.h",
+  "llvm.mips.ceqi.w",
+  "llvm.mips.cfcmsa",
+  "llvm.mips.cle.s.b",
+  "llvm.mips.cle.s.d",
+  "llvm.mips.cle.s.h",
+  "llvm.mips.cle.s.w",
+  "llvm.mips.cle.u.b",
+  "llvm.mips.cle.u.d",
+  "llvm.mips.cle.u.h",
+  "llvm.mips.cle.u.w",
+  "llvm.mips.clei.s.b",
+  "llvm.mips.clei.s.d",
+  "llvm.mips.clei.s.h",
+  "llvm.mips.clei.s.w",
+  "llvm.mips.clei.u.b",
+  "llvm.mips.clei.u.d",
+  "llvm.mips.clei.u.h",
+  "llvm.mips.clei.u.w",
+  "llvm.mips.clt.s.b",
+  "llvm.mips.clt.s.d",
+  "llvm.mips.clt.s.h",
+  "llvm.mips.clt.s.w",
+  "llvm.mips.clt.u.b",
+  "llvm.mips.clt.u.d",
+  "llvm.mips.clt.u.h",
+  "llvm.mips.clt.u.w",
+  "llvm.mips.clti.s.b",
+  "llvm.mips.clti.s.d",
+  "llvm.mips.clti.s.h",
+  "llvm.mips.clti.s.w",
+  "llvm.mips.clti.u.b",
+  "llvm.mips.clti.u.d",
+  "llvm.mips.clti.u.h",
+  "llvm.mips.clti.u.w",
+  "llvm.mips.cmp.eq.ph",
+  "llvm.mips.cmp.le.ph",
+  "llvm.mips.cmp.lt.ph",
+  "llvm.mips.cmpgdu.eq.qb",
+  "llvm.mips.cmpgdu.le.qb",
+  "llvm.mips.cmpgdu.lt.qb",
+  "llvm.mips.cmpgu.eq.qb",
+  "llvm.mips.cmpgu.le.qb",
+  "llvm.mips.cmpgu.lt.qb",
+  "llvm.mips.cmpu.eq.qb",
+  "llvm.mips.cmpu.le.qb",
+  "llvm.mips.cmpu.lt.qb",
+  "llvm.mips.copy.s.b",
+  "llvm.mips.copy.s.d",
+  "llvm.mips.copy.s.h",
+  "llvm.mips.copy.s.w",
+  "llvm.mips.copy.u.b",
+  "llvm.mips.copy.u.d",
+  "llvm.mips.copy.u.h",
+  "llvm.mips.copy.u.w",
+  "llvm.mips.ctcmsa",
+  "llvm.mips.div.s.b",
+  "llvm.mips.div.s.d",
+  "llvm.mips.div.s.h",
+  "llvm.mips.div.s.w",
+  "llvm.mips.div.u.b",
+  "llvm.mips.div.u.d",
+  "llvm.mips.div.u.h",
+  "llvm.mips.div.u.w",
+  "llvm.mips.dlsa",
+  "llvm.mips.dotp.s.d",
+  "llvm.mips.dotp.s.h",
+  "llvm.mips.dotp.s.w",
+  "llvm.mips.dotp.u.d",
+  "llvm.mips.dotp.u.h",
+  "llvm.mips.dotp.u.w",
+  "llvm.mips.dpa.w.ph",
+  "llvm.mips.dpadd.s.d",
+  "llvm.mips.dpadd.s.h",
+  "llvm.mips.dpadd.s.w",
+  "llvm.mips.dpadd.u.d",
+  "llvm.mips.dpadd.u.h",
+  "llvm.mips.dpadd.u.w",
+  "llvm.mips.dpaq.s.w.ph",
+  "llvm.mips.dpaq.sa.l.w",
+  "llvm.mips.dpaqx.s.w.ph",
+  "llvm.mips.dpaqx.sa.w.ph",
+  "llvm.mips.dpau.h.qbl",
+  "llvm.mips.dpau.h.qbr",
+  "llvm.mips.dpax.w.ph",
+  "llvm.mips.dps.w.ph",
+  "llvm.mips.dpsq.s.w.ph",
+  "llvm.mips.dpsq.sa.l.w",
+  "llvm.mips.dpsqx.s.w.ph",
+  "llvm.mips.dpsqx.sa.w.ph",
+  "llvm.mips.dpsu.h.qbl",
+  "llvm.mips.dpsu.h.qbr",
+  "llvm.mips.dpsub.s.d",
+  "llvm.mips.dpsub.s.h",
+  "llvm.mips.dpsub.s.w",
+  "llvm.mips.dpsub.u.d",
+  "llvm.mips.dpsub.u.h",
+  "llvm.mips.dpsub.u.w",
+  "llvm.mips.dpsx.w.ph",
+  "llvm.mips.extp",
+  "llvm.mips.extpdp",
+  "llvm.mips.extr.r.w",
+  "llvm.mips.extr.rs.w",
+  "llvm.mips.extr.s.h",
+  "llvm.mips.extr.w",
+  "llvm.mips.fadd.d",
+  "llvm.mips.fadd.w",
+  "llvm.mips.fcaf.d",
+  "llvm.mips.fcaf.w",
+  "llvm.mips.fceq.d",
+  "llvm.mips.fceq.w",
+  "llvm.mips.fclass.d",
+  "llvm.mips.fclass.w",
+  "llvm.mips.fcle.d",
+  "llvm.mips.fcle.w",
+  "llvm.mips.fclt.d",
+  "llvm.mips.fclt.w",
+  "llvm.mips.fcne.d",
+  "llvm.mips.fcne.w",
+  "llvm.mips.fcor.d",
+  "llvm.mips.fcor.w",
+  "llvm.mips.fcueq.d",
+  "llvm.mips.fcueq.w",
+  "llvm.mips.fcule.d",
+  "llvm.mips.fcule.w",
+  "llvm.mips.fcult.d",
+  "llvm.mips.fcult.w",
+  "llvm.mips.fcun.d",
+  "llvm.mips.fcun.w",
+  "llvm.mips.fcune.d",
+  "llvm.mips.fcune.w",
+  "llvm.mips.fdiv.d",
+  "llvm.mips.fdiv.w",
+  "llvm.mips.fexdo.h",
+  "llvm.mips.fexdo.w",
+  "llvm.mips.fexp2.d",
+  "llvm.mips.fexp2.w",
+  "llvm.mips.fexupl.d",
+  "llvm.mips.fexupl.w",
+  "llvm.mips.fexupr.d",
+  "llvm.mips.fexupr.w",
+  "llvm.mips.ffint.s.d",
+  "llvm.mips.ffint.s.w",
+  "llvm.mips.ffint.u.d",
+  "llvm.mips.ffint.u.w",
+  "llvm.mips.ffql.d",
+  "llvm.mips.ffql.w",
+  "llvm.mips.ffqr.d",
+  "llvm.mips.ffqr.w",
+  "llvm.mips.fill.b",
+  "llvm.mips.fill.d",
+  "llvm.mips.fill.h",
+  "llvm.mips.fill.w",
+  "llvm.mips.flog2.d",
+  "llvm.mips.flog2.w",
+  "llvm.mips.fmadd.d",
+  "llvm.mips.fmadd.w",
+  "llvm.mips.fmax.a.d",
+  "llvm.mips.fmax.a.w",
+  "llvm.mips.fmax.d",
+  "llvm.mips.fmax.w",
+  "llvm.mips.fmin.a.d",
+  "llvm.mips.fmin.a.w",
+  "llvm.mips.fmin.d",
+  "llvm.mips.fmin.w",
+  "llvm.mips.fmsub.d",
+  "llvm.mips.fmsub.w",
+  "llvm.mips.fmul.d",
+  "llvm.mips.fmul.w",
+  "llvm.mips.frcp.d",
+  "llvm.mips.frcp.w",
+  "llvm.mips.frint.d",
+  "llvm.mips.frint.w",
+  "llvm.mips.frsqrt.d",
+  "llvm.mips.frsqrt.w",
+  "llvm.mips.fsaf.d",
+  "llvm.mips.fsaf.w",
+  "llvm.mips.fseq.d",
+  "llvm.mips.fseq.w",
+  "llvm.mips.fsle.d",
+  "llvm.mips.fsle.w",
+  "llvm.mips.fslt.d",
+  "llvm.mips.fslt.w",
+  "llvm.mips.fsne.d",
+  "llvm.mips.fsne.w",
+  "llvm.mips.fsor.d",
+  "llvm.mips.fsor.w",
+  "llvm.mips.fsqrt.d",
+  "llvm.mips.fsqrt.w",
+  "llvm.mips.fsub.d",
+  "llvm.mips.fsub.w",
+  "llvm.mips.fsueq.d",
+  "llvm.mips.fsueq.w",
+  "llvm.mips.fsule.d",
+  "llvm.mips.fsule.w",
+  "llvm.mips.fsult.d",
+  "llvm.mips.fsult.w",
+  "llvm.mips.fsun.d",
+  "llvm.mips.fsun.w",
+  "llvm.mips.fsune.d",
+  "llvm.mips.fsune.w",
+  "llvm.mips.ftint.s.d",
+  "llvm.mips.ftint.s.w",
+  "llvm.mips.ftint.u.d",
+  "llvm.mips.ftint.u.w",
+  "llvm.mips.ftq.h",
+  "llvm.mips.ftq.w",
+  "llvm.mips.ftrunc.s.d",
+  "llvm.mips.ftrunc.s.w",
+  "llvm.mips.ftrunc.u.d",
+  "llvm.mips.ftrunc.u.w",
+  "llvm.mips.hadd.s.d",
+  "llvm.mips.hadd.s.h",
+  "llvm.mips.hadd.s.w",
+  "llvm.mips.hadd.u.d",
+  "llvm.mips.hadd.u.h",
+  "llvm.mips.hadd.u.w",
+  "llvm.mips.hsub.s.d",
+  "llvm.mips.hsub.s.h",
+  "llvm.mips.hsub.s.w",
+  "llvm.mips.hsub.u.d",
+  "llvm.mips.hsub.u.h",
+  "llvm.mips.hsub.u.w",
+  "llvm.mips.ilvev.b",
+  "llvm.mips.ilvev.d",
+  "llvm.mips.ilvev.h",
+  "llvm.mips.ilvev.w",
+  "llvm.mips.ilvl.b",
+  "llvm.mips.ilvl.d",
+  "llvm.mips.ilvl.h",
+  "llvm.mips.ilvl.w",
+  "llvm.mips.ilvod.b",
+  "llvm.mips.ilvod.d",
+  "llvm.mips.ilvod.h",
+  "llvm.mips.ilvod.w",
+  "llvm.mips.ilvr.b",
+  "llvm.mips.ilvr.d",
+  "llvm.mips.ilvr.h",
+  "llvm.mips.ilvr.w",
+  "llvm.mips.insert.b",
+  "llvm.mips.insert.d",
+  "llvm.mips.insert.h",
+  "llvm.mips.insert.w",
+  "llvm.mips.insv",
+  "llvm.mips.insve.b",
+  "llvm.mips.insve.d",
+  "llvm.mips.insve.h",
+  "llvm.mips.insve.w",
+  "llvm.mips.lbux",
+  "llvm.mips.ld.b",
+  "llvm.mips.ld.d",
+  "llvm.mips.ld.h",
+  "llvm.mips.ld.w",
+  "llvm.mips.ldi.b",
+  "llvm.mips.ldi.d",
+  "llvm.mips.ldi.h",
+  "llvm.mips.ldi.w",
+  "llvm.mips.lhx",
+  "llvm.mips.lsa",
+  "llvm.mips.lwx",
+  "llvm.mips.madd",
+  "llvm.mips.madd.q.h",
+  "llvm.mips.madd.q.w",
+  "llvm.mips.maddr.q.h",
+  "llvm.mips.maddr.q.w",
+  "llvm.mips.maddu",
+  "llvm.mips.maddv.b",
+  "llvm.mips.maddv.d",
+  "llvm.mips.maddv.h",
+  "llvm.mips.maddv.w",
+  "llvm.mips.maq.s.w.phl",
+  "llvm.mips.maq.s.w.phr",
+  "llvm.mips.maq.sa.w.phl",
+  "llvm.mips.maq.sa.w.phr",
+  "llvm.mips.max.a.b",
+  "llvm.mips.max.a.d",
+  "llvm.mips.max.a.h",
+  "llvm.mips.max.a.w",
+  "llvm.mips.max.s.b",
+  "llvm.mips.max.s.d",
+  "llvm.mips.max.s.h",
+  "llvm.mips.max.s.w",
+  "llvm.mips.max.u.b",
+  "llvm.mips.max.u.d",
+  "llvm.mips.max.u.h",
+  "llvm.mips.max.u.w",
+  "llvm.mips.maxi.s.b",
+  "llvm.mips.maxi.s.d",
+  "llvm.mips.maxi.s.h",
+  "llvm.mips.maxi.s.w",
+  "llvm.mips.maxi.u.b",
+  "llvm.mips.maxi.u.d",
+  "llvm.mips.maxi.u.h",
+  "llvm.mips.maxi.u.w",
+  "llvm.mips.min.a.b",
+  "llvm.mips.min.a.d",
+  "llvm.mips.min.a.h",
+  "llvm.mips.min.a.w",
+  "llvm.mips.min.s.b",
+  "llvm.mips.min.s.d",
+  "llvm.mips.min.s.h",
+  "llvm.mips.min.s.w",
+  "llvm.mips.min.u.b",
+  "llvm.mips.min.u.d",
+  "llvm.mips.min.u.h",
+  "llvm.mips.min.u.w",
+  "llvm.mips.mini.s.b",
+  "llvm.mips.mini.s.d",
+  "llvm.mips.mini.s.h",
+  "llvm.mips.mini.s.w",
+  "llvm.mips.mini.u.b",
+  "llvm.mips.mini.u.d",
+  "llvm.mips.mini.u.h",
+  "llvm.mips.mini.u.w",
+  "llvm.mips.mod.s.b",
+  "llvm.mips.mod.s.d",
+  "llvm.mips.mod.s.h",
+  "llvm.mips.mod.s.w",
+  "llvm.mips.mod.u.b",
+  "llvm.mips.mod.u.d",
+  "llvm.mips.mod.u.h",
+  "llvm.mips.mod.u.w",
+  "llvm.mips.modsub",
+  "llvm.mips.move.v",
+  "llvm.mips.msub",
+  "llvm.mips.msub.q.h",
+  "llvm.mips.msub.q.w",
+  "llvm.mips.msubr.q.h",
+  "llvm.mips.msubr.q.w",
+  "llvm.mips.msubu",
+  "llvm.mips.msubv.b",
+  "llvm.mips.msubv.d",
+  "llvm.mips.msubv.h",
+  "llvm.mips.msubv.w",
+  "llvm.mips.mthlip",
+  "llvm.mips.mul.ph",
+  "llvm.mips.mul.q.h",
+  "llvm.mips.mul.q.w",
+  "llvm.mips.mul.s.ph",
+  "llvm.mips.muleq.s.w.phl",
+  "llvm.mips.muleq.s.w.phr",
+  "llvm.mips.muleu.s.ph.qbl",
+  "llvm.mips.muleu.s.ph.qbr",
+  "llvm.mips.mulq.rs.ph",
+  "llvm.mips.mulq.rs.w",
+  "llvm.mips.mulq.s.ph",
+  "llvm.mips.mulq.s.w",
+  "llvm.mips.mulr.q.h",
+  "llvm.mips.mulr.q.w",
+  "llvm.mips.mulsa.w.ph",
+  "llvm.mips.mulsaq.s.w.ph",
+  "llvm.mips.mult",
+  "llvm.mips.multu",
+  "llvm.mips.mulv.b",
+  "llvm.mips.mulv.d",
+  "llvm.mips.mulv.h",
+  "llvm.mips.mulv.w",
+  "llvm.mips.nloc.b",
+  "llvm.mips.nloc.d",
+  "llvm.mips.nloc.h",
+  "llvm.mips.nloc.w",
+  "llvm.mips.nlzc.b",
+  "llvm.mips.nlzc.d",
+  "llvm.mips.nlzc.h",
+  "llvm.mips.nlzc.w",
+  "llvm.mips.nor.v",
+  "llvm.mips.nori.b",
+  "llvm.mips.or.v",
+  "llvm.mips.ori.b",
+  "llvm.mips.packrl.ph",
+  "llvm.mips.pckev.b",
+  "llvm.mips.pckev.d",
+  "llvm.mips.pckev.h",
+  "llvm.mips.pckev.w",
+  "llvm.mips.pckod.b",
+  "llvm.mips.pckod.d",
+  "llvm.mips.pckod.h",
+  "llvm.mips.pckod.w",
+  "llvm.mips.pcnt.b",
+  "llvm.mips.pcnt.d",
+  "llvm.mips.pcnt.h",
+  "llvm.mips.pcnt.w",
+  "llvm.mips.pick.ph",
+  "llvm.mips.pick.qb",
+  "llvm.mips.preceq.w.phl",
+  "llvm.mips.preceq.w.phr",
+  "llvm.mips.precequ.ph.qbl",
+  "llvm.mips.precequ.ph.qbla",
+  "llvm.mips.precequ.ph.qbr",
+  "llvm.mips.precequ.ph.qbra",
+  "llvm.mips.preceu.ph.qbl",
+  "llvm.mips.preceu.ph.qbla",
+  "llvm.mips.preceu.ph.qbr",
+  "llvm.mips.preceu.ph.qbra",
+  "llvm.mips.precr.qb.ph",
+  "llvm.mips.precr.sra.ph.w",
+  "llvm.mips.precr.sra.r.ph.w",
+  "llvm.mips.precrq.ph.w",
+  "llvm.mips.precrq.qb.ph",
+  "llvm.mips.precrq.rs.ph.w",
+  "llvm.mips.precrqu.s.qb.ph",
+  "llvm.mips.prepend",
+  "llvm.mips.raddu.w.qb",
+  "llvm.mips.rddsp",
+  "llvm.mips.repl.ph",
+  "llvm.mips.repl.qb",
+  "llvm.mips.sat.s.b",
+  "llvm.mips.sat.s.d",
+  "llvm.mips.sat.s.h",
+  "llvm.mips.sat.s.w",
+  "llvm.mips.sat.u.b",
+  "llvm.mips.sat.u.d",
+  "llvm.mips.sat.u.h",
+  "llvm.mips.sat.u.w",
+  "llvm.mips.shf.b",
+  "llvm.mips.shf.h",
+  "llvm.mips.shf.w",
+  "llvm.mips.shilo",
+  "llvm.mips.shll.ph",
+  "llvm.mips.shll.qb",
+  "llvm.mips.shll.s.ph",
+  "llvm.mips.shll.s.w",
+  "llvm.mips.shra.ph",
+  "llvm.mips.shra.qb",
+  "llvm.mips.shra.r.ph",
+  "llvm.mips.shra.r.qb",
+  "llvm.mips.shra.r.w",
+  "llvm.mips.shrl.ph",
+  "llvm.mips.shrl.qb",
+  "llvm.mips.sld.b",
+  "llvm.mips.sld.d",
+  "llvm.mips.sld.h",
+  "llvm.mips.sld.w",
+  "llvm.mips.sldi.b",
+  "llvm.mips.sldi.d",
+  "llvm.mips.sldi.h",
+  "llvm.mips.sldi.w",
+  "llvm.mips.sll.b",
+  "llvm.mips.sll.d",
+  "llvm.mips.sll.h",
+  "llvm.mips.sll.w",
+  "llvm.mips.slli.b",
+  "llvm.mips.slli.d",
+  "llvm.mips.slli.h",
+  "llvm.mips.slli.w",
+  "llvm.mips.splat.b",
+  "llvm.mips.splat.d",
+  "llvm.mips.splat.h",
+  "llvm.mips.splat.w",
+  "llvm.mips.splati.b",
+  "llvm.mips.splati.d",
+  "llvm.mips.splati.h",
+  "llvm.mips.splati.w",
+  "llvm.mips.sra.b",
+  "llvm.mips.sra.d",
+  "llvm.mips.sra.h",
+  "llvm.mips.sra.w",
+  "llvm.mips.srai.b",
+  "llvm.mips.srai.d",
+  "llvm.mips.srai.h",
+  "llvm.mips.srai.w",
+  "llvm.mips.srar.b",
+  "llvm.mips.srar.d",
+  "llvm.mips.srar.h",
+  "llvm.mips.srar.w",
+  "llvm.mips.srari.b",
+  "llvm.mips.srari.d",
+  "llvm.mips.srari.h",
+  "llvm.mips.srari.w",
+  "llvm.mips.srl.b",
+  "llvm.mips.srl.d",
+  "llvm.mips.srl.h",
+  "llvm.mips.srl.w",
+  "llvm.mips.srli.b",
+  "llvm.mips.srli.d",
+  "llvm.mips.srli.h",
+  "llvm.mips.srli.w",
+  "llvm.mips.srlr.b",
+  "llvm.mips.srlr.d",
+  "llvm.mips.srlr.h",
+  "llvm.mips.srlr.w",
+  "llvm.mips.srlri.b",
+  "llvm.mips.srlri.d",
+  "llvm.mips.srlri.h",
+  "llvm.mips.srlri.w",
+  "llvm.mips.st.b",
+  "llvm.mips.st.d",
+  "llvm.mips.st.h",
+  "llvm.mips.st.w",
+  "llvm.mips.subq.ph",
+  "llvm.mips.subq.s.ph",
+  "llvm.mips.subq.s.w",
+  "llvm.mips.subqh.ph",
+  "llvm.mips.subqh.r.ph",
+  "llvm.mips.subqh.r.w",
+  "llvm.mips.subqh.w",
+  "llvm.mips.subs.s.b",
+  "llvm.mips.subs.s.d",
+  "llvm.mips.subs.s.h",
+  "llvm.mips.subs.s.w",
+  "llvm.mips.subs.u.b",
+  "llvm.mips.subs.u.d",
+  "llvm.mips.subs.u.h",
+  "llvm.mips.subs.u.w",
+  "llvm.mips.subsus.u.b",
+  "llvm.mips.subsus.u.d",
+  "llvm.mips.subsus.u.h",
+  "llvm.mips.subsus.u.w",
+  "llvm.mips.subsuu.s.b",
+  "llvm.mips.subsuu.s.d",
+  "llvm.mips.subsuu.s.h",
+  "llvm.mips.subsuu.s.w",
+  "llvm.mips.subu.ph",
+  "llvm.mips.subu.qb",
+  "llvm.mips.subu.s.ph",
+  "llvm.mips.subu.s.qb",
+  "llvm.mips.subuh.qb",
+  "llvm.mips.subuh.r.qb",
+  "llvm.mips.subv.b",
+  "llvm.mips.subv.d",
+  "llvm.mips.subv.h",
+  "llvm.mips.subv.w",
+  "llvm.mips.subvi.b",
+  "llvm.mips.subvi.d",
+  "llvm.mips.subvi.h",
+  "llvm.mips.subvi.w",
+  "llvm.mips.vshf.b",
+  "llvm.mips.vshf.d",
+  "llvm.mips.vshf.h",
+  "llvm.mips.vshf.w",
+  "llvm.mips.wrdsp",
+  "llvm.mips.xor.v",
+  "llvm.mips.xori.b",
+  "llvm.nvvm.add.rm.d",
+  "llvm.nvvm.add.rm.f",
+  "llvm.nvvm.add.rm.ftz.f",
+  "llvm.nvvm.add.rn.d",
+  "llvm.nvvm.add.rn.f",
+  "llvm.nvvm.add.rn.ftz.f",
+  "llvm.nvvm.add.rp.d",
+  "llvm.nvvm.add.rp.f",
+  "llvm.nvvm.add.rp.ftz.f",
+  "llvm.nvvm.add.rz.d",
+  "llvm.nvvm.add.rz.f",
+  "llvm.nvvm.add.rz.ftz.f",
+  "llvm.nvvm.atomic.add.gen.f.cta",
+  "llvm.nvvm.atomic.add.gen.f.sys",
+  "llvm.nvvm.atomic.add.gen.i.cta",
+  "llvm.nvvm.atomic.add.gen.i.sys",
+  "llvm.nvvm.atomic.and.gen.i.cta",
+  "llvm.nvvm.atomic.and.gen.i.sys",
+  "llvm.nvvm.atomic.cas.gen.i.cta",
+  "llvm.nvvm.atomic.cas.gen.i.sys",
+  "llvm.nvvm.atomic.dec.gen.i.cta",
+  "llvm.nvvm.atomic.dec.gen.i.sys",
+  "llvm.nvvm.atomic.exch.gen.i.cta",
+  "llvm.nvvm.atomic.exch.gen.i.sys",
+  "llvm.nvvm.atomic.inc.gen.i.cta",
+  "llvm.nvvm.atomic.inc.gen.i.sys",
+  "llvm.nvvm.atomic.load.add.f32",
+  "llvm.nvvm.atomic.load.add.f64",
+  "llvm.nvvm.atomic.load.dec.32",
+  "llvm.nvvm.atomic.load.inc.32",
+  "llvm.nvvm.atomic.max.gen.i.cta",
+  "llvm.nvvm.atomic.max.gen.i.sys",
+  "llvm.nvvm.atomic.min.gen.i.cta",
+  "llvm.nvvm.atomic.min.gen.i.sys",
+  "llvm.nvvm.atomic.or.gen.i.cta",
+  "llvm.nvvm.atomic.or.gen.i.sys",
+  "llvm.nvvm.atomic.xor.gen.i.cta",
+  "llvm.nvvm.atomic.xor.gen.i.sys",
+  "llvm.nvvm.bar.sync",
+  "llvm.nvvm.bar.warp.sync",
+  "llvm.nvvm.barrier",
+  "llvm.nvvm.barrier.n",
+  "llvm.nvvm.barrier.sync",
+  "llvm.nvvm.barrier.sync.cnt",
+  "llvm.nvvm.barrier0",
+  "llvm.nvvm.barrier0.and",
+  "llvm.nvvm.barrier0.or",
+  "llvm.nvvm.barrier0.popc",
+  "llvm.nvvm.bitcast.d2ll",
+  "llvm.nvvm.bitcast.f2i",
+  "llvm.nvvm.bitcast.i2f",
+  "llvm.nvvm.bitcast.ll2d",
+  "llvm.nvvm.ceil.d",
+  "llvm.nvvm.ceil.f",
+  "llvm.nvvm.ceil.ftz.f",
+  "llvm.nvvm.compiler.error",
+  "llvm.nvvm.compiler.warn",
+  "llvm.nvvm.cos.approx.f",
+  "llvm.nvvm.cos.approx.ftz.f",
+  "llvm.nvvm.d2f.rm",
+  "llvm.nvvm.d2f.rm.ftz",
+  "llvm.nvvm.d2f.rn",
+  "llvm.nvvm.d2f.rn.ftz",
+  "llvm.nvvm.d2f.rp",
+  "llvm.nvvm.d2f.rp.ftz",
+  "llvm.nvvm.d2f.rz",
+  "llvm.nvvm.d2f.rz.ftz",
+  "llvm.nvvm.d2i.hi",
+  "llvm.nvvm.d2i.lo",
+  "llvm.nvvm.d2i.rm",
+  "llvm.nvvm.d2i.rn",
+  "llvm.nvvm.d2i.rp",
+  "llvm.nvvm.d2i.rz",
+  "llvm.nvvm.d2ll.rm",
+  "llvm.nvvm.d2ll.rn",
+  "llvm.nvvm.d2ll.rp",
+  "llvm.nvvm.d2ll.rz",
+  "llvm.nvvm.d2ui.rm",
+  "llvm.nvvm.d2ui.rn",
+  "llvm.nvvm.d2ui.rp",
+  "llvm.nvvm.d2ui.rz",
+  "llvm.nvvm.d2ull.rm",
+  "llvm.nvvm.d2ull.rn",
+  "llvm.nvvm.d2ull.rp",
+  "llvm.nvvm.d2ull.rz",
+  "llvm.nvvm.div.approx.f",
+  "llvm.nvvm.div.approx.ftz.f",
+  "llvm.nvvm.div.rm.d",
+  "llvm.nvvm.div.rm.f",
+  "llvm.nvvm.div.rm.ftz.f",
+  "llvm.nvvm.div.rn.d",
+  "llvm.nvvm.div.rn.f",
+  "llvm.nvvm.div.rn.ftz.f",
+  "llvm.nvvm.div.rp.d",
+  "llvm.nvvm.div.rp.f",
+  "llvm.nvvm.div.rp.ftz.f",
+  "llvm.nvvm.div.rz.d",
+  "llvm.nvvm.div.rz.f",
+  "llvm.nvvm.div.rz.ftz.f",
+  "llvm.nvvm.ex2.approx.d",
+  "llvm.nvvm.ex2.approx.f",
+  "llvm.nvvm.ex2.approx.ftz.f",
+  "llvm.nvvm.f2h.rn",
+  "llvm.nvvm.f2h.rn.ftz",
+  "llvm.nvvm.f2i.rm",
+  "llvm.nvvm.f2i.rm.ftz",
+  "llvm.nvvm.f2i.rn",
+  "llvm.nvvm.f2i.rn.ftz",
+  "llvm.nvvm.f2i.rp",
+  "llvm.nvvm.f2i.rp.ftz",
+  "llvm.nvvm.f2i.rz",
+  "llvm.nvvm.f2i.rz.ftz",
+  "llvm.nvvm.f2ll.rm",
+  "llvm.nvvm.f2ll.rm.ftz",
+  "llvm.nvvm.f2ll.rn",
+  "llvm.nvvm.f2ll.rn.ftz",
+  "llvm.nvvm.f2ll.rp",
+  "llvm.nvvm.f2ll.rp.ftz",
+  "llvm.nvvm.f2ll.rz",
+  "llvm.nvvm.f2ll.rz.ftz",
+  "llvm.nvvm.f2ui.rm",
+  "llvm.nvvm.f2ui.rm.ftz",
+  "llvm.nvvm.f2ui.rn",
+  "llvm.nvvm.f2ui.rn.ftz",
+  "llvm.nvvm.f2ui.rp",
+  "llvm.nvvm.f2ui.rp.ftz",
+  "llvm.nvvm.f2ui.rz",
+  "llvm.nvvm.f2ui.rz.ftz",
+  "llvm.nvvm.f2ull.rm",
+  "llvm.nvvm.f2ull.rm.ftz",
+  "llvm.nvvm.f2ull.rn",
+  "llvm.nvvm.f2ull.rn.ftz",
+  "llvm.nvvm.f2ull.rp",
+  "llvm.nvvm.f2ull.rp.ftz",
+  "llvm.nvvm.f2ull.rz",
+  "llvm.nvvm.f2ull.rz.ftz",
+  "llvm.nvvm.fabs.d",
+  "llvm.nvvm.fabs.f",
+  "llvm.nvvm.fabs.ftz.f",
+  "llvm.nvvm.floor.d",
+  "llvm.nvvm.floor.f",
+  "llvm.nvvm.floor.ftz.f",
+  "llvm.nvvm.fma.rm.d",
+  "llvm.nvvm.fma.rm.f",
+  "llvm.nvvm.fma.rm.ftz.f",
+  "llvm.nvvm.fma.rn.d",
+  "llvm.nvvm.fma.rn.f",
+  "llvm.nvvm.fma.rn.ftz.f",
+  "llvm.nvvm.fma.rp.d",
+  "llvm.nvvm.fma.rp.f",
+  "llvm.nvvm.fma.rp.ftz.f",
+  "llvm.nvvm.fma.rz.d",
+  "llvm.nvvm.fma.rz.f",
+  "llvm.nvvm.fma.rz.ftz.f",
+  "llvm.nvvm.fmax.d",
+  "llvm.nvvm.fmax.f",
+  "llvm.nvvm.fmax.ftz.f",
+  "llvm.nvvm.fmin.d",
+  "llvm.nvvm.fmin.f",
+  "llvm.nvvm.fmin.ftz.f",
+  "llvm.nvvm.fns",
+  "llvm.nvvm.i2d.rm",
+  "llvm.nvvm.i2d.rn",
+  "llvm.nvvm.i2d.rp",
+  "llvm.nvvm.i2d.rz",
+  "llvm.nvvm.i2f.rm",
+  "llvm.nvvm.i2f.rn",
+  "llvm.nvvm.i2f.rp",
+  "llvm.nvvm.i2f.rz",
+  "llvm.nvvm.isspacep.const",
+  "llvm.nvvm.isspacep.global",
+  "llvm.nvvm.isspacep.local",
+  "llvm.nvvm.isspacep.shared",
+  "llvm.nvvm.istypep.sampler",
+  "llvm.nvvm.istypep.surface",
+  "llvm.nvvm.istypep.texture",
+  "llvm.nvvm.ldg.global.f",
+  "llvm.nvvm.ldg.global.i",
+  "llvm.nvvm.ldg.global.p",
+  "llvm.nvvm.ldu.global.f",
+  "llvm.nvvm.ldu.global.i",
+  "llvm.nvvm.ldu.global.p",
+  "llvm.nvvm.lg2.approx.d",
+  "llvm.nvvm.lg2.approx.f",
+  "llvm.nvvm.lg2.approx.ftz.f",
+  "llvm.nvvm.ll2d.rm",
+  "llvm.nvvm.ll2d.rn",
+  "llvm.nvvm.ll2d.rp",
+  "llvm.nvvm.ll2d.rz",
+  "llvm.nvvm.ll2f.rm",
+  "llvm.nvvm.ll2f.rn",
+  "llvm.nvvm.ll2f.rp",
+  "llvm.nvvm.ll2f.rz",
+  "llvm.nvvm.lohi.i2d",
+  "llvm.nvvm.match.all.sync.i32p",
+  "llvm.nvvm.match.all.sync.i64p",
+  "llvm.nvvm.match.any.sync.i32",
+  "llvm.nvvm.match.any.sync.i64",
+  "llvm.nvvm.membar.cta",
+  "llvm.nvvm.membar.gl",
+  "llvm.nvvm.membar.sys",
+  "llvm.nvvm.move.double",
+  "llvm.nvvm.move.float",
+  "llvm.nvvm.move.i16",
+  "llvm.nvvm.move.i32",
+  "llvm.nvvm.move.i64",
+  "llvm.nvvm.move.ptr",
+  "llvm.nvvm.mul.rm.d",
+  "llvm.nvvm.mul.rm.f",
+  "llvm.nvvm.mul.rm.ftz.f",
+  "llvm.nvvm.mul.rn.d",
+  "llvm.nvvm.mul.rn.f",
+  "llvm.nvvm.mul.rn.ftz.f",
+  "llvm.nvvm.mul.rp.d",
+  "llvm.nvvm.mul.rp.f",
+  "llvm.nvvm.mul.rp.ftz.f",
+  "llvm.nvvm.mul.rz.d",
+  "llvm.nvvm.mul.rz.f",
+  "llvm.nvvm.mul.rz.ftz.f",
+  "llvm.nvvm.mul24.i",
+  "llvm.nvvm.mul24.ui",
+  "llvm.nvvm.mulhi.i",
+  "llvm.nvvm.mulhi.ll",
+  "llvm.nvvm.mulhi.ui",
+  "llvm.nvvm.mulhi.ull",
+  "llvm.nvvm.prmt",
+  "llvm.nvvm.ptr.constant.to.gen",
+  "llvm.nvvm.ptr.gen.to.constant",
+  "llvm.nvvm.ptr.gen.to.global",
+  "llvm.nvvm.ptr.gen.to.local",
+  "llvm.nvvm.ptr.gen.to.param",
+  "llvm.nvvm.ptr.gen.to.shared",
+  "llvm.nvvm.ptr.global.to.gen",
+  "llvm.nvvm.ptr.local.to.gen",
+  "llvm.nvvm.ptr.shared.to.gen",
+  "llvm.nvvm.rcp.approx.ftz.d",
+  "llvm.nvvm.rcp.rm.d",
+  "llvm.nvvm.rcp.rm.f",
+  "llvm.nvvm.rcp.rm.ftz.f",
+  "llvm.nvvm.rcp.rn.d",
+  "llvm.nvvm.rcp.rn.f",
+  "llvm.nvvm.rcp.rn.ftz.f",
+  "llvm.nvvm.rcp.rp.d",
+  "llvm.nvvm.rcp.rp.f",
+  "llvm.nvvm.rcp.rp.ftz.f",
+  "llvm.nvvm.rcp.rz.d",
+  "llvm.nvvm.rcp.rz.f",
+  "llvm.nvvm.rcp.rz.ftz.f",
+  "llvm.nvvm.read.ptx.sreg.clock",
+  "llvm.nvvm.read.ptx.sreg.clock64",
+  "llvm.nvvm.read.ptx.sreg.ctaid.w",
+  "llvm.nvvm.read.ptx.sreg.ctaid.x",
+  "llvm.nvvm.read.ptx.sreg.ctaid.y",
+  "llvm.nvvm.read.ptx.sreg.ctaid.z",
+  "llvm.nvvm.read.ptx.sreg.envreg0",
+  "llvm.nvvm.read.ptx.sreg.envreg1",
+  "llvm.nvvm.read.ptx.sreg.envreg10",
+  "llvm.nvvm.read.ptx.sreg.envreg11",
+  "llvm.nvvm.read.ptx.sreg.envreg12",
+  "llvm.nvvm.read.ptx.sreg.envreg13",
+  "llvm.nvvm.read.ptx.sreg.envreg14",
+  "llvm.nvvm.read.ptx.sreg.envreg15",
+  "llvm.nvvm.read.ptx.sreg.envreg16",
+  "llvm.nvvm.read.ptx.sreg.envreg17",
+  "llvm.nvvm.read.ptx.sreg.envreg18",
+  "llvm.nvvm.read.ptx.sreg.envreg19",
+  "llvm.nvvm.read.ptx.sreg.envreg2",
+  "llvm.nvvm.read.ptx.sreg.envreg20",
+  "llvm.nvvm.read.ptx.sreg.envreg21",
+  "llvm.nvvm.read.ptx.sreg.envreg22",
+  "llvm.nvvm.read.ptx.sreg.envreg23",
+  "llvm.nvvm.read.ptx.sreg.envreg24",
+  "llvm.nvvm.read.ptx.sreg.envreg25",
+  "llvm.nvvm.read.ptx.sreg.envreg26",
+  "llvm.nvvm.read.ptx.sreg.envreg27",
+  "llvm.nvvm.read.ptx.sreg.envreg28",
+  "llvm.nvvm.read.ptx.sreg.envreg29",
+  "llvm.nvvm.read.ptx.sreg.envreg3",
+  "llvm.nvvm.read.ptx.sreg.envreg30",
+  "llvm.nvvm.read.ptx.sreg.envreg31",
+  "llvm.nvvm.read.ptx.sreg.envreg4",
+  "llvm.nvvm.read.ptx.sreg.envreg5",
+  "llvm.nvvm.read.ptx.sreg.envreg6",
+  "llvm.nvvm.read.ptx.sreg.envreg7",
+  "llvm.nvvm.read.ptx.sreg.envreg8",
+  "llvm.nvvm.read.ptx.sreg.envreg9",
+  "llvm.nvvm.read.ptx.sreg.gridid",
+  "llvm.nvvm.read.ptx.sreg.laneid",
+  "llvm.nvvm.read.ptx.sreg.lanemask.eq",
+  "llvm.nvvm.read.ptx.sreg.lanemask.ge",
+  "llvm.nvvm.read.ptx.sreg.lanemask.gt",
+  "llvm.nvvm.read.ptx.sreg.lanemask.le",
+  "llvm.nvvm.read.ptx.sreg.lanemask.lt",
+  "llvm.nvvm.read.ptx.sreg.nctaid.w",
+  "llvm.nvvm.read.ptx.sreg.nctaid.x",
+  "llvm.nvvm.read.ptx.sreg.nctaid.y",
+  "llvm.nvvm.read.ptx.sreg.nctaid.z",
+  "llvm.nvvm.read.ptx.sreg.nsmid",
+  "llvm.nvvm.read.ptx.sreg.ntid.w",
+  "llvm.nvvm.read.ptx.sreg.ntid.x",
+  "llvm.nvvm.read.ptx.sreg.ntid.y",
+  "llvm.nvvm.read.ptx.sreg.ntid.z",
+  "llvm.nvvm.read.ptx.sreg.nwarpid",
+  "llvm.nvvm.read.ptx.sreg.pm0",
+  "llvm.nvvm.read.ptx.sreg.pm1",
+  "llvm.nvvm.read.ptx.sreg.pm2",
+  "llvm.nvvm.read.ptx.sreg.pm3",
+  "llvm.nvvm.read.ptx.sreg.smid",
+  "llvm.nvvm.read.ptx.sreg.tid.w",
+  "llvm.nvvm.read.ptx.sreg.tid.x",
+  "llvm.nvvm.read.ptx.sreg.tid.y",
+  "llvm.nvvm.read.ptx.sreg.tid.z",
+  "llvm.nvvm.read.ptx.sreg.warpid",
+  "llvm.nvvm.read.ptx.sreg.warpsize",
+  "llvm.nvvm.reflect",
+  "llvm.nvvm.rotate.b32",
+  "llvm.nvvm.rotate.b64",
+  "llvm.nvvm.rotate.right.b64",
+  "llvm.nvvm.round.d",
+  "llvm.nvvm.round.f",
+  "llvm.nvvm.round.ftz.f",
+  "llvm.nvvm.rsqrt.approx.d",
+  "llvm.nvvm.rsqrt.approx.f",
+  "llvm.nvvm.rsqrt.approx.ftz.f",
+  "llvm.nvvm.sad.i",
+  "llvm.nvvm.sad.ui",
+  "llvm.nvvm.saturate.d",
+  "llvm.nvvm.saturate.f",
+  "llvm.nvvm.saturate.ftz.f",
+  "llvm.nvvm.shfl.bfly.f32",
+  "llvm.nvvm.shfl.bfly.i32",
+  "llvm.nvvm.shfl.down.f32",
+  "llvm.nvvm.shfl.down.i32",
+  "llvm.nvvm.shfl.idx.f32",
+  "llvm.nvvm.shfl.idx.i32",
+  "llvm.nvvm.shfl.sync.bfly.f32",
+  "llvm.nvvm.shfl.sync.bfly.i32",
+  "llvm.nvvm.shfl.sync.down.f32",
+  "llvm.nvvm.shfl.sync.down.i32",
+  "llvm.nvvm.shfl.sync.idx.f32",
+  "llvm.nvvm.shfl.sync.idx.i32",
+  "llvm.nvvm.shfl.sync.up.f32",
+  "llvm.nvvm.shfl.sync.up.i32",
+  "llvm.nvvm.shfl.up.f32",
+  "llvm.nvvm.shfl.up.i32",
+  "llvm.nvvm.sin.approx.f",
+  "llvm.nvvm.sin.approx.ftz.f",
+  "llvm.nvvm.sqrt.approx.f",
+  "llvm.nvvm.sqrt.approx.ftz.f",
+  "llvm.nvvm.sqrt.f",
+  "llvm.nvvm.sqrt.rm.d",
+  "llvm.nvvm.sqrt.rm.f",
+  "llvm.nvvm.sqrt.rm.ftz.f",
+  "llvm.nvvm.sqrt.rn.d",
+  "llvm.nvvm.sqrt.rn.f",
+  "llvm.nvvm.sqrt.rn.ftz.f",
+  "llvm.nvvm.sqrt.rp.d",
+  "llvm.nvvm.sqrt.rp.f",
+  "llvm.nvvm.sqrt.rp.ftz.f",
+  "llvm.nvvm.sqrt.rz.d",
+  "llvm.nvvm.sqrt.rz.f",
+  "llvm.nvvm.sqrt.rz.ftz.f",
+  "llvm.nvvm.suld.1d.array.i16.clamp",
+  "llvm.nvvm.suld.1d.array.i16.trap",
+  "llvm.nvvm.suld.1d.array.i16.zero",
+  "llvm.nvvm.suld.1d.array.i32.clamp",
+  "llvm.nvvm.suld.1d.array.i32.trap",
+  "llvm.nvvm.suld.1d.array.i32.zero",
+  "llvm.nvvm.suld.1d.array.i64.clamp",
+  "llvm.nvvm.suld.1d.array.i64.trap",
+  "llvm.nvvm.suld.1d.array.i64.zero",
+  "llvm.nvvm.suld.1d.array.i8.clamp",
+  "llvm.nvvm.suld.1d.array.i8.trap",
+  "llvm.nvvm.suld.1d.array.i8.zero",
+  "llvm.nvvm.suld.1d.array.v2i16.clamp",
+  "llvm.nvvm.suld.1d.array.v2i16.trap",
+  "llvm.nvvm.suld.1d.array.v2i16.zero",
+  "llvm.nvvm.suld.1d.array.v2i32.clamp",
+  "llvm.nvvm.suld.1d.array.v2i32.trap",
+  "llvm.nvvm.suld.1d.array.v2i32.zero",
+  "llvm.nvvm.suld.1d.array.v2i64.clamp",
+  "llvm.nvvm.suld.1d.array.v2i64.trap",
+  "llvm.nvvm.suld.1d.array.v2i64.zero",
+  "llvm.nvvm.suld.1d.array.v2i8.clamp",
+  "llvm.nvvm.suld.1d.array.v2i8.trap",
+  "llvm.nvvm.suld.1d.array.v2i8.zero",
+  "llvm.nvvm.suld.1d.array.v4i16.clamp",
+  "llvm.nvvm.suld.1d.array.v4i16.trap",
+  "llvm.nvvm.suld.1d.array.v4i16.zero",
+  "llvm.nvvm.suld.1d.array.v4i32.clamp",
+  "llvm.nvvm.suld.1d.array.v4i32.trap",
+  "llvm.nvvm.suld.1d.array.v4i32.zero",
+  "llvm.nvvm.suld.1d.array.v4i8.clamp",
+  "llvm.nvvm.suld.1d.array.v4i8.trap",
+  "llvm.nvvm.suld.1d.array.v4i8.zero",
+  "llvm.nvvm.suld.1d.i16.clamp",
+  "llvm.nvvm.suld.1d.i16.trap",
+  "llvm.nvvm.suld.1d.i16.zero",
+  "llvm.nvvm.suld.1d.i32.clamp",
+  "llvm.nvvm.suld.1d.i32.trap",
+  "llvm.nvvm.suld.1d.i32.zero",
+  "llvm.nvvm.suld.1d.i64.clamp",
+  "llvm.nvvm.suld.1d.i64.trap",
+  "llvm.nvvm.suld.1d.i64.zero",
+  "llvm.nvvm.suld.1d.i8.clamp",
+  "llvm.nvvm.suld.1d.i8.trap",
+  "llvm.nvvm.suld.1d.i8.zero",
+  "llvm.nvvm.suld.1d.v2i16.clamp",
+  "llvm.nvvm.suld.1d.v2i16.trap",
+  "llvm.nvvm.suld.1d.v2i16.zero",
+  "llvm.nvvm.suld.1d.v2i32.clamp",
+  "llvm.nvvm.suld.1d.v2i32.trap",
+  "llvm.nvvm.suld.1d.v2i32.zero",
+  "llvm.nvvm.suld.1d.v2i64.clamp",
+  "llvm.nvvm.suld.1d.v2i64.trap",
+  "llvm.nvvm.suld.1d.v2i64.zero",
+  "llvm.nvvm.suld.1d.v2i8.clamp",
+  "llvm.nvvm.suld.1d.v2i8.trap",
+  "llvm.nvvm.suld.1d.v2i8.zero",
+  "llvm.nvvm.suld.1d.v4i16.clamp",
+  "llvm.nvvm.suld.1d.v4i16.trap",
+  "llvm.nvvm.suld.1d.v4i16.zero",
+  "llvm.nvvm.suld.1d.v4i32.clamp",
+  "llvm.nvvm.suld.1d.v4i32.trap",
+  "llvm.nvvm.suld.1d.v4i32.zero",
+  "llvm.nvvm.suld.1d.v4i8.clamp",
+  "llvm.nvvm.suld.1d.v4i8.trap",
+  "llvm.nvvm.suld.1d.v4i8.zero",
+  "llvm.nvvm.suld.2d.array.i16.clamp",
+  "llvm.nvvm.suld.2d.array.i16.trap",
+  "llvm.nvvm.suld.2d.array.i16.zero",
+  "llvm.nvvm.suld.2d.array.i32.clamp",
+  "llvm.nvvm.suld.2d.array.i32.trap",
+  "llvm.nvvm.suld.2d.array.i32.zero",
+  "llvm.nvvm.suld.2d.array.i64.clamp",
+  "llvm.nvvm.suld.2d.array.i64.trap",
+  "llvm.nvvm.suld.2d.array.i64.zero",
+  "llvm.nvvm.suld.2d.array.i8.clamp",
+  "llvm.nvvm.suld.2d.array.i8.trap",
+  "llvm.nvvm.suld.2d.array.i8.zero",
+  "llvm.nvvm.suld.2d.array.v2i16.clamp",
+  "llvm.nvvm.suld.2d.array.v2i16.trap",
+  "llvm.nvvm.suld.2d.array.v2i16.zero",
+  "llvm.nvvm.suld.2d.array.v2i32.clamp",
+  "llvm.nvvm.suld.2d.array.v2i32.trap",
+  "llvm.nvvm.suld.2d.array.v2i32.zero",
+  "llvm.nvvm.suld.2d.array.v2i64.clamp",
+  "llvm.nvvm.suld.2d.array.v2i64.trap",
+  "llvm.nvvm.suld.2d.array.v2i64.zero",
+  "llvm.nvvm.suld.2d.array.v2i8.clamp",
+  "llvm.nvvm.suld.2d.array.v2i8.trap",
+  "llvm.nvvm.suld.2d.array.v2i8.zero",
+  "llvm.nvvm.suld.2d.array.v4i16.clamp",
+  "llvm.nvvm.suld.2d.array.v4i16.trap",
+  "llvm.nvvm.suld.2d.array.v4i16.zero",
+  "llvm.nvvm.suld.2d.array.v4i32.clamp",
+  "llvm.nvvm.suld.2d.array.v4i32.trap",
+  "llvm.nvvm.suld.2d.array.v4i32.zero",
+  "llvm.nvvm.suld.2d.array.v4i8.clamp",
+  "llvm.nvvm.suld.2d.array.v4i8.trap",
+  "llvm.nvvm.suld.2d.array.v4i8.zero",
+  "llvm.nvvm.suld.2d.i16.clamp",
+  "llvm.nvvm.suld.2d.i16.trap",
+  "llvm.nvvm.suld.2d.i16.zero",
+  "llvm.nvvm.suld.2d.i32.clamp",
+  "llvm.nvvm.suld.2d.i32.trap",
+  "llvm.nvvm.suld.2d.i32.zero",
+  "llvm.nvvm.suld.2d.i64.clamp",
+  "llvm.nvvm.suld.2d.i64.trap",
+  "llvm.nvvm.suld.2d.i64.zero",
+  "llvm.nvvm.suld.2d.i8.clamp",
+  "llvm.nvvm.suld.2d.i8.trap",
+  "llvm.nvvm.suld.2d.i8.zero",
+  "llvm.nvvm.suld.2d.v2i16.clamp",
+  "llvm.nvvm.suld.2d.v2i16.trap",
+  "llvm.nvvm.suld.2d.v2i16.zero",
+  "llvm.nvvm.suld.2d.v2i32.clamp",
+  "llvm.nvvm.suld.2d.v2i32.trap",
+  "llvm.nvvm.suld.2d.v2i32.zero",
+  "llvm.nvvm.suld.2d.v2i64.clamp",
+  "llvm.nvvm.suld.2d.v2i64.trap",
+  "llvm.nvvm.suld.2d.v2i64.zero",
+  "llvm.nvvm.suld.2d.v2i8.clamp",
+  "llvm.nvvm.suld.2d.v2i8.trap",
+  "llvm.nvvm.suld.2d.v2i8.zero",
+  "llvm.nvvm.suld.2d.v4i16.clamp",
+  "llvm.nvvm.suld.2d.v4i16.trap",
+  "llvm.nvvm.suld.2d.v4i16.zero",
+  "llvm.nvvm.suld.2d.v4i32.clamp",
+  "llvm.nvvm.suld.2d.v4i32.trap",
+  "llvm.nvvm.suld.2d.v4i32.zero",
+  "llvm.nvvm.suld.2d.v4i8.clamp",
+  "llvm.nvvm.suld.2d.v4i8.trap",
+  "llvm.nvvm.suld.2d.v4i8.zero",
+  "llvm.nvvm.suld.3d.i16.clamp",
+  "llvm.nvvm.suld.3d.i16.trap",
+  "llvm.nvvm.suld.3d.i16.zero",
+  "llvm.nvvm.suld.3d.i32.clamp",
+  "llvm.nvvm.suld.3d.i32.trap",
+  "llvm.nvvm.suld.3d.i32.zero",
+  "llvm.nvvm.suld.3d.i64.clamp",
+  "llvm.nvvm.suld.3d.i64.trap",
+  "llvm.nvvm.suld.3d.i64.zero",
+  "llvm.nvvm.suld.3d.i8.clamp",
+  "llvm.nvvm.suld.3d.i8.trap",
+  "llvm.nvvm.suld.3d.i8.zero",
+  "llvm.nvvm.suld.3d.v2i16.clamp",
+  "llvm.nvvm.suld.3d.v2i16.trap",
+  "llvm.nvvm.suld.3d.v2i16.zero",
+  "llvm.nvvm.suld.3d.v2i32.clamp",
+  "llvm.nvvm.suld.3d.v2i32.trap",
+  "llvm.nvvm.suld.3d.v2i32.zero",
+  "llvm.nvvm.suld.3d.v2i64.clamp",
+  "llvm.nvvm.suld.3d.v2i64.trap",
+  "llvm.nvvm.suld.3d.v2i64.zero",
+  "llvm.nvvm.suld.3d.v2i8.clamp",
+  "llvm.nvvm.suld.3d.v2i8.trap",
+  "llvm.nvvm.suld.3d.v2i8.zero",
+  "llvm.nvvm.suld.3d.v4i16.clamp",
+  "llvm.nvvm.suld.3d.v4i16.trap",
+  "llvm.nvvm.suld.3d.v4i16.zero",
+  "llvm.nvvm.suld.3d.v4i32.clamp",
+  "llvm.nvvm.suld.3d.v4i32.trap",
+  "llvm.nvvm.suld.3d.v4i32.zero",
+  "llvm.nvvm.suld.3d.v4i8.clamp",
+  "llvm.nvvm.suld.3d.v4i8.trap",
+  "llvm.nvvm.suld.3d.v4i8.zero",
+  "llvm.nvvm.suq.array.size",
+  "llvm.nvvm.suq.channel.data.type",
+  "llvm.nvvm.suq.channel.order",
+  "llvm.nvvm.suq.depth",
+  "llvm.nvvm.suq.height",
+  "llvm.nvvm.suq.width",
+  "llvm.nvvm.sust.b.1d.array.i16.clamp",
+  "llvm.nvvm.sust.b.1d.array.i16.trap",
+  "llvm.nvvm.sust.b.1d.array.i16.zero",
+  "llvm.nvvm.sust.b.1d.array.i32.clamp",
+  "llvm.nvvm.sust.b.1d.array.i32.trap",
+  "llvm.nvvm.sust.b.1d.array.i32.zero",
+  "llvm.nvvm.sust.b.1d.array.i64.clamp",
+  "llvm.nvvm.sust.b.1d.array.i64.trap",
+  "llvm.nvvm.sust.b.1d.array.i64.zero",
+  "llvm.nvvm.sust.b.1d.array.i8.clamp",
+  "llvm.nvvm.sust.b.1d.array.i8.trap",
+  "llvm.nvvm.sust.b.1d.array.i8.zero",
+  "llvm.nvvm.sust.b.1d.array.v2i16.clamp",
+  "llvm.nvvm.sust.b.1d.array.v2i16.trap",
+  "llvm.nvvm.sust.b.1d.array.v2i16.zero",
+  "llvm.nvvm.sust.b.1d.array.v2i32.clamp",
+  "llvm.nvvm.sust.b.1d.array.v2i32.trap",
+  "llvm.nvvm.sust.b.1d.array.v2i32.zero",
+  "llvm.nvvm.sust.b.1d.array.v2i64.clamp",
+  "llvm.nvvm.sust.b.1d.array.v2i64.trap",
+  "llvm.nvvm.sust.b.1d.array.v2i64.zero",
+  "llvm.nvvm.sust.b.1d.array.v2i8.clamp",
+  "llvm.nvvm.sust.b.1d.array.v2i8.trap",
+  "llvm.nvvm.sust.b.1d.array.v2i8.zero",
+  "llvm.nvvm.sust.b.1d.array.v4i16.clamp",
+  "llvm.nvvm.sust.b.1d.array.v4i16.trap",
+  "llvm.nvvm.sust.b.1d.array.v4i16.zero",
+  "llvm.nvvm.sust.b.1d.array.v4i32.clamp",
+  "llvm.nvvm.sust.b.1d.array.v4i32.trap",
+  "llvm.nvvm.sust.b.1d.array.v4i32.zero",
+  "llvm.nvvm.sust.b.1d.array.v4i8.clamp",
+  "llvm.nvvm.sust.b.1d.array.v4i8.trap",
+  "llvm.nvvm.sust.b.1d.array.v4i8.zero",
+  "llvm.nvvm.sust.b.1d.i16.clamp",
+  "llvm.nvvm.sust.b.1d.i16.trap",
+  "llvm.nvvm.sust.b.1d.i16.zero",
+  "llvm.nvvm.sust.b.1d.i32.clamp",
+  "llvm.nvvm.sust.b.1d.i32.trap",
+  "llvm.nvvm.sust.b.1d.i32.zero",
+  "llvm.nvvm.sust.b.1d.i64.clamp",
+  "llvm.nvvm.sust.b.1d.i64.trap",
+  "llvm.nvvm.sust.b.1d.i64.zero",
+  "llvm.nvvm.sust.b.1d.i8.clamp",
+  "llvm.nvvm.sust.b.1d.i8.trap",
+  "llvm.nvvm.sust.b.1d.i8.zero",
+  "llvm.nvvm.sust.b.1d.v2i16.clamp",
+  "llvm.nvvm.sust.b.1d.v2i16.trap",
+  "llvm.nvvm.sust.b.1d.v2i16.zero",
+  "llvm.nvvm.sust.b.1d.v2i32.clamp",
+  "llvm.nvvm.sust.b.1d.v2i32.trap",
+  "llvm.nvvm.sust.b.1d.v2i32.zero",
+  "llvm.nvvm.sust.b.1d.v2i64.clamp",
+  "llvm.nvvm.sust.b.1d.v2i64.trap",
+  "llvm.nvvm.sust.b.1d.v2i64.zero",
+  "llvm.nvvm.sust.b.1d.v2i8.clamp",
+  "llvm.nvvm.sust.b.1d.v2i8.trap",
+  "llvm.nvvm.sust.b.1d.v2i8.zero",
+  "llvm.nvvm.sust.b.1d.v4i16.clamp",
+  "llvm.nvvm.sust.b.1d.v4i16.trap",
+  "llvm.nvvm.sust.b.1d.v4i16.zero",
+  "llvm.nvvm.sust.b.1d.v4i32.clamp",
+  "llvm.nvvm.sust.b.1d.v4i32.trap",
+  "llvm.nvvm.sust.b.1d.v4i32.zero",
+  "llvm.nvvm.sust.b.1d.v4i8.clamp",
+  "llvm.nvvm.sust.b.1d.v4i8.trap",
+  "llvm.nvvm.sust.b.1d.v4i8.zero",
+  "llvm.nvvm.sust.b.2d.array.i16.clamp",
+  "llvm.nvvm.sust.b.2d.array.i16.trap",
+  "llvm.nvvm.sust.b.2d.array.i16.zero",
+  "llvm.nvvm.sust.b.2d.array.i32.clamp",
+  "llvm.nvvm.sust.b.2d.array.i32.trap",
+  "llvm.nvvm.sust.b.2d.array.i32.zero",
+  "llvm.nvvm.sust.b.2d.array.i64.clamp",
+  "llvm.nvvm.sust.b.2d.array.i64.trap",
+  "llvm.nvvm.sust.b.2d.array.i64.zero",
+  "llvm.nvvm.sust.b.2d.array.i8.clamp",
+  "llvm.nvvm.sust.b.2d.array.i8.trap",
+  "llvm.nvvm.sust.b.2d.array.i8.zero",
+  "llvm.nvvm.sust.b.2d.array.v2i16.clamp",
+  "llvm.nvvm.sust.b.2d.array.v2i16.trap",
+  "llvm.nvvm.sust.b.2d.array.v2i16.zero",
+  "llvm.nvvm.sust.b.2d.array.v2i32.clamp",
+  "llvm.nvvm.sust.b.2d.array.v2i32.trap",
+  "llvm.nvvm.sust.b.2d.array.v2i32.zero",
+  "llvm.nvvm.sust.b.2d.array.v2i64.clamp",
+  "llvm.nvvm.sust.b.2d.array.v2i64.trap",
+  "llvm.nvvm.sust.b.2d.array.v2i64.zero",
+  "llvm.nvvm.sust.b.2d.array.v2i8.clamp",
+  "llvm.nvvm.sust.b.2d.array.v2i8.trap",
+  "llvm.nvvm.sust.b.2d.array.v2i8.zero",
+  "llvm.nvvm.sust.b.2d.array.v4i16.clamp",
+  "llvm.nvvm.sust.b.2d.array.v4i16.trap",
+  "llvm.nvvm.sust.b.2d.array.v4i16.zero",
+  "llvm.nvvm.sust.b.2d.array.v4i32.clamp",
+  "llvm.nvvm.sust.b.2d.array.v4i32.trap",
+  "llvm.nvvm.sust.b.2d.array.v4i32.zero",
+  "llvm.nvvm.sust.b.2d.array.v4i8.clamp",
+  "llvm.nvvm.sust.b.2d.array.v4i8.trap",
+  "llvm.nvvm.sust.b.2d.array.v4i8.zero",
+  "llvm.nvvm.sust.b.2d.i16.clamp",
+  "llvm.nvvm.sust.b.2d.i16.trap",
+  "llvm.nvvm.sust.b.2d.i16.zero",
+  "llvm.nvvm.sust.b.2d.i32.clamp",
+  "llvm.nvvm.sust.b.2d.i32.trap",
+  "llvm.nvvm.sust.b.2d.i32.zero",
+  "llvm.nvvm.sust.b.2d.i64.clamp",
+  "llvm.nvvm.sust.b.2d.i64.trap",
+  "llvm.nvvm.sust.b.2d.i64.zero",
+  "llvm.nvvm.sust.b.2d.i8.clamp",
+  "llvm.nvvm.sust.b.2d.i8.trap",
+  "llvm.nvvm.sust.b.2d.i8.zero",
+  "llvm.nvvm.sust.b.2d.v2i16.clamp",
+  "llvm.nvvm.sust.b.2d.v2i16.trap",
+  "llvm.nvvm.sust.b.2d.v2i16.zero",
+  "llvm.nvvm.sust.b.2d.v2i32.clamp",
+  "llvm.nvvm.sust.b.2d.v2i32.trap",
+  "llvm.nvvm.sust.b.2d.v2i32.zero",
+  "llvm.nvvm.sust.b.2d.v2i64.clamp",
+  "llvm.nvvm.sust.b.2d.v2i64.trap",
+  "llvm.nvvm.sust.b.2d.v2i64.zero",
+  "llvm.nvvm.sust.b.2d.v2i8.clamp",
+  "llvm.nvvm.sust.b.2d.v2i8.trap",
+  "llvm.nvvm.sust.b.2d.v2i8.zero",
+  "llvm.nvvm.sust.b.2d.v4i16.clamp",
+  "llvm.nvvm.sust.b.2d.v4i16.trap",
+  "llvm.nvvm.sust.b.2d.v4i16.zero",
+  "llvm.nvvm.sust.b.2d.v4i32.clamp",
+  "llvm.nvvm.sust.b.2d.v4i32.trap",
+  "llvm.nvvm.sust.b.2d.v4i32.zero",
+  "llvm.nvvm.sust.b.2d.v4i8.clamp",
+  "llvm.nvvm.sust.b.2d.v4i8.trap",
+  "llvm.nvvm.sust.b.2d.v4i8.zero",
+  "llvm.nvvm.sust.b.3d.i16.clamp",
+  "llvm.nvvm.sust.b.3d.i16.trap",
+  "llvm.nvvm.sust.b.3d.i16.zero",
+  "llvm.nvvm.sust.b.3d.i32.clamp",
+  "llvm.nvvm.sust.b.3d.i32.trap",
+  "llvm.nvvm.sust.b.3d.i32.zero",
+  "llvm.nvvm.sust.b.3d.i64.clamp",
+  "llvm.nvvm.sust.b.3d.i64.trap",
+  "llvm.nvvm.sust.b.3d.i64.zero",
+  "llvm.nvvm.sust.b.3d.i8.clamp",
+  "llvm.nvvm.sust.b.3d.i8.trap",
+  "llvm.nvvm.sust.b.3d.i8.zero",
+  "llvm.nvvm.sust.b.3d.v2i16.clamp",
+  "llvm.nvvm.sust.b.3d.v2i16.trap",
+  "llvm.nvvm.sust.b.3d.v2i16.zero",
+  "llvm.nvvm.sust.b.3d.v2i32.clamp",
+  "llvm.nvvm.sust.b.3d.v2i32.trap",
+  "llvm.nvvm.sust.b.3d.v2i32.zero",
+  "llvm.nvvm.sust.b.3d.v2i64.clamp",
+  "llvm.nvvm.sust.b.3d.v2i64.trap",
+  "llvm.nvvm.sust.b.3d.v2i64.zero",
+  "llvm.nvvm.sust.b.3d.v2i8.clamp",
+  "llvm.nvvm.sust.b.3d.v2i8.trap",
+  "llvm.nvvm.sust.b.3d.v2i8.zero",
+  "llvm.nvvm.sust.b.3d.v4i16.clamp",
+  "llvm.nvvm.sust.b.3d.v4i16.trap",
+  "llvm.nvvm.sust.b.3d.v4i16.zero",
+  "llvm.nvvm.sust.b.3d.v4i32.clamp",
+  "llvm.nvvm.sust.b.3d.v4i32.trap",
+  "llvm.nvvm.sust.b.3d.v4i32.zero",
+  "llvm.nvvm.sust.b.3d.v4i8.clamp",
+  "llvm.nvvm.sust.b.3d.v4i8.trap",
+  "llvm.nvvm.sust.b.3d.v4i8.zero",
+  "llvm.nvvm.sust.p.1d.array.i16.trap",
+  "llvm.nvvm.sust.p.1d.array.i32.trap",
+  "llvm.nvvm.sust.p.1d.array.i8.trap",
+  "llvm.nvvm.sust.p.1d.array.v2i16.trap",
+  "llvm.nvvm.sust.p.1d.array.v2i32.trap",
+  "llvm.nvvm.sust.p.1d.array.v2i8.trap",
+  "llvm.nvvm.sust.p.1d.array.v4i16.trap",
+  "llvm.nvvm.sust.p.1d.array.v4i32.trap",
+  "llvm.nvvm.sust.p.1d.array.v4i8.trap",
+  "llvm.nvvm.sust.p.1d.i16.trap",
+  "llvm.nvvm.sust.p.1d.i32.trap",
+  "llvm.nvvm.sust.p.1d.i8.trap",
+  "llvm.nvvm.sust.p.1d.v2i16.trap",
+  "llvm.nvvm.sust.p.1d.v2i32.trap",
+  "llvm.nvvm.sust.p.1d.v2i8.trap",
+  "llvm.nvvm.sust.p.1d.v4i16.trap",
+  "llvm.nvvm.sust.p.1d.v4i32.trap",
+  "llvm.nvvm.sust.p.1d.v4i8.trap",
+  "llvm.nvvm.sust.p.2d.array.i16.trap",
+  "llvm.nvvm.sust.p.2d.array.i32.trap",
+  "llvm.nvvm.sust.p.2d.array.i8.trap",
+  "llvm.nvvm.sust.p.2d.array.v2i16.trap",
+  "llvm.nvvm.sust.p.2d.array.v2i32.trap",
+  "llvm.nvvm.sust.p.2d.array.v2i8.trap",
+  "llvm.nvvm.sust.p.2d.array.v4i16.trap",
+  "llvm.nvvm.sust.p.2d.array.v4i32.trap",
+  "llvm.nvvm.sust.p.2d.array.v4i8.trap",
+  "llvm.nvvm.sust.p.2d.i16.trap",
+  "llvm.nvvm.sust.p.2d.i32.trap",
+  "llvm.nvvm.sust.p.2d.i8.trap",
+  "llvm.nvvm.sust.p.2d.v2i16.trap",
+  "llvm.nvvm.sust.p.2d.v2i32.trap",
+  "llvm.nvvm.sust.p.2d.v2i8.trap",
+  "llvm.nvvm.sust.p.2d.v4i16.trap",
+  "llvm.nvvm.sust.p.2d.v4i32.trap",
+  "llvm.nvvm.sust.p.2d.v4i8.trap",
+  "llvm.nvvm.sust.p.3d.i16.trap",
+  "llvm.nvvm.sust.p.3d.i32.trap",
+  "llvm.nvvm.sust.p.3d.i8.trap",
+  "llvm.nvvm.sust.p.3d.v2i16.trap",
+  "llvm.nvvm.sust.p.3d.v2i32.trap",
+  "llvm.nvvm.sust.p.3d.v2i8.trap",
+  "llvm.nvvm.sust.p.3d.v4i16.trap",
+  "llvm.nvvm.sust.p.3d.v4i32.trap",
+  "llvm.nvvm.sust.p.3d.v4i8.trap",
+  "llvm.nvvm.swap.lo.hi.b64",
+  "llvm.nvvm.tex.1d.array.grad.v4f32.f32",
+  "llvm.nvvm.tex.1d.array.grad.v4s32.f32",
+  "llvm.nvvm.tex.1d.array.grad.v4u32.f32",
+  "llvm.nvvm.tex.1d.array.level.v4f32.f32",
+  "llvm.nvvm.tex.1d.array.level.v4s32.f32",
+  "llvm.nvvm.tex.1d.array.level.v4u32.f32",
+  "llvm.nvvm.tex.1d.array.v4f32.f32",
+  "llvm.nvvm.tex.1d.array.v4f32.s32",
+  "llvm.nvvm.tex.1d.array.v4s32.f32",
+  "llvm.nvvm.tex.1d.array.v4s32.s32",
+  "llvm.nvvm.tex.1d.array.v4u32.f32",
+  "llvm.nvvm.tex.1d.array.v4u32.s32",
+  "llvm.nvvm.tex.1d.grad.v4f32.f32",
+  "llvm.nvvm.tex.1d.grad.v4s32.f32",
+  "llvm.nvvm.tex.1d.grad.v4u32.f32",
+  "llvm.nvvm.tex.1d.level.v4f32.f32",
+  "llvm.nvvm.tex.1d.level.v4s32.f32",
+  "llvm.nvvm.tex.1d.level.v4u32.f32",
+  "llvm.nvvm.tex.1d.v4f32.f32",
+  "llvm.nvvm.tex.1d.v4f32.s32",
+  "llvm.nvvm.tex.1d.v4s32.f32",
+  "llvm.nvvm.tex.1d.v4s32.s32",
+  "llvm.nvvm.tex.1d.v4u32.f32",
+  "llvm.nvvm.tex.1d.v4u32.s32",
+  "llvm.nvvm.tex.2d.array.grad.v4f32.f32",
+  "llvm.nvvm.tex.2d.array.grad.v4s32.f32",
+  "llvm.nvvm.tex.2d.array.grad.v4u32.f32",
+  "llvm.nvvm.tex.2d.array.level.v4f32.f32",
+  "llvm.nvvm.tex.2d.array.level.v4s32.f32",
+  "llvm.nvvm.tex.2d.array.level.v4u32.f32",
+  "llvm.nvvm.tex.2d.array.v4f32.f32",
+  "llvm.nvvm.tex.2d.array.v4f32.s32",
+  "llvm.nvvm.tex.2d.array.v4s32.f32",
+  "llvm.nvvm.tex.2d.array.v4s32.s32",
+  "llvm.nvvm.tex.2d.array.v4u32.f32",
+  "llvm.nvvm.tex.2d.array.v4u32.s32",
+  "llvm.nvvm.tex.2d.grad.v4f32.f32",
+  "llvm.nvvm.tex.2d.grad.v4s32.f32",
+  "llvm.nvvm.tex.2d.grad.v4u32.f32",
+  "llvm.nvvm.tex.2d.level.v4f32.f32",
+  "llvm.nvvm.tex.2d.level.v4s32.f32",
+  "llvm.nvvm.tex.2d.level.v4u32.f32",
+  "llvm.nvvm.tex.2d.v4f32.f32",
+  "llvm.nvvm.tex.2d.v4f32.s32",
+  "llvm.nvvm.tex.2d.v4s32.f32",
+  "llvm.nvvm.tex.2d.v4s32.s32",
+  "llvm.nvvm.tex.2d.v4u32.f32",
+  "llvm.nvvm.tex.2d.v4u32.s32",
+  "llvm.nvvm.tex.3d.grad.v4f32.f32",
+  "llvm.nvvm.tex.3d.grad.v4s32.f32",
+  "llvm.nvvm.tex.3d.grad.v4u32.f32",
+  "llvm.nvvm.tex.3d.level.v4f32.f32",
+  "llvm.nvvm.tex.3d.level.v4s32.f32",
+  "llvm.nvvm.tex.3d.level.v4u32.f32",
+  "llvm.nvvm.tex.3d.v4f32.f32",
+  "llvm.nvvm.tex.3d.v4f32.s32",
+  "llvm.nvvm.tex.3d.v4s32.f32",
+  "llvm.nvvm.tex.3d.v4s32.s32",
+  "llvm.nvvm.tex.3d.v4u32.f32",
+  "llvm.nvvm.tex.3d.v4u32.s32",
+  "llvm.nvvm.tex.cube.array.level.v4f32.f32",
+  "llvm.nvvm.tex.cube.array.level.v4s32.f32",
+  "llvm.nvvm.tex.cube.array.level.v4u32.f32",
+  "llvm.nvvm.tex.cube.array.v4f32.f32",
+  "llvm.nvvm.tex.cube.array.v4s32.f32",
+  "llvm.nvvm.tex.cube.array.v4u32.f32",
+  "llvm.nvvm.tex.cube.level.v4f32.f32",
+  "llvm.nvvm.tex.cube.level.v4s32.f32",
+  "llvm.nvvm.tex.cube.level.v4u32.f32",
+  "llvm.nvvm.tex.cube.v4f32.f32",
+  "llvm.nvvm.tex.cube.v4s32.f32",
+  "llvm.nvvm.tex.cube.v4u32.f32",
+  "llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32",
+  "llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32",
+  "llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32",
+  "llvm.nvvm.tex.unified.1d.array.level.v4f32.f32",
+  "llvm.nvvm.tex.unified.1d.array.level.v4s32.f32",
+  "llvm.nvvm.tex.unified.1d.array.level.v4u32.f32",
+  "llvm.nvvm.tex.unified.1d.array.v4f32.f32",
+  "llvm.nvvm.tex.unified.1d.array.v4f32.s32",
+  "llvm.nvvm.tex.unified.1d.array.v4s32.f32",
+  "llvm.nvvm.tex.unified.1d.array.v4s32.s32",
+  "llvm.nvvm.tex.unified.1d.array.v4u32.f32",
+  "llvm.nvvm.tex.unified.1d.array.v4u32.s32",
+  "llvm.nvvm.tex.unified.1d.grad.v4f32.f32",
+  "llvm.nvvm.tex.unified.1d.grad.v4s32.f32",
+  "llvm.nvvm.tex.unified.1d.grad.v4u32.f32",
+  "llvm.nvvm.tex.unified.1d.level.v4f32.f32",
+  "llvm.nvvm.tex.unified.1d.level.v4s32.f32",
+  "llvm.nvvm.tex.unified.1d.level.v4u32.f32",
+  "llvm.nvvm.tex.unified.1d.v4f32.f32",
+  "llvm.nvvm.tex.unified.1d.v4f32.s32",
+  "llvm.nvvm.tex.unified.1d.v4s32.f32",
+  "llvm.nvvm.tex.unified.1d.v4s32.s32",
+  "llvm.nvvm.tex.unified.1d.v4u32.f32",
+  "llvm.nvvm.tex.unified.1d.v4u32.s32",
+  "llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32",
+  "llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32",
+  "llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32",
+  "llvm.nvvm.tex.unified.2d.array.level.v4f32.f32",
+  "llvm.nvvm.tex.unified.2d.array.level.v4s32.f32",
+  "llvm.nvvm.tex.unified.2d.array.level.v4u32.f32",
+  "llvm.nvvm.tex.unified.2d.array.v4f32.f32",
+  "llvm.nvvm.tex.unified.2d.array.v4f32.s32",
+  "llvm.nvvm.tex.unified.2d.array.v4s32.f32",
+  "llvm.nvvm.tex.unified.2d.array.v4s32.s32",
+  "llvm.nvvm.tex.unified.2d.array.v4u32.f32",
+  "llvm.nvvm.tex.unified.2d.array.v4u32.s32",
+  "llvm.nvvm.tex.unified.2d.grad.v4f32.f32",
+  "llvm.nvvm.tex.unified.2d.grad.v4s32.f32",
+  "llvm.nvvm.tex.unified.2d.grad.v4u32.f32",
+  "llvm.nvvm.tex.unified.2d.level.v4f32.f32",
+  "llvm.nvvm.tex.unified.2d.level.v4s32.f32",
+  "llvm.nvvm.tex.unified.2d.level.v4u32.f32",
+  "llvm.nvvm.tex.unified.2d.v4f32.f32",
+  "llvm.nvvm.tex.unified.2d.v4f32.s32",
+  "llvm.nvvm.tex.unified.2d.v4s32.f32",
+  "llvm.nvvm.tex.unified.2d.v4s32.s32",
+  "llvm.nvvm.tex.unified.2d.v4u32.f32",
+  "llvm.nvvm.tex.unified.2d.v4u32.s32",
+  "llvm.nvvm.tex.unified.3d.grad.v4f32.f32",
+  "llvm.nvvm.tex.unified.3d.grad.v4s32.f32",
+  "llvm.nvvm.tex.unified.3d.grad.v4u32.f32",
+  "llvm.nvvm.tex.unified.3d.level.v4f32.f32",
+  "llvm.nvvm.tex.unified.3d.level.v4s32.f32",
+  "llvm.nvvm.tex.unified.3d.level.v4u32.f32",
+  "llvm.nvvm.tex.unified.3d.v4f32.f32",
+  "llvm.nvvm.tex.unified.3d.v4f32.s32",
+  "llvm.nvvm.tex.unified.3d.v4s32.f32",
+  "llvm.nvvm.tex.unified.3d.v4s32.s32",
+  "llvm.nvvm.tex.unified.3d.v4u32.f32",
+  "llvm.nvvm.tex.unified.3d.v4u32.s32",
+  "llvm.nvvm.tex.unified.cube.array.level.v4f32.f32",
+  "llvm.nvvm.tex.unified.cube.array.level.v4s32.f32",
+  "llvm.nvvm.tex.unified.cube.array.level.v4u32.f32",
+  "llvm.nvvm.tex.unified.cube.array.v4f32.f32",
+  "llvm.nvvm.tex.unified.cube.array.v4s32.f32",
+  "llvm.nvvm.tex.unified.cube.array.v4u32.f32",
+  "llvm.nvvm.tex.unified.cube.level.v4f32.f32",
+  "llvm.nvvm.tex.unified.cube.level.v4s32.f32",
+  "llvm.nvvm.tex.unified.cube.level.v4u32.f32",
+  "llvm.nvvm.tex.unified.cube.v4f32.f32",
+  "llvm.nvvm.tex.unified.cube.v4s32.f32",
+  "llvm.nvvm.tex.unified.cube.v4u32.f32",
+  "llvm.nvvm.texsurf.handle",
+  "llvm.nvvm.texsurf.handle.internal",
+  "llvm.nvvm.tld4.a.2d.v4f32.f32",
+  "llvm.nvvm.tld4.a.2d.v4s32.f32",
+  "llvm.nvvm.tld4.a.2d.v4u32.f32",
+  "llvm.nvvm.tld4.b.2d.v4f32.f32",
+  "llvm.nvvm.tld4.b.2d.v4s32.f32",
+  "llvm.nvvm.tld4.b.2d.v4u32.f32",
+  "llvm.nvvm.tld4.g.2d.v4f32.f32",
+  "llvm.nvvm.tld4.g.2d.v4s32.f32",
+  "llvm.nvvm.tld4.g.2d.v4u32.f32",
+  "llvm.nvvm.tld4.r.2d.v4f32.f32",
+  "llvm.nvvm.tld4.r.2d.v4s32.f32",
+  "llvm.nvvm.tld4.r.2d.v4u32.f32",
+  "llvm.nvvm.tld4.unified.a.2d.v4f32.f32",
+  "llvm.nvvm.tld4.unified.a.2d.v4s32.f32",
+  "llvm.nvvm.tld4.unified.a.2d.v4u32.f32",
+  "llvm.nvvm.tld4.unified.b.2d.v4f32.f32",
+  "llvm.nvvm.tld4.unified.b.2d.v4s32.f32",
+  "llvm.nvvm.tld4.unified.b.2d.v4u32.f32",
+  "llvm.nvvm.tld4.unified.g.2d.v4f32.f32",
+  "llvm.nvvm.tld4.unified.g.2d.v4s32.f32",
+  "llvm.nvvm.tld4.unified.g.2d.v4u32.f32",
+  "llvm.nvvm.tld4.unified.r.2d.v4f32.f32",
+  "llvm.nvvm.tld4.unified.r.2d.v4s32.f32",
+  "llvm.nvvm.tld4.unified.r.2d.v4u32.f32",
+  "llvm.nvvm.trunc.d",
+  "llvm.nvvm.trunc.f",
+  "llvm.nvvm.trunc.ftz.f",
+  "llvm.nvvm.txq.array.size",
+  "llvm.nvvm.txq.channel.data.type",
+  "llvm.nvvm.txq.channel.order",
+  "llvm.nvvm.txq.depth",
+  "llvm.nvvm.txq.height",
+  "llvm.nvvm.txq.num.mipmap.levels",
+  "llvm.nvvm.txq.num.samples",
+  "llvm.nvvm.txq.width",
+  "llvm.nvvm.ui2d.rm",
+  "llvm.nvvm.ui2d.rn",
+  "llvm.nvvm.ui2d.rp",
+  "llvm.nvvm.ui2d.rz",
+  "llvm.nvvm.ui2f.rm",
+  "llvm.nvvm.ui2f.rn",
+  "llvm.nvvm.ui2f.rp",
+  "llvm.nvvm.ui2f.rz",
+  "llvm.nvvm.ull2d.rm",
+  "llvm.nvvm.ull2d.rn",
+  "llvm.nvvm.ull2d.rp",
+  "llvm.nvvm.ull2d.rz",
+  "llvm.nvvm.ull2f.rm",
+  "llvm.nvvm.ull2f.rn",
+  "llvm.nvvm.ull2f.rp",
+  "llvm.nvvm.ull2f.rz",
+  "llvm.nvvm.vote.all",
+  "llvm.nvvm.vote.all.sync",
+  "llvm.nvvm.vote.any",
+  "llvm.nvvm.vote.any.sync",
+  "llvm.nvvm.vote.ballot",
+  "llvm.nvvm.vote.ballot.sync",
+  "llvm.nvvm.vote.uni",
+  "llvm.nvvm.vote.uni.sync",
+  "llvm.nvvm.wmma.m16n16k16.load.a.col.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.a.col.stride.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.a.row.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.a.row.stride.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.b.col.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.b.col.stride.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.b.row.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.b.row.stride.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.c.col.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.c.col.f32",
+  "llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f32",
+  "llvm.nvvm.wmma.m16n16k16.load.c.row.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.c.row.f32",
+  "llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f16",
+  "llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f32",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32",
+  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32",
+  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m16n16k16.store.d.col.f16",
+  "llvm.nvvm.wmma.m16n16k16.store.d.col.f32",
+  "llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f16",
+  "llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f32",
+  "llvm.nvvm.wmma.m16n16k16.store.d.row.f16",
+  "llvm.nvvm.wmma.m16n16k16.store.d.row.f32",
+  "llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f16",
+  "llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f32",
+  "llvm.nvvm.wmma.m32n8k16.load.a.col.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.a.col.stride.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.a.row.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.a.row.stride.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.b.col.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.b.col.stride.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.b.row.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.b.row.stride.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.c.col.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.c.col.f32",
+  "llvm.nvvm.wmma.m32n8k16.load.c.col.stride.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.c.col.stride.f32",
+  "llvm.nvvm.wmma.m32n8k16.load.c.row.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.c.row.f32",
+  "llvm.nvvm.wmma.m32n8k16.load.c.row.stride.f16",
+  "llvm.nvvm.wmma.m32n8k16.load.c.row.stride.f32",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f16",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f32",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f16",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f32",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f16",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f32",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f16",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f32",
+  "llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f16",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f32",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f16",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f32",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f16",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f32",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f16",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f32",
+  "llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m32n8k16.store.d.col.f16",
+  "llvm.nvvm.wmma.m32n8k16.store.d.col.f32",
+  "llvm.nvvm.wmma.m32n8k16.store.d.col.stride.f16",
+  "llvm.nvvm.wmma.m32n8k16.store.d.col.stride.f32",
+  "llvm.nvvm.wmma.m32n8k16.store.d.row.f16",
+  "llvm.nvvm.wmma.m32n8k16.store.d.row.f32",
+  "llvm.nvvm.wmma.m32n8k16.store.d.row.stride.f16",
+  "llvm.nvvm.wmma.m32n8k16.store.d.row.stride.f32",
+  "llvm.nvvm.wmma.m8n32k16.load.a.col.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.a.col.stride.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.a.row.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.a.row.stride.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.b.col.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.b.col.stride.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.b.row.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.b.row.stride.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.c.col.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.c.col.f32",
+  "llvm.nvvm.wmma.m8n32k16.load.c.col.stride.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.c.col.stride.f32",
+  "llvm.nvvm.wmma.m8n32k16.load.c.row.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.c.row.f32",
+  "llvm.nvvm.wmma.m8n32k16.load.c.row.stride.f16",
+  "llvm.nvvm.wmma.m8n32k16.load.c.row.stride.f32",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f16",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f32",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f16",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f32",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f16",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f32",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f16",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f32",
+  "llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f16",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f32",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f16",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f32",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f16",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f16.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f32",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f32.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f16",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f16.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f32",
+  "llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f32.satfinite",
+  "llvm.nvvm.wmma.m8n32k16.store.d.col.f16",
+  "llvm.nvvm.wmma.m8n32k16.store.d.col.f32",
+  "llvm.nvvm.wmma.m8n32k16.store.d.col.stride.f16",
+  "llvm.nvvm.wmma.m8n32k16.store.d.col.stride.f32",
+  "llvm.nvvm.wmma.m8n32k16.store.d.row.f16",
+  "llvm.nvvm.wmma.m8n32k16.store.d.row.f32",
+  "llvm.nvvm.wmma.m8n32k16.store.d.row.stride.f16",
+  "llvm.nvvm.wmma.m8n32k16.store.d.row.stride.f32",
+  "llvm.ppc.addf128.round.to.odd",
+  "llvm.ppc.altivec.crypto.vcipher",
+  "llvm.ppc.altivec.crypto.vcipherlast",
+  "llvm.ppc.altivec.crypto.vncipher",
+  "llvm.ppc.altivec.crypto.vncipherlast",
+  "llvm.ppc.altivec.crypto.vpermxor",
+  "llvm.ppc.altivec.crypto.vpmsumb",
+  "llvm.ppc.altivec.crypto.vpmsumd",
+  "llvm.ppc.altivec.crypto.vpmsumh",
+  "llvm.ppc.altivec.crypto.vpmsumw",
+  "llvm.ppc.altivec.crypto.vsbox",
+  "llvm.ppc.altivec.crypto.vshasigmad",
+  "llvm.ppc.altivec.crypto.vshasigmaw",
+  "llvm.ppc.altivec.dss",
+  "llvm.ppc.altivec.dssall",
+  "llvm.ppc.altivec.dst",
+  "llvm.ppc.altivec.dstst",
+  "llvm.ppc.altivec.dststt",
+  "llvm.ppc.altivec.dstt",
+  "llvm.ppc.altivec.lvebx",
+  "llvm.ppc.altivec.lvehx",
+  "llvm.ppc.altivec.lvewx",
+  "llvm.ppc.altivec.lvsl",
+  "llvm.ppc.altivec.lvsr",
+  "llvm.ppc.altivec.lvx",
+  "llvm.ppc.altivec.lvxl",
+  "llvm.ppc.altivec.mfvscr",
+  "llvm.ppc.altivec.mtvscr",
+  "llvm.ppc.altivec.stvebx",
+  "llvm.ppc.altivec.stvehx",
+  "llvm.ppc.altivec.stvewx",
+  "llvm.ppc.altivec.stvx",
+  "llvm.ppc.altivec.stvxl",
+  "llvm.ppc.altivec.vabsdub",
+  "llvm.ppc.altivec.vabsduh",
+  "llvm.ppc.altivec.vabsduw",
+  "llvm.ppc.altivec.vaddcuq",
+  "llvm.ppc.altivec.vaddcuw",
+  "llvm.ppc.altivec.vaddecuq",
+  "llvm.ppc.altivec.vaddeuqm",
+  "llvm.ppc.altivec.vaddsbs",
+  "llvm.ppc.altivec.vaddshs",
+  "llvm.ppc.altivec.vaddsws",
+  "llvm.ppc.altivec.vaddubs",
+  "llvm.ppc.altivec.vadduhs",
+  "llvm.ppc.altivec.vadduws",
+  "llvm.ppc.altivec.vavgsb",
+  "llvm.ppc.altivec.vavgsh",
+  "llvm.ppc.altivec.vavgsw",
+  "llvm.ppc.altivec.vavgub",
+  "llvm.ppc.altivec.vavguh",
+  "llvm.ppc.altivec.vavguw",
+  "llvm.ppc.altivec.vbpermq",
+  "llvm.ppc.altivec.vcfsx",
+  "llvm.ppc.altivec.vcfux",
+  "llvm.ppc.altivec.vclzlsbb",
+  "llvm.ppc.altivec.vcmpbfp",
+  "llvm.ppc.altivec.vcmpbfp.p",
+  "llvm.ppc.altivec.vcmpeqfp",
+  "llvm.ppc.altivec.vcmpeqfp.p",
+  "llvm.ppc.altivec.vcmpequb",
+  "llvm.ppc.altivec.vcmpequb.p",
+  "llvm.ppc.altivec.vcmpequd",
+  "llvm.ppc.altivec.vcmpequd.p",
+  "llvm.ppc.altivec.vcmpequh",
+  "llvm.ppc.altivec.vcmpequh.p",
+  "llvm.ppc.altivec.vcmpequw",
+  "llvm.ppc.altivec.vcmpequw.p",
+  "llvm.ppc.altivec.vcmpgefp",
+  "llvm.ppc.altivec.vcmpgefp.p",
+  "llvm.ppc.altivec.vcmpgtfp",
+  "llvm.ppc.altivec.vcmpgtfp.p",
+  "llvm.ppc.altivec.vcmpgtsb",
+  "llvm.ppc.altivec.vcmpgtsb.p",
+  "llvm.ppc.altivec.vcmpgtsd",
+  "llvm.ppc.altivec.vcmpgtsd.p",
+  "llvm.ppc.altivec.vcmpgtsh",
+  "llvm.ppc.altivec.vcmpgtsh.p",
+  "llvm.ppc.altivec.vcmpgtsw",
+  "llvm.ppc.altivec.vcmpgtsw.p",
+  "llvm.ppc.altivec.vcmpgtub",
+  "llvm.ppc.altivec.vcmpgtub.p",
+  "llvm.ppc.altivec.vcmpgtud",
+  "llvm.ppc.altivec.vcmpgtud.p",
+  "llvm.ppc.altivec.vcmpgtuh",
+  "llvm.ppc.altivec.vcmpgtuh.p",
+  "llvm.ppc.altivec.vcmpgtuw",
+  "llvm.ppc.altivec.vcmpgtuw.p",
+  "llvm.ppc.altivec.vcmpneb",
+  "llvm.ppc.altivec.vcmpneb.p",
+  "llvm.ppc.altivec.vcmpneh",
+  "llvm.ppc.altivec.vcmpneh.p",
+  "llvm.ppc.altivec.vcmpnew",
+  "llvm.ppc.altivec.vcmpnew.p",
+  "llvm.ppc.altivec.vcmpnezb",
+  "llvm.ppc.altivec.vcmpnezb.p",
+  "llvm.ppc.altivec.vcmpnezh",
+  "llvm.ppc.altivec.vcmpnezh.p",
+  "llvm.ppc.altivec.vcmpnezw",
+  "llvm.ppc.altivec.vcmpnezw.p",
+  "llvm.ppc.altivec.vctsxs",
+  "llvm.ppc.altivec.vctuxs",
+  "llvm.ppc.altivec.vctzlsbb",
+  "llvm.ppc.altivec.vexptefp",
+  "llvm.ppc.altivec.vgbbd",
+  "llvm.ppc.altivec.vlogefp",
+  "llvm.ppc.altivec.vmaddfp",
+  "llvm.ppc.altivec.vmaxfp",
+  "llvm.ppc.altivec.vmaxsb",
+  "llvm.ppc.altivec.vmaxsd",
+  "llvm.ppc.altivec.vmaxsh",
+  "llvm.ppc.altivec.vmaxsw",
+  "llvm.ppc.altivec.vmaxub",
+  "llvm.ppc.altivec.vmaxud",
+  "llvm.ppc.altivec.vmaxuh",
+  "llvm.ppc.altivec.vmaxuw",
+  "llvm.ppc.altivec.vmhaddshs",
+  "llvm.ppc.altivec.vmhraddshs",
+  "llvm.ppc.altivec.vminfp",
+  "llvm.ppc.altivec.vminsb",
+  "llvm.ppc.altivec.vminsd",
+  "llvm.ppc.altivec.vminsh",
+  "llvm.ppc.altivec.vminsw",
+  "llvm.ppc.altivec.vminub",
+  "llvm.ppc.altivec.vminud",
+  "llvm.ppc.altivec.vminuh",
+  "llvm.ppc.altivec.vminuw",
+  "llvm.ppc.altivec.vmladduhm",
+  "llvm.ppc.altivec.vmsummbm",
+  "llvm.ppc.altivec.vmsumshm",
+  "llvm.ppc.altivec.vmsumshs",
+  "llvm.ppc.altivec.vmsumubm",
+  "llvm.ppc.altivec.vmsumuhm",
+  "llvm.ppc.altivec.vmsumuhs",
+  "llvm.ppc.altivec.vmulesb",
+  "llvm.ppc.altivec.vmulesh",
+  "llvm.ppc.altivec.vmulesw",
+  "llvm.ppc.altivec.vmuleub",
+  "llvm.ppc.altivec.vmuleuh",
+  "llvm.ppc.altivec.vmuleuw",
+  "llvm.ppc.altivec.vmulosb",
+  "llvm.ppc.altivec.vmulosh",
+  "llvm.ppc.altivec.vmulosw",
+  "llvm.ppc.altivec.vmuloub",
+  "llvm.ppc.altivec.vmulouh",
+  "llvm.ppc.altivec.vmulouw",
+  "llvm.ppc.altivec.vnmsubfp",
+  "llvm.ppc.altivec.vperm",
+  "llvm.ppc.altivec.vpkpx",
+  "llvm.ppc.altivec.vpksdss",
+  "llvm.ppc.altivec.vpksdus",
+  "llvm.ppc.altivec.vpkshss",
+  "llvm.ppc.altivec.vpkshus",
+  "llvm.ppc.altivec.vpkswss",
+  "llvm.ppc.altivec.vpkswus",
+  "llvm.ppc.altivec.vpkudus",
+  "llvm.ppc.altivec.vpkuhus",
+  "llvm.ppc.altivec.vpkuwus",
+  "llvm.ppc.altivec.vprtybd",
+  "llvm.ppc.altivec.vprtybq",
+  "llvm.ppc.altivec.vprtybw",
+  "llvm.ppc.altivec.vrefp",
+  "llvm.ppc.altivec.vrfim",
+  "llvm.ppc.altivec.vrfin",
+  "llvm.ppc.altivec.vrfip",
+  "llvm.ppc.altivec.vrfiz",
+  "llvm.ppc.altivec.vrlb",
+  "llvm.ppc.altivec.vrld",
+  "llvm.ppc.altivec.vrldmi",
+  "llvm.ppc.altivec.vrldnm",
+  "llvm.ppc.altivec.vrlh",
+  "llvm.ppc.altivec.vrlw",
+  "llvm.ppc.altivec.vrlwmi",
+  "llvm.ppc.altivec.vrlwnm",
+  "llvm.ppc.altivec.vrsqrtefp",
+  "llvm.ppc.altivec.vsel",
+  "llvm.ppc.altivec.vsl",
+  "llvm.ppc.altivec.vslb",
+  "llvm.ppc.altivec.vslh",
+  "llvm.ppc.altivec.vslo",
+  "llvm.ppc.altivec.vslv",
+  "llvm.ppc.altivec.vslw",
+  "llvm.ppc.altivec.vsr",
+  "llvm.ppc.altivec.vsrab",
+  "llvm.ppc.altivec.vsrah",
+  "llvm.ppc.altivec.vsraw",
+  "llvm.ppc.altivec.vsrb",
+  "llvm.ppc.altivec.vsrh",
+  "llvm.ppc.altivec.vsro",
+  "llvm.ppc.altivec.vsrv",
+  "llvm.ppc.altivec.vsrw",
+  "llvm.ppc.altivec.vsubcuq",
+  "llvm.ppc.altivec.vsubcuw",
+  "llvm.ppc.altivec.vsubecuq",
+  "llvm.ppc.altivec.vsubeuqm",
+  "llvm.ppc.altivec.vsubsbs",
+  "llvm.ppc.altivec.vsubshs",
+  "llvm.ppc.altivec.vsubsws",
+  "llvm.ppc.altivec.vsububs",
+  "llvm.ppc.altivec.vsubuhs",
+  "llvm.ppc.altivec.vsubuws",
+  "llvm.ppc.altivec.vsum2sws",
+  "llvm.ppc.altivec.vsum4sbs",
+  "llvm.ppc.altivec.vsum4shs",
+  "llvm.ppc.altivec.vsum4ubs",
+  "llvm.ppc.altivec.vsumsws",
+  "llvm.ppc.altivec.vupkhpx",
+  "llvm.ppc.altivec.vupkhsb",
+  "llvm.ppc.altivec.vupkhsh",
+  "llvm.ppc.altivec.vupkhsw",
+  "llvm.ppc.altivec.vupklpx",
+  "llvm.ppc.altivec.vupklsb",
+  "llvm.ppc.altivec.vupklsh",
+  "llvm.ppc.altivec.vupklsw",
+  "llvm.ppc.bpermd",
+  "llvm.ppc.cfence",
+  "llvm.ppc.dcba",
+  "llvm.ppc.dcbf",
+  "llvm.ppc.dcbi",
+  "llvm.ppc.dcbst",
+  "llvm.ppc.dcbt",
+  "llvm.ppc.dcbtst",
+  "llvm.ppc.dcbz",
+  "llvm.ppc.dcbzl",
+  "llvm.ppc.divde",
+  "llvm.ppc.divdeu",
+  "llvm.ppc.divf128.round.to.odd",
+  "llvm.ppc.divwe",
+  "llvm.ppc.divweu",
+  "llvm.ppc.fmaf128.round.to.odd",
+  "llvm.ppc.get.texasr",
+  "llvm.ppc.get.texasru",
+  "llvm.ppc.get.tfhar",
+  "llvm.ppc.get.tfiar",
+  "llvm.ppc.is.decremented.ctr.nonzero",
+  "llvm.ppc.lwsync",
+  "llvm.ppc.mtctr",
+  "llvm.ppc.mulf128.round.to.odd",
+  "llvm.ppc.qpx.qvfabs",
+  "llvm.ppc.qpx.qvfadd",
+  "llvm.ppc.qpx.qvfadds",
+  "llvm.ppc.qpx.qvfcfid",
+  "llvm.ppc.qpx.qvfcfids",
+  "llvm.ppc.qpx.qvfcfidu",
+  "llvm.ppc.qpx.qvfcfidus",
+  "llvm.ppc.qpx.qvfcmpeq",
+  "llvm.ppc.qpx.qvfcmpgt",
+  "llvm.ppc.qpx.qvfcmplt",
+  "llvm.ppc.qpx.qvfcpsgn",
+  "llvm.ppc.qpx.qvfctid",
+  "llvm.ppc.qpx.qvfctidu",
+  "llvm.ppc.qpx.qvfctiduz",
+  "llvm.ppc.qpx.qvfctidz",
+  "llvm.ppc.qpx.qvfctiw",
+  "llvm.ppc.qpx.qvfctiwu",
+  "llvm.ppc.qpx.qvfctiwuz",
+  "llvm.ppc.qpx.qvfctiwz",
+  "llvm.ppc.qpx.qvflogical",
+  "llvm.ppc.qpx.qvfmadd",
+  "llvm.ppc.qpx.qvfmadds",
+  "llvm.ppc.qpx.qvfmsub",
+  "llvm.ppc.qpx.qvfmsubs",
+  "llvm.ppc.qpx.qvfmul",
+  "llvm.ppc.qpx.qvfmuls",
+  "llvm.ppc.qpx.qvfnabs",
+  "llvm.ppc.qpx.qvfneg",
+  "llvm.ppc.qpx.qvfnmadd",
+  "llvm.ppc.qpx.qvfnmadds",
+  "llvm.ppc.qpx.qvfnmsub",
+  "llvm.ppc.qpx.qvfnmsubs",
+  "llvm.ppc.qpx.qvfperm",
+  "llvm.ppc.qpx.qvfre",
+  "llvm.ppc.qpx.qvfres",
+  "llvm.ppc.qpx.qvfrim",
+  "llvm.ppc.qpx.qvfrin",
+  "llvm.ppc.qpx.qvfrip",
+  "llvm.ppc.qpx.qvfriz",
+  "llvm.ppc.qpx.qvfrsp",
+  "llvm.ppc.qpx.qvfrsqrte",
+  "llvm.ppc.qpx.qvfrsqrtes",
+  "llvm.ppc.qpx.qvfsel",
+  "llvm.ppc.qpx.qvfsub",
+  "llvm.ppc.qpx.qvfsubs",
+  "llvm.ppc.qpx.qvftstnan",
+  "llvm.ppc.qpx.qvfxmadd",
+  "llvm.ppc.qpx.qvfxmadds",
+  "llvm.ppc.qpx.qvfxmul",
+  "llvm.ppc.qpx.qvfxmuls",
+  "llvm.ppc.qpx.qvfxxcpnmadd",
+  "llvm.ppc.qpx.qvfxxcpnmadds",
+  "llvm.ppc.qpx.qvfxxmadd",
+  "llvm.ppc.qpx.qvfxxmadds",
+  "llvm.ppc.qpx.qvfxxnpmadd",
+  "llvm.ppc.qpx.qvfxxnpmadds",
+  "llvm.ppc.qpx.qvgpci",
+  "llvm.ppc.qpx.qvlfcd",
+  "llvm.ppc.qpx.qvlfcda",
+  "llvm.ppc.qpx.qvlfcs",
+  "llvm.ppc.qpx.qvlfcsa",
+  "llvm.ppc.qpx.qvlfd",
+  "llvm.ppc.qpx.qvlfda",
+  "llvm.ppc.qpx.qvlfiwa",
+  "llvm.ppc.qpx.qvlfiwaa",
+  "llvm.ppc.qpx.qvlfiwz",
+  "llvm.ppc.qpx.qvlfiwza",
+  "llvm.ppc.qpx.qvlfs",
+  "llvm.ppc.qpx.qvlfsa",
+  "llvm.ppc.qpx.qvlpcld",
+  "llvm.ppc.qpx.qvlpcls",
+  "llvm.ppc.qpx.qvlpcrd",
+  "llvm.ppc.qpx.qvlpcrs",
+  "llvm.ppc.qpx.qvstfcd",
+  "llvm.ppc.qpx.qvstfcda",
+  "llvm.ppc.qpx.qvstfcs",
+  "llvm.ppc.qpx.qvstfcsa",
+  "llvm.ppc.qpx.qvstfd",
+  "llvm.ppc.qpx.qvstfda",
+  "llvm.ppc.qpx.qvstfiw",
+  "llvm.ppc.qpx.qvstfiwa",
+  "llvm.ppc.qpx.qvstfs",
+  "llvm.ppc.qpx.qvstfsa",
+  "llvm.ppc.set.texasr",
+  "llvm.ppc.set.texasru",
+  "llvm.ppc.set.tfhar",
+  "llvm.ppc.set.tfiar",
+  "llvm.ppc.sqrtf128.round.to.odd",
+  "llvm.ppc.subf128.round.to.odd",
+  "llvm.ppc.sync",
+  "llvm.ppc.tabort",
+  "llvm.ppc.tabortdc",
+  "llvm.ppc.tabortdci",
+  "llvm.ppc.tabortwc",
+  "llvm.ppc.tabortwci",
+  "llvm.ppc.tbegin",
+  "llvm.ppc.tcheck",
+  "llvm.ppc.tend",
+  "llvm.ppc.tendall",
+  "llvm.ppc.trechkpt",
+  "llvm.ppc.treclaim",
+  "llvm.ppc.tresume",
+  "llvm.ppc.truncf128.round.to.odd",
+  "llvm.ppc.tsr",
+  "llvm.ppc.tsuspend",
+  "llvm.ppc.ttest",
+  "llvm.ppc.vsx.lxvd2x",
+  "llvm.ppc.vsx.lxvd2x.be",
+  "llvm.ppc.vsx.lxvl",
+  "llvm.ppc.vsx.lxvll",
+  "llvm.ppc.vsx.lxvw4x",
+  "llvm.ppc.vsx.lxvw4x.be",
+  "llvm.ppc.vsx.stxvd2x",
+  "llvm.ppc.vsx.stxvd2x.be",
+  "llvm.ppc.vsx.stxvl",
+  "llvm.ppc.vsx.stxvll",
+  "llvm.ppc.vsx.stxvw4x",
+  "llvm.ppc.vsx.stxvw4x.be",
+  "llvm.ppc.vsx.xsmaxdp",
+  "llvm.ppc.vsx.xsmindp",
+  "llvm.ppc.vsx.xvcmpeqdp",
+  "llvm.ppc.vsx.xvcmpeqdp.p",
+  "llvm.ppc.vsx.xvcmpeqsp",
+  "llvm.ppc.vsx.xvcmpeqsp.p",
+  "llvm.ppc.vsx.xvcmpgedp",
+  "llvm.ppc.vsx.xvcmpgedp.p",
+  "llvm.ppc.vsx.xvcmpgesp",
+  "llvm.ppc.vsx.xvcmpgesp.p",
+  "llvm.ppc.vsx.xvcmpgtdp",
+  "llvm.ppc.vsx.xvcmpgtdp.p",
+  "llvm.ppc.vsx.xvcmpgtsp",
+  "llvm.ppc.vsx.xvcmpgtsp.p",
+  "llvm.ppc.vsx.xvcvdpsp",
+  "llvm.ppc.vsx.xvcvdpsxws",
+  "llvm.ppc.vsx.xvcvdpuxws",
+  "llvm.ppc.vsx.xvcvhpsp",
+  "llvm.ppc.vsx.xvcvspdp",
+  "llvm.ppc.vsx.xvcvsphp",
+  "llvm.ppc.vsx.xvcvsxdsp",
+  "llvm.ppc.vsx.xvcvsxwdp",
+  "llvm.ppc.vsx.xvcvuxdsp",
+  "llvm.ppc.vsx.xvcvuxwdp",
+  "llvm.ppc.vsx.xvdivdp",
+  "llvm.ppc.vsx.xvdivsp",
+  "llvm.ppc.vsx.xviexpdp",
+  "llvm.ppc.vsx.xviexpsp",
+  "llvm.ppc.vsx.xvmaxdp",
+  "llvm.ppc.vsx.xvmaxsp",
+  "llvm.ppc.vsx.xvmindp",
+  "llvm.ppc.vsx.xvminsp",
+  "llvm.ppc.vsx.xvrdpip",
+  "llvm.ppc.vsx.xvredp",
+  "llvm.ppc.vsx.xvresp",
+  "llvm.ppc.vsx.xvrspip",
+  "llvm.ppc.vsx.xvrsqrtedp",
+  "llvm.ppc.vsx.xvrsqrtesp",
+  "llvm.ppc.vsx.xvtstdcdp",
+  "llvm.ppc.vsx.xvtstdcsp",
+  "llvm.ppc.vsx.xvxexpdp",
+  "llvm.ppc.vsx.xvxexpsp",
+  "llvm.ppc.vsx.xvxsigdp",
+  "llvm.ppc.vsx.xvxsigsp",
+  "llvm.ppc.vsx.xxextractuw",
+  "llvm.ppc.vsx.xxinsertw",
+  "llvm.ppc.vsx.xxleqv",
+  "llvm.r600.cube",
+  "llvm.r600.ddx",
+  "llvm.r600.ddy",
+  "llvm.r600.dot4",
+  "llvm.r600.group.barrier",
+  "llvm.r600.implicitarg.ptr",
+  "llvm.r600.kill",
+  "llvm.r600.rat.store.typed",
+  "llvm.r600.read.global.size.x",
+  "llvm.r600.read.global.size.y",
+  "llvm.r600.read.global.size.z",
+  "llvm.r600.read.local.size.x",
+  "llvm.r600.read.local.size.y",
+  "llvm.r600.read.local.size.z",
+  "llvm.r600.read.ngroups.x",
+  "llvm.r600.read.ngroups.y",
+  "llvm.r600.read.ngroups.z",
+  "llvm.r600.read.tgid.x",
+  "llvm.r600.read.tgid.y",
+  "llvm.r600.read.tgid.z",
+  "llvm.r600.read.tidig.x",
+  "llvm.r600.read.tidig.y",
+  "llvm.r600.read.tidig.z",
+  "llvm.r600.recipsqrt.clamped",
+  "llvm.r600.recipsqrt.ieee",
+  "llvm.r600.store.stream.output",
+  "llvm.r600.store.swizzle",
+  "llvm.r600.tex",
+  "llvm.r600.texc",
+  "llvm.r600.txb",
+  "llvm.r600.txbc",
+  "llvm.r600.txf",
+  "llvm.r600.txl",
+  "llvm.r600.txlc",
+  "llvm.r600.txq",
+  "llvm.s390.efpc",
+  "llvm.s390.etnd",
+  "llvm.s390.lcbb",
+  "llvm.s390.ntstg",
+  "llvm.s390.ppa.txassist",
+  "llvm.s390.sfpc",
+  "llvm.s390.tabort",
+  "llvm.s390.tbegin",
+  "llvm.s390.tbegin.nofloat",
+  "llvm.s390.tbeginc",
+  "llvm.s390.tdc",
+  "llvm.s390.tend",
+  "llvm.s390.vaccb",
+  "llvm.s390.vacccq",
+  "llvm.s390.vaccf",
+  "llvm.s390.vaccg",
+  "llvm.s390.vacch",
+  "llvm.s390.vaccq",
+  "llvm.s390.vacq",
+  "llvm.s390.vaq",
+  "llvm.s390.vavgb",
+  "llvm.s390.vavgf",
+  "llvm.s390.vavgg",
+  "llvm.s390.vavgh",
+  "llvm.s390.vavglb",
+  "llvm.s390.vavglf",
+  "llvm.s390.vavglg",
+  "llvm.s390.vavglh",
+  "llvm.s390.vbperm",
+  "llvm.s390.vceqbs",
+  "llvm.s390.vceqfs",
+  "llvm.s390.vceqgs",
+  "llvm.s390.vceqhs",
+  "llvm.s390.vchbs",
+  "llvm.s390.vchfs",
+  "llvm.s390.vchgs",
+  "llvm.s390.vchhs",
+  "llvm.s390.vchlbs",
+  "llvm.s390.vchlfs",
+  "llvm.s390.vchlgs",
+  "llvm.s390.vchlhs",
+  "llvm.s390.vcksm",
+  "llvm.s390.verimb",
+  "llvm.s390.verimf",
+  "llvm.s390.verimg",
+  "llvm.s390.verimh",
+  "llvm.s390.verllb",
+  "llvm.s390.verllf",
+  "llvm.s390.verllg",
+  "llvm.s390.verllh",
+  "llvm.s390.verllvb",
+  "llvm.s390.verllvf",
+  "llvm.s390.verllvg",
+  "llvm.s390.verllvh",
+  "llvm.s390.vfaeb",
+  "llvm.s390.vfaebs",
+  "llvm.s390.vfaef",
+  "llvm.s390.vfaefs",
+  "llvm.s390.vfaeh",
+  "llvm.s390.vfaehs",
+  "llvm.s390.vfaezb",
+  "llvm.s390.vfaezbs",
+  "llvm.s390.vfaezf",
+  "llvm.s390.vfaezfs",
+  "llvm.s390.vfaezh",
+  "llvm.s390.vfaezhs",
+  "llvm.s390.vfcedbs",
+  "llvm.s390.vfcesbs",
+  "llvm.s390.vfchdbs",
+  "llvm.s390.vfchedbs",
+  "llvm.s390.vfchesbs",
+  "llvm.s390.vfchsbs",
+  "llvm.s390.vfeeb",
+  "llvm.s390.vfeebs",
+  "llvm.s390.vfeef",
+  "llvm.s390.vfeefs",
+  "llvm.s390.vfeeh",
+  "llvm.s390.vfeehs",
+  "llvm.s390.vfeezb",
+  "llvm.s390.vfeezbs",
+  "llvm.s390.vfeezf",
+  "llvm.s390.vfeezfs",
+  "llvm.s390.vfeezh",
+  "llvm.s390.vfeezhs",
+  "llvm.s390.vfeneb",
+  "llvm.s390.vfenebs",
+  "llvm.s390.vfenef",
+  "llvm.s390.vfenefs",
+  "llvm.s390.vfeneh",
+  "llvm.s390.vfenehs",
+  "llvm.s390.vfenezb",
+  "llvm.s390.vfenezbs",
+  "llvm.s390.vfenezf",
+  "llvm.s390.vfenezfs",
+  "llvm.s390.vfenezh",
+  "llvm.s390.vfenezhs",
+  "llvm.s390.vfidb",
+  "llvm.s390.vfisb",
+  "llvm.s390.vfmaxdb",
+  "llvm.s390.vfmaxsb",
+  "llvm.s390.vfmindb",
+  "llvm.s390.vfminsb",
+  "llvm.s390.vftcidb",
+  "llvm.s390.vftcisb",
+  "llvm.s390.vgfmab",
+  "llvm.s390.vgfmaf",
+  "llvm.s390.vgfmag",
+  "llvm.s390.vgfmah",
+  "llvm.s390.vgfmb",
+  "llvm.s390.vgfmf",
+  "llvm.s390.vgfmg",
+  "llvm.s390.vgfmh",
+  "llvm.s390.vistrb",
+  "llvm.s390.vistrbs",
+  "llvm.s390.vistrf",
+  "llvm.s390.vistrfs",
+  "llvm.s390.vistrh",
+  "llvm.s390.vistrhs",
+  "llvm.s390.vlbb",
+  "llvm.s390.vll",
+  "llvm.s390.vlrl",
+  "llvm.s390.vmaeb",
+  "llvm.s390.vmaef",
+  "llvm.s390.vmaeh",
+  "llvm.s390.vmahb",
+  "llvm.s390.vmahf",
+  "llvm.s390.vmahh",
+  "llvm.s390.vmaleb",
+  "llvm.s390.vmalef",
+  "llvm.s390.vmaleh",
+  "llvm.s390.vmalhb",
+  "llvm.s390.vmalhf",
+  "llvm.s390.vmalhh",
+  "llvm.s390.vmalob",
+  "llvm.s390.vmalof",
+  "llvm.s390.vmaloh",
+  "llvm.s390.vmaob",
+  "llvm.s390.vmaof",
+  "llvm.s390.vmaoh",
+  "llvm.s390.vmeb",
+  "llvm.s390.vmef",
+  "llvm.s390.vmeh",
+  "llvm.s390.vmhb",
+  "llvm.s390.vmhf",
+  "llvm.s390.vmhh",
+  "llvm.s390.vmleb",
+  "llvm.s390.vmlef",
+  "llvm.s390.vmleh",
+  "llvm.s390.vmlhb",
+  "llvm.s390.vmlhf",
+  "llvm.s390.vmlhh",
+  "llvm.s390.vmlob",
+  "llvm.s390.vmlof",
+  "llvm.s390.vmloh",
+  "llvm.s390.vmob",
+  "llvm.s390.vmof",
+  "llvm.s390.vmoh",
+  "llvm.s390.vmslg",
+  "llvm.s390.vpdi",
+  "llvm.s390.vperm",
+  "llvm.s390.vpklsf",
+  "llvm.s390.vpklsfs",
+  "llvm.s390.vpklsg",
+  "llvm.s390.vpklsgs",
+  "llvm.s390.vpklsh",
+  "llvm.s390.vpklshs",
+  "llvm.s390.vpksf",
+  "llvm.s390.vpksfs",
+  "llvm.s390.vpksg",
+  "llvm.s390.vpksgs",
+  "llvm.s390.vpksh",
+  "llvm.s390.vpkshs",
+  "llvm.s390.vsbcbiq",
+  "llvm.s390.vsbiq",
+  "llvm.s390.vscbib",
+  "llvm.s390.vscbif",
+  "llvm.s390.vscbig",
+  "llvm.s390.vscbih",
+  "llvm.s390.vscbiq",
+  "llvm.s390.vsl",
+  "llvm.s390.vslb",
+  "llvm.s390.vsldb",
+  "llvm.s390.vsq",
+  "llvm.s390.vsra",
+  "llvm.s390.vsrab",
+  "llvm.s390.vsrl",
+  "llvm.s390.vsrlb",
+  "llvm.s390.vstl",
+  "llvm.s390.vstrcb",
+  "llvm.s390.vstrcbs",
+  "llvm.s390.vstrcf",
+  "llvm.s390.vstrcfs",
+  "llvm.s390.vstrch",
+  "llvm.s390.vstrchs",
+  "llvm.s390.vstrczb",
+  "llvm.s390.vstrczbs",
+  "llvm.s390.vstrczf",
+  "llvm.s390.vstrczfs",
+  "llvm.s390.vstrczh",
+  "llvm.s390.vstrczhs",
+  "llvm.s390.vstrl",
+  "llvm.s390.vsumb",
+  "llvm.s390.vsumgf",
+  "llvm.s390.vsumgh",
+  "llvm.s390.vsumh",
+  "llvm.s390.vsumqf",
+  "llvm.s390.vsumqg",
+  "llvm.s390.vtm",
+  "llvm.s390.vuphb",
+  "llvm.s390.vuphf",
+  "llvm.s390.vuphh",
+  "llvm.s390.vuplb",
+  "llvm.s390.vuplf",
+  "llvm.s390.vuplhb",
+  "llvm.s390.vuplhf",
+  "llvm.s390.vuplhh",
+  "llvm.s390.vuplhw",
+  "llvm.s390.vupllb",
+  "llvm.s390.vupllf",
+  "llvm.s390.vupllh",
+  "llvm.wasm.atomic.notify",
+  "llvm.wasm.atomic.wait.i32",
+  "llvm.wasm.atomic.wait.i64",
+  "llvm.wasm.catch",
+  "llvm.wasm.current.memory",
+  "llvm.wasm.get.ehselector",
+  "llvm.wasm.get.exception",
+  "llvm.wasm.grow.memory",
+  "llvm.wasm.landingpad.index",
+  "llvm.wasm.lsda",
+  "llvm.wasm.mem.grow",
+  "llvm.wasm.mem.size",
+  "llvm.wasm.memory.grow",
+  "llvm.wasm.memory.size",
+  "llvm.wasm.rethrow",
+  "llvm.wasm.throw",
+  "llvm.x86.3dnow.pavgusb",
+  "llvm.x86.3dnow.pf2id",
+  "llvm.x86.3dnow.pfacc",
+  "llvm.x86.3dnow.pfadd",
+  "llvm.x86.3dnow.pfcmpeq",
+  "llvm.x86.3dnow.pfcmpge",
+  "llvm.x86.3dnow.pfcmpgt",
+  "llvm.x86.3dnow.pfmax",
+  "llvm.x86.3dnow.pfmin",
+  "llvm.x86.3dnow.pfmul",
+  "llvm.x86.3dnow.pfrcp",
+  "llvm.x86.3dnow.pfrcpit1",
+  "llvm.x86.3dnow.pfrcpit2",
+  "llvm.x86.3dnow.pfrsqit1",
+  "llvm.x86.3dnow.pfrsqrt",
+  "llvm.x86.3dnow.pfsub",
+  "llvm.x86.3dnow.pfsubr",
+  "llvm.x86.3dnow.pi2fd",
+  "llvm.x86.3dnow.pmulhrw",
+  "llvm.x86.3dnowa.pf2iw",
+  "llvm.x86.3dnowa.pfnacc",
+  "llvm.x86.3dnowa.pfpnacc",
+  "llvm.x86.3dnowa.pi2fw",
+  "llvm.x86.3dnowa.pswapd",
+  "llvm.x86.addcarry.u32",
+  "llvm.x86.addcarry.u64",
+  "llvm.x86.addcarryx.u32",
+  "llvm.x86.addcarryx.u64",
+  "llvm.x86.aesni.aesdec",
+  "llvm.x86.aesni.aesdec.256",
+  "llvm.x86.aesni.aesdec.512",
+  "llvm.x86.aesni.aesdeclast",
+  "llvm.x86.aesni.aesdeclast.256",
+  "llvm.x86.aesni.aesdeclast.512",
+  "llvm.x86.aesni.aesenc",
+  "llvm.x86.aesni.aesenc.256",
+  "llvm.x86.aesni.aesenc.512",
+  "llvm.x86.aesni.aesenclast",
+  "llvm.x86.aesni.aesenclast.256",
+  "llvm.x86.aesni.aesenclast.512",
+  "llvm.x86.aesni.aesimc",
+  "llvm.x86.aesni.aeskeygenassist",
+  "llvm.x86.avx.addsub.pd.256",
+  "llvm.x86.avx.addsub.ps.256",
+  "llvm.x86.avx.blendv.pd.256",
+  "llvm.x86.avx.blendv.ps.256",
+  "llvm.x86.avx.cmp.pd.256",
+  "llvm.x86.avx.cmp.ps.256",
+  "llvm.x86.avx.cvt.pd2.ps.256",
+  "llvm.x86.avx.cvt.pd2dq.256",
+  "llvm.x86.avx.cvt.ps2dq.256",
+  "llvm.x86.avx.cvtt.pd2dq.256",
+  "llvm.x86.avx.cvtt.ps2dq.256",
+  "llvm.x86.avx.dp.ps.256",
+  "llvm.x86.avx.hadd.pd.256",
+  "llvm.x86.avx.hadd.ps.256",
+  "llvm.x86.avx.hsub.pd.256",
+  "llvm.x86.avx.hsub.ps.256",
+  "llvm.x86.avx.ldu.dq.256",
+  "llvm.x86.avx.maskload.pd",
+  "llvm.x86.avx.maskload.pd.256",
+  "llvm.x86.avx.maskload.ps",
+  "llvm.x86.avx.maskload.ps.256",
+  "llvm.x86.avx.maskstore.pd",
+  "llvm.x86.avx.maskstore.pd.256",
+  "llvm.x86.avx.maskstore.ps",
+  "llvm.x86.avx.maskstore.ps.256",
+  "llvm.x86.avx.max.pd.256",
+  "llvm.x86.avx.max.ps.256",
+  "llvm.x86.avx.min.pd.256",
+  "llvm.x86.avx.min.ps.256",
+  "llvm.x86.avx.movmsk.pd.256",
+  "llvm.x86.avx.movmsk.ps.256",
+  "llvm.x86.avx.ptestc.256",
+  "llvm.x86.avx.ptestnzc.256",
+  "llvm.x86.avx.ptestz.256",
+  "llvm.x86.avx.rcp.ps.256",
+  "llvm.x86.avx.round.pd.256",
+  "llvm.x86.avx.round.ps.256",
+  "llvm.x86.avx.rsqrt.ps.256",
+  "llvm.x86.avx.vpermilvar.pd",
+  "llvm.x86.avx.vpermilvar.pd.256",
+  "llvm.x86.avx.vpermilvar.ps",
+  "llvm.x86.avx.vpermilvar.ps.256",
+  "llvm.x86.avx.vtestc.pd",
+  "llvm.x86.avx.vtestc.pd.256",
+  "llvm.x86.avx.vtestc.ps",
+  "llvm.x86.avx.vtestc.ps.256",
+  "llvm.x86.avx.vtestnzc.pd",
+  "llvm.x86.avx.vtestnzc.pd.256",
+  "llvm.x86.avx.vtestnzc.ps",
+  "llvm.x86.avx.vtestnzc.ps.256",
+  "llvm.x86.avx.vtestz.pd",
+  "llvm.x86.avx.vtestz.pd.256",
+  "llvm.x86.avx.vtestz.ps",
+  "llvm.x86.avx.vtestz.ps.256",
+  "llvm.x86.avx.vzeroall",
+  "llvm.x86.avx.vzeroupper",
+  "llvm.x86.avx2.gather.d.d",
+  "llvm.x86.avx2.gather.d.d.256",
+  "llvm.x86.avx2.gather.d.pd",
+  "llvm.x86.avx2.gather.d.pd.256",
+  "llvm.x86.avx2.gather.d.ps",
+  "llvm.x86.avx2.gather.d.ps.256",
+  "llvm.x86.avx2.gather.d.q",
+  "llvm.x86.avx2.gather.d.q.256",
+  "llvm.x86.avx2.gather.q.d",
+  "llvm.x86.avx2.gather.q.d.256",
+  "llvm.x86.avx2.gather.q.pd",
+  "llvm.x86.avx2.gather.q.pd.256",
+  "llvm.x86.avx2.gather.q.ps",
+  "llvm.x86.avx2.gather.q.ps.256",
+  "llvm.x86.avx2.gather.q.q",
+  "llvm.x86.avx2.gather.q.q.256",
+  "llvm.x86.avx2.maskload.d",
+  "llvm.x86.avx2.maskload.d.256",
+  "llvm.x86.avx2.maskload.q",
+  "llvm.x86.avx2.maskload.q.256",
+  "llvm.x86.avx2.maskstore.d",
+  "llvm.x86.avx2.maskstore.d.256",
+  "llvm.x86.avx2.maskstore.q",
+  "llvm.x86.avx2.maskstore.q.256",
+  "llvm.x86.avx2.mpsadbw",
+  "llvm.x86.avx2.packssdw",
+  "llvm.x86.avx2.packsswb",
+  "llvm.x86.avx2.packusdw",
+  "llvm.x86.avx2.packuswb",
+  "llvm.x86.avx2.padds.b",
+  "llvm.x86.avx2.padds.w",
+  "llvm.x86.avx2.paddus.b",
+  "llvm.x86.avx2.paddus.w",
+  "llvm.x86.avx2.pblendvb",
+  "llvm.x86.avx2.permd",
+  "llvm.x86.avx2.permps",
+  "llvm.x86.avx2.phadd.d",
+  "llvm.x86.avx2.phadd.sw",
+  "llvm.x86.avx2.phadd.w",
+  "llvm.x86.avx2.phsub.d",
+  "llvm.x86.avx2.phsub.sw",
+  "llvm.x86.avx2.phsub.w",
+  "llvm.x86.avx2.pmadd.ub.sw",
+  "llvm.x86.avx2.pmadd.wd",
+  "llvm.x86.avx2.pmovmskb",
+  "llvm.x86.avx2.pmul.hr.sw",
+  "llvm.x86.avx2.pmulh.w",
+  "llvm.x86.avx2.pmulhu.w",
+  "llvm.x86.avx2.psad.bw",
+  "llvm.x86.avx2.pshuf.b",
+  "llvm.x86.avx2.psign.b",
+  "llvm.x86.avx2.psign.d",
+  "llvm.x86.avx2.psign.w",
+  "llvm.x86.avx2.psll.d",
+  "llvm.x86.avx2.psll.q",
+  "llvm.x86.avx2.psll.w",
+  "llvm.x86.avx2.pslli.d",
+  "llvm.x86.avx2.pslli.q",
+  "llvm.x86.avx2.pslli.w",
+  "llvm.x86.avx2.psllv.d",
+  "llvm.x86.avx2.psllv.d.256",
+  "llvm.x86.avx2.psllv.q",
+  "llvm.x86.avx2.psllv.q.256",
+  "llvm.x86.avx2.psra.d",
+  "llvm.x86.avx2.psra.w",
+  "llvm.x86.avx2.psrai.d",
+  "llvm.x86.avx2.psrai.w",
+  "llvm.x86.avx2.psrav.d",
+  "llvm.x86.avx2.psrav.d.256",
+  "llvm.x86.avx2.psrl.d",
+  "llvm.x86.avx2.psrl.q",
+  "llvm.x86.avx2.psrl.w",
+  "llvm.x86.avx2.psrli.d",
+  "llvm.x86.avx2.psrli.q",
+  "llvm.x86.avx2.psrli.w",
+  "llvm.x86.avx2.psrlv.d",
+  "llvm.x86.avx2.psrlv.d.256",
+  "llvm.x86.avx2.psrlv.q",
+  "llvm.x86.avx2.psrlv.q.256",
+  "llvm.x86.avx2.psubs.b",
+  "llvm.x86.avx2.psubs.w",
+  "llvm.x86.avx2.psubus.b",
+  "llvm.x86.avx2.psubus.w",
+  "llvm.x86.avx512.add.pd.512",
+  "llvm.x86.avx512.add.ps.512",
+  "llvm.x86.avx512.broadcastmb.128",
+  "llvm.x86.avx512.broadcastmb.256",
+  "llvm.x86.avx512.broadcastmb.512",
+  "llvm.x86.avx512.broadcastmw.128",
+  "llvm.x86.avx512.broadcastmw.256",
+  "llvm.x86.avx512.broadcastmw.512",
+  "llvm.x86.avx512.cmp.pd.128",
+  "llvm.x86.avx512.cmp.pd.256",
+  "llvm.x86.avx512.cmp.pd.512",
+  "llvm.x86.avx512.cmp.ps.128",
+  "llvm.x86.avx512.cmp.ps.256",
+  "llvm.x86.avx512.cmp.ps.512",
+  "llvm.x86.avx512.cvtsi2sd64",
+  "llvm.x86.avx512.cvtsi2ss32",
+  "llvm.x86.avx512.cvtsi2ss64",
+  "llvm.x86.avx512.cvttsd2si",
+  "llvm.x86.avx512.cvttsd2si64",
+  "llvm.x86.avx512.cvttsd2usi",
+  "llvm.x86.avx512.cvttsd2usi64",
+  "llvm.x86.avx512.cvttss2si",
+  "llvm.x86.avx512.cvttss2si64",
+  "llvm.x86.avx512.cvttss2usi",
+  "llvm.x86.avx512.cvttss2usi64",
+  "llvm.x86.avx512.cvtusi2ss",
+  "llvm.x86.avx512.cvtusi642sd",
+  "llvm.x86.avx512.cvtusi642ss",
+  "llvm.x86.avx512.dbpsadbw.128",
+  "llvm.x86.avx512.dbpsadbw.256",
+  "llvm.x86.avx512.dbpsadbw.512",
+  "llvm.x86.avx512.div.pd.512",
+  "llvm.x86.avx512.div.ps.512",
+  "llvm.x86.avx512.exp2.pd",
+  "llvm.x86.avx512.exp2.ps",
+  "llvm.x86.avx512.fpclass.pd.128",
+  "llvm.x86.avx512.fpclass.pd.256",
+  "llvm.x86.avx512.fpclass.pd.512",
+  "llvm.x86.avx512.fpclass.ps.128",
+  "llvm.x86.avx512.fpclass.ps.256",
+  "llvm.x86.avx512.fpclass.ps.512",
+  "llvm.x86.avx512.gather.dpd.512",
+  "llvm.x86.avx512.gather.dpi.512",
+  "llvm.x86.avx512.gather.dpq.512",
+  "llvm.x86.avx512.gather.dps.512",
+  "llvm.x86.avx512.gather.qpd.512",
+  "llvm.x86.avx512.gather.qpi.512",
+  "llvm.x86.avx512.gather.qpq.512",
+  "llvm.x86.avx512.gather.qps.512",
+  "llvm.x86.avx512.gather3div2.df",
+  "llvm.x86.avx512.gather3div2.di",
+  "llvm.x86.avx512.gather3div4.df",
+  "llvm.x86.avx512.gather3div4.di",
+  "llvm.x86.avx512.gather3div4.sf",
+  "llvm.x86.avx512.gather3div4.si",
+  "llvm.x86.avx512.gather3div8.sf",
+  "llvm.x86.avx512.gather3div8.si",
+  "llvm.x86.avx512.gather3siv2.df",
+  "llvm.x86.avx512.gather3siv2.di",
+  "llvm.x86.avx512.gather3siv4.df",
+  "llvm.x86.avx512.gather3siv4.di",
+  "llvm.x86.avx512.gather3siv4.sf",
+  "llvm.x86.avx512.gather3siv4.si",
+  "llvm.x86.avx512.gather3siv8.sf",
+  "llvm.x86.avx512.gather3siv8.si",
+  "llvm.x86.avx512.gatherpf.dpd.512",
+  "llvm.x86.avx512.gatherpf.dps.512",
+  "llvm.x86.avx512.gatherpf.qpd.512",
+  "llvm.x86.avx512.gatherpf.qps.512",
+  "llvm.x86.avx512.mask.add.sd.round",
+  "llvm.x86.avx512.mask.add.ss.round",
+  "llvm.x86.avx512.mask.cmp.sd",
+  "llvm.x86.avx512.mask.cmp.ss",
+  "llvm.x86.avx512.mask.compress.b.128",
+  "llvm.x86.avx512.mask.compress.b.256",
+  "llvm.x86.avx512.mask.compress.b.512",
+  "llvm.x86.avx512.mask.compress.d.128",
+  "llvm.x86.avx512.mask.compress.d.256",
+  "llvm.x86.avx512.mask.compress.d.512",
+  "llvm.x86.avx512.mask.compress.pd.128",
+  "llvm.x86.avx512.mask.compress.pd.256",
+  "llvm.x86.avx512.mask.compress.pd.512",
+  "llvm.x86.avx512.mask.compress.ps.128",
+  "llvm.x86.avx512.mask.compress.ps.256",
+  "llvm.x86.avx512.mask.compress.ps.512",
+  "llvm.x86.avx512.mask.compress.q.128",
+  "llvm.x86.avx512.mask.compress.q.256",
+  "llvm.x86.avx512.mask.compress.q.512",
+  "llvm.x86.avx512.mask.compress.w.128",
+  "llvm.x86.avx512.mask.compress.w.256",
+  "llvm.x86.avx512.mask.compress.w.512",
+  "llvm.x86.avx512.mask.conflict.d.128",
+  "llvm.x86.avx512.mask.conflict.d.256",
+  "llvm.x86.avx512.mask.conflict.d.512",
+  "llvm.x86.avx512.mask.conflict.q.128",
+  "llvm.x86.avx512.mask.conflict.q.256",
+  "llvm.x86.avx512.mask.conflict.q.512",
+  "llvm.x86.avx512.mask.cvtdq2ps.512",
+  "llvm.x86.avx512.mask.cvtpd2dq.128",
+  "llvm.x86.avx512.mask.cvtpd2dq.512",
+  "llvm.x86.avx512.mask.cvtpd2ps",
+  "llvm.x86.avx512.mask.cvtpd2ps.512",
+  "llvm.x86.avx512.mask.cvtpd2qq.128",
+  "llvm.x86.avx512.mask.cvtpd2qq.256",
+  "llvm.x86.avx512.mask.cvtpd2qq.512",
+  "llvm.x86.avx512.mask.cvtpd2udq.128",
+  "llvm.x86.avx512.mask.cvtpd2udq.256",
+  "llvm.x86.avx512.mask.cvtpd2udq.512",
+  "llvm.x86.avx512.mask.cvtpd2uqq.128",
+  "llvm.x86.avx512.mask.cvtpd2uqq.256",
+  "llvm.x86.avx512.mask.cvtpd2uqq.512",
+  "llvm.x86.avx512.mask.cvtps2dq.128",
+  "llvm.x86.avx512.mask.cvtps2dq.256",
+  "llvm.x86.avx512.mask.cvtps2dq.512",
+  "llvm.x86.avx512.mask.cvtps2pd.512",
+  "llvm.x86.avx512.mask.cvtps2qq.128",
+  "llvm.x86.avx512.mask.cvtps2qq.256",
+  "llvm.x86.avx512.mask.cvtps2qq.512",
+  "llvm.x86.avx512.mask.cvtps2udq.128",
+  "llvm.x86.avx512.mask.cvtps2udq.256",
+  "llvm.x86.avx512.mask.cvtps2udq.512",
+  "llvm.x86.avx512.mask.cvtps2uqq.128",
+  "llvm.x86.avx512.mask.cvtps2uqq.256",
+  "llvm.x86.avx512.mask.cvtps2uqq.512",
+  "llvm.x86.avx512.mask.cvtqq2pd.512",
+  "llvm.x86.avx512.mask.cvtqq2ps.128",
+  "llvm.x86.avx512.mask.cvtqq2ps.256",
+  "llvm.x86.avx512.mask.cvtqq2ps.512",
+  "llvm.x86.avx512.mask.cvtsd2ss.round",
+  "llvm.x86.avx512.mask.cvtss2sd.round",
+  "llvm.x86.avx512.mask.cvttpd2dq.128",
+  "llvm.x86.avx512.mask.cvttpd2dq.512",
+  "llvm.x86.avx512.mask.cvttpd2qq.128",
+  "llvm.x86.avx512.mask.cvttpd2qq.256",
+  "llvm.x86.avx512.mask.cvttpd2qq.512",
+  "llvm.x86.avx512.mask.cvttpd2udq.128",
+  "llvm.x86.avx512.mask.cvttpd2udq.256",
+  "llvm.x86.avx512.mask.cvttpd2udq.512",
+  "llvm.x86.avx512.mask.cvttpd2uqq.128",
+  "llvm.x86.avx512.mask.cvttpd2uqq.256",
+  "llvm.x86.avx512.mask.cvttpd2uqq.512",
+  "llvm.x86.avx512.mask.cvttps2dq.512",
+  "llvm.x86.avx512.mask.cvttps2qq.128",
+  "llvm.x86.avx512.mask.cvttps2qq.256",
+  "llvm.x86.avx512.mask.cvttps2qq.512",
+  "llvm.x86.avx512.mask.cvttps2udq.128",
+  "llvm.x86.avx512.mask.cvttps2udq.256",
+  "llvm.x86.avx512.mask.cvttps2udq.512",
+  "llvm.x86.avx512.mask.cvttps2uqq.128",
+  "llvm.x86.avx512.mask.cvttps2uqq.256",
+  "llvm.x86.avx512.mask.cvttps2uqq.512",
+  "llvm.x86.avx512.mask.cvtudq2ps.512",
+  "llvm.x86.avx512.mask.cvtuqq2pd.512",
+  "llvm.x86.avx512.mask.cvtuqq2ps.128",
+  "llvm.x86.avx512.mask.cvtuqq2ps.256",
+  "llvm.x86.avx512.mask.cvtuqq2ps.512",
+  "llvm.x86.avx512.mask.div.sd.round",
+  "llvm.x86.avx512.mask.div.ss.round",
+  "llvm.x86.avx512.mask.expand.b.128",
+  "llvm.x86.avx512.mask.expand.b.256",
+  "llvm.x86.avx512.mask.expand.b.512",
+  "llvm.x86.avx512.mask.expand.d.128",
+  "llvm.x86.avx512.mask.expand.d.256",
+  "llvm.x86.avx512.mask.expand.d.512",
+  "llvm.x86.avx512.mask.expand.pd.128",
+  "llvm.x86.avx512.mask.expand.pd.256",
+  "llvm.x86.avx512.mask.expand.pd.512",
+  "llvm.x86.avx512.mask.expand.ps.128",
+  "llvm.x86.avx512.mask.expand.ps.256",
+  "llvm.x86.avx512.mask.expand.ps.512",
+  "llvm.x86.avx512.mask.expand.q.128",
+  "llvm.x86.avx512.mask.expand.q.256",
+  "llvm.x86.avx512.mask.expand.q.512",
+  "llvm.x86.avx512.mask.expand.w.128",
+  "llvm.x86.avx512.mask.expand.w.256",
+  "llvm.x86.avx512.mask.expand.w.512",
+  "llvm.x86.avx512.mask.fixupimm.pd.128",
+  "llvm.x86.avx512.mask.fixupimm.pd.256",
+  "llvm.x86.avx512.mask.fixupimm.pd.512",
+  "llvm.x86.avx512.mask.fixupimm.ps.128",
+  "llvm.x86.avx512.mask.fixupimm.ps.256",
+  "llvm.x86.avx512.mask.fixupimm.ps.512",
+  "llvm.x86.avx512.mask.fixupimm.sd",
+  "llvm.x86.avx512.mask.fixupimm.ss",
+  "llvm.x86.avx512.mask.fpclass.sd",
+  "llvm.x86.avx512.mask.fpclass.ss",
+  "llvm.x86.avx512.mask.getexp.pd.128",
+  "llvm.x86.avx512.mask.getexp.pd.256",
+  "llvm.x86.avx512.mask.getexp.pd.512",
+  "llvm.x86.avx512.mask.getexp.ps.128",
+  "llvm.x86.avx512.mask.getexp.ps.256",
+  "llvm.x86.avx512.mask.getexp.ps.512",
+  "llvm.x86.avx512.mask.getexp.sd",
+  "llvm.x86.avx512.mask.getexp.ss",
+  "llvm.x86.avx512.mask.getmant.pd.128",
+  "llvm.x86.avx512.mask.getmant.pd.256",
+  "llvm.x86.avx512.mask.getmant.pd.512",
+  "llvm.x86.avx512.mask.getmant.ps.128",
+  "llvm.x86.avx512.mask.getmant.ps.256",
+  "llvm.x86.avx512.mask.getmant.ps.512",
+  "llvm.x86.avx512.mask.getmant.sd",
+  "llvm.x86.avx512.mask.getmant.ss",
+  "llvm.x86.avx512.mask.max.sd.round",
+  "llvm.x86.avx512.mask.max.ss.round",
+  "llvm.x86.avx512.mask.min.sd.round",
+  "llvm.x86.avx512.mask.min.ss.round",
+  "llvm.x86.avx512.mask.mul.sd.round",
+  "llvm.x86.avx512.mask.mul.ss.round",
+  "llvm.x86.avx512.mask.padds.b.128",
+  "llvm.x86.avx512.mask.padds.b.256",
+  "llvm.x86.avx512.mask.padds.b.512",
+  "llvm.x86.avx512.mask.padds.w.128",
+  "llvm.x86.avx512.mask.padds.w.256",
+  "llvm.x86.avx512.mask.padds.w.512",
+  "llvm.x86.avx512.mask.paddus.b.128",
+  "llvm.x86.avx512.mask.paddus.b.256",
+  "llvm.x86.avx512.mask.paddus.b.512",
+  "llvm.x86.avx512.mask.paddus.w.128",
+  "llvm.x86.avx512.mask.paddus.w.256",
+  "llvm.x86.avx512.mask.paddus.w.512",
+  "llvm.x86.avx512.mask.pmov.db.128",
+  "llvm.x86.avx512.mask.pmov.db.256",
+  "llvm.x86.avx512.mask.pmov.db.512",
+  "llvm.x86.avx512.mask.pmov.db.mem.128",
+  "llvm.x86.avx512.mask.pmov.db.mem.256",
+  "llvm.x86.avx512.mask.pmov.db.mem.512",
+  "llvm.x86.avx512.mask.pmov.dw.128",
+  "llvm.x86.avx512.mask.pmov.dw.256",
+  "llvm.x86.avx512.mask.pmov.dw.512",
+  "llvm.x86.avx512.mask.pmov.dw.mem.128",
+  "llvm.x86.avx512.mask.pmov.dw.mem.256",
+  "llvm.x86.avx512.mask.pmov.dw.mem.512",
+  "llvm.x86.avx512.mask.pmov.qb.128",
+  "llvm.x86.avx512.mask.pmov.qb.256",
+  "llvm.x86.avx512.mask.pmov.qb.512",
+  "llvm.x86.avx512.mask.pmov.qb.mem.128",
+  "llvm.x86.avx512.mask.pmov.qb.mem.256",
+  "llvm.x86.avx512.mask.pmov.qb.mem.512",
+  "llvm.x86.avx512.mask.pmov.qd.128",
+  "llvm.x86.avx512.mask.pmov.qd.256",
+  "llvm.x86.avx512.mask.pmov.qd.512",
+  "llvm.x86.avx512.mask.pmov.qd.mem.128",
+  "llvm.x86.avx512.mask.pmov.qd.mem.256",
+  "llvm.x86.avx512.mask.pmov.qd.mem.512",
+  "llvm.x86.avx512.mask.pmov.qw.128",
+  "llvm.x86.avx512.mask.pmov.qw.256",
+  "llvm.x86.avx512.mask.pmov.qw.512",
+  "llvm.x86.avx512.mask.pmov.qw.mem.128",
+  "llvm.x86.avx512.mask.pmov.qw.mem.256",
+  "llvm.x86.avx512.mask.pmov.qw.mem.512",
+  "llvm.x86.avx512.mask.pmov.wb.128",
+  "llvm.x86.avx512.mask.pmov.wb.256",
+  "llvm.x86.avx512.mask.pmov.wb.512",
+  "llvm.x86.avx512.mask.pmov.wb.mem.128",
+  "llvm.x86.avx512.mask.pmov.wb.mem.256",
+  "llvm.x86.avx512.mask.pmov.wb.mem.512",
+  "llvm.x86.avx512.mask.pmovs.db.128",
+  "llvm.x86.avx512.mask.pmovs.db.256",
+  "llvm.x86.avx512.mask.pmovs.db.512",
+  "llvm.x86.avx512.mask.pmovs.db.mem.128",
+  "llvm.x86.avx512.mask.pmovs.db.mem.256",
+  "llvm.x86.avx512.mask.pmovs.db.mem.512",
+  "llvm.x86.avx512.mask.pmovs.dw.128",
+  "llvm.x86.avx512.mask.pmovs.dw.256",
+  "llvm.x86.avx512.mask.pmovs.dw.512",
+  "llvm.x86.avx512.mask.pmovs.dw.mem.128",
+  "llvm.x86.avx512.mask.pmovs.dw.mem.256",
+  "llvm.x86.avx512.mask.pmovs.dw.mem.512",
+  "llvm.x86.avx512.mask.pmovs.qb.128",
+  "llvm.x86.avx512.mask.pmovs.qb.256",
+  "llvm.x86.avx512.mask.pmovs.qb.512",
+  "llvm.x86.avx512.mask.pmovs.qb.mem.128",
+  "llvm.x86.avx512.mask.pmovs.qb.mem.256",
+  "llvm.x86.avx512.mask.pmovs.qb.mem.512",
+  "llvm.x86.avx512.mask.pmovs.qd.128",
+  "llvm.x86.avx512.mask.pmovs.qd.256",
+  "llvm.x86.avx512.mask.pmovs.qd.512",
+  "llvm.x86.avx512.mask.pmovs.qd.mem.128",
+  "llvm.x86.avx512.mask.pmovs.qd.mem.256",
+  "llvm.x86.avx512.mask.pmovs.qd.mem.512",
+  "llvm.x86.avx512.mask.pmovs.qw.128",
+  "llvm.x86.avx512.mask.pmovs.qw.256",
+  "llvm.x86.avx512.mask.pmovs.qw.512",
+  "llvm.x86.avx512.mask.pmovs.qw.mem.128",
+  "llvm.x86.avx512.mask.pmovs.qw.mem.256",
+  "llvm.x86.avx512.mask.pmovs.qw.mem.512",
+  "llvm.x86.avx512.mask.pmovs.wb.128",
+  "llvm.x86.avx512.mask.pmovs.wb.256",
+  "llvm.x86.avx512.mask.pmovs.wb.512",
+  "llvm.x86.avx512.mask.pmovs.wb.mem.128",
+  "llvm.x86.avx512.mask.pmovs.wb.mem.256",
+  "llvm.x86.avx512.mask.pmovs.wb.mem.512",
+  "llvm.x86.avx512.mask.pmovus.db.128",
+  "llvm.x86.avx512.mask.pmovus.db.256",
+  "llvm.x86.avx512.mask.pmovus.db.512",
+  "llvm.x86.avx512.mask.pmovus.db.mem.128",
+  "llvm.x86.avx512.mask.pmovus.db.mem.256",
+  "llvm.x86.avx512.mask.pmovus.db.mem.512",
+  "llvm.x86.avx512.mask.pmovus.dw.128",
+  "llvm.x86.avx512.mask.pmovus.dw.256",
+  "llvm.x86.avx512.mask.pmovus.dw.512",
+  "llvm.x86.avx512.mask.pmovus.dw.mem.128",
+  "llvm.x86.avx512.mask.pmovus.dw.mem.256",
+  "llvm.x86.avx512.mask.pmovus.dw.mem.512",
+  "llvm.x86.avx512.mask.pmovus.qb.128",
+  "llvm.x86.avx512.mask.pmovus.qb.256",
+  "llvm.x86.avx512.mask.pmovus.qb.512",
+  "llvm.x86.avx512.mask.pmovus.qb.mem.128",
+  "llvm.x86.avx512.mask.pmovus.qb.mem.256",
+  "llvm.x86.avx512.mask.pmovus.qb.mem.512",
+  "llvm.x86.avx512.mask.pmovus.qd.128",
+  "llvm.x86.avx512.mask.pmovus.qd.256",
+  "llvm.x86.avx512.mask.pmovus.qd.512",
+  "llvm.x86.avx512.mask.pmovus.qd.mem.128",
+  "llvm.x86.avx512.mask.pmovus.qd.mem.256",
+  "llvm.x86.avx512.mask.pmovus.qd.mem.512",
+  "llvm.x86.avx512.mask.pmovus.qw.128",
+  "llvm.x86.avx512.mask.pmovus.qw.256",
+  "llvm.x86.avx512.mask.pmovus.qw.512",
+  "llvm.x86.avx512.mask.pmovus.qw.mem.128",
+  "llvm.x86.avx512.mask.pmovus.qw.mem.256",
+  "llvm.x86.avx512.mask.pmovus.qw.mem.512",
+  "llvm.x86.avx512.mask.pmovus.wb.128",
+  "llvm.x86.avx512.mask.pmovus.wb.256",
+  "llvm.x86.avx512.mask.pmovus.wb.512",
+  "llvm.x86.avx512.mask.pmovus.wb.mem.128",
+  "llvm.x86.avx512.mask.pmovus.wb.mem.256",
+  "llvm.x86.avx512.mask.pmovus.wb.mem.512",
+  "llvm.x86.avx512.mask.pmultishift.qb.128",
+  "llvm.x86.avx512.mask.pmultishift.qb.256",
+  "llvm.x86.avx512.mask.pmultishift.qb.512",
+  "llvm.x86.avx512.mask.psubs.b.128",
+  "llvm.x86.avx512.mask.psubs.b.256",
+  "llvm.x86.avx512.mask.psubs.b.512",
+  "llvm.x86.avx512.mask.psubs.w.128",
+  "llvm.x86.avx512.mask.psubs.w.256",
+  "llvm.x86.avx512.mask.psubs.w.512",
+  "llvm.x86.avx512.mask.psubus.b.128",
+  "llvm.x86.avx512.mask.psubus.b.256",
+  "llvm.x86.avx512.mask.psubus.b.512",
+  "llvm.x86.avx512.mask.psubus.w.128",
+  "llvm.x86.avx512.mask.psubus.w.256",
+  "llvm.x86.avx512.mask.psubus.w.512",
+  "llvm.x86.avx512.mask.range.pd.128",
+  "llvm.x86.avx512.mask.range.pd.256",
+  "llvm.x86.avx512.mask.range.pd.512",
+  "llvm.x86.avx512.mask.range.ps.128",
+  "llvm.x86.avx512.mask.range.ps.256",
+  "llvm.x86.avx512.mask.range.ps.512",
+  "llvm.x86.avx512.mask.range.sd",
+  "llvm.x86.avx512.mask.range.ss",
+  "llvm.x86.avx512.mask.reduce.pd.128",
+  "llvm.x86.avx512.mask.reduce.pd.256",
+  "llvm.x86.avx512.mask.reduce.pd.512",
+  "llvm.x86.avx512.mask.reduce.ps.128",
+  "llvm.x86.avx512.mask.reduce.ps.256",
+  "llvm.x86.avx512.mask.reduce.ps.512",
+  "llvm.x86.avx512.mask.reduce.sd",
+  "llvm.x86.avx512.mask.reduce.ss",
+  "llvm.x86.avx512.mask.rndscale.pd.128",
+  "llvm.x86.avx512.mask.rndscale.pd.256",
+  "llvm.x86.avx512.mask.rndscale.pd.512",
+  "llvm.x86.avx512.mask.rndscale.ps.128",
+  "llvm.x86.avx512.mask.rndscale.ps.256",
+  "llvm.x86.avx512.mask.rndscale.ps.512",
+  "llvm.x86.avx512.mask.rndscale.sd",
+  "llvm.x86.avx512.mask.rndscale.ss",
+  "llvm.x86.avx512.mask.scalef.pd.128",
+  "llvm.x86.avx512.mask.scalef.pd.256",
+  "llvm.x86.avx512.mask.scalef.pd.512",
+  "llvm.x86.avx512.mask.scalef.ps.128",
+  "llvm.x86.avx512.mask.scalef.ps.256",
+  "llvm.x86.avx512.mask.scalef.ps.512",
+  "llvm.x86.avx512.mask.scalef.sd",
+  "llvm.x86.avx512.mask.scalef.ss",
+  "llvm.x86.avx512.mask.sqrt.sd",
+  "llvm.x86.avx512.mask.sqrt.ss",
+  "llvm.x86.avx512.mask.sub.sd.round",
+  "llvm.x86.avx512.mask.sub.ss.round",
+  "llvm.x86.avx512.mask.vcvtph2ps.128",
+  "llvm.x86.avx512.mask.vcvtph2ps.256",
+  "llvm.x86.avx512.mask.vcvtph2ps.512",
+  "llvm.x86.avx512.mask.vcvtps2ph.128",
+  "llvm.x86.avx512.mask.vcvtps2ph.256",
+  "llvm.x86.avx512.mask.vcvtps2ph.512",
+  "llvm.x86.avx512.mask.vpshldv.d.128",
+  "llvm.x86.avx512.mask.vpshldv.d.256",
+  "llvm.x86.avx512.mask.vpshldv.d.512",
+  "llvm.x86.avx512.mask.vpshldv.q.128",
+  "llvm.x86.avx512.mask.vpshldv.q.256",
+  "llvm.x86.avx512.mask.vpshldv.q.512",
+  "llvm.x86.avx512.mask.vpshldv.w.128",
+  "llvm.x86.avx512.mask.vpshldv.w.256",
+  "llvm.x86.avx512.mask.vpshldv.w.512",
+  "llvm.x86.avx512.mask.vpshrdv.d.128",
+  "llvm.x86.avx512.mask.vpshrdv.d.256",
+  "llvm.x86.avx512.mask.vpshrdv.d.512",
+  "llvm.x86.avx512.mask.vpshrdv.q.128",
+  "llvm.x86.avx512.mask.vpshrdv.q.256",
+  "llvm.x86.avx512.mask.vpshrdv.q.512",
+  "llvm.x86.avx512.mask.vpshrdv.w.128",
+  "llvm.x86.avx512.mask.vpshrdv.w.256",
+  "llvm.x86.avx512.mask.vpshrdv.w.512",
+  "llvm.x86.avx512.mask.vpshufbitqmb.128",
+  "llvm.x86.avx512.mask.vpshufbitqmb.256",
+  "llvm.x86.avx512.mask.vpshufbitqmb.512",
+  "llvm.x86.avx512.maskz.fixupimm.pd.128",
+  "llvm.x86.avx512.maskz.fixupimm.pd.256",
+  "llvm.x86.avx512.maskz.fixupimm.pd.512",
+  "llvm.x86.avx512.maskz.fixupimm.ps.128",
+  "llvm.x86.avx512.maskz.fixupimm.ps.256",
+  "llvm.x86.avx512.maskz.fixupimm.ps.512",
+  "llvm.x86.avx512.maskz.fixupimm.sd",
+  "llvm.x86.avx512.maskz.fixupimm.ss",
+  "llvm.x86.avx512.maskz.vpshldv.d.128",
+  "llvm.x86.avx512.maskz.vpshldv.d.256",
+  "llvm.x86.avx512.maskz.vpshldv.d.512",
+  "llvm.x86.avx512.maskz.vpshldv.q.128",
+  "llvm.x86.avx512.maskz.vpshldv.q.256",
+  "llvm.x86.avx512.maskz.vpshldv.q.512",
+  "llvm.x86.avx512.maskz.vpshldv.w.128",
+  "llvm.x86.avx512.maskz.vpshldv.w.256",
+  "llvm.x86.avx512.maskz.vpshldv.w.512",
+  "llvm.x86.avx512.maskz.vpshrdv.d.128",
+  "llvm.x86.avx512.maskz.vpshrdv.d.256",
+  "llvm.x86.avx512.maskz.vpshrdv.d.512",
+  "llvm.x86.avx512.maskz.vpshrdv.q.128",
+  "llvm.x86.avx512.maskz.vpshrdv.q.256",
+  "llvm.x86.avx512.maskz.vpshrdv.q.512",
+  "llvm.x86.avx512.maskz.vpshrdv.w.128",
+  "llvm.x86.avx512.maskz.vpshrdv.w.256",
+  "llvm.x86.avx512.maskz.vpshrdv.w.512",
+  "llvm.x86.avx512.max.pd.512",
+  "llvm.x86.avx512.max.ps.512",
+  "llvm.x86.avx512.min.pd.512",
+  "llvm.x86.avx512.min.ps.512",
+  "llvm.x86.avx512.mul.pd.512",
+  "llvm.x86.avx512.mul.ps.512",
+  "llvm.x86.avx512.packssdw.512",
+  "llvm.x86.avx512.packsswb.512",
+  "llvm.x86.avx512.packusdw.512",
+  "llvm.x86.avx512.packuswb.512",
+  "llvm.x86.avx512.permvar.df.256",
+  "llvm.x86.avx512.permvar.df.512",
+  "llvm.x86.avx512.permvar.di.256",
+  "llvm.x86.avx512.permvar.di.512",
+  "llvm.x86.avx512.permvar.hi.128",
+  "llvm.x86.avx512.permvar.hi.256",
+  "llvm.x86.avx512.permvar.hi.512",
+  "llvm.x86.avx512.permvar.qi.128",
+  "llvm.x86.avx512.permvar.qi.256",
+  "llvm.x86.avx512.permvar.qi.512",
+  "llvm.x86.avx512.permvar.sf.512",
+  "llvm.x86.avx512.permvar.si.512",
+  "llvm.x86.avx512.pmaddubs.w.512",
+  "llvm.x86.avx512.pmaddw.d.512",
+  "llvm.x86.avx512.pmul.hr.sw.512",
+  "llvm.x86.avx512.pmulh.w.512",
+  "llvm.x86.avx512.pmulhu.w.512",
+  "llvm.x86.avx512.prol.d.128",
+  "llvm.x86.avx512.prol.d.256",
+  "llvm.x86.avx512.prol.d.512",
+  "llvm.x86.avx512.prol.q.128",
+  "llvm.x86.avx512.prol.q.256",
+  "llvm.x86.avx512.prol.q.512",
+  "llvm.x86.avx512.prolv.d.128",
+  "llvm.x86.avx512.prolv.d.256",
+  "llvm.x86.avx512.prolv.d.512",
+  "llvm.x86.avx512.prolv.q.128",
+  "llvm.x86.avx512.prolv.q.256",
+  "llvm.x86.avx512.prolv.q.512",
+  "llvm.x86.avx512.pror.d.128",
+  "llvm.x86.avx512.pror.d.256",
+  "llvm.x86.avx512.pror.d.512",
+  "llvm.x86.avx512.pror.q.128",
+  "llvm.x86.avx512.pror.q.256",
+  "llvm.x86.avx512.pror.q.512",
+  "llvm.x86.avx512.prorv.d.128",
+  "llvm.x86.avx512.prorv.d.256",
+  "llvm.x86.avx512.prorv.d.512",
+  "llvm.x86.avx512.prorv.q.128",
+  "llvm.x86.avx512.prorv.q.256",
+  "llvm.x86.avx512.prorv.q.512",
+  "llvm.x86.avx512.psad.bw.512",
+  "llvm.x86.avx512.pshuf.b.512",
+  "llvm.x86.avx512.psll.d.512",
+  "llvm.x86.avx512.psll.q.512",
+  "llvm.x86.avx512.psll.w.512",
+  "llvm.x86.avx512.pslli.d.512",
+  "llvm.x86.avx512.pslli.q.512",
+  "llvm.x86.avx512.pslli.w.512",
+  "llvm.x86.avx512.psllv.d.512",
+  "llvm.x86.avx512.psllv.q.512",
+  "llvm.x86.avx512.psllv.w.128",
+  "llvm.x86.avx512.psllv.w.256",
+  "llvm.x86.avx512.psllv.w.512",
+  "llvm.x86.avx512.psra.d.512",
+  "llvm.x86.avx512.psra.q.128",
+  "llvm.x86.avx512.psra.q.256",
+  "llvm.x86.avx512.psra.q.512",
+  "llvm.x86.avx512.psra.w.512",
+  "llvm.x86.avx512.psrai.d.512",
+  "llvm.x86.avx512.psrai.q.128",
+  "llvm.x86.avx512.psrai.q.256",
+  "llvm.x86.avx512.psrai.q.512",
+  "llvm.x86.avx512.psrai.w.512",
+  "llvm.x86.avx512.psrav.d.512",
+  "llvm.x86.avx512.psrav.q.128",
+  "llvm.x86.avx512.psrav.q.256",
+  "llvm.x86.avx512.psrav.q.512",
+  "llvm.x86.avx512.psrav.w.128",
+  "llvm.x86.avx512.psrav.w.256",
+  "llvm.x86.avx512.psrav.w.512",
+  "llvm.x86.avx512.psrl.d.512",
+  "llvm.x86.avx512.psrl.q.512",
+  "llvm.x86.avx512.psrl.w.512",
+  "llvm.x86.avx512.psrli.d.512",
+  "llvm.x86.avx512.psrli.q.512",
+  "llvm.x86.avx512.psrli.w.512",
+  "llvm.x86.avx512.psrlv.d.512",
+  "llvm.x86.avx512.psrlv.q.512",
+  "llvm.x86.avx512.psrlv.w.128",
+  "llvm.x86.avx512.psrlv.w.256",
+  "llvm.x86.avx512.psrlv.w.512",
+  "llvm.x86.avx512.pternlog.d.128",
+  "llvm.x86.avx512.pternlog.d.256",
+  "llvm.x86.avx512.pternlog.d.512",
+  "llvm.x86.avx512.pternlog.q.128",
+  "llvm.x86.avx512.pternlog.q.256",
+  "llvm.x86.avx512.pternlog.q.512",
+  "llvm.x86.avx512.rcp14.pd.128",
+  "llvm.x86.avx512.rcp14.pd.256",
+  "llvm.x86.avx512.rcp14.pd.512",
+  "llvm.x86.avx512.rcp14.ps.128",
+  "llvm.x86.avx512.rcp14.ps.256",
+  "llvm.x86.avx512.rcp14.ps.512",
+  "llvm.x86.avx512.rcp14.sd",
+  "llvm.x86.avx512.rcp14.ss",
+  "llvm.x86.avx512.rcp28.pd",
+  "llvm.x86.avx512.rcp28.ps",
+  "llvm.x86.avx512.rcp28.sd",
+  "llvm.x86.avx512.rcp28.ss",
+  "llvm.x86.avx512.rsqrt14.pd.128",
+  "llvm.x86.avx512.rsqrt14.pd.256",
+  "llvm.x86.avx512.rsqrt14.pd.512",
+  "llvm.x86.avx512.rsqrt14.ps.128",
+  "llvm.x86.avx512.rsqrt14.ps.256",
+  "llvm.x86.avx512.rsqrt14.ps.512",
+  "llvm.x86.avx512.rsqrt14.sd",
+  "llvm.x86.avx512.rsqrt14.ss",
+  "llvm.x86.avx512.rsqrt28.pd",
+  "llvm.x86.avx512.rsqrt28.ps",
+  "llvm.x86.avx512.rsqrt28.sd",
+  "llvm.x86.avx512.rsqrt28.ss",
+  "llvm.x86.avx512.scatter.dpd.512",
+  "llvm.x86.avx512.scatter.dpi.512",
+  "llvm.x86.avx512.scatter.dpq.512",
+  "llvm.x86.avx512.scatter.dps.512",
+  "llvm.x86.avx512.scatter.qpd.512",
+  "llvm.x86.avx512.scatter.qpi.512",
+  "llvm.x86.avx512.scatter.qpq.512",
+  "llvm.x86.avx512.scatter.qps.512",
+  "llvm.x86.avx512.scatterdiv2.df",
+  "llvm.x86.avx512.scatterdiv2.di",
+  "llvm.x86.avx512.scatterdiv4.df",
+  "llvm.x86.avx512.scatterdiv4.di",
+  "llvm.x86.avx512.scatterdiv4.sf",
+  "llvm.x86.avx512.scatterdiv4.si",
+  "llvm.x86.avx512.scatterdiv8.sf",
+  "llvm.x86.avx512.scatterdiv8.si",
+  "llvm.x86.avx512.scatterpf.dpd.512",
+  "llvm.x86.avx512.scatterpf.dps.512",
+  "llvm.x86.avx512.scatterpf.qpd.512",
+  "llvm.x86.avx512.scatterpf.qps.512",
+  "llvm.x86.avx512.scattersiv2.df",
+  "llvm.x86.avx512.scattersiv2.di",
+  "llvm.x86.avx512.scattersiv4.df",
+  "llvm.x86.avx512.scattersiv4.di",
+  "llvm.x86.avx512.scattersiv4.sf",
+  "llvm.x86.avx512.scattersiv4.si",
+  "llvm.x86.avx512.scattersiv8.sf",
+  "llvm.x86.avx512.scattersiv8.si",
+  "llvm.x86.avx512.sqrt.pd.512",
+  "llvm.x86.avx512.sqrt.ps.512",
+  "llvm.x86.avx512.sub.pd.512",
+  "llvm.x86.avx512.sub.ps.512",
+  "llvm.x86.avx512.vcomi.sd",
+  "llvm.x86.avx512.vcomi.ss",
+  "llvm.x86.avx512.vcvtsd2si32",
+  "llvm.x86.avx512.vcvtsd2si64",
+  "llvm.x86.avx512.vcvtsd2usi32",
+  "llvm.x86.avx512.vcvtsd2usi64",
+  "llvm.x86.avx512.vcvtss2si32",
+  "llvm.x86.avx512.vcvtss2si64",
+  "llvm.x86.avx512.vcvtss2usi32",
+  "llvm.x86.avx512.vcvtss2usi64",
+  "llvm.x86.avx512.vfmadd.f32",
+  "llvm.x86.avx512.vfmadd.f64",
+  "llvm.x86.avx512.vfmadd.pd.512",
+  "llvm.x86.avx512.vfmadd.ps.512",
+  "llvm.x86.avx512.vfmaddsub.pd.512",
+  "llvm.x86.avx512.vfmaddsub.ps.512",
+  "llvm.x86.avx512.vpdpbusd.128",
+  "llvm.x86.avx512.vpdpbusd.256",
+  "llvm.x86.avx512.vpdpbusd.512",
+  "llvm.x86.avx512.vpdpbusds.128",
+  "llvm.x86.avx512.vpdpbusds.256",
+  "llvm.x86.avx512.vpdpbusds.512",
+  "llvm.x86.avx512.vpdpwssd.128",
+  "llvm.x86.avx512.vpdpwssd.256",
+  "llvm.x86.avx512.vpdpwssd.512",
+  "llvm.x86.avx512.vpdpwssds.128",
+  "llvm.x86.avx512.vpdpwssds.256",
+  "llvm.x86.avx512.vpdpwssds.512",
+  "llvm.x86.avx512.vpermi2var.d.128",
+  "llvm.x86.avx512.vpermi2var.d.256",
+  "llvm.x86.avx512.vpermi2var.d.512",
+  "llvm.x86.avx512.vpermi2var.hi.128",
+  "llvm.x86.avx512.vpermi2var.hi.256",
+  "llvm.x86.avx512.vpermi2var.hi.512",
+  "llvm.x86.avx512.vpermi2var.pd.128",
+  "llvm.x86.avx512.vpermi2var.pd.256",
+  "llvm.x86.avx512.vpermi2var.pd.512",
+  "llvm.x86.avx512.vpermi2var.ps.128",
+  "llvm.x86.avx512.vpermi2var.ps.256",
+  "llvm.x86.avx512.vpermi2var.ps.512",
+  "llvm.x86.avx512.vpermi2var.q.128",
+  "llvm.x86.avx512.vpermi2var.q.256",
+  "llvm.x86.avx512.vpermi2var.q.512",
+  "llvm.x86.avx512.vpermi2var.qi.128",
+  "llvm.x86.avx512.vpermi2var.qi.256",
+  "llvm.x86.avx512.vpermi2var.qi.512",
+  "llvm.x86.avx512.vpermilvar.pd.512",
+  "llvm.x86.avx512.vpermilvar.ps.512",
+  "llvm.x86.avx512.vpmadd52h.uq.128",
+  "llvm.x86.avx512.vpmadd52h.uq.256",
+  "llvm.x86.avx512.vpmadd52h.uq.512",
+  "llvm.x86.avx512.vpmadd52l.uq.128",
+  "llvm.x86.avx512.vpmadd52l.uq.256",
+  "llvm.x86.avx512.vpmadd52l.uq.512",
+  "llvm.x86.avx512.vpshld.d.128",
+  "llvm.x86.avx512.vpshld.d.256",
+  "llvm.x86.avx512.vpshld.d.512",
+  "llvm.x86.avx512.vpshld.q.128",
+  "llvm.x86.avx512.vpshld.q.256",
+  "llvm.x86.avx512.vpshld.q.512",
+  "llvm.x86.avx512.vpshld.w.128",
+  "llvm.x86.avx512.vpshld.w.256",
+  "llvm.x86.avx512.vpshld.w.512",
+  "llvm.x86.avx512.vpshrd.d.128",
+  "llvm.x86.avx512.vpshrd.d.256",
+  "llvm.x86.avx512.vpshrd.d.512",
+  "llvm.x86.avx512.vpshrd.q.128",
+  "llvm.x86.avx512.vpshrd.q.256",
+  "llvm.x86.avx512.vpshrd.q.512",
+  "llvm.x86.avx512.vpshrd.w.128",
+  "llvm.x86.avx512.vpshrd.w.256",
+  "llvm.x86.avx512.vpshrd.w.512",
+  "llvm.x86.bmi.bextr.32",
+  "llvm.x86.bmi.bextr.64",
+  "llvm.x86.bmi.bzhi.32",
+  "llvm.x86.bmi.bzhi.64",
+  "llvm.x86.bmi.pdep.32",
+  "llvm.x86.bmi.pdep.64",
+  "llvm.x86.bmi.pext.32",
+  "llvm.x86.bmi.pext.64",
+  "llvm.x86.cldemote",
+  "llvm.x86.clflushopt",
+  "llvm.x86.clrssbsy",
+  "llvm.x86.clwb",
+  "llvm.x86.clzero",
+  "llvm.x86.directstore32",
+  "llvm.x86.directstore64",
+  "llvm.x86.flags.read.u32",
+  "llvm.x86.flags.read.u64",
+  "llvm.x86.flags.write.u32",
+  "llvm.x86.flags.write.u64",
+  "llvm.x86.fxrstor",
+  "llvm.x86.fxrstor64",
+  "llvm.x86.fxsave",
+  "llvm.x86.fxsave64",
+  "llvm.x86.incsspd",
+  "llvm.x86.incsspq",
+  "llvm.x86.int",
+  "llvm.x86.invpcid",
+  "llvm.x86.llwpcb",
+  "llvm.x86.lwpins32",
+  "llvm.x86.lwpins64",
+  "llvm.x86.lwpval32",
+  "llvm.x86.lwpval64",
+  "llvm.x86.mmx.emms",
+  "llvm.x86.mmx.femms",
+  "llvm.x86.mmx.maskmovq",
+  "llvm.x86.mmx.movnt.dq",
+  "llvm.x86.mmx.packssdw",
+  "llvm.x86.mmx.packsswb",
+  "llvm.x86.mmx.packuswb",
+  "llvm.x86.mmx.padd.b",
+  "llvm.x86.mmx.padd.d",
+  "llvm.x86.mmx.padd.q",
+  "llvm.x86.mmx.padd.w",
+  "llvm.x86.mmx.padds.b",
+  "llvm.x86.mmx.padds.w",
+  "llvm.x86.mmx.paddus.b",
+  "llvm.x86.mmx.paddus.w",
+  "llvm.x86.mmx.palignr.b",
+  "llvm.x86.mmx.pand",
+  "llvm.x86.mmx.pandn",
+  "llvm.x86.mmx.pavg.b",
+  "llvm.x86.mmx.pavg.w",
+  "llvm.x86.mmx.pcmpeq.b",
+  "llvm.x86.mmx.pcmpeq.d",
+  "llvm.x86.mmx.pcmpeq.w",
+  "llvm.x86.mmx.pcmpgt.b",
+  "llvm.x86.mmx.pcmpgt.d",
+  "llvm.x86.mmx.pcmpgt.w",
+  "llvm.x86.mmx.pextr.w",
+  "llvm.x86.mmx.pinsr.w",
+  "llvm.x86.mmx.pmadd.wd",
+  "llvm.x86.mmx.pmaxs.w",
+  "llvm.x86.mmx.pmaxu.b",
+  "llvm.x86.mmx.pmins.w",
+  "llvm.x86.mmx.pminu.b",
+  "llvm.x86.mmx.pmovmskb",
+  "llvm.x86.mmx.pmulh.w",
+  "llvm.x86.mmx.pmulhu.w",
+  "llvm.x86.mmx.pmull.w",
+  "llvm.x86.mmx.pmulu.dq",
+  "llvm.x86.mmx.por",
+  "llvm.x86.mmx.psad.bw",
+  "llvm.x86.mmx.psll.d",
+  "llvm.x86.mmx.psll.q",
+  "llvm.x86.mmx.psll.w",
+  "llvm.x86.mmx.pslli.d",
+  "llvm.x86.mmx.pslli.q",
+  "llvm.x86.mmx.pslli.w",
+  "llvm.x86.mmx.psra.d",
+  "llvm.x86.mmx.psra.w",
+  "llvm.x86.mmx.psrai.d",
+  "llvm.x86.mmx.psrai.w",
+  "llvm.x86.mmx.psrl.d",
+  "llvm.x86.mmx.psrl.q",
+  "llvm.x86.mmx.psrl.w",
+  "llvm.x86.mmx.psrli.d",
+  "llvm.x86.mmx.psrli.q",
+  "llvm.x86.mmx.psrli.w",
+  "llvm.x86.mmx.psub.b",
+  "llvm.x86.mmx.psub.d",
+  "llvm.x86.mmx.psub.q",
+  "llvm.x86.mmx.psub.w",
+  "llvm.x86.mmx.psubs.b",
+  "llvm.x86.mmx.psubs.w",
+  "llvm.x86.mmx.psubus.b",
+  "llvm.x86.mmx.psubus.w",
+  "llvm.x86.mmx.punpckhbw",
+  "llvm.x86.mmx.punpckhdq",
+  "llvm.x86.mmx.punpckhwd",
+  "llvm.x86.mmx.punpcklbw",
+  "llvm.x86.mmx.punpckldq",
+  "llvm.x86.mmx.punpcklwd",
+  "llvm.x86.mmx.pxor",
+  "llvm.x86.monitorx",
+  "llvm.x86.movdir64b",
+  "llvm.x86.mwaitx",
+  "llvm.x86.pclmulqdq",
+  "llvm.x86.pclmulqdq.256",
+  "llvm.x86.pclmulqdq.512",
+  "llvm.x86.ptwrite32",
+  "llvm.x86.ptwrite64",
+  "llvm.x86.rdfsbase.32",
+  "llvm.x86.rdfsbase.64",
+  "llvm.x86.rdgsbase.32",
+  "llvm.x86.rdgsbase.64",
+  "llvm.x86.rdpid",
+  "llvm.x86.rdpkru",
+  "llvm.x86.rdpmc",
+  "llvm.x86.rdrand.16",
+  "llvm.x86.rdrand.32",
+  "llvm.x86.rdrand.64",
+  "llvm.x86.rdseed.16",
+  "llvm.x86.rdseed.32",
+  "llvm.x86.rdseed.64",
+  "llvm.x86.rdsspd",
+  "llvm.x86.rdsspq",
+  "llvm.x86.rdtsc",
+  "llvm.x86.rdtscp",
+  "llvm.x86.rstorssp",
+  "llvm.x86.saveprevssp",
+  "llvm.x86.seh.ehguard",
+  "llvm.x86.seh.ehregnode",
+  "llvm.x86.seh.lsda",
+  "llvm.x86.seh.recoverfp",
+  "llvm.x86.setssbsy",
+  "llvm.x86.sha1msg1",
+  "llvm.x86.sha1msg2",
+  "llvm.x86.sha1nexte",
+  "llvm.x86.sha1rnds4",
+  "llvm.x86.sha256msg1",
+  "llvm.x86.sha256msg2",
+  "llvm.x86.sha256rnds2",
+  "llvm.x86.slwpcb",
+  "llvm.x86.sse.cmp.ps",
+  "llvm.x86.sse.cmp.ss",
+  "llvm.x86.sse.comieq.ss",
+  "llvm.x86.sse.comige.ss",
+  "llvm.x86.sse.comigt.ss",
+  "llvm.x86.sse.comile.ss",
+  "llvm.x86.sse.comilt.ss",
+  "llvm.x86.sse.comineq.ss",
+  "llvm.x86.sse.cvtpd2pi",
+  "llvm.x86.sse.cvtpi2pd",
+  "llvm.x86.sse.cvtpi2ps",
+  "llvm.x86.sse.cvtps2pi",
+  "llvm.x86.sse.cvtss2si",
+  "llvm.x86.sse.cvtss2si64",
+  "llvm.x86.sse.cvttpd2pi",
+  "llvm.x86.sse.cvttps2pi",
+  "llvm.x86.sse.cvttss2si",
+  "llvm.x86.sse.cvttss2si64",
+  "llvm.x86.sse.ldmxcsr",
+  "llvm.x86.sse.max.ps",
+  "llvm.x86.sse.max.ss",
+  "llvm.x86.sse.min.ps",
+  "llvm.x86.sse.min.ss",
+  "llvm.x86.sse.movmsk.ps",
+  "llvm.x86.sse.pshuf.w",
+  "llvm.x86.sse.rcp.ps",
+  "llvm.x86.sse.rcp.ss",
+  "llvm.x86.sse.rsqrt.ps",
+  "llvm.x86.sse.rsqrt.ss",
+  "llvm.x86.sse.sfence",
+  "llvm.x86.sse.stmxcsr",
+  "llvm.x86.sse.ucomieq.ss",
+  "llvm.x86.sse.ucomige.ss",
+  "llvm.x86.sse.ucomigt.ss",
+  "llvm.x86.sse.ucomile.ss",
+  "llvm.x86.sse.ucomilt.ss",
+  "llvm.x86.sse.ucomineq.ss",
+  "llvm.x86.sse2.clflush",
+  "llvm.x86.sse2.cmp.pd",
+  "llvm.x86.sse2.cmp.sd",
+  "llvm.x86.sse2.comieq.sd",
+  "llvm.x86.sse2.comige.sd",
+  "llvm.x86.sse2.comigt.sd",
+  "llvm.x86.sse2.comile.sd",
+  "llvm.x86.sse2.comilt.sd",
+  "llvm.x86.sse2.comineq.sd",
+  "llvm.x86.sse2.cvtpd2dq",
+  "llvm.x86.sse2.cvtpd2ps",
+  "llvm.x86.sse2.cvtps2dq",
+  "llvm.x86.sse2.cvtsd2si",
+  "llvm.x86.sse2.cvtsd2si64",
+  "llvm.x86.sse2.cvtsd2ss",
+  "llvm.x86.sse2.cvttpd2dq",
+  "llvm.x86.sse2.cvttps2dq",
+  "llvm.x86.sse2.cvttsd2si",
+  "llvm.x86.sse2.cvttsd2si64",
+  "llvm.x86.sse2.lfence",
+  "llvm.x86.sse2.maskmov.dqu",
+  "llvm.x86.sse2.max.pd",
+  "llvm.x86.sse2.max.sd",
+  "llvm.x86.sse2.mfence",
+  "llvm.x86.sse2.min.pd",
+  "llvm.x86.sse2.min.sd",
+  "llvm.x86.sse2.movmsk.pd",
+  "llvm.x86.sse2.packssdw.128",
+  "llvm.x86.sse2.packsswb.128",
+  "llvm.x86.sse2.packuswb.128",
+  "llvm.x86.sse2.padds.b",
+  "llvm.x86.sse2.padds.w",
+  "llvm.x86.sse2.paddus.b",
+  "llvm.x86.sse2.paddus.w",
+  "llvm.x86.sse2.pause",
+  "llvm.x86.sse2.pmadd.wd",
+  "llvm.x86.sse2.pmovmskb.128",
+  "llvm.x86.sse2.pmulh.w",
+  "llvm.x86.sse2.pmulhu.w",
+  "llvm.x86.sse2.psad.bw",
+  "llvm.x86.sse2.psll.d",
+  "llvm.x86.sse2.psll.q",
+  "llvm.x86.sse2.psll.w",
+  "llvm.x86.sse2.pslli.d",
+  "llvm.x86.sse2.pslli.q",
+  "llvm.x86.sse2.pslli.w",
+  "llvm.x86.sse2.psra.d",
+  "llvm.x86.sse2.psra.w",
+  "llvm.x86.sse2.psrai.d",
+  "llvm.x86.sse2.psrai.w",
+  "llvm.x86.sse2.psrl.d",
+  "llvm.x86.sse2.psrl.q",
+  "llvm.x86.sse2.psrl.w",
+  "llvm.x86.sse2.psrli.d",
+  "llvm.x86.sse2.psrli.q",
+  "llvm.x86.sse2.psrli.w",
+  "llvm.x86.sse2.psubs.b",
+  "llvm.x86.sse2.psubs.w",
+  "llvm.x86.sse2.psubus.b",
+  "llvm.x86.sse2.psubus.w",
+  "llvm.x86.sse2.ucomieq.sd",
+  "llvm.x86.sse2.ucomige.sd",
+  "llvm.x86.sse2.ucomigt.sd",
+  "llvm.x86.sse2.ucomile.sd",
+  "llvm.x86.sse2.ucomilt.sd",
+  "llvm.x86.sse2.ucomineq.sd",
+  "llvm.x86.sse3.addsub.pd",
+  "llvm.x86.sse3.addsub.ps",
+  "llvm.x86.sse3.hadd.pd",
+  "llvm.x86.sse3.hadd.ps",
+  "llvm.x86.sse3.hsub.pd",
+  "llvm.x86.sse3.hsub.ps",
+  "llvm.x86.sse3.ldu.dq",
+  "llvm.x86.sse3.monitor",
+  "llvm.x86.sse3.mwait",
+  "llvm.x86.sse41.blendvpd",
+  "llvm.x86.sse41.blendvps",
+  "llvm.x86.sse41.dppd",
+  "llvm.x86.sse41.dpps",
+  "llvm.x86.sse41.insertps",
+  "llvm.x86.sse41.mpsadbw",
+  "llvm.x86.sse41.packusdw",
+  "llvm.x86.sse41.pblendvb",
+  "llvm.x86.sse41.phminposuw",
+  "llvm.x86.sse41.ptestc",
+  "llvm.x86.sse41.ptestnzc",
+  "llvm.x86.sse41.ptestz",
+  "llvm.x86.sse41.round.pd",
+  "llvm.x86.sse41.round.ps",
+  "llvm.x86.sse41.round.sd",
+  "llvm.x86.sse41.round.ss",
+  "llvm.x86.sse42.crc32.32.16",
+  "llvm.x86.sse42.crc32.32.32",
+  "llvm.x86.sse42.crc32.32.8",
+  "llvm.x86.sse42.crc32.64.64",
+  "llvm.x86.sse42.pcmpestri128",
+  "llvm.x86.sse42.pcmpestria128",
+  "llvm.x86.sse42.pcmpestric128",
+  "llvm.x86.sse42.pcmpestrio128",
+  "llvm.x86.sse42.pcmpestris128",
+  "llvm.x86.sse42.pcmpestriz128",
+  "llvm.x86.sse42.pcmpestrm128",
+  "llvm.x86.sse42.pcmpistri128",
+  "llvm.x86.sse42.pcmpistria128",
+  "llvm.x86.sse42.pcmpistric128",
+  "llvm.x86.sse42.pcmpistrio128",
+  "llvm.x86.sse42.pcmpistris128",
+  "llvm.x86.sse42.pcmpistriz128",
+  "llvm.x86.sse42.pcmpistrm128",
+  "llvm.x86.sse4a.extrq",
+  "llvm.x86.sse4a.extrqi",
+  "llvm.x86.sse4a.insertq",
+  "llvm.x86.sse4a.insertqi",
+  "llvm.x86.ssse3.pabs.b",
+  "llvm.x86.ssse3.pabs.d",
+  "llvm.x86.ssse3.pabs.w",
+  "llvm.x86.ssse3.phadd.d",
+  "llvm.x86.ssse3.phadd.d.128",
+  "llvm.x86.ssse3.phadd.sw",
+  "llvm.x86.ssse3.phadd.sw.128",
+  "llvm.x86.ssse3.phadd.w",
+  "llvm.x86.ssse3.phadd.w.128",
+  "llvm.x86.ssse3.phsub.d",
+  "llvm.x86.ssse3.phsub.d.128",
+  "llvm.x86.ssse3.phsub.sw",
+  "llvm.x86.ssse3.phsub.sw.128",
+  "llvm.x86.ssse3.phsub.w",
+  "llvm.x86.ssse3.phsub.w.128",
+  "llvm.x86.ssse3.pmadd.ub.sw",
+  "llvm.x86.ssse3.pmadd.ub.sw.128",
+  "llvm.x86.ssse3.pmul.hr.sw",
+  "llvm.x86.ssse3.pmul.hr.sw.128",
+  "llvm.x86.ssse3.pshuf.b",
+  "llvm.x86.ssse3.pshuf.b.128",
+  "llvm.x86.ssse3.psign.b",
+  "llvm.x86.ssse3.psign.b.128",
+  "llvm.x86.ssse3.psign.d",
+  "llvm.x86.ssse3.psign.d.128",
+  "llvm.x86.ssse3.psign.w",
+  "llvm.x86.ssse3.psign.w.128",
+  "llvm.x86.subborrow.u32",
+  "llvm.x86.subborrow.u64",
+  "llvm.x86.tbm.bextri.u32",
+  "llvm.x86.tbm.bextri.u64",
+  "llvm.x86.tpause",
+  "llvm.x86.umonitor",
+  "llvm.x86.umwait",
+  "llvm.x86.vcvtph2ps.128",
+  "llvm.x86.vcvtph2ps.256",
+  "llvm.x86.vcvtps2ph.128",
+  "llvm.x86.vcvtps2ph.256",
+  "llvm.x86.vgf2p8affineinvqb.128",
+  "llvm.x86.vgf2p8affineinvqb.256",
+  "llvm.x86.vgf2p8affineinvqb.512",
+  "llvm.x86.vgf2p8affineqb.128",
+  "llvm.x86.vgf2p8affineqb.256",
+  "llvm.x86.vgf2p8affineqb.512",
+  "llvm.x86.vgf2p8mulb.128",
+  "llvm.x86.vgf2p8mulb.256",
+  "llvm.x86.vgf2p8mulb.512",
+  "llvm.x86.wbinvd",
+  "llvm.x86.wbnoinvd",
+  "llvm.x86.wrfsbase.32",
+  "llvm.x86.wrfsbase.64",
+  "llvm.x86.wrgsbase.32",
+  "llvm.x86.wrgsbase.64",
+  "llvm.x86.wrpkru",
+  "llvm.x86.wrssd",
+  "llvm.x86.wrssq",
+  "llvm.x86.wrussd",
+  "llvm.x86.wrussq",
+  "llvm.x86.xabort",
+  "llvm.x86.xbegin",
+  "llvm.x86.xend",
+  "llvm.x86.xgetbv",
+  "llvm.x86.xop.vfrcz.pd",
+  "llvm.x86.xop.vfrcz.pd.256",
+  "llvm.x86.xop.vfrcz.ps",
+  "llvm.x86.xop.vfrcz.ps.256",
+  "llvm.x86.xop.vfrcz.sd",
+  "llvm.x86.xop.vfrcz.ss",
+  "llvm.x86.xop.vpcomb",
+  "llvm.x86.xop.vpcomd",
+  "llvm.x86.xop.vpcomq",
+  "llvm.x86.xop.vpcomub",
+  "llvm.x86.xop.vpcomud",
+  "llvm.x86.xop.vpcomuq",
+  "llvm.x86.xop.vpcomuw",
+  "llvm.x86.xop.vpcomw",
+  "llvm.x86.xop.vpermil2pd",
+  "llvm.x86.xop.vpermil2pd.256",
+  "llvm.x86.xop.vpermil2ps",
+  "llvm.x86.xop.vpermil2ps.256",
+  "llvm.x86.xop.vphaddbd",
+  "llvm.x86.xop.vphaddbq",
+  "llvm.x86.xop.vphaddbw",
+  "llvm.x86.xop.vphadddq",
+  "llvm.x86.xop.vphaddubd",
+  "llvm.x86.xop.vphaddubq",
+  "llvm.x86.xop.vphaddubw",
+  "llvm.x86.xop.vphaddudq",
+  "llvm.x86.xop.vphadduwd",
+  "llvm.x86.xop.vphadduwq",
+  "llvm.x86.xop.vphaddwd",
+  "llvm.x86.xop.vphaddwq",
+  "llvm.x86.xop.vphsubbw",
+  "llvm.x86.xop.vphsubdq",
+  "llvm.x86.xop.vphsubwd",
+  "llvm.x86.xop.vpmacsdd",
+  "llvm.x86.xop.vpmacsdqh",
+  "llvm.x86.xop.vpmacsdql",
+  "llvm.x86.xop.vpmacssdd",
+  "llvm.x86.xop.vpmacssdqh",
+  "llvm.x86.xop.vpmacssdql",
+  "llvm.x86.xop.vpmacsswd",
+  "llvm.x86.xop.vpmacssww",
+  "llvm.x86.xop.vpmacswd",
+  "llvm.x86.xop.vpmacsww",
+  "llvm.x86.xop.vpmadcsswd",
+  "llvm.x86.xop.vpmadcswd",
+  "llvm.x86.xop.vpperm",
+  "llvm.x86.xop.vprotb",
+  "llvm.x86.xop.vprotbi",
+  "llvm.x86.xop.vprotd",
+  "llvm.x86.xop.vprotdi",
+  "llvm.x86.xop.vprotq",
+  "llvm.x86.xop.vprotqi",
+  "llvm.x86.xop.vprotw",
+  "llvm.x86.xop.vprotwi",
+  "llvm.x86.xop.vpshab",
+  "llvm.x86.xop.vpshad",
+  "llvm.x86.xop.vpshaq",
+  "llvm.x86.xop.vpshaw",
+  "llvm.x86.xop.vpshlb",
+  "llvm.x86.xop.vpshld",
+  "llvm.x86.xop.vpshlq",
+  "llvm.x86.xop.vpshlw",
+  "llvm.x86.xrstor",
+  "llvm.x86.xrstor64",
+  "llvm.x86.xrstors",
+  "llvm.x86.xrstors64",
+  "llvm.x86.xsave",
+  "llvm.x86.xsave64",
+  "llvm.x86.xsavec",
+  "llvm.x86.xsavec64",
+  "llvm.x86.xsaveopt",
+  "llvm.x86.xsaveopt64",
+  "llvm.x86.xsaves",
+  "llvm.x86.xsaves64",
+  "llvm.x86.xsetbv",
+  "llvm.x86.xtest",
+  "llvm.xcore.bitrev",
+  "llvm.xcore.checkevent",
+  "llvm.xcore.chkct",
+  "llvm.xcore.clre",
+  "llvm.xcore.clrpt",
+  "llvm.xcore.clrsr",
+  "llvm.xcore.crc32",
+  "llvm.xcore.crc8",
+  "llvm.xcore.edu",
+  "llvm.xcore.eeu",
+  "llvm.xcore.endin",
+  "llvm.xcore.freer",
+  "llvm.xcore.geted",
+  "llvm.xcore.getet",
+  "llvm.xcore.getid",
+  "llvm.xcore.getps",
+  "llvm.xcore.getr",
+  "llvm.xcore.getst",
+  "llvm.xcore.getts",
+  "llvm.xcore.in",
+  "llvm.xcore.inct",
+  "llvm.xcore.initcp",
+  "llvm.xcore.initdp",
+  "llvm.xcore.initlr",
+  "llvm.xcore.initpc",
+  "llvm.xcore.initsp",
+  "llvm.xcore.inshr",
+  "llvm.xcore.int",
+  "llvm.xcore.mjoin",
+  "llvm.xcore.msync",
+  "llvm.xcore.out",
+  "llvm.xcore.outct",
+  "llvm.xcore.outshr",
+  "llvm.xcore.outt",
+  "llvm.xcore.peek",
+  "llvm.xcore.setc",
+  "llvm.xcore.setclk",
+  "llvm.xcore.setd",
+  "llvm.xcore.setev",
+  "llvm.xcore.setps",
+  "llvm.xcore.setpsc",
+  "llvm.xcore.setpt",
+  "llvm.xcore.setrdy",
+  "llvm.xcore.setsr",
+  "llvm.xcore.settw",
+  "llvm.xcore.setv",
+  "llvm.xcore.sext",
+  "llvm.xcore.ssync",
+  "llvm.xcore.syncr",
+  "llvm.xcore.testct",
+  "llvm.xcore.testwct",
+  "llvm.xcore.waitevent",
+  "llvm.xcore.zext",
+#endif
+
+// Intrinsic ID to overload bitset
+#ifdef GET_INTRINSIC_OVERLOAD_TABLE
+static const uint8_t OTable[] = {
+  0 | (1<<3) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<3) | (1<<4) | (1<<5),
+  0,
+  0 | (1<<3) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1),
+  0 | (1<<2),
+  0 | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
+  0 | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<2) | (1<<3) | (1<<5) | (1<<6),
+  0 | (1<<2),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
+  0 | (1<<1) | (1<<2) | (1<<3) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<6) | (1<<7),
+  0 | (1<<1) | (1<<2) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<5),
+  0 | (1<<0) | (1<<3) | (1<<4) | (1<<5),
+  0 | (1<<2),
+  0,
+  0,
+  0,
+  0 | (1<<2) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
+  0 | (1<<0) | (1<<1) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
+  0 | (1<<1) | (1<<3) | (1<<4) | (1<<7),
+  0 | (1<<0),
+  0 | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<4) | (1<<5),
+  0,
+  0 | (1<<2) | (1<<3) | (1<<4),
+  0 | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<3) | (1<<4) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<2) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
+  0,
+  0 | (1<<0) | (1<<2) | (1<<6),
+  0 | (1<<5),
+  0 | (1<<1) | (1<<2),
+  0,
+  0 | (1<<6),
+  0 | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<5),
+  0 | (1<<5),
+  0 | (1<<0),
+  0,
+  0 | (1<<0) | (1<<6),
+  0,
+  0 | (1<<4),
+  0 | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<4) | (1<<5) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0 | (1<<3) | (1<<5),
+  0,
+  0,
+  0,
+  0 | (1<<2) | (1<<3),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0 | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4),
+  0,
+  0 | (1<<6) | (1<<7),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0 | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4),
+  0,
+  0,
+  0 | (1<<5),
+  0,
+  0,
+  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0 | (1<<1),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0 | (1<<7),
+  0 | (1<<0),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3),
+  0,
+  0,
+  0,
+  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3),
+  0,
+  0,
+  0,
+  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3),
+  0,
+  0,
+  0,
+  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0 | (1<<3),
+  0,
+  0,
+  0 | (1<<0),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0 | (1<<6) | (1<<7),
+  0,
+  0,
+  0 | (1<<4),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0 | (1<<2) | (1<<5),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0 | (1<<6),
+  0 | (1<<0) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<4) | (1<<5) | (1<<6),
+  0 | (1<<0) | (1<<1) | (1<<4) | (1<<5) | (1<<6),
+  0
+};
+
+return (OTable[id/8] & (1 << (id%8))) != 0;
+#endif
+
+// Global intrinsic function declaration type table.
+#ifdef GET_INTRINSIC_GENERATOR_GLOBAL
+static const unsigned IIT_Table[] = {
+  0x2e, 0x2e2e, (1U<<31) | 1414, 0x10, 0x1f1f, 0x1f1f, 0x2f2f, 
+  0x2f2f, 0x2e2e0, (1U<<31) | 5391, 0x32f, 0x2f3, 0x2f2f2f, (1U<<31) | 5380, (1U<<31) | 769, 
+  0x2e0, 0x2e1, 0x12e1, 0x2e, (1U<<31) | 769, (1U<<31) | 680, 0x2e, 0x2e2e1, 
+  0x142e2e, 0x2e0, (1U<<31) | 771, 0x1f, 0x22e2e, (1U<<31) | 156, 0x2f2f, 0x11f1f, 
+  0x1f1f, 0x11f1f, (1U<<31) | 5438, (1U<<31) | 5438, (1U<<31) | 5391, (1U<<31) | 5438, 0x0, 0x0, 
+  0x42e, (1U<<31) | 5388, (1U<<31) | 5387, 0x2e40, 0x2e50, 0x40, 0x2e0, 0x2e0, 
+  0x2e, 0x2e4, 0x0, 0x2e4, 0x0, 0x2f2f, 0x2f2f, 0x1f1f1f, 
+  (1U<<31) | 5423, (1U<<31) | 5423, (1U<<31) | 5423, (1U<<31) | 5421, (1U<<31) | 5421, (1U<<31) | 5419, (1U<<31) | 5421, (1U<<31) | 5421, 
+  (1U<<31) | 5421, (1U<<31) | 5423, (1U<<31) | 5423, (1U<<31) | 5423, (1U<<31) | 5423, (1U<<31) | 5421, (1U<<31) | 5430, (1U<<31) | 5423, 
+  (1U<<31) | 5423, (1U<<31) | 5423, (1U<<31) | 5443, (1U<<31) | 3615, (1U<<31) | 5376, (1U<<31) | 5467, (1U<<31) | 5447, (1U<<31) | 5459, 
+  (1U<<31) | 5451, (1U<<31) | 5476, 0xbf1f, 0xbf1f, (1U<<31) | 5412, 0xbf2f, 0xbf2f, (1U<<31) | 5412, 
+  0xbf1f, 0xbf1f, 0xbf1f, 0xbf1f, 0xbf1f, 0xbf1f, 0xbf1f, 0x2f2f, 
+  0x2f2f, 0x4, 0x2f2f2f2f, 0x2f2f2f2f, 0x42e, 0x1f1f1f1f, 0x1f1f1f1f, 0x2ee2e2e, 
+  0x2e2ee0, 0x2ee2e2e0, 0x1f, (1U<<31) | 5444, 0x2e2e2e0, 0x4452e0, 0x54452e0, 0x44552e0, 
+  (1U<<31) | 4221, (1U<<31) | 4222, 0x4f4f, 0x4f50, 0x4f50, 0x1f2e2e, 0x2e, (1U<<31) | 5444, 
+  0x42e2e2e, 0x2f2f, 0x2f2f, 0x2f2f, 0x42e0, (1U<<31) | 68, (1U<<31) | 875, (1U<<31) | 885, 
+  (1U<<31) | 897, (1U<<31) | 77, (1U<<31) | 88, 0x2f2f2f, (1U<<31) | 147, (1U<<31) | 4311, (1U<<31) | 147, (1U<<31) | 4311, 
+  0x19f24f0, 0x49f24f0, 0x2f2f2f, 0x2f2f, 0x11cf1f, 0x40, 0x2f2f2f, 0x42f2f, 
+  0x4442e0, (1U<<31) | 1424, (1U<<31) | 5394, 0x5, 0x42e, 0x2f2f, 0x2f2f, (1U<<31) | 133, 
+  0x2e4, 0x0, 0x42e0, 0x42e4, 0x2f2f, (1U<<31) | 133, 0x2f2f, 0xf0f, 
+  (1U<<31) | 133, 0x2e, 0x2ee2e0, 0x2e0, 0x2e, 0x4f4f, 0x2e, 0x0, 
+  0x2f2f, (1U<<31) | 5403, (1U<<31) | 5398, (1U<<31) | 133, (1U<<31) | 133, (1U<<31) | 133, 0x2e2e0, 0x2e0, 
+  0x2e0, 0x42e2e2e0, (1U<<31) | 142, 0x42e0, 0x42e30, 0x0, 0x444, 0x444, 
+  0x444, 0x444, 0x544, 0x444, 0x444, 0x544, 0x2c2c2c, 0x2c2c2c, 
+  0x2c2c, 0x2c2c, 0x4a44a4a, 0x44, 0x4a44a4a, 0x4a44a4a, 0x4a4a4a4a, 0x4a4a4a, 
+  0x4a4a4a4a, 0x4a4a4a4a, 0x4a4a4a, 0x4a4a4a4a, 0x40, 0x40, 0x5, 0x40, 
+  0x40, (1U<<31) | 757, 0x4f5, (1U<<31) | 757, 0x4f5, 0xf0f, (1U<<31) | 952, 0x3f3f3f, 
+  0x3f3f, 0x3f3f3f, 0xafaf1f, 0xafaf1f, 0xbf2f, 0xaf1f, 0xaf1f, 0xaf1f, 
+  0xaf1f, 0xaf1f, 0xaf1f, 0xaf1f, 0xaf1f, 0xbf3f, 0xaf1f, 0xaf1f, 
+  0x2f2f2f, 0x2f2f2f, 0x3f3f3f, 0xbf2f, 0x3f3f3f, 0xbf2f, 0x2f2f2f, 0x2f2f2f, 
+  0x3f3f3f, 0xbf2f, 0x3f3f3f, 0xbf2f, 0x2f2f2f, 0x2f2f, 0x2f2f2f, 0x2f2f, 
+  0x2f2f, 0x2f2f, 0x2f2f2f, (1U<<31) | 5262, (1U<<31) | 5252, (1U<<31) | 5240, (1U<<31) | 5262, (1U<<31) | 5341, 
+  (1U<<31) | 5262, (1U<<31) | 5252, (1U<<31) | 5324, (1U<<31) | 5252, (1U<<31) | 5240, (1U<<31) | 5303, (1U<<31) | 5240, 0x3f3f3f, 
+  (1U<<31) | 964, 0x552c, (1U<<31) | 952, 0x3f3f, (1U<<31) | 971, (1U<<31) | 952, 0x3f3f3f, 0xbf3f, 
+  0xbf1f, 0xbf1f, 0x9f1f, 0x9f1f, 0x9f1f, (1U<<31) | 5187, 0x3f3f3f, (1U<<31) | 959, 
+  0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0xbf1f, 0x3f3f3f, 0x3f3f3f, 0xbf1f, (1U<<31) | 964, 
+  0x1f1f, 0x1f1f1f, 0x1f1f1f, (1U<<31) | 964, 0x445, 0x1f1f, 0x1f1f1f, 0x1f1f1f, 
+  (1U<<31) | 971, (1U<<31) | 971, 0x1f1f1f, 0x1f1f1f, (1U<<31) | 971, (1U<<31) | 971, 0x1f1f1f, (1U<<31) | 160, 
+  (1U<<31) | 160, 0x3f3f3f, 0x1f1f1f, 0x1f1f1f, (1U<<31) | 1561, 0xcf3f3f0, (1U<<31) | 5218, (1U<<31) | 5228, 
+  0xcf3f3f0, (1U<<31) | 5270, (1U<<31) | 5218, (1U<<31) | 5279, (1U<<31) | 5228, (1U<<31) | 5290, (1U<<31) | 952, 0x1f1f1f, 
+  0x3f2c3f, 0x3f2c2c3f, (1U<<31) | 925, (1U<<31) | 910, 0x3f2c3f3f, (1U<<31) | 936, (1U<<31) | 923, (1U<<31) | 908, 
+  0x3f3f3f, 0xbf3f, 0xbf1f, 0xbf1f, (1U<<31) | 5187, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 
+  0x3f3f3f, 0xbf1f, 0x3f3f3f, 0x3f3f3f, 0xbf1f, (1U<<31) | 964, 0x1f1f1f, 0x1f1f1f, 
+  (1U<<31) | 971, 0x1f1f1f, (1U<<31) | 971, 0x1f1f1f, (1U<<31) | 160, 0x3f3f, 0x3f3f3f, 0x1f1f1f, 
+  0x3f3f, 0x1f1f1f, (1U<<31) | 1561, 0x1f1f1f, 0x53f5bf3f, 0x4af1f, 0x4af1f, 0x7a3a, 
+  0x49f2f, 0x49f2f, 0x3a7a, 0x43f3f3f, 0x43f3f3f, 0x1f1f1f, 0x2f2f2f, 0x87, 
+  0x2e554, 0x4f54, 0x2e554, 0x4f54, 0x1f1f1f, 0x4444, 0x4444, (1U<<31) | 98, 
+  (1U<<31) | 98, 0x55, 0x1444a44, 0x1444a44, 0x1444a444, 0x1444a44, 0x1444a44, 0x1444a44, 
+  0x1444a44, 0x1444a44, 0x1444a44, 0x1444a44, 0x1444a44, 0x11444a2f, 0x11444a2f, (1U<<31) | 38, 
+  (1U<<31) | 38, 0x0, 0x0, 0x0, 0x42f1, 0x2f2f, 0x7777, 0x7777, 
+  0x7777, 0x7777, 0x4439, 0x4439, 0x4474, 0x7739, 0x7739, 0x7769, 
+  0x5, (1U<<31) | 363, 0x2f2f2f2f, (1U<<31) | 58, (1U<<31) | 48, 0x444, (1U<<31) | 119, (1U<<31) | 119, 
+  (1U<<31) | 119, 0x444, 0x444, (1U<<31) | 4355, 0x555, 0x50, (1U<<31) | 0, (1U<<31) | 14, 
+  0x42f2f5, 0x777, 0x1769697, 0x2f2f2f2f, 0x2f2f2f2f, 0x777, 0x2f2f, 0xaf1f, 
+  0x2f2f, 0x4, 0x41f1f5, (1U<<31) | 128, 0x515, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3148, (1U<<31) | 3172, (1U<<31) | 3172, 
+  (1U<<31) | 3200, (1U<<31) | 3232, (1U<<31) | 3200, (1U<<31) | 3200, (1U<<31) | 3200, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3150, (1U<<31) | 3174, (1U<<31) | 3174, 
+  (1U<<31) | 3202, (1U<<31) | 3234, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 3202, (1U<<31) | 1623, (1U<<31) | 1687, (1U<<31) | 2012, 
+  (1U<<31) | 2264, (1U<<31) | 2264, (1U<<31) | 2660, (1U<<31) | 2660, (1U<<31) | 2283, (1U<<31) | 2681, (1U<<31) | 2681, (1U<<31) | 2264, 
+  (1U<<31) | 2029, (1U<<31) | 2283, (1U<<31) | 2283, (1U<<31) | 1654, (1U<<31) | 1722, (1U<<31) | 1975, (1U<<31) | 2223, (1U<<31) | 2223, 
+  (1U<<31) | 2615, (1U<<31) | 2615, (1U<<31) | 2243, (1U<<31) | 2637, (1U<<31) | 2637, (1U<<31) | 2223, (1U<<31) | 1993, (1U<<31) | 2243, 
+  (1U<<31) | 2243, (1U<<31) | 1722, (1U<<31) | 1798, (1U<<31) | 1798, (1U<<31) | 1740, (1U<<31) | 1818, (1U<<31) | 1818, (1U<<31) | 1722, 
+  (1U<<31) | 1722, (1U<<31) | 1798, (1U<<31) | 1798, (1U<<31) | 1740, (1U<<31) | 1818, (1U<<31) | 1818, (1U<<31) | 1654, (1U<<31) | 1722, 
+  (1U<<31) | 1722, (1U<<31) | 1670, (1U<<31) | 1740, (1U<<31) | 1740, (1U<<31) | 1670, (1U<<31) | 1740, (1U<<31) | 1740, (1U<<31) | 1687, 
+  (1U<<31) | 1759, (1U<<31) | 1759, (1U<<31) | 1704, (1U<<31) | 1778, (1U<<31) | 1778, (1U<<31) | 1687, (1U<<31) | 1687, (1U<<31) | 1759, 
+  (1U<<31) | 1759, (1U<<31) | 1704, (1U<<31) | 1778, (1U<<31) | 1778, (1U<<31) | 1623, (1U<<31) | 1687, (1U<<31) | 1687, (1U<<31) | 1638, 
+  (1U<<31) | 1704, (1U<<31) | 1704, (1U<<31) | 1638, (1U<<31) | 1704, (1U<<31) | 1704, (1U<<31) | 1567, (1U<<31) | 1623, (1U<<31) | 1623, 
+  (1U<<31) | 1687, (1U<<31) | 1687, (1U<<31) | 1687, (1U<<31) | 3162, (1U<<31) | 3162, (1U<<31) | 3162, (1U<<31) | 3162, (1U<<31) | 3162, 
+  (1U<<31) | 3162, (1U<<31) | 3162, (1U<<31) | 3162, (1U<<31) | 3162, (1U<<31) | 3188, (1U<<31) | 3188, (1U<<31) | 3218, (1U<<31) | 3252, 
+  (1U<<31) | 3218, (1U<<31) | 3218, (1U<<31) | 3218, (1U<<31) | 3188, (1U<<31) | 3218, (1U<<31) | 3218, (1U<<31) | 3252, (1U<<31) | 3252, 
+  (1U<<31) | 3252, (1U<<31) | 1567, (1U<<31) | 1623, (1U<<31) | 1623, (1U<<31) | 1687, (1U<<31) | 1687, (1U<<31) | 1872, (1U<<31) | 2012, 
+  (1U<<31) | 2012, (1U<<31) | 2264, (1U<<31) | 2264, (1U<<31) | 2012, (1U<<31) | 2264, (1U<<31) | 2264, (1U<<31) | 2660, (1U<<31) | 2660, 
+  (1U<<31) | 2660, (1U<<31) | 2029, (1U<<31) | 2283, (1U<<31) | 2283, (1U<<31) | 2681, (1U<<31) | 2681, (1U<<31) | 2681, (1U<<31) | 2264, 
+  (1U<<31) | 1887, (1U<<31) | 2029, (1U<<31) | 2029, (1U<<31) | 2283, (1U<<31) | 2283, (1U<<31) | 2283, (1U<<31) | 1594, (1U<<31) | 1654, 
+  (1U<<31) | 1654, (1U<<31) | 1722, (1U<<31) | 1722, (1U<<31) | 1839, (1U<<31) | 1975, (1U<<31) | 1975, (1U<<31) | 2223, (1U<<31) | 2223, 
+  (1U<<31) | 1975, (1U<<31) | 2223, (1U<<31) | 2223, (1U<<31) | 2615, (1U<<31) | 2615, (1U<<31) | 2615, (1U<<31) | 1993, (1U<<31) | 2243, 
+  (1U<<31) | 2243, (1U<<31) | 2637, (1U<<31) | 2637, (1U<<31) | 2637, (1U<<31) | 2223, (1U<<31) | 1855, (1U<<31) | 1993, (1U<<31) | 1993, 
+  (1U<<31) | 2243, (1U<<31) | 2243, (1U<<31) | 2243, (1U<<31) | 1938, (1U<<31) | 2086, (1U<<31) | 2174, (1U<<31) | 2442, (1U<<31) | 2554, 
+  (1U<<31) | 2086, (1U<<31) | 2346, (1U<<31) | 2442, (1U<<31) | 2758, (1U<<31) | 2878, (1U<<31) | 2758, (1U<<31) | 2106, (1U<<31) | 2368, 
+  (1U<<31) | 2468, (1U<<31) | 2786, (1U<<31) | 2910, (1U<<31) | 2786, (1U<<31) | 2442, (1U<<31) | 1956, (1U<<31) | 2106, (1U<<31) | 2198, 
+  (1U<<31) | 2468, (1U<<31) | 2584, (1U<<31) | 2468, (1U<<31) | 1654, (1U<<31) | 1722, (1U<<31) | 1722, (1U<<31) | 1798, (1U<<31) | 1798, 
+  (1U<<31) | 1798, (1U<<31) | 1670, (1U<<31) | 1740, (1U<<31) | 1740, (1U<<31) | 1818, (1U<<31) | 1818, (1U<<31) | 1818, (1U<<31) | 1722, 
+  (1U<<31) | 1938, (1U<<31) | 2086, (1U<<31) | 2174, (1U<<31) | 2442, (1U<<31) | 2554, (1U<<31) | 2086, (1U<<31) | 2346, (1U<<31) | 2442, 
+  (1U<<31) | 2758, (1U<<31) | 2878, (1U<<31) | 2758, (1U<<31) | 2106, (1U<<31) | 2368, (1U<<31) | 2468, (1U<<31) | 2786, (1U<<31) | 2910, 
+  (1U<<31) | 2786, (1U<<31) | 2442, (1U<<31) | 1956, (1U<<31) | 2106, (1U<<31) | 2198, (1U<<31) | 2468, (1U<<31) | 2584, (1U<<31) | 2468, 
+  (1U<<31) | 1654, (1U<<31) | 1722, (1U<<31) | 1722, (1U<<31) | 1798, (1U<<31) | 1798, (1U<<31) | 1798, (1U<<31) | 1670, (1U<<31) | 1740, 
+  (1U<<31) | 1740, (1U<<31) | 1818, (1U<<31) | 1818, (1U<<31) | 1818, (1U<<31) | 1594, (1U<<31) | 1654, (1U<<31) | 1654, (1U<<31) | 1722, 
+  (1U<<31) | 1722, (1U<<31) | 1722, (1U<<31) | 1608, (1U<<31) | 1670, (1U<<31) | 1670, (1U<<31) | 1740, (1U<<31) | 1740, (1U<<31) | 1740, 
+  (1U<<31) | 1608, (1U<<31) | 1670, (1U<<31) | 1670, (1U<<31) | 1740, (1U<<31) | 1740, (1U<<31) | 1740, (1U<<31) | 1903, (1U<<31) | 2047, 
+  (1U<<31) | 2127, (1U<<31) | 2391, (1U<<31) | 2495, (1U<<31) | 2047, (1U<<31) | 2303, (1U<<31) | 2391, (1U<<31) | 2703, (1U<<31) | 2815, 
+  (1U<<31) | 2703, (1U<<31) | 2066, (1U<<31) | 2324, (1U<<31) | 2416, (1U<<31) | 2730, (1U<<31) | 2846, (1U<<31) | 2730, (1U<<31) | 2391, 
+  (1U<<31) | 1920, (1U<<31) | 2066, (1U<<31) | 2150, (1U<<31) | 2416, (1U<<31) | 2524, (1U<<31) | 2416, (1U<<31) | 1623, (1U<<31) | 1687, 
+  (1U<<31) | 1687, (1U<<31) | 1759, (1U<<31) | 1759, (1U<<31) | 1759, (1U<<31) | 1638, (1U<<31) | 1704, (1U<<31) | 1704, (1U<<31) | 1778, 
+  (1U<<31) | 1778, (1U<<31) | 1778, (1U<<31) | 1687, (1U<<31) | 1903, (1U<<31) | 2047, (1U<<31) | 2127, (1U<<31) | 2391, (1U<<31) | 2495, 
+  (1U<<31) | 2047, (1U<<31) | 2303, (1U<<31) | 2391, (1U<<31) | 2703, (1U<<31) | 2815, (1U<<31) | 2703, (1U<<31) | 2066, (1U<<31) | 2324, 
+  (1U<<31) | 2416, (1U<<31) | 2730, (1U<<31) | 2846, (1U<<31) | 2730, (1U<<31) | 2391, (1U<<31) | 1920, (1U<<31) | 2066, (1U<<31) | 2150, 
+  (1U<<31) | 2416, (1U<<31) | 2524, (1U<<31) | 2416, (1U<<31) | 1623, (1U<<31) | 1687, (1U<<31) | 1687, (1U<<31) | 1759, (1U<<31) | 1759, 
+  (1U<<31) | 1759, (1U<<31) | 1638, (1U<<31) | 1704, (1U<<31) | 1704, (1U<<31) | 1778, (1U<<31) | 1778, (1U<<31) | 1778, (1U<<31) | 1567, 
+  (1U<<31) | 1623, (1U<<31) | 1623, (1U<<31) | 1687, (1U<<31) | 1687, (1U<<31) | 1687, (1U<<31) | 1580, (1U<<31) | 1638, (1U<<31) | 1638, 
+  (1U<<31) | 1704, (1U<<31) | 1704, (1U<<31) | 1704, (1U<<31) | 1580, (1U<<31) | 1638, (1U<<31) | 1638, (1U<<31) | 1704, (1U<<31) | 1704, 
+  (1U<<31) | 1704, (1U<<31) | 3161, (1U<<31) | 3187, (1U<<31) | 3187, (1U<<31) | 3217, (1U<<31) | 3251, (1U<<31) | 3217, (1U<<31) | 3217, 
+  (1U<<31) | 3217, (1U<<31) | 3187, (1U<<31) | 3217, (1U<<31) | 3217, (1U<<31) | 3251, (1U<<31) | 3251, (1U<<31) | 3251, (1U<<31) | 363, 
+  (1U<<31) | 363, 0x50, 0x440, 0x44447, 0x44477, 0x444777, (1U<<31) | 363, 0x10, 
+  0x42f2f, 0x4444, 0x2f2f, 0x51, 0x444, 0x444, 0x14441f1f, 0x5455, 
+  0x4a454a, 0x4444, 0x1, 0x5455, (1U<<31) | 363, 0x2f2f, 0x77, 0x44, 
+  0x444, 0x2f2f, 0x2f2f, 0x77, 0x0, 0x0, 0x0, 0x0, 
+  0x0, 0x40, 0x5, 0x44, 0x40, 0x5, 0x5, 0x440, 
+  0x440, 0x40, 0x40, 0x4444, 0x4444, 0x4444, 0x441f1f, 0x1439394, 
+  0x14444, 0x14444, 0x1f1f1f, 0x1f1f, 0x2f2f, (1U<<31) | 25, (1U<<31) | 24, 0x42f2f, 
+  0x441f1f, 0x1439394, 0x14444, 0x14444, 0x0, (1U<<31) | 108, 0x0, 0x4, 
+  0x4, 0x4, 0x4, 0x4, 0x4, 0xf0f, 0x11, 0x4444, 
+  0xf0f, 0x4444440, 0x4444440, 0x0, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x40, 0x40, 0x40, 0x4, 0x40, 0x40, 
+  0x4f4, (1U<<31) | 741, 0x2e440, 0x2e440, 0x2e440, 0x2e440, 0x4f4, (1U<<31) | 741, 
+  0x4444440, 0x4444440, 0x444440, 0x444440, 0x444444, 0x444444, (1U<<31) | 3065, (1U<<31) | 3065, 
+  0x2c2c2c, 0x2c2c2c, 0x2c2c, 0x2c2c, (1U<<31) | 5187, 0x4a44a4a, 0x44, 0x4a44a4a, 
+  0x4a44a4a, 0x4a4a4a4a, 0x4a4a4a, 0x4a4a4a4a, 0x4a4a4a4a, 0x4a4a4a, 0x4a4a4a4a, (1U<<31) | 5187, 
+  0x3f3f3f, 0x3f3f3f, 0x3f3f, 0xbfbf3f, 0xbfbf3f, 0x3f3f3f3f, 0x3f3f, 0xbf3f, 
+  0xbf3f, 0x4af1f, 0x4af1f, 0x7a3a, 0x49f2f, 0x49f2f, 0x3a7a, 0xbf3f, 
+  0xbf3f, 0xbf3f, 0xbf3f, 0xbf3f, 0xbf3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 
+  0x3f3f3f, 0x4cf3f, (1U<<31) | 5262, (1U<<31) | 5252, (1U<<31) | 5240, (1U<<31) | 4106, (1U<<31) | 4106, (1U<<31) | 3013, 
+  (1U<<31) | 4095, (1U<<31) | 4095, (1U<<31) | 2995, (1U<<31) | 4082, (1U<<31) | 4082, (1U<<31) | 2973, 0x3f3f3f, 0x3f3f3f, 
+  0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, (1U<<31) | 964, (1U<<31) | 964, (1U<<31) | 964, 0x3f3f3f, 
+  0xbf3f3f, 0xbf3f3f, 0x3f3f3f, 0xbf3f, 0xbf3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 
+  0x3f3f3f, 0x3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, (1U<<31) | 964, (1U<<31) | 947, (1U<<31) | 947, 
+  (1U<<31) | 947, 0x3f3f, 0x3f3f3f, (1U<<31) | 952, (1U<<31) | 952, (1U<<31) | 952, 0x3f3f3f, 0x3f3f3f, 
+  (1U<<31) | 952, (1U<<31) | 952, (1U<<31) | 952, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 
+  (1U<<31) | 952, 0x3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f, 0x3f3f, 0x2f2f, 
+  0x3f3f, 0x3f3f, 0x3f3f, (1U<<31) | 952, 0x3f3f3f, 0x3f3f3f, 0x3f3f, 0x3f3f3f, 
+  (1U<<31) | 952, 0x3f3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x4bf4f0, 0xbfbf4f0, (1U<<31) | 5196, (1U<<31) | 5206, 
+  0x4bfbf4f0, (1U<<31) | 3437, (1U<<31) | 3986, (1U<<31) | 3447, (1U<<31) | 3997, (1U<<31) | 3459, 0x2b2b2b, 0x2b2b2b2b, 
+  (1U<<31) | 653, (1U<<31) | 651, 0x2b2b2b2b, (1U<<31) | 653, (1U<<31) | 651, (1U<<31) | 649, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x40, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x5445, 0x5445, 0x4444, 
+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x5445, 0x5445, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x2e440, 
+  0x2e440, 0x2e440, 0x2e440, 0x4f44, 0x2e444, 0x4f44, 0x2e444, 0x444, 
+  0x44, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x40, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x4444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x44, 0x2f7, 0x2f7, 0x52e5, 0x52e5, 0x52e5, 0x555, 
+  0x44, 0x55, 0x44, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x555, 0x555, 0x444, 0x545, 0x444, 0x444, 0x555, 
+  0x44, 0x44, 0x444, 0x444, 0x444, 0x444, 0x445, 0x445, 
+  0x444, 0x555, 0x444, 0x555, 0x444, 0x555, 0x444, 0x555, 
+  0x44, 0x55, 0x44, 0x44, 0x55, 0x444, 0x444, 0x555, 
+  0x54, 0x54, 0x44, 0x44, 0x44, 0x44, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x555, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x44, 
+  0x44, 0x44, 0x45, 0x44, 0x444, 0x444, 0x55, 0x45, 
+  0x44, 0x55, 0x55, 0x55, 0x55, 0x555, 0x555, 0x555, 
+  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
+  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
+  0x555, 0x554, 0x554, 0x554, 0x554, 0x554, 0x554, 0x554, 
+  0x554, 0x55, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
+  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
+  0x555, 0x555, 0x555, 0x555, 0x555, 0x5555, 0x555, 0x5555, 
+  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
+  0x444, 0x555, 0x44, 0x44, 0x444, 0x555, 0x445, 0x445, 
+  0x544, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x445, 0x445, 0x444, 
+  0x444, 0x444, 0x444, 0x555, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x454, 0x554, 0x454, 0x554, 
+  0x454, 0x454, 0x454, 0x454, 0x454, 0x454, 0x454, 0x454, 
+  0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 
+  0x554, 0x554, 0x554, 0x44, 0x444, 0x444, 0x44, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x554, 0x444, 0x444, 0x444, 
+  0x444, 0x554, 0x444, 0x444, 0x554, 0x444, 0x444, 0x45, 
+  0x4444, 0x4444, 0x4444, 0x4444, 0x44, 0x444, 0x444, 0x44, 
+  0x44, 0x44, 0x444, 0x5545, 0x444, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 
+  0x58, 0x57, 0x85, 0x85, 0x87, 0x85, 0x85, 0x84, 
+  0x84, 0x84, 0x84, 0x75, 0x75, 0x78, 0x75, 0x75, 
+  0x74, 0x74, 0x74, 0x74, 0x58, 0x57, 0x48, 0x47, 
+  0x48, 0x47, 0x484, 0x884, 0x884, 0x884, 0x884, 0x48, 
+  0x48, 0x777, 0x474, 0x774, 0x774, 0x774, 0x774, 0x777, 
+  0x777, 0x77, 0x7777, 0x7777, 0x47777, 0x7777, 0x7777, 0x47, 
+  0x47, 0x777, 0x777, 0x777, 0x777, (1U<<31) | 1434, (1U<<31) | 709, (1U<<31) | 689, 
+  (1U<<31) | 1442, (1U<<31) | 720, (1U<<31) | 699, (1U<<31) | 1434, (1U<<31) | 709, (1U<<31) | 689, (1U<<31) | 1434, (1U<<31) | 709, 
+  (1U<<31) | 689, (1U<<31) | 1434, (1U<<31) | 709, (1U<<31) | 689, (1U<<31) | 1434, (1U<<31) | 709, (1U<<31) | 689, 0x4e4, 
+  0x5e5, 0x4444, 0x4444, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
+  0x4455, 0x445, 0x445, 0x444, 0x444, 0x444, 0x444, 0x445, 
+  0x445, 0x445, 0x445, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
+  0x4455, 0x444, 0x445, 0x4455, 0x4455, 0x445, 0x444, 0x444, 
+  0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 
+  0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 
+  0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 
+  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
+  0x555, 0x555, 0x555, 0x555, 0x555, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
+  0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 
+  0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
+  0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 
+  0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x4444, 0x4444, 0x444, 0x4455, 0x4455, 0x4455, 0x4455, 
+  0x4455, 0x4455, 0x4455, 0x4455, 0x445, 0x445, 0x445, 0x445, 
+  0x445, 0x445, 0x445, 0x445, 0x4455, 0x4455, 0x4455, 0x4455, 
+  0x4455, 0x4455, 0x4455, 0x4455, 0x444, 0x4444, 0x4444, 0x4444, 
+  0x555, 0x555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 0x555, 
+  0x5555, 0x5555, 0x554, 0x554, 0x555, 0x555, 0x4455, 0x5555, 
+  0x5555, 0x5555, 0x4455, 0x4455, 0x4455, 0x4455, 0x555, 0x555, 
+  0x445, 0x444, 0x445, 0x444, 0x445, 0x445, 0x554, 0x554, 
+  0x5555, 0x5555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 0x555, 
+  0x4555, 0x455, 0x454, 0x5555, 0x555, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x4444, 0x454, 0x454, 0x454, 0x454, 0x4444, 0x4444, 
+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x445, 0x4455, 0x445, 0x4455, 0x5555, 0x5555, 0x555, 
+  0x555, 0x5555, 0x5555, 0x555, 0x555, 0x4444, 0x4444, 0x4444, 
+  0x5555, 0x5555, 0x555, 0x4455, 0x4455, 0x445, 0x445, 0x5555, 
+  0x5555, 0x555, 0x555, 0x555, 0x555, 0x4444, 0x455, 0x4555, 
+  0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x444, 0x4444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 
+  0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 
+  0x444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 
+  0x455, 0x455, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 
+  0x444, 0x454, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 
+  0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 
+  0x454, 0x455, 0x455, 0x44, 0x55, 0x4555, 0x44, 0x54, 
+  0x44, 0x54, 0x44, 0x44, 0x54, 0x444, 0x444, 0x44, 
+  0x54, 0x44, 0x54, 0x55, 0x4444, 0x544, 0x4455, 0x555, 
+  0x44444, 0x5444, 0x44555, 0x5555, 0x55, 0x555, 0x455, 0x4555, 
+  0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 
+  0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x455, 
+  0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 
+  0x4444, 0x4444, 0x4444, 0x4444, 0x455, 0x455, 0x445, 0x554, 
+  0x444, 0x444, 0x555, 0x555, 0x555, 0x555, 0x442e2e, (1U<<31) | 731, 
+  0x2e442e2e, 0x452e2e, (1U<<31) | 747, 0x2e542e2e, 0x442e2e, (1U<<31) | 731, 0x2e442e2e, 0x442e2e, 
+  (1U<<31) | 731, 0x2e442e2e, 0x442e2e, (1U<<31) | 731, 0x2e442e2e, 0x44e4, 0x44, 0x44, 
+  0x44444, 0x44444, 0x44444, 0x44444, 0x444, 0x444, 0x444, 0x444, 
+  0x4555, 0x4555, 0x455, 0x455, 0x4555, 0x54, 0x54, 0x54, 
+  0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 0x44, 
+  0x45, 0x4555, 0x4555, 0x45, 0x45, 0x54, 0x555, 0x54, 
+  0x555, 0x45, 0x45, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
+  0x444, 0x454, 0x54, 0x4444, 0x544, 0x4455, 0x555, 0x444, 
+  0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 
+  0x55e4, 0x4444, 0x4444, 0x4444, 0x4455, 0x44555, 0x555, 0x555, 
+  0x555, 0x555, 0x555, 0x555, 0x454, 0x454, 0x54, 0x455, 
+  0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 
+  0x4444, 0x4444, 0x4444, 0x4444, 0x45, 0x555, 0x555, 0x44c4, 
+  0x44d4, 0x4d4c, (1U<<31) | 4295, 0x4d4c, (1U<<31) | 4295, 0x44c, 0x44d, 0x44c, 
+  0x44d, 0x44c, 0x44d, (1U<<31) | 165, (1U<<31) | 184, (1U<<31) | 165, (1U<<31) | 184, (1U<<31) | 167, 
+  (1U<<31) | 186, (1U<<31) | 165, (1U<<31) | 184, (1U<<31) | 165, (1U<<31) | 184, (1U<<31) | 981, (1U<<31) | 989, (1U<<31) | 981, 
+  (1U<<31) | 989, (1U<<31) | 165, (1U<<31) | 184, (1U<<31) | 165, (1U<<31) | 184, (1U<<31) | 165, (1U<<31) | 184, (1U<<31) | 4017, 
+  (1U<<31) | 4122, (1U<<31) | 4017, (1U<<31) | 4122, (1U<<31) | 4017, (1U<<31) | 4122, (1U<<31) | 4017, (1U<<31) | 4122, 0x4c4c, 
+  0x4d4d, 0x4c4c, 0x4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c, 0x4d4d, 0x4c4c, 0x4d4d, 0x4c4c, 
+  0x4d4d, 0x4c4c, 0x4d4d, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, (1U<<31) | 4044, 
+  (1U<<31) | 4159, (1U<<31) | 4044, (1U<<31) | 4159, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, (1U<<31) | 172, 
+  (1U<<31) | 191, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, 
+  (1U<<31) | 4300, (1U<<31) | 4044, (1U<<31) | 4159, (1U<<31) | 4044, (1U<<31) | 4159, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, 
+  (1U<<31) | 4300, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4d4d, (1U<<31) | 4187, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4d4d, 
+  (1U<<31) | 4187, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4d4d, (1U<<31) | 4187, 0x4c4c4c, 
+  0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, (1U<<31) | 4044, 
+  (1U<<31) | 4159, (1U<<31) | 4044, (1U<<31) | 4159, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, 0x44c4c4c, 
+  0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 0x4d4d4d, (1U<<31) | 979, (1U<<31) | 987, (1U<<31) | 977, 
+  (1U<<31) | 985, (1U<<31) | 979, (1U<<31) | 987, (1U<<31) | 977, (1U<<31) | 985, (1U<<31) | 4010, (1U<<31) | 4115, (1U<<31) | 4010, 
+  (1U<<31) | 4115, (1U<<31) | 3475, (1U<<31) | 3513, (1U<<31) | 3473, (1U<<31) | 3511, 0x44c4c, 0x44d4d, 0x44c4c4c, 
+  0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 
+  0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 0x44c4c4c, 
+  0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c, 
+  0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 
+  0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c, 
+  0x4d4d, 0x4d4d, (1U<<31) | 4302, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c, 0x4d4d, 0x4c4c, 0x4d4d, 0x4c4c4d, 
+  (1U<<31) | 4189, 0x4c, 0x4d, 0x4d, (1U<<31) | 4284, 0x4c4c, 0x4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c, 0x4d4d, 0x44c4c4d, (1U<<31) | 3531, 0x4c4c4c, 0x4d4d4d, 0x44c4c, 
+  0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x44d4d, (1U<<31) | 3604, 0x44d4d4d, (1U<<31) | 3602, 0x44c4c, 
+  0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x44d4d, (1U<<31) | 3604, 0x44d4d4d, (1U<<31) | 3602, 0x44d4c, 
+  (1U<<31) | 3596, 0x44d4c4c, (1U<<31) | 3594, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x44d4c, 
+  (1U<<31) | 3596, 0x44d4c4c, (1U<<31) | 3594, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x44d4d, (1U<<31) | 3604, 0x44d4d4d, (1U<<31) | 3602, (1U<<31) | 4037, 
+  (1U<<31) | 4152, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4037, 
+  (1U<<31) | 4152, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4037, 
+  (1U<<31) | 4152, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, 0x4c442e0, 
+  0x4d442e0, (1U<<31) | 4025, (1U<<31) | 4140, 0x4d442e0, (1U<<31) | 4287, (1U<<31) | 4130, (1U<<31) | 4277, 0x4c442e0, 
+  0x4d442e0, (1U<<31) | 4025, (1U<<31) | 4140, (1U<<31) | 4037, (1U<<31) | 4152, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, 
+  (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4037, (1U<<31) | 4152, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, 
+  (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4037, (1U<<31) | 4152, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, 
+  (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4037, (1U<<31) | 4152, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, 
+  (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4037, (1U<<31) | 4152, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, 
+  (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4037, (1U<<31) | 4152, (1U<<31) | 4035, (1U<<31) | 4150, (1U<<31) | 4035, 
+  (1U<<31) | 4150, (1U<<31) | 4035, (1U<<31) | 4150, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 
+  0x44d4d4d, 0x44c4c, 0x44d4d, 0x44c4c, 0x44d4d, 0x4c4c4c, 0x4d4d4d, 0x44c4c, 
+  0x44d4d, 0x4c4c4c, 0x4d4d4d, 0x54c4c, 0x54d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 
+  0x44d4d4d, (1U<<31) | 3491, (1U<<31) | 3519, (1U<<31) | 3491, (1U<<31) | 3519, 0x44c4c4c, 0x44d4d4d, 0x44c4c4d, 
+  (1U<<31) | 3531, 0x44c4c4d, (1U<<31) | 3531, (1U<<31) | 3501, (1U<<31) | 3529, (1U<<31) | 3501, (1U<<31) | 3529, 0x44c4c4d, 
+  (1U<<31) | 3531, (1U<<31) | 4017, (1U<<31) | 4122, (1U<<31) | 4017, (1U<<31) | 4122, (1U<<31) | 4017, (1U<<31) | 4122, (1U<<31) | 4017, 
+  (1U<<31) | 4122, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x44d4d, (1U<<31) | 3604, 0x44d4d4d, 
+  (1U<<31) | 3602, 0x4d4d4d, (1U<<31) | 4300, 0x44d4d, (1U<<31) | 3604, 0x44d4d4d, (1U<<31) | 3602, 0x4d4d4d, 
+  (1U<<31) | 4300, 0x44d4d, (1U<<31) | 3604, 0x44d4d4d, (1U<<31) | 3602, 0x54c4c4c, 0x54d4d4d, 0x44d4d, 
+  (1U<<31) | 3604, 0x44d4d4d, (1U<<31) | 3602, 0x54c4c4c, 0x54d4d4d, 0x54c4c4c, 0x54d4d4d, 0x44c4d, 
+  (1U<<31) | 3541, 0x44c4d4d, (1U<<31) | 3539, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4d4d, (1U<<31) | 4187, 0x4c4c4d, 
+  (1U<<31) | 4189, 0x4c4c4d4d, (1U<<31) | 4187, 0x4c4c4c, 0x4d4d4d, 0x4c4c4d, (1U<<31) | 4189, 0x44c4d, 
+  (1U<<31) | 3541, 0x44c4d4d, (1U<<31) | 3539, 0x44c4d4d, (1U<<31) | 3539, 0x44c4c, 0x44d4d, 0x44c4c, 
+  0x44d4d, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4d4d, (1U<<31) | 4187, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4d4d, 
+  (1U<<31) | 4187, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x44c4c, 
+  0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 
+  0x44d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 
+  0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4d4d, (1U<<31) | 4187, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 
+  0x4d4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x44c4d, (1U<<31) | 3541, 0x44c4d4d, (1U<<31) | 3539, 0x4c4c4d, 
+  (1U<<31) | 4189, 0x4c4c4d4d, (1U<<31) | 4187, 0x44c4d, (1U<<31) | 3541, 0x44c4d4d, (1U<<31) | 3539, 0x44c4c, 
+  0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4d4d, (1U<<31) | 4187, (1U<<31) | 4044, 
+  (1U<<31) | 4159, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c, 0x4d4d, 0x4c4c, 0x4d4d, 0x4c4c, 0x4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c, 0x4d4d, (1U<<31) | 179, (1U<<31) | 198, (1U<<31) | 179, (1U<<31) | 198, (1U<<31) | 179, 
+  (1U<<31) | 198, 0x4c4c4c, 0x4d4d4d, 0x54c4d, (1U<<31) | 4349, 0x54c4d4d, (1U<<31) | 4347, 0x44c4c, 
+  0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x444d4d, (1U<<31) | 3270, 0x444d4d4d, (1U<<31) | 3268, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x44c4c, 
+  0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x54c4d, (1U<<31) | 4349, 0x54c4d4d, (1U<<31) | 4347, 0x444d4d, 
+  (1U<<31) | 3270, 0x444d4d4d, (1U<<31) | 3268, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x44c4c, 
+  0x44d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x444d4d, (1U<<31) | 3270, 0x444d4d4d, 
+  (1U<<31) | 3268, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4d, 
+  (1U<<31) | 4199, 0x4c4c440, 0x4d4d440, 0x4c4c440, 0x4d4d440, (1U<<31) | 4062, (1U<<31) | 4177, 0x4c4d440, 
+  (1U<<31) | 4196, 0x4c4d440, (1U<<31) | 4196, (1U<<31) | 4072, (1U<<31) | 4204, 0x4c4c440, 0x4d4d440, 0x4c4c440, 
+  0x4d4d440, (1U<<31) | 4062, (1U<<31) | 4177, 0x4c4d, (1U<<31) | 4199, 0x4c4c4c, 0x4d4d4d, 0x4c4c, 
+  0x4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c, 0x4d4d, 0x4c4c4c, 0x4d4d4d, 0x44c4c4d, 
+  (1U<<31) | 3531, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 
+  0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, (1U<<31) | 4044, (1U<<31) | 4159, (1U<<31) | 4044, (1U<<31) | 4159, 0x4c4c4c, 
+  0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, (1U<<31) | 172, (1U<<31) | 191, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, 
+  (1U<<31) | 4300, (1U<<31) | 4044, (1U<<31) | 4159, (1U<<31) | 4044, (1U<<31) | 4159, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, 
+  (1U<<31) | 4300, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4d, (1U<<31) | 4189, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, 
+  (1U<<31) | 4300, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, 0x4c4c4d, 
+  (1U<<31) | 4189, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 4300, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, 
+  (1U<<31) | 4300, (1U<<31) | 4044, (1U<<31) | 4159, (1U<<31) | 4044, (1U<<31) | 4159, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, 
+  (1U<<31) | 4300, (1U<<31) | 4053, (1U<<31) | 4168, 0x44d4d, (1U<<31) | 3604, 0x44d4d4d, (1U<<31) | 3602, 0x44d4d, 
+  (1U<<31) | 3604, 0x44d4d4d, (1U<<31) | 3602, 0x44d4d, (1U<<31) | 3604, 0x44d4d4d, (1U<<31) | 3602, 0x4c4d, 
+  (1U<<31) | 4199, 0x4c4d, (1U<<31) | 4199, 0x4c4d4d, (1U<<31) | 4214, 0x4c4d4d, (1U<<31) | 4214, 0x4c4d, 
+  (1U<<31) | 4199, 0x4c4d, (1U<<31) | 4199, 0x4c4c4c, 0x4d4d4d, 0x4c4d, (1U<<31) | 4199, 0x4c4d, 
+  (1U<<31) | 4199, 0x2e0, 0x2e0, 0x2e0, 0x2e0, 0x42e0, 0x52e0, 0x442e2e2e, 
+  0x442e2e2e, 0x442e2e2e, 0x442e2e2e, 0x442e2e2e, 0x442e2e2e, 0x4442e2e, 0x4452e2e, 0x4442e2e, 
+  0x4442e2e, 0x4442e2e, 0x4b4b4b, 0x2e0, 0x3939, 0x2a2a, 0x44, 0x2c2c2c, 
+  0x595959, 0x3b3b3b, 0x4a4a4a, 0x393939, 0x393939, 0x444, 0x393939, 0x393939, 
+  0x444, 0x444, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 
+  0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x444, 0x393939, 
+  0x2a2a2a, 0x393939, 0x2a2a2a, 0x2a2a2a, 0x2a2a2a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
+  0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x444, 0x2c2c2c, 0x42c2c, 
+  0x4444, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
+  0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
+  0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
+  0x4a4a4a, 0x4444, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 
+  0x43b3b, 0x44a4a, 0x2c2c2c2c, 0x59595959, 0x3b3b3b3b, 0x4a4a4a4a, 0x42c2c2c, 0x4595959, 
+  0x43b3b3b, 0x44a4a4a, 0x2c2c2c2c, 0x59595959, 0x3b3b3b3b, 0x4a4a4a4a, 0x42c2c2c, 0x4595959, 
+  0x43b3b3b, 0x44a4a4a, 0x44, 0x2c2c2c2c, 0x42c2c2c, 0x2c2c2c2c, 0x42c2c2c, 0x2c2c2c, 
+  0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c4, 
+  0x594, 0x3b4, 0x2c4, 0x4a4, 0x4, 0x2c2c2c2c, 0x42c2c2c, 0x2c2c2c, 
+  0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c4, 
+  0x594, 0x3b4, 0x2c4, 0x4a4, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
+  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x44, 0x2c2c2c, 0x595959, 0x3b3b3b, 
+  0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 
+  0x44a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
+  0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 
+  0x44a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x39390, 0x39390, 0x39390, 
+  0x2a2a4, 0x2a2a4, 0x2a2a4, 0x2a2a4, 0x2a2a4, 0x2a2a4, 0x2a2a0, 0x2a2a0, 
+  0x2a2a0, 0x42c4, 0x4595, 0x43b4, 0x44a4, 0x42c4, 0x4595, 0x43b4, 
+  0x44a4, 0x440, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 
+  0x3b3b3b, 0x4a4a4a, 0x4555, 0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x2c2c3b, 
+  0x3b3b4a, 0x393955, 0x4a4a5959, 0x2c2c3b3b, 0x3b3b4a4a, 0x4a4a5959, 0x2c2c3b3b, 0x3b3b4a4a, 
+  0x393955, 0x4455, 0x393955, 0x393955, 0x2a2a55, 0x2a2a55, 0x393955, 0x393955, 
+  0x393955, 0x4455, 0x393955, 0x393955, 0x2a2a55, 0x2a2a55, 0x4a4a5959, 0x2c2c3b3b, 
+  0x3b3b4a4a, 0x4a4a5959, 0x2c2c3b3b, 0x3b3b4a4a, 0x393955, 0x454, 0x454, 0x454, 
+  0x454, 0x454, 0x454, 0x898989, 0x7a7a7a, 0x898959, 0x7a7a4a, 0x898959, 
+  0x7a7a4a, 0x8959, 0x7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 
+  0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 
+  0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898989, 0x7a7a7a, 0x7a7a6b, 
+  0x89897a, 0x598989, 0x4a7a7a, 0x7a89, 0x6b7a, 0x7a89, 0x6b7a, 0x5989, 
+  0x4a7a, 0x5989, 0x4a7a, 0x4a89, 0x3b7a, 0x4a89, 0x3b7a, 0x42c, 
+  0x559, 0x43b, 0x44a, 0x8989, 0x7a7a, (1U<<31) | 5147, 0x7a7a7a7a, 0x898989, 
+  0x7a7a7a, 0x898989, 0x7a7a7a, 0x898989, 0x7a7a7a, 0x898989, 0x7a7a7a, (1U<<31) | 5147, 
+  0x7a7a7a7a, 0x898989, 0x7a7a7a, 0x8989, 0x7a7a, 0x8989, 0x7a7a, 0x8989, 
+  0x7a7a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 
+  0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x8989, 0x7a7a, 0x898989, 
+  0x7a7a7a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 
+  0x7a7a4a, 0x898959, 0x7a7a4a, 0x8959, 0x7a4a, 0x8959, 0x7a4a, 0x7a7a3b, 
+  0x89894a, 0x8959, 0x7a4a, 0x8959, 0x7a4a, 0x4a4a59, 0x2c2c3b, 0x3b3b4a, 
+  0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x2c2c3b, 
+  0x3b3b4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
+  0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
+  0x4a4a4a, 0x442c2c, 0x545959, 0x443b3b, 0x444a4a, 0x444, 0x2c42c2c, 0x5945959, 
+  0x3b43b3b, 0x4a44a4a, 0x42e4, 0x42e2c, 0x42e59, 0x42e3b, 0x42e4a, 0x42c, 
+  0x459, 0x43b, 0x44a, 0x42e4, 0x4444, 0x42e4, 0x4455, 0x3b3b3b3b, 
+  0x4a4a4a4a, 0x3b3b3b3b, 0x4a4a4a4a, 0x4455, 0x2c2c2c2c, 0x59595959, 0x3b3b3b3b, 0x4a4a4a4a, 
+  0x393955, 0x393955, 0x393955, 0x393955, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
+  0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
+  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 
+  0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
+  0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 
+  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
+  0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x444, 0x2c2c, 0x4455, 0x3b3b3b3b, 
+  0x4a4a4a4a, 0x3b3b3b3b, 0x4a4a4a4a, 0x4455, 0x2c2c2c2c, 0x59595959, 0x3b3b3b3b, 0x4a4a4a4a, 
+  0x455, 0x393939, 0x3b3b3b, 0x4a4a4a, 0x393939, 0x39394, 0x39394, 0x392a39, 
+  0x392a39, 0x393939, 0x444, 0x393939, 0x444, 0x3b3b3b, 0x4a4a4a, 0x393955, 
+  0x393955, 0x445, 0x445, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c, 
+  0x5959, 0x3b3b, 0x4a4a, 0x2c2c, 0x5959, 0x3b3b, 0x4a4a, 0x2c2c2c, 
+  0x42c2c, 0x2c2c2c, 0x42c2c, 0x393939, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
+  0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c, 0x5959, 0x3b3b, 0x4a4a, 
+  0x393939, 0x2a2a2a, 0x394, 0x394, 0x2a39, 0x2a39, 0x2a39, 0x2a39, 
+  0x2a39, 0x2a39, 0x2a39, 0x2a39, 0x39392a, 0x44439, 0x44439, 0x4439, 
+  0x39392a, 0x4439, 0x39392a, 0x4444, 0x2a4, 0x44, 0x439, 0x42a, 
+  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 
+  0x42c2c, 0x43b3b, 0x44a4a, 0x455, 0x43939, 0x42a2a, 0x43939, 0x444, 
+  0x43939, 0x42a2a, 0x43939, 0x42a2a, 0x444, 0x43939, 0x42a2a, 0x42c2c2c, 
+  0x4595959, 0x43b3b3b, 0x44a4a4a, 0x42c2c2c, 0x4595959, 0x43b3b3b, 0x44a4a4a, 0x2c2c2c, 
+  0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x42c2c, 
+  0x45959, 0x43b3b, 0x44a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 
+  0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 
+  0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 
+  0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 
+  0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x42e2c0, 
+  0x42e590, 0x42e3b0, 0x42e4a0, 0x393939, 0x393939, 0x444, 0x393939, 0x393939, 
+  0x444, 0x444, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 
+  0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 
+  0x3b3b3b, 0x4a4a4a, 0x393939, 0x2a2a2a, 0x393939, 0x2a2a2a, 0x2a2a2a, 0x2a2a2a, 
+  0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 
+  0x2c2c2c2c, 0x59595959, 0x3b3b3b3b, 0x4a4a4a4a, 0x440, 0x2c2c2c, 0x42c2c, 0x888, 
+  0x777, 0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 
+  0x888, 0x777, 0x777, 0x2fcf2f, 0x2fcf2f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 
+  0x1fcf1f, 0x1f1fcf1f, 0x1f1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 
+  0x1fcf1f, 0x74f7, 0x84f8, 0x44f4, 0x44f4, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 
+  0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x40, 0x40, 0x440, 
+  0x40, 0x40, 0x440, 0x0, 0x44, 0x44, 0x44, 0x85, 
+  0x74, 0x47, 0x58, 0x88, 0x77, 0x77, 0x4f0, 0x4f0, 
+  0x77, 0x77, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 
+  0x87, 0x87, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 
+  0x85, 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x84, 
+  0x85, 0x85, 0x85, 0x85, 0x777, 0x777, 0x888, 0x777, 
+  0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x888, 
+  0x777, 0x777, 0x88, 0x77, 0x77, 0x73, 0x73, 0x74, 
+  0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x75, 
+  0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x74, 
+  0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x75, 
+  0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x88, 
+  0x77, 0x77, 0x88, 0x77, 0x77, 0x8888, 0x7777, 0x7777, 
+  0x8888, 0x7777, 0x7777, 0x8888, 0x7777, 0x7777, 0x8888, 0x7777, 
+  0x7777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x4444, 
+  0x48, 0x48, 0x48, 0x48, 0x47, 0x47, 0x47, 0x47, 
+  0x2e1, 0x2e1, 0x2e1, 0x2e1, 0x51, 0x51, 0x51, 0x4cf2f, 
+  0x4cf1f, 0x4cf4f, 0x4cf2f, 0x4cf1f, 0x4cf4f, 0x88, 0x77, 0x77, 
+  0x58, 0x58, 0x58, 0x58, 0x57, 0x57, 0x57, 0x57, 
+  0x448, (1U<<31) | 2943, (1U<<31) | 4341, 0x444, 0x545, 0x0, 0x0, 0x0, 
+  0x88, 0x77, 0x33, 0x44, 0x55, 0xcf4f, 0x888, 0x777, 
+  0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x888, 
+  0x777, 0x777, 0x444, 0x444, 0x444, 0x555, 0x444, 0x555, 
+  0x4444, 0xcf4f, 0xcf4f, 0xcf4f, 0xcf4f, 0xcf4f, 0xcf4f, 0xcf4f, 
+  0xcf4f, 0xcf4f, 0x88, 0x88, 0x77, 0x77, 0x88, 0x77, 
+  0x77, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 0x4, 
+  0x5, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
+  0x4, 0x4f4, 0x444, 0x455, 0x455, 0x88, 0x77, 0x77, 
+  0x88, 0x77, 0x77, 0x4444, 0x4444, 0x88, 0x77, 0x77, 
+  0x4477, 0x4444, 0x4477, 0x4444, 0x4477, 0x4444, 0x44747, 0x44444, 
+  0x44747, 0x44444, 0x44747, 0x44444, 0x44747, 0x44444, 0x4477, 0x4444, 
+  0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x77, 0x77, 
+  0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 0x88, 0x77, 
+  0x77, 0x4453, 0x4453, 0x4453, 0x4454, 0x4454, 0x4454, 0x4455, 
+  0x4455, 0x4455, 0x4453, 0x4453, 0x4453, (1U<<31) | 3286, (1U<<31) | 3286, (1U<<31) | 3286, 
+  (1U<<31) | 3302, (1U<<31) | 3302, (1U<<31) | 3302, (1U<<31) | 3319, (1U<<31) | 3319, (1U<<31) | 3319, (1U<<31) | 3286, (1U<<31) | 3286, 
+  (1U<<31) | 3286, (1U<<31) | 3277, (1U<<31) | 3277, (1U<<31) | 3277, (1U<<31) | 3293, (1U<<31) | 3293, (1U<<31) | 3293, (1U<<31) | 3277, 
+  (1U<<31) | 3277, (1U<<31) | 3277, 0x453, 0x453, 0x453, 0x454, 0x454, 0x454, 
+  0x455, 0x455, 0x455, 0x453, 0x453, 0x453, (1U<<31) | 3633, (1U<<31) | 3633, 
+  (1U<<31) | 3633, (1U<<31) | 3647, (1U<<31) | 3647, (1U<<31) | 3647, (1U<<31) | 3662, (1U<<31) | 3662, (1U<<31) | 3662, (1U<<31) | 3633, 
+  (1U<<31) | 3633, (1U<<31) | 3633, (1U<<31) | 3625, (1U<<31) | 3625, (1U<<31) | 3625, (1U<<31) | 3639, (1U<<31) | 3639, (1U<<31) | 3639, 
+  (1U<<31) | 3625, (1U<<31) | 3625, (1U<<31) | 3625, 0x44453, 0x44453, 0x44453, 0x44454, 0x44454, 
+  0x44454, 0x44455, 0x44455, 0x44455, 0x44453, 0x44453, 0x44453, (1U<<31) | 3082, 
+  (1U<<31) | 3082, (1U<<31) | 3082, (1U<<31) | 3100, (1U<<31) | 3100, (1U<<31) | 3100, (1U<<31) | 3119, (1U<<31) | 3119, (1U<<31) | 3119, 
+  (1U<<31) | 3082, (1U<<31) | 3082, (1U<<31) | 3082, (1U<<31) | 3072, (1U<<31) | 3072, (1U<<31) | 3072, (1U<<31) | 3090, (1U<<31) | 3090, 
+  (1U<<31) | 3090, (1U<<31) | 3072, (1U<<31) | 3072, (1U<<31) | 3072, 0x4453, 0x4453, 0x4453, 0x4454, 
+  0x4454, 0x4454, 0x4455, 0x4455, 0x4455, 0x4453, 0x4453, 0x4453, 
+  (1U<<31) | 3286, (1U<<31) | 3286, (1U<<31) | 3286, (1U<<31) | 3302, (1U<<31) | 3302, (1U<<31) | 3302, (1U<<31) | 3319, (1U<<31) | 3319, 
+  (1U<<31) | 3319, (1U<<31) | 3286, (1U<<31) | 3286, (1U<<31) | 3286, (1U<<31) | 3277, (1U<<31) | 3277, (1U<<31) | 3277, (1U<<31) | 3293, 
+  (1U<<31) | 3293, (1U<<31) | 3293, (1U<<31) | 3277, (1U<<31) | 3277, (1U<<31) | 3277, 0x44453, 0x44453, 0x44453, 
+  0x44454, 0x44454, 0x44454, 0x44455, 0x44455, 0x44455, 0x44453, 0x44453, 
+  0x44453, (1U<<31) | 3082, (1U<<31) | 3082, (1U<<31) | 3082, (1U<<31) | 3100, (1U<<31) | 3100, (1U<<31) | 3100, (1U<<31) | 3119, 
+  (1U<<31) | 3119, (1U<<31) | 3119, (1U<<31) | 3082, (1U<<31) | 3082, (1U<<31) | 3082, (1U<<31) | 3072, (1U<<31) | 3072, (1U<<31) | 3072, 
+  (1U<<31) | 3090, (1U<<31) | 3090, (1U<<31) | 3090, (1U<<31) | 3072, (1U<<31) | 3072, (1U<<31) | 3072, 0x54, 0x54, 
+  0x54, 0x54, 0x54, 0x54, 0x34450, 0x34450, 0x34450, 0x44450, 
+  0x44450, 0x44450, 0x54450, 0x54450, 0x54450, 0x34450, 0x34450, 0x34450, 
+  0x334450, 0x334450, 0x334450, 0x444450, 0x444450, 0x444450, 0x554450, 0x554450, 
+  0x554450, 0x334450, 0x334450, 0x334450, 0x33334450, 0x33334450, 0x33334450, 0x44444450, 
+  0x44444450, 0x44444450, 0x33334450, 0x33334450, 0x33334450, 0x3450, 0x3450, 0x3450, 
+  0x4450, 0x4450, 0x4450, 0x5450, 0x5450, 0x5450, 0x3450, 0x3450, 
+  0x3450, 0x33450, 0x33450, 0x33450, 0x44450, 0x44450, 0x44450, 0x55450, 
+  0x55450, 0x55450, 0x33450, 0x33450, 0x33450, 0x3333450, 0x3333450, 0x3333450, 
+  0x4444450, 0x4444450, 0x4444450, 0x3333450, 0x3333450, 0x3333450, 0x344450, 0x344450, 
+  0x344450, 0x444450, 0x444450, 0x444450, 0x544450, 0x544450, 0x544450, 0x344450, 
+  0x344450, 0x344450, 0x3344450, 0x3344450, 0x3344450, 0x4444450, 0x4444450, 0x4444450, 
+  0x5544450, 0x5544450, 0x5544450, 0x3344450, 0x3344450, 0x3344450, (1U<<31) | 813, (1U<<31) | 813, 
+  (1U<<31) | 813, (1U<<31) | 3055, (1U<<31) | 3055, (1U<<31) | 3055, (1U<<31) | 813, (1U<<31) | 813, (1U<<31) | 813, 0x34450, 
+  0x34450, 0x34450, 0x44450, 0x44450, 0x44450, 0x54450, 0x54450, 0x54450, 
+  0x34450, 0x34450, 0x34450, 0x334450, 0x334450, 0x334450, 0x444450, 0x444450, 
+  0x444450, 0x554450, 0x554450, 0x554450, 0x334450, 0x334450, 0x334450, 0x33334450, 
+  0x33334450, 0x33334450, 0x44444450, 0x44444450, 0x44444450, 0x33334450, 0x33334450, 0x33334450, 
+  0x344450, 0x344450, 0x344450, 0x444450, 0x444450, 0x444450, 0x544450, 0x544450, 
+  0x544450, 0x344450, 0x344450, 0x344450, 0x3344450, 0x3344450, 0x3344450, 0x4444450, 
+  0x4444450, 0x4444450, 0x5544450, 0x5544450, 0x5544450, 0x3344450, 0x3344450, 0x3344450, 
+  (1U<<31) | 813, (1U<<31) | 813, (1U<<31) | 813, (1U<<31) | 3055, (1U<<31) | 3055, (1U<<31) | 3055, (1U<<31) | 813, (1U<<31) | 813, 
+  (1U<<31) | 813, 0x34450, 0x44450, 0x34450, 0x334450, 0x444450, 0x334450, 0x33334450, 
+  0x44444450, 0x33334450, 0x3450, 0x4450, 0x3450, 0x33450, 0x44450, 0x33450, 
+  0x3333450, 0x4444450, 0x3333450, 0x344450, 0x444450, 0x344450, 0x3344450, 0x4444450, 
+  0x3344450, (1U<<31) | 813, (1U<<31) | 3055, (1U<<31) | 813, 0x34450, 0x44450, 0x34450, 0x334450, 
+  0x444450, 0x334450, 0x33334450, 0x44444450, 0x33334450, 0x344450, 0x444450, 0x344450, 
+  0x3344450, 0x4444450, 0x3344450, (1U<<31) | 813, (1U<<31) | 3055, (1U<<31) | 813, 0x55, (1U<<31) | 4665, 
+  (1U<<31) | 4653, (1U<<31) | 4653, (1U<<31) | 4583, (1U<<31) | 4572, (1U<<31) | 4572, (1U<<31) | 4509, (1U<<31) | 3326, (1U<<31) | 4499, 
+  (1U<<31) | 3309, (1U<<31) | 4499, (1U<<31) | 3309, (1U<<31) | 4709, (1U<<31) | 4698, (1U<<31) | 4698, (1U<<31) | 4623, (1U<<31) | 4613, 
+  (1U<<31) | 4613, (1U<<31) | 4545, (1U<<31) | 3668, (1U<<31) | 4536, (1U<<31) | 3653, (1U<<31) | 4536, (1U<<31) | 3653, (1U<<31) | 4855, 
+  (1U<<31) | 4840, (1U<<31) | 4840, (1U<<31) | 4665, (1U<<31) | 4653, (1U<<31) | 4653, (1U<<31) | 4583, (1U<<31) | 3127, (1U<<31) | 4572, 
+  (1U<<31) | 3108, (1U<<31) | 4572, (1U<<31) | 3108, (1U<<31) | 4911, (1U<<31) | 4897, (1U<<31) | 4897, (1U<<31) | 4709, (1U<<31) | 4698, 
+  (1U<<31) | 4698, (1U<<31) | 4623, (1U<<31) | 3326, (1U<<31) | 4613, (1U<<31) | 3309, (1U<<31) | 4613, (1U<<31) | 3309, (1U<<31) | 5083, 
+  (1U<<31) | 5066, (1U<<31) | 5066, (1U<<31) | 4803, (1U<<31) | 4791, (1U<<31) | 4791, (1U<<31) | 4709, (1U<<31) | 3127, (1U<<31) | 4698, 
+  (1U<<31) | 3108, (1U<<31) | 4698, (1U<<31) | 3108, (1U<<31) | 4755, (1U<<31) | 4742, (1U<<31) | 4742, (1U<<31) | 4665, (1U<<31) | 4653, 
+  (1U<<31) | 4653, (1U<<31) | 4803, (1U<<31) | 4791, (1U<<31) | 4791, (1U<<31) | 4709, (1U<<31) | 4698, (1U<<31) | 4698, (1U<<31) | 4677, 
+  (1U<<31) | 4642, (1U<<31) | 4642, (1U<<31) | 4594, (1U<<31) | 4562, (1U<<31) | 4562, (1U<<31) | 4519, (1U<<31) | 3336, (1U<<31) | 4490, 
+  (1U<<31) | 3293, (1U<<31) | 4490, (1U<<31) | 3293, (1U<<31) | 4720, (1U<<31) | 4688, (1U<<31) | 4688, (1U<<31) | 4633, (1U<<31) | 4604, 
+  (1U<<31) | 4604, (1U<<31) | 4554, (1U<<31) | 3677, (1U<<31) | 4528, (1U<<31) | 3639, (1U<<31) | 4528, (1U<<31) | 3639, (1U<<31) | 4870, 
+  (1U<<31) | 4826, (1U<<31) | 4826, (1U<<31) | 4677, (1U<<31) | 4642, (1U<<31) | 4642, (1U<<31) | 4594, (1U<<31) | 3138, (1U<<31) | 4562, 
+  (1U<<31) | 3090, (1U<<31) | 4562, (1U<<31) | 3090, (1U<<31) | 4925, (1U<<31) | 4884, (1U<<31) | 4884, (1U<<31) | 4720, (1U<<31) | 4688, 
+  (1U<<31) | 4688, (1U<<31) | 4633, (1U<<31) | 3336, (1U<<31) | 4604, (1U<<31) | 3293, (1U<<31) | 4604, (1U<<31) | 3293, (1U<<31) | 5100, 
+  (1U<<31) | 5050, (1U<<31) | 5050, (1U<<31) | 4815, (1U<<31) | 4780, (1U<<31) | 4780, (1U<<31) | 4720, (1U<<31) | 3138, (1U<<31) | 4688, 
+  (1U<<31) | 3090, (1U<<31) | 4688, (1U<<31) | 3090, (1U<<31) | 4768, (1U<<31) | 4730, (1U<<31) | 4730, (1U<<31) | 4677, (1U<<31) | 4642, 
+  (1U<<31) | 4642, (1U<<31) | 4815, (1U<<31) | 4780, (1U<<31) | 4780, (1U<<31) | 4720, (1U<<31) | 4688, (1U<<31) | 4688, (1U<<31) | 4272, 
+  0x4f5, (1U<<31) | 4623, (1U<<31) | 4613, (1U<<31) | 4613, (1U<<31) | 4623, (1U<<31) | 4613, (1U<<31) | 4613, (1U<<31) | 4623, 
+  (1U<<31) | 4613, (1U<<31) | 4613, (1U<<31) | 4623, (1U<<31) | 4613, (1U<<31) | 4613, (1U<<31) | 4633, (1U<<31) | 4604, (1U<<31) | 4604, 
+  (1U<<31) | 4633, (1U<<31) | 4604, (1U<<31) | 4604, (1U<<31) | 4633, (1U<<31) | 4604, (1U<<31) | 4604, (1U<<31) | 4633, (1U<<31) | 4604, 
+  (1U<<31) | 4604, 0x88, 0x77, 0x77, 0x54, 0x54, 0x54, 0x54, 
+  0x54, 0x54, 0x54, 0x54, 0x48, 0x48, 0x48, 0x48, 
+  0x47, 0x47, 0x47, 0x47, 0x58, 0x58, 0x58, 0x58, 
+  0x57, 0x57, 0x57, 0x57, 0x11, 0x141, 0x11, 0x141, 
+  0x14, 0x144, 0x11, 0x141, (1U<<31) | 4228, (1U<<31) | 3547, (1U<<31) | 4228, (1U<<31) | 3547, 
+  (1U<<31) | 4228, (1U<<31) | 3547, (1U<<31) | 4228, (1U<<31) | 3547, (1U<<31) | 4248, (1U<<31) | 4260, (1U<<31) | 3568, (1U<<31) | 3581, 
+  (1U<<31) | 4248, (1U<<31) | 4260, (1U<<31) | 3568, (1U<<31) | 3581, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4378, (1U<<31) | 4938, (1U<<31) | 3779, (1U<<31) | 3792, 
+  (1U<<31) | 4378, (1U<<31) | 4938, (1U<<31) | 3779, (1U<<31) | 3792, (1U<<31) | 4228, (1U<<31) | 3547, (1U<<31) | 4228, (1U<<31) | 3547, 
+  (1U<<31) | 4228, (1U<<31) | 3547, (1U<<31) | 4228, (1U<<31) | 3547, (1U<<31) | 4248, (1U<<31) | 4260, (1U<<31) | 3568, (1U<<31) | 3581, 
+  (1U<<31) | 4248, (1U<<31) | 4260, (1U<<31) | 3568, (1U<<31) | 3581, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4378, (1U<<31) | 4938, (1U<<31) | 3779, (1U<<31) | 3792, 
+  (1U<<31) | 4378, (1U<<31) | 4938, (1U<<31) | 3779, (1U<<31) | 3792, (1U<<31) | 4228, (1U<<31) | 3547, (1U<<31) | 4228, (1U<<31) | 3547, 
+  (1U<<31) | 4228, (1U<<31) | 3547, (1U<<31) | 4228, (1U<<31) | 3547, (1U<<31) | 4248, (1U<<31) | 4260, (1U<<31) | 3568, (1U<<31) | 3581, 
+  (1U<<31) | 4248, (1U<<31) | 4260, (1U<<31) | 3568, (1U<<31) | 3581, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4390, (1U<<31) | 4390, (1U<<31) | 4950, (1U<<31) | 4950, 
+  (1U<<31) | 4440, (1U<<31) | 4440, (1U<<31) | 5000, (1U<<31) | 5000, (1U<<31) | 4378, (1U<<31) | 4938, (1U<<31) | 3779, (1U<<31) | 3792, 
+  (1U<<31) | 4378, (1U<<31) | 4938, (1U<<31) | 3779, (1U<<31) | 3792, (1U<<31) | 5494, 0x595959, 0x595959, 0x595959, 
+  0x595959, 0x2c2c2c2c, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x5959, 0x445959, 
+  0x444a4a, 0x40, 0x0, 0x442e0, 0x442e0, 0x442e0, 0x442e0, 0x2e2c, 
+  0x2e3b, 0x2e4a, 0x2e2c, 0x2e2c, 0x2e4a, 0x2e4a, 0x3b, 0x4a0, 
+  0x2e2c0, 0x2e3b0, 0x2e4a0, 0x2e4a0, 0x2e4a0, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 
+  (1U<<31) | 5483, 0x4a4a4a, (1U<<31) | 5481, (1U<<31) | 5481, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 
+  0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 
+  0x2c2c59, 0x44a7a, 0x44a7a, 0x2c4, 0x7a7a4a, 0x7a7a44, 0x7a7a4a, 0x7a7a44, 
+  0x2c2c2c, 0x2c2c44, 0x595959, 0x595944, 0x3b3b3b, 0x3b3b44, 0x4a4a4a, 0x4a4a44, 
+  0x7a7a4a, 0x7a7a44, 0x7a7a4a, 0x7a7a44, 0x2c2c2c, 0x2c2c44, 0x595959, 0x595944, 
+  0x3b3b3b, 0x3b3b44, 0x4a4a4a, 0x4a4a44, 0x2c2c2c, 0x2c2c44, 0x595959, 0x595944, 
+  0x3b3b3b, 0x3b3b44, 0x4a4a4a, 0x4a4a44, 0x2c2c2c, 0x2c2c44, 0x3b3b3b, 0x3b3b44, 
+  0x4a4a4a, 0x4a4a44, 0x2c2c2c, 0x2c2c44, 0x3b3b3b, 0x3b3b44, 0x4a4a4a, 0x4a4a44, 
+  0x47a4a, 0x47a4a, 0x2c4, 0x7a7a, 0x2c2c, 0x7a7a, 0x7a7a7a7a, 0x7a7a7a, 
+  0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
+  0x3b3b3b3b, 0x3b3b3b3b, 0x7a7a7a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 
+  0x595959, 0x3b3b3b, 0x4a4a4a, 0x3b3b3b3b, 0x4a2c2c4a, 0x4a3b3b4a, 0x4a3b3b4a, 0x4a2c2c4a, 
+  0x4a3b3b4a, 0x4a3b3b4a, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 
+  0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x7a7a7a7a, 0x2c4a4a4a, 
+  0x4a4a3b, 0x59594a, 0x59594a, 0x3b3b2c, 0x3b3b2c, 0x4a4a3b, 0x4a4a3b, 0x59594a, 
+  0x3b3b2c, 0x4a4a3b, 0x5959, (1U<<31) | 5485, 0x4a4a, 0x7a7a, 0x7a7a, 0x7a7a, 
+  0x7a7a, 0x7a7a, 0x2c2c2c, 0x595959, 0x59595959, 0x595959, 0x3b3b3b, 0x4a4a4a, 
+  0x4a4a4a4a, 0x4a4a4a, 0x7a7a, 0x4a4a4a4a, 0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 
+  0x2c2c2c, 0x4a4a4a, 0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 
+  0x4a4a4a, 0x2c2c2c, 0x4a4a4a, (1U<<31) | 5483, 0x4a4a4a, (1U<<31) | 5481, (1U<<31) | 5481, 0x2c2c2c, 
+  0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 0x4a4a4a, 0x4a2c4a, 0x4a3b4a, 
+  0x4a2c4a, 0x4a4a4a, 0x3b4a, 0x2c3b, 0x3b4a, 0x4a59, 0x3b4a, 0x2c3b, 
+  0x3b4a, 0x4a59, 0x555, 0x1f0, 0x2e0, 0x2e0, 0x2e0, 0x2e0, 
+  0x2e0, 0x2e0, 0x2e0, 0x2e0, 0x555, 0x555, (1U<<31) | 5494, 0x444, 
+  0x444, (1U<<31) | 5493, 0x5, 0x5, 0x5, 0x5, 0x1, 0x0, 
+  0x1f0, (1U<<31) | 5494, 0x8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 
+  0x8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 
+  0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 0x48a8a8a, (1U<<31) | 5169, (1U<<31) | 5169, 
+  (1U<<31) | 5169, (1U<<31) | 5169, 0x8a8a8a, 0x8a8a8a, 0x8a8a, 0x8a8a, (1U<<31) | 5169, (1U<<31) | 5169, 
+  (1U<<31) | 5169, (1U<<31) | 5169, (1U<<31) | 5169, 0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 
+  0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, (1U<<31) | 5169, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 
+  (1U<<31) | 5169, (1U<<31) | 5169, 0x8a8a8a, 0x8a8a8a, (1U<<31) | 5169, (1U<<31) | 5169, (1U<<31) | 5169, (1U<<31) | 5169, 
+  (1U<<31) | 5169, (1U<<31) | 5169, 0x48a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 
+  0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 
+  0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a0, 0x2e8a0, 0x2e8a0, 0x2e8a0, 0x2e8a0, 
+  0x2e8a0, 0x2e8a0, 0x2e8a0, 0x2e8a0, 0x2e8a0, 0x50, 0x50, 0x50, 
+  0x50, (1U<<31) | 5495, (1U<<31) | 5494, 0x0, 0x44, 0x4444, 0x4444, 0x4444, 
+  0x4444, 0x44, 0x4, 0x44, 0x4, 0x4, 0x44, 0x4, 
+  (1U<<31) | 5490, 0x44, 0x4, 0x5, 0x2e89, 0x2e89, 0x52e4a, 0x52e4a, 
+  0x2e4a, 0x2e4a, 0x2e890, 0x2e890, 0x52e4a0, 0x52e4a0, 0x2e4a0, 0x2e4a0, 
+  0x888, 0x888, 0x898959, 0x898944, 0x7a7a4a, 0x7a7a44, 0x898959, 0x898944, 
+  0x7a7a4a, 0x7a7a44, 0x898959, 0x898944, 0x7a7a4a, 0x7a7a44, 0x897a, 0x894a, 
+  0x894a, 0x3b7a, 0x7a89, 0x7a7a, 0x597a, 0x4a89, 0x597a, 0x4a89, 
+  0x898989, 0x7a7a7a, 0x595989, 0x4a4a7a, 0x898989, 0x7a7a7a, 0x898989, 0x7a7a7a, 
+  0x8989, 0x8989, 0x7a7a, 0x7a7a, 0x8989, 0x7a7a, 0x48959, 0x47a4a, 
+  0x8959, 0x7a4a, 0x8959, 0x7a4a, 0x45959, 0x4594a4a, 0x4a4a4a, 0x7a7a, 
+  (1U<<31) | 3041, (1U<<31) | 3041, 0x7a7a7, 0x0, (1U<<31) | 555, 0x70, 0x44a4a0, 0x4, 
+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x2f2f, 0x2f2f, 
+  0x4447a0, 0x447a0, (1U<<31) | 3041, (1U<<31) | 3041, (1U<<31) | 3041, (1U<<31) | 3041, (1U<<31) | 3027, (1U<<31) | 3041, 
+  (1U<<31) | 3041, (1U<<31) | 3027, 0x4, 0x4, 0x42e4, 0x5e50, 0x40, 0x40, 
+  0x50, 0x42e4, 0x42e4, 0x42e0, 0x52f4, 0x4, 0x2c2c2c, 0x2c2c2c2c, 
+  0x4a4a4a, 0x595959, 0x3b3b3b, 0x2c2c2c, 0x2c2c2c2c, 0x2c2c2c, 0x2c2c2c, 0x4a4a4a, 
+  0x595959, 0x3b3b3b, 0x2c2c2c, 0x4a4a4a, 0x595959, 0x3b3b3b, 0x2c2c59, (1U<<31) | 664, 
+  (1U<<31) | 3977, (1U<<31) | 4369, (1U<<31) | 852, (1U<<31) | 664, (1U<<31) | 3977, (1U<<31) | 4369, (1U<<31) | 852, (1U<<31) | 664, 
+  (1U<<31) | 3977, (1U<<31) | 4369, (1U<<31) | 852, 0x4a4a4a, (1U<<31) | 1362, (1U<<31) | 3377, (1U<<31) | 3705, (1U<<31) | 1515, 
+  0x42c2c, 0x44a4a, 0x45959, 0x43b3b, 0x2c2c2c, 0x4a4a4a, 0x595959, 0x3b3b3b, 
+  0x42c2c2c, (1U<<31) | 1384, 0x44a4a4a, (1U<<31) | 3355, 0x43b3b3b, (1U<<31) | 1537, 0x42c2c2c, (1U<<31) | 1384, 
+  0x44a4a4a, (1U<<31) | 3355, 0x43b3b3b, (1U<<31) | 1537, (1U<<31) | 5138, (1U<<31) | 5116, (1U<<31) | 5138, (1U<<31) | 5138, 
+  (1U<<31) | 5116, (1U<<31) | 5116, 0x2c2c2c, (1U<<31) | 664, 0x4a4a4a, (1U<<31) | 3977, 0x3b3b3b, (1U<<31) | 852, 
+  0x2c2c2c, (1U<<31) | 664, 0x4a4a4a, (1U<<31) | 3977, 0x3b3b3b, (1U<<31) | 852, 0x2c2c2c, (1U<<31) | 664, 
+  0x4a4a4a, (1U<<31) | 3977, 0x3b3b3b, (1U<<31) | 852, 0x2c2c2c, (1U<<31) | 664, 0x4a4a4a, (1U<<31) | 3977, 
+  0x3b3b3b, (1U<<31) | 852, 0x448989, 0x447a7a, 0x4898989, 0x47a7a7a, 0x4898989, 0x47a7a7a, 
+  (1U<<31) | 3883, (1U<<31) | 3805, 0x3b2c2c3b, 0x594a4a59, 0x2c59592c, 0x4a3b3b4a, 0x2c2c3b, 0x4a4a59, 
+  0x59592c, 0x3b3b4a, 0x2c2c, (1U<<31) | 673, 0x4a4a, (1U<<31) | 3961, 0x3b3b, (1U<<31) | 861, 
+  0x42e2c, 0x2e42c, 0x2e42c, 0x3b2c2c3b, 0x594a4a59, 0x4a3b3b4a, 0x2c2c2c2c, 0x4a4a4a4a, 
+  0x3b3b3b3b, 0x3b2c2c3b, 0x594a4a59, 0x4a3b3b4a, 0x2c2c2c2c, 0x4a4a4a4a, 0x3b3b3b3b, 0x3b2c2c3b, 
+  0x594a4a59, 0x4a3b3b4a, 0x3b2c2c3b, 0x594a4a59, 0x4a3b3b4a, 0x2c2c3b, 0x4a4a59, 0x3b3b4a, 
+  0x2c2c2c, 0x4a4a4a, 0x3b3b3b, 0x2c2c3b, 0x4a4a59, 0x3b3b4a, 0x2c2c2c, 0x4a4a4a, 
+  0x3b3b3b, 0x2c2c3b, 0x4a4a59, 0x3b3b4a, 0x2c2c3b, 0x4a4a59, 0x3b3b4a, (1U<<31) | 1394, 
+  0x4595959, 0x2c2c2c2c, 0x4a4a3b, (1U<<31) | 3968, 0x59594a, (1U<<31) | 4360, 0x3b3b2c, (1U<<31) | 843, 
+  0x4a4a3b, (1U<<31) | 3968, 0x59594a, (1U<<31) | 4360, 0x3b3b2c, (1U<<31) | 843, 0x2c2c2c2c, 0x2c2c2c2c, 
+  0x2c2c2c, 0x4a4a4a, 0x595959, 0x3b3b3b, 0x2c2c2c, 0x2c2c2c, 0x2c2c2c, 0x42c2c2c, 
+  0x2c2c2c, 0x2c2c2c, 0x2c2c2c, 0x2c2c2c, 0x2c2c2c, 0x2e42c0, (1U<<31) | 1362, (1U<<31) | 1372, 
+  (1U<<31) | 3377, (1U<<31) | 3365, (1U<<31) | 1515, (1U<<31) | 1525, (1U<<31) | 1362, (1U<<31) | 1372, (1U<<31) | 3377, (1U<<31) | 3365, 
+  (1U<<31) | 1515, (1U<<31) | 1525, 0x2e42c0, 0x2c2c4a, 0x4a4a59, 0x3b3b59, 0x3b3b4a, 0x4a4a2c, 
+  0x59592c, 0x2c2c4, 0x2c3b, 0x4a59, 0x3b4a, 0x2c3b, 0x4a59, 0x2c3b, 
+  0x4a59, 0x3b4a, 0x3b4a, 0x2c3b, 0x4a59, 0x3b4a, 0x54e5, 0x544e4, 
+  0x555e4, 0x42e, 0x1f, (1U<<31) | 5388, (1U<<31) | 5383, 0x1f1f, 0x40, 0x2e, 
+  0x1f41f, 0x41f, 0x1f41f, 0x41f, 0x0, 0x2e40, (1U<<31) | 5372, (1U<<31) | 5369, 
+  (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, 
+  (1U<<31) | 5369, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5369, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5369, 
+  (1U<<31) | 5372, (1U<<31) | 5369, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5369, (1U<<31) | 5369, 0x2e4422, 0x2e5522, 
+  0x2e4422, 0x2e5522, 0x595959, 0x5a5a5a, 0x5b5b5b, 0x595959, 0x5a5a5a, 0x5b5b5b, 
+  0x595959, 0x5a5a5a, 0x5b5b5b, 0x595959, 0x5a5a5a, 0x5b5b5b, 0x5959, 0x25959, 
+  0x8a8a8a, 0x7b7b7b, (1U<<31) | 5169, 0x7b7b7b7b, 0x28a8a8a, 0x27b7b7b, 0x8a7a, 0x8a4a, 
+  0x7b4b, 0x8a4a, 0x7b4b, 0x27b7b7b, 0x8a8a8a, 0x7b7b7b, 0x8a8a8a, 0x7b7b7b, 
+  0x2e2d, 0x592e89, 0x5a2e8a, 0x4a2e7a, 0x4b2e7b, 0x89592e0, 0x8a5a2e0, 0x7a4a2e0, 
+  0x7b4b2e0, 0x8a8a8a, 0x7b7b7b, 0x8a8a8a, 0x7b7b7b, 0x8a4, 0x7b4, 0x5a5a4, 
+  0x5a5a4, 0x5a5a4, 0x7b7b, 0x48a8a, 0x47b7b, 0x7b7b, 0x598989, 0x5a8a8a, 
+  0x4a7a7a, 0x4b7b7b, 0x89894, 0x8a8a4, 0x7a7a4, 0x7b7b4, 0x89894, 0x8a8a4, 
+  0x7a7a4, 0x7b7b4, 0x89894, 0x8a8a4, 0x7a7a4, 0x7b7b4, 0x0, 0x0, 
+  (1U<<31) | 275, (1U<<31) | 331, (1U<<31) | 570, (1U<<31) | 615, (1U<<31) | 476, (1U<<31) | 533, (1U<<31) | 367, (1U<<31) | 411, 
+  (1U<<31) | 297, (1U<<31) | 309, (1U<<31) | 582, (1U<<31) | 627, (1U<<31) | 488, (1U<<31) | 500, (1U<<31) | 379, (1U<<31) | 423, 
+  0x4a2e4a, 0x4b2e4b, 0x592e59, 0x5a2e5a, 0x4a4a2e0, 0x4b4b2e0, 0x59592e0, 0x5a5a2e0, 
+  0x22d2d3c, 0x4b4b3c, 0x3c3c2d, 0x4b4b3c, 0x3c3c2d, 0x2d2d2d, 0x3c3c3c, 0x2d2d2d, 
+  0x3c3c3c, 0x2d2d2d2d, 0x4b4b4b, 0x4b7b7b, 0x4b4b4b, 0x3c3c3c, 0x3c3c3c, 0x4b4b4b, 
+  0x3c3c3c, 0x3c3c3c, 0x2d2d3c, 0x3c3c4b, 0x2d4, 0x3c3c3c, 0x3c3c3c, 0x3c3c3c, 
+  0x2d2d5a, 0x2d2d2d, 0x2d2d2d, 0x4b4b4b, 0x3c3c3c, 0x4a4b4b, 0x595a5a, 0x3b3c3c, 
+  0x44b4b, 0x45a5a, 0x43c3c, 0x4a4a4a, 0x4b4b4b, 0x595959, 0x5a5a5a, 0x4a4b4b, 
+  0x3b3c3c, 0x44b4b, 0x43c3c, 0x4a4a4a, 0x4b4b4b, 0x4a4b4b, 0x595a5a, 0x3b3c3c, 
+  0x44b4b, 0x45a5a, 0x43c3c, 0x4a4a4a, 0x4b4b4b, 0x595959, 0x5a5a5a, 0x2d2d2d, 
+  0x3c3c3c, 0x2d2d2d, 0x3c3c3c, 0x48b8b8b, 0x47c7c7c, 0x259, 0x25a, 0x25b, 
+  0x34a, 0x34b, 0x34c, 0x4898919, 0x48a8a1a, 0x448b8b1b, 0x47a7a1a, 0x47b7b1b, 
+  0x447c7c1c, 0x458989, 0x447a7a, 0x457a7a, 0x4894, 0x4895, 0x4894, 0x4895, 
+  0x47a4, 0x47a5, 0x47a4, 0x47a5, 0x447a7a, 0x458989, 0x457a7a, 0x42c2c3b, 
+  0x42d2d3c, (1U<<31) | 1450, 0x48b8b8b, 0x47c7c7c, 0x428b8b8b, 0x437c7c7c, 0x48919, 0x48a1a, 
+  0x48b1b, 0x47a1a, 0x47b1b, 0x47c1c, (1U<<31) | 1128, (1U<<31) | 1470, (1U<<31) | 1106, (1U<<31) | 1481, 
+  (1U<<31) | 1260, (1U<<31) | 1227, (1U<<31) | 1238, (1U<<31) | 1249, (1U<<31) | 1172, (1U<<31) | 1150, (1U<<31) | 1216, (1U<<31) | 1194, 
+  (1U<<31) | 1161, (1U<<31) | 1139, (1U<<31) | 1205, (1U<<31) | 1183, (1U<<31) | 1073, (1U<<31) | 1040, (1U<<31) | 1084, (1U<<31) | 1051, 
+  (1U<<31) | 1062, (1U<<31) | 1029, (1U<<31) | 1117, (1U<<31) | 1095, 0x442e4b20, 0x442e4c30, 0x442e5b20, 0x442e5b20, 
+  (1U<<31) | 1328, (1U<<31) | 1283, 0x42489892, 0x4247a7a2, 0x32c2c2c, 0x42d2d2d, (1U<<31) | 4326, 0x24a4a4a, 
+  0x24b4b4b, 0x34c4c4c, 0x2898989, 0x28a8a8a, 0x28b8b8b, 0x27a7a7a, 0x27b7b7b, 0x37c7c7c, 
+  0x2595959, 0x25a5a5a, 0x25b5b5b, 0x23b3b3b, 0x33c3c3c, 0x43d3d3d, 0x24a4a4a, 0x24b4b4b, 
+  0x34c4c4c, 0x2595959, 0x25a5a5a, 0x25b5b5b, 0x437c4c7c, 0x24a894a, 0x424b8b4b, 0x27a897a, 
+  0x427b8b7b, 0x2598959, 0x25a8a5a, 0x425b8b5b, 0x24a894a, 0x24a8a4a, 0x424b8b4b, 0x2598959, 
+  0x25a8a5a, 0x425b8b5b, 0x24a7a4a, 0x24b7b4b, 0x434c7c4c, 0x428b7b8b, 0x2597a59, 0x25a7a5a, 
+  0x425b7b5b, 0x24a7a4a, 0x24b7b4b, 0x434c7c4c, 0x2597a59, 0x25a7a5a, 0x425b7b5b, 0x428b5b8b, 
+  0x27a597a, 0x27a5a7a, 0x427b5b7b, (1U<<31) | 1294, (1U<<31) | 1317, 0x24a894a, 0x424b8b4b, 0x2598959, 
+  0x25a8a5a, 0x425b8b5b, 0x24a894a, 0x24a8a4a, 0x424b8b4b, 0x2598959, 0x25a8a5a, 0x425b8b5b, 
+  0x434c7c4c, 0x2597a59, 0x25a7a5a, 0x425b7b5b, 0x24a7a4a, 0x24b7b4b, 0x434c7c4c, 0x2597a59, 
+  0x25a7a5a, 0x425b7b5b, 0x437c4c7c, 0x428b5b8b, 0x27a597a, 0x27a5a7a, 0x427b5b7b, (1U<<31) | 1328, 
+  (1U<<31) | 1283, 0x32c2c2c, 0x42d2d2d, (1U<<31) | 4326, 0x24a4a4a, 0x24b4b4b, 0x34c4c4c, 0x2898989, 
+  0x28a8a8a, 0x28b8b8b, 0x27a7a7a, 0x27b7b7b, 0x37c7c7c, 0x2595959, 0x25a5a5a, 0x25b5b5b, 
+  0x23b3b3b, 0x33c3c3c, 0x43d3d3d, (1U<<31) | 253, (1U<<31) | 264, (1U<<31) | 1017, (1U<<31) | 231, (1U<<31) | 242, 
+  (1U<<31) | 1458, (1U<<31) | 1005, (1U<<31) | 993, 0x24892, 0x247a2, 0x2898989, 0x28a8a8a, 0x428b8b8b, 
+  0x27a7a7a, 0x27b7b7b, 0x437c7c7c, (1U<<31) | 1328, (1U<<31) | 1283, 0x28948989, 0x28a48a8a, (1U<<31) | 1341, 
+  0x27a47a7a, 0x27b47b7b, (1U<<31) | 1494, (1U<<31) | 1305, (1U<<31) | 1271, (1U<<31) | 1328, (1U<<31) | 1283, (1U<<31) | 1328, 
+  (1U<<31) | 1283, (1U<<31) | 1328, (1U<<31) | 1283, (1U<<31) | 803, (1U<<31) | 1404, (1U<<31) | 4324, (1U<<31) | 211, (1U<<31) | 823, 
+  (1U<<31) | 1547, (1U<<31) | 803, (1U<<31) | 1404, (1U<<31) | 4324, (1U<<31) | 211, (1U<<31) | 823, (1U<<31) | 1547, 0x22c4a2c, 
+  0x22c4b2c, 0x32c4c2c, 0x24a2e0, 0x24b2e0, 0x34c2e0, 0x23b4a3b, 0x23b4b3b, 0x33c4c3c, 
+  0x24a2e0, 0x24b2e0, 0x34c2e0, 0x22c592c, 0x22c5a2c, 0x22c5b2c, 0x2592e0, 0x25a2e0, 
+  0x25b2e0, 0x24a594a, 0x24a5a4a, 0x24b5b4b, 0x2592e0, 0x25a2e0, 0x25b2e0, 0x23b593b, 
+  0x23b5a3b, 0x23b5b3b, 0x2592e0, 0x25a2e0, 0x25b2e0, 0x22c3b2c, 0x32c3c2c, 0x42d3d2d, 
+  0x23b2e0, 0x33c2e0, 0x43d2e0, 0x22c4a2c, 0x22c4b2c, 0x32c4c2c, 0x24a2e0, 0x24b2e0, 
+  0x34c2e0, 0x23b4a3b, 0x23b4b3b, 0x33c4c3c, 0x24a2e0, 0x24b2e0, 0x34c2e0, 0x22c592c, 
+  0x22c5a2c, 0x22c5b2c, 0x2592e0, 0x25a2e0, 0x25b2e0, 0x24a594a, 0x24a5a4a, 0x24b5b4b, 
+  0x2592e0, 0x25a2e0, 0x25b2e0, 0x23b593b, 0x23b5a3b, 0x23b5b3b, 0x2592e0, 0x25a2e0, 
+  0x25b2e0, 0x22c3b2c, 0x32c3c2c, 0x42d3d2d, 0x23b2e0, 0x33c2e0, 0x43d2e0, 0x22c4a2c, 
+  0x22c4b2c, 0x32c4c2c, 0x24a2e0, 0x24b2e0, 0x34c2e0, 0x23b4a3b, 0x23b4b3b, 0x33c4c3c, 
+  0x24a2e0, 0x24b2e0, 0x34c2e0, 0x22c592c, 0x22c5a2c, 0x22c5b2c, 0x2592e0, 0x25a2e0, 
+  0x25b2e0, 0x24a594a, 0x24a5a4a, 0x24b5b4b, 0x2592e0, 0x25a2e0, 0x25b2e0, 0x23b593b, 
+  0x23b5a3b, 0x23b5b3b, 0x2592e0, 0x25a2e0, 0x25b2e0, 0x22c3b2c, 0x32c3c2c, 0x42d3d2d, 
+  0x23b2e0, 0x33c2e0, 0x43d2e0, (1U<<31) | 803, (1U<<31) | 1404, (1U<<31) | 4324, (1U<<31) | 803, (1U<<31) | 1404, 
+  (1U<<31) | 4324, (1U<<31) | 211, (1U<<31) | 823, (1U<<31) | 1547, (1U<<31) | 803, (1U<<31) | 1404, (1U<<31) | 4324, (1U<<31) | 211, 
+  (1U<<31) | 823, (1U<<31) | 1547, (1U<<31) | 559, (1U<<31) | 604, (1U<<31) | 1339, (1U<<31) | 465, (1U<<31) | 522, (1U<<31) | 1492, 
+  (1U<<31) | 2961, (1U<<31) | 2949, 0x28948989, 0x28a48a8a, (1U<<31) | 1341, 0x27a47a7a, 0x27b47b7b, (1U<<31) | 1494, 
+  (1U<<31) | 2961, (1U<<31) | 2949, 0x28948989, 0x28a48a8a, (1U<<31) | 1341, 0x27a47a7a, 0x27b47b7b, (1U<<31) | 1494, 
+  (1U<<31) | 2961, (1U<<31) | 2949, (1U<<31) | 594, (1U<<31) | 639, (1U<<31) | 1351, (1U<<31) | 512, (1U<<31) | 545, (1U<<31) | 1504, 
+  (1U<<31) | 1328, (1U<<31) | 1283, (1U<<31) | 1328, (1U<<31) | 1283, (1U<<31) | 1328, (1U<<31) | 1283, 0x27a3b7a, 0x27b3b7b, 
+  0x437c3c7c, 0x23b47a3b, 0x23b47b3b, 0x33c47c3c, (1U<<31) | 287, (1U<<31) | 343, (1U<<31) | 833, (1U<<31) | 391, 
+  (1U<<31) | 435, (1U<<31) | 455, (1U<<31) | 211, (1U<<31) | 823, (1U<<31) | 1547, (1U<<31) | 287, (1U<<31) | 343, (1U<<31) | 833, 
+  (1U<<31) | 391, (1U<<31) | 435, (1U<<31) | 455, (1U<<31) | 211, (1U<<31) | 823, (1U<<31) | 1547, 0x32c2c3, 0x42d2d4, 
+  (1U<<31) | 4334, (1U<<31) | 253, (1U<<31) | 264, (1U<<31) | 1017, (1U<<31) | 231, (1U<<31) | 242, (1U<<31) | 1458, (1U<<31) | 1005, 
+  (1U<<31) | 993, (1U<<31) | 287, (1U<<31) | 343, (1U<<31) | 833, (1U<<31) | 391, (1U<<31) | 435, (1U<<31) | 455, (1U<<31) | 211, 
+  (1U<<31) | 823, (1U<<31) | 1547, (1U<<31) | 287, (1U<<31) | 343, (1U<<31) | 833, (1U<<31) | 391, (1U<<31) | 435, (1U<<31) | 455, 
+  (1U<<31) | 211, (1U<<31) | 823, (1U<<31) | 1547, 0x48b8b8b, 0x47c7c7c, 0x48b8b8b, 0x47c7c7c, 0x48b8b8b, 
+  0x47c7c7c, 0x4c4c3d, (1U<<31) | 868, 0x4c4c3d, (1U<<31) | 868, 0x5a8a8a, 0x5b8b8b, 0x5a5a5a, 
+  0x5b5b5b, 0x3b3b3b, 0x3c3c3c, 0x3d3d3d, 0x2c2c2c, 0x2d2d2d, (1U<<31) | 777, 0x4c7c7c, 
+  0x4c4c4c, (1U<<31) | 784, 0x3d3d4c, 0x3d3d3d, 0x3d3d3d, 0x3d3d3d, 0x44a4a, 0x44b4b, 
+  0x44c4c, 0x45959, 0x45a5a, 0x45b5b, 0x4a4a4a, 0x4b4b4b, 0x4c4c4c, 0x595959, 
+  0x5a5a5a, 0x5b5b5b, 0x44a4a, 0x44b4b, 0x44c4c, 0x45959, 0x45a5a, 0x45b5b, 
+  0x4a4a4a, 0x4b4b4b, 0x4c4c4c, 0x595959, 0x5a5a5a, 0x5b5b5b, (1U<<31) | 791, (1U<<31) | 777, 
+  0x4a4c4c, 0x595b5b, 0x3b3d3d, 0x44c4c, 0x45b5b, 0x43d3d, 0x4c4c4c, 0x5b5b5b, 
+  0x3b3b3b, 0x3c3c3c, 0x3d3d3d, 0x4a4c4c, 0x595959, 0x595a5a, 0x595b5b, 0x3b3d3d, 
+  0x44c4c, 0x45959, 0x45a5a, 0x45b5b, 0x43d3d, 0x4c4c4c, 0x595959, 0x5a5a5a, 
+  0x5b5b5b, 0x3b3b3b, 0x3c3c3c, 0x3d3d3d, 0x4a4c4c, 0x595b5b, 0x3b3d3d, 0x44c4c, 
+  0x45b5b, 0x43d3d, 0x4c4c4c, 0x5b5b5b, 0x3b3b3b, 0x3c3c3c, 0x3d3d3d, (1U<<31) | 3377, 
+  (1U<<31) | 3417, (1U<<31) | 3491, (1U<<31) | 3705, (1U<<31) | 3735, (1U<<31) | 3765, 0x2898989, 0x28a8a8a, 0x28b8b8b, 
+  0x27a7a7a, 0x27b7b7b, 0x37c7c7c, (1U<<31) | 594, (1U<<31) | 512, 0x428b8b8b, 0x437c7c7c, (1U<<31) | 1328, 
+  (1U<<31) | 1283, 0x2898989, 0x28a8a8a, 0x28b8b8b, 0x27a7a7a, 0x27b7b7b, 0x37c7c7c, (1U<<31) | 594, 
+  (1U<<31) | 512, 0x428b8b8b, 0x437c7c7c, (1U<<31) | 1328, (1U<<31) | 1283, (1U<<31) | 3931, (1U<<31) | 3481, (1U<<31) | 3745, 
+  (1U<<31) | 3863, (1U<<31) | 3941, (1U<<31) | 3427, (1U<<31) | 3755, (1U<<31) | 3853, (1U<<31) | 3901, (1U<<31) | 3695, (1U<<31) | 3921, 
+  (1U<<31) | 3725, (1U<<31) | 3823, (1U<<31) | 3387, (1U<<31) | 3833, (1U<<31) | 3397, 0x442e4b20, 0x442e4c30, 0x442e5b20, 
+  0x442e5b20, (1U<<31) | 3891, (1U<<31) | 3685, (1U<<31) | 3911, (1U<<31) | 3715, (1U<<31) | 3813, (1U<<31) | 3345, (1U<<31) | 3843, 
+  (1U<<31) | 3407, 0x48b8b, 0x47c7c, 0x48b8b8b, 0x47c7c7c, 0x4489894, 0x447a7a4, 0x4894, 
+  0x4895, 0x4894, 0x4895, 0x47a4, 0x47a5, 0x47a4, 0x47a5, 0x47777, 
+  0x48888, (1U<<31) | 3951, (1U<<31) | 3873, (1U<<31) | 3951, (1U<<31) | 3873, 0x4a4a4a4a, 0x4b4b4b4b, 0x4c4c4c4c, 
+  0x4a4a4a4a, 0x4b4b4b4b, 0x4c4c4c4c, 0x4a4a4a4a, 0x4b4b4b4b, 0x4c4c4c4c, 0x4a4a4a4a, 0x4b4b4b4b, 
+  0x4c4c4c4c, 0x4a4a4a4a, 0x4b4b4b4b, 0x4c4c4c4c, 0x3b3b3b3b, 0x3c3c3c3c, 0x3d3d3d3d, (1U<<31) | 5129, 
+  (1U<<31) | 5160, (1U<<31) | 5178, 0x7a4a7a7a, 0x7b4b7b7b, 0x7c4c7c7c, 0x59595959, 0x5a5a5a5a, 0x5b5b5b5b, 
+  0x2c2c2c2c, 0x2d2d2d2d, (1U<<31) | 775, 0x5b8b8b, 0x4c7c7c, 0x59595959, 0x5a5a5a5a, 0x5b5b5b5b, 
+  0x59595959, 0x5a5a5a5a, 0x5b5b5b5b, 0x44a4a4a, 0x44b4b4b, 0x44c4c4c, 0x4595959, 0x45a5a5a, 
+  0x45b5b5b, 0x43b3b3b, 0x43c3c3c, 0x43d3d3d, 0x44a4a4a, 0x44b4b4b, 0x44c4c4c, 0x4595959, 
+  0x45a5a5a, 0x45b5b5b, 0x43b3b3b, 0x43c3c3c, 0x43d3d3d, 0x444, 0x555, 0x444, 
+  0x555, 0x444, 0x555, 0x444, 0x555, 0x2e0, 0x2e0, 0x2e0, 
+  0x2e0, 0x2e0, 0x42e0, 0x52e0, 0x4, 0x5, 0x40, 0x50, 
+  0x2e0, 0x2e0, 0x2e0, 0x2e0, 0x40, 0x50, 0x20, 0x2e40, 
+  0x2e0, 0x4442, 0x4452, 0x4440, 0x4450, 0x0, 0x0, (1U<<31) | 763, 
+  (1U<<31) | 5367, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, 
+  (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 798, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, 
+  (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 4307, 
+  (1U<<31) | 3610, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5354, (1U<<31) | 5372, 
+  (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, 
+  (1U<<31) | 4320, (1U<<31) | 4320, (1U<<31) | 4320, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 4320, (1U<<31) | 4320, (1U<<31) | 5372, 
+  (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 4320, (1U<<31) | 4320, (1U<<31) | 4320, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, 
+  (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, 
+  (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, (1U<<31) | 5372, 0x442e0, 0x2e2e0, 0x4440, 0x2595959, 
+  0x25a5a5a, 0x25b5b5b, 0x40, 0x50, 0x4, 0x5, 0x4, 0x5, 
+  0x4, 0x4, 0x45, (1U<<31) | 1557, (1U<<31) | 3621, (1U<<31) | 3775, (1U<<31) | 1557, (1U<<31) | 3621, 
+  (1U<<31) | 3775, 0x44, 0x55, 0x5, 0x2e5, 0x2e0, 0x0, 0x2e0, 
+  0x2e0, 0x2e2e, 0x2e2e2e, 0x0, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x24a4a4a, 
+  0x4a4a4a, 0x4a4a4a, 0x4a4a4a4a, 0x2e, 0x27a7a7a, 0x27a7a7a, 0x7a7a4, 0x7a7a4, 
+  0x7a7a4, 0x7a7a4, 0x7a7a4, 0x7a7a4, (1U<<31) | 5156, (1U<<31) | 5363, (1U<<31) | 5357, (1U<<31) | 5125, 
+  0x7a4, 0x7a5, (1U<<31) | 5156, (1U<<31) | 5125, 0x7a4, 0x7a5, 0x2e0, 0x7a7a7a, 
+  0x7a7a7a, 0x7a7a7a, 0x7a7a7a, 0x7a4, (1U<<31) | 799, 0x7a7a, 0x7a7a, 0x7a7a, 
+  0x7a7a, 0x0, 0x2e0, 0x7a7a4, 0x7a7a4, 0x7a7a4, 0x7a7a4, 0x7a7a4, 
+  0x7a7a4, 0x2e0, 0x2898989, 0x2898989, 0x89894, 0x89894, 0x89894, 0x89894, 
+  0x89894, 0x89894, 0x894a, 0x897a, 0x7a4a, 0x894, 0x895, 0x897a7a, 
+  0x894a, 0x7a4a, 0x894, 0x895, 0x0, 0x2e2c2c0, 0x898989, 0x898989, 
+  0x0, 0x898989, 0x898989, 0x894, 0x4a4a3b, 0x3b3b2c, 0x3b3b2c, 0x2c2c2c, 
+  0x3b3b3b, 0x2c2c2c, 0x3b3b3b, 0x0, 0x3b3b4a, 0x2c4, 0x3b3b3b, 0x3b3b3b, 
+  0x2c2c59, 0x4a4a4a, 0x595959, 0x3b3b3b, 0x44a4a, 0x45959, 0x43b3b, 0x4a4a4a, 
+  0x3b3b3b, 0x44a4a, 0x43b3b, 0x4a4a4a, 0x595959, 0x3b3b3b, 0x44a4a, 0x45959, 
+  0x43b3b, 0x2c2c2c, 0x3b3b3b, 0x2c2c2c, 0x3b3b3b, 0x89894, 0x89894, 0x89894, 
+  0x89894, 0x89894, 0x89894, 0x898989, 0x7a7a7a, 0x898989, 0x7a7a7a, 0x898989, 
+  0x7a7a7a, 0x2e2c, 0x442e0, 0x440, (1U<<31) | 5147, 0x7a7a7a7a, 0x2898989, 0x27a7a7a, 
+  0x27a7a7a, 0x22c2c3b, 0x4a4a3b, 0x2c2c2c2c, 0x3b3b, 0x59594, 0x59594, 0x59594, 
+  0x48989, 0x47a7a, 0x4898989, 0x47a7a7a, 0x344, 0x444, 0x244, 0x555, 
+  0x242c42c4, 0x242c42c4, 0x242c42c4, 0x242c42c4, 0x242c42c4, 0x242c42c4, (1U<<31) | 221, 0x22c2c4, 
+  0x22c2c4, 0x22c2c4, 0x22c2c4, 0x22c2c4, 0x22c2c4, 0x22c2c2c, 0x2c5959, 0x225959, 
+  0x595959, 0x22595959, (1U<<31) | 5369, (1U<<31) | 5369, (1U<<31) | 5369, (1U<<31) | 5372, 0x4a4a4a, (1U<<31) | 5372, 
+  0x3b3b3b, (1U<<31) | 5372, 0x3b3b3b, (1U<<31) | 5372, 0x4a4a4a, (1U<<31) | 5372, 0x3b3b3b, (1U<<31) | 5372, 
+  0x3b3b3b, (1U<<31) | 5372, 0x2c2c3b, (1U<<31) | 5372, 0x3b3b3b, (1U<<31) | 5372, 0x2c2c2c, (1U<<31) | 5372, 
+  0x2c2c2c, (1U<<31) | 5372, 0x4a4a4a, (1U<<31) | 5372, 0x3b3b3b, 0x2e4422, 0x2e5522, 0x444, 
+  0x555, 0x4442, 0x2e0, 0x4442, 0x3b7a, 0x3b7b, 0x47a3b, 0x47b3b, 
+  0x22c2c2c, 0x22d2d2d, (1U<<31) | 203, 0x22c2c2c, 0x22d2d2d, (1U<<31) | 203, 0x2c2c2c, 0x2d2d2d, 
+  (1U<<31) | 777, 0x0, 0x0, 0x40, 0x50, 0x40, 0x50, 0x40, 
+  0x2e40, 0x2e50, 0x2e40, 0x2e50, 0x20, 0x4, 0x0, 0x45, 
+  0x8989, 0x8a8a, 0x7a7a, 0x7b7b, 0x8989, 0x7a7a, 0x22c2c2c, 0x24a4a4a, 
+  0x2595959, 0x22c2c2c, 0x24a4a4a, 0x2595959, 0x23b3b3b, 0x23b3b3b, (1U<<31) | 401, (1U<<31) | 445, 
+  (1U<<31) | 321, (1U<<31) | 353, 0x2c4a, 0x2c59, 0x2c3b, 0x4a59, 0x2c4a, 0x2c59, 
+  0x2c3b, 0x4a59, 0x3b4a, 0x3b59, 0x3b4a, 0x3b59, 0x2c3b, 0x4a59, 
+  0x3b4a, 0x4a4a4a4a, 0x594a4a59, 0x594a4a59, 0x4a4a4a4a, 0x594a4a59, 0x594a4a59, 0x4a3b3b4a, 
+  0x3b3b3b3b, 0x4a3b3b4a, 0x3b3b3b3b, 0x4a3b3b4a, 0x4a3b3b4a, 0x2c2c2c2c, 0x2c2c2c, 0x22c2c, 
+  0x4a4a4a, 0x24a4a, 0x595959, 0x25959, 0x3b3b3b, 0x23b3b, 0x2c2c2c, 0x4a4a4a, 
+  0x595959, 0x3b3b3b, 0x2c2c2c, 0x4a4a4a, 0x595959, 0x3b3b3b, 0x442e0, 0x442e0, 
+  0x442e0, 0x442e0, 0x442e0, 0x442e0, 0x442e0, 0x442e0, 0x442e0, 0x442e0, 
+  0x442e0, 0x442e0, 0x4440, 0x4, 0x44, 0x2e2e, 0x44f0, 0x0, 
+  0x4f0, 0x40, 0x4444, (1U<<31) | 3065, 0x4f0, 0x4f0, 0x4f4, 0x4f0, 
+  0x4, 0x4, 0x4, 0x44, 0x44f, 0xcf4f, 0x4f4, 0x4f4, 
+  0x4f4, 0x2e4f0, 0x2e4f0, 0x2e4f0, 0x2e4f0, 0x2e4f0, 0x44f4, 0x4f4, 
+  0x4f0, 0x4f0, 0x44f0, 0x44f0, 0x44f4, 0x44f0, 0x4f4, 0x44f0, 
+  0xcf4f0, 0x44f0, 0x2e4f0, 0x440, 0x44f0, 0x44f0, 0xcf4f0, 0x40, 
+  0x44f0, 0x2e4f0, 0x444, 0x0, 0x4f0, 0x4f4, 0x4f4, 0x2e, 
+  0x444, 0
+};
+
+static const unsigned char IIT_LongEncodingTable[] = {
+  /* 0 */ 0, 4, 4, 15, 0, 15, 0, 15, 0, 15, 0, 1, 1, 0,
+  /* 14 */ 0, 4, 4, 15, 3, 15, 3, 1, 1, 0,
+  /* 24 */ 0, 15, 0, 10, 4, 4, 4, 4, 4, 4, 4, 1, 1, 0,
+  /* 38 */ 0, 15, 2, 10, 4, 4, 4, 1, 1, 0,
+  /* 48 */ 21, 15, 2, 1, 15, 2, 15, 2, 1, 0,
+  /* 58 */ 15, 2, 15, 2, 15, 2, 15, 2, 1, 0,
+  /* 68 */ 0, 15, 3, 33, 3, 31, 3, 1, 0,
+  /* 77 */ 0, 15, 3, 34, 1, 0, 4, 31, 3, 1, 0,
+  /* 88 */ 0, 15, 3, 15, 12, 4, 31, 3, 1, 0,
+  /* 98 */ 15, 1, 15, 12, 15, 1, 4, 4, 1, 0,
+  /* 108 */ 15, 1, 15, 1, 15, 1, 4, 4, 4, 1, 0,
+  /* 119 */ 7, 27, 3, 7, 7, 4, 4, 1, 0,
+  /* 128 */ 21, 1, 5, 1, 0,
+  /* 133 */ 21, 15, 1, 1, 15, 1, 15, 1, 0,
+  /* 142 */ 0, 19, 15, 1, 0,
+  /* 147 */ 0, 15, 4, 15, 12, 15, 17, 1, 0,
+  /* 156 */ 2, 18, 1, 0,
+  /* 160 */ 15, 1, 25, 1, 0,
+  /* 165 */ 36, 1, 36, 1, 36, 1, 0,
+  /* 172 */ 21, 12, 4, 36, 1, 12, 4, 12, 4, 36, 1, 0,
+  /* 184 */ 37, 1, 37, 1, 37, 1, 0,
+  /* 191 */ 21, 13, 4, 37, 1, 13, 4, 13, 4, 37, 1, 0,
+  /* 203 */ 16, 2, 16, 2, 16, 2, 2, 0,
+  /* 211 */ 11, 3, 11, 3, 11, 3, 11, 3, 2, 0,
+  /* 221 */ 12, 2, 12, 2, 4, 12, 2, 4, 2, 0,
+  /* 231 */ 10, 7, 10, 7, 10, 7, 10, 4, 4, 2, 0,
+  /* 242 */ 11, 7, 11, 7, 11, 7, 11, 4, 4, 2, 0,
+  /* 253 */ 9, 8, 9, 8, 9, 8, 9, 5, 4, 2, 0,
+  /* 264 */ 10, 8, 10, 8, 10, 8, 10, 5, 4, 2, 0,
+  /* 275 */ 10, 4, 10, 4, 14, 2, 10, 4, 10, 4, 2, 0,
+  /* 287 */ 10, 4, 10, 4, 10, 4, 10, 4, 2, 0,
+  /* 297 */ 10, 4, 10, 4, 14, 2, 9, 5, 10, 4, 2, 0,
+  /* 309 */ 10, 4, 10, 4, 14, 2, 10, 5, 10, 4, 2, 0,
+  /* 321 */ 10, 7, 10, 7, 10, 7, 10, 4, 2, 0,
+  /* 331 */ 11, 4, 11, 4, 14, 2, 11, 4, 11, 4, 2, 0,
+  /* 343 */ 11, 4, 11, 4, 11, 4, 11, 4, 2, 0,
+  /* 353 */ 11, 7, 11, 7, 11, 7, 11, 4, 2, 0,
+  /* 363 */ 27, 4, 2, 0,
+  /* 367 */ 9, 5, 9, 5, 14, 2, 10, 4, 9, 5, 2, 0,
+  /* 379 */ 9, 5, 9, 5, 14, 2, 9, 5, 9, 5, 2, 0,
+  /* 391 */ 9, 5, 9, 5, 9, 5, 9, 5, 2, 0,
+  /* 401 */ 9, 8, 9, 8, 9, 8, 9, 5, 2, 0,
+  /* 411 */ 10, 5, 10, 5, 14, 2, 10, 4, 10, 5, 2, 0,
+  /* 423 */ 10, 5, 10, 5, 14, 2, 10, 5, 10, 5, 2, 0,
+  /* 435 */ 10, 5, 10, 5, 10, 5, 10, 5, 2, 0,
+  /* 445 */ 10, 8, 10, 8, 10, 8, 10, 5, 2, 0,
+  /* 455 */ 11, 5, 11, 5, 11, 5, 11, 5, 2, 0,
+  /* 465 */ 10, 7, 10, 7, 10, 7, 4, 10, 7, 2, 0,
+  /* 476 */ 10, 7, 10, 7, 14, 2, 10, 4, 10, 7, 2, 0,
+  /* 488 */ 10, 7, 10, 7, 14, 2, 9, 5, 10, 7, 2, 0,
+  /* 500 */ 10, 7, 10, 7, 14, 2, 10, 5, 10, 7, 2, 0,
+  /* 512 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 0,
+  /* 522 */ 11, 7, 11, 7, 11, 7, 4, 11, 7, 2, 0,
+  /* 533 */ 11, 7, 11, 7, 14, 2, 11, 4, 11, 7, 2, 0,
+  /* 545 */ 11, 7, 11, 7, 11, 7, 11, 7, 2, 0,
+  /* 555 */ 27, 7, 2, 0,
+  /* 559 */ 9, 8, 9, 8, 9, 8, 4, 9, 8, 2, 0,
+  /* 570 */ 9, 8, 9, 8, 14, 2, 10, 4, 9, 8, 2, 0,
+  /* 582 */ 9, 8, 9, 8, 14, 2, 9, 5, 9, 8, 2, 0,
+  /* 594 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 0,
+  /* 604 */ 10, 8, 10, 8, 10, 8, 4, 10, 8, 2, 0,
+  /* 615 */ 10, 8, 10, 8, 14, 2, 10, 4, 10, 8, 2, 0,
+  /* 627 */ 10, 8, 10, 8, 14, 2, 10, 5, 10, 8, 2, 0,
+  /* 639 */ 10, 8, 10, 8, 10, 8, 10, 8, 2, 0,
+  /* 649 */ 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 0,
+  /* 664 */ 21, 12, 2, 4, 12, 2, 12, 2, 0,
+  /* 673 */ 21, 12, 2, 4, 12, 2, 0,
+  /* 680 */ 18, 4, 14, 2, 14, 2, 14, 2, 0,
+  /* 689 */ 21, 4, 14, 2, 14, 2, 4, 14, 2, 0,
+  /* 699 */ 21, 5, 14, 2, 14, 2, 4, 14, 2, 0,
+  /* 709 */ 21, 4, 14, 2, 14, 2, 4, 4, 14, 2, 0,
+  /* 720 */ 21, 5, 14, 2, 14, 2, 4, 4, 14, 2, 0,
+  /* 731 */ 14, 2, 14, 2, 4, 4, 4, 14, 2, 0,
+  /* 741 */ 21, 4, 4, 14, 2, 0,
+  /* 747 */ 14, 2, 14, 2, 4, 4, 5, 14, 2, 0,
+  /* 757 */ 21, 5, 5, 14, 2, 0,
+  /* 763 */ 0, 17, 17, 14, 2, 0,
+  /* 769 */ 14, 2, 18, 14, 2, 0,
+  /* 775 */ 16, 2, 16, 2, 16, 2, 16, 2, 0,
+  /* 784 */ 13, 3, 16, 2, 16, 2, 0,
+  /* 791 */ 11, 5, 16, 2, 16, 2, 0,
+  /* 798 */ 17, 17, 17, 2, 0,
+  /* 803 */ 12, 2, 12, 2, 12, 2, 12, 2, 3, 0,
+  /* 813 */ 0, 5, 4, 4, 4, 3, 3, 3, 3, 0,
+  /* 823 */ 12, 3, 12, 3, 12, 3, 12, 3, 3, 0,
+  /* 833 */ 12, 4, 12, 4, 12, 4, 12, 4, 3, 0,
+  /* 843 */ 21, 12, 2, 4, 11, 3, 11, 3, 0,
+  /* 852 */ 21, 11, 3, 4, 11, 3, 11, 3, 0,
+  /* 861 */ 21, 11, 3, 4, 11, 3, 0,
+  /* 868 */ 16, 2, 13, 3, 13, 3, 0,
+  /* 875 */ 15, 3, 33, 3, 31, 3, 1, 15, 3, 0,
+  /* 885 */ 15, 3, 34, 1, 0, 4, 31, 3, 1, 15, 3, 0,
+  /* 897 */ 15, 3, 15, 12, 4, 31, 3, 1, 15, 3, 0,
+  /* 908 */ 15, 3, 15, 3, 12, 2, 12, 2, 12, 2, 12, 2, 15, 3, 0,
+  /* 923 */ 15, 3, 15, 3, 12, 2, 12, 2, 12, 2, 15, 3, 0,
+  /* 936 */ 15, 3, 15, 3, 12, 2, 12, 2, 15, 3, 0,
+  /* 947 */ 15, 3, 25, 3, 0,
+  /* 952 */ 15, 3, 25, 3, 25, 3, 0,
+  /* 959 */ 15, 3, 26, 3, 0,
+  /* 964 */ 15, 3, 26, 3, 26, 3, 0,
+  /* 971 */ 15, 1, 25, 1, 4, 0,
+  /* 977 */ 12, 4, 12, 4, 36, 1, 4, 0,
+  /* 985 */ 13, 4, 13, 4, 37, 1, 4, 0,
+  /* 993 */ 10, 7, 10, 7, 10, 7, 10, 4, 4, 2, 4, 0,
+  /* 1005 */ 9, 8, 9, 8, 9, 8, 9, 5, 4, 2, 4, 0,
+  /* 1017 */ 11, 8, 11, 8, 11, 8, 11, 5, 4, 2, 4, 0,
+  /* 1029 */ 10, 4, 10, 4, 14, 2, 10, 4, 2, 4, 0,
+  /* 1040 */ 9, 5, 9, 5, 14, 2, 10, 4, 2, 4, 0,
+  /* 1051 */ 10, 5, 10, 5, 14, 2, 10, 4, 2, 4, 0,
+  /* 1062 */ 10, 7, 10, 7, 14, 2, 10, 4, 2, 4, 0,
+  /* 1073 */ 9, 8, 9, 8, 14, 2, 10, 4, 2, 4, 0,
+  /* 1084 */ 10, 8, 10, 8, 14, 2, 10, 4, 2, 4, 0,
+  /* 1095 */ 11, 4, 11, 4, 14, 2, 11, 4, 2, 4, 0,
+  /* 1106 */ 11, 5, 11, 5, 14, 2, 11, 4, 2, 4, 0,
+  /* 1117 */ 11, 7, 11, 7, 14, 2, 11, 4, 2, 4, 0,
+  /* 1128 */ 11, 8, 11, 8, 14, 2, 11, 4, 2, 4, 0,
+  /* 1139 */ 10, 4, 10, 4, 14, 2, 9, 5, 2, 4, 0,
+  /* 1150 */ 9, 5, 9, 5, 14, 2, 9, 5, 2, 4, 0,
+  /* 1161 */ 10, 7, 10, 7, 14, 2, 9, 5, 2, 4, 0,
+  /* 1172 */ 9, 8, 9, 8, 14, 2, 9, 5, 2, 4, 0,
+  /* 1183 */ 10, 4, 10, 4, 14, 2, 10, 5, 2, 4, 0,
+  /* 1194 */ 10, 5, 10, 5, 14, 2, 10, 5, 2, 4, 0,
+  /* 1205 */ 10, 7, 10, 7, 14, 2, 10, 5, 2, 4, 0,
+  /* 1216 */ 10, 8, 10, 8, 14, 2, 10, 5, 2, 4, 0,
+  /* 1227 */ 11, 4, 11, 4, 14, 2, 11, 5, 2, 4, 0,
+  /* 1238 */ 11, 5, 11, 5, 14, 2, 11, 5, 2, 4, 0,
+  /* 1249 */ 11, 7, 11, 7, 14, 2, 11, 5, 2, 4, 0,
+  /* 1260 */ 11, 8, 11, 8, 14, 2, 11, 5, 2, 4, 0,
+  /* 1271 */ 10, 7, 10, 7, 10, 7, 4, 10, 7, 2, 4, 0,
+  /* 1283 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 0,
+  /* 1294 */ 10, 7, 10, 7, 9, 8, 10, 7, 2, 4, 0,
+  /* 1305 */ 9, 8, 9, 8, 9, 8, 4, 9, 8, 2, 4, 0,
+  /* 1317 */ 9, 8, 9, 8, 10, 7, 9, 8, 2, 4, 0,
+  /* 1328 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 0,
+  /* 1339 */ 11, 8, 11, 8, 11, 8, 4, 11, 8, 2, 4, 0,
+  /* 1351 */ 11, 8, 11, 8, 11, 8, 11, 8, 2, 4, 0,
+  /* 1362 */ 12, 2, 12, 2, 12, 2, 12, 2, 4, 0,
+  /* 1372 */ 21, 12, 2, 4, 12, 2, 12, 2, 12, 2, 4, 0,
+  /* 1384 */ 21, 12, 2, 4, 12, 2, 12, 2, 4, 0,
+  /* 1394 */ 12, 2, 9, 5, 9, 5, 12, 2, 4, 0,
+  /* 1404 */ 13, 2, 13, 2, 13, 2, 13, 2, 4, 0,
+  /* 1414 */ 15, 1, 15, 1, 14, 2, 14, 2, 4, 0,
+  /* 1424 */ 15, 4, 15, 4, 14, 2, 14, 2, 4, 0,
+  /* 1434 */ 21, 4, 14, 2, 14, 2, 4, 0,
+  /* 1442 */ 21, 5, 14, 2, 14, 2, 4, 0,
+  /* 1450 */ 13, 3, 16, 2, 16, 2, 4, 0,
+  /* 1458 */ 12, 7, 12, 7, 12, 7, 12, 4, 4, 3, 4, 0,
+  /* 1470 */ 12, 4, 12, 4, 14, 2, 12, 4, 3, 4, 0,
+  /* 1481 */ 12, 7, 12, 7, 14, 2, 12, 4, 3, 4, 0,
+  /* 1492 */ 12, 7, 12, 7, 12, 7, 4, 12, 7, 3, 4, 0,
+  /* 1504 */ 12, 7, 12, 7, 12, 7, 12, 7, 3, 4, 0,
+  /* 1515 */ 11, 3, 11, 3, 11, 3, 11, 3, 4, 0,
+  /* 1525 */ 21, 11, 3, 4, 11, 3, 11, 3, 11, 3, 4, 0,
+  /* 1537 */ 21, 11, 3, 4, 11, 3, 11, 3, 4, 0,
+  /* 1547 */ 13, 3, 13, 3, 13, 3, 13, 3, 4, 0,
+  /* 1557 */ 21, 3, 4, 0,
+  /* 1561 */ 15, 3, 26, 3, 4, 0,
+  /* 1567 */ 15, 2, 4, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1580 */ 15, 2, 4, 4, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1594 */ 15, 2, 4, 7, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1608 */ 15, 2, 4, 4, 7, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1623 */ 15, 2, 4, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1638 */ 15, 2, 4, 4, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1654 */ 15, 2, 4, 7, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1670 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1687 */ 15, 2, 4, 15, 10, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1704 */ 15, 2, 4, 4, 15, 10, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1722 */ 15, 2, 4, 7, 15, 10, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1740 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1759 */ 15, 2, 4, 15, 10, 15, 10, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1778 */ 15, 2, 4, 4, 15, 10, 15, 10, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1798 */ 15, 2, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1818 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1839 */ 15, 2, 4, 15, 10, 7, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1855 */ 15, 2, 4, 4, 15, 10, 7, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1872 */ 15, 2, 4, 15, 10, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1887 */ 15, 2, 4, 4, 15, 10, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1903 */ 15, 2, 4, 15, 10, 15, 10, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1920 */ 15, 2, 4, 4, 15, 10, 15, 10, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1938 */ 15, 2, 4, 7, 15, 10, 15, 10, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1956 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1975 */ 15, 2, 4, 15, 10, 7, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 1993 */ 15, 2, 4, 4, 15, 10, 7, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2012 */ 15, 2, 4, 15, 10, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2029 */ 15, 2, 4, 4, 15, 10, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2047 */ 15, 2, 4, 15, 10, 15, 10, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2066 */ 15, 2, 4, 4, 15, 10, 15, 10, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2086 */ 15, 2, 4, 7, 15, 10, 15, 10, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2106 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2127 */ 15, 2, 4, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2150 */ 15, 2, 4, 4, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2174 */ 15, 2, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2198 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2223 */ 15, 2, 4, 15, 10, 7, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2243 */ 15, 2, 4, 4, 15, 10, 7, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2264 */ 15, 2, 4, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2283 */ 15, 2, 4, 4, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2303 */ 15, 2, 4, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2324 */ 15, 2, 4, 4, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2346 */ 15, 2, 4, 7, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2368 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2391 */ 15, 2, 4, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2416 */ 15, 2, 4, 4, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2442 */ 15, 2, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2468 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2495 */ 15, 2, 4, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2524 */ 15, 2, 4, 4, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2554 */ 15, 2, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2584 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2615 */ 15, 2, 4, 15, 10, 7, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2637 */ 15, 2, 4, 4, 15, 10, 7, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2660 */ 15, 2, 4, 15, 10, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2681 */ 15, 2, 4, 4, 15, 10, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2703 */ 15, 2, 4, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2730 */ 15, 2, 4, 4, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2758 */ 15, 2, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2786 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2815 */ 15, 2, 4, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2846 */ 15, 2, 4, 4, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2878 */ 15, 2, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2910 */ 15, 2, 4, 4, 7, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 10, 15, 18, 15, 18, 15, 18, 15, 18, 11, 4, 10, 4, 1, 4, 4, 0,
+  /* 2943 */ 21, 4, 1, 4, 4, 0,
+  /* 2949 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 4, 0,
+  /* 2961 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 4, 0,
+  /* 2973 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 15, 3, 15, 3, 4, 4, 0,
+  /* 2995 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 15, 3, 4, 4, 0,
+  /* 3013 */ 21, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 4, 4, 0,
+  /* 3027 */ 10, 4, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
+  /* 3041 */ 10, 7, 10, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
+  /* 3055 */ 0, 5, 4, 4, 4, 4, 4, 4, 4, 0,
+  /* 3065 */ 21, 4, 4, 4, 4, 4, 0,
+  /* 3072 */ 23, 3, 3, 3, 3, 5, 4, 4, 4, 0,
+  /* 3082 */ 21, 3, 3, 5, 4, 4, 4, 0,
+  /* 3090 */ 23, 4, 4, 4, 4, 5, 4, 4, 4, 0,
+  /* 3100 */ 21, 4, 4, 5, 4, 4, 4, 0,
+  /* 3108 */ 23, 4, 4, 4, 4, 5, 5, 4, 4, 4, 0,
+  /* 3119 */ 21, 5, 5, 5, 4, 4, 4, 0,
+  /* 3127 */ 23, 7, 7, 7, 7, 5, 5, 4, 4, 4, 0,
+  /* 3138 */ 23, 7, 7, 7, 7, 5, 4, 4, 4, 0,
+  /* 3148 */ 15, 1, 15, 1, 15, 1, 15, 9, 11, 4, 4, 4, 0,
+  /* 3161 */ 0, 15, 2, 4, 15, 9, 11, 4, 4, 4, 0,
+  /* 3172 */ 15, 1, 15, 1, 15, 1, 15, 9, 15, 9, 11, 4, 4, 4, 0,
+  /* 3187 */ 0, 15, 2, 4, 15, 9, 15, 9, 11, 4, 4, 4, 0,
+  /* 3200 */ 15, 1, 15, 1, 15, 1, 15, 9, 15, 9, 15, 9, 11, 4, 4, 4, 0,
+  /* 3217 */ 0, 15, 2, 4, 15, 9, 15, 9, 15, 9, 11, 4, 4, 4, 0,
+  /* 3232 */ 15, 1, 15, 1, 15, 1, 15, 9, 15, 9, 15, 9, 15, 9, 11, 4, 4, 4, 0,
+  /* 3251 */ 0, 15, 2, 4, 15, 9, 15, 9, 15, 9, 15, 9, 11, 4, 4, 4, 0,
+  /* 3268 */ 16, 4, 16, 4, 16, 4, 4, 4, 0,
+  /* 3277 */ 23, 3, 3, 3, 3, 5, 4, 4, 0,
+  /* 3286 */ 21, 3, 3, 5, 4, 4, 0,
+  /* 3293 */ 23, 4, 4, 4, 4, 5, 4, 4, 0,
+  /* 3302 */ 21, 4, 4, 5, 4, 4, 0,
+  /* 3309 */ 23, 4, 4, 4, 4, 5, 5, 4, 4, 0,
+  /* 3319 */ 21, 5, 5, 5, 4, 4, 0,
+  /* 3326 */ 23, 7, 7, 7, 7, 5, 5, 4, 4, 0,
+  /* 3336 */ 23, 7, 7, 7, 7, 5, 4, 4, 0,
+  /* 3345 */ 0, 14, 2, 2, 10, 4, 10, 4, 4, 0,
+  /* 3355 */ 21, 10, 4, 4, 10, 4, 10, 4, 4, 0,
+  /* 3365 */ 21, 10, 4, 4, 10, 4, 10, 4, 10, 4, 4, 0,
+  /* 3377 */ 10, 4, 10, 4, 10, 4, 10, 4, 4, 0,
+  /* 3387 */ 0, 14, 2, 2, 9, 5, 10, 4, 4, 0,
+  /* 3397 */ 0, 14, 2, 2, 10, 5, 10, 4, 4, 0,
+  /* 3407 */ 0, 14, 2, 2, 11, 4, 11, 4, 4, 0,
+  /* 3417 */ 11, 4, 11, 4, 11, 4, 11, 4, 4, 0,
+  /* 3427 */ 0, 14, 2, 2, 11, 5, 11, 4, 4, 0,
+  /* 3437 */ 0, 15, 4, 15, 11, 15, 11, 4, 4, 0,
+  /* 3447 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 4, 4, 0,
+  /* 3459 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 4, 4, 0,
+  /* 3473 */ 36, 1, 36, 1, 12, 4, 4, 0,
+  /* 3481 */ 0, 14, 2, 3, 12, 4, 12, 4, 4, 0,
+  /* 3491 */ 12, 4, 12, 4, 12, 4, 12, 4, 4, 0,
+  /* 3501 */ 13, 4, 13, 4, 12, 4, 12, 4, 4, 0,
+  /* 3511 */ 37, 1, 37, 1, 13, 4, 4, 0,
+  /* 3519 */ 13, 4, 13, 4, 13, 4, 13, 4, 4, 0,
+  /* 3529 */ 16, 4, 16, 4, 13, 4, 13, 4, 4, 0,
+  /* 3539 */ 16, 4, 16, 4, 13, 4, 4, 0,
+  /* 3547 */ 40, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 15, 4, 4, 0,
+  /* 3568 */ 23, 9, 6, 9, 6, 9, 6, 9, 6, 15, 4, 4, 0,
+  /* 3581 */ 40, 7, 7, 7, 7, 7, 7, 7, 7, 15, 4, 4, 0,
+  /* 3594 */ 13, 4, 13, 4, 16, 4, 4, 0,
+  /* 3602 */ 16, 4, 16, 4, 16, 4, 4, 0,
+  /* 3610 */ 17, 17, 4, 4, 0,
+  /* 3615 */ 15, 0, 18, 4, 4, 0,
+  /* 3621 */ 21, 4, 4, 0,
+  /* 3625 */ 23, 3, 3, 3, 3, 5, 4, 0,
+  /* 3633 */ 21, 3, 3, 5, 4, 0,
+  /* 3639 */ 23, 4, 4, 4, 4, 5, 4, 0,
+  /* 3647 */ 21, 4, 4, 5, 4, 0,
+  /* 3653 */ 23, 4, 4, 4, 4, 5, 5, 4, 0,
+  /* 3662 */ 21, 5, 5, 5, 4, 0,
+  /* 3668 */ 23, 7, 7, 7, 7, 5, 5, 4, 0,
+  /* 3677 */ 23, 7, 7, 7, 7, 5, 4, 0,
+  /* 3685 */ 0, 14, 2, 2, 10, 4, 9, 5, 4, 0,
+  /* 3695 */ 0, 14, 2, 2, 9, 5, 9, 5, 4, 0,
+  /* 3705 */ 9, 5, 9, 5, 9, 5, 9, 5, 4, 0,
+  /* 3715 */ 0, 14, 2, 2, 10, 4, 10, 5, 4, 0,
+  /* 3725 */ 0, 14, 2, 2, 10, 5, 10, 5, 4, 0,
+  /* 3735 */ 10, 5, 10, 5, 10, 5, 10, 5, 4, 0,
+  /* 3745 */ 0, 14, 2, 2, 11, 4, 11, 5, 4, 0,
+  /* 3755 */ 0, 14, 2, 2, 11, 5, 11, 5, 4, 0,
+  /* 3765 */ 11, 5, 11, 5, 11, 5, 11, 5, 4, 0,
+  /* 3775 */ 21, 5, 4, 0,
+  /* 3779 */ 0, 15, 4, 9, 6, 9, 6, 9, 6, 9, 6, 4, 0,
+  /* 3792 */ 0, 15, 4, 7, 7, 7, 7, 7, 7, 7, 7, 4, 0,
+  /* 3805 */ 21, 10, 4, 4, 10, 7, 4, 0,
+  /* 3813 */ 0, 14, 2, 2, 10, 4, 10, 7, 4, 0,
+  /* 3823 */ 0, 14, 2, 2, 9, 5, 10, 7, 4, 0,
+  /* 3833 */ 0, 14, 2, 2, 10, 5, 10, 7, 4, 0,
+  /* 3843 */ 0, 14, 2, 2, 11, 4, 11, 7, 4, 0,
+  /* 3853 */ 0, 14, 2, 2, 11, 5, 11, 7, 4, 0,
+  /* 3863 */ 0, 14, 2, 3, 12, 4, 12, 7, 4, 0,
+  /* 3873 */ 12, 7, 12, 7, 12, 7, 12, 7, 4, 0,
+  /* 3883 */ 21, 9, 5, 4, 9, 8, 4, 0,
+  /* 3891 */ 0, 14, 2, 2, 10, 4, 9, 8, 4, 0,
+  /* 3901 */ 0, 14, 2, 2, 9, 5, 9, 8, 4, 0,
+  /* 3911 */ 0, 14, 2, 2, 10, 4, 10, 8, 4, 0,
+  /* 3921 */ 0, 14, 2, 2, 10, 5, 10, 8, 4, 0,
+  /* 3931 */ 0, 14, 2, 2, 11, 4, 11, 8, 4, 0,
+  /* 3941 */ 0, 14, 2, 2, 11, 5, 11, 8, 4, 0,
+  /* 3951 */ 11, 8, 11, 8, 11, 8, 11, 8, 4, 0,
+  /* 3961 */ 21, 10, 4, 4, 10, 4, 0,
+  /* 3968 */ 21, 11, 3, 4, 10, 4, 10, 4, 0,
+  /* 3977 */ 21, 10, 4, 4, 10, 4, 10, 4, 0,
+  /* 3986 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 4, 0,
+  /* 3997 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 4, 0,
+  /* 4010 */ 12, 4, 36, 1, 12, 4, 0,
+  /* 4017 */ 0, 36, 1, 14, 2, 12, 4, 0,
+  /* 4025 */ 0, 14, 2, 36, 1, 4, 4, 12, 4, 0,
+  /* 4035 */ 36, 1, 36, 1, 12, 4, 12, 4, 0,
+  /* 4044 */ 12, 4, 36, 1, 12, 4, 12, 4, 0,
+  /* 4053 */ 13, 4, 36, 1, 12, 4, 12, 4, 0,
+  /* 4062 */ 0, 36, 1, 4, 4, 12, 4, 12, 4, 0,
+  /* 4072 */ 0, 36, 1, 4, 4, 13, 4, 12, 4, 0,
+  /* 4082 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 4, 0,
+  /* 4095 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 4, 0,
+  /* 4106 */ 21, 15, 3, 15, 3, 15, 12, 4, 0,
+  /* 4115 */ 13, 4, 37, 1, 13, 4, 0,
+  /* 4122 */ 0, 37, 1, 14, 2, 13, 4, 0,
+  /* 4130 */ 0, 14, 2, 36, 1, 4, 4, 13, 4, 0,
+  /* 4140 */ 0, 14, 2, 37, 1, 4, 4, 13, 4, 0,
+  /* 4150 */ 37, 1, 37, 1, 13, 4, 13, 4, 0,
+  /* 4159 */ 13, 4, 37, 1, 13, 4, 13, 4, 0,
+  /* 4168 */ 16, 4, 37, 1, 13, 4, 13, 4, 0,
+  /* 4177 */ 0, 37, 1, 4, 4, 13, 4, 13, 4, 0,
+  /* 4187 */ 16, 4, 16, 4, 13, 4, 13, 4, 0,
+  /* 4196 */ 0, 4, 4, 16, 4, 13, 4, 0,
+  /* 4204 */ 0, 37, 1, 4, 4, 16, 4, 13, 4, 0,
+  /* 4214 */ 16, 4, 16, 4, 13, 4, 0,
+  /* 4221 */ 0, 14, 20, 5, 15, 4, 0,
+  /* 4228 */ 40, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 15, 4, 0,
+  /* 4248 */ 23, 9, 6, 9, 6, 9, 6, 9, 6, 15, 4, 0,
+  /* 4260 */ 40, 7, 7, 7, 7, 7, 7, 7, 7, 15, 4, 0,
+  /* 4272 */ 5, 19, 15, 4, 0,
+  /* 4277 */ 0, 14, 2, 37, 1, 4, 4, 16, 4, 0,
+  /* 4287 */ 0, 14, 2, 4, 4, 16, 4, 0,
+  /* 4295 */ 13, 4, 16, 4, 0,
+  /* 4300 */ 16, 4, 16, 4, 16, 4, 0,
+  /* 4307 */ 4, 17, 4, 0,
+  /* 4311 */ 0, 15, 4, 15, 12, 15, 17, 4, 0,
+  /* 4320 */ 17, 17, 4, 0,
+  /* 4324 */ 16, 2, 16, 2, 16, 2, 16, 2, 5, 0,
+  /* 4334 */ 5, 16, 2, 16, 2, 5, 0,
+  /* 4341 */ 21, 5, 1, 4, 5, 0,
+  /* 4347 */ 16, 4, 16, 4, 13, 4, 5, 0,
+  /* 4355 */ 21, 1, 5, 5, 0,
+  /* 4360 */ 21, 10, 4, 4, 9, 5, 9, 5, 0,
+  /* 4369 */ 21, 9, 5, 4, 9, 5, 9, 5, 0,
+  /* 4378 */ 0, 15, 4, 9, 6, 9, 6, 9, 6, 9, 6, 0,
+  /* 4390 */ 23, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 0,
+  /* 4440 */ 40, 7, 7, 7, 7, 7, 7, 7, 7, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 0,
+  /* 4490 */ 23, 4, 4, 4, 4, 5, 4, 7, 0,
+  /* 4499 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 0,
+  /* 4509 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 0,
+  /* 4519 */ 23, 7, 7, 7, 7, 5, 4, 7, 0,
+  /* 4528 */ 23, 4, 4, 4, 4, 5, 7, 0,
+  /* 4536 */ 23, 4, 4, 4, 4, 5, 5, 7, 0,
+  /* 4545 */ 23, 7, 7, 7, 7, 5, 5, 7, 0,
+  /* 4554 */ 23, 7, 7, 7, 7, 5, 7, 0,
+  /* 4562 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 0,
+  /* 4572 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 0,
+  /* 4583 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 0,
+  /* 4594 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 0,
+  /* 4604 */ 23, 4, 4, 4, 4, 5, 7, 7, 0,
+  /* 4613 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 0,
+  /* 4623 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 0,
+  /* 4633 */ 23, 7, 7, 7, 7, 5, 7, 7, 0,
+  /* 4642 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 0,
+  /* 4653 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 0,
+  /* 4665 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 0,
+  /* 4677 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 0,
+  /* 4688 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 0,
+  /* 4698 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 0,
+  /* 4709 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 0,
+  /* 4720 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 0,
+  /* 4730 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 0,
+  /* 4742 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 0,
+  /* 4755 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 0,
+  /* 4768 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 0,
+  /* 4780 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 0,
+  /* 4791 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 0,
+  /* 4803 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 0,
+  /* 4815 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 0,
+  /* 4826 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+  /* 4840 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+  /* 4855 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+  /* 4870 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+  /* 4884 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 0,
+  /* 4897 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 0,
+  /* 4911 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 0,
+  /* 4925 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 0,
+  /* 4938 */ 0, 15, 4, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 4950 */ 23, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 5000 */ 40, 7, 7, 7, 7, 7, 7, 7, 7, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 5050 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 5066 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 5083 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 5100 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 5116 */ 21, 10, 4, 4, 10, 7, 10, 7, 0,
+  /* 5125 */ 17, 10, 7, 0,
+  /* 5129 */ 9, 8, 9, 8, 9, 5, 9, 8, 0,
+  /* 5138 */ 21, 9, 5, 4, 9, 8, 9, 8, 0,
+  /* 5147 */ 9, 8, 9, 8, 9, 8, 9, 8, 0,
+  /* 5156 */ 17, 9, 8, 0,
+  /* 5160 */ 10, 8, 10, 8, 10, 5, 10, 8, 0,
+  /* 5169 */ 10, 8, 10, 8, 10, 8, 10, 8, 0,
+  /* 5178 */ 11, 8, 11, 8, 11, 5, 11, 8, 0,
+  /* 5187 */ 15, 3, 15, 3, 15, 11, 15, 11, 0,
+  /* 5196 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 0,
+  /* 5206 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 0,
+  /* 5218 */ 0, 15, 3, 15, 3, 15, 3, 15, 12, 0,
+  /* 5228 */ 0, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 0,
+  /* 5240 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 0,
+  /* 5252 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 0,
+  /* 5262 */ 21, 15, 3, 15, 3, 15, 12, 0,
+  /* 5270 */ 0, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 5279 */ 0, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 5290 */ 0, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 5303 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 5324 */ 22, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 5341 */ 21, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 5354 */ 4, 17, 0,
+  /* 5357 */ 10, 7, 10, 7, 17, 0,
+  /* 5363 */ 9, 8, 17, 0,
+  /* 5367 */ 0, 14, 17, 17, 0,
+  /* 5372 */ 17, 17, 17, 0,
+  /* 5376 */ 15, 0, 18, 0,
+  /* 5380 */ 1, 18, 0,
+  /* 5383 */ 14, 2, 18, 0,
+  /* 5387 */ 15, 4, 18, 0,
+  /* 5391 */ 0, 19, 0,
+  /* 5394 */ 15, 1, 19, 0,
+  /* 5398 */ 1, 14, 2, 19, 0,
+  /* 5403 */ 21, 14, 2, 1, 14, 2, 4, 19, 0,
+  /* 5412 */ 15, 2, 15, 10, 15, 19, 0,
+  /* 5419 */ 15, 2, 15, 2, 15, 2, 15, 2, 19, 19, 0,
+  /* 5430 */ 15, 2, 15, 2, 4, 19, 19, 0,
+  /* 5438 */ 0, 19, 19, 19, 0,
+  /* 5443 */ 15, 0, 29, 0,
+  /* 5447 */ 0, 1, 29, 0,
+  /* 5451 */ 0, 5, 4, 14, 2, 4, 29, 0,
+  /* 5459 */ 5, 5, 4, 14, 2, 4, 29, 0,
+  /* 5467 */ 18, 5, 4, 15, 4, 4, 4, 29, 0,
+  /* 5476 */ 0, 5, 4, 29, 0,
+  /* 5481 */ 28, 35, 28, 35, 28, 35, 28, 35, 0,
+  /* 5490 */ 8, 41, 0,
+  /* 5493 */ 41, 41, 41, 41, 0,
+  255
+};
+
+#endif
+
+// Add parameter attributes that are not common to all intrinsics.
+#ifdef GET_INTRINSIC_ATTRIBUTES
+AttributeList Intrinsic::getAttributes(LLVMContext &C, ID id) {
+  static const uint8_t IntrinsicsToAttributesMap[] = {
+    1, // llvm.addressofreturnaddress
+    2, // llvm.adjust.trampoline
+    3, // llvm.annotation
+    3, // llvm.assume
+    4, // llvm.bitreverse
+    4, // llvm.bswap
+    4, // llvm.canonicalize
+    4, // llvm.ceil
+    3, // llvm.clear_cache
+    5, // llvm.codeview.annotation
+    1, // llvm.convert.from.fp16
+    1, // llvm.convert.to.fp16
+    4, // llvm.copysign
+    3, // llvm.coro.alloc
+    6, // llvm.coro.begin
+    7, // llvm.coro.destroy
+    8, // llvm.coro.done
+    3, // llvm.coro.end
+    1, // llvm.coro.frame
+    9, // llvm.coro.free
+    10, // llvm.coro.id
+    1, // llvm.coro.noop
+    11, // llvm.coro.param
+    12, // llvm.coro.promise
+    7, // llvm.coro.resume
+    3, // llvm.coro.save
+    1, // llvm.coro.size
+    13, // llvm.coro.subfn.addr
+    3, // llvm.coro.suspend
+    4, // llvm.cos
+    4, // llvm.ctlz
+    4, // llvm.ctpop
+    4, // llvm.cttz
+    4, // llvm.dbg.addr
+    4, // llvm.dbg.declare
+    4, // llvm.dbg.label
+    4, // llvm.dbg.value
+    3, // llvm.debugtrap
+    1, // llvm.donothing
+    3, // llvm.eh.dwarf.cfa
+    1, // llvm.eh.exceptioncode
+    1, // llvm.eh.exceptionpointer
+    3, // llvm.eh.return.i32
+    3, // llvm.eh.return.i64
+    1, // llvm.eh.sjlj.callsite
+    3, // llvm.eh.sjlj.functioncontext
+    14, // llvm.eh.sjlj.longjmp
+    1, // llvm.eh.sjlj.lsda
+    3, // llvm.eh.sjlj.setjmp
+    3, // llvm.eh.sjlj.setup.dispatch
+    1, // llvm.eh.typeid.for
+    3, // llvm.eh.unwind.init
+    4, // llvm.exp
+    4, // llvm.exp2
+    1, // llvm.expect
+    15, // llvm.experimental.constrained.cos
+    15, // llvm.experimental.constrained.exp
+    15, // llvm.experimental.constrained.exp2
+    15, // llvm.experimental.constrained.fadd
+    15, // llvm.experimental.constrained.fdiv
+    15, // llvm.experimental.constrained.fma
+    15, // llvm.experimental.constrained.fmul
+    15, // llvm.experimental.constrained.frem
+    15, // llvm.experimental.constrained.fsub
+    15, // llvm.experimental.constrained.log
+    15, // llvm.experimental.constrained.log10
+    15, // llvm.experimental.constrained.log2
+    15, // llvm.experimental.constrained.nearbyint
+    15, // llvm.experimental.constrained.pow
+    15, // llvm.experimental.constrained.powi
+    15, // llvm.experimental.constrained.rint
+    15, // llvm.experimental.constrained.sin
+    15, // llvm.experimental.constrained.sqrt
+    7, // llvm.experimental.deoptimize
+    16, // llvm.experimental.gc.relocate
+    16, // llvm.experimental.gc.result
+    7, // llvm.experimental.gc.statepoint
+    7, // llvm.experimental.guard
+    7, // llvm.experimental.patchpoint.i64
+    7, // llvm.experimental.patchpoint.void
+    7, // llvm.experimental.stackmap
+    1, // llvm.experimental.vector.reduce.add
+    1, // llvm.experimental.vector.reduce.and
+    1, // llvm.experimental.vector.reduce.fadd
+    1, // llvm.experimental.vector.reduce.fmax
+    1, // llvm.experimental.vector.reduce.fmin
+    1, // llvm.experimental.vector.reduce.fmul
+    1, // llvm.experimental.vector.reduce.mul
+    1, // llvm.experimental.vector.reduce.or
+    1, // llvm.experimental.vector.reduce.smax
+    1, // llvm.experimental.vector.reduce.smin
+    1, // llvm.experimental.vector.reduce.umax
+    1, // llvm.experimental.vector.reduce.umin
+    1, // llvm.experimental.vector.reduce.xor
+    4, // llvm.fabs
+    4, // llvm.floor
+    3, // llvm.flt.rounds
+    4, // llvm.fma
+    4, // llvm.fmuladd
+    1, // llvm.frameaddress
+    4, // llvm.fshl
+    4, // llvm.fshr
+    2, // llvm.gcread
+    3, // llvm.gcroot
+    17, // llvm.gcwrite
+    3, // llvm.get.dynamic.area.offset
+    3, // llvm.icall.branch.funnel
+    18, // llvm.init.trampoline
+    3, // llvm.instrprof.increment
+    3, // llvm.instrprof.increment.step
+    3, // llvm.instrprof.value.profile
+    19, // llvm.invariant.end
+    20, // llvm.invariant.start
+    21, // llvm.launder.invariant.group
+    20, // llvm.lifetime.end
+    20, // llvm.lifetime.start
+    2, // llvm.load.relative
+    1, // llvm.localaddress
+    3, // llvm.localescape
+    1, // llvm.localrecover
+    4, // llvm.log
+    4, // llvm.log10
+    4, // llvm.log2
+    14, // llvm.longjmp
+    22, // llvm.masked.compressstore
+    16, // llvm.masked.expandload
+    16, // llvm.masked.gather
+    2, // llvm.masked.load
+    3, // llvm.masked.scatter
+    22, // llvm.masked.store
+    4, // llvm.maxnum
+    23, // llvm.memcpy
+    23, // llvm.memcpy.element.unordered.atomic
+    24, // llvm.memmove
+    23, // llvm.memmove.element.unordered.atomic
+    25, // llvm.memset
+    25, // llvm.memset.element.unordered.atomic
+    4, // llvm.minnum
+    4, // llvm.nearbyint
+    4, // llvm.objectsize
+    3, // llvm.pcmarker
+    4, // llvm.pow
+    4, // llvm.powi
+    26, // llvm.prefetch
+    3, // llvm.ptr.annotation
+    16, // llvm.read_register
+    3, // llvm.readcyclecounter
+    1, // llvm.returnaddress
+    4, // llvm.rint
+    4, // llvm.round
+    4, // llvm.sadd.with.overflow
+    3, // llvm.setjmp
+    15, // llvm.sideeffect
+    14, // llvm.siglongjmp
+    3, // llvm.sigsetjmp
+    4, // llvm.sin
+    4, // llvm.smul.with.overflow
+    4, // llvm.sqrt
+    27, // llvm.ssa.copy
+    4, // llvm.ssub.with.overflow
+    3, // llvm.stackguard
+    3, // llvm.stackprotector
+    3, // llvm.stackrestore
+    3, // llvm.stacksave
+    4, // llvm.strip.invariant.group
+    1, // llvm.thread.pointer
+    14, // llvm.trap
+    4, // llvm.trunc
+    1, // llvm.type.checked.load
+    1, // llvm.type.test
+    4, // llvm.uadd.with.overflow
+    4, // llvm.umul.with.overflow
+    4, // llvm.usub.with.overflow
+    3, // llvm.va_copy
+    3, // llvm.va_end
+    3, // llvm.va_start
+    3, // llvm.var.annotation
+    3, // llvm.write_register
+    28, // llvm.xray.customevent
+    29, // llvm.xray.typedevent
+    3, // llvm.aarch64.clrex
+    1, // llvm.aarch64.crc32b
+    1, // llvm.aarch64.crc32cb
+    1, // llvm.aarch64.crc32ch
+    1, // llvm.aarch64.crc32cw
+    1, // llvm.aarch64.crc32cx
+    1, // llvm.aarch64.crc32h
+    1, // llvm.aarch64.crc32w
+    1, // llvm.aarch64.crc32x
+    1, // llvm.aarch64.crypto.aesd
+    1, // llvm.aarch64.crypto.aese
+    1, // llvm.aarch64.crypto.aesimc
+    1, // llvm.aarch64.crypto.aesmc
+    1, // llvm.aarch64.crypto.sha1c
+    1, // llvm.aarch64.crypto.sha1h
+    1, // llvm.aarch64.crypto.sha1m
+    1, // llvm.aarch64.crypto.sha1p
+    1, // llvm.aarch64.crypto.sha1su0
+    1, // llvm.aarch64.crypto.sha1su1
+    1, // llvm.aarch64.crypto.sha256h
+    1, // llvm.aarch64.crypto.sha256h2
+    1, // llvm.aarch64.crypto.sha256su0
+    1, // llvm.aarch64.crypto.sha256su1
+    3, // llvm.aarch64.dmb
+    3, // llvm.aarch64.dsb
+    1, // llvm.aarch64.get.fpcr
+    3, // llvm.aarch64.hint
+    3, // llvm.aarch64.isb
+    3, // llvm.aarch64.ldaxp
+    3, // llvm.aarch64.ldaxr
+    3, // llvm.aarch64.ldxp
+    3, // llvm.aarch64.ldxr
+    1, // llvm.aarch64.neon.abs
+    1, // llvm.aarch64.neon.addhn
+    1, // llvm.aarch64.neon.addp
+    1, // llvm.aarch64.neon.cls
+    1, // llvm.aarch64.neon.fabd
+    1, // llvm.aarch64.neon.facge
+    1, // llvm.aarch64.neon.facgt
+    1, // llvm.aarch64.neon.faddv
+    1, // llvm.aarch64.neon.fcvtas
+    1, // llvm.aarch64.neon.fcvtau
+    1, // llvm.aarch64.neon.fcvtms
+    1, // llvm.aarch64.neon.fcvtmu
+    1, // llvm.aarch64.neon.fcvtns
+    1, // llvm.aarch64.neon.fcvtnu
+    1, // llvm.aarch64.neon.fcvtps
+    1, // llvm.aarch64.neon.fcvtpu
+    1, // llvm.aarch64.neon.fcvtxn
+    1, // llvm.aarch64.neon.fcvtzs
+    1, // llvm.aarch64.neon.fcvtzu
+    1, // llvm.aarch64.neon.fmax
+    1, // llvm.aarch64.neon.fmaxnm
+    1, // llvm.aarch64.neon.fmaxnmp
+    1, // llvm.aarch64.neon.fmaxnmv
+    1, // llvm.aarch64.neon.fmaxp
+    1, // llvm.aarch64.neon.fmaxv
+    1, // llvm.aarch64.neon.fmin
+    1, // llvm.aarch64.neon.fminnm
+    1, // llvm.aarch64.neon.fminnmp
+    1, // llvm.aarch64.neon.fminnmv
+    1, // llvm.aarch64.neon.fminp
+    1, // llvm.aarch64.neon.fminv
+    1, // llvm.aarch64.neon.fmulx
+    1, // llvm.aarch64.neon.frecpe
+    1, // llvm.aarch64.neon.frecps
+    1, // llvm.aarch64.neon.frecpx
+    1, // llvm.aarch64.neon.frintn
+    1, // llvm.aarch64.neon.frsqrte
+    1, // llvm.aarch64.neon.frsqrts
+    2, // llvm.aarch64.neon.ld1x2
+    2, // llvm.aarch64.neon.ld1x3
+    2, // llvm.aarch64.neon.ld1x4
+    2, // llvm.aarch64.neon.ld2
+    2, // llvm.aarch64.neon.ld2lane
+    2, // llvm.aarch64.neon.ld2r
+    2, // llvm.aarch64.neon.ld3
+    2, // llvm.aarch64.neon.ld3lane
+    2, // llvm.aarch64.neon.ld3r
+    2, // llvm.aarch64.neon.ld4
+    2, // llvm.aarch64.neon.ld4lane
+    2, // llvm.aarch64.neon.ld4r
+    1, // llvm.aarch64.neon.pmul
+    1, // llvm.aarch64.neon.pmull
+    1, // llvm.aarch64.neon.pmull64
+    1, // llvm.aarch64.neon.raddhn
+    1, // llvm.aarch64.neon.rbit
+    1, // llvm.aarch64.neon.rshrn
+    1, // llvm.aarch64.neon.rsubhn
+    1, // llvm.aarch64.neon.sabd
+    1, // llvm.aarch64.neon.saddlp
+    1, // llvm.aarch64.neon.saddlv
+    1, // llvm.aarch64.neon.saddv
+    1, // llvm.aarch64.neon.scalar.sqxtn
+    1, // llvm.aarch64.neon.scalar.sqxtun
+    1, // llvm.aarch64.neon.scalar.uqxtn
+    1, // llvm.aarch64.neon.sdot
+    1, // llvm.aarch64.neon.shadd
+    1, // llvm.aarch64.neon.shll
+    1, // llvm.aarch64.neon.shsub
+    1, // llvm.aarch64.neon.smax
+    1, // llvm.aarch64.neon.smaxp
+    1, // llvm.aarch64.neon.smaxv
+    1, // llvm.aarch64.neon.smin
+    1, // llvm.aarch64.neon.sminp
+    1, // llvm.aarch64.neon.sminv
+    1, // llvm.aarch64.neon.smull
+    1, // llvm.aarch64.neon.sqabs
+    1, // llvm.aarch64.neon.sqadd
+    1, // llvm.aarch64.neon.sqdmulh
+    1, // llvm.aarch64.neon.sqdmull
+    1, // llvm.aarch64.neon.sqdmulls.scalar
+    1, // llvm.aarch64.neon.sqneg
+    1, // llvm.aarch64.neon.sqrdmulh
+    1, // llvm.aarch64.neon.sqrshl
+    1, // llvm.aarch64.neon.sqrshrn
+    1, // llvm.aarch64.neon.sqrshrun
+    1, // llvm.aarch64.neon.sqshl
+    1, // llvm.aarch64.neon.sqshlu
+    1, // llvm.aarch64.neon.sqshrn
+    1, // llvm.aarch64.neon.sqshrun
+    1, // llvm.aarch64.neon.sqsub
+    1, // llvm.aarch64.neon.sqxtn
+    1, // llvm.aarch64.neon.sqxtun
+    1, // llvm.aarch64.neon.srhadd
+    1, // llvm.aarch64.neon.srshl
+    1, // llvm.aarch64.neon.sshl
+    1, // llvm.aarch64.neon.sshll
+    19, // llvm.aarch64.neon.st1x2
+    30, // llvm.aarch64.neon.st1x3
+    31, // llvm.aarch64.neon.st1x4
+    19, // llvm.aarch64.neon.st2
+    30, // llvm.aarch64.neon.st2lane
+    30, // llvm.aarch64.neon.st3
+    31, // llvm.aarch64.neon.st3lane
+    31, // llvm.aarch64.neon.st4
+    32, // llvm.aarch64.neon.st4lane
+    1, // llvm.aarch64.neon.subhn
+    1, // llvm.aarch64.neon.suqadd
+    1, // llvm.aarch64.neon.tbl1
+    1, // llvm.aarch64.neon.tbl2
+    1, // llvm.aarch64.neon.tbl3
+    1, // llvm.aarch64.neon.tbl4
+    1, // llvm.aarch64.neon.tbx1
+    1, // llvm.aarch64.neon.tbx2
+    1, // llvm.aarch64.neon.tbx3
+    1, // llvm.aarch64.neon.tbx4
+    1, // llvm.aarch64.neon.uabd
+    1, // llvm.aarch64.neon.uaddlp
+    1, // llvm.aarch64.neon.uaddlv
+    1, // llvm.aarch64.neon.uaddv
+    1, // llvm.aarch64.neon.udot
+    1, // llvm.aarch64.neon.uhadd
+    1, // llvm.aarch64.neon.uhsub
+    1, // llvm.aarch64.neon.umax
+    1, // llvm.aarch64.neon.umaxp
+    1, // llvm.aarch64.neon.umaxv
+    1, // llvm.aarch64.neon.umin
+    1, // llvm.aarch64.neon.uminp
+    1, // llvm.aarch64.neon.uminv
+    1, // llvm.aarch64.neon.umull
+    1, // llvm.aarch64.neon.uqadd
+    1, // llvm.aarch64.neon.uqrshl
+    1, // llvm.aarch64.neon.uqrshrn
+    1, // llvm.aarch64.neon.uqshl
+    1, // llvm.aarch64.neon.uqshrn
+    1, // llvm.aarch64.neon.uqsub
+    1, // llvm.aarch64.neon.uqxtn
+    1, // llvm.aarch64.neon.urecpe
+    1, // llvm.aarch64.neon.urhadd
+    1, // llvm.aarch64.neon.urshl
+    1, // llvm.aarch64.neon.ursqrte
+    1, // llvm.aarch64.neon.ushl
+    1, // llvm.aarch64.neon.ushll
+    1, // llvm.aarch64.neon.usqadd
+    1, // llvm.aarch64.neon.vcopy.lane
+    1, // llvm.aarch64.neon.vcvtfp2fxs
+    1, // llvm.aarch64.neon.vcvtfp2fxu
+    1, // llvm.aarch64.neon.vcvtfp2hf
+    1, // llvm.aarch64.neon.vcvtfxs2fp
+    1, // llvm.aarch64.neon.vcvtfxu2fp
+    1, // llvm.aarch64.neon.vcvthf2fp
+    1, // llvm.aarch64.neon.vsli
+    1, // llvm.aarch64.neon.vsri
+    1, // llvm.aarch64.sdiv
+    1, // llvm.aarch64.sisd.fabd
+    1, // llvm.aarch64.sisd.fcvtxn
+    3, // llvm.aarch64.stlxp
+    3, // llvm.aarch64.stlxr
+    3, // llvm.aarch64.stxp
+    3, // llvm.aarch64.stxr
+    1, // llvm.aarch64.udiv
+    4, // llvm.amdgcn.alignbit
+    4, // llvm.amdgcn.alignbyte
+    18, // llvm.amdgcn.atomic.dec
+    18, // llvm.amdgcn.atomic.inc
+    33, // llvm.amdgcn.break
+    3, // llvm.amdgcn.buffer.atomic.add
+    3, // llvm.amdgcn.buffer.atomic.and
+    3, // llvm.amdgcn.buffer.atomic.cmpswap
+    3, // llvm.amdgcn.buffer.atomic.or
+    3, // llvm.amdgcn.buffer.atomic.smax
+    3, // llvm.amdgcn.buffer.atomic.smin
+    3, // llvm.amdgcn.buffer.atomic.sub
+    3, // llvm.amdgcn.buffer.atomic.swap
+    3, // llvm.amdgcn.buffer.atomic.umax
+    3, // llvm.amdgcn.buffer.atomic.umin
+    3, // llvm.amdgcn.buffer.atomic.xor
+    16, // llvm.amdgcn.buffer.load
+    16, // llvm.amdgcn.buffer.load.format
+    34, // llvm.amdgcn.buffer.store
+    34, // llvm.amdgcn.buffer.store.format
+    3, // llvm.amdgcn.buffer.wbinvl1
+    3, // llvm.amdgcn.buffer.wbinvl1.sc
+    3, // llvm.amdgcn.buffer.wbinvl1.vol
+    4, // llvm.amdgcn.class
+    4, // llvm.amdgcn.cos
+    4, // llvm.amdgcn.cubeid
+    4, // llvm.amdgcn.cubema
+    4, // llvm.amdgcn.cubesc
+    4, // llvm.amdgcn.cubetc
+    4, // llvm.amdgcn.cvt.pk.i16
+    4, // llvm.amdgcn.cvt.pk.u16
+    4, // llvm.amdgcn.cvt.pk.u8.f32
+    4, // llvm.amdgcn.cvt.pknorm.i16
+    4, // llvm.amdgcn.cvt.pknorm.u16
+    4, // llvm.amdgcn.cvt.pkrtz
+    4, // llvm.amdgcn.dispatch.id
+    4, // llvm.amdgcn.dispatch.ptr
+    4, // llvm.amdgcn.div.fixup
+    4, // llvm.amdgcn.div.fmas
+    4, // llvm.amdgcn.div.scale
+    33, // llvm.amdgcn.ds.bpermute
+    18, // llvm.amdgcn.ds.fadd
+    18, // llvm.amdgcn.ds.fmax
+    18, // llvm.amdgcn.ds.fmin
+    33, // llvm.amdgcn.ds.permute
+    33, // llvm.amdgcn.ds.swizzle
+    35, // llvm.amdgcn.else
+    33, // llvm.amdgcn.else.break
+    35, // llvm.amdgcn.end.cf
+    3, // llvm.amdgcn.exp
+    3, // llvm.amdgcn.exp.compr
+    33, // llvm.amdgcn.fcmp
+    4, // llvm.amdgcn.fdiv.fast
+    4, // llvm.amdgcn.fdot2
+    4, // llvm.amdgcn.fmad.ftz
+    4, // llvm.amdgcn.fmed3
+    4, // llvm.amdgcn.fmul.legacy
+    4, // llvm.amdgcn.fract
+    4, // llvm.amdgcn.frexp.exp
+    4, // llvm.amdgcn.frexp.mant
+    4, // llvm.amdgcn.groupstaticsize
+    33, // llvm.amdgcn.icmp
+    35, // llvm.amdgcn.if
+    33, // llvm.amdgcn.if.break
+    3, // llvm.amdgcn.image.atomic.add.1d
+    3, // llvm.amdgcn.image.atomic.add.1darray
+    3, // llvm.amdgcn.image.atomic.add.2d
+    3, // llvm.amdgcn.image.atomic.add.2darray
+    3, // llvm.amdgcn.image.atomic.add.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.add.2dmsaa
+    3, // llvm.amdgcn.image.atomic.add.3d
+    3, // llvm.amdgcn.image.atomic.add.cube
+    3, // llvm.amdgcn.image.atomic.and.1d
+    3, // llvm.amdgcn.image.atomic.and.1darray
+    3, // llvm.amdgcn.image.atomic.and.2d
+    3, // llvm.amdgcn.image.atomic.and.2darray
+    3, // llvm.amdgcn.image.atomic.and.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.and.2dmsaa
+    3, // llvm.amdgcn.image.atomic.and.3d
+    3, // llvm.amdgcn.image.atomic.and.cube
+    3, // llvm.amdgcn.image.atomic.cmpswap.1d
+    3, // llvm.amdgcn.image.atomic.cmpswap.1darray
+    3, // llvm.amdgcn.image.atomic.cmpswap.2d
+    3, // llvm.amdgcn.image.atomic.cmpswap.2darray
+    3, // llvm.amdgcn.image.atomic.cmpswap.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.cmpswap.2dmsaa
+    3, // llvm.amdgcn.image.atomic.cmpswap.3d
+    3, // llvm.amdgcn.image.atomic.cmpswap.cube
+    3, // llvm.amdgcn.image.atomic.dec.1d
+    3, // llvm.amdgcn.image.atomic.dec.1darray
+    3, // llvm.amdgcn.image.atomic.dec.2d
+    3, // llvm.amdgcn.image.atomic.dec.2darray
+    3, // llvm.amdgcn.image.atomic.dec.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.dec.2dmsaa
+    3, // llvm.amdgcn.image.atomic.dec.3d
+    3, // llvm.amdgcn.image.atomic.dec.cube
+    3, // llvm.amdgcn.image.atomic.inc.1d
+    3, // llvm.amdgcn.image.atomic.inc.1darray
+    3, // llvm.amdgcn.image.atomic.inc.2d
+    3, // llvm.amdgcn.image.atomic.inc.2darray
+    3, // llvm.amdgcn.image.atomic.inc.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.inc.2dmsaa
+    3, // llvm.amdgcn.image.atomic.inc.3d
+    3, // llvm.amdgcn.image.atomic.inc.cube
+    3, // llvm.amdgcn.image.atomic.or.1d
+    3, // llvm.amdgcn.image.atomic.or.1darray
+    3, // llvm.amdgcn.image.atomic.or.2d
+    3, // llvm.amdgcn.image.atomic.or.2darray
+    3, // llvm.amdgcn.image.atomic.or.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.or.2dmsaa
+    3, // llvm.amdgcn.image.atomic.or.3d
+    3, // llvm.amdgcn.image.atomic.or.cube
+    3, // llvm.amdgcn.image.atomic.smax.1d
+    3, // llvm.amdgcn.image.atomic.smax.1darray
+    3, // llvm.amdgcn.image.atomic.smax.2d
+    3, // llvm.amdgcn.image.atomic.smax.2darray
+    3, // llvm.amdgcn.image.atomic.smax.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.smax.2dmsaa
+    3, // llvm.amdgcn.image.atomic.smax.3d
+    3, // llvm.amdgcn.image.atomic.smax.cube
+    3, // llvm.amdgcn.image.atomic.smin.1d
+    3, // llvm.amdgcn.image.atomic.smin.1darray
+    3, // llvm.amdgcn.image.atomic.smin.2d
+    3, // llvm.amdgcn.image.atomic.smin.2darray
+    3, // llvm.amdgcn.image.atomic.smin.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.smin.2dmsaa
+    3, // llvm.amdgcn.image.atomic.smin.3d
+    3, // llvm.amdgcn.image.atomic.smin.cube
+    3, // llvm.amdgcn.image.atomic.sub.1d
+    3, // llvm.amdgcn.image.atomic.sub.1darray
+    3, // llvm.amdgcn.image.atomic.sub.2d
+    3, // llvm.amdgcn.image.atomic.sub.2darray
+    3, // llvm.amdgcn.image.atomic.sub.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.sub.2dmsaa
+    3, // llvm.amdgcn.image.atomic.sub.3d
+    3, // llvm.amdgcn.image.atomic.sub.cube
+    3, // llvm.amdgcn.image.atomic.swap.1d
+    3, // llvm.amdgcn.image.atomic.swap.1darray
+    3, // llvm.amdgcn.image.atomic.swap.2d
+    3, // llvm.amdgcn.image.atomic.swap.2darray
+    3, // llvm.amdgcn.image.atomic.swap.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.swap.2dmsaa
+    3, // llvm.amdgcn.image.atomic.swap.3d
+    3, // llvm.amdgcn.image.atomic.swap.cube
+    3, // llvm.amdgcn.image.atomic.umax.1d
+    3, // llvm.amdgcn.image.atomic.umax.1darray
+    3, // llvm.amdgcn.image.atomic.umax.2d
+    3, // llvm.amdgcn.image.atomic.umax.2darray
+    3, // llvm.amdgcn.image.atomic.umax.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.umax.2dmsaa
+    3, // llvm.amdgcn.image.atomic.umax.3d
+    3, // llvm.amdgcn.image.atomic.umax.cube
+    3, // llvm.amdgcn.image.atomic.umin.1d
+    3, // llvm.amdgcn.image.atomic.umin.1darray
+    3, // llvm.amdgcn.image.atomic.umin.2d
+    3, // llvm.amdgcn.image.atomic.umin.2darray
+    3, // llvm.amdgcn.image.atomic.umin.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.umin.2dmsaa
+    3, // llvm.amdgcn.image.atomic.umin.3d
+    3, // llvm.amdgcn.image.atomic.umin.cube
+    3, // llvm.amdgcn.image.atomic.xor.1d
+    3, // llvm.amdgcn.image.atomic.xor.1darray
+    3, // llvm.amdgcn.image.atomic.xor.2d
+    3, // llvm.amdgcn.image.atomic.xor.2darray
+    3, // llvm.amdgcn.image.atomic.xor.2darraymsaa
+    3, // llvm.amdgcn.image.atomic.xor.2dmsaa
+    3, // llvm.amdgcn.image.atomic.xor.3d
+    3, // llvm.amdgcn.image.atomic.xor.cube
+    16, // llvm.amdgcn.image.gather4.2d
+    16, // llvm.amdgcn.image.gather4.2darray
+    16, // llvm.amdgcn.image.gather4.b.2d
+    16, // llvm.amdgcn.image.gather4.b.2darray
+    16, // llvm.amdgcn.image.gather4.b.cl.2d
+    16, // llvm.amdgcn.image.gather4.b.cl.2darray
+    16, // llvm.amdgcn.image.gather4.b.cl.cube
+    16, // llvm.amdgcn.image.gather4.b.cl.o.2d
+    16, // llvm.amdgcn.image.gather4.b.cl.o.2darray
+    16, // llvm.amdgcn.image.gather4.b.cl.o.cube
+    16, // llvm.amdgcn.image.gather4.b.cube
+    16, // llvm.amdgcn.image.gather4.b.o.2d
+    16, // llvm.amdgcn.image.gather4.b.o.2darray
+    16, // llvm.amdgcn.image.gather4.b.o.cube
+    16, // llvm.amdgcn.image.gather4.c.2d
+    16, // llvm.amdgcn.image.gather4.c.2darray
+    16, // llvm.amdgcn.image.gather4.c.b.2d
+    16, // llvm.amdgcn.image.gather4.c.b.2darray
+    16, // llvm.amdgcn.image.gather4.c.b.cl.2d
+    16, // llvm.amdgcn.image.gather4.c.b.cl.2darray
+    16, // llvm.amdgcn.image.gather4.c.b.cl.cube
+    16, // llvm.amdgcn.image.gather4.c.b.cl.o.2d
+    16, // llvm.amdgcn.image.gather4.c.b.cl.o.2darray
+    16, // llvm.amdgcn.image.gather4.c.b.cl.o.cube
+    16, // llvm.amdgcn.image.gather4.c.b.cube
+    16, // llvm.amdgcn.image.gather4.c.b.o.2d
+    16, // llvm.amdgcn.image.gather4.c.b.o.2darray
+    16, // llvm.amdgcn.image.gather4.c.b.o.cube
+    16, // llvm.amdgcn.image.gather4.c.cl.2d
+    16, // llvm.amdgcn.image.gather4.c.cl.2darray
+    16, // llvm.amdgcn.image.gather4.c.cl.cube
+    16, // llvm.amdgcn.image.gather4.c.cl.o.2d
+    16, // llvm.amdgcn.image.gather4.c.cl.o.2darray
+    16, // llvm.amdgcn.image.gather4.c.cl.o.cube
+    16, // llvm.amdgcn.image.gather4.c.cube
+    16, // llvm.amdgcn.image.gather4.c.l.2d
+    16, // llvm.amdgcn.image.gather4.c.l.2darray
+    16, // llvm.amdgcn.image.gather4.c.l.cube
+    16, // llvm.amdgcn.image.gather4.c.l.o.2d
+    16, // llvm.amdgcn.image.gather4.c.l.o.2darray
+    16, // llvm.amdgcn.image.gather4.c.l.o.cube
+    16, // llvm.amdgcn.image.gather4.c.lz.2d
+    16, // llvm.amdgcn.image.gather4.c.lz.2darray
+    16, // llvm.amdgcn.image.gather4.c.lz.cube
+    16, // llvm.amdgcn.image.gather4.c.lz.o.2d
+    16, // llvm.amdgcn.image.gather4.c.lz.o.2darray
+    16, // llvm.amdgcn.image.gather4.c.lz.o.cube
+    16, // llvm.amdgcn.image.gather4.c.o.2d
+    16, // llvm.amdgcn.image.gather4.c.o.2darray
+    16, // llvm.amdgcn.image.gather4.c.o.cube
+    16, // llvm.amdgcn.image.gather4.cl.2d
+    16, // llvm.amdgcn.image.gather4.cl.2darray
+    16, // llvm.amdgcn.image.gather4.cl.cube
+    16, // llvm.amdgcn.image.gather4.cl.o.2d
+    16, // llvm.amdgcn.image.gather4.cl.o.2darray
+    16, // llvm.amdgcn.image.gather4.cl.o.cube
+    16, // llvm.amdgcn.image.gather4.cube
+    16, // llvm.amdgcn.image.gather4.l.2d
+    16, // llvm.amdgcn.image.gather4.l.2darray
+    16, // llvm.amdgcn.image.gather4.l.cube
+    16, // llvm.amdgcn.image.gather4.l.o.2d
+    16, // llvm.amdgcn.image.gather4.l.o.2darray
+    16, // llvm.amdgcn.image.gather4.l.o.cube
+    16, // llvm.amdgcn.image.gather4.lz.2d
+    16, // llvm.amdgcn.image.gather4.lz.2darray
+    16, // llvm.amdgcn.image.gather4.lz.cube
+    16, // llvm.amdgcn.image.gather4.lz.o.2d
+    16, // llvm.amdgcn.image.gather4.lz.o.2darray
+    16, // llvm.amdgcn.image.gather4.lz.o.cube
+    16, // llvm.amdgcn.image.gather4.o.2d
+    16, // llvm.amdgcn.image.gather4.o.2darray
+    16, // llvm.amdgcn.image.gather4.o.cube
+    1, // llvm.amdgcn.image.getlod.1d
+    1, // llvm.amdgcn.image.getlod.1darray
+    1, // llvm.amdgcn.image.getlod.2d
+    1, // llvm.amdgcn.image.getlod.2darray
+    1, // llvm.amdgcn.image.getlod.3d
+    1, // llvm.amdgcn.image.getlod.cube
+    1, // llvm.amdgcn.image.getresinfo.1d
+    1, // llvm.amdgcn.image.getresinfo.1darray
+    1, // llvm.amdgcn.image.getresinfo.2d
+    1, // llvm.amdgcn.image.getresinfo.2darray
+    1, // llvm.amdgcn.image.getresinfo.2darraymsaa
+    1, // llvm.amdgcn.image.getresinfo.2dmsaa
+    1, // llvm.amdgcn.image.getresinfo.3d
+    1, // llvm.amdgcn.image.getresinfo.cube
+    16, // llvm.amdgcn.image.load.1d
+    16, // llvm.amdgcn.image.load.1darray
+    16, // llvm.amdgcn.image.load.2d
+    16, // llvm.amdgcn.image.load.2darray
+    16, // llvm.amdgcn.image.load.2darraymsaa
+    16, // llvm.amdgcn.image.load.2dmsaa
+    16, // llvm.amdgcn.image.load.3d
+    16, // llvm.amdgcn.image.load.cube
+    16, // llvm.amdgcn.image.load.mip.1d
+    16, // llvm.amdgcn.image.load.mip.1darray
+    16, // llvm.amdgcn.image.load.mip.2d
+    16, // llvm.amdgcn.image.load.mip.2darray
+    16, // llvm.amdgcn.image.load.mip.3d
+    16, // llvm.amdgcn.image.load.mip.cube
+    16, // llvm.amdgcn.image.sample.1d
+    16, // llvm.amdgcn.image.sample.1darray
+    16, // llvm.amdgcn.image.sample.2d
+    16, // llvm.amdgcn.image.sample.2darray
+    16, // llvm.amdgcn.image.sample.3d
+    16, // llvm.amdgcn.image.sample.b.1d
+    16, // llvm.amdgcn.image.sample.b.1darray
+    16, // llvm.amdgcn.image.sample.b.2d
+    16, // llvm.amdgcn.image.sample.b.2darray
+    16, // llvm.amdgcn.image.sample.b.3d
+    16, // llvm.amdgcn.image.sample.b.cl.1d
+    16, // llvm.amdgcn.image.sample.b.cl.1darray
+    16, // llvm.amdgcn.image.sample.b.cl.2d
+    16, // llvm.amdgcn.image.sample.b.cl.2darray
+    16, // llvm.amdgcn.image.sample.b.cl.3d
+    16, // llvm.amdgcn.image.sample.b.cl.cube
+    16, // llvm.amdgcn.image.sample.b.cl.o.1d
+    16, // llvm.amdgcn.image.sample.b.cl.o.1darray
+    16, // llvm.amdgcn.image.sample.b.cl.o.2d
+    16, // llvm.amdgcn.image.sample.b.cl.o.2darray
+    16, // llvm.amdgcn.image.sample.b.cl.o.3d
+    16, // llvm.amdgcn.image.sample.b.cl.o.cube
+    16, // llvm.amdgcn.image.sample.b.cube
+    16, // llvm.amdgcn.image.sample.b.o.1d
+    16, // llvm.amdgcn.image.sample.b.o.1darray
+    16, // llvm.amdgcn.image.sample.b.o.2d
+    16, // llvm.amdgcn.image.sample.b.o.2darray
+    16, // llvm.amdgcn.image.sample.b.o.3d
+    16, // llvm.amdgcn.image.sample.b.o.cube
+    16, // llvm.amdgcn.image.sample.c.1d
+    16, // llvm.amdgcn.image.sample.c.1darray
+    16, // llvm.amdgcn.image.sample.c.2d
+    16, // llvm.amdgcn.image.sample.c.2darray
+    16, // llvm.amdgcn.image.sample.c.3d
+    16, // llvm.amdgcn.image.sample.c.b.1d
+    16, // llvm.amdgcn.image.sample.c.b.1darray
+    16, // llvm.amdgcn.image.sample.c.b.2d
+    16, // llvm.amdgcn.image.sample.c.b.2darray
+    16, // llvm.amdgcn.image.sample.c.b.3d
+    16, // llvm.amdgcn.image.sample.c.b.cl.1d
+    16, // llvm.amdgcn.image.sample.c.b.cl.1darray
+    16, // llvm.amdgcn.image.sample.c.b.cl.2d
+    16, // llvm.amdgcn.image.sample.c.b.cl.2darray
+    16, // llvm.amdgcn.image.sample.c.b.cl.3d
+    16, // llvm.amdgcn.image.sample.c.b.cl.cube
+    16, // llvm.amdgcn.image.sample.c.b.cl.o.1d
+    16, // llvm.amdgcn.image.sample.c.b.cl.o.1darray
+    16, // llvm.amdgcn.image.sample.c.b.cl.o.2d
+    16, // llvm.amdgcn.image.sample.c.b.cl.o.2darray
+    16, // llvm.amdgcn.image.sample.c.b.cl.o.3d
+    16, // llvm.amdgcn.image.sample.c.b.cl.o.cube
+    16, // llvm.amdgcn.image.sample.c.b.cube
+    16, // llvm.amdgcn.image.sample.c.b.o.1d
+    16, // llvm.amdgcn.image.sample.c.b.o.1darray
+    16, // llvm.amdgcn.image.sample.c.b.o.2d
+    16, // llvm.amdgcn.image.sample.c.b.o.2darray
+    16, // llvm.amdgcn.image.sample.c.b.o.3d
+    16, // llvm.amdgcn.image.sample.c.b.o.cube
+    16, // llvm.amdgcn.image.sample.c.cd.1d
+    16, // llvm.amdgcn.image.sample.c.cd.1darray
+    16, // llvm.amdgcn.image.sample.c.cd.2d
+    16, // llvm.amdgcn.image.sample.c.cd.2darray
+    16, // llvm.amdgcn.image.sample.c.cd.3d
+    16, // llvm.amdgcn.image.sample.c.cd.cl.1d
+    16, // llvm.amdgcn.image.sample.c.cd.cl.1darray
+    16, // llvm.amdgcn.image.sample.c.cd.cl.2d
+    16, // llvm.amdgcn.image.sample.c.cd.cl.2darray
+    16, // llvm.amdgcn.image.sample.c.cd.cl.3d
+    16, // llvm.amdgcn.image.sample.c.cd.cl.cube
+    16, // llvm.amdgcn.image.sample.c.cd.cl.o.1d
+    16, // llvm.amdgcn.image.sample.c.cd.cl.o.1darray
+    16, // llvm.amdgcn.image.sample.c.cd.cl.o.2d
+    16, // llvm.amdgcn.image.sample.c.cd.cl.o.2darray
+    16, // llvm.amdgcn.image.sample.c.cd.cl.o.3d
+    16, // llvm.amdgcn.image.sample.c.cd.cl.o.cube
+    16, // llvm.amdgcn.image.sample.c.cd.cube
+    16, // llvm.amdgcn.image.sample.c.cd.o.1d
+    16, // llvm.amdgcn.image.sample.c.cd.o.1darray
+    16, // llvm.amdgcn.image.sample.c.cd.o.2d
+    16, // llvm.amdgcn.image.sample.c.cd.o.2darray
+    16, // llvm.amdgcn.image.sample.c.cd.o.3d
+    16, // llvm.amdgcn.image.sample.c.cd.o.cube
+    16, // llvm.amdgcn.image.sample.c.cl.1d
+    16, // llvm.amdgcn.image.sample.c.cl.1darray
+    16, // llvm.amdgcn.image.sample.c.cl.2d
+    16, // llvm.amdgcn.image.sample.c.cl.2darray
+    16, // llvm.amdgcn.image.sample.c.cl.3d
+    16, // llvm.amdgcn.image.sample.c.cl.cube
+    16, // llvm.amdgcn.image.sample.c.cl.o.1d
+    16, // llvm.amdgcn.image.sample.c.cl.o.1darray
+    16, // llvm.amdgcn.image.sample.c.cl.o.2d
+    16, // llvm.amdgcn.image.sample.c.cl.o.2darray
+    16, // llvm.amdgcn.image.sample.c.cl.o.3d
+    16, // llvm.amdgcn.image.sample.c.cl.o.cube
+    16, // llvm.amdgcn.image.sample.c.cube
+    16, // llvm.amdgcn.image.sample.c.d.1d
+    16, // llvm.amdgcn.image.sample.c.d.1darray
+    16, // llvm.amdgcn.image.sample.c.d.2d
+    16, // llvm.amdgcn.image.sample.c.d.2darray
+    16, // llvm.amdgcn.image.sample.c.d.3d
+    16, // llvm.amdgcn.image.sample.c.d.cl.1d
+    16, // llvm.amdgcn.image.sample.c.d.cl.1darray
+    16, // llvm.amdgcn.image.sample.c.d.cl.2d
+    16, // llvm.amdgcn.image.sample.c.d.cl.2darray
+    16, // llvm.amdgcn.image.sample.c.d.cl.3d
+    16, // llvm.amdgcn.image.sample.c.d.cl.cube
+    16, // llvm.amdgcn.image.sample.c.d.cl.o.1d
+    16, // llvm.amdgcn.image.sample.c.d.cl.o.1darray
+    16, // llvm.amdgcn.image.sample.c.d.cl.o.2d
+    16, // llvm.amdgcn.image.sample.c.d.cl.o.2darray
+    16, // llvm.amdgcn.image.sample.c.d.cl.o.3d
+    16, // llvm.amdgcn.image.sample.c.d.cl.o.cube
+    16, // llvm.amdgcn.image.sample.c.d.cube
+    16, // llvm.amdgcn.image.sample.c.d.o.1d
+    16, // llvm.amdgcn.image.sample.c.d.o.1darray
+    16, // llvm.amdgcn.image.sample.c.d.o.2d
+    16, // llvm.amdgcn.image.sample.c.d.o.2darray
+    16, // llvm.amdgcn.image.sample.c.d.o.3d
+    16, // llvm.amdgcn.image.sample.c.d.o.cube
+    16, // llvm.amdgcn.image.sample.c.l.1d
+    16, // llvm.amdgcn.image.sample.c.l.1darray
+    16, // llvm.amdgcn.image.sample.c.l.2d
+    16, // llvm.amdgcn.image.sample.c.l.2darray
+    16, // llvm.amdgcn.image.sample.c.l.3d
+    16, // llvm.amdgcn.image.sample.c.l.cube
+    16, // llvm.amdgcn.image.sample.c.l.o.1d
+    16, // llvm.amdgcn.image.sample.c.l.o.1darray
+    16, // llvm.amdgcn.image.sample.c.l.o.2d
+    16, // llvm.amdgcn.image.sample.c.l.o.2darray
+    16, // llvm.amdgcn.image.sample.c.l.o.3d
+    16, // llvm.amdgcn.image.sample.c.l.o.cube
+    16, // llvm.amdgcn.image.sample.c.lz.1d
+    16, // llvm.amdgcn.image.sample.c.lz.1darray
+    16, // llvm.amdgcn.image.sample.c.lz.2d
+    16, // llvm.amdgcn.image.sample.c.lz.2darray
+    16, // llvm.amdgcn.image.sample.c.lz.3d
+    16, // llvm.amdgcn.image.sample.c.lz.cube
+    16, // llvm.amdgcn.image.sample.c.lz.o.1d
+    16, // llvm.amdgcn.image.sample.c.lz.o.1darray
+    16, // llvm.amdgcn.image.sample.c.lz.o.2d
+    16, // llvm.amdgcn.image.sample.c.lz.o.2darray
+    16, // llvm.amdgcn.image.sample.c.lz.o.3d
+    16, // llvm.amdgcn.image.sample.c.lz.o.cube
+    16, // llvm.amdgcn.image.sample.c.o.1d
+    16, // llvm.amdgcn.image.sample.c.o.1darray
+    16, // llvm.amdgcn.image.sample.c.o.2d
+    16, // llvm.amdgcn.image.sample.c.o.2darray
+    16, // llvm.amdgcn.image.sample.c.o.3d
+    16, // llvm.amdgcn.image.sample.c.o.cube
+    16, // llvm.amdgcn.image.sample.cd.1d
+    16, // llvm.amdgcn.image.sample.cd.1darray
+    16, // llvm.amdgcn.image.sample.cd.2d
+    16, // llvm.amdgcn.image.sample.cd.2darray
+    16, // llvm.amdgcn.image.sample.cd.3d
+    16, // llvm.amdgcn.image.sample.cd.cl.1d
+    16, // llvm.amdgcn.image.sample.cd.cl.1darray
+    16, // llvm.amdgcn.image.sample.cd.cl.2d
+    16, // llvm.amdgcn.image.sample.cd.cl.2darray
+    16, // llvm.amdgcn.image.sample.cd.cl.3d
+    16, // llvm.amdgcn.image.sample.cd.cl.cube
+    16, // llvm.amdgcn.image.sample.cd.cl.o.1d
+    16, // llvm.amdgcn.image.sample.cd.cl.o.1darray
+    16, // llvm.amdgcn.image.sample.cd.cl.o.2d
+    16, // llvm.amdgcn.image.sample.cd.cl.o.2darray
+    16, // llvm.amdgcn.image.sample.cd.cl.o.3d
+    16, // llvm.amdgcn.image.sample.cd.cl.o.cube
+    16, // llvm.amdgcn.image.sample.cd.cube
+    16, // llvm.amdgcn.image.sample.cd.o.1d
+    16, // llvm.amdgcn.image.sample.cd.o.1darray
+    16, // llvm.amdgcn.image.sample.cd.o.2d
+    16, // llvm.amdgcn.image.sample.cd.o.2darray
+    16, // llvm.amdgcn.image.sample.cd.o.3d
+    16, // llvm.amdgcn.image.sample.cd.o.cube
+    16, // llvm.amdgcn.image.sample.cl.1d
+    16, // llvm.amdgcn.image.sample.cl.1darray
+    16, // llvm.amdgcn.image.sample.cl.2d
+    16, // llvm.amdgcn.image.sample.cl.2darray
+    16, // llvm.amdgcn.image.sample.cl.3d
+    16, // llvm.amdgcn.image.sample.cl.cube
+    16, // llvm.amdgcn.image.sample.cl.o.1d
+    16, // llvm.amdgcn.image.sample.cl.o.1darray
+    16, // llvm.amdgcn.image.sample.cl.o.2d
+    16, // llvm.amdgcn.image.sample.cl.o.2darray
+    16, // llvm.amdgcn.image.sample.cl.o.3d
+    16, // llvm.amdgcn.image.sample.cl.o.cube
+    16, // llvm.amdgcn.image.sample.cube
+    16, // llvm.amdgcn.image.sample.d.1d
+    16, // llvm.amdgcn.image.sample.d.1darray
+    16, // llvm.amdgcn.image.sample.d.2d
+    16, // llvm.amdgcn.image.sample.d.2darray
+    16, // llvm.amdgcn.image.sample.d.3d
+    16, // llvm.amdgcn.image.sample.d.cl.1d
+    16, // llvm.amdgcn.image.sample.d.cl.1darray
+    16, // llvm.amdgcn.image.sample.d.cl.2d
+    16, // llvm.amdgcn.image.sample.d.cl.2darray
+    16, // llvm.amdgcn.image.sample.d.cl.3d
+    16, // llvm.amdgcn.image.sample.d.cl.cube
+    16, // llvm.amdgcn.image.sample.d.cl.o.1d
+    16, // llvm.amdgcn.image.sample.d.cl.o.1darray
+    16, // llvm.amdgcn.image.sample.d.cl.o.2d
+    16, // llvm.amdgcn.image.sample.d.cl.o.2darray
+    16, // llvm.amdgcn.image.sample.d.cl.o.3d
+    16, // llvm.amdgcn.image.sample.d.cl.o.cube
+    16, // llvm.amdgcn.image.sample.d.cube
+    16, // llvm.amdgcn.image.sample.d.o.1d
+    16, // llvm.amdgcn.image.sample.d.o.1darray
+    16, // llvm.amdgcn.image.sample.d.o.2d
+    16, // llvm.amdgcn.image.sample.d.o.2darray
+    16, // llvm.amdgcn.image.sample.d.o.3d
+    16, // llvm.amdgcn.image.sample.d.o.cube
+    16, // llvm.amdgcn.image.sample.l.1d
+    16, // llvm.amdgcn.image.sample.l.1darray
+    16, // llvm.amdgcn.image.sample.l.2d
+    16, // llvm.amdgcn.image.sample.l.2darray
+    16, // llvm.amdgcn.image.sample.l.3d
+    16, // llvm.amdgcn.image.sample.l.cube
+    16, // llvm.amdgcn.image.sample.l.o.1d
+    16, // llvm.amdgcn.image.sample.l.o.1darray
+    16, // llvm.amdgcn.image.sample.l.o.2d
+    16, // llvm.amdgcn.image.sample.l.o.2darray
+    16, // llvm.amdgcn.image.sample.l.o.3d
+    16, // llvm.amdgcn.image.sample.l.o.cube
+    16, // llvm.amdgcn.image.sample.lz.1d
+    16, // llvm.amdgcn.image.sample.lz.1darray
+    16, // llvm.amdgcn.image.sample.lz.2d
+    16, // llvm.amdgcn.image.sample.lz.2darray
+    16, // llvm.amdgcn.image.sample.lz.3d
+    16, // llvm.amdgcn.image.sample.lz.cube
+    16, // llvm.amdgcn.image.sample.lz.o.1d
+    16, // llvm.amdgcn.image.sample.lz.o.1darray
+    16, // llvm.amdgcn.image.sample.lz.o.2d
+    16, // llvm.amdgcn.image.sample.lz.o.2darray
+    16, // llvm.amdgcn.image.sample.lz.o.3d
+    16, // llvm.amdgcn.image.sample.lz.o.cube
+    16, // llvm.amdgcn.image.sample.o.1d
+    16, // llvm.amdgcn.image.sample.o.1darray
+    16, // llvm.amdgcn.image.sample.o.2d
+    16, // llvm.amdgcn.image.sample.o.2darray
+    16, // llvm.amdgcn.image.sample.o.3d
+    16, // llvm.amdgcn.image.sample.o.cube
+    34, // llvm.amdgcn.image.store.1d
+    34, // llvm.amdgcn.image.store.1darray
+    34, // llvm.amdgcn.image.store.2d
+    34, // llvm.amdgcn.image.store.2darray
+    34, // llvm.amdgcn.image.store.2darraymsaa
+    34, // llvm.amdgcn.image.store.2dmsaa
+    34, // llvm.amdgcn.image.store.3d
+    34, // llvm.amdgcn.image.store.cube
+    34, // llvm.amdgcn.image.store.mip.1d
+    34, // llvm.amdgcn.image.store.mip.1darray
+    34, // llvm.amdgcn.image.store.mip.2d
+    34, // llvm.amdgcn.image.store.mip.2darray
+    34, // llvm.amdgcn.image.store.mip.3d
+    34, // llvm.amdgcn.image.store.mip.cube
+    4, // llvm.amdgcn.implicit.buffer.ptr
+    4, // llvm.amdgcn.implicitarg.ptr
+    35, // llvm.amdgcn.init.exec
+    35, // llvm.amdgcn.init.exec.from.input
+    4, // llvm.amdgcn.interp.mov
+    4, // llvm.amdgcn.interp.p1
+    4, // llvm.amdgcn.interp.p2
+    4, // llvm.amdgcn.kernarg.segment.ptr
+    3, // llvm.amdgcn.kill
+    4, // llvm.amdgcn.ldexp
+    4, // llvm.amdgcn.lerp
+    4, // llvm.amdgcn.log.clamp
+    35, // llvm.amdgcn.loop
+    1, // llvm.amdgcn.mbcnt.hi
+    1, // llvm.amdgcn.mbcnt.lo
+    33, // llvm.amdgcn.mov.dpp
+    4, // llvm.amdgcn.mqsad.pk.u16.u8
+    4, // llvm.amdgcn.mqsad.u32.u8
+    4, // llvm.amdgcn.msad.u8
+    1, // llvm.amdgcn.ps.live
+    4, // llvm.amdgcn.qsad.pk.u16.u8
+    4, // llvm.amdgcn.queue.ptr
+    4, // llvm.amdgcn.rcp
+    4, // llvm.amdgcn.rcp.legacy
+    33, // llvm.amdgcn.readfirstlane
+    33, // llvm.amdgcn.readlane
+    4, // llvm.amdgcn.rsq
+    4, // llvm.amdgcn.rsq.clamp
+    4, // llvm.amdgcn.rsq.legacy
+    35, // llvm.amdgcn.s.barrier
+    3, // llvm.amdgcn.s.dcache.inv
+    3, // llvm.amdgcn.s.dcache.inv.vol
+    3, // llvm.amdgcn.s.dcache.wb
+    3, // llvm.amdgcn.s.dcache.wb.vol
+    3, // llvm.amdgcn.s.decperflevel
+    4, // llvm.amdgcn.s.getpc
+    36, // llvm.amdgcn.s.getreg
+    3, // llvm.amdgcn.s.incperflevel
+    16, // llvm.amdgcn.s.memrealtime
+    16, // llvm.amdgcn.s.memtime
+    3, // llvm.amdgcn.s.sendmsg
+    3, // llvm.amdgcn.s.sendmsghalt
+    3, // llvm.amdgcn.s.sleep
+    3, // llvm.amdgcn.s.waitcnt
+    4, // llvm.amdgcn.sad.hi.u8
+    4, // llvm.amdgcn.sad.u16
+    4, // llvm.amdgcn.sad.u8
+    4, // llvm.amdgcn.sbfe
+    4, // llvm.amdgcn.sdot2
+    4, // llvm.amdgcn.sdot4
+    4, // llvm.amdgcn.sdot8
+    33, // llvm.amdgcn.set.inactive
+    4, // llvm.amdgcn.sffbh
+    4, // llvm.amdgcn.sin
+    16, // llvm.amdgcn.tbuffer.load
+    34, // llvm.amdgcn.tbuffer.store
+    4, // llvm.amdgcn.trig.preop
+    4, // llvm.amdgcn.ubfe
+    4, // llvm.amdgcn.udot2
+    4, // llvm.amdgcn.udot4
+    4, // llvm.amdgcn.udot8
+    35, // llvm.amdgcn.unreachable
+    33, // llvm.amdgcn.update.dpp
+    35, // llvm.amdgcn.wave.barrier
+    4, // llvm.amdgcn.workgroup.id.x
+    4, // llvm.amdgcn.workgroup.id.y
+    4, // llvm.amdgcn.workgroup.id.z
+    4, // llvm.amdgcn.workitem.id.x
+    4, // llvm.amdgcn.workitem.id.y
+    4, // llvm.amdgcn.workitem.id.z
+    4, // llvm.amdgcn.wqm
+    33, // llvm.amdgcn.wqm.vote
+    33, // llvm.amdgcn.writelane
+    4, // llvm.amdgcn.wwm
+    3, // llvm.arm.cdp
+    3, // llvm.arm.cdp2
+    3, // llvm.arm.clrex
+    1, // llvm.arm.crc32b
+    1, // llvm.arm.crc32cb
+    1, // llvm.arm.crc32ch
+    1, // llvm.arm.crc32cw
+    1, // llvm.arm.crc32h
+    1, // llvm.arm.crc32w
+    3, // llvm.arm.dbg
+    3, // llvm.arm.dmb
+    3, // llvm.arm.dsb
+    3, // llvm.arm.get.fpscr
+    3, // llvm.arm.hint
+    3, // llvm.arm.isb
+    3, // llvm.arm.ldaex
+    3, // llvm.arm.ldaexd
+    3, // llvm.arm.ldc
+    3, // llvm.arm.ldc2
+    3, // llvm.arm.ldc2l
+    3, // llvm.arm.ldcl
+    3, // llvm.arm.ldrex
+    3, // llvm.arm.ldrexd
+    3, // llvm.arm.mcr
+    3, // llvm.arm.mcr2
+    3, // llvm.arm.mcrr
+    3, // llvm.arm.mcrr2
+    3, // llvm.arm.mrc
+    3, // llvm.arm.mrc2
+    3, // llvm.arm.mrrc
+    3, // llvm.arm.mrrc2
+    1, // llvm.arm.neon.aesd
+    1, // llvm.arm.neon.aese
+    1, // llvm.arm.neon.aesimc
+    1, // llvm.arm.neon.aesmc
+    1, // llvm.arm.neon.sdot
+    1, // llvm.arm.neon.sha1c
+    1, // llvm.arm.neon.sha1h
+    1, // llvm.arm.neon.sha1m
+    1, // llvm.arm.neon.sha1p
+    1, // llvm.arm.neon.sha1su0
+    1, // llvm.arm.neon.sha1su1
+    1, // llvm.arm.neon.sha256h
+    1, // llvm.arm.neon.sha256h2
+    1, // llvm.arm.neon.sha256su0
+    1, // llvm.arm.neon.sha256su1
+    1, // llvm.arm.neon.udot
+    1, // llvm.arm.neon.vabds
+    1, // llvm.arm.neon.vabdu
+    1, // llvm.arm.neon.vabs
+    1, // llvm.arm.neon.vacge
+    1, // llvm.arm.neon.vacgt
+    1, // llvm.arm.neon.vbsl
+    1, // llvm.arm.neon.vcls
+    1, // llvm.arm.neon.vcvtas
+    1, // llvm.arm.neon.vcvtau
+    1, // llvm.arm.neon.vcvtfp2fxs
+    1, // llvm.arm.neon.vcvtfp2fxu
+    1, // llvm.arm.neon.vcvtfp2hf
+    1, // llvm.arm.neon.vcvtfxs2fp
+    1, // llvm.arm.neon.vcvtfxu2fp
+    1, // llvm.arm.neon.vcvthf2fp
+    1, // llvm.arm.neon.vcvtms
+    1, // llvm.arm.neon.vcvtmu
+    1, // llvm.arm.neon.vcvtns
+    1, // llvm.arm.neon.vcvtnu
+    1, // llvm.arm.neon.vcvtps
+    1, // llvm.arm.neon.vcvtpu
+    1, // llvm.arm.neon.vhadds
+    1, // llvm.arm.neon.vhaddu
+    1, // llvm.arm.neon.vhsubs
+    1, // llvm.arm.neon.vhsubu
+    2, // llvm.arm.neon.vld1
+    2, // llvm.arm.neon.vld1x2
+    2, // llvm.arm.neon.vld1x3
+    2, // llvm.arm.neon.vld1x4
+    2, // llvm.arm.neon.vld2
+    2, // llvm.arm.neon.vld2dup
+    2, // llvm.arm.neon.vld2lane
+    2, // llvm.arm.neon.vld3
+    2, // llvm.arm.neon.vld3dup
+    2, // llvm.arm.neon.vld3lane
+    2, // llvm.arm.neon.vld4
+    2, // llvm.arm.neon.vld4dup
+    2, // llvm.arm.neon.vld4lane
+    1, // llvm.arm.neon.vmaxnm
+    1, // llvm.arm.neon.vmaxs
+    1, // llvm.arm.neon.vmaxu
+    1, // llvm.arm.neon.vminnm
+    1, // llvm.arm.neon.vmins
+    1, // llvm.arm.neon.vminu
+    1, // llvm.arm.neon.vmullp
+    1, // llvm.arm.neon.vmulls
+    1, // llvm.arm.neon.vmullu
+    1, // llvm.arm.neon.vmulp
+    1, // llvm.arm.neon.vpadals
+    1, // llvm.arm.neon.vpadalu
+    1, // llvm.arm.neon.vpadd
+    1, // llvm.arm.neon.vpaddls
+    1, // llvm.arm.neon.vpaddlu
+    1, // llvm.arm.neon.vpmaxs
+    1, // llvm.arm.neon.vpmaxu
+    1, // llvm.arm.neon.vpmins
+    1, // llvm.arm.neon.vpminu
+    1, // llvm.arm.neon.vqabs
+    1, // llvm.arm.neon.vqadds
+    1, // llvm.arm.neon.vqaddu
+    1, // llvm.arm.neon.vqdmulh
+    1, // llvm.arm.neon.vqdmull
+    1, // llvm.arm.neon.vqmovns
+    1, // llvm.arm.neon.vqmovnsu
+    1, // llvm.arm.neon.vqmovnu
+    1, // llvm.arm.neon.vqneg
+    1, // llvm.arm.neon.vqrdmulh
+    1, // llvm.arm.neon.vqrshiftns
+    1, // llvm.arm.neon.vqrshiftnsu
+    1, // llvm.arm.neon.vqrshiftnu
+    1, // llvm.arm.neon.vqrshifts
+    1, // llvm.arm.neon.vqrshiftu
+    1, // llvm.arm.neon.vqshiftns
+    1, // llvm.arm.neon.vqshiftnsu
+    1, // llvm.arm.neon.vqshiftnu
+    1, // llvm.arm.neon.vqshifts
+    1, // llvm.arm.neon.vqshiftsu
+    1, // llvm.arm.neon.vqshiftu
+    1, // llvm.arm.neon.vqsubs
+    1, // llvm.arm.neon.vqsubu
+    1, // llvm.arm.neon.vraddhn
+    1, // llvm.arm.neon.vrecpe
+    1, // llvm.arm.neon.vrecps
+    1, // llvm.arm.neon.vrhadds
+    1, // llvm.arm.neon.vrhaddu
+    1, // llvm.arm.neon.vrinta
+    1, // llvm.arm.neon.vrintm
+    1, // llvm.arm.neon.vrintn
+    1, // llvm.arm.neon.vrintp
+    1, // llvm.arm.neon.vrintx
+    1, // llvm.arm.neon.vrintz
+    1, // llvm.arm.neon.vrshiftn
+    1, // llvm.arm.neon.vrshifts
+    1, // llvm.arm.neon.vrshiftu
+    1, // llvm.arm.neon.vrsqrte
+    1, // llvm.arm.neon.vrsqrts
+    1, // llvm.arm.neon.vrsubhn
+    1, // llvm.arm.neon.vshiftins
+    1, // llvm.arm.neon.vshifts
+    1, // llvm.arm.neon.vshiftu
+    22, // llvm.arm.neon.vst1
+    18, // llvm.arm.neon.vst1x2
+    18, // llvm.arm.neon.vst1x3
+    18, // llvm.arm.neon.vst1x4
+    22, // llvm.arm.neon.vst2
+    22, // llvm.arm.neon.vst2lane
+    22, // llvm.arm.neon.vst3
+    22, // llvm.arm.neon.vst3lane
+    22, // llvm.arm.neon.vst4
+    22, // llvm.arm.neon.vst4lane
+    1, // llvm.arm.neon.vtbl1
+    1, // llvm.arm.neon.vtbl2
+    1, // llvm.arm.neon.vtbl3
+    1, // llvm.arm.neon.vtbl4
+    1, // llvm.arm.neon.vtbx1
+    1, // llvm.arm.neon.vtbx2
+    1, // llvm.arm.neon.vtbx3
+    1, // llvm.arm.neon.vtbx4
+    1, // llvm.arm.qadd
+    1, // llvm.arm.qadd16
+    1, // llvm.arm.qadd8
+    1, // llvm.arm.qasx
+    1, // llvm.arm.qsax
+    1, // llvm.arm.qsub
+    1, // llvm.arm.qsub16
+    1, // llvm.arm.qsub8
+    3, // llvm.arm.sadd16
+    3, // llvm.arm.sadd8
+    3, // llvm.arm.sasx
+    16, // llvm.arm.sel
+    3, // llvm.arm.set.fpscr
+    1, // llvm.arm.shadd16
+    1, // llvm.arm.shadd8
+    1, // llvm.arm.shasx
+    1, // llvm.arm.shsax
+    1, // llvm.arm.shsub16
+    1, // llvm.arm.shsub8
+    1, // llvm.arm.smlabb
+    1, // llvm.arm.smlabt
+    1, // llvm.arm.smlad
+    1, // llvm.arm.smladx
+    1, // llvm.arm.smlald
+    1, // llvm.arm.smlaldx
+    1, // llvm.arm.smlatb
+    1, // llvm.arm.smlatt
+    1, // llvm.arm.smlawb
+    1, // llvm.arm.smlawt
+    1, // llvm.arm.smlsd
+    1, // llvm.arm.smlsdx
+    1, // llvm.arm.smlsld
+    1, // llvm.arm.smlsldx
+    1, // llvm.arm.smuad
+    1, // llvm.arm.smuadx
+    1, // llvm.arm.smulbb
+    1, // llvm.arm.smulbt
+    1, // llvm.arm.smultb
+    1, // llvm.arm.smultt
+    1, // llvm.arm.smulwb
+    1, // llvm.arm.smulwt
+    1, // llvm.arm.smusd
+    1, // llvm.arm.smusdx
+    3, // llvm.arm.space
+    1, // llvm.arm.ssat
+    1, // llvm.arm.ssat16
+    3, // llvm.arm.ssax
+    3, // llvm.arm.ssub16
+    3, // llvm.arm.ssub8
+    3, // llvm.arm.stc
+    3, // llvm.arm.stc2
+    3, // llvm.arm.stc2l
+    3, // llvm.arm.stcl
+    3, // llvm.arm.stlex
+    3, // llvm.arm.stlexd
+    3, // llvm.arm.strex
+    3, // llvm.arm.strexd
+    1, // llvm.arm.sxtab16
+    1, // llvm.arm.sxtb16
+    3, // llvm.arm.uadd16
+    3, // llvm.arm.uadd8
+    3, // llvm.arm.uasx
+    1, // llvm.arm.uhadd16
+    1, // llvm.arm.uhadd8
+    1, // llvm.arm.uhasx
+    1, // llvm.arm.uhsax
+    1, // llvm.arm.uhsub16
+    1, // llvm.arm.uhsub8
+    3, // llvm.arm.undefined
+    1, // llvm.arm.uqadd16
+    1, // llvm.arm.uqadd8
+    1, // llvm.arm.uqasx
+    1, // llvm.arm.uqsax
+    1, // llvm.arm.uqsub16
+    1, // llvm.arm.uqsub8
+    1, // llvm.arm.usad8
+    1, // llvm.arm.usada8
+    1, // llvm.arm.usat
+    1, // llvm.arm.usat16
+    3, // llvm.arm.usax
+    3, // llvm.arm.usub16
+    3, // llvm.arm.usub8
+    1, // llvm.arm.uxtab16
+    1, // llvm.arm.uxtb16
+    1, // llvm.arm.vcvtr
+    1, // llvm.arm.vcvtru
+    16, // llvm.bpf.load.byte
+    16, // llvm.bpf.load.half
+    16, // llvm.bpf.load.word
+    3, // llvm.bpf.pseudo
+    1, // llvm.hexagon.A2.abs
+    1, // llvm.hexagon.A2.absp
+    1, // llvm.hexagon.A2.abssat
+    1, // llvm.hexagon.A2.add
+    1, // llvm.hexagon.A2.addh.h16.hh
+    1, // llvm.hexagon.A2.addh.h16.hl
+    1, // llvm.hexagon.A2.addh.h16.lh
+    1, // llvm.hexagon.A2.addh.h16.ll
+    1, // llvm.hexagon.A2.addh.h16.sat.hh
+    1, // llvm.hexagon.A2.addh.h16.sat.hl
+    1, // llvm.hexagon.A2.addh.h16.sat.lh
+    1, // llvm.hexagon.A2.addh.h16.sat.ll
+    1, // llvm.hexagon.A2.addh.l16.hl
+    1, // llvm.hexagon.A2.addh.l16.ll
+    1, // llvm.hexagon.A2.addh.l16.sat.hl
+    1, // llvm.hexagon.A2.addh.l16.sat.ll
+    1, // llvm.hexagon.A2.addi
+    1, // llvm.hexagon.A2.addp
+    1, // llvm.hexagon.A2.addpsat
+    1, // llvm.hexagon.A2.addsat
+    1, // llvm.hexagon.A2.addsp
+    1, // llvm.hexagon.A2.and
+    1, // llvm.hexagon.A2.andir
+    1, // llvm.hexagon.A2.andp
+    1, // llvm.hexagon.A2.aslh
+    1, // llvm.hexagon.A2.asrh
+    1, // llvm.hexagon.A2.combine.hh
+    1, // llvm.hexagon.A2.combine.hl
+    1, // llvm.hexagon.A2.combine.lh
+    1, // llvm.hexagon.A2.combine.ll
+    1, // llvm.hexagon.A2.combineii
+    1, // llvm.hexagon.A2.combinew
+    1, // llvm.hexagon.A2.max
+    1, // llvm.hexagon.A2.maxp
+    1, // llvm.hexagon.A2.maxu
+    1, // llvm.hexagon.A2.maxup
+    1, // llvm.hexagon.A2.min
+    1, // llvm.hexagon.A2.minp
+    1, // llvm.hexagon.A2.minu
+    1, // llvm.hexagon.A2.minup
+    1, // llvm.hexagon.A2.neg
+    1, // llvm.hexagon.A2.negp
+    1, // llvm.hexagon.A2.negsat
+    1, // llvm.hexagon.A2.not
+    1, // llvm.hexagon.A2.notp
+    1, // llvm.hexagon.A2.or
+    1, // llvm.hexagon.A2.orir
+    1, // llvm.hexagon.A2.orp
+    1, // llvm.hexagon.A2.roundsat
+    1, // llvm.hexagon.A2.sat
+    1, // llvm.hexagon.A2.satb
+    1, // llvm.hexagon.A2.sath
+    1, // llvm.hexagon.A2.satub
+    1, // llvm.hexagon.A2.satuh
+    1, // llvm.hexagon.A2.sub
+    1, // llvm.hexagon.A2.subh.h16.hh
+    1, // llvm.hexagon.A2.subh.h16.hl
+    1, // llvm.hexagon.A2.subh.h16.lh
+    1, // llvm.hexagon.A2.subh.h16.ll
+    1, // llvm.hexagon.A2.subh.h16.sat.hh
+    1, // llvm.hexagon.A2.subh.h16.sat.hl
+    1, // llvm.hexagon.A2.subh.h16.sat.lh
+    1, // llvm.hexagon.A2.subh.h16.sat.ll
+    1, // llvm.hexagon.A2.subh.l16.hl
+    1, // llvm.hexagon.A2.subh.l16.ll
+    1, // llvm.hexagon.A2.subh.l16.sat.hl
+    1, // llvm.hexagon.A2.subh.l16.sat.ll
+    1, // llvm.hexagon.A2.subp
+    1, // llvm.hexagon.A2.subri
+    1, // llvm.hexagon.A2.subsat
+    1, // llvm.hexagon.A2.svaddh
+    1, // llvm.hexagon.A2.svaddhs
+    1, // llvm.hexagon.A2.svadduhs
+    1, // llvm.hexagon.A2.svavgh
+    1, // llvm.hexagon.A2.svavghs
+    1, // llvm.hexagon.A2.svnavgh
+    1, // llvm.hexagon.A2.svsubh
+    1, // llvm.hexagon.A2.svsubhs
+    1, // llvm.hexagon.A2.svsubuhs
+    1, // llvm.hexagon.A2.swiz
+    1, // llvm.hexagon.A2.sxtb
+    1, // llvm.hexagon.A2.sxth
+    1, // llvm.hexagon.A2.sxtw
+    1, // llvm.hexagon.A2.tfr
+    1, // llvm.hexagon.A2.tfrih
+    1, // llvm.hexagon.A2.tfril
+    1, // llvm.hexagon.A2.tfrp
+    1, // llvm.hexagon.A2.tfrpi
+    1, // llvm.hexagon.A2.tfrsi
+    1, // llvm.hexagon.A2.vabsh
+    1, // llvm.hexagon.A2.vabshsat
+    1, // llvm.hexagon.A2.vabsw
+    1, // llvm.hexagon.A2.vabswsat
+    1, // llvm.hexagon.A2.vaddb.map
+    1, // llvm.hexagon.A2.vaddh
+    1, // llvm.hexagon.A2.vaddhs
+    1, // llvm.hexagon.A2.vaddub
+    1, // llvm.hexagon.A2.vaddubs
+    1, // llvm.hexagon.A2.vadduhs
+    1, // llvm.hexagon.A2.vaddw
+    1, // llvm.hexagon.A2.vaddws
+    1, // llvm.hexagon.A2.vavgh
+    1, // llvm.hexagon.A2.vavghcr
+    1, // llvm.hexagon.A2.vavghr
+    1, // llvm.hexagon.A2.vavgub
+    1, // llvm.hexagon.A2.vavgubr
+    1, // llvm.hexagon.A2.vavguh
+    1, // llvm.hexagon.A2.vavguhr
+    1, // llvm.hexagon.A2.vavguw
+    1, // llvm.hexagon.A2.vavguwr
+    1, // llvm.hexagon.A2.vavgw
+    1, // llvm.hexagon.A2.vavgwcr
+    1, // llvm.hexagon.A2.vavgwr
+    1, // llvm.hexagon.A2.vcmpbeq
+    1, // llvm.hexagon.A2.vcmpbgtu
+    1, // llvm.hexagon.A2.vcmpheq
+    1, // llvm.hexagon.A2.vcmphgt
+    1, // llvm.hexagon.A2.vcmphgtu
+    1, // llvm.hexagon.A2.vcmpweq
+    1, // llvm.hexagon.A2.vcmpwgt
+    1, // llvm.hexagon.A2.vcmpwgtu
+    1, // llvm.hexagon.A2.vconj
+    1, // llvm.hexagon.A2.vmaxb
+    1, // llvm.hexagon.A2.vmaxh
+    1, // llvm.hexagon.A2.vmaxub
+    1, // llvm.hexagon.A2.vmaxuh
+    1, // llvm.hexagon.A2.vmaxuw
+    1, // llvm.hexagon.A2.vmaxw
+    1, // llvm.hexagon.A2.vminb
+    1, // llvm.hexagon.A2.vminh
+    1, // llvm.hexagon.A2.vminub
+    1, // llvm.hexagon.A2.vminuh
+    1, // llvm.hexagon.A2.vminuw
+    1, // llvm.hexagon.A2.vminw
+    1, // llvm.hexagon.A2.vnavgh
+    1, // llvm.hexagon.A2.vnavghcr
+    1, // llvm.hexagon.A2.vnavghr
+    1, // llvm.hexagon.A2.vnavgw
+    1, // llvm.hexagon.A2.vnavgwcr
+    1, // llvm.hexagon.A2.vnavgwr
+    1, // llvm.hexagon.A2.vraddub
+    1, // llvm.hexagon.A2.vraddub.acc
+    1, // llvm.hexagon.A2.vrsadub
+    1, // llvm.hexagon.A2.vrsadub.acc
+    1, // llvm.hexagon.A2.vsubb.map
+    1, // llvm.hexagon.A2.vsubh
+    1, // llvm.hexagon.A2.vsubhs
+    1, // llvm.hexagon.A2.vsubub
+    1, // llvm.hexagon.A2.vsububs
+    1, // llvm.hexagon.A2.vsubuhs
+    1, // llvm.hexagon.A2.vsubw
+    1, // llvm.hexagon.A2.vsubws
+    1, // llvm.hexagon.A2.xor
+    1, // llvm.hexagon.A2.xorp
+    1, // llvm.hexagon.A2.zxtb
+    1, // llvm.hexagon.A2.zxth
+    1, // llvm.hexagon.A4.andn
+    1, // llvm.hexagon.A4.andnp
+    1, // llvm.hexagon.A4.bitsplit
+    1, // llvm.hexagon.A4.bitspliti
+    1, // llvm.hexagon.A4.boundscheck
+    1, // llvm.hexagon.A4.cmpbeq
+    1, // llvm.hexagon.A4.cmpbeqi
+    1, // llvm.hexagon.A4.cmpbgt
+    1, // llvm.hexagon.A4.cmpbgti
+    1, // llvm.hexagon.A4.cmpbgtu
+    1, // llvm.hexagon.A4.cmpbgtui
+    1, // llvm.hexagon.A4.cmpheq
+    1, // llvm.hexagon.A4.cmpheqi
+    1, // llvm.hexagon.A4.cmphgt
+    1, // llvm.hexagon.A4.cmphgti
+    1, // llvm.hexagon.A4.cmphgtu
+    1, // llvm.hexagon.A4.cmphgtui
+    1, // llvm.hexagon.A4.combineir
+    1, // llvm.hexagon.A4.combineri
+    1, // llvm.hexagon.A4.cround.ri
+    1, // llvm.hexagon.A4.cround.rr
+    1, // llvm.hexagon.A4.modwrapu
+    1, // llvm.hexagon.A4.orn
+    1, // llvm.hexagon.A4.ornp
+    1, // llvm.hexagon.A4.rcmpeq
+    1, // llvm.hexagon.A4.rcmpeqi
+    1, // llvm.hexagon.A4.rcmpneq
+    1, // llvm.hexagon.A4.rcmpneqi
+    1, // llvm.hexagon.A4.round.ri
+    1, // llvm.hexagon.A4.round.ri.sat
+    1, // llvm.hexagon.A4.round.rr
+    1, // llvm.hexagon.A4.round.rr.sat
+    1, // llvm.hexagon.A4.tlbmatch
+    1, // llvm.hexagon.A4.vcmpbeq.any
+    1, // llvm.hexagon.A4.vcmpbeqi
+    1, // llvm.hexagon.A4.vcmpbgt
+    1, // llvm.hexagon.A4.vcmpbgti
+    1, // llvm.hexagon.A4.vcmpbgtui
+    1, // llvm.hexagon.A4.vcmpheqi
+    1, // llvm.hexagon.A4.vcmphgti
+    1, // llvm.hexagon.A4.vcmphgtui
+    1, // llvm.hexagon.A4.vcmpweqi
+    1, // llvm.hexagon.A4.vcmpwgti
+    1, // llvm.hexagon.A4.vcmpwgtui
+    1, // llvm.hexagon.A4.vrmaxh
+    1, // llvm.hexagon.A4.vrmaxuh
+    1, // llvm.hexagon.A4.vrmaxuw
+    1, // llvm.hexagon.A4.vrmaxw
+    1, // llvm.hexagon.A4.vrminh
+    1, // llvm.hexagon.A4.vrminuh
+    1, // llvm.hexagon.A4.vrminuw
+    1, // llvm.hexagon.A4.vrminw
+    1, // llvm.hexagon.A5.vaddhubs
+    1, // llvm.hexagon.A6.vcmpbeq.notany
+    1, // llvm.hexagon.A6.vcmpbeq.notany.128B
+    1, // llvm.hexagon.C2.all8
+    1, // llvm.hexagon.C2.and
+    1, // llvm.hexagon.C2.andn
+    1, // llvm.hexagon.C2.any8
+    1, // llvm.hexagon.C2.bitsclr
+    1, // llvm.hexagon.C2.bitsclri
+    1, // llvm.hexagon.C2.bitsset
+    1, // llvm.hexagon.C2.cmpeq
+    1, // llvm.hexagon.C2.cmpeqi
+    1, // llvm.hexagon.C2.cmpeqp
+    1, // llvm.hexagon.C2.cmpgei
+    1, // llvm.hexagon.C2.cmpgeui
+    1, // llvm.hexagon.C2.cmpgt
+    1, // llvm.hexagon.C2.cmpgti
+    1, // llvm.hexagon.C2.cmpgtp
+    1, // llvm.hexagon.C2.cmpgtu
+    1, // llvm.hexagon.C2.cmpgtui
+    1, // llvm.hexagon.C2.cmpgtup
+    1, // llvm.hexagon.C2.cmplt
+    1, // llvm.hexagon.C2.cmpltu
+    1, // llvm.hexagon.C2.mask
+    1, // llvm.hexagon.C2.mux
+    1, // llvm.hexagon.C2.muxii
+    1, // llvm.hexagon.C2.muxir
+    1, // llvm.hexagon.C2.muxri
+    1, // llvm.hexagon.C2.not
+    1, // llvm.hexagon.C2.or
+    1, // llvm.hexagon.C2.orn
+    1, // llvm.hexagon.C2.pxfer.map
+    1, // llvm.hexagon.C2.tfrpr
+    1, // llvm.hexagon.C2.tfrrp
+    1, // llvm.hexagon.C2.vitpack
+    1, // llvm.hexagon.C2.vmux
+    1, // llvm.hexagon.C2.xor
+    1, // llvm.hexagon.C4.and.and
+    1, // llvm.hexagon.C4.and.andn
+    1, // llvm.hexagon.C4.and.or
+    1, // llvm.hexagon.C4.and.orn
+    1, // llvm.hexagon.C4.cmplte
+    1, // llvm.hexagon.C4.cmpltei
+    1, // llvm.hexagon.C4.cmplteu
+    1, // llvm.hexagon.C4.cmplteui
+    1, // llvm.hexagon.C4.cmpneq
+    1, // llvm.hexagon.C4.cmpneqi
+    1, // llvm.hexagon.C4.fastcorner9
+    1, // llvm.hexagon.C4.fastcorner9.not
+    1, // llvm.hexagon.C4.nbitsclr
+    1, // llvm.hexagon.C4.nbitsclri
+    1, // llvm.hexagon.C4.nbitsset
+    1, // llvm.hexagon.C4.or.and
+    1, // llvm.hexagon.C4.or.andn
+    1, // llvm.hexagon.C4.or.or
+    1, // llvm.hexagon.C4.or.orn
+    1, // llvm.hexagon.F2.conv.d2df
+    1, // llvm.hexagon.F2.conv.d2sf
+    1, // llvm.hexagon.F2.conv.df2d
+    1, // llvm.hexagon.F2.conv.df2d.chop
+    1, // llvm.hexagon.F2.conv.df2sf
+    1, // llvm.hexagon.F2.conv.df2ud
+    1, // llvm.hexagon.F2.conv.df2ud.chop
+    1, // llvm.hexagon.F2.conv.df2uw
+    1, // llvm.hexagon.F2.conv.df2uw.chop
+    1, // llvm.hexagon.F2.conv.df2w
+    1, // llvm.hexagon.F2.conv.df2w.chop
+    1, // llvm.hexagon.F2.conv.sf2d
+    1, // llvm.hexagon.F2.conv.sf2d.chop
+    1, // llvm.hexagon.F2.conv.sf2df
+    1, // llvm.hexagon.F2.conv.sf2ud
+    1, // llvm.hexagon.F2.conv.sf2ud.chop
+    1, // llvm.hexagon.F2.conv.sf2uw
+    1, // llvm.hexagon.F2.conv.sf2uw.chop
+    1, // llvm.hexagon.F2.conv.sf2w
+    1, // llvm.hexagon.F2.conv.sf2w.chop
+    1, // llvm.hexagon.F2.conv.ud2df
+    1, // llvm.hexagon.F2.conv.ud2sf
+    37, // llvm.hexagon.F2.conv.uw2df
+    37, // llvm.hexagon.F2.conv.uw2sf
+    37, // llvm.hexagon.F2.conv.w2df
+    37, // llvm.hexagon.F2.conv.w2sf
+    37, // llvm.hexagon.F2.dfclass
+    37, // llvm.hexagon.F2.dfcmpeq
+    37, // llvm.hexagon.F2.dfcmpge
+    37, // llvm.hexagon.F2.dfcmpgt
+    37, // llvm.hexagon.F2.dfcmpuo
+    37, // llvm.hexagon.F2.dfimm.n
+    37, // llvm.hexagon.F2.dfimm.p
+    37, // llvm.hexagon.F2.sfadd
+    37, // llvm.hexagon.F2.sfclass
+    37, // llvm.hexagon.F2.sfcmpeq
+    37, // llvm.hexagon.F2.sfcmpge
+    37, // llvm.hexagon.F2.sfcmpgt
+    37, // llvm.hexagon.F2.sfcmpuo
+    37, // llvm.hexagon.F2.sffixupd
+    37, // llvm.hexagon.F2.sffixupn
+    1, // llvm.hexagon.F2.sffixupr
+    37, // llvm.hexagon.F2.sffma
+    37, // llvm.hexagon.F2.sffma.lib
+    37, // llvm.hexagon.F2.sffma.sc
+    37, // llvm.hexagon.F2.sffms
+    37, // llvm.hexagon.F2.sffms.lib
+    37, // llvm.hexagon.F2.sfimm.n
+    37, // llvm.hexagon.F2.sfimm.p
+    37, // llvm.hexagon.F2.sfmax
+    37, // llvm.hexagon.F2.sfmin
+    37, // llvm.hexagon.F2.sfmpy
+    37, // llvm.hexagon.F2.sfsub
+    16, // llvm.hexagon.L2.loadrb.pbr
+    30, // llvm.hexagon.L2.loadrb.pci
+    19, // llvm.hexagon.L2.loadrb.pcr
+    16, // llvm.hexagon.L2.loadrd.pbr
+    30, // llvm.hexagon.L2.loadrd.pci
+    19, // llvm.hexagon.L2.loadrd.pcr
+    16, // llvm.hexagon.L2.loadrh.pbr
+    30, // llvm.hexagon.L2.loadrh.pci
+    19, // llvm.hexagon.L2.loadrh.pcr
+    16, // llvm.hexagon.L2.loadri.pbr
+    30, // llvm.hexagon.L2.loadri.pci
+    19, // llvm.hexagon.L2.loadri.pcr
+    16, // llvm.hexagon.L2.loadrub.pbr
+    30, // llvm.hexagon.L2.loadrub.pci
+    19, // llvm.hexagon.L2.loadrub.pcr
+    16, // llvm.hexagon.L2.loadruh.pbr
+    30, // llvm.hexagon.L2.loadruh.pci
+    19, // llvm.hexagon.L2.loadruh.pcr
+    18, // llvm.hexagon.L2.loadw.locked
+    18, // llvm.hexagon.L4.loadd.locked
+    1, // llvm.hexagon.M2.acci
+    1, // llvm.hexagon.M2.accii
+    1, // llvm.hexagon.M2.cmaci.s0
+    1, // llvm.hexagon.M2.cmacr.s0
+    1, // llvm.hexagon.M2.cmacs.s0
+    1, // llvm.hexagon.M2.cmacs.s1
+    1, // llvm.hexagon.M2.cmacsc.s0
+    1, // llvm.hexagon.M2.cmacsc.s1
+    1, // llvm.hexagon.M2.cmpyi.s0
+    1, // llvm.hexagon.M2.cmpyr.s0
+    1, // llvm.hexagon.M2.cmpyrs.s0
+    1, // llvm.hexagon.M2.cmpyrs.s1
+    1, // llvm.hexagon.M2.cmpyrsc.s0
+    1, // llvm.hexagon.M2.cmpyrsc.s1
+    1, // llvm.hexagon.M2.cmpys.s0
+    1, // llvm.hexagon.M2.cmpys.s1
+    1, // llvm.hexagon.M2.cmpysc.s0
+    1, // llvm.hexagon.M2.cmpysc.s1
+    1, // llvm.hexagon.M2.cnacs.s0
+    1, // llvm.hexagon.M2.cnacs.s1
+    1, // llvm.hexagon.M2.cnacsc.s0
+    1, // llvm.hexagon.M2.cnacsc.s1
+    1, // llvm.hexagon.M2.dpmpyss.acc.s0
+    1, // llvm.hexagon.M2.dpmpyss.nac.s0
+    1, // llvm.hexagon.M2.dpmpyss.rnd.s0
+    1, // llvm.hexagon.M2.dpmpyss.s0
+    1, // llvm.hexagon.M2.dpmpyuu.acc.s0
+    1, // llvm.hexagon.M2.dpmpyuu.nac.s0
+    1, // llvm.hexagon.M2.dpmpyuu.s0
+    1, // llvm.hexagon.M2.hmmpyh.rs1
+    1, // llvm.hexagon.M2.hmmpyh.s1
+    1, // llvm.hexagon.M2.hmmpyl.rs1
+    1, // llvm.hexagon.M2.hmmpyl.s1
+    1, // llvm.hexagon.M2.maci
+    1, // llvm.hexagon.M2.macsin
+    1, // llvm.hexagon.M2.macsip
+    1, // llvm.hexagon.M2.mmachs.rs0
+    1, // llvm.hexagon.M2.mmachs.rs1
+    1, // llvm.hexagon.M2.mmachs.s0
+    1, // llvm.hexagon.M2.mmachs.s1
+    1, // llvm.hexagon.M2.mmacls.rs0
+    1, // llvm.hexagon.M2.mmacls.rs1
+    1, // llvm.hexagon.M2.mmacls.s0
+    1, // llvm.hexagon.M2.mmacls.s1
+    1, // llvm.hexagon.M2.mmacuhs.rs0
+    1, // llvm.hexagon.M2.mmacuhs.rs1
+    1, // llvm.hexagon.M2.mmacuhs.s0
+    1, // llvm.hexagon.M2.mmacuhs.s1
+    1, // llvm.hexagon.M2.mmaculs.rs0
+    1, // llvm.hexagon.M2.mmaculs.rs1
+    1, // llvm.hexagon.M2.mmaculs.s0
+    1, // llvm.hexagon.M2.mmaculs.s1
+    1, // llvm.hexagon.M2.mmpyh.rs0
+    1, // llvm.hexagon.M2.mmpyh.rs1
+    1, // llvm.hexagon.M2.mmpyh.s0
+    1, // llvm.hexagon.M2.mmpyh.s1
+    1, // llvm.hexagon.M2.mmpyl.rs0
+    1, // llvm.hexagon.M2.mmpyl.rs1
+    1, // llvm.hexagon.M2.mmpyl.s0
+    1, // llvm.hexagon.M2.mmpyl.s1
+    1, // llvm.hexagon.M2.mmpyuh.rs0
+    1, // llvm.hexagon.M2.mmpyuh.rs1
+    1, // llvm.hexagon.M2.mmpyuh.s0
+    1, // llvm.hexagon.M2.mmpyuh.s1
+    1, // llvm.hexagon.M2.mmpyul.rs0
+    1, // llvm.hexagon.M2.mmpyul.rs1
+    1, // llvm.hexagon.M2.mmpyul.s0
+    1, // llvm.hexagon.M2.mmpyul.s1
+    1, // llvm.hexagon.M2.mpy.acc.hh.s0
+    1, // llvm.hexagon.M2.mpy.acc.hh.s1
+    1, // llvm.hexagon.M2.mpy.acc.hl.s0
+    1, // llvm.hexagon.M2.mpy.acc.hl.s1
+    1, // llvm.hexagon.M2.mpy.acc.lh.s0
+    1, // llvm.hexagon.M2.mpy.acc.lh.s1
+    1, // llvm.hexagon.M2.mpy.acc.ll.s0
+    1, // llvm.hexagon.M2.mpy.acc.ll.s1
+    1, // llvm.hexagon.M2.mpy.acc.sat.hh.s0
+    1, // llvm.hexagon.M2.mpy.acc.sat.hh.s1
+    1, // llvm.hexagon.M2.mpy.acc.sat.hl.s0
+    1, // llvm.hexagon.M2.mpy.acc.sat.hl.s1
+    1, // llvm.hexagon.M2.mpy.acc.sat.lh.s0
+    1, // llvm.hexagon.M2.mpy.acc.sat.lh.s1
+    1, // llvm.hexagon.M2.mpy.acc.sat.ll.s0
+    1, // llvm.hexagon.M2.mpy.acc.sat.ll.s1
+    1, // llvm.hexagon.M2.mpy.hh.s0
+    1, // llvm.hexagon.M2.mpy.hh.s1
+    1, // llvm.hexagon.M2.mpy.hl.s0
+    1, // llvm.hexagon.M2.mpy.hl.s1
+    1, // llvm.hexagon.M2.mpy.lh.s0
+    1, // llvm.hexagon.M2.mpy.lh.s1
+    1, // llvm.hexagon.M2.mpy.ll.s0
+    1, // llvm.hexagon.M2.mpy.ll.s1
+    1, // llvm.hexagon.M2.mpy.nac.hh.s0
+    1, // llvm.hexagon.M2.mpy.nac.hh.s1
+    1, // llvm.hexagon.M2.mpy.nac.hl.s0
+    1, // llvm.hexagon.M2.mpy.nac.hl.s1
+    1, // llvm.hexagon.M2.mpy.nac.lh.s0
+    1, // llvm.hexagon.M2.mpy.nac.lh.s1
+    1, // llvm.hexagon.M2.mpy.nac.ll.s0
+    1, // llvm.hexagon.M2.mpy.nac.ll.s1
+    1, // llvm.hexagon.M2.mpy.nac.sat.hh.s0
+    1, // llvm.hexagon.M2.mpy.nac.sat.hh.s1
+    1, // llvm.hexagon.M2.mpy.nac.sat.hl.s0
+    1, // llvm.hexagon.M2.mpy.nac.sat.hl.s1
+    1, // llvm.hexagon.M2.mpy.nac.sat.lh.s0
+    1, // llvm.hexagon.M2.mpy.nac.sat.lh.s1
+    1, // llvm.hexagon.M2.mpy.nac.sat.ll.s0
+    1, // llvm.hexagon.M2.mpy.nac.sat.ll.s1
+    1, // llvm.hexagon.M2.mpy.rnd.hh.s0
+    1, // llvm.hexagon.M2.mpy.rnd.hh.s1
+    1, // llvm.hexagon.M2.mpy.rnd.hl.s0
+    1, // llvm.hexagon.M2.mpy.rnd.hl.s1
+    1, // llvm.hexagon.M2.mpy.rnd.lh.s0
+    1, // llvm.hexagon.M2.mpy.rnd.lh.s1
+    1, // llvm.hexagon.M2.mpy.rnd.ll.s0
+    1, // llvm.hexagon.M2.mpy.rnd.ll.s1
+    1, // llvm.hexagon.M2.mpy.sat.hh.s0
+    1, // llvm.hexagon.M2.mpy.sat.hh.s1
+    1, // llvm.hexagon.M2.mpy.sat.hl.s0
+    1, // llvm.hexagon.M2.mpy.sat.hl.s1
+    1, // llvm.hexagon.M2.mpy.sat.lh.s0
+    1, // llvm.hexagon.M2.mpy.sat.lh.s1
+    1, // llvm.hexagon.M2.mpy.sat.ll.s0
+    1, // llvm.hexagon.M2.mpy.sat.ll.s1
+    1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
+    1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
+    1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
+    1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
+    1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
+    1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
+    1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
+    1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
+    1, // llvm.hexagon.M2.mpy.up
+    1, // llvm.hexagon.M2.mpy.up.s1
+    1, // llvm.hexagon.M2.mpy.up.s1.sat
+    1, // llvm.hexagon.M2.mpyd.acc.hh.s0
+    1, // llvm.hexagon.M2.mpyd.acc.hh.s1
+    1, // llvm.hexagon.M2.mpyd.acc.hl.s0
+    1, // llvm.hexagon.M2.mpyd.acc.hl.s1
+    1, // llvm.hexagon.M2.mpyd.acc.lh.s0
+    1, // llvm.hexagon.M2.mpyd.acc.lh.s1
+    1, // llvm.hexagon.M2.mpyd.acc.ll.s0
+    1, // llvm.hexagon.M2.mpyd.acc.ll.s1
+    1, // llvm.hexagon.M2.mpyd.hh.s0
+    1, // llvm.hexagon.M2.mpyd.hh.s1
+    1, // llvm.hexagon.M2.mpyd.hl.s0
+    1, // llvm.hexagon.M2.mpyd.hl.s1
+    1, // llvm.hexagon.M2.mpyd.lh.s0
+    1, // llvm.hexagon.M2.mpyd.lh.s1
+    1, // llvm.hexagon.M2.mpyd.ll.s0
+    1, // llvm.hexagon.M2.mpyd.ll.s1
+    1, // llvm.hexagon.M2.mpyd.nac.hh.s0
+    1, // llvm.hexagon.M2.mpyd.nac.hh.s1
+    1, // llvm.hexagon.M2.mpyd.nac.hl.s0
+    1, // llvm.hexagon.M2.mpyd.nac.hl.s1
+    1, // llvm.hexagon.M2.mpyd.nac.lh.s0
+    1, // llvm.hexagon.M2.mpyd.nac.lh.s1
+    1, // llvm.hexagon.M2.mpyd.nac.ll.s0
+    1, // llvm.hexagon.M2.mpyd.nac.ll.s1
+    1, // llvm.hexagon.M2.mpyd.rnd.hh.s0
+    1, // llvm.hexagon.M2.mpyd.rnd.hh.s1
+    1, // llvm.hexagon.M2.mpyd.rnd.hl.s0
+    1, // llvm.hexagon.M2.mpyd.rnd.hl.s1
+    1, // llvm.hexagon.M2.mpyd.rnd.lh.s0
+    1, // llvm.hexagon.M2.mpyd.rnd.lh.s1
+    1, // llvm.hexagon.M2.mpyd.rnd.ll.s0
+    1, // llvm.hexagon.M2.mpyd.rnd.ll.s1
+    1, // llvm.hexagon.M2.mpyi
+    1, // llvm.hexagon.M2.mpysmi
+    1, // llvm.hexagon.M2.mpysu.up
+    1, // llvm.hexagon.M2.mpyu.acc.hh.s0
+    1, // llvm.hexagon.M2.mpyu.acc.hh.s1
+    1, // llvm.hexagon.M2.mpyu.acc.hl.s0
+    1, // llvm.hexagon.M2.mpyu.acc.hl.s1
+    1, // llvm.hexagon.M2.mpyu.acc.lh.s0
+    1, // llvm.hexagon.M2.mpyu.acc.lh.s1
+    1, // llvm.hexagon.M2.mpyu.acc.ll.s0
+    1, // llvm.hexagon.M2.mpyu.acc.ll.s1
+    1, // llvm.hexagon.M2.mpyu.hh.s0
+    1, // llvm.hexagon.M2.mpyu.hh.s1
+    1, // llvm.hexagon.M2.mpyu.hl.s0
+    1, // llvm.hexagon.M2.mpyu.hl.s1
+    1, // llvm.hexagon.M2.mpyu.lh.s0
+    1, // llvm.hexagon.M2.mpyu.lh.s1
+    1, // llvm.hexagon.M2.mpyu.ll.s0
+    1, // llvm.hexagon.M2.mpyu.ll.s1
+    1, // llvm.hexagon.M2.mpyu.nac.hh.s0
+    1, // llvm.hexagon.M2.mpyu.nac.hh.s1
+    1, // llvm.hexagon.M2.mpyu.nac.hl.s0
+    1, // llvm.hexagon.M2.mpyu.nac.hl.s1
+    1, // llvm.hexagon.M2.mpyu.nac.lh.s0
+    1, // llvm.hexagon.M2.mpyu.nac.lh.s1
+    1, // llvm.hexagon.M2.mpyu.nac.ll.s0
+    1, // llvm.hexagon.M2.mpyu.nac.ll.s1
+    1, // llvm.hexagon.M2.mpyu.up
+    1, // llvm.hexagon.M2.mpyud.acc.hh.s0
+    1, // llvm.hexagon.M2.mpyud.acc.hh.s1
+    1, // llvm.hexagon.M2.mpyud.acc.hl.s0
+    1, // llvm.hexagon.M2.mpyud.acc.hl.s1
+    1, // llvm.hexagon.M2.mpyud.acc.lh.s0
+    1, // llvm.hexagon.M2.mpyud.acc.lh.s1
+    1, // llvm.hexagon.M2.mpyud.acc.ll.s0
+    1, // llvm.hexagon.M2.mpyud.acc.ll.s1
+    1, // llvm.hexagon.M2.mpyud.hh.s0
+    1, // llvm.hexagon.M2.mpyud.hh.s1
+    1, // llvm.hexagon.M2.mpyud.hl.s0
+    1, // llvm.hexagon.M2.mpyud.hl.s1
+    1, // llvm.hexagon.M2.mpyud.lh.s0
+    1, // llvm.hexagon.M2.mpyud.lh.s1
+    1, // llvm.hexagon.M2.mpyud.ll.s0
+    1, // llvm.hexagon.M2.mpyud.ll.s1
+    1, // llvm.hexagon.M2.mpyud.nac.hh.s0
+    1, // llvm.hexagon.M2.mpyud.nac.hh.s1
+    1, // llvm.hexagon.M2.mpyud.nac.hl.s0
+    1, // llvm.hexagon.M2.mpyud.nac.hl.s1
+    1, // llvm.hexagon.M2.mpyud.nac.lh.s0
+    1, // llvm.hexagon.M2.mpyud.nac.lh.s1
+    1, // llvm.hexagon.M2.mpyud.nac.ll.s0
+    1, // llvm.hexagon.M2.mpyud.nac.ll.s1
+    1, // llvm.hexagon.M2.mpyui
+    1, // llvm.hexagon.M2.nacci
+    1, // llvm.hexagon.M2.naccii
+    1, // llvm.hexagon.M2.subacc
+    1, // llvm.hexagon.M2.vabsdiffh
+    1, // llvm.hexagon.M2.vabsdiffw
+    1, // llvm.hexagon.M2.vcmac.s0.sat.i
+    1, // llvm.hexagon.M2.vcmac.s0.sat.r
+    1, // llvm.hexagon.M2.vcmpy.s0.sat.i
+    1, // llvm.hexagon.M2.vcmpy.s0.sat.r
+    1, // llvm.hexagon.M2.vcmpy.s1.sat.i
+    1, // llvm.hexagon.M2.vcmpy.s1.sat.r
+    1, // llvm.hexagon.M2.vdmacs.s0
+    1, // llvm.hexagon.M2.vdmacs.s1
+    1, // llvm.hexagon.M2.vdmpyrs.s0
+    1, // llvm.hexagon.M2.vdmpyrs.s1
+    1, // llvm.hexagon.M2.vdmpys.s0
+    1, // llvm.hexagon.M2.vdmpys.s1
+    1, // llvm.hexagon.M2.vmac2
+    1, // llvm.hexagon.M2.vmac2es
+    1, // llvm.hexagon.M2.vmac2es.s0
+    1, // llvm.hexagon.M2.vmac2es.s1
+    1, // llvm.hexagon.M2.vmac2s.s0
+    1, // llvm.hexagon.M2.vmac2s.s1
+    1, // llvm.hexagon.M2.vmac2su.s0
+    1, // llvm.hexagon.M2.vmac2su.s1
+    1, // llvm.hexagon.M2.vmpy2es.s0
+    1, // llvm.hexagon.M2.vmpy2es.s1
+    1, // llvm.hexagon.M2.vmpy2s.s0
+    1, // llvm.hexagon.M2.vmpy2s.s0pack
+    1, // llvm.hexagon.M2.vmpy2s.s1
+    1, // llvm.hexagon.M2.vmpy2s.s1pack
+    1, // llvm.hexagon.M2.vmpy2su.s0
+    1, // llvm.hexagon.M2.vmpy2su.s1
+    1, // llvm.hexagon.M2.vraddh
+    1, // llvm.hexagon.M2.vradduh
+    1, // llvm.hexagon.M2.vrcmaci.s0
+    1, // llvm.hexagon.M2.vrcmaci.s0c
+    1, // llvm.hexagon.M2.vrcmacr.s0
+    1, // llvm.hexagon.M2.vrcmacr.s0c
+    1, // llvm.hexagon.M2.vrcmpyi.s0
+    1, // llvm.hexagon.M2.vrcmpyi.s0c
+    1, // llvm.hexagon.M2.vrcmpyr.s0
+    1, // llvm.hexagon.M2.vrcmpyr.s0c
+    1, // llvm.hexagon.M2.vrcmpys.acc.s1
+    1, // llvm.hexagon.M2.vrcmpys.s1
+    1, // llvm.hexagon.M2.vrcmpys.s1rp
+    1, // llvm.hexagon.M2.vrmac.s0
+    1, // llvm.hexagon.M2.vrmpy.s0
+    1, // llvm.hexagon.M2.xor.xacc
+    1, // llvm.hexagon.M4.and.and
+    1, // llvm.hexagon.M4.and.andn
+    1, // llvm.hexagon.M4.and.or
+    1, // llvm.hexagon.M4.and.xor
+    1, // llvm.hexagon.M4.cmpyi.wh
+    1, // llvm.hexagon.M4.cmpyi.whc
+    1, // llvm.hexagon.M4.cmpyr.wh
+    1, // llvm.hexagon.M4.cmpyr.whc
+    1, // llvm.hexagon.M4.mac.up.s1.sat
+    1, // llvm.hexagon.M4.mpyri.addi
+    1, // llvm.hexagon.M4.mpyri.addr
+    1, // llvm.hexagon.M4.mpyri.addr.u2
+    1, // llvm.hexagon.M4.mpyrr.addi
+    1, // llvm.hexagon.M4.mpyrr.addr
+    1, // llvm.hexagon.M4.nac.up.s1.sat
+    1, // llvm.hexagon.M4.or.and
+    1, // llvm.hexagon.M4.or.andn
+    1, // llvm.hexagon.M4.or.or
+    1, // llvm.hexagon.M4.or.xor
+    1, // llvm.hexagon.M4.pmpyw
+    1, // llvm.hexagon.M4.pmpyw.acc
+    1, // llvm.hexagon.M4.vpmpyh
+    1, // llvm.hexagon.M4.vpmpyh.acc
+    1, // llvm.hexagon.M4.vrmpyeh.acc.s0
+    1, // llvm.hexagon.M4.vrmpyeh.acc.s1
+    1, // llvm.hexagon.M4.vrmpyeh.s0
+    1, // llvm.hexagon.M4.vrmpyeh.s1
+    1, // llvm.hexagon.M4.vrmpyoh.acc.s0
+    1, // llvm.hexagon.M4.vrmpyoh.acc.s1
+    1, // llvm.hexagon.M4.vrmpyoh.s0
+    1, // llvm.hexagon.M4.vrmpyoh.s1
+    1, // llvm.hexagon.M4.xor.and
+    1, // llvm.hexagon.M4.xor.andn
+    1, // llvm.hexagon.M4.xor.or
+    1, // llvm.hexagon.M4.xor.xacc
+    1, // llvm.hexagon.M5.vdmacbsu
+    1, // llvm.hexagon.M5.vdmpybsu
+    1, // llvm.hexagon.M5.vmacbsu
+    1, // llvm.hexagon.M5.vmacbuu
+    1, // llvm.hexagon.M5.vmpybsu
+    1, // llvm.hexagon.M5.vmpybuu
+    1, // llvm.hexagon.M5.vrmacbsu
+    1, // llvm.hexagon.M5.vrmacbuu
+    1, // llvm.hexagon.M5.vrmpybsu
+    1, // llvm.hexagon.M5.vrmpybuu
+    1, // llvm.hexagon.M6.vabsdiffb
+    1, // llvm.hexagon.M6.vabsdiffub
+    1, // llvm.hexagon.S2.addasl.rrri
+    1, // llvm.hexagon.S2.asl.i.p
+    1, // llvm.hexagon.S2.asl.i.p.acc
+    1, // llvm.hexagon.S2.asl.i.p.and
+    1, // llvm.hexagon.S2.asl.i.p.nac
+    1, // llvm.hexagon.S2.asl.i.p.or
+    1, // llvm.hexagon.S2.asl.i.p.xacc
+    1, // llvm.hexagon.S2.asl.i.r
+    1, // llvm.hexagon.S2.asl.i.r.acc
+    1, // llvm.hexagon.S2.asl.i.r.and
+    1, // llvm.hexagon.S2.asl.i.r.nac
+    1, // llvm.hexagon.S2.asl.i.r.or
+    1, // llvm.hexagon.S2.asl.i.r.sat
+    1, // llvm.hexagon.S2.asl.i.r.xacc
+    1, // llvm.hexagon.S2.asl.i.vh
+    1, // llvm.hexagon.S2.asl.i.vw
+    1, // llvm.hexagon.S2.asl.r.p
+    1, // llvm.hexagon.S2.asl.r.p.acc
+    1, // llvm.hexagon.S2.asl.r.p.and
+    1, // llvm.hexagon.S2.asl.r.p.nac
+    1, // llvm.hexagon.S2.asl.r.p.or
+    1, // llvm.hexagon.S2.asl.r.p.xor
+    1, // llvm.hexagon.S2.asl.r.r
+    1, // llvm.hexagon.S2.asl.r.r.acc
+    1, // llvm.hexagon.S2.asl.r.r.and
+    1, // llvm.hexagon.S2.asl.r.r.nac
+    1, // llvm.hexagon.S2.asl.r.r.or
+    1, // llvm.hexagon.S2.asl.r.r.sat
+    1, // llvm.hexagon.S2.asl.r.vh
+    1, // llvm.hexagon.S2.asl.r.vw
+    1, // llvm.hexagon.S2.asr.i.p
+    1, // llvm.hexagon.S2.asr.i.p.acc
+    1, // llvm.hexagon.S2.asr.i.p.and
+    1, // llvm.hexagon.S2.asr.i.p.nac
+    1, // llvm.hexagon.S2.asr.i.p.or
+    1, // llvm.hexagon.S2.asr.i.p.rnd
+    1, // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
+    1, // llvm.hexagon.S2.asr.i.r
+    1, // llvm.hexagon.S2.asr.i.r.acc
+    1, // llvm.hexagon.S2.asr.i.r.and
+    1, // llvm.hexagon.S2.asr.i.r.nac
+    1, // llvm.hexagon.S2.asr.i.r.or
+    1, // llvm.hexagon.S2.asr.i.r.rnd
+    1, // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
+    1, // llvm.hexagon.S2.asr.i.svw.trun
+    1, // llvm.hexagon.S2.asr.i.vh
+    1, // llvm.hexagon.S2.asr.i.vw
+    1, // llvm.hexagon.S2.asr.r.p
+    1, // llvm.hexagon.S2.asr.r.p.acc
+    1, // llvm.hexagon.S2.asr.r.p.and
+    1, // llvm.hexagon.S2.asr.r.p.nac
+    1, // llvm.hexagon.S2.asr.r.p.or
+    1, // llvm.hexagon.S2.asr.r.p.xor
+    1, // llvm.hexagon.S2.asr.r.r
+    1, // llvm.hexagon.S2.asr.r.r.acc
+    1, // llvm.hexagon.S2.asr.r.r.and
+    1, // llvm.hexagon.S2.asr.r.r.nac
+    1, // llvm.hexagon.S2.asr.r.r.or
+    1, // llvm.hexagon.S2.asr.r.r.sat
+    1, // llvm.hexagon.S2.asr.r.svw.trun
+    1, // llvm.hexagon.S2.asr.r.vh
+    1, // llvm.hexagon.S2.asr.r.vw
+    1, // llvm.hexagon.S2.brev
+    1, // llvm.hexagon.S2.brevp
+    1, // llvm.hexagon.S2.cabacencbin
+    1, // llvm.hexagon.S2.cl0
+    1, // llvm.hexagon.S2.cl0p
+    1, // llvm.hexagon.S2.cl1
+    1, // llvm.hexagon.S2.cl1p
+    1, // llvm.hexagon.S2.clb
+    1, // llvm.hexagon.S2.clbnorm
+    1, // llvm.hexagon.S2.clbp
+    1, // llvm.hexagon.S2.clrbit.i
+    1, // llvm.hexagon.S2.clrbit.r
+    1, // llvm.hexagon.S2.ct0
+    1, // llvm.hexagon.S2.ct0p
+    1, // llvm.hexagon.S2.ct1
+    1, // llvm.hexagon.S2.ct1p
+    1, // llvm.hexagon.S2.deinterleave
+    1, // llvm.hexagon.S2.extractu
+    1, // llvm.hexagon.S2.extractu.rp
+    1, // llvm.hexagon.S2.extractup
+    1, // llvm.hexagon.S2.extractup.rp
+    1, // llvm.hexagon.S2.insert
+    1, // llvm.hexagon.S2.insert.rp
+    1, // llvm.hexagon.S2.insertp
+    1, // llvm.hexagon.S2.insertp.rp
+    1, // llvm.hexagon.S2.interleave
+    1, // llvm.hexagon.S2.lfsp
+    1, // llvm.hexagon.S2.lsl.r.p
+    1, // llvm.hexagon.S2.lsl.r.p.acc
+    1, // llvm.hexagon.S2.lsl.r.p.and
+    1, // llvm.hexagon.S2.lsl.r.p.nac
+    1, // llvm.hexagon.S2.lsl.r.p.or
+    1, // llvm.hexagon.S2.lsl.r.p.xor
+    1, // llvm.hexagon.S2.lsl.r.r
+    1, // llvm.hexagon.S2.lsl.r.r.acc
+    1, // llvm.hexagon.S2.lsl.r.r.and
+    1, // llvm.hexagon.S2.lsl.r.r.nac
+    1, // llvm.hexagon.S2.lsl.r.r.or
+    1, // llvm.hexagon.S2.lsl.r.vh
+    1, // llvm.hexagon.S2.lsl.r.vw
+    1, // llvm.hexagon.S2.lsr.i.p
+    1, // llvm.hexagon.S2.lsr.i.p.acc
+    1, // llvm.hexagon.S2.lsr.i.p.and
+    1, // llvm.hexagon.S2.lsr.i.p.nac
+    1, // llvm.hexagon.S2.lsr.i.p.or
+    1, // llvm.hexagon.S2.lsr.i.p.xacc
+    1, // llvm.hexagon.S2.lsr.i.r
+    1, // llvm.hexagon.S2.lsr.i.r.acc
+    1, // llvm.hexagon.S2.lsr.i.r.and
+    1, // llvm.hexagon.S2.lsr.i.r.nac
+    1, // llvm.hexagon.S2.lsr.i.r.or
+    1, // llvm.hexagon.S2.lsr.i.r.xacc
+    1, // llvm.hexagon.S2.lsr.i.vh
+    1, // llvm.hexagon.S2.lsr.i.vw
+    1, // llvm.hexagon.S2.lsr.r.p
+    1, // llvm.hexagon.S2.lsr.r.p.acc
+    1, // llvm.hexagon.S2.lsr.r.p.and
+    1, // llvm.hexagon.S2.lsr.r.p.nac
+    1, // llvm.hexagon.S2.lsr.r.p.or
+    1, // llvm.hexagon.S2.lsr.r.p.xor
+    1, // llvm.hexagon.S2.lsr.r.r
+    1, // llvm.hexagon.S2.lsr.r.r.acc
+    1, // llvm.hexagon.S2.lsr.r.r.and
+    1, // llvm.hexagon.S2.lsr.r.r.nac
+    1, // llvm.hexagon.S2.lsr.r.r.or
+    1, // llvm.hexagon.S2.lsr.r.vh
+    1, // llvm.hexagon.S2.lsr.r.vw
+    1, // llvm.hexagon.S2.packhl
+    1, // llvm.hexagon.S2.parityp
+    1, // llvm.hexagon.S2.setbit.i
+    1, // llvm.hexagon.S2.setbit.r
+    1, // llvm.hexagon.S2.shuffeb
+    1, // llvm.hexagon.S2.shuffeh
+    1, // llvm.hexagon.S2.shuffob
+    1, // llvm.hexagon.S2.shuffoh
+    34, // llvm.hexagon.S2.storerb.pbr
+    31, // llvm.hexagon.S2.storerb.pci
+    30, // llvm.hexagon.S2.storerb.pcr
+    34, // llvm.hexagon.S2.storerd.pbr
+    31, // llvm.hexagon.S2.storerd.pci
+    30, // llvm.hexagon.S2.storerd.pcr
+    34, // llvm.hexagon.S2.storerf.pbr
+    31, // llvm.hexagon.S2.storerf.pci
+    30, // llvm.hexagon.S2.storerf.pcr
+    34, // llvm.hexagon.S2.storerh.pbr
+    31, // llvm.hexagon.S2.storerh.pci
+    30, // llvm.hexagon.S2.storerh.pcr
+    34, // llvm.hexagon.S2.storeri.pbr
+    31, // llvm.hexagon.S2.storeri.pci
+    30, // llvm.hexagon.S2.storeri.pcr
+    18, // llvm.hexagon.S2.storew.locked
+    1, // llvm.hexagon.S2.svsathb
+    1, // llvm.hexagon.S2.svsathub
+    1, // llvm.hexagon.S2.tableidxb.goodsyntax
+    1, // llvm.hexagon.S2.tableidxd.goodsyntax
+    1, // llvm.hexagon.S2.tableidxh.goodsyntax
+    1, // llvm.hexagon.S2.tableidxw.goodsyntax
+    1, // llvm.hexagon.S2.togglebit.i
+    1, // llvm.hexagon.S2.togglebit.r
+    1, // llvm.hexagon.S2.tstbit.i
+    1, // llvm.hexagon.S2.tstbit.r
+    1, // llvm.hexagon.S2.valignib
+    1, // llvm.hexagon.S2.valignrb
+    1, // llvm.hexagon.S2.vcnegh
+    1, // llvm.hexagon.S2.vcrotate
+    1, // llvm.hexagon.S2.vrcnegh
+    1, // llvm.hexagon.S2.vrndpackwh
+    1, // llvm.hexagon.S2.vrndpackwhs
+    1, // llvm.hexagon.S2.vsathb
+    1, // llvm.hexagon.S2.vsathb.nopack
+    1, // llvm.hexagon.S2.vsathub
+    1, // llvm.hexagon.S2.vsathub.nopack
+    1, // llvm.hexagon.S2.vsatwh
+    1, // llvm.hexagon.S2.vsatwh.nopack
+    1, // llvm.hexagon.S2.vsatwuh
+    1, // llvm.hexagon.S2.vsatwuh.nopack
+    1, // llvm.hexagon.S2.vsplatrb
+    1, // llvm.hexagon.S2.vsplatrh
+    1, // llvm.hexagon.S2.vspliceib
+    1, // llvm.hexagon.S2.vsplicerb
+    1, // llvm.hexagon.S2.vsxtbh
+    1, // llvm.hexagon.S2.vsxthw
+    1, // llvm.hexagon.S2.vtrunehb
+    1, // llvm.hexagon.S2.vtrunewh
+    1, // llvm.hexagon.S2.vtrunohb
+    1, // llvm.hexagon.S2.vtrunowh
+    1, // llvm.hexagon.S2.vzxtbh
+    1, // llvm.hexagon.S2.vzxthw
+    1, // llvm.hexagon.S4.addaddi
+    1, // llvm.hexagon.S4.addi.asl.ri
+    1, // llvm.hexagon.S4.addi.lsr.ri
+    1, // llvm.hexagon.S4.andi.asl.ri
+    1, // llvm.hexagon.S4.andi.lsr.ri
+    1, // llvm.hexagon.S4.clbaddi
+    1, // llvm.hexagon.S4.clbpaddi
+    1, // llvm.hexagon.S4.clbpnorm
+    1, // llvm.hexagon.S4.extract
+    1, // llvm.hexagon.S4.extract.rp
+    1, // llvm.hexagon.S4.extractp
+    1, // llvm.hexagon.S4.extractp.rp
+    1, // llvm.hexagon.S4.lsli
+    1, // llvm.hexagon.S4.ntstbit.i
+    1, // llvm.hexagon.S4.ntstbit.r
+    1, // llvm.hexagon.S4.or.andi
+    1, // llvm.hexagon.S4.or.andix
+    1, // llvm.hexagon.S4.or.ori
+    1, // llvm.hexagon.S4.ori.asl.ri
+    1, // llvm.hexagon.S4.ori.lsr.ri
+    1, // llvm.hexagon.S4.parity
+    18, // llvm.hexagon.S4.stored.locked
+    1, // llvm.hexagon.S4.subaddi
+    1, // llvm.hexagon.S4.subi.asl.ri
+    1, // llvm.hexagon.S4.subi.lsr.ri
+    1, // llvm.hexagon.S4.vrcrotate
+    1, // llvm.hexagon.S4.vrcrotate.acc
+    1, // llvm.hexagon.S4.vxaddsubh
+    1, // llvm.hexagon.S4.vxaddsubhr
+    1, // llvm.hexagon.S4.vxaddsubw
+    1, // llvm.hexagon.S4.vxsubaddh
+    1, // llvm.hexagon.S4.vxsubaddhr
+    1, // llvm.hexagon.S4.vxsubaddw
+    1, // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
+    1, // llvm.hexagon.S5.asrhub.sat
+    1, // llvm.hexagon.S5.popcountp
+    1, // llvm.hexagon.S5.vasrhrnd.goodsyntax
+    1, // llvm.hexagon.S6.rol.i.p
+    1, // llvm.hexagon.S6.rol.i.p.acc
+    1, // llvm.hexagon.S6.rol.i.p.and
+    1, // llvm.hexagon.S6.rol.i.p.nac
+    1, // llvm.hexagon.S6.rol.i.p.or
+    1, // llvm.hexagon.S6.rol.i.p.xacc
+    1, // llvm.hexagon.S6.rol.i.r
+    1, // llvm.hexagon.S6.rol.i.r.acc
+    1, // llvm.hexagon.S6.rol.i.r.and
+    1, // llvm.hexagon.S6.rol.i.r.nac
+    1, // llvm.hexagon.S6.rol.i.r.or
+    1, // llvm.hexagon.S6.rol.i.r.xacc
+    1, // llvm.hexagon.S6.vsplatrbp
+    1, // llvm.hexagon.S6.vtrunehb.ppp
+    1, // llvm.hexagon.S6.vtrunohb.ppp
+    1, // llvm.hexagon.V6.extractw
+    1, // llvm.hexagon.V6.extractw.128B
+    1, // llvm.hexagon.V6.hi
+    1, // llvm.hexagon.V6.hi.128B
+    1, // llvm.hexagon.V6.lo
+    1, // llvm.hexagon.V6.lo.128B
+    1, // llvm.hexagon.V6.lvsplatb
+    1, // llvm.hexagon.V6.lvsplatb.128B
+    1, // llvm.hexagon.V6.lvsplath
+    1, // llvm.hexagon.V6.lvsplath.128B
+    1, // llvm.hexagon.V6.lvsplatw
+    1, // llvm.hexagon.V6.lvsplatw.128B
+    1, // llvm.hexagon.V6.pred.and
+    1, // llvm.hexagon.V6.pred.and.128B
+    1, // llvm.hexagon.V6.pred.and.n
+    1, // llvm.hexagon.V6.pred.and.n.128B
+    1, // llvm.hexagon.V6.pred.not
+    1, // llvm.hexagon.V6.pred.not.128B
+    1, // llvm.hexagon.V6.pred.or
+    1, // llvm.hexagon.V6.pred.or.128B
+    1, // llvm.hexagon.V6.pred.or.n
+    1, // llvm.hexagon.V6.pred.or.n.128B
+    1, // llvm.hexagon.V6.pred.scalar2
+    1, // llvm.hexagon.V6.pred.scalar2.128B
+    1, // llvm.hexagon.V6.pred.scalar2v2
+    1, // llvm.hexagon.V6.pred.scalar2v2.128B
+    1, // llvm.hexagon.V6.pred.xor
+    1, // llvm.hexagon.V6.pred.xor.128B
+    1, // llvm.hexagon.V6.shuffeqh
+    1, // llvm.hexagon.V6.shuffeqh.128B
+    1, // llvm.hexagon.V6.shuffeqw
+    1, // llvm.hexagon.V6.shuffeqw.128B
+    22, // llvm.hexagon.V6.vS32b.nqpred.ai
+    22, // llvm.hexagon.V6.vS32b.nqpred.ai.128B
+    22, // llvm.hexagon.V6.vS32b.nt.nqpred.ai
+    22, // llvm.hexagon.V6.vS32b.nt.nqpred.ai.128B
+    22, // llvm.hexagon.V6.vS32b.nt.qpred.ai
+    22, // llvm.hexagon.V6.vS32b.nt.qpred.ai.128B
+    22, // llvm.hexagon.V6.vS32b.qpred.ai
+    22, // llvm.hexagon.V6.vS32b.qpred.ai.128B
+    1, // llvm.hexagon.V6.vabsb
+    1, // llvm.hexagon.V6.vabsb.128B
+    1, // llvm.hexagon.V6.vabsb.sat
+    1, // llvm.hexagon.V6.vabsb.sat.128B
+    1, // llvm.hexagon.V6.vabsdiffh
+    1, // llvm.hexagon.V6.vabsdiffh.128B
+    1, // llvm.hexagon.V6.vabsdiffub
+    1, // llvm.hexagon.V6.vabsdiffub.128B
+    1, // llvm.hexagon.V6.vabsdiffuh
+    1, // llvm.hexagon.V6.vabsdiffuh.128B
+    1, // llvm.hexagon.V6.vabsdiffw
+    1, // llvm.hexagon.V6.vabsdiffw.128B
+    1, // llvm.hexagon.V6.vabsh
+    1, // llvm.hexagon.V6.vabsh.128B
+    1, // llvm.hexagon.V6.vabsh.sat
+    1, // llvm.hexagon.V6.vabsh.sat.128B
+    1, // llvm.hexagon.V6.vabsw
+    1, // llvm.hexagon.V6.vabsw.128B
+    1, // llvm.hexagon.V6.vabsw.sat
+    1, // llvm.hexagon.V6.vabsw.sat.128B
+    1, // llvm.hexagon.V6.vaddb
+    1, // llvm.hexagon.V6.vaddb.128B
+    1, // llvm.hexagon.V6.vaddb.dv
+    1, // llvm.hexagon.V6.vaddb.dv.128B
+    1, // llvm.hexagon.V6.vaddbnq
+    1, // llvm.hexagon.V6.vaddbnq.128B
+    1, // llvm.hexagon.V6.vaddbq
+    1, // llvm.hexagon.V6.vaddbq.128B
+    1, // llvm.hexagon.V6.vaddbsat
+    1, // llvm.hexagon.V6.vaddbsat.128B
+    1, // llvm.hexagon.V6.vaddbsat.dv
+    1, // llvm.hexagon.V6.vaddbsat.dv.128B
+    1, // llvm.hexagon.V6.vaddcarry
+    1, // llvm.hexagon.V6.vaddcarry.128B
+    1, // llvm.hexagon.V6.vaddclbh
+    1, // llvm.hexagon.V6.vaddclbh.128B
+    1, // llvm.hexagon.V6.vaddclbw
+    1, // llvm.hexagon.V6.vaddclbw.128B
+    1, // llvm.hexagon.V6.vaddh
+    1, // llvm.hexagon.V6.vaddh.128B
+    1, // llvm.hexagon.V6.vaddh.dv
+    1, // llvm.hexagon.V6.vaddh.dv.128B
+    1, // llvm.hexagon.V6.vaddhnq
+    1, // llvm.hexagon.V6.vaddhnq.128B
+    1, // llvm.hexagon.V6.vaddhq
+    1, // llvm.hexagon.V6.vaddhq.128B
+    1, // llvm.hexagon.V6.vaddhsat
+    1, // llvm.hexagon.V6.vaddhsat.128B
+    1, // llvm.hexagon.V6.vaddhsat.dv
+    1, // llvm.hexagon.V6.vaddhsat.dv.128B
+    1, // llvm.hexagon.V6.vaddhw
+    1, // llvm.hexagon.V6.vaddhw.128B
+    1, // llvm.hexagon.V6.vaddhw.acc
+    1, // llvm.hexagon.V6.vaddhw.acc.128B
+    1, // llvm.hexagon.V6.vaddubh
+    1, // llvm.hexagon.V6.vaddubh.128B
+    1, // llvm.hexagon.V6.vaddubh.acc
+    1, // llvm.hexagon.V6.vaddubh.acc.128B
+    1, // llvm.hexagon.V6.vaddubsat
+    1, // llvm.hexagon.V6.vaddubsat.128B
+    1, // llvm.hexagon.V6.vaddubsat.dv
+    1, // llvm.hexagon.V6.vaddubsat.dv.128B
+    1, // llvm.hexagon.V6.vaddububb.sat
+    1, // llvm.hexagon.V6.vaddububb.sat.128B
+    1, // llvm.hexagon.V6.vadduhsat
+    1, // llvm.hexagon.V6.vadduhsat.128B
+    1, // llvm.hexagon.V6.vadduhsat.dv
+    1, // llvm.hexagon.V6.vadduhsat.dv.128B
+    1, // llvm.hexagon.V6.vadduhw
+    1, // llvm.hexagon.V6.vadduhw.128B
+    1, // llvm.hexagon.V6.vadduhw.acc
+    1, // llvm.hexagon.V6.vadduhw.acc.128B
+    1, // llvm.hexagon.V6.vadduwsat
+    1, // llvm.hexagon.V6.vadduwsat.128B
+    1, // llvm.hexagon.V6.vadduwsat.dv
+    1, // llvm.hexagon.V6.vadduwsat.dv.128B
+    1, // llvm.hexagon.V6.vaddw
+    1, // llvm.hexagon.V6.vaddw.128B
+    1, // llvm.hexagon.V6.vaddw.dv
+    1, // llvm.hexagon.V6.vaddw.dv.128B
+    1, // llvm.hexagon.V6.vaddwnq
+    1, // llvm.hexagon.V6.vaddwnq.128B
+    1, // llvm.hexagon.V6.vaddwq
+    1, // llvm.hexagon.V6.vaddwq.128B
+    1, // llvm.hexagon.V6.vaddwsat
+    1, // llvm.hexagon.V6.vaddwsat.128B
+    1, // llvm.hexagon.V6.vaddwsat.dv
+    1, // llvm.hexagon.V6.vaddwsat.dv.128B
+    1, // llvm.hexagon.V6.valignb
+    1, // llvm.hexagon.V6.valignb.128B
+    1, // llvm.hexagon.V6.valignbi
+    1, // llvm.hexagon.V6.valignbi.128B
+    1, // llvm.hexagon.V6.vand
+    1, // llvm.hexagon.V6.vand.128B
+    1, // llvm.hexagon.V6.vandnqrt
+    1, // llvm.hexagon.V6.vandnqrt.128B
+    1, // llvm.hexagon.V6.vandnqrt.acc
+    1, // llvm.hexagon.V6.vandnqrt.acc.128B
+    1, // llvm.hexagon.V6.vandqrt
+    1, // llvm.hexagon.V6.vandqrt.128B
+    1, // llvm.hexagon.V6.vandqrt.acc
+    1, // llvm.hexagon.V6.vandqrt.acc.128B
+    1, // llvm.hexagon.V6.vandvnqv
+    1, // llvm.hexagon.V6.vandvnqv.128B
+    1, // llvm.hexagon.V6.vandvqv
+    1, // llvm.hexagon.V6.vandvqv.128B
+    1, // llvm.hexagon.V6.vandvrt
+    1, // llvm.hexagon.V6.vandvrt.128B
+    1, // llvm.hexagon.V6.vandvrt.acc
+    1, // llvm.hexagon.V6.vandvrt.acc.128B
+    1, // llvm.hexagon.V6.vaslh
+    1, // llvm.hexagon.V6.vaslh.128B
+    1, // llvm.hexagon.V6.vaslh.acc
+    1, // llvm.hexagon.V6.vaslh.acc.128B
+    1, // llvm.hexagon.V6.vaslhv
+    1, // llvm.hexagon.V6.vaslhv.128B
+    1, // llvm.hexagon.V6.vaslw
+    1, // llvm.hexagon.V6.vaslw.128B
+    1, // llvm.hexagon.V6.vaslw.acc
+    1, // llvm.hexagon.V6.vaslw.acc.128B
+    1, // llvm.hexagon.V6.vaslwv
+    1, // llvm.hexagon.V6.vaslwv.128B
+    1, // llvm.hexagon.V6.vasrh
+    1, // llvm.hexagon.V6.vasrh.128B
+    1, // llvm.hexagon.V6.vasrh.acc
+    1, // llvm.hexagon.V6.vasrh.acc.128B
+    1, // llvm.hexagon.V6.vasrhbrndsat
+    1, // llvm.hexagon.V6.vasrhbrndsat.128B
+    1, // llvm.hexagon.V6.vasrhbsat
+    1, // llvm.hexagon.V6.vasrhbsat.128B
+    1, // llvm.hexagon.V6.vasrhubrndsat
+    1, // llvm.hexagon.V6.vasrhubrndsat.128B
+    1, // llvm.hexagon.V6.vasrhubsat
+    1, // llvm.hexagon.V6.vasrhubsat.128B
+    1, // llvm.hexagon.V6.vasrhv
+    1, // llvm.hexagon.V6.vasrhv.128B
+    1, // llvm.hexagon.V6.vasruhubrndsat
+    1, // llvm.hexagon.V6.vasruhubrndsat.128B
+    1, // llvm.hexagon.V6.vasruhubsat
+    1, // llvm.hexagon.V6.vasruhubsat.128B
+    1, // llvm.hexagon.V6.vasruwuhrndsat
+    1, // llvm.hexagon.V6.vasruwuhrndsat.128B
+    1, // llvm.hexagon.V6.vasruwuhsat
+    1, // llvm.hexagon.V6.vasruwuhsat.128B
+    1, // llvm.hexagon.V6.vasrw
+    1, // llvm.hexagon.V6.vasrw.128B
+    1, // llvm.hexagon.V6.vasrw.acc
+    1, // llvm.hexagon.V6.vasrw.acc.128B
+    1, // llvm.hexagon.V6.vasrwh
+    1, // llvm.hexagon.V6.vasrwh.128B
+    1, // llvm.hexagon.V6.vasrwhrndsat
+    1, // llvm.hexagon.V6.vasrwhrndsat.128B
+    1, // llvm.hexagon.V6.vasrwhsat
+    1, // llvm.hexagon.V6.vasrwhsat.128B
+    1, // llvm.hexagon.V6.vasrwuhrndsat
+    1, // llvm.hexagon.V6.vasrwuhrndsat.128B
+    1, // llvm.hexagon.V6.vasrwuhsat
+    1, // llvm.hexagon.V6.vasrwuhsat.128B
+    1, // llvm.hexagon.V6.vasrwv
+    1, // llvm.hexagon.V6.vasrwv.128B
+    1, // llvm.hexagon.V6.vassign
+    1, // llvm.hexagon.V6.vassign.128B
+    1, // llvm.hexagon.V6.vassignp
+    1, // llvm.hexagon.V6.vassignp.128B
+    1, // llvm.hexagon.V6.vavgb
+    1, // llvm.hexagon.V6.vavgb.128B
+    1, // llvm.hexagon.V6.vavgbrnd
+    1, // llvm.hexagon.V6.vavgbrnd.128B
+    1, // llvm.hexagon.V6.vavgh
+    1, // llvm.hexagon.V6.vavgh.128B
+    1, // llvm.hexagon.V6.vavghrnd
+    1, // llvm.hexagon.V6.vavghrnd.128B
+    1, // llvm.hexagon.V6.vavgub
+    1, // llvm.hexagon.V6.vavgub.128B
+    1, // llvm.hexagon.V6.vavgubrnd
+    1, // llvm.hexagon.V6.vavgubrnd.128B
+    1, // llvm.hexagon.V6.vavguh
+    1, // llvm.hexagon.V6.vavguh.128B
+    1, // llvm.hexagon.V6.vavguhrnd
+    1, // llvm.hexagon.V6.vavguhrnd.128B
+    1, // llvm.hexagon.V6.vavguw
+    1, // llvm.hexagon.V6.vavguw.128B
+    1, // llvm.hexagon.V6.vavguwrnd
+    1, // llvm.hexagon.V6.vavguwrnd.128B
+    1, // llvm.hexagon.V6.vavgw
+    1, // llvm.hexagon.V6.vavgw.128B
+    1, // llvm.hexagon.V6.vavgwrnd
+    1, // llvm.hexagon.V6.vavgwrnd.128B
+    1, // llvm.hexagon.V6.vcl0h
+    1, // llvm.hexagon.V6.vcl0h.128B
+    1, // llvm.hexagon.V6.vcl0w
+    1, // llvm.hexagon.V6.vcl0w.128B
+    1, // llvm.hexagon.V6.vcombine
+    1, // llvm.hexagon.V6.vcombine.128B
+    1, // llvm.hexagon.V6.vd0
+    1, // llvm.hexagon.V6.vd0.128B
+    1, // llvm.hexagon.V6.vdd0
+    1, // llvm.hexagon.V6.vdd0.128B
+    1, // llvm.hexagon.V6.vdealb
+    1, // llvm.hexagon.V6.vdealb.128B
+    1, // llvm.hexagon.V6.vdealb4w
+    1, // llvm.hexagon.V6.vdealb4w.128B
+    1, // llvm.hexagon.V6.vdealh
+    1, // llvm.hexagon.V6.vdealh.128B
+    1, // llvm.hexagon.V6.vdealvdd
+    1, // llvm.hexagon.V6.vdealvdd.128B
+    1, // llvm.hexagon.V6.vdelta
+    1, // llvm.hexagon.V6.vdelta.128B
+    1, // llvm.hexagon.V6.vdmpybus
+    1, // llvm.hexagon.V6.vdmpybus.128B
+    1, // llvm.hexagon.V6.vdmpybus.acc
+    1, // llvm.hexagon.V6.vdmpybus.acc.128B
+    1, // llvm.hexagon.V6.vdmpybus.dv
+    1, // llvm.hexagon.V6.vdmpybus.dv.128B
+    1, // llvm.hexagon.V6.vdmpybus.dv.acc
+    1, // llvm.hexagon.V6.vdmpybus.dv.acc.128B
+    1, // llvm.hexagon.V6.vdmpyhb
+    1, // llvm.hexagon.V6.vdmpyhb.128B
+    1, // llvm.hexagon.V6.vdmpyhb.acc
+    1, // llvm.hexagon.V6.vdmpyhb.acc.128B
+    1, // llvm.hexagon.V6.vdmpyhb.dv
+    1, // llvm.hexagon.V6.vdmpyhb.dv.128B
+    1, // llvm.hexagon.V6.vdmpyhb.dv.acc
+    1, // llvm.hexagon.V6.vdmpyhb.dv.acc.128B
+    1, // llvm.hexagon.V6.vdmpyhisat
+    1, // llvm.hexagon.V6.vdmpyhisat.128B
+    1, // llvm.hexagon.V6.vdmpyhisat.acc
+    1, // llvm.hexagon.V6.vdmpyhisat.acc.128B
+    1, // llvm.hexagon.V6.vdmpyhsat
+    1, // llvm.hexagon.V6.vdmpyhsat.128B
+    1, // llvm.hexagon.V6.vdmpyhsat.acc
+    1, // llvm.hexagon.V6.vdmpyhsat.acc.128B
+    1, // llvm.hexagon.V6.vdmpyhsuisat
+    1, // llvm.hexagon.V6.vdmpyhsuisat.128B
+    1, // llvm.hexagon.V6.vdmpyhsuisat.acc
+    1, // llvm.hexagon.V6.vdmpyhsuisat.acc.128B
+    1, // llvm.hexagon.V6.vdmpyhsusat
+    1, // llvm.hexagon.V6.vdmpyhsusat.128B
+    1, // llvm.hexagon.V6.vdmpyhsusat.acc
+    1, // llvm.hexagon.V6.vdmpyhsusat.acc.128B
+    1, // llvm.hexagon.V6.vdmpyhvsat
+    1, // llvm.hexagon.V6.vdmpyhvsat.128B
+    1, // llvm.hexagon.V6.vdmpyhvsat.acc
+    1, // llvm.hexagon.V6.vdmpyhvsat.acc.128B
+    1, // llvm.hexagon.V6.vdsaduh
+    1, // llvm.hexagon.V6.vdsaduh.128B
+    1, // llvm.hexagon.V6.vdsaduh.acc
+    1, // llvm.hexagon.V6.vdsaduh.acc.128B
+    1, // llvm.hexagon.V6.veqb
+    1, // llvm.hexagon.V6.veqb.128B
+    1, // llvm.hexagon.V6.veqb.and
+    1, // llvm.hexagon.V6.veqb.and.128B
+    1, // llvm.hexagon.V6.veqb.or
+    1, // llvm.hexagon.V6.veqb.or.128B
+    1, // llvm.hexagon.V6.veqb.xor
+    1, // llvm.hexagon.V6.veqb.xor.128B
+    1, // llvm.hexagon.V6.veqh
+    1, // llvm.hexagon.V6.veqh.128B
+    1, // llvm.hexagon.V6.veqh.and
+    1, // llvm.hexagon.V6.veqh.and.128B
+    1, // llvm.hexagon.V6.veqh.or
+    1, // llvm.hexagon.V6.veqh.or.128B
+    1, // llvm.hexagon.V6.veqh.xor
+    1, // llvm.hexagon.V6.veqh.xor.128B
+    1, // llvm.hexagon.V6.veqw
+    1, // llvm.hexagon.V6.veqw.128B
+    1, // llvm.hexagon.V6.veqw.and
+    1, // llvm.hexagon.V6.veqw.and.128B
+    1, // llvm.hexagon.V6.veqw.or
+    1, // llvm.hexagon.V6.veqw.or.128B
+    1, // llvm.hexagon.V6.veqw.xor
+    1, // llvm.hexagon.V6.veqw.xor.128B
+    22, // llvm.hexagon.V6.vgathermh
+    22, // llvm.hexagon.V6.vgathermh.128B
+    22, // llvm.hexagon.V6.vgathermhq
+    22, // llvm.hexagon.V6.vgathermhq.128B
+    22, // llvm.hexagon.V6.vgathermhw
+    22, // llvm.hexagon.V6.vgathermhw.128B
+    22, // llvm.hexagon.V6.vgathermhwq
+    22, // llvm.hexagon.V6.vgathermhwq.128B
+    22, // llvm.hexagon.V6.vgathermw
+    22, // llvm.hexagon.V6.vgathermw.128B
+    22, // llvm.hexagon.V6.vgathermwq
+    22, // llvm.hexagon.V6.vgathermwq.128B
+    1, // llvm.hexagon.V6.vgtb
+    1, // llvm.hexagon.V6.vgtb.128B
+    1, // llvm.hexagon.V6.vgtb.and
+    1, // llvm.hexagon.V6.vgtb.and.128B
+    1, // llvm.hexagon.V6.vgtb.or
+    1, // llvm.hexagon.V6.vgtb.or.128B
+    1, // llvm.hexagon.V6.vgtb.xor
+    1, // llvm.hexagon.V6.vgtb.xor.128B
+    1, // llvm.hexagon.V6.vgth
+    1, // llvm.hexagon.V6.vgth.128B
+    1, // llvm.hexagon.V6.vgth.and
+    1, // llvm.hexagon.V6.vgth.and.128B
+    1, // llvm.hexagon.V6.vgth.or
+    1, // llvm.hexagon.V6.vgth.or.128B
+    1, // llvm.hexagon.V6.vgth.xor
+    1, // llvm.hexagon.V6.vgth.xor.128B
+    1, // llvm.hexagon.V6.vgtub
+    1, // llvm.hexagon.V6.vgtub.128B
+    1, // llvm.hexagon.V6.vgtub.and
+    1, // llvm.hexagon.V6.vgtub.and.128B
+    1, // llvm.hexagon.V6.vgtub.or
+    1, // llvm.hexagon.V6.vgtub.or.128B
+    1, // llvm.hexagon.V6.vgtub.xor
+    1, // llvm.hexagon.V6.vgtub.xor.128B
+    1, // llvm.hexagon.V6.vgtuh
+    1, // llvm.hexagon.V6.vgtuh.128B
+    1, // llvm.hexagon.V6.vgtuh.and
+    1, // llvm.hexagon.V6.vgtuh.and.128B
+    1, // llvm.hexagon.V6.vgtuh.or
+    1, // llvm.hexagon.V6.vgtuh.or.128B
+    1, // llvm.hexagon.V6.vgtuh.xor
+    1, // llvm.hexagon.V6.vgtuh.xor.128B
+    1, // llvm.hexagon.V6.vgtuw
+    1, // llvm.hexagon.V6.vgtuw.128B
+    1, // llvm.hexagon.V6.vgtuw.and
+    1, // llvm.hexagon.V6.vgtuw.and.128B
+    1, // llvm.hexagon.V6.vgtuw.or
+    1, // llvm.hexagon.V6.vgtuw.or.128B
+    1, // llvm.hexagon.V6.vgtuw.xor
+    1, // llvm.hexagon.V6.vgtuw.xor.128B
+    1, // llvm.hexagon.V6.vgtw
+    1, // llvm.hexagon.V6.vgtw.128B
+    1, // llvm.hexagon.V6.vgtw.and
+    1, // llvm.hexagon.V6.vgtw.and.128B
+    1, // llvm.hexagon.V6.vgtw.or
+    1, // llvm.hexagon.V6.vgtw.or.128B
+    1, // llvm.hexagon.V6.vgtw.xor
+    1, // llvm.hexagon.V6.vgtw.xor.128B
+    1, // llvm.hexagon.V6.vinsertwr
+    1, // llvm.hexagon.V6.vinsertwr.128B
+    1, // llvm.hexagon.V6.vlalignb
+    1, // llvm.hexagon.V6.vlalignb.128B
+    1, // llvm.hexagon.V6.vlalignbi
+    1, // llvm.hexagon.V6.vlalignbi.128B
+    1, // llvm.hexagon.V6.vlsrb
+    1, // llvm.hexagon.V6.vlsrb.128B
+    1, // llvm.hexagon.V6.vlsrh
+    1, // llvm.hexagon.V6.vlsrh.128B
+    1, // llvm.hexagon.V6.vlsrhv
+    1, // llvm.hexagon.V6.vlsrhv.128B
+    1, // llvm.hexagon.V6.vlsrw
+    1, // llvm.hexagon.V6.vlsrw.128B
+    1, // llvm.hexagon.V6.vlsrwv
+    1, // llvm.hexagon.V6.vlsrwv.128B
+    1, // llvm.hexagon.V6.vlut4
+    1, // llvm.hexagon.V6.vlut4.128B
+    1, // llvm.hexagon.V6.vlutvvb
+    1, // llvm.hexagon.V6.vlutvvb.128B
+    1, // llvm.hexagon.V6.vlutvvb.nm
+    1, // llvm.hexagon.V6.vlutvvb.nm.128B
+    1, // llvm.hexagon.V6.vlutvvb.oracc
+    1, // llvm.hexagon.V6.vlutvvb.oracc.128B
+    1, // llvm.hexagon.V6.vlutvvb.oracci
+    1, // llvm.hexagon.V6.vlutvvb.oracci.128B
+    1, // llvm.hexagon.V6.vlutvvbi
+    1, // llvm.hexagon.V6.vlutvvbi.128B
+    1, // llvm.hexagon.V6.vlutvwh
+    1, // llvm.hexagon.V6.vlutvwh.128B
+    1, // llvm.hexagon.V6.vlutvwh.nm
+    1, // llvm.hexagon.V6.vlutvwh.nm.128B
+    1, // llvm.hexagon.V6.vlutvwh.oracc
+    1, // llvm.hexagon.V6.vlutvwh.oracc.128B
+    1, // llvm.hexagon.V6.vlutvwh.oracci
+    1, // llvm.hexagon.V6.vlutvwh.oracci.128B
+    1, // llvm.hexagon.V6.vlutvwhi
+    1, // llvm.hexagon.V6.vlutvwhi.128B
+    22, // llvm.hexagon.V6.vmaskedstorenq
+    22, // llvm.hexagon.V6.vmaskedstorenq.128B
+    22, // llvm.hexagon.V6.vmaskedstorentnq
+    22, // llvm.hexagon.V6.vmaskedstorentnq.128B
+    22, // llvm.hexagon.V6.vmaskedstorentq
+    22, // llvm.hexagon.V6.vmaskedstorentq.128B
+    22, // llvm.hexagon.V6.vmaskedstoreq
+    22, // llvm.hexagon.V6.vmaskedstoreq.128B
+    1, // llvm.hexagon.V6.vmaxb
+    1, // llvm.hexagon.V6.vmaxb.128B
+    1, // llvm.hexagon.V6.vmaxh
+    1, // llvm.hexagon.V6.vmaxh.128B
+    1, // llvm.hexagon.V6.vmaxub
+    1, // llvm.hexagon.V6.vmaxub.128B
+    1, // llvm.hexagon.V6.vmaxuh
+    1, // llvm.hexagon.V6.vmaxuh.128B
+    1, // llvm.hexagon.V6.vmaxw
+    1, // llvm.hexagon.V6.vmaxw.128B
+    1, // llvm.hexagon.V6.vminb
+    1, // llvm.hexagon.V6.vminb.128B
+    1, // llvm.hexagon.V6.vminh
+    1, // llvm.hexagon.V6.vminh.128B
+    1, // llvm.hexagon.V6.vminub
+    1, // llvm.hexagon.V6.vminub.128B
+    1, // llvm.hexagon.V6.vminuh
+    1, // llvm.hexagon.V6.vminuh.128B
+    1, // llvm.hexagon.V6.vminw
+    1, // llvm.hexagon.V6.vminw.128B
+    1, // llvm.hexagon.V6.vmpabus
+    1, // llvm.hexagon.V6.vmpabus.128B
+    1, // llvm.hexagon.V6.vmpabus.acc
+    1, // llvm.hexagon.V6.vmpabus.acc.128B
+    1, // llvm.hexagon.V6.vmpabusv
+    1, // llvm.hexagon.V6.vmpabusv.128B
+    1, // llvm.hexagon.V6.vmpabuu
+    1, // llvm.hexagon.V6.vmpabuu.128B
+    1, // llvm.hexagon.V6.vmpabuu.acc
+    1, // llvm.hexagon.V6.vmpabuu.acc.128B
+    1, // llvm.hexagon.V6.vmpabuuv
+    1, // llvm.hexagon.V6.vmpabuuv.128B
+    1, // llvm.hexagon.V6.vmpahb
+    1, // llvm.hexagon.V6.vmpahb.128B
+    1, // llvm.hexagon.V6.vmpahb.acc
+    1, // llvm.hexagon.V6.vmpahb.acc.128B
+    1, // llvm.hexagon.V6.vmpahhsat
+    1, // llvm.hexagon.V6.vmpahhsat.128B
+    1, // llvm.hexagon.V6.vmpauhb
+    1, // llvm.hexagon.V6.vmpauhb.128B
+    1, // llvm.hexagon.V6.vmpauhb.acc
+    1, // llvm.hexagon.V6.vmpauhb.acc.128B
+    1, // llvm.hexagon.V6.vmpauhuhsat
+    1, // llvm.hexagon.V6.vmpauhuhsat.128B
+    1, // llvm.hexagon.V6.vmpsuhuhsat
+    1, // llvm.hexagon.V6.vmpsuhuhsat.128B
+    1, // llvm.hexagon.V6.vmpybus
+    1, // llvm.hexagon.V6.vmpybus.128B
+    1, // llvm.hexagon.V6.vmpybus.acc
+    1, // llvm.hexagon.V6.vmpybus.acc.128B
+    1, // llvm.hexagon.V6.vmpybusv
+    1, // llvm.hexagon.V6.vmpybusv.128B
+    1, // llvm.hexagon.V6.vmpybusv.acc
+    1, // llvm.hexagon.V6.vmpybusv.acc.128B
+    1, // llvm.hexagon.V6.vmpybv
+    1, // llvm.hexagon.V6.vmpybv.128B
+    1, // llvm.hexagon.V6.vmpybv.acc
+    1, // llvm.hexagon.V6.vmpybv.acc.128B
+    1, // llvm.hexagon.V6.vmpyewuh
+    1, // llvm.hexagon.V6.vmpyewuh.128B
+    1, // llvm.hexagon.V6.vmpyewuh.64
+    1, // llvm.hexagon.V6.vmpyewuh.64.128B
+    1, // llvm.hexagon.V6.vmpyh
+    1, // llvm.hexagon.V6.vmpyh.128B
+    1, // llvm.hexagon.V6.vmpyh.acc
+    1, // llvm.hexagon.V6.vmpyh.acc.128B
+    1, // llvm.hexagon.V6.vmpyhsat.acc
+    1, // llvm.hexagon.V6.vmpyhsat.acc.128B
+    1, // llvm.hexagon.V6.vmpyhsrs
+    1, // llvm.hexagon.V6.vmpyhsrs.128B
+    1, // llvm.hexagon.V6.vmpyhss
+    1, // llvm.hexagon.V6.vmpyhss.128B
+    1, // llvm.hexagon.V6.vmpyhus
+    1, // llvm.hexagon.V6.vmpyhus.128B
+    1, // llvm.hexagon.V6.vmpyhus.acc
+    1, // llvm.hexagon.V6.vmpyhus.acc.128B
+    1, // llvm.hexagon.V6.vmpyhv
+    1, // llvm.hexagon.V6.vmpyhv.128B
+    1, // llvm.hexagon.V6.vmpyhv.acc
+    1, // llvm.hexagon.V6.vmpyhv.acc.128B
+    1, // llvm.hexagon.V6.vmpyhvsrs
+    1, // llvm.hexagon.V6.vmpyhvsrs.128B
+    1, // llvm.hexagon.V6.vmpyieoh
+    1, // llvm.hexagon.V6.vmpyieoh.128B
+    1, // llvm.hexagon.V6.vmpyiewh.acc
+    1, // llvm.hexagon.V6.vmpyiewh.acc.128B
+    1, // llvm.hexagon.V6.vmpyiewuh
+    1, // llvm.hexagon.V6.vmpyiewuh.128B
+    1, // llvm.hexagon.V6.vmpyiewuh.acc
+    1, // llvm.hexagon.V6.vmpyiewuh.acc.128B
+    1, // llvm.hexagon.V6.vmpyih
+    1, // llvm.hexagon.V6.vmpyih.128B
+    1, // llvm.hexagon.V6.vmpyih.acc
+    1, // llvm.hexagon.V6.vmpyih.acc.128B
+    1, // llvm.hexagon.V6.vmpyihb
+    1, // llvm.hexagon.V6.vmpyihb.128B
+    1, // llvm.hexagon.V6.vmpyihb.acc
+    1, // llvm.hexagon.V6.vmpyihb.acc.128B
+    1, // llvm.hexagon.V6.vmpyiowh
+    1, // llvm.hexagon.V6.vmpyiowh.128B
+    1, // llvm.hexagon.V6.vmpyiwb
+    1, // llvm.hexagon.V6.vmpyiwb.128B
+    1, // llvm.hexagon.V6.vmpyiwb.acc
+    1, // llvm.hexagon.V6.vmpyiwb.acc.128B
+    1, // llvm.hexagon.V6.vmpyiwh
+    1, // llvm.hexagon.V6.vmpyiwh.128B
+    1, // llvm.hexagon.V6.vmpyiwh.acc
+    1, // llvm.hexagon.V6.vmpyiwh.acc.128B
+    1, // llvm.hexagon.V6.vmpyiwub
+    1, // llvm.hexagon.V6.vmpyiwub.128B
+    1, // llvm.hexagon.V6.vmpyiwub.acc
+    1, // llvm.hexagon.V6.vmpyiwub.acc.128B
+    1, // llvm.hexagon.V6.vmpyowh
+    1, // llvm.hexagon.V6.vmpyowh.128B
+    1, // llvm.hexagon.V6.vmpyowh.64.acc
+    1, // llvm.hexagon.V6.vmpyowh.64.acc.128B
+    1, // llvm.hexagon.V6.vmpyowh.rnd
+    1, // llvm.hexagon.V6.vmpyowh.rnd.128B
+    1, // llvm.hexagon.V6.vmpyowh.rnd.sacc
+    1, // llvm.hexagon.V6.vmpyowh.rnd.sacc.128B
+    1, // llvm.hexagon.V6.vmpyowh.sacc
+    1, // llvm.hexagon.V6.vmpyowh.sacc.128B
+    1, // llvm.hexagon.V6.vmpyub
+    1, // llvm.hexagon.V6.vmpyub.128B
+    1, // llvm.hexagon.V6.vmpyub.acc
+    1, // llvm.hexagon.V6.vmpyub.acc.128B
+    1, // llvm.hexagon.V6.vmpyubv
+    1, // llvm.hexagon.V6.vmpyubv.128B
+    1, // llvm.hexagon.V6.vmpyubv.acc
+    1, // llvm.hexagon.V6.vmpyubv.acc.128B
+    1, // llvm.hexagon.V6.vmpyuh
+    1, // llvm.hexagon.V6.vmpyuh.128B
+    1, // llvm.hexagon.V6.vmpyuh.acc
+    1, // llvm.hexagon.V6.vmpyuh.acc.128B
+    1, // llvm.hexagon.V6.vmpyuhe
+    1, // llvm.hexagon.V6.vmpyuhe.128B
+    1, // llvm.hexagon.V6.vmpyuhe.acc
+    1, // llvm.hexagon.V6.vmpyuhe.acc.128B
+    1, // llvm.hexagon.V6.vmpyuhv
+    1, // llvm.hexagon.V6.vmpyuhv.128B
+    1, // llvm.hexagon.V6.vmpyuhv.acc
+    1, // llvm.hexagon.V6.vmpyuhv.acc.128B
+    1, // llvm.hexagon.V6.vmux
+    1, // llvm.hexagon.V6.vmux.128B
+    1, // llvm.hexagon.V6.vnavgb
+    1, // llvm.hexagon.V6.vnavgb.128B
+    1, // llvm.hexagon.V6.vnavgh
+    1, // llvm.hexagon.V6.vnavgh.128B
+    1, // llvm.hexagon.V6.vnavgub
+    1, // llvm.hexagon.V6.vnavgub.128B
+    1, // llvm.hexagon.V6.vnavgw
+    1, // llvm.hexagon.V6.vnavgw.128B
+    1, // llvm.hexagon.V6.vnormamth
+    1, // llvm.hexagon.V6.vnormamth.128B
+    1, // llvm.hexagon.V6.vnormamtw
+    1, // llvm.hexagon.V6.vnormamtw.128B
+    1, // llvm.hexagon.V6.vnot
+    1, // llvm.hexagon.V6.vnot.128B
+    1, // llvm.hexagon.V6.vor
+    1, // llvm.hexagon.V6.vor.128B
+    1, // llvm.hexagon.V6.vpackeb
+    1, // llvm.hexagon.V6.vpackeb.128B
+    1, // llvm.hexagon.V6.vpackeh
+    1, // llvm.hexagon.V6.vpackeh.128B
+    1, // llvm.hexagon.V6.vpackhb.sat
+    1, // llvm.hexagon.V6.vpackhb.sat.128B
+    1, // llvm.hexagon.V6.vpackhub.sat
+    1, // llvm.hexagon.V6.vpackhub.sat.128B
+    1, // llvm.hexagon.V6.vpackob
+    1, // llvm.hexagon.V6.vpackob.128B
+    1, // llvm.hexagon.V6.vpackoh
+    1, // llvm.hexagon.V6.vpackoh.128B
+    1, // llvm.hexagon.V6.vpackwh.sat
+    1, // llvm.hexagon.V6.vpackwh.sat.128B
+    1, // llvm.hexagon.V6.vpackwuh.sat
+    1, // llvm.hexagon.V6.vpackwuh.sat.128B
+    1, // llvm.hexagon.V6.vpopcounth
+    1, // llvm.hexagon.V6.vpopcounth.128B
+    1, // llvm.hexagon.V6.vprefixqb
+    1, // llvm.hexagon.V6.vprefixqb.128B
+    1, // llvm.hexagon.V6.vprefixqh
+    1, // llvm.hexagon.V6.vprefixqh.128B
+    1, // llvm.hexagon.V6.vprefixqw
+    1, // llvm.hexagon.V6.vprefixqw.128B
+    1, // llvm.hexagon.V6.vrdelta
+    1, // llvm.hexagon.V6.vrdelta.128B
+    1, // llvm.hexagon.V6.vrmpybub.rtt
+    1, // llvm.hexagon.V6.vrmpybub.rtt.128B
+    1, // llvm.hexagon.V6.vrmpybub.rtt.acc
+    1, // llvm.hexagon.V6.vrmpybub.rtt.acc.128B
+    1, // llvm.hexagon.V6.vrmpybus
+    1, // llvm.hexagon.V6.vrmpybus.128B
+    1, // llvm.hexagon.V6.vrmpybus.acc
+    1, // llvm.hexagon.V6.vrmpybus.acc.128B
+    1, // llvm.hexagon.V6.vrmpybusi
+    1, // llvm.hexagon.V6.vrmpybusi.128B
+    1, // llvm.hexagon.V6.vrmpybusi.acc
+    1, // llvm.hexagon.V6.vrmpybusi.acc.128B
+    1, // llvm.hexagon.V6.vrmpybusv
+    1, // llvm.hexagon.V6.vrmpybusv.128B
+    1, // llvm.hexagon.V6.vrmpybusv.acc
+    1, // llvm.hexagon.V6.vrmpybusv.acc.128B
+    1, // llvm.hexagon.V6.vrmpybv
+    1, // llvm.hexagon.V6.vrmpybv.128B
+    1, // llvm.hexagon.V6.vrmpybv.acc
+    1, // llvm.hexagon.V6.vrmpybv.acc.128B
+    1, // llvm.hexagon.V6.vrmpyub
+    1, // llvm.hexagon.V6.vrmpyub.128B
+    1, // llvm.hexagon.V6.vrmpyub.acc
+    1, // llvm.hexagon.V6.vrmpyub.acc.128B
+    1, // llvm.hexagon.V6.vrmpyub.rtt
+    1, // llvm.hexagon.V6.vrmpyub.rtt.128B
+    1, // llvm.hexagon.V6.vrmpyub.rtt.acc
+    1, // llvm.hexagon.V6.vrmpyub.rtt.acc.128B
+    1, // llvm.hexagon.V6.vrmpyubi
+    1, // llvm.hexagon.V6.vrmpyubi.128B
+    1, // llvm.hexagon.V6.vrmpyubi.acc
+    1, // llvm.hexagon.V6.vrmpyubi.acc.128B
+    1, // llvm.hexagon.V6.vrmpyubv
+    1, // llvm.hexagon.V6.vrmpyubv.128B
+    1, // llvm.hexagon.V6.vrmpyubv.acc
+    1, // llvm.hexagon.V6.vrmpyubv.acc.128B
+    1, // llvm.hexagon.V6.vror
+    1, // llvm.hexagon.V6.vror.128B
+    1, // llvm.hexagon.V6.vroundhb
+    1, // llvm.hexagon.V6.vroundhb.128B
+    1, // llvm.hexagon.V6.vroundhub
+    1, // llvm.hexagon.V6.vroundhub.128B
+    1, // llvm.hexagon.V6.vrounduhub
+    1, // llvm.hexagon.V6.vrounduhub.128B
+    1, // llvm.hexagon.V6.vrounduwuh
+    1, // llvm.hexagon.V6.vrounduwuh.128B
+    1, // llvm.hexagon.V6.vroundwh
+    1, // llvm.hexagon.V6.vroundwh.128B
+    1, // llvm.hexagon.V6.vroundwuh
+    1, // llvm.hexagon.V6.vroundwuh.128B
+    1, // llvm.hexagon.V6.vrsadubi
+    1, // llvm.hexagon.V6.vrsadubi.128B
+    1, // llvm.hexagon.V6.vrsadubi.acc
+    1, // llvm.hexagon.V6.vrsadubi.acc.128B
+    1, // llvm.hexagon.V6.vsathub
+    1, // llvm.hexagon.V6.vsathub.128B
+    1, // llvm.hexagon.V6.vsatuwuh
+    1, // llvm.hexagon.V6.vsatuwuh.128B
+    1, // llvm.hexagon.V6.vsatwh
+    1, // llvm.hexagon.V6.vsatwh.128B
+    1, // llvm.hexagon.V6.vsb
+    1, // llvm.hexagon.V6.vsb.128B
+    34, // llvm.hexagon.V6.vscattermh
+    34, // llvm.hexagon.V6.vscattermh.128B
+    34, // llvm.hexagon.V6.vscattermh.add
+    34, // llvm.hexagon.V6.vscattermh.add.128B
+    34, // llvm.hexagon.V6.vscattermhq
+    34, // llvm.hexagon.V6.vscattermhq.128B
+    34, // llvm.hexagon.V6.vscattermhw
+    34, // llvm.hexagon.V6.vscattermhw.128B
+    34, // llvm.hexagon.V6.vscattermhw.add
+    34, // llvm.hexagon.V6.vscattermhw.add.128B
+    34, // llvm.hexagon.V6.vscattermhwq
+    34, // llvm.hexagon.V6.vscattermhwq.128B
+    34, // llvm.hexagon.V6.vscattermw
+    34, // llvm.hexagon.V6.vscattermw.128B
+    34, // llvm.hexagon.V6.vscattermw.add
+    34, // llvm.hexagon.V6.vscattermw.add.128B
+    34, // llvm.hexagon.V6.vscattermwq
+    34, // llvm.hexagon.V6.vscattermwq.128B
+    1, // llvm.hexagon.V6.vsh
+    1, // llvm.hexagon.V6.vsh.128B
+    1, // llvm.hexagon.V6.vshufeh
+    1, // llvm.hexagon.V6.vshufeh.128B
+    1, // llvm.hexagon.V6.vshuffb
+    1, // llvm.hexagon.V6.vshuffb.128B
+    1, // llvm.hexagon.V6.vshuffeb
+    1, // llvm.hexagon.V6.vshuffeb.128B
+    1, // llvm.hexagon.V6.vshuffh
+    1, // llvm.hexagon.V6.vshuffh.128B
+    1, // llvm.hexagon.V6.vshuffob
+    1, // llvm.hexagon.V6.vshuffob.128B
+    1, // llvm.hexagon.V6.vshuffvdd
+    1, // llvm.hexagon.V6.vshuffvdd.128B
+    1, // llvm.hexagon.V6.vshufoeb
+    1, // llvm.hexagon.V6.vshufoeb.128B
+    1, // llvm.hexagon.V6.vshufoeh
+    1, // llvm.hexagon.V6.vshufoeh.128B
+    1, // llvm.hexagon.V6.vshufoh
+    1, // llvm.hexagon.V6.vshufoh.128B
+    1, // llvm.hexagon.V6.vsubb
+    1, // llvm.hexagon.V6.vsubb.128B
+    1, // llvm.hexagon.V6.vsubb.dv
+    1, // llvm.hexagon.V6.vsubb.dv.128B
+    1, // llvm.hexagon.V6.vsubbnq
+    1, // llvm.hexagon.V6.vsubbnq.128B
+    1, // llvm.hexagon.V6.vsubbq
+    1, // llvm.hexagon.V6.vsubbq.128B
+    1, // llvm.hexagon.V6.vsubbsat
+    1, // llvm.hexagon.V6.vsubbsat.128B
+    1, // llvm.hexagon.V6.vsubbsat.dv
+    1, // llvm.hexagon.V6.vsubbsat.dv.128B
+    1, // llvm.hexagon.V6.vsubcarry
+    1, // llvm.hexagon.V6.vsubcarry.128B
+    1, // llvm.hexagon.V6.vsubh
+    1, // llvm.hexagon.V6.vsubh.128B
+    1, // llvm.hexagon.V6.vsubh.dv
+    1, // llvm.hexagon.V6.vsubh.dv.128B
+    1, // llvm.hexagon.V6.vsubhnq
+    1, // llvm.hexagon.V6.vsubhnq.128B
+    1, // llvm.hexagon.V6.vsubhq
+    1, // llvm.hexagon.V6.vsubhq.128B
+    1, // llvm.hexagon.V6.vsubhsat
+    1, // llvm.hexagon.V6.vsubhsat.128B
+    1, // llvm.hexagon.V6.vsubhsat.dv
+    1, // llvm.hexagon.V6.vsubhsat.dv.128B
+    1, // llvm.hexagon.V6.vsubhw
+    1, // llvm.hexagon.V6.vsubhw.128B
+    1, // llvm.hexagon.V6.vsububh
+    1, // llvm.hexagon.V6.vsububh.128B
+    1, // llvm.hexagon.V6.vsububsat
+    1, // llvm.hexagon.V6.vsububsat.128B
+    1, // llvm.hexagon.V6.vsububsat.dv
+    1, // llvm.hexagon.V6.vsububsat.dv.128B
+    1, // llvm.hexagon.V6.vsubububb.sat
+    1, // llvm.hexagon.V6.vsubububb.sat.128B
+    1, // llvm.hexagon.V6.vsubuhsat
+    1, // llvm.hexagon.V6.vsubuhsat.128B
+    1, // llvm.hexagon.V6.vsubuhsat.dv
+    1, // llvm.hexagon.V6.vsubuhsat.dv.128B
+    1, // llvm.hexagon.V6.vsubuhw
+    1, // llvm.hexagon.V6.vsubuhw.128B
+    1, // llvm.hexagon.V6.vsubuwsat
+    1, // llvm.hexagon.V6.vsubuwsat.128B
+    1, // llvm.hexagon.V6.vsubuwsat.dv
+    1, // llvm.hexagon.V6.vsubuwsat.dv.128B
+    1, // llvm.hexagon.V6.vsubw
+    1, // llvm.hexagon.V6.vsubw.128B
+    1, // llvm.hexagon.V6.vsubw.dv
+    1, // llvm.hexagon.V6.vsubw.dv.128B
+    1, // llvm.hexagon.V6.vsubwnq
+    1, // llvm.hexagon.V6.vsubwnq.128B
+    1, // llvm.hexagon.V6.vsubwq
+    1, // llvm.hexagon.V6.vsubwq.128B
+    1, // llvm.hexagon.V6.vsubwsat
+    1, // llvm.hexagon.V6.vsubwsat.128B
+    1, // llvm.hexagon.V6.vsubwsat.dv
+    1, // llvm.hexagon.V6.vsubwsat.dv.128B
+    1, // llvm.hexagon.V6.vswap
+    1, // llvm.hexagon.V6.vswap.128B
+    1, // llvm.hexagon.V6.vtmpyb
+    1, // llvm.hexagon.V6.vtmpyb.128B
+    1, // llvm.hexagon.V6.vtmpyb.acc
+    1, // llvm.hexagon.V6.vtmpyb.acc.128B
+    1, // llvm.hexagon.V6.vtmpybus
+    1, // llvm.hexagon.V6.vtmpybus.128B
+    1, // llvm.hexagon.V6.vtmpybus.acc
+    1, // llvm.hexagon.V6.vtmpybus.acc.128B
+    1, // llvm.hexagon.V6.vtmpyhb
+    1, // llvm.hexagon.V6.vtmpyhb.128B
+    1, // llvm.hexagon.V6.vtmpyhb.acc
+    1, // llvm.hexagon.V6.vtmpyhb.acc.128B
+    1, // llvm.hexagon.V6.vunpackb
+    1, // llvm.hexagon.V6.vunpackb.128B
+    1, // llvm.hexagon.V6.vunpackh
+    1, // llvm.hexagon.V6.vunpackh.128B
+    1, // llvm.hexagon.V6.vunpackob
+    1, // llvm.hexagon.V6.vunpackob.128B
+    1, // llvm.hexagon.V6.vunpackoh
+    1, // llvm.hexagon.V6.vunpackoh.128B
+    1, // llvm.hexagon.V6.vunpackub
+    1, // llvm.hexagon.V6.vunpackub.128B
+    1, // llvm.hexagon.V6.vunpackuh
+    1, // llvm.hexagon.V6.vunpackuh.128B
+    1, // llvm.hexagon.V6.vxor
+    1, // llvm.hexagon.V6.vxor.128B
+    1, // llvm.hexagon.V6.vzb
+    1, // llvm.hexagon.V6.vzb.128B
+    1, // llvm.hexagon.V6.vzh
+    1, // llvm.hexagon.V6.vzh.128B
+    3, // llvm.hexagon.Y2.dccleana
+    3, // llvm.hexagon.Y2.dccleaninva
+    3, // llvm.hexagon.Y2.dcinva
+    38, // llvm.hexagon.Y2.dczeroa
+    3, // llvm.hexagon.Y4.l2fetch
+    3, // llvm.hexagon.Y5.l2fetch
+    22, // llvm.hexagon.circ.ldb
+    22, // llvm.hexagon.circ.ldd
+    22, // llvm.hexagon.circ.ldh
+    22, // llvm.hexagon.circ.ldub
+    22, // llvm.hexagon.circ.lduh
+    22, // llvm.hexagon.circ.ldw
+    34, // llvm.hexagon.circ.stb
+    34, // llvm.hexagon.circ.std
+    34, // llvm.hexagon.circ.sth
+    34, // llvm.hexagon.circ.sthhi
+    34, // llvm.hexagon.circ.stw
+    22, // llvm.hexagon.mm256i.vaddw
+    3, // llvm.hexagon.prefetch
+    3, // llvm.mips.absq.s.ph
+    3, // llvm.mips.absq.s.qb
+    3, // llvm.mips.absq.s.w
+    1, // llvm.mips.add.a.b
+    1, // llvm.mips.add.a.d
+    1, // llvm.mips.add.a.h
+    1, // llvm.mips.add.a.w
+    1, // llvm.mips.addq.ph
+    1, // llvm.mips.addq.s.ph
+    3, // llvm.mips.addq.s.w
+    1, // llvm.mips.addqh.ph
+    1, // llvm.mips.addqh.r.ph
+    1, // llvm.mips.addqh.r.w
+    1, // llvm.mips.addqh.w
+    1, // llvm.mips.adds.a.b
+    1, // llvm.mips.adds.a.d
+    1, // llvm.mips.adds.a.h
+    1, // llvm.mips.adds.a.w
+    1, // llvm.mips.adds.s.b
+    1, // llvm.mips.adds.s.d
+    1, // llvm.mips.adds.s.h
+    1, // llvm.mips.adds.s.w
+    1, // llvm.mips.adds.u.b
+    1, // llvm.mips.adds.u.d
+    1, // llvm.mips.adds.u.h
+    1, // llvm.mips.adds.u.w
+    3, // llvm.mips.addsc
+    3, // llvm.mips.addu.ph
+    1, // llvm.mips.addu.qb
+    3, // llvm.mips.addu.s.ph
+    1, // llvm.mips.addu.s.qb
+    1, // llvm.mips.adduh.qb
+    1, // llvm.mips.adduh.r.qb
+    1, // llvm.mips.addv.b
+    1, // llvm.mips.addv.d
+    1, // llvm.mips.addv.h
+    1, // llvm.mips.addv.w
+    1, // llvm.mips.addvi.b
+    1, // llvm.mips.addvi.d
+    1, // llvm.mips.addvi.h
+    1, // llvm.mips.addvi.w
+    3, // llvm.mips.addwc
+    1, // llvm.mips.and.v
+    1, // llvm.mips.andi.b
+    1, // llvm.mips.append
+    1, // llvm.mips.asub.s.b
+    1, // llvm.mips.asub.s.d
+    1, // llvm.mips.asub.s.h
+    1, // llvm.mips.asub.s.w
+    1, // llvm.mips.asub.u.b
+    1, // llvm.mips.asub.u.d
+    1, // llvm.mips.asub.u.h
+    1, // llvm.mips.asub.u.w
+    1, // llvm.mips.ave.s.b
+    1, // llvm.mips.ave.s.d
+    1, // llvm.mips.ave.s.h
+    1, // llvm.mips.ave.s.w
+    1, // llvm.mips.ave.u.b
+    1, // llvm.mips.ave.u.d
+    1, // llvm.mips.ave.u.h
+    1, // llvm.mips.ave.u.w
+    1, // llvm.mips.aver.s.b
+    1, // llvm.mips.aver.s.d
+    1, // llvm.mips.aver.s.h
+    1, // llvm.mips.aver.s.w
+    1, // llvm.mips.aver.u.b
+    1, // llvm.mips.aver.u.d
+    1, // llvm.mips.aver.u.h
+    1, // llvm.mips.aver.u.w
+    1, // llvm.mips.balign
+    1, // llvm.mips.bclr.b
+    1, // llvm.mips.bclr.d
+    1, // llvm.mips.bclr.h
+    1, // llvm.mips.bclr.w
+    1, // llvm.mips.bclri.b
+    1, // llvm.mips.bclri.d
+    1, // llvm.mips.bclri.h
+    1, // llvm.mips.bclri.w
+    1, // llvm.mips.binsl.b
+    1, // llvm.mips.binsl.d
+    1, // llvm.mips.binsl.h
+    1, // llvm.mips.binsl.w
+    1, // llvm.mips.binsli.b
+    1, // llvm.mips.binsli.d
+    1, // llvm.mips.binsli.h
+    1, // llvm.mips.binsli.w
+    1, // llvm.mips.binsr.b
+    1, // llvm.mips.binsr.d
+    1, // llvm.mips.binsr.h
+    1, // llvm.mips.binsr.w
+    1, // llvm.mips.binsri.b
+    1, // llvm.mips.binsri.d
+    1, // llvm.mips.binsri.h
+    1, // llvm.mips.binsri.w
+    1, // llvm.mips.bitrev
+    1, // llvm.mips.bmnz.v
+    1, // llvm.mips.bmnzi.b
+    1, // llvm.mips.bmz.v
+    1, // llvm.mips.bmzi.b
+    1, // llvm.mips.bneg.b
+    1, // llvm.mips.bneg.d
+    1, // llvm.mips.bneg.h
+    1, // llvm.mips.bneg.w
+    1, // llvm.mips.bnegi.b
+    1, // llvm.mips.bnegi.d
+    1, // llvm.mips.bnegi.h
+    1, // llvm.mips.bnegi.w
+    1, // llvm.mips.bnz.b
+    1, // llvm.mips.bnz.d
+    1, // llvm.mips.bnz.h
+    1, // llvm.mips.bnz.v
+    1, // llvm.mips.bnz.w
+    16, // llvm.mips.bposge32
+    1, // llvm.mips.bsel.v
+    1, // llvm.mips.bseli.b
+    1, // llvm.mips.bset.b
+    1, // llvm.mips.bset.d
+    1, // llvm.mips.bset.h
+    1, // llvm.mips.bset.w
+    1, // llvm.mips.bseti.b
+    1, // llvm.mips.bseti.d
+    1, // llvm.mips.bseti.h
+    1, // llvm.mips.bseti.w
+    1, // llvm.mips.bz.b
+    1, // llvm.mips.bz.d
+    1, // llvm.mips.bz.h
+    1, // llvm.mips.bz.v
+    1, // llvm.mips.bz.w
+    1, // llvm.mips.ceq.b
+    1, // llvm.mips.ceq.d
+    1, // llvm.mips.ceq.h
+    1, // llvm.mips.ceq.w
+    1, // llvm.mips.ceqi.b
+    1, // llvm.mips.ceqi.d
+    1, // llvm.mips.ceqi.h
+    1, // llvm.mips.ceqi.w
+    3, // llvm.mips.cfcmsa
+    1, // llvm.mips.cle.s.b
+    1, // llvm.mips.cle.s.d
+    1, // llvm.mips.cle.s.h
+    1, // llvm.mips.cle.s.w
+    1, // llvm.mips.cle.u.b
+    1, // llvm.mips.cle.u.d
+    1, // llvm.mips.cle.u.h
+    1, // llvm.mips.cle.u.w
+    1, // llvm.mips.clei.s.b
+    1, // llvm.mips.clei.s.d
+    1, // llvm.mips.clei.s.h
+    1, // llvm.mips.clei.s.w
+    1, // llvm.mips.clei.u.b
+    1, // llvm.mips.clei.u.d
+    1, // llvm.mips.clei.u.h
+    1, // llvm.mips.clei.u.w
+    1, // llvm.mips.clt.s.b
+    1, // llvm.mips.clt.s.d
+    1, // llvm.mips.clt.s.h
+    1, // llvm.mips.clt.s.w
+    1, // llvm.mips.clt.u.b
+    1, // llvm.mips.clt.u.d
+    1, // llvm.mips.clt.u.h
+    1, // llvm.mips.clt.u.w
+    1, // llvm.mips.clti.s.b
+    1, // llvm.mips.clti.s.d
+    1, // llvm.mips.clti.s.h
+    1, // llvm.mips.clti.s.w
+    1, // llvm.mips.clti.u.b
+    1, // llvm.mips.clti.u.d
+    1, // llvm.mips.clti.u.h
+    1, // llvm.mips.clti.u.w
+    3, // llvm.mips.cmp.eq.ph
+    3, // llvm.mips.cmp.le.ph
+    3, // llvm.mips.cmp.lt.ph
+    3, // llvm.mips.cmpgdu.eq.qb
+    3, // llvm.mips.cmpgdu.le.qb
+    3, // llvm.mips.cmpgdu.lt.qb
+    3, // llvm.mips.cmpgu.eq.qb
+    3, // llvm.mips.cmpgu.le.qb
+    3, // llvm.mips.cmpgu.lt.qb
+    3, // llvm.mips.cmpu.eq.qb
+    3, // llvm.mips.cmpu.le.qb
+    3, // llvm.mips.cmpu.lt.qb
+    1, // llvm.mips.copy.s.b
+    1, // llvm.mips.copy.s.d
+    1, // llvm.mips.copy.s.h
+    1, // llvm.mips.copy.s.w
+    1, // llvm.mips.copy.u.b
+    1, // llvm.mips.copy.u.d
+    1, // llvm.mips.copy.u.h
+    1, // llvm.mips.copy.u.w
+    3, // llvm.mips.ctcmsa
+    1, // llvm.mips.div.s.b
+    1, // llvm.mips.div.s.d
+    1, // llvm.mips.div.s.h
+    1, // llvm.mips.div.s.w
+    1, // llvm.mips.div.u.b
+    1, // llvm.mips.div.u.d
+    1, // llvm.mips.div.u.h
+    1, // llvm.mips.div.u.w
+    1, // llvm.mips.dlsa
+    1, // llvm.mips.dotp.s.d
+    1, // llvm.mips.dotp.s.h
+    1, // llvm.mips.dotp.s.w
+    1, // llvm.mips.dotp.u.d
+    1, // llvm.mips.dotp.u.h
+    1, // llvm.mips.dotp.u.w
+    1, // llvm.mips.dpa.w.ph
+    1, // llvm.mips.dpadd.s.d
+    1, // llvm.mips.dpadd.s.h
+    1, // llvm.mips.dpadd.s.w
+    1, // llvm.mips.dpadd.u.d
+    1, // llvm.mips.dpadd.u.h
+    1, // llvm.mips.dpadd.u.w
+    3, // llvm.mips.dpaq.s.w.ph
+    3, // llvm.mips.dpaq.sa.l.w
+    3, // llvm.mips.dpaqx.s.w.ph
+    3, // llvm.mips.dpaqx.sa.w.ph
+    1, // llvm.mips.dpau.h.qbl
+    1, // llvm.mips.dpau.h.qbr
+    1, // llvm.mips.dpax.w.ph
+    1, // llvm.mips.dps.w.ph
+    3, // llvm.mips.dpsq.s.w.ph
+    3, // llvm.mips.dpsq.sa.l.w
+    3, // llvm.mips.dpsqx.s.w.ph
+    3, // llvm.mips.dpsqx.sa.w.ph
+    1, // llvm.mips.dpsu.h.qbl
+    1, // llvm.mips.dpsu.h.qbr
+    1, // llvm.mips.dpsub.s.d
+    1, // llvm.mips.dpsub.s.h
+    1, // llvm.mips.dpsub.s.w
+    1, // llvm.mips.dpsub.u.d
+    1, // llvm.mips.dpsub.u.h
+    1, // llvm.mips.dpsub.u.w
+    1, // llvm.mips.dpsx.w.ph
+    3, // llvm.mips.extp
+    3, // llvm.mips.extpdp
+    3, // llvm.mips.extr.r.w
+    3, // llvm.mips.extr.rs.w
+    3, // llvm.mips.extr.s.h
+    3, // llvm.mips.extr.w
+    1, // llvm.mips.fadd.d
+    1, // llvm.mips.fadd.w
+    1, // llvm.mips.fcaf.d
+    1, // llvm.mips.fcaf.w
+    1, // llvm.mips.fceq.d
+    1, // llvm.mips.fceq.w
+    1, // llvm.mips.fclass.d
+    1, // llvm.mips.fclass.w
+    1, // llvm.mips.fcle.d
+    1, // llvm.mips.fcle.w
+    1, // llvm.mips.fclt.d
+    1, // llvm.mips.fclt.w
+    1, // llvm.mips.fcne.d
+    1, // llvm.mips.fcne.w
+    1, // llvm.mips.fcor.d
+    1, // llvm.mips.fcor.w
+    1, // llvm.mips.fcueq.d
+    1, // llvm.mips.fcueq.w
+    1, // llvm.mips.fcule.d
+    1, // llvm.mips.fcule.w
+    1, // llvm.mips.fcult.d
+    1, // llvm.mips.fcult.w
+    1, // llvm.mips.fcun.d
+    1, // llvm.mips.fcun.w
+    1, // llvm.mips.fcune.d
+    1, // llvm.mips.fcune.w
+    1, // llvm.mips.fdiv.d
+    1, // llvm.mips.fdiv.w
+    1, // llvm.mips.fexdo.h
+    1, // llvm.mips.fexdo.w
+    1, // llvm.mips.fexp2.d
+    1, // llvm.mips.fexp2.w
+    1, // llvm.mips.fexupl.d
+    1, // llvm.mips.fexupl.w
+    1, // llvm.mips.fexupr.d
+    1, // llvm.mips.fexupr.w
+    1, // llvm.mips.ffint.s.d
+    1, // llvm.mips.ffint.s.w
+    1, // llvm.mips.ffint.u.d
+    1, // llvm.mips.ffint.u.w
+    1, // llvm.mips.ffql.d
+    1, // llvm.mips.ffql.w
+    1, // llvm.mips.ffqr.d
+    1, // llvm.mips.ffqr.w
+    1, // llvm.mips.fill.b
+    1, // llvm.mips.fill.d
+    1, // llvm.mips.fill.h
+    1, // llvm.mips.fill.w
+    1, // llvm.mips.flog2.d
+    1, // llvm.mips.flog2.w
+    1, // llvm.mips.fmadd.d
+    1, // llvm.mips.fmadd.w
+    1, // llvm.mips.fmax.a.d
+    1, // llvm.mips.fmax.a.w
+    1, // llvm.mips.fmax.d
+    1, // llvm.mips.fmax.w
+    1, // llvm.mips.fmin.a.d
+    1, // llvm.mips.fmin.a.w
+    1, // llvm.mips.fmin.d
+    1, // llvm.mips.fmin.w
+    1, // llvm.mips.fmsub.d
+    1, // llvm.mips.fmsub.w
+    1, // llvm.mips.fmul.d
+    1, // llvm.mips.fmul.w
+    1, // llvm.mips.frcp.d
+    1, // llvm.mips.frcp.w
+    1, // llvm.mips.frint.d
+    1, // llvm.mips.frint.w
+    1, // llvm.mips.frsqrt.d
+    1, // llvm.mips.frsqrt.w
+    1, // llvm.mips.fsaf.d
+    1, // llvm.mips.fsaf.w
+    1, // llvm.mips.fseq.d
+    1, // llvm.mips.fseq.w
+    1, // llvm.mips.fsle.d
+    1, // llvm.mips.fsle.w
+    1, // llvm.mips.fslt.d
+    1, // llvm.mips.fslt.w
+    1, // llvm.mips.fsne.d
+    1, // llvm.mips.fsne.w
+    1, // llvm.mips.fsor.d
+    1, // llvm.mips.fsor.w
+    1, // llvm.mips.fsqrt.d
+    1, // llvm.mips.fsqrt.w
+    1, // llvm.mips.fsub.d
+    1, // llvm.mips.fsub.w
+    1, // llvm.mips.fsueq.d
+    1, // llvm.mips.fsueq.w
+    1, // llvm.mips.fsule.d
+    1, // llvm.mips.fsule.w
+    1, // llvm.mips.fsult.d
+    1, // llvm.mips.fsult.w
+    1, // llvm.mips.fsun.d
+    1, // llvm.mips.fsun.w
+    1, // llvm.mips.fsune.d
+    1, // llvm.mips.fsune.w
+    1, // llvm.mips.ftint.s.d
+    1, // llvm.mips.ftint.s.w
+    1, // llvm.mips.ftint.u.d
+    1, // llvm.mips.ftint.u.w
+    1, // llvm.mips.ftq.h
+    1, // llvm.mips.ftq.w
+    1, // llvm.mips.ftrunc.s.d
+    1, // llvm.mips.ftrunc.s.w
+    1, // llvm.mips.ftrunc.u.d
+    1, // llvm.mips.ftrunc.u.w
+    1, // llvm.mips.hadd.s.d
+    1, // llvm.mips.hadd.s.h
+    1, // llvm.mips.hadd.s.w
+    1, // llvm.mips.hadd.u.d
+    1, // llvm.mips.hadd.u.h
+    1, // llvm.mips.hadd.u.w
+    1, // llvm.mips.hsub.s.d
+    1, // llvm.mips.hsub.s.h
+    1, // llvm.mips.hsub.s.w
+    1, // llvm.mips.hsub.u.d
+    1, // llvm.mips.hsub.u.h
+    1, // llvm.mips.hsub.u.w
+    1, // llvm.mips.ilvev.b
+    1, // llvm.mips.ilvev.d
+    1, // llvm.mips.ilvev.h
+    1, // llvm.mips.ilvev.w
+    1, // llvm.mips.ilvl.b
+    1, // llvm.mips.ilvl.d
+    1, // llvm.mips.ilvl.h
+    1, // llvm.mips.ilvl.w
+    1, // llvm.mips.ilvod.b
+    1, // llvm.mips.ilvod.d
+    1, // llvm.mips.ilvod.h
+    1, // llvm.mips.ilvod.w
+    1, // llvm.mips.ilvr.b
+    1, // llvm.mips.ilvr.d
+    1, // llvm.mips.ilvr.h
+    1, // llvm.mips.ilvr.w
+    1, // llvm.mips.insert.b
+    1, // llvm.mips.insert.d
+    1, // llvm.mips.insert.h
+    1, // llvm.mips.insert.w
+    16, // llvm.mips.insv
+    1, // llvm.mips.insve.b
+    1, // llvm.mips.insve.d
+    1, // llvm.mips.insve.h
+    1, // llvm.mips.insve.w
+    2, // llvm.mips.lbux
+    2, // llvm.mips.ld.b
+    2, // llvm.mips.ld.d
+    2, // llvm.mips.ld.h
+    2, // llvm.mips.ld.w
+    1, // llvm.mips.ldi.b
+    1, // llvm.mips.ldi.d
+    1, // llvm.mips.ldi.h
+    1, // llvm.mips.ldi.w
+    2, // llvm.mips.lhx
+    1, // llvm.mips.lsa
+    2, // llvm.mips.lwx
+    1, // llvm.mips.madd
+    1, // llvm.mips.madd.q.h
+    1, // llvm.mips.madd.q.w
+    1, // llvm.mips.maddr.q.h
+    1, // llvm.mips.maddr.q.w
+    1, // llvm.mips.maddu
+    1, // llvm.mips.maddv.b
+    1, // llvm.mips.maddv.d
+    1, // llvm.mips.maddv.h
+    1, // llvm.mips.maddv.w
+    3, // llvm.mips.maq.s.w.phl
+    3, // llvm.mips.maq.s.w.phr
+    3, // llvm.mips.maq.sa.w.phl
+    3, // llvm.mips.maq.sa.w.phr
+    1, // llvm.mips.max.a.b
+    1, // llvm.mips.max.a.d
+    1, // llvm.mips.max.a.h
+    1, // llvm.mips.max.a.w
+    1, // llvm.mips.max.s.b
+    1, // llvm.mips.max.s.d
+    1, // llvm.mips.max.s.h
+    1, // llvm.mips.max.s.w
+    1, // llvm.mips.max.u.b
+    1, // llvm.mips.max.u.d
+    1, // llvm.mips.max.u.h
+    1, // llvm.mips.max.u.w
+    1, // llvm.mips.maxi.s.b
+    1, // llvm.mips.maxi.s.d
+    1, // llvm.mips.maxi.s.h
+    1, // llvm.mips.maxi.s.w
+    1, // llvm.mips.maxi.u.b
+    1, // llvm.mips.maxi.u.d
+    1, // llvm.mips.maxi.u.h
+    1, // llvm.mips.maxi.u.w
+    1, // llvm.mips.min.a.b
+    1, // llvm.mips.min.a.d
+    1, // llvm.mips.min.a.h
+    1, // llvm.mips.min.a.w
+    1, // llvm.mips.min.s.b
+    1, // llvm.mips.min.s.d
+    1, // llvm.mips.min.s.h
+    1, // llvm.mips.min.s.w
+    1, // llvm.mips.min.u.b
+    1, // llvm.mips.min.u.d
+    1, // llvm.mips.min.u.h
+    1, // llvm.mips.min.u.w
+    1, // llvm.mips.mini.s.b
+    1, // llvm.mips.mini.s.d
+    1, // llvm.mips.mini.s.h
+    1, // llvm.mips.mini.s.w
+    1, // llvm.mips.mini.u.b
+    1, // llvm.mips.mini.u.d
+    1, // llvm.mips.mini.u.h
+    1, // llvm.mips.mini.u.w
+    1, // llvm.mips.mod.s.b
+    1, // llvm.mips.mod.s.d
+    1, // llvm.mips.mod.s.h
+    1, // llvm.mips.mod.s.w
+    1, // llvm.mips.mod.u.b
+    1, // llvm.mips.mod.u.d
+    1, // llvm.mips.mod.u.h
+    1, // llvm.mips.mod.u.w
+    1, // llvm.mips.modsub
+    1, // llvm.mips.move.v
+    1, // llvm.mips.msub
+    1, // llvm.mips.msub.q.h
+    1, // llvm.mips.msub.q.w
+    1, // llvm.mips.msubr.q.h
+    1, // llvm.mips.msubr.q.w
+    1, // llvm.mips.msubu
+    1, // llvm.mips.msubv.b
+    1, // llvm.mips.msubv.d
+    1, // llvm.mips.msubv.h
+    1, // llvm.mips.msubv.w
+    3, // llvm.mips.mthlip
+    3, // llvm.mips.mul.ph
+    1, // llvm.mips.mul.q.h
+    1, // llvm.mips.mul.q.w
+    3, // llvm.mips.mul.s.ph
+    3, // llvm.mips.muleq.s.w.phl
+    3, // llvm.mips.muleq.s.w.phr
+    3, // llvm.mips.muleu.s.ph.qbl
+    3, // llvm.mips.muleu.s.ph.qbr
+    3, // llvm.mips.mulq.rs.ph
+    3, // llvm.mips.mulq.rs.w
+    3, // llvm.mips.mulq.s.ph
+    3, // llvm.mips.mulq.s.w
+    1, // llvm.mips.mulr.q.h
+    1, // llvm.mips.mulr.q.w
+    1, // llvm.mips.mulsa.w.ph
+    3, // llvm.mips.mulsaq.s.w.ph
+    1, // llvm.mips.mult
+    1, // llvm.mips.multu
+    1, // llvm.mips.mulv.b
+    1, // llvm.mips.mulv.d
+    1, // llvm.mips.mulv.h
+    1, // llvm.mips.mulv.w
+    1, // llvm.mips.nloc.b
+    1, // llvm.mips.nloc.d
+    1, // llvm.mips.nloc.h
+    1, // llvm.mips.nloc.w
+    1, // llvm.mips.nlzc.b
+    1, // llvm.mips.nlzc.d
+    1, // llvm.mips.nlzc.h
+    1, // llvm.mips.nlzc.w
+    1, // llvm.mips.nor.v
+    1, // llvm.mips.nori.b
+    1, // llvm.mips.or.v
+    1, // llvm.mips.ori.b
+    1, // llvm.mips.packrl.ph
+    1, // llvm.mips.pckev.b
+    1, // llvm.mips.pckev.d
+    1, // llvm.mips.pckev.h
+    1, // llvm.mips.pckev.w
+    1, // llvm.mips.pckod.b
+    1, // llvm.mips.pckod.d
+    1, // llvm.mips.pckod.h
+    1, // llvm.mips.pckod.w
+    1, // llvm.mips.pcnt.b
+    1, // llvm.mips.pcnt.d
+    1, // llvm.mips.pcnt.h
+    1, // llvm.mips.pcnt.w
+    16, // llvm.mips.pick.ph
+    16, // llvm.mips.pick.qb
+    1, // llvm.mips.preceq.w.phl
+    1, // llvm.mips.preceq.w.phr
+    1, // llvm.mips.precequ.ph.qbl
+    1, // llvm.mips.precequ.ph.qbla
+    1, // llvm.mips.precequ.ph.qbr
+    1, // llvm.mips.precequ.ph.qbra
+    1, // llvm.mips.preceu.ph.qbl
+    1, // llvm.mips.preceu.ph.qbla
+    1, // llvm.mips.preceu.ph.qbr
+    1, // llvm.mips.preceu.ph.qbra
+    3, // llvm.mips.precr.qb.ph
+    1, // llvm.mips.precr.sra.ph.w
+    1, // llvm.mips.precr.sra.r.ph.w
+    1, // llvm.mips.precrq.ph.w
+    1, // llvm.mips.precrq.qb.ph
+    3, // llvm.mips.precrq.rs.ph.w
+    3, // llvm.mips.precrqu.s.qb.ph
+    1, // llvm.mips.prepend
+    1, // llvm.mips.raddu.w.qb
+    16, // llvm.mips.rddsp
+    1, // llvm.mips.repl.ph
+    1, // llvm.mips.repl.qb
+    1, // llvm.mips.sat.s.b
+    1, // llvm.mips.sat.s.d
+    1, // llvm.mips.sat.s.h
+    1, // llvm.mips.sat.s.w
+    1, // llvm.mips.sat.u.b
+    1, // llvm.mips.sat.u.d
+    1, // llvm.mips.sat.u.h
+    1, // llvm.mips.sat.u.w
+    1, // llvm.mips.shf.b
+    1, // llvm.mips.shf.h
+    1, // llvm.mips.shf.w
+    1, // llvm.mips.shilo
+    3, // llvm.mips.shll.ph
+    3, // llvm.mips.shll.qb
+    3, // llvm.mips.shll.s.ph
+    3, // llvm.mips.shll.s.w
+    1, // llvm.mips.shra.ph
+    1, // llvm.mips.shra.qb
+    1, // llvm.mips.shra.r.ph
+    1, // llvm.mips.shra.r.qb
+    1, // llvm.mips.shra.r.w
+    1, // llvm.mips.shrl.ph
+    1, // llvm.mips.shrl.qb
+    1, // llvm.mips.sld.b
+    1, // llvm.mips.sld.d
+    1, // llvm.mips.sld.h
+    1, // llvm.mips.sld.w
+    1, // llvm.mips.sldi.b
+    1, // llvm.mips.sldi.d
+    1, // llvm.mips.sldi.h
+    1, // llvm.mips.sldi.w
+    1, // llvm.mips.sll.b
+    1, // llvm.mips.sll.d
+    1, // llvm.mips.sll.h
+    1, // llvm.mips.sll.w
+    1, // llvm.mips.slli.b
+    1, // llvm.mips.slli.d
+    1, // llvm.mips.slli.h
+    1, // llvm.mips.slli.w
+    1, // llvm.mips.splat.b
+    1, // llvm.mips.splat.d
+    1, // llvm.mips.splat.h
+    1, // llvm.mips.splat.w
+    1, // llvm.mips.splati.b
+    1, // llvm.mips.splati.d
+    1, // llvm.mips.splati.h
+    1, // llvm.mips.splati.w
+    1, // llvm.mips.sra.b
+    1, // llvm.mips.sra.d
+    1, // llvm.mips.sra.h
+    1, // llvm.mips.sra.w
+    1, // llvm.mips.srai.b
+    1, // llvm.mips.srai.d
+    1, // llvm.mips.srai.h
+    1, // llvm.mips.srai.w
+    1, // llvm.mips.srar.b
+    1, // llvm.mips.srar.d
+    1, // llvm.mips.srar.h
+    1, // llvm.mips.srar.w
+    1, // llvm.mips.srari.b
+    1, // llvm.mips.srari.d
+    1, // llvm.mips.srari.h
+    1, // llvm.mips.srari.w
+    1, // llvm.mips.srl.b
+    1, // llvm.mips.srl.d
+    1, // llvm.mips.srl.h
+    1, // llvm.mips.srl.w
+    1, // llvm.mips.srli.b
+    1, // llvm.mips.srli.d
+    1, // llvm.mips.srli.h
+    1, // llvm.mips.srli.w
+    1, // llvm.mips.srlr.b
+    1, // llvm.mips.srlr.d
+    1, // llvm.mips.srlr.h
+    1, // llvm.mips.srlr.w
+    1, // llvm.mips.srlri.b
+    1, // llvm.mips.srlri.d
+    1, // llvm.mips.srlri.h
+    1, // llvm.mips.srlri.w
+    22, // llvm.mips.st.b
+    22, // llvm.mips.st.d
+    22, // llvm.mips.st.h
+    22, // llvm.mips.st.w
+    1, // llvm.mips.subq.ph
+    1, // llvm.mips.subq.s.ph
+    3, // llvm.mips.subq.s.w
+    1, // llvm.mips.subqh.ph
+    1, // llvm.mips.subqh.r.ph
+    1, // llvm.mips.subqh.r.w
+    1, // llvm.mips.subqh.w
+    1, // llvm.mips.subs.s.b
+    1, // llvm.mips.subs.s.d
+    1, // llvm.mips.subs.s.h
+    1, // llvm.mips.subs.s.w
+    1, // llvm.mips.subs.u.b
+    1, // llvm.mips.subs.u.d
+    1, // llvm.mips.subs.u.h
+    1, // llvm.mips.subs.u.w
+    1, // llvm.mips.subsus.u.b
+    1, // llvm.mips.subsus.u.d
+    1, // llvm.mips.subsus.u.h
+    1, // llvm.mips.subsus.u.w
+    1, // llvm.mips.subsuu.s.b
+    1, // llvm.mips.subsuu.s.d
+    1, // llvm.mips.subsuu.s.h
+    1, // llvm.mips.subsuu.s.w
+    3, // llvm.mips.subu.ph
+    1, // llvm.mips.subu.qb
+    3, // llvm.mips.subu.s.ph
+    1, // llvm.mips.subu.s.qb
+    1, // llvm.mips.subuh.qb
+    1, // llvm.mips.subuh.r.qb
+    1, // llvm.mips.subv.b
+    1, // llvm.mips.subv.d
+    1, // llvm.mips.subv.h
+    1, // llvm.mips.subv.w
+    1, // llvm.mips.subvi.b
+    1, // llvm.mips.subvi.d
+    1, // llvm.mips.subvi.h
+    1, // llvm.mips.subvi.w
+    1, // llvm.mips.vshf.b
+    1, // llvm.mips.vshf.d
+    1, // llvm.mips.vshf.h
+    1, // llvm.mips.vshf.w
+    3, // llvm.mips.wrdsp
+    1, // llvm.mips.xor.v
+    1, // llvm.mips.xori.b
+    1, // llvm.nvvm.add.rm.d
+    1, // llvm.nvvm.add.rm.f
+    1, // llvm.nvvm.add.rm.ftz.f
+    1, // llvm.nvvm.add.rn.d
+    1, // llvm.nvvm.add.rn.f
+    1, // llvm.nvvm.add.rn.ftz.f
+    1, // llvm.nvvm.add.rp.d
+    1, // llvm.nvvm.add.rp.f
+    1, // llvm.nvvm.add.rp.ftz.f
+    1, // llvm.nvvm.add.rz.d
+    1, // llvm.nvvm.add.rz.f
+    1, // llvm.nvvm.add.rz.ftz.f
+    18, // llvm.nvvm.atomic.add.gen.f.cta
+    18, // llvm.nvvm.atomic.add.gen.f.sys
+    18, // llvm.nvvm.atomic.add.gen.i.cta
+    18, // llvm.nvvm.atomic.add.gen.i.sys
+    18, // llvm.nvvm.atomic.and.gen.i.cta
+    18, // llvm.nvvm.atomic.and.gen.i.sys
+    18, // llvm.nvvm.atomic.cas.gen.i.cta
+    18, // llvm.nvvm.atomic.cas.gen.i.sys
+    18, // llvm.nvvm.atomic.dec.gen.i.cta
+    18, // llvm.nvvm.atomic.dec.gen.i.sys
+    18, // llvm.nvvm.atomic.exch.gen.i.cta
+    18, // llvm.nvvm.atomic.exch.gen.i.sys
+    18, // llvm.nvvm.atomic.inc.gen.i.cta
+    18, // llvm.nvvm.atomic.inc.gen.i.sys
+    18, // llvm.nvvm.atomic.load.add.f32
+    18, // llvm.nvvm.atomic.load.add.f64
+    18, // llvm.nvvm.atomic.load.dec.32
+    18, // llvm.nvvm.atomic.load.inc.32
+    18, // llvm.nvvm.atomic.max.gen.i.cta
+    18, // llvm.nvvm.atomic.max.gen.i.sys
+    18, // llvm.nvvm.atomic.min.gen.i.cta
+    18, // llvm.nvvm.atomic.min.gen.i.sys
+    18, // llvm.nvvm.atomic.or.gen.i.cta
+    18, // llvm.nvvm.atomic.or.gen.i.sys
+    18, // llvm.nvvm.atomic.xor.gen.i.cta
+    18, // llvm.nvvm.atomic.xor.gen.i.sys
+    35, // llvm.nvvm.bar.sync
+    35, // llvm.nvvm.bar.warp.sync
+    35, // llvm.nvvm.barrier
+    35, // llvm.nvvm.barrier.n
+    35, // llvm.nvvm.barrier.sync
+    35, // llvm.nvvm.barrier.sync.cnt
+    35, // llvm.nvvm.barrier0
+    35, // llvm.nvvm.barrier0.and
+    35, // llvm.nvvm.barrier0.or
+    35, // llvm.nvvm.barrier0.popc
+    1, // llvm.nvvm.bitcast.d2ll
+    1, // llvm.nvvm.bitcast.f2i
+    1, // llvm.nvvm.bitcast.i2f
+    1, // llvm.nvvm.bitcast.ll2d
+    1, // llvm.nvvm.ceil.d
+    1, // llvm.nvvm.ceil.f
+    1, // llvm.nvvm.ceil.ftz.f
+    3, // llvm.nvvm.compiler.error
+    3, // llvm.nvvm.compiler.warn
+    1, // llvm.nvvm.cos.approx.f
+    1, // llvm.nvvm.cos.approx.ftz.f
+    1, // llvm.nvvm.d2f.rm
+    1, // llvm.nvvm.d2f.rm.ftz
+    1, // llvm.nvvm.d2f.rn
+    1, // llvm.nvvm.d2f.rn.ftz
+    1, // llvm.nvvm.d2f.rp
+    1, // llvm.nvvm.d2f.rp.ftz
+    1, // llvm.nvvm.d2f.rz
+    1, // llvm.nvvm.d2f.rz.ftz
+    1, // llvm.nvvm.d2i.hi
+    1, // llvm.nvvm.d2i.lo
+    1, // llvm.nvvm.d2i.rm
+    1, // llvm.nvvm.d2i.rn
+    1, // llvm.nvvm.d2i.rp
+    1, // llvm.nvvm.d2i.rz
+    1, // llvm.nvvm.d2ll.rm
+    1, // llvm.nvvm.d2ll.rn
+    1, // llvm.nvvm.d2ll.rp
+    1, // llvm.nvvm.d2ll.rz
+    1, // llvm.nvvm.d2ui.rm
+    1, // llvm.nvvm.d2ui.rn
+    1, // llvm.nvvm.d2ui.rp
+    1, // llvm.nvvm.d2ui.rz
+    1, // llvm.nvvm.d2ull.rm
+    1, // llvm.nvvm.d2ull.rn
+    1, // llvm.nvvm.d2ull.rp
+    1, // llvm.nvvm.d2ull.rz
+    1, // llvm.nvvm.div.approx.f
+    1, // llvm.nvvm.div.approx.ftz.f
+    1, // llvm.nvvm.div.rm.d
+    1, // llvm.nvvm.div.rm.f
+    1, // llvm.nvvm.div.rm.ftz.f
+    1, // llvm.nvvm.div.rn.d
+    1, // llvm.nvvm.div.rn.f
+    1, // llvm.nvvm.div.rn.ftz.f
+    1, // llvm.nvvm.div.rp.d
+    1, // llvm.nvvm.div.rp.f
+    1, // llvm.nvvm.div.rp.ftz.f
+    1, // llvm.nvvm.div.rz.d
+    1, // llvm.nvvm.div.rz.f
+    1, // llvm.nvvm.div.rz.ftz.f
+    1, // llvm.nvvm.ex2.approx.d
+    1, // llvm.nvvm.ex2.approx.f
+    1, // llvm.nvvm.ex2.approx.ftz.f
+    1, // llvm.nvvm.f2h.rn
+    1, // llvm.nvvm.f2h.rn.ftz
+    1, // llvm.nvvm.f2i.rm
+    1, // llvm.nvvm.f2i.rm.ftz
+    1, // llvm.nvvm.f2i.rn
+    1, // llvm.nvvm.f2i.rn.ftz
+    1, // llvm.nvvm.f2i.rp
+    1, // llvm.nvvm.f2i.rp.ftz
+    1, // llvm.nvvm.f2i.rz
+    1, // llvm.nvvm.f2i.rz.ftz
+    1, // llvm.nvvm.f2ll.rm
+    1, // llvm.nvvm.f2ll.rm.ftz
+    1, // llvm.nvvm.f2ll.rn
+    1, // llvm.nvvm.f2ll.rn.ftz
+    1, // llvm.nvvm.f2ll.rp
+    1, // llvm.nvvm.f2ll.rp.ftz
+    1, // llvm.nvvm.f2ll.rz
+    1, // llvm.nvvm.f2ll.rz.ftz
+    1, // llvm.nvvm.f2ui.rm
+    1, // llvm.nvvm.f2ui.rm.ftz
+    1, // llvm.nvvm.f2ui.rn
+    1, // llvm.nvvm.f2ui.rn.ftz
+    1, // llvm.nvvm.f2ui.rp
+    1, // llvm.nvvm.f2ui.rp.ftz
+    1, // llvm.nvvm.f2ui.rz
+    1, // llvm.nvvm.f2ui.rz.ftz
+    1, // llvm.nvvm.f2ull.rm
+    1, // llvm.nvvm.f2ull.rm.ftz
+    1, // llvm.nvvm.f2ull.rn
+    1, // llvm.nvvm.f2ull.rn.ftz
+    1, // llvm.nvvm.f2ull.rp
+    1, // llvm.nvvm.f2ull.rp.ftz
+    1, // llvm.nvvm.f2ull.rz
+    1, // llvm.nvvm.f2ull.rz.ftz
+    1, // llvm.nvvm.fabs.d
+    1, // llvm.nvvm.fabs.f
+    1, // llvm.nvvm.fabs.ftz.f
+    1, // llvm.nvvm.floor.d
+    1, // llvm.nvvm.floor.f
+    1, // llvm.nvvm.floor.ftz.f
+    1, // llvm.nvvm.fma.rm.d
+    1, // llvm.nvvm.fma.rm.f
+    1, // llvm.nvvm.fma.rm.ftz.f
+    1, // llvm.nvvm.fma.rn.d
+    1, // llvm.nvvm.fma.rn.f
+    1, // llvm.nvvm.fma.rn.ftz.f
+    1, // llvm.nvvm.fma.rp.d
+    1, // llvm.nvvm.fma.rp.f
+    1, // llvm.nvvm.fma.rp.ftz.f
+    1, // llvm.nvvm.fma.rz.d
+    1, // llvm.nvvm.fma.rz.f
+    1, // llvm.nvvm.fma.rz.ftz.f
+    1, // llvm.nvvm.fmax.d
+    1, // llvm.nvvm.fmax.f
+    1, // llvm.nvvm.fmax.ftz.f
+    1, // llvm.nvvm.fmin.d
+    1, // llvm.nvvm.fmin.f
+    1, // llvm.nvvm.fmin.ftz.f
+    1, // llvm.nvvm.fns
+    1, // llvm.nvvm.i2d.rm
+    1, // llvm.nvvm.i2d.rn
+    1, // llvm.nvvm.i2d.rp
+    1, // llvm.nvvm.i2d.rz
+    1, // llvm.nvvm.i2f.rm
+    1, // llvm.nvvm.i2f.rn
+    1, // llvm.nvvm.i2f.rp
+    1, // llvm.nvvm.i2f.rz
+    1, // llvm.nvvm.isspacep.const
+    1, // llvm.nvvm.isspacep.global
+    1, // llvm.nvvm.isspacep.local
+    1, // llvm.nvvm.isspacep.shared
+    1, // llvm.nvvm.istypep.sampler
+    1, // llvm.nvvm.istypep.surface
+    1, // llvm.nvvm.istypep.texture
+    39, // llvm.nvvm.ldg.global.f
+    39, // llvm.nvvm.ldg.global.i
+    39, // llvm.nvvm.ldg.global.p
+    39, // llvm.nvvm.ldu.global.f
+    39, // llvm.nvvm.ldu.global.i
+    39, // llvm.nvvm.ldu.global.p
+    1, // llvm.nvvm.lg2.approx.d
+    1, // llvm.nvvm.lg2.approx.f
+    1, // llvm.nvvm.lg2.approx.ftz.f
+    1, // llvm.nvvm.ll2d.rm
+    1, // llvm.nvvm.ll2d.rn
+    1, // llvm.nvvm.ll2d.rp
+    1, // llvm.nvvm.ll2d.rz
+    1, // llvm.nvvm.ll2f.rm
+    1, // llvm.nvvm.ll2f.rn
+    1, // llvm.nvvm.ll2f.rp
+    1, // llvm.nvvm.ll2f.rz
+    1, // llvm.nvvm.lohi.i2d
+    40, // llvm.nvvm.match.all.sync.i32p
+    40, // llvm.nvvm.match.all.sync.i64p
+    40, // llvm.nvvm.match.any.sync.i32
+    40, // llvm.nvvm.match.any.sync.i64
+    3, // llvm.nvvm.membar.cta
+    3, // llvm.nvvm.membar.gl
+    3, // llvm.nvvm.membar.sys
+    1, // llvm.nvvm.move.double
+    1, // llvm.nvvm.move.float
+    1, // llvm.nvvm.move.i16
+    1, // llvm.nvvm.move.i32
+    1, // llvm.nvvm.move.i64
+    12, // llvm.nvvm.move.ptr
+    1, // llvm.nvvm.mul.rm.d
+    1, // llvm.nvvm.mul.rm.f
+    1, // llvm.nvvm.mul.rm.ftz.f
+    1, // llvm.nvvm.mul.rn.d
+    1, // llvm.nvvm.mul.rn.f
+    1, // llvm.nvvm.mul.rn.ftz.f
+    1, // llvm.nvvm.mul.rp.d
+    1, // llvm.nvvm.mul.rp.f
+    1, // llvm.nvvm.mul.rp.ftz.f
+    1, // llvm.nvvm.mul.rz.d
+    1, // llvm.nvvm.mul.rz.f
+    1, // llvm.nvvm.mul.rz.ftz.f
+    1, // llvm.nvvm.mul24.i
+    1, // llvm.nvvm.mul24.ui
+    1, // llvm.nvvm.mulhi.i
+    1, // llvm.nvvm.mulhi.ll
+    1, // llvm.nvvm.mulhi.ui
+    1, // llvm.nvvm.mulhi.ull
+    1, // llvm.nvvm.prmt
+    1, // llvm.nvvm.ptr.constant.to.gen
+    1, // llvm.nvvm.ptr.gen.to.constant
+    1, // llvm.nvvm.ptr.gen.to.global
+    1, // llvm.nvvm.ptr.gen.to.local
+    1, // llvm.nvvm.ptr.gen.to.param
+    1, // llvm.nvvm.ptr.gen.to.shared
+    1, // llvm.nvvm.ptr.global.to.gen
+    1, // llvm.nvvm.ptr.local.to.gen
+    1, // llvm.nvvm.ptr.shared.to.gen
+    1, // llvm.nvvm.rcp.approx.ftz.d
+    1, // llvm.nvvm.rcp.rm.d
+    1, // llvm.nvvm.rcp.rm.f
+    1, // llvm.nvvm.rcp.rm.ftz.f
+    1, // llvm.nvvm.rcp.rn.d
+    1, // llvm.nvvm.rcp.rn.f
+    1, // llvm.nvvm.rcp.rn.ftz.f
+    1, // llvm.nvvm.rcp.rp.d
+    1, // llvm.nvvm.rcp.rp.f
+    1, // llvm.nvvm.rcp.rp.ftz.f
+    1, // llvm.nvvm.rcp.rz.d
+    1, // llvm.nvvm.rcp.rz.f
+    1, // llvm.nvvm.rcp.rz.ftz.f
+    1, // llvm.nvvm.read.ptx.sreg.clock
+    1, // llvm.nvvm.read.ptx.sreg.clock64
+    1, // llvm.nvvm.read.ptx.sreg.ctaid.w
+    1, // llvm.nvvm.read.ptx.sreg.ctaid.x
+    1, // llvm.nvvm.read.ptx.sreg.ctaid.y
+    1, // llvm.nvvm.read.ptx.sreg.ctaid.z
+    1, // llvm.nvvm.read.ptx.sreg.envreg0
+    1, // llvm.nvvm.read.ptx.sreg.envreg1
+    1, // llvm.nvvm.read.ptx.sreg.envreg10
+    1, // llvm.nvvm.read.ptx.sreg.envreg11
+    1, // llvm.nvvm.read.ptx.sreg.envreg12
+    1, // llvm.nvvm.read.ptx.sreg.envreg13
+    1, // llvm.nvvm.read.ptx.sreg.envreg14
+    1, // llvm.nvvm.read.ptx.sreg.envreg15
+    1, // llvm.nvvm.read.ptx.sreg.envreg16
+    1, // llvm.nvvm.read.ptx.sreg.envreg17
+    1, // llvm.nvvm.read.ptx.sreg.envreg18
+    1, // llvm.nvvm.read.ptx.sreg.envreg19
+    1, // llvm.nvvm.read.ptx.sreg.envreg2
+    1, // llvm.nvvm.read.ptx.sreg.envreg20
+    1, // llvm.nvvm.read.ptx.sreg.envreg21
+    1, // llvm.nvvm.read.ptx.sreg.envreg22
+    1, // llvm.nvvm.read.ptx.sreg.envreg23
+    1, // llvm.nvvm.read.ptx.sreg.envreg24
+    1, // llvm.nvvm.read.ptx.sreg.envreg25
+    1, // llvm.nvvm.read.ptx.sreg.envreg26
+    1, // llvm.nvvm.read.ptx.sreg.envreg27
+    1, // llvm.nvvm.read.ptx.sreg.envreg28
+    1, // llvm.nvvm.read.ptx.sreg.envreg29
+    1, // llvm.nvvm.read.ptx.sreg.envreg3
+    1, // llvm.nvvm.read.ptx.sreg.envreg30
+    1, // llvm.nvvm.read.ptx.sreg.envreg31
+    1, // llvm.nvvm.read.ptx.sreg.envreg4
+    1, // llvm.nvvm.read.ptx.sreg.envreg5
+    1, // llvm.nvvm.read.ptx.sreg.envreg6
+    1, // llvm.nvvm.read.ptx.sreg.envreg7
+    1, // llvm.nvvm.read.ptx.sreg.envreg8
+    1, // llvm.nvvm.read.ptx.sreg.envreg9
+    1, // llvm.nvvm.read.ptx.sreg.gridid
+    1, // llvm.nvvm.read.ptx.sreg.laneid
+    1, // llvm.nvvm.read.ptx.sreg.lanemask.eq
+    1, // llvm.nvvm.read.ptx.sreg.lanemask.ge
+    1, // llvm.nvvm.read.ptx.sreg.lanemask.gt
+    1, // llvm.nvvm.read.ptx.sreg.lanemask.le
+    1, // llvm.nvvm.read.ptx.sreg.lanemask.lt
+    1, // llvm.nvvm.read.ptx.sreg.nctaid.w
+    1, // llvm.nvvm.read.ptx.sreg.nctaid.x
+    1, // llvm.nvvm.read.ptx.sreg.nctaid.y
+    1, // llvm.nvvm.read.ptx.sreg.nctaid.z
+    1, // llvm.nvvm.read.ptx.sreg.nsmid
+    1, // llvm.nvvm.read.ptx.sreg.ntid.w
+    1, // llvm.nvvm.read.ptx.sreg.ntid.x
+    1, // llvm.nvvm.read.ptx.sreg.ntid.y
+    1, // llvm.nvvm.read.ptx.sreg.ntid.z
+    1, // llvm.nvvm.read.ptx.sreg.nwarpid
+    1, // llvm.nvvm.read.ptx.sreg.pm0
+    1, // llvm.nvvm.read.ptx.sreg.pm1
+    1, // llvm.nvvm.read.ptx.sreg.pm2
+    1, // llvm.nvvm.read.ptx.sreg.pm3
+    1, // llvm.nvvm.read.ptx.sreg.smid
+    1, // llvm.nvvm.read.ptx.sreg.tid.w
+    1, // llvm.nvvm.read.ptx.sreg.tid.x
+    1, // llvm.nvvm.read.ptx.sreg.tid.y
+    1, // llvm.nvvm.read.ptx.sreg.tid.z
+    1, // llvm.nvvm.read.ptx.sreg.warpid
+    1, // llvm.nvvm.read.ptx.sreg.warpsize
+    1, // llvm.nvvm.reflect
+    1, // llvm.nvvm.rotate.b32
+    1, // llvm.nvvm.rotate.b64
+    1, // llvm.nvvm.rotate.right.b64
+    1, // llvm.nvvm.round.d
+    1, // llvm.nvvm.round.f
+    1, // llvm.nvvm.round.ftz.f
+    1, // llvm.nvvm.rsqrt.approx.d
+    1, // llvm.nvvm.rsqrt.approx.f
+    1, // llvm.nvvm.rsqrt.approx.ftz.f
+    1, // llvm.nvvm.sad.i
+    1, // llvm.nvvm.sad.ui
+    1, // llvm.nvvm.saturate.d
+    1, // llvm.nvvm.saturate.f
+    1, // llvm.nvvm.saturate.ftz.f
+    40, // llvm.nvvm.shfl.bfly.f32
+    40, // llvm.nvvm.shfl.bfly.i32
+    40, // llvm.nvvm.shfl.down.f32
+    40, // llvm.nvvm.shfl.down.i32
+    40, // llvm.nvvm.shfl.idx.f32
+    40, // llvm.nvvm.shfl.idx.i32
+    40, // llvm.nvvm.shfl.sync.bfly.f32
+    40, // llvm.nvvm.shfl.sync.bfly.i32
+    40, // llvm.nvvm.shfl.sync.down.f32
+    40, // llvm.nvvm.shfl.sync.down.i32
+    40, // llvm.nvvm.shfl.sync.idx.f32
+    40, // llvm.nvvm.shfl.sync.idx.i32
+    40, // llvm.nvvm.shfl.sync.up.f32
+    40, // llvm.nvvm.shfl.sync.up.i32
+    40, // llvm.nvvm.shfl.up.f32
+    40, // llvm.nvvm.shfl.up.i32
+    1, // llvm.nvvm.sin.approx.f
+    1, // llvm.nvvm.sin.approx.ftz.f
+    1, // llvm.nvvm.sqrt.approx.f
+    1, // llvm.nvvm.sqrt.approx.ftz.f
+    1, // llvm.nvvm.sqrt.f
+    1, // llvm.nvvm.sqrt.rm.d
+    1, // llvm.nvvm.sqrt.rm.f
+    1, // llvm.nvvm.sqrt.rm.ftz.f
+    1, // llvm.nvvm.sqrt.rn.d
+    1, // llvm.nvvm.sqrt.rn.f
+    1, // llvm.nvvm.sqrt.rn.ftz.f
+    1, // llvm.nvvm.sqrt.rp.d
+    1, // llvm.nvvm.sqrt.rp.f
+    1, // llvm.nvvm.sqrt.rp.ftz.f
+    1, // llvm.nvvm.sqrt.rz.d
+    1, // llvm.nvvm.sqrt.rz.f
+    1, // llvm.nvvm.sqrt.rz.ftz.f
+    3, // llvm.nvvm.suld.1d.array.i16.clamp
+    3, // llvm.nvvm.suld.1d.array.i16.trap
+    3, // llvm.nvvm.suld.1d.array.i16.zero
+    3, // llvm.nvvm.suld.1d.array.i32.clamp
+    3, // llvm.nvvm.suld.1d.array.i32.trap
+    3, // llvm.nvvm.suld.1d.array.i32.zero
+    3, // llvm.nvvm.suld.1d.array.i64.clamp
+    3, // llvm.nvvm.suld.1d.array.i64.trap
+    3, // llvm.nvvm.suld.1d.array.i64.zero
+    3, // llvm.nvvm.suld.1d.array.i8.clamp
+    3, // llvm.nvvm.suld.1d.array.i8.trap
+    3, // llvm.nvvm.suld.1d.array.i8.zero
+    3, // llvm.nvvm.suld.1d.array.v2i16.clamp
+    3, // llvm.nvvm.suld.1d.array.v2i16.trap
+    3, // llvm.nvvm.suld.1d.array.v2i16.zero
+    3, // llvm.nvvm.suld.1d.array.v2i32.clamp
+    3, // llvm.nvvm.suld.1d.array.v2i32.trap
+    3, // llvm.nvvm.suld.1d.array.v2i32.zero
+    3, // llvm.nvvm.suld.1d.array.v2i64.clamp
+    3, // llvm.nvvm.suld.1d.array.v2i64.trap
+    3, // llvm.nvvm.suld.1d.array.v2i64.zero
+    3, // llvm.nvvm.suld.1d.array.v2i8.clamp
+    3, // llvm.nvvm.suld.1d.array.v2i8.trap
+    3, // llvm.nvvm.suld.1d.array.v2i8.zero
+    3, // llvm.nvvm.suld.1d.array.v4i16.clamp
+    3, // llvm.nvvm.suld.1d.array.v4i16.trap
+    3, // llvm.nvvm.suld.1d.array.v4i16.zero
+    3, // llvm.nvvm.suld.1d.array.v4i32.clamp
+    3, // llvm.nvvm.suld.1d.array.v4i32.trap
+    3, // llvm.nvvm.suld.1d.array.v4i32.zero
+    3, // llvm.nvvm.suld.1d.array.v4i8.clamp
+    3, // llvm.nvvm.suld.1d.array.v4i8.trap
+    3, // llvm.nvvm.suld.1d.array.v4i8.zero
+    3, // llvm.nvvm.suld.1d.i16.clamp
+    3, // llvm.nvvm.suld.1d.i16.trap
+    3, // llvm.nvvm.suld.1d.i16.zero
+    3, // llvm.nvvm.suld.1d.i32.clamp
+    3, // llvm.nvvm.suld.1d.i32.trap
+    3, // llvm.nvvm.suld.1d.i32.zero
+    3, // llvm.nvvm.suld.1d.i64.clamp
+    3, // llvm.nvvm.suld.1d.i64.trap
+    3, // llvm.nvvm.suld.1d.i64.zero
+    3, // llvm.nvvm.suld.1d.i8.clamp
+    3, // llvm.nvvm.suld.1d.i8.trap
+    3, // llvm.nvvm.suld.1d.i8.zero
+    3, // llvm.nvvm.suld.1d.v2i16.clamp
+    3, // llvm.nvvm.suld.1d.v2i16.trap
+    3, // llvm.nvvm.suld.1d.v2i16.zero
+    3, // llvm.nvvm.suld.1d.v2i32.clamp
+    3, // llvm.nvvm.suld.1d.v2i32.trap
+    3, // llvm.nvvm.suld.1d.v2i32.zero
+    3, // llvm.nvvm.suld.1d.v2i64.clamp
+    3, // llvm.nvvm.suld.1d.v2i64.trap
+    3, // llvm.nvvm.suld.1d.v2i64.zero
+    3, // llvm.nvvm.suld.1d.v2i8.clamp
+    3, // llvm.nvvm.suld.1d.v2i8.trap
+    3, // llvm.nvvm.suld.1d.v2i8.zero
+    3, // llvm.nvvm.suld.1d.v4i16.clamp
+    3, // llvm.nvvm.suld.1d.v4i16.trap
+    3, // llvm.nvvm.suld.1d.v4i16.zero
+    3, // llvm.nvvm.suld.1d.v4i32.clamp
+    3, // llvm.nvvm.suld.1d.v4i32.trap
+    3, // llvm.nvvm.suld.1d.v4i32.zero
+    3, // llvm.nvvm.suld.1d.v4i8.clamp
+    3, // llvm.nvvm.suld.1d.v4i8.trap
+    3, // llvm.nvvm.suld.1d.v4i8.zero
+    3, // llvm.nvvm.suld.2d.array.i16.clamp
+    3, // llvm.nvvm.suld.2d.array.i16.trap
+    3, // llvm.nvvm.suld.2d.array.i16.zero
+    3, // llvm.nvvm.suld.2d.array.i32.clamp
+    3, // llvm.nvvm.suld.2d.array.i32.trap
+    3, // llvm.nvvm.suld.2d.array.i32.zero
+    3, // llvm.nvvm.suld.2d.array.i64.clamp
+    3, // llvm.nvvm.suld.2d.array.i64.trap
+    3, // llvm.nvvm.suld.2d.array.i64.zero
+    3, // llvm.nvvm.suld.2d.array.i8.clamp
+    3, // llvm.nvvm.suld.2d.array.i8.trap
+    3, // llvm.nvvm.suld.2d.array.i8.zero
+    3, // llvm.nvvm.suld.2d.array.v2i16.clamp
+    3, // llvm.nvvm.suld.2d.array.v2i16.trap
+    3, // llvm.nvvm.suld.2d.array.v2i16.zero
+    3, // llvm.nvvm.suld.2d.array.v2i32.clamp
+    3, // llvm.nvvm.suld.2d.array.v2i32.trap
+    3, // llvm.nvvm.suld.2d.array.v2i32.zero
+    3, // llvm.nvvm.suld.2d.array.v2i64.clamp
+    3, // llvm.nvvm.suld.2d.array.v2i64.trap
+    3, // llvm.nvvm.suld.2d.array.v2i64.zero
+    3, // llvm.nvvm.suld.2d.array.v2i8.clamp
+    3, // llvm.nvvm.suld.2d.array.v2i8.trap
+    3, // llvm.nvvm.suld.2d.array.v2i8.zero
+    3, // llvm.nvvm.suld.2d.array.v4i16.clamp
+    3, // llvm.nvvm.suld.2d.array.v4i16.trap
+    3, // llvm.nvvm.suld.2d.array.v4i16.zero
+    3, // llvm.nvvm.suld.2d.array.v4i32.clamp
+    3, // llvm.nvvm.suld.2d.array.v4i32.trap
+    3, // llvm.nvvm.suld.2d.array.v4i32.zero
+    3, // llvm.nvvm.suld.2d.array.v4i8.clamp
+    3, // llvm.nvvm.suld.2d.array.v4i8.trap
+    3, // llvm.nvvm.suld.2d.array.v4i8.zero
+    3, // llvm.nvvm.suld.2d.i16.clamp
+    3, // llvm.nvvm.suld.2d.i16.trap
+    3, // llvm.nvvm.suld.2d.i16.zero
+    3, // llvm.nvvm.suld.2d.i32.clamp
+    3, // llvm.nvvm.suld.2d.i32.trap
+    3, // llvm.nvvm.suld.2d.i32.zero
+    3, // llvm.nvvm.suld.2d.i64.clamp
+    3, // llvm.nvvm.suld.2d.i64.trap
+    3, // llvm.nvvm.suld.2d.i64.zero
+    3, // llvm.nvvm.suld.2d.i8.clamp
+    3, // llvm.nvvm.suld.2d.i8.trap
+    3, // llvm.nvvm.suld.2d.i8.zero
+    3, // llvm.nvvm.suld.2d.v2i16.clamp
+    3, // llvm.nvvm.suld.2d.v2i16.trap
+    3, // llvm.nvvm.suld.2d.v2i16.zero
+    3, // llvm.nvvm.suld.2d.v2i32.clamp
+    3, // llvm.nvvm.suld.2d.v2i32.trap
+    3, // llvm.nvvm.suld.2d.v2i32.zero
+    3, // llvm.nvvm.suld.2d.v2i64.clamp
+    3, // llvm.nvvm.suld.2d.v2i64.trap
+    3, // llvm.nvvm.suld.2d.v2i64.zero
+    3, // llvm.nvvm.suld.2d.v2i8.clamp
+    3, // llvm.nvvm.suld.2d.v2i8.trap
+    3, // llvm.nvvm.suld.2d.v2i8.zero
+    3, // llvm.nvvm.suld.2d.v4i16.clamp
+    3, // llvm.nvvm.suld.2d.v4i16.trap
+    3, // llvm.nvvm.suld.2d.v4i16.zero
+    3, // llvm.nvvm.suld.2d.v4i32.clamp
+    3, // llvm.nvvm.suld.2d.v4i32.trap
+    3, // llvm.nvvm.suld.2d.v4i32.zero
+    3, // llvm.nvvm.suld.2d.v4i8.clamp
+    3, // llvm.nvvm.suld.2d.v4i8.trap
+    3, // llvm.nvvm.suld.2d.v4i8.zero
+    3, // llvm.nvvm.suld.3d.i16.clamp
+    3, // llvm.nvvm.suld.3d.i16.trap
+    3, // llvm.nvvm.suld.3d.i16.zero
+    3, // llvm.nvvm.suld.3d.i32.clamp
+    3, // llvm.nvvm.suld.3d.i32.trap
+    3, // llvm.nvvm.suld.3d.i32.zero
+    3, // llvm.nvvm.suld.3d.i64.clamp
+    3, // llvm.nvvm.suld.3d.i64.trap
+    3, // llvm.nvvm.suld.3d.i64.zero
+    3, // llvm.nvvm.suld.3d.i8.clamp
+    3, // llvm.nvvm.suld.3d.i8.trap
+    3, // llvm.nvvm.suld.3d.i8.zero
+    3, // llvm.nvvm.suld.3d.v2i16.clamp
+    3, // llvm.nvvm.suld.3d.v2i16.trap
+    3, // llvm.nvvm.suld.3d.v2i16.zero
+    3, // llvm.nvvm.suld.3d.v2i32.clamp
+    3, // llvm.nvvm.suld.3d.v2i32.trap
+    3, // llvm.nvvm.suld.3d.v2i32.zero
+    3, // llvm.nvvm.suld.3d.v2i64.clamp
+    3, // llvm.nvvm.suld.3d.v2i64.trap
+    3, // llvm.nvvm.suld.3d.v2i64.zero
+    3, // llvm.nvvm.suld.3d.v2i8.clamp
+    3, // llvm.nvvm.suld.3d.v2i8.trap
+    3, // llvm.nvvm.suld.3d.v2i8.zero
+    3, // llvm.nvvm.suld.3d.v4i16.clamp
+    3, // llvm.nvvm.suld.3d.v4i16.trap
+    3, // llvm.nvvm.suld.3d.v4i16.zero
+    3, // llvm.nvvm.suld.3d.v4i32.clamp
+    3, // llvm.nvvm.suld.3d.v4i32.trap
+    3, // llvm.nvvm.suld.3d.v4i32.zero
+    3, // llvm.nvvm.suld.3d.v4i8.clamp
+    3, // llvm.nvvm.suld.3d.v4i8.trap
+    3, // llvm.nvvm.suld.3d.v4i8.zero
+    1, // llvm.nvvm.suq.array.size
+    1, // llvm.nvvm.suq.channel.data.type
+    1, // llvm.nvvm.suq.channel.order
+    1, // llvm.nvvm.suq.depth
+    1, // llvm.nvvm.suq.height
+    1, // llvm.nvvm.suq.width
+    3, // llvm.nvvm.sust.b.1d.array.i16.clamp
+    3, // llvm.nvvm.sust.b.1d.array.i16.trap
+    3, // llvm.nvvm.sust.b.1d.array.i16.zero
+    3, // llvm.nvvm.sust.b.1d.array.i32.clamp
+    3, // llvm.nvvm.sust.b.1d.array.i32.trap
+    3, // llvm.nvvm.sust.b.1d.array.i32.zero
+    3, // llvm.nvvm.sust.b.1d.array.i64.clamp
+    3, // llvm.nvvm.sust.b.1d.array.i64.trap
+    3, // llvm.nvvm.sust.b.1d.array.i64.zero
+    3, // llvm.nvvm.sust.b.1d.array.i8.clamp
+    3, // llvm.nvvm.sust.b.1d.array.i8.trap
+    3, // llvm.nvvm.sust.b.1d.array.i8.zero
+    3, // llvm.nvvm.sust.b.1d.array.v2i16.clamp
+    3, // llvm.nvvm.sust.b.1d.array.v2i16.trap
+    3, // llvm.nvvm.sust.b.1d.array.v2i16.zero
+    3, // llvm.nvvm.sust.b.1d.array.v2i32.clamp
+    3, // llvm.nvvm.sust.b.1d.array.v2i32.trap
+    3, // llvm.nvvm.sust.b.1d.array.v2i32.zero
+    3, // llvm.nvvm.sust.b.1d.array.v2i64.clamp
+    3, // llvm.nvvm.sust.b.1d.array.v2i64.trap
+    3, // llvm.nvvm.sust.b.1d.array.v2i64.zero
+    3, // llvm.nvvm.sust.b.1d.array.v2i8.clamp
+    3, // llvm.nvvm.sust.b.1d.array.v2i8.trap
+    3, // llvm.nvvm.sust.b.1d.array.v2i8.zero
+    3, // llvm.nvvm.sust.b.1d.array.v4i16.clamp
+    3, // llvm.nvvm.sust.b.1d.array.v4i16.trap
+    3, // llvm.nvvm.sust.b.1d.array.v4i16.zero
+    3, // llvm.nvvm.sust.b.1d.array.v4i32.clamp
+    3, // llvm.nvvm.sust.b.1d.array.v4i32.trap
+    3, // llvm.nvvm.sust.b.1d.array.v4i32.zero
+    3, // llvm.nvvm.sust.b.1d.array.v4i8.clamp
+    3, // llvm.nvvm.sust.b.1d.array.v4i8.trap
+    3, // llvm.nvvm.sust.b.1d.array.v4i8.zero
+    3, // llvm.nvvm.sust.b.1d.i16.clamp
+    3, // llvm.nvvm.sust.b.1d.i16.trap
+    3, // llvm.nvvm.sust.b.1d.i16.zero
+    3, // llvm.nvvm.sust.b.1d.i32.clamp
+    3, // llvm.nvvm.sust.b.1d.i32.trap
+    3, // llvm.nvvm.sust.b.1d.i32.zero
+    3, // llvm.nvvm.sust.b.1d.i64.clamp
+    3, // llvm.nvvm.sust.b.1d.i64.trap
+    3, // llvm.nvvm.sust.b.1d.i64.zero
+    3, // llvm.nvvm.sust.b.1d.i8.clamp
+    3, // llvm.nvvm.sust.b.1d.i8.trap
+    3, // llvm.nvvm.sust.b.1d.i8.zero
+    3, // llvm.nvvm.sust.b.1d.v2i16.clamp
+    3, // llvm.nvvm.sust.b.1d.v2i16.trap
+    3, // llvm.nvvm.sust.b.1d.v2i16.zero
+    3, // llvm.nvvm.sust.b.1d.v2i32.clamp
+    3, // llvm.nvvm.sust.b.1d.v2i32.trap
+    3, // llvm.nvvm.sust.b.1d.v2i32.zero
+    3, // llvm.nvvm.sust.b.1d.v2i64.clamp
+    3, // llvm.nvvm.sust.b.1d.v2i64.trap
+    3, // llvm.nvvm.sust.b.1d.v2i64.zero
+    3, // llvm.nvvm.sust.b.1d.v2i8.clamp
+    3, // llvm.nvvm.sust.b.1d.v2i8.trap
+    3, // llvm.nvvm.sust.b.1d.v2i8.zero
+    3, // llvm.nvvm.sust.b.1d.v4i16.clamp
+    3, // llvm.nvvm.sust.b.1d.v4i16.trap
+    3, // llvm.nvvm.sust.b.1d.v4i16.zero
+    3, // llvm.nvvm.sust.b.1d.v4i32.clamp
+    3, // llvm.nvvm.sust.b.1d.v4i32.trap
+    3, // llvm.nvvm.sust.b.1d.v4i32.zero
+    3, // llvm.nvvm.sust.b.1d.v4i8.clamp
+    3, // llvm.nvvm.sust.b.1d.v4i8.trap
+    3, // llvm.nvvm.sust.b.1d.v4i8.zero
+    3, // llvm.nvvm.sust.b.2d.array.i16.clamp
+    3, // llvm.nvvm.sust.b.2d.array.i16.trap
+    3, // llvm.nvvm.sust.b.2d.array.i16.zero
+    3, // llvm.nvvm.sust.b.2d.array.i32.clamp
+    3, // llvm.nvvm.sust.b.2d.array.i32.trap
+    3, // llvm.nvvm.sust.b.2d.array.i32.zero
+    3, // llvm.nvvm.sust.b.2d.array.i64.clamp
+    3, // llvm.nvvm.sust.b.2d.array.i64.trap
+    3, // llvm.nvvm.sust.b.2d.array.i64.zero
+    3, // llvm.nvvm.sust.b.2d.array.i8.clamp
+    3, // llvm.nvvm.sust.b.2d.array.i8.trap
+    3, // llvm.nvvm.sust.b.2d.array.i8.zero
+    3, // llvm.nvvm.sust.b.2d.array.v2i16.clamp
+    3, // llvm.nvvm.sust.b.2d.array.v2i16.trap
+    3, // llvm.nvvm.sust.b.2d.array.v2i16.zero
+    3, // llvm.nvvm.sust.b.2d.array.v2i32.clamp
+    3, // llvm.nvvm.sust.b.2d.array.v2i32.trap
+    3, // llvm.nvvm.sust.b.2d.array.v2i32.zero
+    3, // llvm.nvvm.sust.b.2d.array.v2i64.clamp
+    3, // llvm.nvvm.sust.b.2d.array.v2i64.trap
+    3, // llvm.nvvm.sust.b.2d.array.v2i64.zero
+    3, // llvm.nvvm.sust.b.2d.array.v2i8.clamp
+    3, // llvm.nvvm.sust.b.2d.array.v2i8.trap
+    3, // llvm.nvvm.sust.b.2d.array.v2i8.zero
+    3, // llvm.nvvm.sust.b.2d.array.v4i16.clamp
+    3, // llvm.nvvm.sust.b.2d.array.v4i16.trap
+    3, // llvm.nvvm.sust.b.2d.array.v4i16.zero
+    3, // llvm.nvvm.sust.b.2d.array.v4i32.clamp
+    3, // llvm.nvvm.sust.b.2d.array.v4i32.trap
+    3, // llvm.nvvm.sust.b.2d.array.v4i32.zero
+    3, // llvm.nvvm.sust.b.2d.array.v4i8.clamp
+    3, // llvm.nvvm.sust.b.2d.array.v4i8.trap
+    3, // llvm.nvvm.sust.b.2d.array.v4i8.zero
+    3, // llvm.nvvm.sust.b.2d.i16.clamp
+    3, // llvm.nvvm.sust.b.2d.i16.trap
+    3, // llvm.nvvm.sust.b.2d.i16.zero
+    3, // llvm.nvvm.sust.b.2d.i32.clamp
+    3, // llvm.nvvm.sust.b.2d.i32.trap
+    3, // llvm.nvvm.sust.b.2d.i32.zero
+    3, // llvm.nvvm.sust.b.2d.i64.clamp
+    3, // llvm.nvvm.sust.b.2d.i64.trap
+    3, // llvm.nvvm.sust.b.2d.i64.zero
+    3, // llvm.nvvm.sust.b.2d.i8.clamp
+    3, // llvm.nvvm.sust.b.2d.i8.trap
+    3, // llvm.nvvm.sust.b.2d.i8.zero
+    3, // llvm.nvvm.sust.b.2d.v2i16.clamp
+    3, // llvm.nvvm.sust.b.2d.v2i16.trap
+    3, // llvm.nvvm.sust.b.2d.v2i16.zero
+    3, // llvm.nvvm.sust.b.2d.v2i32.clamp
+    3, // llvm.nvvm.sust.b.2d.v2i32.trap
+    3, // llvm.nvvm.sust.b.2d.v2i32.zero
+    3, // llvm.nvvm.sust.b.2d.v2i64.clamp
+    3, // llvm.nvvm.sust.b.2d.v2i64.trap
+    3, // llvm.nvvm.sust.b.2d.v2i64.zero
+    3, // llvm.nvvm.sust.b.2d.v2i8.clamp
+    3, // llvm.nvvm.sust.b.2d.v2i8.trap
+    3, // llvm.nvvm.sust.b.2d.v2i8.zero
+    3, // llvm.nvvm.sust.b.2d.v4i16.clamp
+    3, // llvm.nvvm.sust.b.2d.v4i16.trap
+    3, // llvm.nvvm.sust.b.2d.v4i16.zero
+    3, // llvm.nvvm.sust.b.2d.v4i32.clamp
+    3, // llvm.nvvm.sust.b.2d.v4i32.trap
+    3, // llvm.nvvm.sust.b.2d.v4i32.zero
+    3, // llvm.nvvm.sust.b.2d.v4i8.clamp
+    3, // llvm.nvvm.sust.b.2d.v4i8.trap
+    3, // llvm.nvvm.sust.b.2d.v4i8.zero
+    3, // llvm.nvvm.sust.b.3d.i16.clamp
+    3, // llvm.nvvm.sust.b.3d.i16.trap
+    3, // llvm.nvvm.sust.b.3d.i16.zero
+    3, // llvm.nvvm.sust.b.3d.i32.clamp
+    3, // llvm.nvvm.sust.b.3d.i32.trap
+    3, // llvm.nvvm.sust.b.3d.i32.zero
+    3, // llvm.nvvm.sust.b.3d.i64.clamp
+    3, // llvm.nvvm.sust.b.3d.i64.trap
+    3, // llvm.nvvm.sust.b.3d.i64.zero
+    3, // llvm.nvvm.sust.b.3d.i8.clamp
+    3, // llvm.nvvm.sust.b.3d.i8.trap
+    3, // llvm.nvvm.sust.b.3d.i8.zero
+    3, // llvm.nvvm.sust.b.3d.v2i16.clamp
+    3, // llvm.nvvm.sust.b.3d.v2i16.trap
+    3, // llvm.nvvm.sust.b.3d.v2i16.zero
+    3, // llvm.nvvm.sust.b.3d.v2i32.clamp
+    3, // llvm.nvvm.sust.b.3d.v2i32.trap
+    3, // llvm.nvvm.sust.b.3d.v2i32.zero
+    3, // llvm.nvvm.sust.b.3d.v2i64.clamp
+    3, // llvm.nvvm.sust.b.3d.v2i64.trap
+    3, // llvm.nvvm.sust.b.3d.v2i64.zero
+    3, // llvm.nvvm.sust.b.3d.v2i8.clamp
+    3, // llvm.nvvm.sust.b.3d.v2i8.trap
+    3, // llvm.nvvm.sust.b.3d.v2i8.zero
+    3, // llvm.nvvm.sust.b.3d.v4i16.clamp
+    3, // llvm.nvvm.sust.b.3d.v4i16.trap
+    3, // llvm.nvvm.sust.b.3d.v4i16.zero
+    3, // llvm.nvvm.sust.b.3d.v4i32.clamp
+    3, // llvm.nvvm.sust.b.3d.v4i32.trap
+    3, // llvm.nvvm.sust.b.3d.v4i32.zero
+    3, // llvm.nvvm.sust.b.3d.v4i8.clamp
+    3, // llvm.nvvm.sust.b.3d.v4i8.trap
+    3, // llvm.nvvm.sust.b.3d.v4i8.zero
+    3, // llvm.nvvm.sust.p.1d.array.i16.trap
+    3, // llvm.nvvm.sust.p.1d.array.i32.trap
+    3, // llvm.nvvm.sust.p.1d.array.i8.trap
+    3, // llvm.nvvm.sust.p.1d.array.v2i16.trap
+    3, // llvm.nvvm.sust.p.1d.array.v2i32.trap
+    3, // llvm.nvvm.sust.p.1d.array.v2i8.trap
+    3, // llvm.nvvm.sust.p.1d.array.v4i16.trap
+    3, // llvm.nvvm.sust.p.1d.array.v4i32.trap
+    3, // llvm.nvvm.sust.p.1d.array.v4i8.trap
+    3, // llvm.nvvm.sust.p.1d.i16.trap
+    3, // llvm.nvvm.sust.p.1d.i32.trap
+    3, // llvm.nvvm.sust.p.1d.i8.trap
+    3, // llvm.nvvm.sust.p.1d.v2i16.trap
+    3, // llvm.nvvm.sust.p.1d.v2i32.trap
+    3, // llvm.nvvm.sust.p.1d.v2i8.trap
+    3, // llvm.nvvm.sust.p.1d.v4i16.trap
+    3, // llvm.nvvm.sust.p.1d.v4i32.trap
+    3, // llvm.nvvm.sust.p.1d.v4i8.trap
+    3, // llvm.nvvm.sust.p.2d.array.i16.trap
+    3, // llvm.nvvm.sust.p.2d.array.i32.trap
+    3, // llvm.nvvm.sust.p.2d.array.i8.trap
+    3, // llvm.nvvm.sust.p.2d.array.v2i16.trap
+    3, // llvm.nvvm.sust.p.2d.array.v2i32.trap
+    3, // llvm.nvvm.sust.p.2d.array.v2i8.trap
+    3, // llvm.nvvm.sust.p.2d.array.v4i16.trap
+    3, // llvm.nvvm.sust.p.2d.array.v4i32.trap
+    3, // llvm.nvvm.sust.p.2d.array.v4i8.trap
+    3, // llvm.nvvm.sust.p.2d.i16.trap
+    3, // llvm.nvvm.sust.p.2d.i32.trap
+    3, // llvm.nvvm.sust.p.2d.i8.trap
+    3, // llvm.nvvm.sust.p.2d.v2i16.trap
+    3, // llvm.nvvm.sust.p.2d.v2i32.trap
+    3, // llvm.nvvm.sust.p.2d.v2i8.trap
+    3, // llvm.nvvm.sust.p.2d.v4i16.trap
+    3, // llvm.nvvm.sust.p.2d.v4i32.trap
+    3, // llvm.nvvm.sust.p.2d.v4i8.trap
+    3, // llvm.nvvm.sust.p.3d.i16.trap
+    3, // llvm.nvvm.sust.p.3d.i32.trap
+    3, // llvm.nvvm.sust.p.3d.i8.trap
+    3, // llvm.nvvm.sust.p.3d.v2i16.trap
+    3, // llvm.nvvm.sust.p.3d.v2i32.trap
+    3, // llvm.nvvm.sust.p.3d.v2i8.trap
+    3, // llvm.nvvm.sust.p.3d.v4i16.trap
+    3, // llvm.nvvm.sust.p.3d.v4i32.trap
+    3, // llvm.nvvm.sust.p.3d.v4i8.trap
+    1, // llvm.nvvm.swap.lo.hi.b64
+    3, // llvm.nvvm.tex.1d.array.grad.v4f32.f32
+    3, // llvm.nvvm.tex.1d.array.grad.v4s32.f32
+    3, // llvm.nvvm.tex.1d.array.grad.v4u32.f32
+    3, // llvm.nvvm.tex.1d.array.level.v4f32.f32
+    3, // llvm.nvvm.tex.1d.array.level.v4s32.f32
+    3, // llvm.nvvm.tex.1d.array.level.v4u32.f32
+    3, // llvm.nvvm.tex.1d.array.v4f32.f32
+    3, // llvm.nvvm.tex.1d.array.v4f32.s32
+    3, // llvm.nvvm.tex.1d.array.v4s32.f32
+    3, // llvm.nvvm.tex.1d.array.v4s32.s32
+    3, // llvm.nvvm.tex.1d.array.v4u32.f32
+    3, // llvm.nvvm.tex.1d.array.v4u32.s32
+    3, // llvm.nvvm.tex.1d.grad.v4f32.f32
+    3, // llvm.nvvm.tex.1d.grad.v4s32.f32
+    3, // llvm.nvvm.tex.1d.grad.v4u32.f32
+    3, // llvm.nvvm.tex.1d.level.v4f32.f32
+    3, // llvm.nvvm.tex.1d.level.v4s32.f32
+    3, // llvm.nvvm.tex.1d.level.v4u32.f32
+    3, // llvm.nvvm.tex.1d.v4f32.f32
+    3, // llvm.nvvm.tex.1d.v4f32.s32
+    3, // llvm.nvvm.tex.1d.v4s32.f32
+    3, // llvm.nvvm.tex.1d.v4s32.s32
+    3, // llvm.nvvm.tex.1d.v4u32.f32
+    3, // llvm.nvvm.tex.1d.v4u32.s32
+    3, // llvm.nvvm.tex.2d.array.grad.v4f32.f32
+    3, // llvm.nvvm.tex.2d.array.grad.v4s32.f32
+    3, // llvm.nvvm.tex.2d.array.grad.v4u32.f32
+    3, // llvm.nvvm.tex.2d.array.level.v4f32.f32
+    3, // llvm.nvvm.tex.2d.array.level.v4s32.f32
+    3, // llvm.nvvm.tex.2d.array.level.v4u32.f32
+    3, // llvm.nvvm.tex.2d.array.v4f32.f32
+    3, // llvm.nvvm.tex.2d.array.v4f32.s32
+    3, // llvm.nvvm.tex.2d.array.v4s32.f32
+    3, // llvm.nvvm.tex.2d.array.v4s32.s32
+    3, // llvm.nvvm.tex.2d.array.v4u32.f32
+    3, // llvm.nvvm.tex.2d.array.v4u32.s32
+    3, // llvm.nvvm.tex.2d.grad.v4f32.f32
+    3, // llvm.nvvm.tex.2d.grad.v4s32.f32
+    3, // llvm.nvvm.tex.2d.grad.v4u32.f32
+    3, // llvm.nvvm.tex.2d.level.v4f32.f32
+    3, // llvm.nvvm.tex.2d.level.v4s32.f32
+    3, // llvm.nvvm.tex.2d.level.v4u32.f32
+    3, // llvm.nvvm.tex.2d.v4f32.f32
+    3, // llvm.nvvm.tex.2d.v4f32.s32
+    3, // llvm.nvvm.tex.2d.v4s32.f32
+    3, // llvm.nvvm.tex.2d.v4s32.s32
+    3, // llvm.nvvm.tex.2d.v4u32.f32
+    3, // llvm.nvvm.tex.2d.v4u32.s32
+    3, // llvm.nvvm.tex.3d.grad.v4f32.f32
+    3, // llvm.nvvm.tex.3d.grad.v4s32.f32
+    3, // llvm.nvvm.tex.3d.grad.v4u32.f32
+    3, // llvm.nvvm.tex.3d.level.v4f32.f32
+    3, // llvm.nvvm.tex.3d.level.v4s32.f32
+    3, // llvm.nvvm.tex.3d.level.v4u32.f32
+    3, // llvm.nvvm.tex.3d.v4f32.f32
+    3, // llvm.nvvm.tex.3d.v4f32.s32
+    3, // llvm.nvvm.tex.3d.v4s32.f32
+    3, // llvm.nvvm.tex.3d.v4s32.s32
+    3, // llvm.nvvm.tex.3d.v4u32.f32
+    3, // llvm.nvvm.tex.3d.v4u32.s32
+    3, // llvm.nvvm.tex.cube.array.level.v4f32.f32
+    3, // llvm.nvvm.tex.cube.array.level.v4s32.f32
+    3, // llvm.nvvm.tex.cube.array.level.v4u32.f32
+    3, // llvm.nvvm.tex.cube.array.v4f32.f32
+    3, // llvm.nvvm.tex.cube.array.v4s32.f32
+    3, // llvm.nvvm.tex.cube.array.v4u32.f32
+    3, // llvm.nvvm.tex.cube.level.v4f32.f32
+    3, // llvm.nvvm.tex.cube.level.v4s32.f32
+    3, // llvm.nvvm.tex.cube.level.v4u32.f32
+    3, // llvm.nvvm.tex.cube.v4f32.f32
+    3, // llvm.nvvm.tex.cube.v4s32.f32
+    3, // llvm.nvvm.tex.cube.v4u32.f32
+    3, // llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32
+    3, // llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32
+    3, // llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32
+    3, // llvm.nvvm.tex.unified.1d.array.level.v4f32.f32
+    3, // llvm.nvvm.tex.unified.1d.array.level.v4s32.f32
+    3, // llvm.nvvm.tex.unified.1d.array.level.v4u32.f32
+    3, // llvm.nvvm.tex.unified.1d.array.v4f32.f32
+    3, // llvm.nvvm.tex.unified.1d.array.v4f32.s32
+    3, // llvm.nvvm.tex.unified.1d.array.v4s32.f32
+    3, // llvm.nvvm.tex.unified.1d.array.v4s32.s32
+    3, // llvm.nvvm.tex.unified.1d.array.v4u32.f32
+    3, // llvm.nvvm.tex.unified.1d.array.v4u32.s32
+    3, // llvm.nvvm.tex.unified.1d.grad.v4f32.f32
+    3, // llvm.nvvm.tex.unified.1d.grad.v4s32.f32
+    3, // llvm.nvvm.tex.unified.1d.grad.v4u32.f32
+    3, // llvm.nvvm.tex.unified.1d.level.v4f32.f32
+    3, // llvm.nvvm.tex.unified.1d.level.v4s32.f32
+    3, // llvm.nvvm.tex.unified.1d.level.v4u32.f32
+    3, // llvm.nvvm.tex.unified.1d.v4f32.f32
+    3, // llvm.nvvm.tex.unified.1d.v4f32.s32
+    3, // llvm.nvvm.tex.unified.1d.v4s32.f32
+    3, // llvm.nvvm.tex.unified.1d.v4s32.s32
+    3, // llvm.nvvm.tex.unified.1d.v4u32.f32
+    3, // llvm.nvvm.tex.unified.1d.v4u32.s32
+    3, // llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32
+    3, // llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32
+    3, // llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32
+    3, // llvm.nvvm.tex.unified.2d.array.level.v4f32.f32
+    3, // llvm.nvvm.tex.unified.2d.array.level.v4s32.f32
+    3, // llvm.nvvm.tex.unified.2d.array.level.v4u32.f32
+    3, // llvm.nvvm.tex.unified.2d.array.v4f32.f32
+    3, // llvm.nvvm.tex.unified.2d.array.v4f32.s32
+    3, // llvm.nvvm.tex.unified.2d.array.v4s32.f32
+    3, // llvm.nvvm.tex.unified.2d.array.v4s32.s32
+    3, // llvm.nvvm.tex.unified.2d.array.v4u32.f32
+    3, // llvm.nvvm.tex.unified.2d.array.v4u32.s32
+    3, // llvm.nvvm.tex.unified.2d.grad.v4f32.f32
+    3, // llvm.nvvm.tex.unified.2d.grad.v4s32.f32
+    3, // llvm.nvvm.tex.unified.2d.grad.v4u32.f32
+    3, // llvm.nvvm.tex.unified.2d.level.v4f32.f32
+    3, // llvm.nvvm.tex.unified.2d.level.v4s32.f32
+    3, // llvm.nvvm.tex.unified.2d.level.v4u32.f32
+    3, // llvm.nvvm.tex.unified.2d.v4f32.f32
+    3, // llvm.nvvm.tex.unified.2d.v4f32.s32
+    3, // llvm.nvvm.tex.unified.2d.v4s32.f32
+    3, // llvm.nvvm.tex.unified.2d.v4s32.s32
+    3, // llvm.nvvm.tex.unified.2d.v4u32.f32
+    3, // llvm.nvvm.tex.unified.2d.v4u32.s32
+    3, // llvm.nvvm.tex.unified.3d.grad.v4f32.f32
+    3, // llvm.nvvm.tex.unified.3d.grad.v4s32.f32
+    3, // llvm.nvvm.tex.unified.3d.grad.v4u32.f32
+    3, // llvm.nvvm.tex.unified.3d.level.v4f32.f32
+    3, // llvm.nvvm.tex.unified.3d.level.v4s32.f32
+    3, // llvm.nvvm.tex.unified.3d.level.v4u32.f32
+    3, // llvm.nvvm.tex.unified.3d.v4f32.f32
+    3, // llvm.nvvm.tex.unified.3d.v4f32.s32
+    3, // llvm.nvvm.tex.unified.3d.v4s32.f32
+    3, // llvm.nvvm.tex.unified.3d.v4s32.s32
+    3, // llvm.nvvm.tex.unified.3d.v4u32.f32
+    3, // llvm.nvvm.tex.unified.3d.v4u32.s32
+    3, // llvm.nvvm.tex.unified.cube.array.level.v4f32.f32
+    3, // llvm.nvvm.tex.unified.cube.array.level.v4s32.f32
+    3, // llvm.nvvm.tex.unified.cube.array.level.v4u32.f32
+    3, // llvm.nvvm.tex.unified.cube.array.v4f32.f32
+    3, // llvm.nvvm.tex.unified.cube.array.v4s32.f32
+    3, // llvm.nvvm.tex.unified.cube.array.v4u32.f32
+    3, // llvm.nvvm.tex.unified.cube.level.v4f32.f32
+    3, // llvm.nvvm.tex.unified.cube.level.v4s32.f32
+    3, // llvm.nvvm.tex.unified.cube.level.v4u32.f32
+    3, // llvm.nvvm.tex.unified.cube.v4f32.f32
+    3, // llvm.nvvm.tex.unified.cube.v4s32.f32
+    3, // llvm.nvvm.tex.unified.cube.v4u32.f32
+    1, // llvm.nvvm.texsurf.handle
+    1, // llvm.nvvm.texsurf.handle.internal
+    3, // llvm.nvvm.tld4.a.2d.v4f32.f32
+    3, // llvm.nvvm.tld4.a.2d.v4s32.f32
+    3, // llvm.nvvm.tld4.a.2d.v4u32.f32
+    3, // llvm.nvvm.tld4.b.2d.v4f32.f32
+    3, // llvm.nvvm.tld4.b.2d.v4s32.f32
+    3, // llvm.nvvm.tld4.b.2d.v4u32.f32
+    3, // llvm.nvvm.tld4.g.2d.v4f32.f32
+    3, // llvm.nvvm.tld4.g.2d.v4s32.f32
+    3, // llvm.nvvm.tld4.g.2d.v4u32.f32
+    3, // llvm.nvvm.tld4.r.2d.v4f32.f32
+    3, // llvm.nvvm.tld4.r.2d.v4s32.f32
+    3, // llvm.nvvm.tld4.r.2d.v4u32.f32
+    3, // llvm.nvvm.tld4.unified.a.2d.v4f32.f32
+    3, // llvm.nvvm.tld4.unified.a.2d.v4s32.f32
+    3, // llvm.nvvm.tld4.unified.a.2d.v4u32.f32
+    3, // llvm.nvvm.tld4.unified.b.2d.v4f32.f32
+    3, // llvm.nvvm.tld4.unified.b.2d.v4s32.f32
+    3, // llvm.nvvm.tld4.unified.b.2d.v4u32.f32
+    3, // llvm.nvvm.tld4.unified.g.2d.v4f32.f32
+    3, // llvm.nvvm.tld4.unified.g.2d.v4s32.f32
+    3, // llvm.nvvm.tld4.unified.g.2d.v4u32.f32
+    3, // llvm.nvvm.tld4.unified.r.2d.v4f32.f32
+    3, // llvm.nvvm.tld4.unified.r.2d.v4s32.f32
+    3, // llvm.nvvm.tld4.unified.r.2d.v4u32.f32
+    1, // llvm.nvvm.trunc.d
+    1, // llvm.nvvm.trunc.f
+    1, // llvm.nvvm.trunc.ftz.f
+    1, // llvm.nvvm.txq.array.size
+    1, // llvm.nvvm.txq.channel.data.type
+    1, // llvm.nvvm.txq.channel.order
+    1, // llvm.nvvm.txq.depth
+    1, // llvm.nvvm.txq.height
+    1, // llvm.nvvm.txq.num.mipmap.levels
+    1, // llvm.nvvm.txq.num.samples
+    1, // llvm.nvvm.txq.width
+    1, // llvm.nvvm.ui2d.rm
+    1, // llvm.nvvm.ui2d.rn
+    1, // llvm.nvvm.ui2d.rp
+    1, // llvm.nvvm.ui2d.rz
+    1, // llvm.nvvm.ui2f.rm
+    1, // llvm.nvvm.ui2f.rn
+    1, // llvm.nvvm.ui2f.rp
+    1, // llvm.nvvm.ui2f.rz
+    1, // llvm.nvvm.ull2d.rm
+    1, // llvm.nvvm.ull2d.rn
+    1, // llvm.nvvm.ull2d.rp
+    1, // llvm.nvvm.ull2d.rz
+    1, // llvm.nvvm.ull2f.rm
+    1, // llvm.nvvm.ull2f.rn
+    1, // llvm.nvvm.ull2f.rp
+    1, // llvm.nvvm.ull2f.rz
+    40, // llvm.nvvm.vote.all
+    40, // llvm.nvvm.vote.all.sync
+    40, // llvm.nvvm.vote.any
+    40, // llvm.nvvm.vote.any.sync
+    40, // llvm.nvvm.vote.ballot
+    40, // llvm.nvvm.vote.ballot.sync
+    40, // llvm.nvvm.vote.uni
+    40, // llvm.nvvm.vote.uni.sync
+    13, // llvm.nvvm.wmma.m16n16k16.load.a.col.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.a.col.stride.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.a.row.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.a.row.stride.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.b.col.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.b.col.stride.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.b.row.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.b.row.stride.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.c.col.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.c.col.f32
+    13, // llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f32
+    13, // llvm.nvvm.wmma.m16n16k16.load.c.row.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.c.row.f32
+    13, // llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f16
+    13, // llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f32
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32
+    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32
+    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32.satfinite
+    41, // llvm.nvvm.wmma.m16n16k16.store.d.col.f16
+    41, // llvm.nvvm.wmma.m16n16k16.store.d.col.f32
+    41, // llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f16
+    41, // llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f32
+    41, // llvm.nvvm.wmma.m16n16k16.store.d.row.f16
+    41, // llvm.nvvm.wmma.m16n16k16.store.d.row.f32
+    41, // llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f16
+    41, // llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f32
+    13, // llvm.nvvm.wmma.m32n8k16.load.a.col.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.a.col.stride.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.a.row.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.a.row.stride.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.b.col.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.b.col.stride.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.b.row.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.b.row.stride.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.c.col.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.c.col.f32
+    13, // llvm.nvvm.wmma.m32n8k16.load.c.col.stride.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.c.col.stride.f32
+    13, // llvm.nvvm.wmma.m32n8k16.load.c.row.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.c.row.f32
+    13, // llvm.nvvm.wmma.m32n8k16.load.c.row.stride.f16
+    13, // llvm.nvvm.wmma.m32n8k16.load.c.row.stride.f32
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f16
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f32
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.col.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f16
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f32
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.col.f32.f32.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f16
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f32
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.row.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f16
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f32
+    1, // llvm.nvvm.wmma.m32n8k16.mma.col.row.f32.f32.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f16
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f32
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.col.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f16
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f32
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.col.f32.f32.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f16
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f32
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.row.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f16
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f32
+    1, // llvm.nvvm.wmma.m32n8k16.mma.row.row.f32.f32.satfinite
+    41, // llvm.nvvm.wmma.m32n8k16.store.d.col.f16
+    41, // llvm.nvvm.wmma.m32n8k16.store.d.col.f32
+    41, // llvm.nvvm.wmma.m32n8k16.store.d.col.stride.f16
+    41, // llvm.nvvm.wmma.m32n8k16.store.d.col.stride.f32
+    41, // llvm.nvvm.wmma.m32n8k16.store.d.row.f16
+    41, // llvm.nvvm.wmma.m32n8k16.store.d.row.f32
+    41, // llvm.nvvm.wmma.m32n8k16.store.d.row.stride.f16
+    41, // llvm.nvvm.wmma.m32n8k16.store.d.row.stride.f32
+    13, // llvm.nvvm.wmma.m8n32k16.load.a.col.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.a.col.stride.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.a.row.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.a.row.stride.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.b.col.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.b.col.stride.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.b.row.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.b.row.stride.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.c.col.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.c.col.f32
+    13, // llvm.nvvm.wmma.m8n32k16.load.c.col.stride.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.c.col.stride.f32
+    13, // llvm.nvvm.wmma.m8n32k16.load.c.row.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.c.row.f32
+    13, // llvm.nvvm.wmma.m8n32k16.load.c.row.stride.f16
+    13, // llvm.nvvm.wmma.m8n32k16.load.c.row.stride.f32
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f16
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f32
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.col.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f16
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f32
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.col.f32.f32.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f16
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f32
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.row.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f16
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f32
+    1, // llvm.nvvm.wmma.m8n32k16.mma.col.row.f32.f32.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f16
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f32
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.col.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f16
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f32
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.col.f32.f32.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f16
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f16.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f32
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.row.f16.f32.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f16
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f16.satfinite
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f32
+    1, // llvm.nvvm.wmma.m8n32k16.mma.row.row.f32.f32.satfinite
+    41, // llvm.nvvm.wmma.m8n32k16.store.d.col.f16
+    41, // llvm.nvvm.wmma.m8n32k16.store.d.col.f32
+    41, // llvm.nvvm.wmma.m8n32k16.store.d.col.stride.f16
+    41, // llvm.nvvm.wmma.m8n32k16.store.d.col.stride.f32
+    41, // llvm.nvvm.wmma.m8n32k16.store.d.row.f16
+    41, // llvm.nvvm.wmma.m8n32k16.store.d.row.f32
+    41, // llvm.nvvm.wmma.m8n32k16.store.d.row.stride.f16
+    41, // llvm.nvvm.wmma.m8n32k16.store.d.row.stride.f32
+    1, // llvm.ppc.addf128.round.to.odd
+    1, // llvm.ppc.altivec.crypto.vcipher
+    1, // llvm.ppc.altivec.crypto.vcipherlast
+    1, // llvm.ppc.altivec.crypto.vncipher
+    1, // llvm.ppc.altivec.crypto.vncipherlast
+    1, // llvm.ppc.altivec.crypto.vpermxor
+    1, // llvm.ppc.altivec.crypto.vpmsumb
+    1, // llvm.ppc.altivec.crypto.vpmsumd
+    1, // llvm.ppc.altivec.crypto.vpmsumh
+    1, // llvm.ppc.altivec.crypto.vpmsumw
+    1, // llvm.ppc.altivec.crypto.vsbox
+    1, // llvm.ppc.altivec.crypto.vshasigmad
+    1, // llvm.ppc.altivec.crypto.vshasigmaw
+    3, // llvm.ppc.altivec.dss
+    3, // llvm.ppc.altivec.dssall
+    3, // llvm.ppc.altivec.dst
+    3, // llvm.ppc.altivec.dstst
+    3, // llvm.ppc.altivec.dststt
+    3, // llvm.ppc.altivec.dstt
+    2, // llvm.ppc.altivec.lvebx
+    2, // llvm.ppc.altivec.lvehx
+    2, // llvm.ppc.altivec.lvewx
+    1, // llvm.ppc.altivec.lvsl
+    1, // llvm.ppc.altivec.lvsr
+    2, // llvm.ppc.altivec.lvx
+    2, // llvm.ppc.altivec.lvxl
+    16, // llvm.ppc.altivec.mfvscr
+    3, // llvm.ppc.altivec.mtvscr
+    42, // llvm.ppc.altivec.stvebx
+    42, // llvm.ppc.altivec.stvehx
+    42, // llvm.ppc.altivec.stvewx
+    42, // llvm.ppc.altivec.stvx
+    42, // llvm.ppc.altivec.stvxl
+    1, // llvm.ppc.altivec.vabsdub
+    1, // llvm.ppc.altivec.vabsduh
+    1, // llvm.ppc.altivec.vabsduw
+    1, // llvm.ppc.altivec.vaddcuq
+    1, // llvm.ppc.altivec.vaddcuw
+    1, // llvm.ppc.altivec.vaddecuq
+    1, // llvm.ppc.altivec.vaddeuqm
+    1, // llvm.ppc.altivec.vaddsbs
+    1, // llvm.ppc.altivec.vaddshs
+    1, // llvm.ppc.altivec.vaddsws
+    1, // llvm.ppc.altivec.vaddubs
+    1, // llvm.ppc.altivec.vadduhs
+    1, // llvm.ppc.altivec.vadduws
+    1, // llvm.ppc.altivec.vavgsb
+    1, // llvm.ppc.altivec.vavgsh
+    1, // llvm.ppc.altivec.vavgsw
+    1, // llvm.ppc.altivec.vavgub
+    1, // llvm.ppc.altivec.vavguh
+    1, // llvm.ppc.altivec.vavguw
+    1, // llvm.ppc.altivec.vbpermq
+    1, // llvm.ppc.altivec.vcfsx
+    1, // llvm.ppc.altivec.vcfux
+    1, // llvm.ppc.altivec.vclzlsbb
+    1, // llvm.ppc.altivec.vcmpbfp
+    1, // llvm.ppc.altivec.vcmpbfp.p
+    1, // llvm.ppc.altivec.vcmpeqfp
+    1, // llvm.ppc.altivec.vcmpeqfp.p
+    1, // llvm.ppc.altivec.vcmpequb
+    1, // llvm.ppc.altivec.vcmpequb.p
+    1, // llvm.ppc.altivec.vcmpequd
+    1, // llvm.ppc.altivec.vcmpequd.p
+    1, // llvm.ppc.altivec.vcmpequh
+    1, // llvm.ppc.altivec.vcmpequh.p
+    1, // llvm.ppc.altivec.vcmpequw
+    1, // llvm.ppc.altivec.vcmpequw.p
+    1, // llvm.ppc.altivec.vcmpgefp
+    1, // llvm.ppc.altivec.vcmpgefp.p
+    1, // llvm.ppc.altivec.vcmpgtfp
+    1, // llvm.ppc.altivec.vcmpgtfp.p
+    1, // llvm.ppc.altivec.vcmpgtsb
+    1, // llvm.ppc.altivec.vcmpgtsb.p
+    1, // llvm.ppc.altivec.vcmpgtsd
+    1, // llvm.ppc.altivec.vcmpgtsd.p
+    1, // llvm.ppc.altivec.vcmpgtsh
+    1, // llvm.ppc.altivec.vcmpgtsh.p
+    1, // llvm.ppc.altivec.vcmpgtsw
+    1, // llvm.ppc.altivec.vcmpgtsw.p
+    1, // llvm.ppc.altivec.vcmpgtub
+    1, // llvm.ppc.altivec.vcmpgtub.p
+    1, // llvm.ppc.altivec.vcmpgtud
+    1, // llvm.ppc.altivec.vcmpgtud.p
+    1, // llvm.ppc.altivec.vcmpgtuh
+    1, // llvm.ppc.altivec.vcmpgtuh.p
+    1, // llvm.ppc.altivec.vcmpgtuw
+    1, // llvm.ppc.altivec.vcmpgtuw.p
+    1, // llvm.ppc.altivec.vcmpneb
+    1, // llvm.ppc.altivec.vcmpneb.p
+    1, // llvm.ppc.altivec.vcmpneh
+    1, // llvm.ppc.altivec.vcmpneh.p
+    1, // llvm.ppc.altivec.vcmpnew
+    1, // llvm.ppc.altivec.vcmpnew.p
+    1, // llvm.ppc.altivec.vcmpnezb
+    1, // llvm.ppc.altivec.vcmpnezb.p
+    1, // llvm.ppc.altivec.vcmpnezh
+    1, // llvm.ppc.altivec.vcmpnezh.p
+    1, // llvm.ppc.altivec.vcmpnezw
+    1, // llvm.ppc.altivec.vcmpnezw.p
+    1, // llvm.ppc.altivec.vctsxs
+    1, // llvm.ppc.altivec.vctuxs
+    1, // llvm.ppc.altivec.vctzlsbb
+    1, // llvm.ppc.altivec.vexptefp
+    1, // llvm.ppc.altivec.vgbbd
+    1, // llvm.ppc.altivec.vlogefp
+    1, // llvm.ppc.altivec.vmaddfp
+    1, // llvm.ppc.altivec.vmaxfp
+    1, // llvm.ppc.altivec.vmaxsb
+    1, // llvm.ppc.altivec.vmaxsd
+    1, // llvm.ppc.altivec.vmaxsh
+    1, // llvm.ppc.altivec.vmaxsw
+    1, // llvm.ppc.altivec.vmaxub
+    1, // llvm.ppc.altivec.vmaxud
+    1, // llvm.ppc.altivec.vmaxuh
+    1, // llvm.ppc.altivec.vmaxuw
+    1, // llvm.ppc.altivec.vmhaddshs
+    1, // llvm.ppc.altivec.vmhraddshs
+    1, // llvm.ppc.altivec.vminfp
+    1, // llvm.ppc.altivec.vminsb
+    1, // llvm.ppc.altivec.vminsd
+    1, // llvm.ppc.altivec.vminsh
+    1, // llvm.ppc.altivec.vminsw
+    1, // llvm.ppc.altivec.vminub
+    1, // llvm.ppc.altivec.vminud
+    1, // llvm.ppc.altivec.vminuh
+    1, // llvm.ppc.altivec.vminuw
+    1, // llvm.ppc.altivec.vmladduhm
+    1, // llvm.ppc.altivec.vmsummbm
+    1, // llvm.ppc.altivec.vmsumshm
+    1, // llvm.ppc.altivec.vmsumshs
+    1, // llvm.ppc.altivec.vmsumubm
+    1, // llvm.ppc.altivec.vmsumuhm
+    1, // llvm.ppc.altivec.vmsumuhs
+    1, // llvm.ppc.altivec.vmulesb
+    1, // llvm.ppc.altivec.vmulesh
+    1, // llvm.ppc.altivec.vmulesw
+    1, // llvm.ppc.altivec.vmuleub
+    1, // llvm.ppc.altivec.vmuleuh
+    1, // llvm.ppc.altivec.vmuleuw
+    1, // llvm.ppc.altivec.vmulosb
+    1, // llvm.ppc.altivec.vmulosh
+    1, // llvm.ppc.altivec.vmulosw
+    1, // llvm.ppc.altivec.vmuloub
+    1, // llvm.ppc.altivec.vmulouh
+    1, // llvm.ppc.altivec.vmulouw
+    1, // llvm.ppc.altivec.vnmsubfp
+    1, // llvm.ppc.altivec.vperm
+    1, // llvm.ppc.altivec.vpkpx
+    1, // llvm.ppc.altivec.vpksdss
+    1, // llvm.ppc.altivec.vpksdus
+    1, // llvm.ppc.altivec.vpkshss
+    1, // llvm.ppc.altivec.vpkshus
+    1, // llvm.ppc.altivec.vpkswss
+    1, // llvm.ppc.altivec.vpkswus
+    1, // llvm.ppc.altivec.vpkudus
+    1, // llvm.ppc.altivec.vpkuhus
+    1, // llvm.ppc.altivec.vpkuwus
+    1, // llvm.ppc.altivec.vprtybd
+    1, // llvm.ppc.altivec.vprtybq
+    1, // llvm.ppc.altivec.vprtybw
+    1, // llvm.ppc.altivec.vrefp
+    1, // llvm.ppc.altivec.vrfim
+    1, // llvm.ppc.altivec.vrfin
+    1, // llvm.ppc.altivec.vrfip
+    1, // llvm.ppc.altivec.vrfiz
+    1, // llvm.ppc.altivec.vrlb
+    1, // llvm.ppc.altivec.vrld
+    1, // llvm.ppc.altivec.vrldmi
+    1, // llvm.ppc.altivec.vrldnm
+    1, // llvm.ppc.altivec.vrlh
+    1, // llvm.ppc.altivec.vrlw
+    1, // llvm.ppc.altivec.vrlwmi
+    1, // llvm.ppc.altivec.vrlwnm
+    1, // llvm.ppc.altivec.vrsqrtefp
+    1, // llvm.ppc.altivec.vsel
+    1, // llvm.ppc.altivec.vsl
+    1, // llvm.ppc.altivec.vslb
+    1, // llvm.ppc.altivec.vslh
+    1, // llvm.ppc.altivec.vslo
+    1, // llvm.ppc.altivec.vslv
+    1, // llvm.ppc.altivec.vslw
+    1, // llvm.ppc.altivec.vsr
+    1, // llvm.ppc.altivec.vsrab
+    1, // llvm.ppc.altivec.vsrah
+    1, // llvm.ppc.altivec.vsraw
+    1, // llvm.ppc.altivec.vsrb
+    1, // llvm.ppc.altivec.vsrh
+    1, // llvm.ppc.altivec.vsro
+    1, // llvm.ppc.altivec.vsrv
+    1, // llvm.ppc.altivec.vsrw
+    1, // llvm.ppc.altivec.vsubcuq
+    1, // llvm.ppc.altivec.vsubcuw
+    1, // llvm.ppc.altivec.vsubecuq
+    1, // llvm.ppc.altivec.vsubeuqm
+    1, // llvm.ppc.altivec.vsubsbs
+    1, // llvm.ppc.altivec.vsubshs
+    1, // llvm.ppc.altivec.vsubsws
+    1, // llvm.ppc.altivec.vsububs
+    1, // llvm.ppc.altivec.vsubuhs
+    1, // llvm.ppc.altivec.vsubuws
+    1, // llvm.ppc.altivec.vsum2sws
+    1, // llvm.ppc.altivec.vsum4sbs
+    1, // llvm.ppc.altivec.vsum4shs
+    1, // llvm.ppc.altivec.vsum4ubs
+    1, // llvm.ppc.altivec.vsumsws
+    1, // llvm.ppc.altivec.vupkhpx
+    1, // llvm.ppc.altivec.vupkhsb
+    1, // llvm.ppc.altivec.vupkhsh
+    1, // llvm.ppc.altivec.vupkhsw
+    1, // llvm.ppc.altivec.vupklpx
+    1, // llvm.ppc.altivec.vupklsb
+    1, // llvm.ppc.altivec.vupklsh
+    1, // llvm.ppc.altivec.vupklsw
+    1, // llvm.ppc.bpermd
+    3, // llvm.ppc.cfence
+    3, // llvm.ppc.dcba
+    3, // llvm.ppc.dcbf
+    3, // llvm.ppc.dcbi
+    3, // llvm.ppc.dcbst
+    18, // llvm.ppc.dcbt
+    18, // llvm.ppc.dcbtst
+    3, // llvm.ppc.dcbz
+    3, // llvm.ppc.dcbzl
+    1, // llvm.ppc.divde
+    1, // llvm.ppc.divdeu
+    1, // llvm.ppc.divf128.round.to.odd
+    1, // llvm.ppc.divwe
+    1, // llvm.ppc.divweu
+    1, // llvm.ppc.fmaf128.round.to.odd
+    3, // llvm.ppc.get.texasr
+    3, // llvm.ppc.get.texasru
+    3, // llvm.ppc.get.tfhar
+    3, // llvm.ppc.get.tfiar
+    43, // llvm.ppc.is.decremented.ctr.nonzero
+    3, // llvm.ppc.lwsync
+    3, // llvm.ppc.mtctr
+    1, // llvm.ppc.mulf128.round.to.odd
+    1, // llvm.ppc.qpx.qvfabs
+    1, // llvm.ppc.qpx.qvfadd
+    1, // llvm.ppc.qpx.qvfadds
+    1, // llvm.ppc.qpx.qvfcfid
+    1, // llvm.ppc.qpx.qvfcfids
+    1, // llvm.ppc.qpx.qvfcfidu
+    1, // llvm.ppc.qpx.qvfcfidus
+    1, // llvm.ppc.qpx.qvfcmpeq
+    1, // llvm.ppc.qpx.qvfcmpgt
+    1, // llvm.ppc.qpx.qvfcmplt
+    1, // llvm.ppc.qpx.qvfcpsgn
+    1, // llvm.ppc.qpx.qvfctid
+    1, // llvm.ppc.qpx.qvfctidu
+    1, // llvm.ppc.qpx.qvfctiduz
+    1, // llvm.ppc.qpx.qvfctidz
+    1, // llvm.ppc.qpx.qvfctiw
+    1, // llvm.ppc.qpx.qvfctiwu
+    1, // llvm.ppc.qpx.qvfctiwuz
+    1, // llvm.ppc.qpx.qvfctiwz
+    1, // llvm.ppc.qpx.qvflogical
+    1, // llvm.ppc.qpx.qvfmadd
+    1, // llvm.ppc.qpx.qvfmadds
+    1, // llvm.ppc.qpx.qvfmsub
+    1, // llvm.ppc.qpx.qvfmsubs
+    1, // llvm.ppc.qpx.qvfmul
+    1, // llvm.ppc.qpx.qvfmuls
+    1, // llvm.ppc.qpx.qvfnabs
+    1, // llvm.ppc.qpx.qvfneg
+    1, // llvm.ppc.qpx.qvfnmadd
+    1, // llvm.ppc.qpx.qvfnmadds
+    1, // llvm.ppc.qpx.qvfnmsub
+    1, // llvm.ppc.qpx.qvfnmsubs
+    1, // llvm.ppc.qpx.qvfperm
+    1, // llvm.ppc.qpx.qvfre
+    1, // llvm.ppc.qpx.qvfres
+    1, // llvm.ppc.qpx.qvfrim
+    1, // llvm.ppc.qpx.qvfrin
+    1, // llvm.ppc.qpx.qvfrip
+    1, // llvm.ppc.qpx.qvfriz
+    1, // llvm.ppc.qpx.qvfrsp
+    1, // llvm.ppc.qpx.qvfrsqrte
+    1, // llvm.ppc.qpx.qvfrsqrtes
+    1, // llvm.ppc.qpx.qvfsel
+    1, // llvm.ppc.qpx.qvfsub
+    1, // llvm.ppc.qpx.qvfsubs
+    1, // llvm.ppc.qpx.qvftstnan
+    1, // llvm.ppc.qpx.qvfxmadd
+    1, // llvm.ppc.qpx.qvfxmadds
+    1, // llvm.ppc.qpx.qvfxmul
+    1, // llvm.ppc.qpx.qvfxmuls
+    1, // llvm.ppc.qpx.qvfxxcpnmadd
+    1, // llvm.ppc.qpx.qvfxxcpnmadds
+    1, // llvm.ppc.qpx.qvfxxmadd
+    1, // llvm.ppc.qpx.qvfxxmadds
+    1, // llvm.ppc.qpx.qvfxxnpmadd
+    1, // llvm.ppc.qpx.qvfxxnpmadds
+    1, // llvm.ppc.qpx.qvgpci
+    2, // llvm.ppc.qpx.qvlfcd
+    2, // llvm.ppc.qpx.qvlfcda
+    2, // llvm.ppc.qpx.qvlfcs
+    2, // llvm.ppc.qpx.qvlfcsa
+    2, // llvm.ppc.qpx.qvlfd
+    2, // llvm.ppc.qpx.qvlfda
+    2, // llvm.ppc.qpx.qvlfiwa
+    2, // llvm.ppc.qpx.qvlfiwaa
+    2, // llvm.ppc.qpx.qvlfiwz
+    2, // llvm.ppc.qpx.qvlfiwza
+    2, // llvm.ppc.qpx.qvlfs
+    2, // llvm.ppc.qpx.qvlfsa
+    1, // llvm.ppc.qpx.qvlpcld
+    1, // llvm.ppc.qpx.qvlpcls
+    1, // llvm.ppc.qpx.qvlpcrd
+    1, // llvm.ppc.qpx.qvlpcrs
+    42, // llvm.ppc.qpx.qvstfcd
+    42, // llvm.ppc.qpx.qvstfcda
+    42, // llvm.ppc.qpx.qvstfcs
+    42, // llvm.ppc.qpx.qvstfcsa
+    42, // llvm.ppc.qpx.qvstfd
+    42, // llvm.ppc.qpx.qvstfda
+    42, // llvm.ppc.qpx.qvstfiw
+    42, // llvm.ppc.qpx.qvstfiwa
+    42, // llvm.ppc.qpx.qvstfs
+    42, // llvm.ppc.qpx.qvstfsa
+    3, // llvm.ppc.set.texasr
+    3, // llvm.ppc.set.texasru
+    3, // llvm.ppc.set.tfhar
+    3, // llvm.ppc.set.tfiar
+    1, // llvm.ppc.sqrtf128.round.to.odd
+    1, // llvm.ppc.subf128.round.to.odd
+    3, // llvm.ppc.sync
+    3, // llvm.ppc.tabort
+    3, // llvm.ppc.tabortdc
+    3, // llvm.ppc.tabortdci
+    3, // llvm.ppc.tabortwc
+    3, // llvm.ppc.tabortwci
+    3, // llvm.ppc.tbegin
+    3, // llvm.ppc.tcheck
+    3, // llvm.ppc.tend
+    3, // llvm.ppc.tendall
+    3, // llvm.ppc.trechkpt
+    3, // llvm.ppc.treclaim
+    3, // llvm.ppc.tresume
+    1, // llvm.ppc.truncf128.round.to.odd
+    3, // llvm.ppc.tsr
+    3, // llvm.ppc.tsuspend
+    3, // llvm.ppc.ttest
+    2, // llvm.ppc.vsx.lxvd2x
+    2, // llvm.ppc.vsx.lxvd2x.be
+    2, // llvm.ppc.vsx.lxvl
+    2, // llvm.ppc.vsx.lxvll
+    2, // llvm.ppc.vsx.lxvw4x
+    2, // llvm.ppc.vsx.lxvw4x.be
+    42, // llvm.ppc.vsx.stxvd2x
+    42, // llvm.ppc.vsx.stxvd2x.be
+    42, // llvm.ppc.vsx.stxvl
+    42, // llvm.ppc.vsx.stxvll
+    42, // llvm.ppc.vsx.stxvw4x
+    42, // llvm.ppc.vsx.stxvw4x.be
+    1, // llvm.ppc.vsx.xsmaxdp
+    1, // llvm.ppc.vsx.xsmindp
+    1, // llvm.ppc.vsx.xvcmpeqdp
+    1, // llvm.ppc.vsx.xvcmpeqdp.p
+    1, // llvm.ppc.vsx.xvcmpeqsp
+    1, // llvm.ppc.vsx.xvcmpeqsp.p
+    1, // llvm.ppc.vsx.xvcmpgedp
+    1, // llvm.ppc.vsx.xvcmpgedp.p
+    1, // llvm.ppc.vsx.xvcmpgesp
+    1, // llvm.ppc.vsx.xvcmpgesp.p
+    1, // llvm.ppc.vsx.xvcmpgtdp
+    1, // llvm.ppc.vsx.xvcmpgtdp.p
+    1, // llvm.ppc.vsx.xvcmpgtsp
+    1, // llvm.ppc.vsx.xvcmpgtsp.p
+    1, // llvm.ppc.vsx.xvcvdpsp
+    1, // llvm.ppc.vsx.xvcvdpsxws
+    1, // llvm.ppc.vsx.xvcvdpuxws
+    1, // llvm.ppc.vsx.xvcvhpsp
+    1, // llvm.ppc.vsx.xvcvspdp
+    1, // llvm.ppc.vsx.xvcvsphp
+    1, // llvm.ppc.vsx.xvcvsxdsp
+    1, // llvm.ppc.vsx.xvcvsxwdp
+    1, // llvm.ppc.vsx.xvcvuxdsp
+    1, // llvm.ppc.vsx.xvcvuxwdp
+    1, // llvm.ppc.vsx.xvdivdp
+    1, // llvm.ppc.vsx.xvdivsp
+    1, // llvm.ppc.vsx.xviexpdp
+    1, // llvm.ppc.vsx.xviexpsp
+    1, // llvm.ppc.vsx.xvmaxdp
+    1, // llvm.ppc.vsx.xvmaxsp
+    1, // llvm.ppc.vsx.xvmindp
+    1, // llvm.ppc.vsx.xvminsp
+    1, // llvm.ppc.vsx.xvrdpip
+    1, // llvm.ppc.vsx.xvredp
+    1, // llvm.ppc.vsx.xvresp
+    1, // llvm.ppc.vsx.xvrspip
+    1, // llvm.ppc.vsx.xvrsqrtedp
+    1, // llvm.ppc.vsx.xvrsqrtesp
+    1, // llvm.ppc.vsx.xvtstdcdp
+    1, // llvm.ppc.vsx.xvtstdcsp
+    1, // llvm.ppc.vsx.xvxexpdp
+    1, // llvm.ppc.vsx.xvxexpsp
+    1, // llvm.ppc.vsx.xvxsigdp
+    1, // llvm.ppc.vsx.xvxsigsp
+    1, // llvm.ppc.vsx.xxextractuw
+    1, // llvm.ppc.vsx.xxinsertw
+    1, // llvm.ppc.vsx.xxleqv
+    4, // llvm.r600.cube
+    1, // llvm.r600.ddx
+    1, // llvm.r600.ddy
+    4, // llvm.r600.dot4
+    35, // llvm.r600.group.barrier
+    4, // llvm.r600.implicitarg.ptr
+    3, // llvm.r600.kill
+    3, // llvm.r600.rat.store.typed
+    4, // llvm.r600.read.global.size.x
+    4, // llvm.r600.read.global.size.y
+    4, // llvm.r600.read.global.size.z
+    4, // llvm.r600.read.local.size.x
+    4, // llvm.r600.read.local.size.y
+    4, // llvm.r600.read.local.size.z
+    4, // llvm.r600.read.ngroups.x
+    4, // llvm.r600.read.ngroups.y
+    4, // llvm.r600.read.ngroups.z
+    4, // llvm.r600.read.tgid.x
+    4, // llvm.r600.read.tgid.y
+    4, // llvm.r600.read.tgid.z
+    4, // llvm.r600.read.tidig.x
+    4, // llvm.r600.read.tidig.y
+    4, // llvm.r600.read.tidig.z
+    4, // llvm.r600.recipsqrt.clamped
+    4, // llvm.r600.recipsqrt.ieee
+    3, // llvm.r600.store.stream.output
+    3, // llvm.r600.store.swizzle
+    1, // llvm.r600.tex
+    1, // llvm.r600.texc
+    1, // llvm.r600.txb
+    1, // llvm.r600.txbc
+    1, // llvm.r600.txf
+    1, // llvm.r600.txl
+    1, // llvm.r600.txlc
+    1, // llvm.r600.txq
+    3, // llvm.s390.efpc
+    1, // llvm.s390.etnd
+    1, // llvm.s390.lcbb
+    42, // llvm.s390.ntstg
+    3, // llvm.s390.ppa.txassist
+    3, // llvm.s390.sfpc
+    44, // llvm.s390.tabort
+    45, // llvm.s390.tbegin
+    45, // llvm.s390.tbegin.nofloat
+    45, // llvm.s390.tbeginc
+    1, // llvm.s390.tdc
+    3, // llvm.s390.tend
+    1, // llvm.s390.vaccb
+    1, // llvm.s390.vacccq
+    1, // llvm.s390.vaccf
+    1, // llvm.s390.vaccg
+    1, // llvm.s390.vacch
+    1, // llvm.s390.vaccq
+    1, // llvm.s390.vacq
+    1, // llvm.s390.vaq
+    1, // llvm.s390.vavgb
+    1, // llvm.s390.vavgf
+    1, // llvm.s390.vavgg
+    1, // llvm.s390.vavgh
+    1, // llvm.s390.vavglb
+    1, // llvm.s390.vavglf
+    1, // llvm.s390.vavglg
+    1, // llvm.s390.vavglh
+    1, // llvm.s390.vbperm
+    1, // llvm.s390.vceqbs
+    1, // llvm.s390.vceqfs
+    1, // llvm.s390.vceqgs
+    1, // llvm.s390.vceqhs
+    1, // llvm.s390.vchbs
+    1, // llvm.s390.vchfs
+    1, // llvm.s390.vchgs
+    1, // llvm.s390.vchhs
+    1, // llvm.s390.vchlbs
+    1, // llvm.s390.vchlfs
+    1, // llvm.s390.vchlgs
+    1, // llvm.s390.vchlhs
+    1, // llvm.s390.vcksm
+    1, // llvm.s390.verimb
+    1, // llvm.s390.verimf
+    1, // llvm.s390.verimg
+    1, // llvm.s390.verimh
+    1, // llvm.s390.verllb
+    1, // llvm.s390.verllf
+    1, // llvm.s390.verllg
+    1, // llvm.s390.verllh
+    1, // llvm.s390.verllvb
+    1, // llvm.s390.verllvf
+    1, // llvm.s390.verllvg
+    1, // llvm.s390.verllvh
+    1, // llvm.s390.vfaeb
+    1, // llvm.s390.vfaebs
+    1, // llvm.s390.vfaef
+    1, // llvm.s390.vfaefs
+    1, // llvm.s390.vfaeh
+    1, // llvm.s390.vfaehs
+    1, // llvm.s390.vfaezb
+    1, // llvm.s390.vfaezbs
+    1, // llvm.s390.vfaezf
+    1, // llvm.s390.vfaezfs
+    1, // llvm.s390.vfaezh
+    1, // llvm.s390.vfaezhs
+    1, // llvm.s390.vfcedbs
+    1, // llvm.s390.vfcesbs
+    1, // llvm.s390.vfchdbs
+    1, // llvm.s390.vfchedbs
+    1, // llvm.s390.vfchesbs
+    1, // llvm.s390.vfchsbs
+    1, // llvm.s390.vfeeb
+    1, // llvm.s390.vfeebs
+    1, // llvm.s390.vfeef
+    1, // llvm.s390.vfeefs
+    1, // llvm.s390.vfeeh
+    1, // llvm.s390.vfeehs
+    1, // llvm.s390.vfeezb
+    1, // llvm.s390.vfeezbs
+    1, // llvm.s390.vfeezf
+    1, // llvm.s390.vfeezfs
+    1, // llvm.s390.vfeezh
+    1, // llvm.s390.vfeezhs
+    1, // llvm.s390.vfeneb
+    1, // llvm.s390.vfenebs
+    1, // llvm.s390.vfenef
+    1, // llvm.s390.vfenefs
+    1, // llvm.s390.vfeneh
+    1, // llvm.s390.vfenehs
+    1, // llvm.s390.vfenezb
+    1, // llvm.s390.vfenezbs
+    1, // llvm.s390.vfenezf
+    1, // llvm.s390.vfenezfs
+    1, // llvm.s390.vfenezh
+    1, // llvm.s390.vfenezhs
+    1, // llvm.s390.vfidb
+    1, // llvm.s390.vfisb
+    1, // llvm.s390.vfmaxdb
+    1, // llvm.s390.vfmaxsb
+    1, // llvm.s390.vfmindb
+    1, // llvm.s390.vfminsb
+    1, // llvm.s390.vftcidb
+    1, // llvm.s390.vftcisb
+    1, // llvm.s390.vgfmab
+    1, // llvm.s390.vgfmaf
+    1, // llvm.s390.vgfmag
+    1, // llvm.s390.vgfmah
+    1, // llvm.s390.vgfmb
+    1, // llvm.s390.vgfmf
+    1, // llvm.s390.vgfmg
+    1, // llvm.s390.vgfmh
+    1, // llvm.s390.vistrb
+    1, // llvm.s390.vistrbs
+    1, // llvm.s390.vistrf
+    1, // llvm.s390.vistrfs
+    1, // llvm.s390.vistrh
+    1, // llvm.s390.vistrhs
+    2, // llvm.s390.vlbb
+    2, // llvm.s390.vll
+    2, // llvm.s390.vlrl
+    1, // llvm.s390.vmaeb
+    1, // llvm.s390.vmaef
+    1, // llvm.s390.vmaeh
+    1, // llvm.s390.vmahb
+    1, // llvm.s390.vmahf
+    1, // llvm.s390.vmahh
+    1, // llvm.s390.vmaleb
+    1, // llvm.s390.vmalef
+    1, // llvm.s390.vmaleh
+    1, // llvm.s390.vmalhb
+    1, // llvm.s390.vmalhf
+    1, // llvm.s390.vmalhh
+    1, // llvm.s390.vmalob
+    1, // llvm.s390.vmalof
+    1, // llvm.s390.vmaloh
+    1, // llvm.s390.vmaob
+    1, // llvm.s390.vmaof
+    1, // llvm.s390.vmaoh
+    1, // llvm.s390.vmeb
+    1, // llvm.s390.vmef
+    1, // llvm.s390.vmeh
+    1, // llvm.s390.vmhb
+    1, // llvm.s390.vmhf
+    1, // llvm.s390.vmhh
+    1, // llvm.s390.vmleb
+    1, // llvm.s390.vmlef
+    1, // llvm.s390.vmleh
+    1, // llvm.s390.vmlhb
+    1, // llvm.s390.vmlhf
+    1, // llvm.s390.vmlhh
+    1, // llvm.s390.vmlob
+    1, // llvm.s390.vmlof
+    1, // llvm.s390.vmloh
+    1, // llvm.s390.vmob
+    1, // llvm.s390.vmof
+    1, // llvm.s390.vmoh
+    1, // llvm.s390.vmslg
+    1, // llvm.s390.vpdi
+    1, // llvm.s390.vperm
+    1, // llvm.s390.vpklsf
+    1, // llvm.s390.vpklsfs
+    1, // llvm.s390.vpklsg
+    1, // llvm.s390.vpklsgs
+    1, // llvm.s390.vpklsh
+    1, // llvm.s390.vpklshs
+    1, // llvm.s390.vpksf
+    1, // llvm.s390.vpksfs
+    1, // llvm.s390.vpksg
+    1, // llvm.s390.vpksgs
+    1, // llvm.s390.vpksh
+    1, // llvm.s390.vpkshs
+    1, // llvm.s390.vsbcbiq
+    1, // llvm.s390.vsbiq
+    1, // llvm.s390.vscbib
+    1, // llvm.s390.vscbif
+    1, // llvm.s390.vscbig
+    1, // llvm.s390.vscbih
+    1, // llvm.s390.vscbiq
+    1, // llvm.s390.vsl
+    1, // llvm.s390.vslb
+    1, // llvm.s390.vsldb
+    1, // llvm.s390.vsq
+    1, // llvm.s390.vsra
+    1, // llvm.s390.vsrab
+    1, // llvm.s390.vsrl
+    1, // llvm.s390.vsrlb
+    42, // llvm.s390.vstl
+    1, // llvm.s390.vstrcb
+    1, // llvm.s390.vstrcbs
+    1, // llvm.s390.vstrcf
+    1, // llvm.s390.vstrcfs
+    1, // llvm.s390.vstrch
+    1, // llvm.s390.vstrchs
+    1, // llvm.s390.vstrczb
+    1, // llvm.s390.vstrczbs
+    1, // llvm.s390.vstrczf
+    1, // llvm.s390.vstrczfs
+    1, // llvm.s390.vstrczh
+    1, // llvm.s390.vstrczhs
+    42, // llvm.s390.vstrl
+    1, // llvm.s390.vsumb
+    1, // llvm.s390.vsumgf
+    1, // llvm.s390.vsumgh
+    1, // llvm.s390.vsumh
+    1, // llvm.s390.vsumqf
+    1, // llvm.s390.vsumqg
+    1, // llvm.s390.vtm
+    1, // llvm.s390.vuphb
+    1, // llvm.s390.vuphf
+    1, // llvm.s390.vuphh
+    1, // llvm.s390.vuplb
+    1, // llvm.s390.vuplf
+    1, // llvm.s390.vuplhb
+    1, // llvm.s390.vuplhf
+    1, // llvm.s390.vuplhh
+    1, // llvm.s390.vuplhw
+    1, // llvm.s390.vupllb
+    1, // llvm.s390.vupllf
+    1, // llvm.s390.vupllh
+    46, // llvm.wasm.atomic.notify
+    47, // llvm.wasm.atomic.wait.i32
+    47, // llvm.wasm.atomic.wait.i64
+    48, // llvm.wasm.catch
+    16, // llvm.wasm.current.memory
+    48, // llvm.wasm.get.ehselector
+    48, // llvm.wasm.get.exception
+    3, // llvm.wasm.grow.memory
+    1, // llvm.wasm.landingpad.index
+    1, // llvm.wasm.lsda
+    3, // llvm.wasm.mem.grow
+    16, // llvm.wasm.mem.size
+    3, // llvm.wasm.memory.grow
+    16, // llvm.wasm.memory.size
+    49, // llvm.wasm.rethrow
+    49, // llvm.wasm.throw
+    1, // llvm.x86.3dnow.pavgusb
+    1, // llvm.x86.3dnow.pf2id
+    1, // llvm.x86.3dnow.pfacc
+    1, // llvm.x86.3dnow.pfadd
+    1, // llvm.x86.3dnow.pfcmpeq
+    1, // llvm.x86.3dnow.pfcmpge
+    1, // llvm.x86.3dnow.pfcmpgt
+    1, // llvm.x86.3dnow.pfmax
+    1, // llvm.x86.3dnow.pfmin
+    1, // llvm.x86.3dnow.pfmul
+    1, // llvm.x86.3dnow.pfrcp
+    1, // llvm.x86.3dnow.pfrcpit1
+    1, // llvm.x86.3dnow.pfrcpit2
+    1, // llvm.x86.3dnow.pfrsqit1
+    1, // llvm.x86.3dnow.pfrsqrt
+    1, // llvm.x86.3dnow.pfsub
+    1, // llvm.x86.3dnow.pfsubr
+    1, // llvm.x86.3dnow.pi2fd
+    1, // llvm.x86.3dnow.pmulhrw
+    1, // llvm.x86.3dnowa.pf2iw
+    1, // llvm.x86.3dnowa.pfnacc
+    1, // llvm.x86.3dnowa.pfpnacc
+    1, // llvm.x86.3dnowa.pi2fw
+    1, // llvm.x86.3dnowa.pswapd
+    22, // llvm.x86.addcarry.u32
+    22, // llvm.x86.addcarry.u64
+    22, // llvm.x86.addcarryx.u32
+    22, // llvm.x86.addcarryx.u64
+    1, // llvm.x86.aesni.aesdec
+    1, // llvm.x86.aesni.aesdec.256
+    1, // llvm.x86.aesni.aesdec.512
+    1, // llvm.x86.aesni.aesdeclast
+    1, // llvm.x86.aesni.aesdeclast.256
+    1, // llvm.x86.aesni.aesdeclast.512
+    1, // llvm.x86.aesni.aesenc
+    1, // llvm.x86.aesni.aesenc.256
+    1, // llvm.x86.aesni.aesenc.512
+    1, // llvm.x86.aesni.aesenclast
+    1, // llvm.x86.aesni.aesenclast.256
+    1, // llvm.x86.aesni.aesenclast.512
+    1, // llvm.x86.aesni.aesimc
+    1, // llvm.x86.aesni.aeskeygenassist
+    1, // llvm.x86.avx.addsub.pd.256
+    1, // llvm.x86.avx.addsub.ps.256
+    1, // llvm.x86.avx.blendv.pd.256
+    1, // llvm.x86.avx.blendv.ps.256
+    1, // llvm.x86.avx.cmp.pd.256
+    1, // llvm.x86.avx.cmp.ps.256
+    1, // llvm.x86.avx.cvt.pd2.ps.256
+    1, // llvm.x86.avx.cvt.pd2dq.256
+    1, // llvm.x86.avx.cvt.ps2dq.256
+    1, // llvm.x86.avx.cvtt.pd2dq.256
+    1, // llvm.x86.avx.cvtt.ps2dq.256
+    1, // llvm.x86.avx.dp.ps.256
+    1, // llvm.x86.avx.hadd.pd.256
+    1, // llvm.x86.avx.hadd.ps.256
+    1, // llvm.x86.avx.hsub.pd.256
+    1, // llvm.x86.avx.hsub.ps.256
+    16, // llvm.x86.avx.ldu.dq.256
+    2, // llvm.x86.avx.maskload.pd
+    2, // llvm.x86.avx.maskload.pd.256
+    2, // llvm.x86.avx.maskload.ps
+    2, // llvm.x86.avx.maskload.ps.256
+    22, // llvm.x86.avx.maskstore.pd
+    22, // llvm.x86.avx.maskstore.pd.256
+    22, // llvm.x86.avx.maskstore.ps
+    22, // llvm.x86.avx.maskstore.ps.256
+    1, // llvm.x86.avx.max.pd.256
+    1, // llvm.x86.avx.max.ps.256
+    1, // llvm.x86.avx.min.pd.256
+    1, // llvm.x86.avx.min.ps.256
+    1, // llvm.x86.avx.movmsk.pd.256
+    1, // llvm.x86.avx.movmsk.ps.256
+    1, // llvm.x86.avx.ptestc.256
+    1, // llvm.x86.avx.ptestnzc.256
+    1, // llvm.x86.avx.ptestz.256
+    1, // llvm.x86.avx.rcp.ps.256
+    1, // llvm.x86.avx.round.pd.256
+    1, // llvm.x86.avx.round.ps.256
+    1, // llvm.x86.avx.rsqrt.ps.256
+    1, // llvm.x86.avx.vpermilvar.pd
+    1, // llvm.x86.avx.vpermilvar.pd.256
+    1, // llvm.x86.avx.vpermilvar.ps
+    1, // llvm.x86.avx.vpermilvar.ps.256
+    1, // llvm.x86.avx.vtestc.pd
+    1, // llvm.x86.avx.vtestc.pd.256
+    1, // llvm.x86.avx.vtestc.ps
+    1, // llvm.x86.avx.vtestc.ps.256
+    1, // llvm.x86.avx.vtestnzc.pd
+    1, // llvm.x86.avx.vtestnzc.pd.256
+    1, // llvm.x86.avx.vtestnzc.ps
+    1, // llvm.x86.avx.vtestnzc.ps.256
+    1, // llvm.x86.avx.vtestz.pd
+    1, // llvm.x86.avx.vtestz.pd.256
+    1, // llvm.x86.avx.vtestz.ps
+    1, // llvm.x86.avx.vtestz.ps.256
+    3, // llvm.x86.avx.vzeroall
+    3, // llvm.x86.avx.vzeroupper
+    2, // llvm.x86.avx2.gather.d.d
+    2, // llvm.x86.avx2.gather.d.d.256
+    2, // llvm.x86.avx2.gather.d.pd
+    2, // llvm.x86.avx2.gather.d.pd.256
+    2, // llvm.x86.avx2.gather.d.ps
+    2, // llvm.x86.avx2.gather.d.ps.256
+    2, // llvm.x86.avx2.gather.d.q
+    2, // llvm.x86.avx2.gather.d.q.256
+    2, // llvm.x86.avx2.gather.q.d
+    2, // llvm.x86.avx2.gather.q.d.256
+    2, // llvm.x86.avx2.gather.q.pd
+    2, // llvm.x86.avx2.gather.q.pd.256
+    2, // llvm.x86.avx2.gather.q.ps
+    2, // llvm.x86.avx2.gather.q.ps.256
+    2, // llvm.x86.avx2.gather.q.q
+    2, // llvm.x86.avx2.gather.q.q.256
+    2, // llvm.x86.avx2.maskload.d
+    2, // llvm.x86.avx2.maskload.d.256
+    2, // llvm.x86.avx2.maskload.q
+    2, // llvm.x86.avx2.maskload.q.256
+    22, // llvm.x86.avx2.maskstore.d
+    22, // llvm.x86.avx2.maskstore.d.256
+    22, // llvm.x86.avx2.maskstore.q
+    22, // llvm.x86.avx2.maskstore.q.256
+    1, // llvm.x86.avx2.mpsadbw
+    1, // llvm.x86.avx2.packssdw
+    1, // llvm.x86.avx2.packsswb
+    1, // llvm.x86.avx2.packusdw
+    1, // llvm.x86.avx2.packuswb
+    1, // llvm.x86.avx2.padds.b
+    1, // llvm.x86.avx2.padds.w
+    1, // llvm.x86.avx2.paddus.b
+    1, // llvm.x86.avx2.paddus.w
+    1, // llvm.x86.avx2.pblendvb
+    1, // llvm.x86.avx2.permd
+    1, // llvm.x86.avx2.permps
+    1, // llvm.x86.avx2.phadd.d
+    1, // llvm.x86.avx2.phadd.sw
+    1, // llvm.x86.avx2.phadd.w
+    1, // llvm.x86.avx2.phsub.d
+    1, // llvm.x86.avx2.phsub.sw
+    1, // llvm.x86.avx2.phsub.w
+    1, // llvm.x86.avx2.pmadd.ub.sw
+    1, // llvm.x86.avx2.pmadd.wd
+    1, // llvm.x86.avx2.pmovmskb
+    1, // llvm.x86.avx2.pmul.hr.sw
+    1, // llvm.x86.avx2.pmulh.w
+    1, // llvm.x86.avx2.pmulhu.w
+    1, // llvm.x86.avx2.psad.bw
+    1, // llvm.x86.avx2.pshuf.b
+    1, // llvm.x86.avx2.psign.b
+    1, // llvm.x86.avx2.psign.d
+    1, // llvm.x86.avx2.psign.w
+    1, // llvm.x86.avx2.psll.d
+    1, // llvm.x86.avx2.psll.q
+    1, // llvm.x86.avx2.psll.w
+    1, // llvm.x86.avx2.pslli.d
+    1, // llvm.x86.avx2.pslli.q
+    1, // llvm.x86.avx2.pslli.w
+    1, // llvm.x86.avx2.psllv.d
+    1, // llvm.x86.avx2.psllv.d.256
+    1, // llvm.x86.avx2.psllv.q
+    1, // llvm.x86.avx2.psllv.q.256
+    1, // llvm.x86.avx2.psra.d
+    1, // llvm.x86.avx2.psra.w
+    1, // llvm.x86.avx2.psrai.d
+    1, // llvm.x86.avx2.psrai.w
+    1, // llvm.x86.avx2.psrav.d
+    1, // llvm.x86.avx2.psrav.d.256
+    1, // llvm.x86.avx2.psrl.d
+    1, // llvm.x86.avx2.psrl.q
+    1, // llvm.x86.avx2.psrl.w
+    1, // llvm.x86.avx2.psrli.d
+    1, // llvm.x86.avx2.psrli.q
+    1, // llvm.x86.avx2.psrli.w
+    1, // llvm.x86.avx2.psrlv.d
+    1, // llvm.x86.avx2.psrlv.d.256
+    1, // llvm.x86.avx2.psrlv.q
+    1, // llvm.x86.avx2.psrlv.q.256
+    1, // llvm.x86.avx2.psubs.b
+    1, // llvm.x86.avx2.psubs.w
+    1, // llvm.x86.avx2.psubus.b
+    1, // llvm.x86.avx2.psubus.w
+    1, // llvm.x86.avx512.add.pd.512
+    1, // llvm.x86.avx512.add.ps.512
+    1, // llvm.x86.avx512.broadcastmb.128
+    1, // llvm.x86.avx512.broadcastmb.256
+    1, // llvm.x86.avx512.broadcastmb.512
+    1, // llvm.x86.avx512.broadcastmw.128
+    1, // llvm.x86.avx512.broadcastmw.256
+    1, // llvm.x86.avx512.broadcastmw.512
+    1, // llvm.x86.avx512.cmp.pd.128
+    1, // llvm.x86.avx512.cmp.pd.256
+    1, // llvm.x86.avx512.cmp.pd.512
+    1, // llvm.x86.avx512.cmp.ps.128
+    1, // llvm.x86.avx512.cmp.ps.256
+    1, // llvm.x86.avx512.cmp.ps.512
+    1, // llvm.x86.avx512.cvtsi2sd64
+    1, // llvm.x86.avx512.cvtsi2ss32
+    1, // llvm.x86.avx512.cvtsi2ss64
+    1, // llvm.x86.avx512.cvttsd2si
+    1, // llvm.x86.avx512.cvttsd2si64
+    1, // llvm.x86.avx512.cvttsd2usi
+    1, // llvm.x86.avx512.cvttsd2usi64
+    1, // llvm.x86.avx512.cvttss2si
+    1, // llvm.x86.avx512.cvttss2si64
+    1, // llvm.x86.avx512.cvttss2usi
+    1, // llvm.x86.avx512.cvttss2usi64
+    1, // llvm.x86.avx512.cvtusi2ss
+    1, // llvm.x86.avx512.cvtusi642sd
+    1, // llvm.x86.avx512.cvtusi642ss
+    1, // llvm.x86.avx512.dbpsadbw.128
+    1, // llvm.x86.avx512.dbpsadbw.256
+    1, // llvm.x86.avx512.dbpsadbw.512
+    1, // llvm.x86.avx512.div.pd.512
+    1, // llvm.x86.avx512.div.ps.512
+    1, // llvm.x86.avx512.exp2.pd
+    1, // llvm.x86.avx512.exp2.ps
+    1, // llvm.x86.avx512.fpclass.pd.128
+    1, // llvm.x86.avx512.fpclass.pd.256
+    1, // llvm.x86.avx512.fpclass.pd.512
+    1, // llvm.x86.avx512.fpclass.ps.128
+    1, // llvm.x86.avx512.fpclass.ps.256
+    1, // llvm.x86.avx512.fpclass.ps.512
+    2, // llvm.x86.avx512.gather.dpd.512
+    2, // llvm.x86.avx512.gather.dpi.512
+    2, // llvm.x86.avx512.gather.dpq.512
+    2, // llvm.x86.avx512.gather.dps.512
+    2, // llvm.x86.avx512.gather.qpd.512
+    2, // llvm.x86.avx512.gather.qpi.512
+    2, // llvm.x86.avx512.gather.qpq.512
+    2, // llvm.x86.avx512.gather.qps.512
+    2, // llvm.x86.avx512.gather3div2.df
+    2, // llvm.x86.avx512.gather3div2.di
+    2, // llvm.x86.avx512.gather3div4.df
+    2, // llvm.x86.avx512.gather3div4.di
+    2, // llvm.x86.avx512.gather3div4.sf
+    2, // llvm.x86.avx512.gather3div4.si
+    2, // llvm.x86.avx512.gather3div8.sf
+    2, // llvm.x86.avx512.gather3div8.si
+    2, // llvm.x86.avx512.gather3siv2.df
+    2, // llvm.x86.avx512.gather3siv2.di
+    2, // llvm.x86.avx512.gather3siv4.df
+    2, // llvm.x86.avx512.gather3siv4.di
+    2, // llvm.x86.avx512.gather3siv4.sf
+    2, // llvm.x86.avx512.gather3siv4.si
+    2, // llvm.x86.avx512.gather3siv8.sf
+    2, // llvm.x86.avx512.gather3siv8.si
+    22, // llvm.x86.avx512.gatherpf.dpd.512
+    22, // llvm.x86.avx512.gatherpf.dps.512
+    22, // llvm.x86.avx512.gatherpf.qpd.512
+    22, // llvm.x86.avx512.gatherpf.qps.512
+    1, // llvm.x86.avx512.mask.add.sd.round
+    1, // llvm.x86.avx512.mask.add.ss.round
+    1, // llvm.x86.avx512.mask.cmp.sd
+    1, // llvm.x86.avx512.mask.cmp.ss
+    1, // llvm.x86.avx512.mask.compress.b.128
+    1, // llvm.x86.avx512.mask.compress.b.256
+    1, // llvm.x86.avx512.mask.compress.b.512
+    1, // llvm.x86.avx512.mask.compress.d.128
+    1, // llvm.x86.avx512.mask.compress.d.256
+    1, // llvm.x86.avx512.mask.compress.d.512
+    1, // llvm.x86.avx512.mask.compress.pd.128
+    1, // llvm.x86.avx512.mask.compress.pd.256
+    1, // llvm.x86.avx512.mask.compress.pd.512
+    1, // llvm.x86.avx512.mask.compress.ps.128
+    1, // llvm.x86.avx512.mask.compress.ps.256
+    1, // llvm.x86.avx512.mask.compress.ps.512
+    1, // llvm.x86.avx512.mask.compress.q.128
+    1, // llvm.x86.avx512.mask.compress.q.256
+    1, // llvm.x86.avx512.mask.compress.q.512
+    1, // llvm.x86.avx512.mask.compress.w.128
+    1, // llvm.x86.avx512.mask.compress.w.256
+    1, // llvm.x86.avx512.mask.compress.w.512
+    1, // llvm.x86.avx512.mask.conflict.d.128
+    1, // llvm.x86.avx512.mask.conflict.d.256
+    1, // llvm.x86.avx512.mask.conflict.d.512
+    1, // llvm.x86.avx512.mask.conflict.q.128
+    1, // llvm.x86.avx512.mask.conflict.q.256
+    1, // llvm.x86.avx512.mask.conflict.q.512
+    1, // llvm.x86.avx512.mask.cvtdq2ps.512
+    1, // llvm.x86.avx512.mask.cvtpd2dq.128
+    1, // llvm.x86.avx512.mask.cvtpd2dq.512
+    1, // llvm.x86.avx512.mask.cvtpd2ps
+    1, // llvm.x86.avx512.mask.cvtpd2ps.512
+    1, // llvm.x86.avx512.mask.cvtpd2qq.128
+    1, // llvm.x86.avx512.mask.cvtpd2qq.256
+    1, // llvm.x86.avx512.mask.cvtpd2qq.512
+    1, // llvm.x86.avx512.mask.cvtpd2udq.128
+    1, // llvm.x86.avx512.mask.cvtpd2udq.256
+    1, // llvm.x86.avx512.mask.cvtpd2udq.512
+    1, // llvm.x86.avx512.mask.cvtpd2uqq.128
+    1, // llvm.x86.avx512.mask.cvtpd2uqq.256
+    1, // llvm.x86.avx512.mask.cvtpd2uqq.512
+    1, // llvm.x86.avx512.mask.cvtps2dq.128
+    1, // llvm.x86.avx512.mask.cvtps2dq.256
+    1, // llvm.x86.avx512.mask.cvtps2dq.512
+    1, // llvm.x86.avx512.mask.cvtps2pd.512
+    1, // llvm.x86.avx512.mask.cvtps2qq.128
+    1, // llvm.x86.avx512.mask.cvtps2qq.256
+    1, // llvm.x86.avx512.mask.cvtps2qq.512
+    1, // llvm.x86.avx512.mask.cvtps2udq.128
+    1, // llvm.x86.avx512.mask.cvtps2udq.256
+    1, // llvm.x86.avx512.mask.cvtps2udq.512
+    1, // llvm.x86.avx512.mask.cvtps2uqq.128
+    1, // llvm.x86.avx512.mask.cvtps2uqq.256
+    1, // llvm.x86.avx512.mask.cvtps2uqq.512
+    1, // llvm.x86.avx512.mask.cvtqq2pd.512
+    1, // llvm.x86.avx512.mask.cvtqq2ps.128
+    1, // llvm.x86.avx512.mask.cvtqq2ps.256
+    1, // llvm.x86.avx512.mask.cvtqq2ps.512
+    1, // llvm.x86.avx512.mask.cvtsd2ss.round
+    1, // llvm.x86.avx512.mask.cvtss2sd.round
+    1, // llvm.x86.avx512.mask.cvttpd2dq.128
+    1, // llvm.x86.avx512.mask.cvttpd2dq.512
+    1, // llvm.x86.avx512.mask.cvttpd2qq.128
+    1, // llvm.x86.avx512.mask.cvttpd2qq.256
+    1, // llvm.x86.avx512.mask.cvttpd2qq.512
+    1, // llvm.x86.avx512.mask.cvttpd2udq.128
+    1, // llvm.x86.avx512.mask.cvttpd2udq.256
+    1, // llvm.x86.avx512.mask.cvttpd2udq.512
+    1, // llvm.x86.avx512.mask.cvttpd2uqq.128
+    1, // llvm.x86.avx512.mask.cvttpd2uqq.256
+    1, // llvm.x86.avx512.mask.cvttpd2uqq.512
+    1, // llvm.x86.avx512.mask.cvttps2dq.512
+    1, // llvm.x86.avx512.mask.cvttps2qq.128
+    1, // llvm.x86.avx512.mask.cvttps2qq.256
+    1, // llvm.x86.avx512.mask.cvttps2qq.512
+    1, // llvm.x86.avx512.mask.cvttps2udq.128
+    1, // llvm.x86.avx512.mask.cvttps2udq.256
+    1, // llvm.x86.avx512.mask.cvttps2udq.512
+    1, // llvm.x86.avx512.mask.cvttps2uqq.128
+    1, // llvm.x86.avx512.mask.cvttps2uqq.256
+    1, // llvm.x86.avx512.mask.cvttps2uqq.512
+    1, // llvm.x86.avx512.mask.cvtudq2ps.512
+    1, // llvm.x86.avx512.mask.cvtuqq2pd.512
+    1, // llvm.x86.avx512.mask.cvtuqq2ps.128
+    1, // llvm.x86.avx512.mask.cvtuqq2ps.256
+    1, // llvm.x86.avx512.mask.cvtuqq2ps.512
+    1, // llvm.x86.avx512.mask.div.sd.round
+    1, // llvm.x86.avx512.mask.div.ss.round
+    1, // llvm.x86.avx512.mask.expand.b.128
+    1, // llvm.x86.avx512.mask.expand.b.256
+    1, // llvm.x86.avx512.mask.expand.b.512
+    1, // llvm.x86.avx512.mask.expand.d.128
+    1, // llvm.x86.avx512.mask.expand.d.256
+    1, // llvm.x86.avx512.mask.expand.d.512
+    1, // llvm.x86.avx512.mask.expand.pd.128
+    1, // llvm.x86.avx512.mask.expand.pd.256
+    1, // llvm.x86.avx512.mask.expand.pd.512
+    1, // llvm.x86.avx512.mask.expand.ps.128
+    1, // llvm.x86.avx512.mask.expand.ps.256
+    1, // llvm.x86.avx512.mask.expand.ps.512
+    1, // llvm.x86.avx512.mask.expand.q.128
+    1, // llvm.x86.avx512.mask.expand.q.256
+    1, // llvm.x86.avx512.mask.expand.q.512
+    1, // llvm.x86.avx512.mask.expand.w.128
+    1, // llvm.x86.avx512.mask.expand.w.256
+    1, // llvm.x86.avx512.mask.expand.w.512
+    1, // llvm.x86.avx512.mask.fixupimm.pd.128
+    1, // llvm.x86.avx512.mask.fixupimm.pd.256
+    1, // llvm.x86.avx512.mask.fixupimm.pd.512
+    1, // llvm.x86.avx512.mask.fixupimm.ps.128
+    1, // llvm.x86.avx512.mask.fixupimm.ps.256
+    1, // llvm.x86.avx512.mask.fixupimm.ps.512
+    1, // llvm.x86.avx512.mask.fixupimm.sd
+    1, // llvm.x86.avx512.mask.fixupimm.ss
+    1, // llvm.x86.avx512.mask.fpclass.sd
+    1, // llvm.x86.avx512.mask.fpclass.ss
+    1, // llvm.x86.avx512.mask.getexp.pd.128
+    1, // llvm.x86.avx512.mask.getexp.pd.256
+    1, // llvm.x86.avx512.mask.getexp.pd.512
+    1, // llvm.x86.avx512.mask.getexp.ps.128
+    1, // llvm.x86.avx512.mask.getexp.ps.256
+    1, // llvm.x86.avx512.mask.getexp.ps.512
+    1, // llvm.x86.avx512.mask.getexp.sd
+    1, // llvm.x86.avx512.mask.getexp.ss
+    1, // llvm.x86.avx512.mask.getmant.pd.128
+    1, // llvm.x86.avx512.mask.getmant.pd.256
+    1, // llvm.x86.avx512.mask.getmant.pd.512
+    1, // llvm.x86.avx512.mask.getmant.ps.128
+    1, // llvm.x86.avx512.mask.getmant.ps.256
+    1, // llvm.x86.avx512.mask.getmant.ps.512
+    1, // llvm.x86.avx512.mask.getmant.sd
+    1, // llvm.x86.avx512.mask.getmant.ss
+    1, // llvm.x86.avx512.mask.max.sd.round
+    1, // llvm.x86.avx512.mask.max.ss.round
+    1, // llvm.x86.avx512.mask.min.sd.round
+    1, // llvm.x86.avx512.mask.min.ss.round
+    1, // llvm.x86.avx512.mask.mul.sd.round
+    1, // llvm.x86.avx512.mask.mul.ss.round
+    1, // llvm.x86.avx512.mask.padds.b.128
+    1, // llvm.x86.avx512.mask.padds.b.256
+    1, // llvm.x86.avx512.mask.padds.b.512
+    1, // llvm.x86.avx512.mask.padds.w.128
+    1, // llvm.x86.avx512.mask.padds.w.256
+    1, // llvm.x86.avx512.mask.padds.w.512
+    1, // llvm.x86.avx512.mask.paddus.b.128
+    1, // llvm.x86.avx512.mask.paddus.b.256
+    1, // llvm.x86.avx512.mask.paddus.b.512
+    1, // llvm.x86.avx512.mask.paddus.w.128
+    1, // llvm.x86.avx512.mask.paddus.w.256
+    1, // llvm.x86.avx512.mask.paddus.w.512
+    1, // llvm.x86.avx512.mask.pmov.db.128
+    1, // llvm.x86.avx512.mask.pmov.db.256
+    1, // llvm.x86.avx512.mask.pmov.db.512
+    22, // llvm.x86.avx512.mask.pmov.db.mem.128
+    22, // llvm.x86.avx512.mask.pmov.db.mem.256
+    22, // llvm.x86.avx512.mask.pmov.db.mem.512
+    1, // llvm.x86.avx512.mask.pmov.dw.128
+    1, // llvm.x86.avx512.mask.pmov.dw.256
+    1, // llvm.x86.avx512.mask.pmov.dw.512
+    22, // llvm.x86.avx512.mask.pmov.dw.mem.128
+    22, // llvm.x86.avx512.mask.pmov.dw.mem.256
+    22, // llvm.x86.avx512.mask.pmov.dw.mem.512
+    1, // llvm.x86.avx512.mask.pmov.qb.128
+    1, // llvm.x86.avx512.mask.pmov.qb.256
+    1, // llvm.x86.avx512.mask.pmov.qb.512
+    22, // llvm.x86.avx512.mask.pmov.qb.mem.128
+    22, // llvm.x86.avx512.mask.pmov.qb.mem.256
+    22, // llvm.x86.avx512.mask.pmov.qb.mem.512
+    1, // llvm.x86.avx512.mask.pmov.qd.128
+    1, // llvm.x86.avx512.mask.pmov.qd.256
+    1, // llvm.x86.avx512.mask.pmov.qd.512
+    22, // llvm.x86.avx512.mask.pmov.qd.mem.128
+    22, // llvm.x86.avx512.mask.pmov.qd.mem.256
+    22, // llvm.x86.avx512.mask.pmov.qd.mem.512
+    1, // llvm.x86.avx512.mask.pmov.qw.128
+    1, // llvm.x86.avx512.mask.pmov.qw.256
+    1, // llvm.x86.avx512.mask.pmov.qw.512
+    22, // llvm.x86.avx512.mask.pmov.qw.mem.128
+    22, // llvm.x86.avx512.mask.pmov.qw.mem.256
+    22, // llvm.x86.avx512.mask.pmov.qw.mem.512
+    1, // llvm.x86.avx512.mask.pmov.wb.128
+    1, // llvm.x86.avx512.mask.pmov.wb.256
+    1, // llvm.x86.avx512.mask.pmov.wb.512
+    22, // llvm.x86.avx512.mask.pmov.wb.mem.128
+    22, // llvm.x86.avx512.mask.pmov.wb.mem.256
+    22, // llvm.x86.avx512.mask.pmov.wb.mem.512
+    1, // llvm.x86.avx512.mask.pmovs.db.128
+    1, // llvm.x86.avx512.mask.pmovs.db.256
+    1, // llvm.x86.avx512.mask.pmovs.db.512
+    22, // llvm.x86.avx512.mask.pmovs.db.mem.128
+    22, // llvm.x86.avx512.mask.pmovs.db.mem.256
+    22, // llvm.x86.avx512.mask.pmovs.db.mem.512
+    1, // llvm.x86.avx512.mask.pmovs.dw.128
+    1, // llvm.x86.avx512.mask.pmovs.dw.256
+    1, // llvm.x86.avx512.mask.pmovs.dw.512
+    22, // llvm.x86.avx512.mask.pmovs.dw.mem.128
+    22, // llvm.x86.avx512.mask.pmovs.dw.mem.256
+    22, // llvm.x86.avx512.mask.pmovs.dw.mem.512
+    1, // llvm.x86.avx512.mask.pmovs.qb.128
+    1, // llvm.x86.avx512.mask.pmovs.qb.256
+    1, // llvm.x86.avx512.mask.pmovs.qb.512
+    22, // llvm.x86.avx512.mask.pmovs.qb.mem.128
+    22, // llvm.x86.avx512.mask.pmovs.qb.mem.256
+    22, // llvm.x86.avx512.mask.pmovs.qb.mem.512
+    1, // llvm.x86.avx512.mask.pmovs.qd.128
+    1, // llvm.x86.avx512.mask.pmovs.qd.256
+    1, // llvm.x86.avx512.mask.pmovs.qd.512
+    22, // llvm.x86.avx512.mask.pmovs.qd.mem.128
+    22, // llvm.x86.avx512.mask.pmovs.qd.mem.256
+    22, // llvm.x86.avx512.mask.pmovs.qd.mem.512
+    1, // llvm.x86.avx512.mask.pmovs.qw.128
+    1, // llvm.x86.avx512.mask.pmovs.qw.256
+    1, // llvm.x86.avx512.mask.pmovs.qw.512
+    22, // llvm.x86.avx512.mask.pmovs.qw.mem.128
+    22, // llvm.x86.avx512.mask.pmovs.qw.mem.256
+    22, // llvm.x86.avx512.mask.pmovs.qw.mem.512
+    1, // llvm.x86.avx512.mask.pmovs.wb.128
+    1, // llvm.x86.avx512.mask.pmovs.wb.256
+    1, // llvm.x86.avx512.mask.pmovs.wb.512
+    22, // llvm.x86.avx512.mask.pmovs.wb.mem.128
+    22, // llvm.x86.avx512.mask.pmovs.wb.mem.256
+    22, // llvm.x86.avx512.mask.pmovs.wb.mem.512
+    1, // llvm.x86.avx512.mask.pmovus.db.128
+    1, // llvm.x86.avx512.mask.pmovus.db.256
+    1, // llvm.x86.avx512.mask.pmovus.db.512
+    22, // llvm.x86.avx512.mask.pmovus.db.mem.128
+    22, // llvm.x86.avx512.mask.pmovus.db.mem.256
+    22, // llvm.x86.avx512.mask.pmovus.db.mem.512
+    1, // llvm.x86.avx512.mask.pmovus.dw.128
+    1, // llvm.x86.avx512.mask.pmovus.dw.256
+    1, // llvm.x86.avx512.mask.pmovus.dw.512
+    22, // llvm.x86.avx512.mask.pmovus.dw.mem.128
+    22, // llvm.x86.avx512.mask.pmovus.dw.mem.256
+    22, // llvm.x86.avx512.mask.pmovus.dw.mem.512
+    1, // llvm.x86.avx512.mask.pmovus.qb.128
+    1, // llvm.x86.avx512.mask.pmovus.qb.256
+    1, // llvm.x86.avx512.mask.pmovus.qb.512
+    22, // llvm.x86.avx512.mask.pmovus.qb.mem.128
+    22, // llvm.x86.avx512.mask.pmovus.qb.mem.256
+    22, // llvm.x86.avx512.mask.pmovus.qb.mem.512
+    1, // llvm.x86.avx512.mask.pmovus.qd.128
+    1, // llvm.x86.avx512.mask.pmovus.qd.256
+    1, // llvm.x86.avx512.mask.pmovus.qd.512
+    22, // llvm.x86.avx512.mask.pmovus.qd.mem.128
+    22, // llvm.x86.avx512.mask.pmovus.qd.mem.256
+    22, // llvm.x86.avx512.mask.pmovus.qd.mem.512
+    1, // llvm.x86.avx512.mask.pmovus.qw.128
+    1, // llvm.x86.avx512.mask.pmovus.qw.256
+    1, // llvm.x86.avx512.mask.pmovus.qw.512
+    22, // llvm.x86.avx512.mask.pmovus.qw.mem.128
+    22, // llvm.x86.avx512.mask.pmovus.qw.mem.256
+    22, // llvm.x86.avx512.mask.pmovus.qw.mem.512
+    1, // llvm.x86.avx512.mask.pmovus.wb.128
+    1, // llvm.x86.avx512.mask.pmovus.wb.256
+    1, // llvm.x86.avx512.mask.pmovus.wb.512
+    22, // llvm.x86.avx512.mask.pmovus.wb.mem.128
+    22, // llvm.x86.avx512.mask.pmovus.wb.mem.256
+    22, // llvm.x86.avx512.mask.pmovus.wb.mem.512
+    1, // llvm.x86.avx512.mask.pmultishift.qb.128
+    1, // llvm.x86.avx512.mask.pmultishift.qb.256
+    1, // llvm.x86.avx512.mask.pmultishift.qb.512
+    1, // llvm.x86.avx512.mask.psubs.b.128
+    1, // llvm.x86.avx512.mask.psubs.b.256
+    1, // llvm.x86.avx512.mask.psubs.b.512
+    1, // llvm.x86.avx512.mask.psubs.w.128
+    1, // llvm.x86.avx512.mask.psubs.w.256
+    1, // llvm.x86.avx512.mask.psubs.w.512
+    1, // llvm.x86.avx512.mask.psubus.b.128
+    1, // llvm.x86.avx512.mask.psubus.b.256
+    1, // llvm.x86.avx512.mask.psubus.b.512
+    1, // llvm.x86.avx512.mask.psubus.w.128
+    1, // llvm.x86.avx512.mask.psubus.w.256
+    1, // llvm.x86.avx512.mask.psubus.w.512
+    1, // llvm.x86.avx512.mask.range.pd.128
+    1, // llvm.x86.avx512.mask.range.pd.256
+    1, // llvm.x86.avx512.mask.range.pd.512
+    1, // llvm.x86.avx512.mask.range.ps.128
+    1, // llvm.x86.avx512.mask.range.ps.256
+    1, // llvm.x86.avx512.mask.range.ps.512
+    1, // llvm.x86.avx512.mask.range.sd
+    1, // llvm.x86.avx512.mask.range.ss
+    1, // llvm.x86.avx512.mask.reduce.pd.128
+    1, // llvm.x86.avx512.mask.reduce.pd.256
+    1, // llvm.x86.avx512.mask.reduce.pd.512
+    1, // llvm.x86.avx512.mask.reduce.ps.128
+    1, // llvm.x86.avx512.mask.reduce.ps.256
+    1, // llvm.x86.avx512.mask.reduce.ps.512
+    1, // llvm.x86.avx512.mask.reduce.sd
+    1, // llvm.x86.avx512.mask.reduce.ss
+    1, // llvm.x86.avx512.mask.rndscale.pd.128
+    1, // llvm.x86.avx512.mask.rndscale.pd.256
+    1, // llvm.x86.avx512.mask.rndscale.pd.512
+    1, // llvm.x86.avx512.mask.rndscale.ps.128
+    1, // llvm.x86.avx512.mask.rndscale.ps.256
+    1, // llvm.x86.avx512.mask.rndscale.ps.512
+    1, // llvm.x86.avx512.mask.rndscale.sd
+    1, // llvm.x86.avx512.mask.rndscale.ss
+    1, // llvm.x86.avx512.mask.scalef.pd.128
+    1, // llvm.x86.avx512.mask.scalef.pd.256
+    1, // llvm.x86.avx512.mask.scalef.pd.512
+    1, // llvm.x86.avx512.mask.scalef.ps.128
+    1, // llvm.x86.avx512.mask.scalef.ps.256
+    1, // llvm.x86.avx512.mask.scalef.ps.512
+    1, // llvm.x86.avx512.mask.scalef.sd
+    1, // llvm.x86.avx512.mask.scalef.ss
+    1, // llvm.x86.avx512.mask.sqrt.sd
+    1, // llvm.x86.avx512.mask.sqrt.ss
+    1, // llvm.x86.avx512.mask.sub.sd.round
+    1, // llvm.x86.avx512.mask.sub.ss.round
+    1, // llvm.x86.avx512.mask.vcvtph2ps.128
+    1, // llvm.x86.avx512.mask.vcvtph2ps.256
+    1, // llvm.x86.avx512.mask.vcvtph2ps.512
+    1, // llvm.x86.avx512.mask.vcvtps2ph.128
+    1, // llvm.x86.avx512.mask.vcvtps2ph.256
+    1, // llvm.x86.avx512.mask.vcvtps2ph.512
+    1, // llvm.x86.avx512.mask.vpshldv.d.128
+    1, // llvm.x86.avx512.mask.vpshldv.d.256
+    1, // llvm.x86.avx512.mask.vpshldv.d.512
+    1, // llvm.x86.avx512.mask.vpshldv.q.128
+    1, // llvm.x86.avx512.mask.vpshldv.q.256
+    1, // llvm.x86.avx512.mask.vpshldv.q.512
+    1, // llvm.x86.avx512.mask.vpshldv.w.128
+    1, // llvm.x86.avx512.mask.vpshldv.w.256
+    1, // llvm.x86.avx512.mask.vpshldv.w.512
+    1, // llvm.x86.avx512.mask.vpshrdv.d.128
+    1, // llvm.x86.avx512.mask.vpshrdv.d.256
+    1, // llvm.x86.avx512.mask.vpshrdv.d.512
+    1, // llvm.x86.avx512.mask.vpshrdv.q.128
+    1, // llvm.x86.avx512.mask.vpshrdv.q.256
+    1, // llvm.x86.avx512.mask.vpshrdv.q.512
+    1, // llvm.x86.avx512.mask.vpshrdv.w.128
+    1, // llvm.x86.avx512.mask.vpshrdv.w.256
+    1, // llvm.x86.avx512.mask.vpshrdv.w.512
+    1, // llvm.x86.avx512.mask.vpshufbitqmb.128
+    1, // llvm.x86.avx512.mask.vpshufbitqmb.256
+    1, // llvm.x86.avx512.mask.vpshufbitqmb.512
+    1, // llvm.x86.avx512.maskz.fixupimm.pd.128
+    1, // llvm.x86.avx512.maskz.fixupimm.pd.256
+    1, // llvm.x86.avx512.maskz.fixupimm.pd.512
+    1, // llvm.x86.avx512.maskz.fixupimm.ps.128
+    1, // llvm.x86.avx512.maskz.fixupimm.ps.256
+    1, // llvm.x86.avx512.maskz.fixupimm.ps.512
+    1, // llvm.x86.avx512.maskz.fixupimm.sd
+    1, // llvm.x86.avx512.maskz.fixupimm.ss
+    1, // llvm.x86.avx512.maskz.vpshldv.d.128
+    1, // llvm.x86.avx512.maskz.vpshldv.d.256
+    1, // llvm.x86.avx512.maskz.vpshldv.d.512
+    1, // llvm.x86.avx512.maskz.vpshldv.q.128
+    1, // llvm.x86.avx512.maskz.vpshldv.q.256
+    1, // llvm.x86.avx512.maskz.vpshldv.q.512
+    1, // llvm.x86.avx512.maskz.vpshldv.w.128
+    1, // llvm.x86.avx512.maskz.vpshldv.w.256
+    1, // llvm.x86.avx512.maskz.vpshldv.w.512
+    1, // llvm.x86.avx512.maskz.vpshrdv.d.128
+    1, // llvm.x86.avx512.maskz.vpshrdv.d.256
+    1, // llvm.x86.avx512.maskz.vpshrdv.d.512
+    1, // llvm.x86.avx512.maskz.vpshrdv.q.128
+    1, // llvm.x86.avx512.maskz.vpshrdv.q.256
+    1, // llvm.x86.avx512.maskz.vpshrdv.q.512
+    1, // llvm.x86.avx512.maskz.vpshrdv.w.128
+    1, // llvm.x86.avx512.maskz.vpshrdv.w.256
+    1, // llvm.x86.avx512.maskz.vpshrdv.w.512
+    1, // llvm.x86.avx512.max.pd.512
+    1, // llvm.x86.avx512.max.ps.512
+    1, // llvm.x86.avx512.min.pd.512
+    1, // llvm.x86.avx512.min.ps.512
+    1, // llvm.x86.avx512.mul.pd.512
+    1, // llvm.x86.avx512.mul.ps.512
+    1, // llvm.x86.avx512.packssdw.512
+    1, // llvm.x86.avx512.packsswb.512
+    1, // llvm.x86.avx512.packusdw.512
+    1, // llvm.x86.avx512.packuswb.512
+    1, // llvm.x86.avx512.permvar.df.256
+    1, // llvm.x86.avx512.permvar.df.512
+    1, // llvm.x86.avx512.permvar.di.256
+    1, // llvm.x86.avx512.permvar.di.512
+    1, // llvm.x86.avx512.permvar.hi.128
+    1, // llvm.x86.avx512.permvar.hi.256
+    1, // llvm.x86.avx512.permvar.hi.512
+    1, // llvm.x86.avx512.permvar.qi.128
+    1, // llvm.x86.avx512.permvar.qi.256
+    1, // llvm.x86.avx512.permvar.qi.512
+    1, // llvm.x86.avx512.permvar.sf.512
+    1, // llvm.x86.avx512.permvar.si.512
+    1, // llvm.x86.avx512.pmaddubs.w.512
+    1, // llvm.x86.avx512.pmaddw.d.512
+    1, // llvm.x86.avx512.pmul.hr.sw.512
+    1, // llvm.x86.avx512.pmulh.w.512
+    1, // llvm.x86.avx512.pmulhu.w.512
+    1, // llvm.x86.avx512.prol.d.128
+    1, // llvm.x86.avx512.prol.d.256
+    1, // llvm.x86.avx512.prol.d.512
+    1, // llvm.x86.avx512.prol.q.128
+    1, // llvm.x86.avx512.prol.q.256
+    1, // llvm.x86.avx512.prol.q.512
+    1, // llvm.x86.avx512.prolv.d.128
+    1, // llvm.x86.avx512.prolv.d.256
+    1, // llvm.x86.avx512.prolv.d.512
+    1, // llvm.x86.avx512.prolv.q.128
+    1, // llvm.x86.avx512.prolv.q.256
+    1, // llvm.x86.avx512.prolv.q.512
+    1, // llvm.x86.avx512.pror.d.128
+    1, // llvm.x86.avx512.pror.d.256
+    1, // llvm.x86.avx512.pror.d.512
+    1, // llvm.x86.avx512.pror.q.128
+    1, // llvm.x86.avx512.pror.q.256
+    1, // llvm.x86.avx512.pror.q.512
+    1, // llvm.x86.avx512.prorv.d.128
+    1, // llvm.x86.avx512.prorv.d.256
+    1, // llvm.x86.avx512.prorv.d.512
+    1, // llvm.x86.avx512.prorv.q.128
+    1, // llvm.x86.avx512.prorv.q.256
+    1, // llvm.x86.avx512.prorv.q.512
+    1, // llvm.x86.avx512.psad.bw.512
+    1, // llvm.x86.avx512.pshuf.b.512
+    1, // llvm.x86.avx512.psll.d.512
+    1, // llvm.x86.avx512.psll.q.512
+    1, // llvm.x86.avx512.psll.w.512
+    1, // llvm.x86.avx512.pslli.d.512
+    1, // llvm.x86.avx512.pslli.q.512
+    1, // llvm.x86.avx512.pslli.w.512
+    1, // llvm.x86.avx512.psllv.d.512
+    1, // llvm.x86.avx512.psllv.q.512
+    1, // llvm.x86.avx512.psllv.w.128
+    1, // llvm.x86.avx512.psllv.w.256
+    1, // llvm.x86.avx512.psllv.w.512
+    1, // llvm.x86.avx512.psra.d.512
+    1, // llvm.x86.avx512.psra.q.128
+    1, // llvm.x86.avx512.psra.q.256
+    1, // llvm.x86.avx512.psra.q.512
+    1, // llvm.x86.avx512.psra.w.512
+    1, // llvm.x86.avx512.psrai.d.512
+    1, // llvm.x86.avx512.psrai.q.128
+    1, // llvm.x86.avx512.psrai.q.256
+    1, // llvm.x86.avx512.psrai.q.512
+    1, // llvm.x86.avx512.psrai.w.512
+    1, // llvm.x86.avx512.psrav.d.512
+    1, // llvm.x86.avx512.psrav.q.128
+    1, // llvm.x86.avx512.psrav.q.256
+    1, // llvm.x86.avx512.psrav.q.512
+    1, // llvm.x86.avx512.psrav.w.128
+    1, // llvm.x86.avx512.psrav.w.256
+    1, // llvm.x86.avx512.psrav.w.512
+    1, // llvm.x86.avx512.psrl.d.512
+    1, // llvm.x86.avx512.psrl.q.512
+    1, // llvm.x86.avx512.psrl.w.512
+    1, // llvm.x86.avx512.psrli.d.512
+    1, // llvm.x86.avx512.psrli.q.512
+    1, // llvm.x86.avx512.psrli.w.512
+    1, // llvm.x86.avx512.psrlv.d.512
+    1, // llvm.x86.avx512.psrlv.q.512
+    1, // llvm.x86.avx512.psrlv.w.128
+    1, // llvm.x86.avx512.psrlv.w.256
+    1, // llvm.x86.avx512.psrlv.w.512
+    1, // llvm.x86.avx512.pternlog.d.128
+    1, // llvm.x86.avx512.pternlog.d.256
+    1, // llvm.x86.avx512.pternlog.d.512
+    1, // llvm.x86.avx512.pternlog.q.128
+    1, // llvm.x86.avx512.pternlog.q.256
+    1, // llvm.x86.avx512.pternlog.q.512
+    1, // llvm.x86.avx512.rcp14.pd.128
+    1, // llvm.x86.avx512.rcp14.pd.256
+    1, // llvm.x86.avx512.rcp14.pd.512
+    1, // llvm.x86.avx512.rcp14.ps.128
+    1, // llvm.x86.avx512.rcp14.ps.256
+    1, // llvm.x86.avx512.rcp14.ps.512
+    1, // llvm.x86.avx512.rcp14.sd
+    1, // llvm.x86.avx512.rcp14.ss
+    1, // llvm.x86.avx512.rcp28.pd
+    1, // llvm.x86.avx512.rcp28.ps
+    1, // llvm.x86.avx512.rcp28.sd
+    1, // llvm.x86.avx512.rcp28.ss
+    1, // llvm.x86.avx512.rsqrt14.pd.128
+    1, // llvm.x86.avx512.rsqrt14.pd.256
+    1, // llvm.x86.avx512.rsqrt14.pd.512
+    1, // llvm.x86.avx512.rsqrt14.ps.128
+    1, // llvm.x86.avx512.rsqrt14.ps.256
+    1, // llvm.x86.avx512.rsqrt14.ps.512
+    1, // llvm.x86.avx512.rsqrt14.sd
+    1, // llvm.x86.avx512.rsqrt14.ss
+    1, // llvm.x86.avx512.rsqrt28.pd
+    1, // llvm.x86.avx512.rsqrt28.ps
+    1, // llvm.x86.avx512.rsqrt28.sd
+    1, // llvm.x86.avx512.rsqrt28.ss
+    22, // llvm.x86.avx512.scatter.dpd.512
+    22, // llvm.x86.avx512.scatter.dpi.512
+    22, // llvm.x86.avx512.scatter.dpq.512
+    22, // llvm.x86.avx512.scatter.dps.512
+    22, // llvm.x86.avx512.scatter.qpd.512
+    22, // llvm.x86.avx512.scatter.qpi.512
+    22, // llvm.x86.avx512.scatter.qpq.512
+    22, // llvm.x86.avx512.scatter.qps.512
+    22, // llvm.x86.avx512.scatterdiv2.df
+    22, // llvm.x86.avx512.scatterdiv2.di
+    22, // llvm.x86.avx512.scatterdiv4.df
+    22, // llvm.x86.avx512.scatterdiv4.di
+    22, // llvm.x86.avx512.scatterdiv4.sf
+    22, // llvm.x86.avx512.scatterdiv4.si
+    22, // llvm.x86.avx512.scatterdiv8.sf
+    22, // llvm.x86.avx512.scatterdiv8.si
+    22, // llvm.x86.avx512.scatterpf.dpd.512
+    22, // llvm.x86.avx512.scatterpf.dps.512
+    22, // llvm.x86.avx512.scatterpf.qpd.512
+    22, // llvm.x86.avx512.scatterpf.qps.512
+    22, // llvm.x86.avx512.scattersiv2.df
+    22, // llvm.x86.avx512.scattersiv2.di
+    22, // llvm.x86.avx512.scattersiv4.df
+    22, // llvm.x86.avx512.scattersiv4.di
+    22, // llvm.x86.avx512.scattersiv4.sf
+    22, // llvm.x86.avx512.scattersiv4.si
+    22, // llvm.x86.avx512.scattersiv8.sf
+    22, // llvm.x86.avx512.scattersiv8.si
+    1, // llvm.x86.avx512.sqrt.pd.512
+    1, // llvm.x86.avx512.sqrt.ps.512
+    1, // llvm.x86.avx512.sub.pd.512
+    1, // llvm.x86.avx512.sub.ps.512
+    1, // llvm.x86.avx512.vcomi.sd
+    1, // llvm.x86.avx512.vcomi.ss
+    1, // llvm.x86.avx512.vcvtsd2si32
+    1, // llvm.x86.avx512.vcvtsd2si64
+    1, // llvm.x86.avx512.vcvtsd2usi32
+    1, // llvm.x86.avx512.vcvtsd2usi64
+    1, // llvm.x86.avx512.vcvtss2si32
+    1, // llvm.x86.avx512.vcvtss2si64
+    1, // llvm.x86.avx512.vcvtss2usi32
+    1, // llvm.x86.avx512.vcvtss2usi64
+    1, // llvm.x86.avx512.vfmadd.f32
+    1, // llvm.x86.avx512.vfmadd.f64
+    1, // llvm.x86.avx512.vfmadd.pd.512
+    1, // llvm.x86.avx512.vfmadd.ps.512
+    1, // llvm.x86.avx512.vfmaddsub.pd.512
+    1, // llvm.x86.avx512.vfmaddsub.ps.512
+    1, // llvm.x86.avx512.vpdpbusd.128
+    1, // llvm.x86.avx512.vpdpbusd.256
+    1, // llvm.x86.avx512.vpdpbusd.512
+    1, // llvm.x86.avx512.vpdpbusds.128
+    1, // llvm.x86.avx512.vpdpbusds.256
+    1, // llvm.x86.avx512.vpdpbusds.512
+    1, // llvm.x86.avx512.vpdpwssd.128
+    1, // llvm.x86.avx512.vpdpwssd.256
+    1, // llvm.x86.avx512.vpdpwssd.512
+    1, // llvm.x86.avx512.vpdpwssds.128
+    1, // llvm.x86.avx512.vpdpwssds.256
+    1, // llvm.x86.avx512.vpdpwssds.512
+    1, // llvm.x86.avx512.vpermi2var.d.128
+    1, // llvm.x86.avx512.vpermi2var.d.256
+    1, // llvm.x86.avx512.vpermi2var.d.512
+    1, // llvm.x86.avx512.vpermi2var.hi.128
+    1, // llvm.x86.avx512.vpermi2var.hi.256
+    1, // llvm.x86.avx512.vpermi2var.hi.512
+    1, // llvm.x86.avx512.vpermi2var.pd.128
+    1, // llvm.x86.avx512.vpermi2var.pd.256
+    1, // llvm.x86.avx512.vpermi2var.pd.512
+    1, // llvm.x86.avx512.vpermi2var.ps.128
+    1, // llvm.x86.avx512.vpermi2var.ps.256
+    1, // llvm.x86.avx512.vpermi2var.ps.512
+    1, // llvm.x86.avx512.vpermi2var.q.128
+    1, // llvm.x86.avx512.vpermi2var.q.256
+    1, // llvm.x86.avx512.vpermi2var.q.512
+    1, // llvm.x86.avx512.vpermi2var.qi.128
+    1, // llvm.x86.avx512.vpermi2var.qi.256
+    1, // llvm.x86.avx512.vpermi2var.qi.512
+    1, // llvm.x86.avx512.vpermilvar.pd.512
+    1, // llvm.x86.avx512.vpermilvar.ps.512
+    1, // llvm.x86.avx512.vpmadd52h.uq.128
+    1, // llvm.x86.avx512.vpmadd52h.uq.256
+    1, // llvm.x86.avx512.vpmadd52h.uq.512
+    1, // llvm.x86.avx512.vpmadd52l.uq.128
+    1, // llvm.x86.avx512.vpmadd52l.uq.256
+    1, // llvm.x86.avx512.vpmadd52l.uq.512
+    1, // llvm.x86.avx512.vpshld.d.128
+    1, // llvm.x86.avx512.vpshld.d.256
+    1, // llvm.x86.avx512.vpshld.d.512
+    1, // llvm.x86.avx512.vpshld.q.128
+    1, // llvm.x86.avx512.vpshld.q.256
+    1, // llvm.x86.avx512.vpshld.q.512
+    1, // llvm.x86.avx512.vpshld.w.128
+    1, // llvm.x86.avx512.vpshld.w.256
+    1, // llvm.x86.avx512.vpshld.w.512
+    1, // llvm.x86.avx512.vpshrd.d.128
+    1, // llvm.x86.avx512.vpshrd.d.256
+    1, // llvm.x86.avx512.vpshrd.d.512
+    1, // llvm.x86.avx512.vpshrd.q.128
+    1, // llvm.x86.avx512.vpshrd.q.256
+    1, // llvm.x86.avx512.vpshrd.q.512
+    1, // llvm.x86.avx512.vpshrd.w.128
+    1, // llvm.x86.avx512.vpshrd.w.256
+    1, // llvm.x86.avx512.vpshrd.w.512
+    1, // llvm.x86.bmi.bextr.32
+    1, // llvm.x86.bmi.bextr.64
+    1, // llvm.x86.bmi.bzhi.32
+    1, // llvm.x86.bmi.bzhi.64
+    1, // llvm.x86.bmi.pdep.32
+    1, // llvm.x86.bmi.pdep.64
+    1, // llvm.x86.bmi.pext.32
+    1, // llvm.x86.bmi.pext.64
+    3, // llvm.x86.cldemote
+    3, // llvm.x86.clflushopt
+    3, // llvm.x86.clrssbsy
+    3, // llvm.x86.clwb
+    3, // llvm.x86.clzero
+    3, // llvm.x86.directstore32
+    3, // llvm.x86.directstore64
+    3, // llvm.x86.flags.read.u32
+    3, // llvm.x86.flags.read.u64
+    3, // llvm.x86.flags.write.u32
+    3, // llvm.x86.flags.write.u64
+    3, // llvm.x86.fxrstor
+    3, // llvm.x86.fxrstor64
+    3, // llvm.x86.fxsave
+    3, // llvm.x86.fxsave64
+    3, // llvm.x86.incsspd
+    3, // llvm.x86.incsspq
+    3, // llvm.x86.int
+    3, // llvm.x86.invpcid
+    3, // llvm.x86.llwpcb
+    3, // llvm.x86.lwpins32
+    3, // llvm.x86.lwpins64
+    3, // llvm.x86.lwpval32
+    3, // llvm.x86.lwpval64
+    3, // llvm.x86.mmx.emms
+    3, // llvm.x86.mmx.femms
+    3, // llvm.x86.mmx.maskmovq
+    3, // llvm.x86.mmx.movnt.dq
+    1, // llvm.x86.mmx.packssdw
+    1, // llvm.x86.mmx.packsswb
+    1, // llvm.x86.mmx.packuswb
+    1, // llvm.x86.mmx.padd.b
+    1, // llvm.x86.mmx.padd.d
+    1, // llvm.x86.mmx.padd.q
+    1, // llvm.x86.mmx.padd.w
+    1, // llvm.x86.mmx.padds.b
+    1, // llvm.x86.mmx.padds.w
+    1, // llvm.x86.mmx.paddus.b
+    1, // llvm.x86.mmx.paddus.w
+    1, // llvm.x86.mmx.palignr.b
+    1, // llvm.x86.mmx.pand
+    1, // llvm.x86.mmx.pandn
+    1, // llvm.x86.mmx.pavg.b
+    1, // llvm.x86.mmx.pavg.w
+    1, // llvm.x86.mmx.pcmpeq.b
+    1, // llvm.x86.mmx.pcmpeq.d
+    1, // llvm.x86.mmx.pcmpeq.w
+    1, // llvm.x86.mmx.pcmpgt.b
+    1, // llvm.x86.mmx.pcmpgt.d
+    1, // llvm.x86.mmx.pcmpgt.w
+    1, // llvm.x86.mmx.pextr.w
+    1, // llvm.x86.mmx.pinsr.w
+    1, // llvm.x86.mmx.pmadd.wd
+    1, // llvm.x86.mmx.pmaxs.w
+    1, // llvm.x86.mmx.pmaxu.b
+    1, // llvm.x86.mmx.pmins.w
+    1, // llvm.x86.mmx.pminu.b
+    1, // llvm.x86.mmx.pmovmskb
+    1, // llvm.x86.mmx.pmulh.w
+    1, // llvm.x86.mmx.pmulhu.w
+    1, // llvm.x86.mmx.pmull.w
+    1, // llvm.x86.mmx.pmulu.dq
+    1, // llvm.x86.mmx.por
+    1, // llvm.x86.mmx.psad.bw
+    1, // llvm.x86.mmx.psll.d
+    1, // llvm.x86.mmx.psll.q
+    1, // llvm.x86.mmx.psll.w
+    1, // llvm.x86.mmx.pslli.d
+    1, // llvm.x86.mmx.pslli.q
+    1, // llvm.x86.mmx.pslli.w
+    1, // llvm.x86.mmx.psra.d
+    1, // llvm.x86.mmx.psra.w
+    1, // llvm.x86.mmx.psrai.d
+    1, // llvm.x86.mmx.psrai.w
+    1, // llvm.x86.mmx.psrl.d
+    1, // llvm.x86.mmx.psrl.q
+    1, // llvm.x86.mmx.psrl.w
+    1, // llvm.x86.mmx.psrli.d
+    1, // llvm.x86.mmx.psrli.q
+    1, // llvm.x86.mmx.psrli.w
+    1, // llvm.x86.mmx.psub.b
+    1, // llvm.x86.mmx.psub.d
+    1, // llvm.x86.mmx.psub.q
+    1, // llvm.x86.mmx.psub.w
+    1, // llvm.x86.mmx.psubs.b
+    1, // llvm.x86.mmx.psubs.w
+    1, // llvm.x86.mmx.psubus.b
+    1, // llvm.x86.mmx.psubus.w
+    1, // llvm.x86.mmx.punpckhbw
+    1, // llvm.x86.mmx.punpckhdq
+    1, // llvm.x86.mmx.punpckhwd
+    1, // llvm.x86.mmx.punpcklbw
+    1, // llvm.x86.mmx.punpckldq
+    1, // llvm.x86.mmx.punpcklwd
+    1, // llvm.x86.mmx.pxor
+    3, // llvm.x86.monitorx
+    3, // llvm.x86.movdir64b
+    3, // llvm.x86.mwaitx
+    1, // llvm.x86.pclmulqdq
+    1, // llvm.x86.pclmulqdq.256
+    1, // llvm.x86.pclmulqdq.512
+    3, // llvm.x86.ptwrite32
+    3, // llvm.x86.ptwrite64
+    3, // llvm.x86.rdfsbase.32
+    3, // llvm.x86.rdfsbase.64
+    3, // llvm.x86.rdgsbase.32
+    3, // llvm.x86.rdgsbase.64
+    3, // llvm.x86.rdpid
+    3, // llvm.x86.rdpkru
+    3, // llvm.x86.rdpmc
+    3, // llvm.x86.rdrand.16
+    3, // llvm.x86.rdrand.32
+    3, // llvm.x86.rdrand.64
+    3, // llvm.x86.rdseed.16
+    3, // llvm.x86.rdseed.32
+    3, // llvm.x86.rdseed.64
+    3, // llvm.x86.rdsspd
+    3, // llvm.x86.rdsspq
+    3, // llvm.x86.rdtsc
+    22, // llvm.x86.rdtscp
+    3, // llvm.x86.rstorssp
+    3, // llvm.x86.saveprevssp
+    3, // llvm.x86.seh.ehguard
+    3, // llvm.x86.seh.ehregnode
+    1, // llvm.x86.seh.lsda
+    1, // llvm.x86.seh.recoverfp
+    3, // llvm.x86.setssbsy
+    1, // llvm.x86.sha1msg1
+    1, // llvm.x86.sha1msg2
+    1, // llvm.x86.sha1nexte
+    1, // llvm.x86.sha1rnds4
+    1, // llvm.x86.sha256msg1
+    1, // llvm.x86.sha256msg2
+    1, // llvm.x86.sha256rnds2
+    3, // llvm.x86.slwpcb
+    1, // llvm.x86.sse.cmp.ps
+    1, // llvm.x86.sse.cmp.ss
+    1, // llvm.x86.sse.comieq.ss
+    1, // llvm.x86.sse.comige.ss
+    1, // llvm.x86.sse.comigt.ss
+    1, // llvm.x86.sse.comile.ss
+    1, // llvm.x86.sse.comilt.ss
+    1, // llvm.x86.sse.comineq.ss
+    1, // llvm.x86.sse.cvtpd2pi
+    1, // llvm.x86.sse.cvtpi2pd
+    1, // llvm.x86.sse.cvtpi2ps
+    1, // llvm.x86.sse.cvtps2pi
+    1, // llvm.x86.sse.cvtss2si
+    1, // llvm.x86.sse.cvtss2si64
+    1, // llvm.x86.sse.cvttpd2pi
+    1, // llvm.x86.sse.cvttps2pi
+    1, // llvm.x86.sse.cvttss2si
+    1, // llvm.x86.sse.cvttss2si64
+    3, // llvm.x86.sse.ldmxcsr
+    1, // llvm.x86.sse.max.ps
+    1, // llvm.x86.sse.max.ss
+    1, // llvm.x86.sse.min.ps
+    1, // llvm.x86.sse.min.ss
+    1, // llvm.x86.sse.movmsk.ps
+    1, // llvm.x86.sse.pshuf.w
+    1, // llvm.x86.sse.rcp.ps
+    1, // llvm.x86.sse.rcp.ss
+    1, // llvm.x86.sse.rsqrt.ps
+    1, // llvm.x86.sse.rsqrt.ss
+    3, // llvm.x86.sse.sfence
+    3, // llvm.x86.sse.stmxcsr
+    1, // llvm.x86.sse.ucomieq.ss
+    1, // llvm.x86.sse.ucomige.ss
+    1, // llvm.x86.sse.ucomigt.ss
+    1, // llvm.x86.sse.ucomile.ss
+    1, // llvm.x86.sse.ucomilt.ss
+    1, // llvm.x86.sse.ucomineq.ss
+    3, // llvm.x86.sse2.clflush
+    1, // llvm.x86.sse2.cmp.pd
+    1, // llvm.x86.sse2.cmp.sd
+    1, // llvm.x86.sse2.comieq.sd
+    1, // llvm.x86.sse2.comige.sd
+    1, // llvm.x86.sse2.comigt.sd
+    1, // llvm.x86.sse2.comile.sd
+    1, // llvm.x86.sse2.comilt.sd
+    1, // llvm.x86.sse2.comineq.sd
+    1, // llvm.x86.sse2.cvtpd2dq
+    1, // llvm.x86.sse2.cvtpd2ps
+    1, // llvm.x86.sse2.cvtps2dq
+    1, // llvm.x86.sse2.cvtsd2si
+    1, // llvm.x86.sse2.cvtsd2si64
+    1, // llvm.x86.sse2.cvtsd2ss
+    1, // llvm.x86.sse2.cvttpd2dq
+    1, // llvm.x86.sse2.cvttps2dq
+    1, // llvm.x86.sse2.cvttsd2si
+    1, // llvm.x86.sse2.cvttsd2si64
+    3, // llvm.x86.sse2.lfence
+    3, // llvm.x86.sse2.maskmov.dqu
+    1, // llvm.x86.sse2.max.pd
+    1, // llvm.x86.sse2.max.sd
+    3, // llvm.x86.sse2.mfence
+    1, // llvm.x86.sse2.min.pd
+    1, // llvm.x86.sse2.min.sd
+    1, // llvm.x86.sse2.movmsk.pd
+    1, // llvm.x86.sse2.packssdw.128
+    1, // llvm.x86.sse2.packsswb.128
+    1, // llvm.x86.sse2.packuswb.128
+    1, // llvm.x86.sse2.padds.b
+    1, // llvm.x86.sse2.padds.w
+    1, // llvm.x86.sse2.paddus.b
+    1, // llvm.x86.sse2.paddus.w
+    3, // llvm.x86.sse2.pause
+    1, // llvm.x86.sse2.pmadd.wd
+    1, // llvm.x86.sse2.pmovmskb.128
+    1, // llvm.x86.sse2.pmulh.w
+    1, // llvm.x86.sse2.pmulhu.w
+    1, // llvm.x86.sse2.psad.bw
+    1, // llvm.x86.sse2.psll.d
+    1, // llvm.x86.sse2.psll.q
+    1, // llvm.x86.sse2.psll.w
+    1, // llvm.x86.sse2.pslli.d
+    1, // llvm.x86.sse2.pslli.q
+    1, // llvm.x86.sse2.pslli.w
+    1, // llvm.x86.sse2.psra.d
+    1, // llvm.x86.sse2.psra.w
+    1, // llvm.x86.sse2.psrai.d
+    1, // llvm.x86.sse2.psrai.w
+    1, // llvm.x86.sse2.psrl.d
+    1, // llvm.x86.sse2.psrl.q
+    1, // llvm.x86.sse2.psrl.w
+    1, // llvm.x86.sse2.psrli.d
+    1, // llvm.x86.sse2.psrli.q
+    1, // llvm.x86.sse2.psrli.w
+    1, // llvm.x86.sse2.psubs.b
+    1, // llvm.x86.sse2.psubs.w
+    1, // llvm.x86.sse2.psubus.b
+    1, // llvm.x86.sse2.psubus.w
+    1, // llvm.x86.sse2.ucomieq.sd
+    1, // llvm.x86.sse2.ucomige.sd
+    1, // llvm.x86.sse2.ucomigt.sd
+    1, // llvm.x86.sse2.ucomile.sd
+    1, // llvm.x86.sse2.ucomilt.sd
+    1, // llvm.x86.sse2.ucomineq.sd
+    1, // llvm.x86.sse3.addsub.pd
+    1, // llvm.x86.sse3.addsub.ps
+    1, // llvm.x86.sse3.hadd.pd
+    1, // llvm.x86.sse3.hadd.ps
+    1, // llvm.x86.sse3.hsub.pd
+    1, // llvm.x86.sse3.hsub.ps
+    16, // llvm.x86.sse3.ldu.dq
+    3, // llvm.x86.sse3.monitor
+    3, // llvm.x86.sse3.mwait
+    1, // llvm.x86.sse41.blendvpd
+    1, // llvm.x86.sse41.blendvps
+    1, // llvm.x86.sse41.dppd
+    1, // llvm.x86.sse41.dpps
+    1, // llvm.x86.sse41.insertps
+    1, // llvm.x86.sse41.mpsadbw
+    1, // llvm.x86.sse41.packusdw
+    1, // llvm.x86.sse41.pblendvb
+    1, // llvm.x86.sse41.phminposuw
+    1, // llvm.x86.sse41.ptestc
+    1, // llvm.x86.sse41.ptestnzc
+    1, // llvm.x86.sse41.ptestz
+    1, // llvm.x86.sse41.round.pd
+    1, // llvm.x86.sse41.round.ps
+    1, // llvm.x86.sse41.round.sd
+    1, // llvm.x86.sse41.round.ss
+    1, // llvm.x86.sse42.crc32.32.16
+    1, // llvm.x86.sse42.crc32.32.32
+    1, // llvm.x86.sse42.crc32.32.8
+    1, // llvm.x86.sse42.crc32.64.64
+    1, // llvm.x86.sse42.pcmpestri128
+    1, // llvm.x86.sse42.pcmpestria128
+    1, // llvm.x86.sse42.pcmpestric128
+    1, // llvm.x86.sse42.pcmpestrio128
+    1, // llvm.x86.sse42.pcmpestris128
+    1, // llvm.x86.sse42.pcmpestriz128
+    1, // llvm.x86.sse42.pcmpestrm128
+    1, // llvm.x86.sse42.pcmpistri128
+    1, // llvm.x86.sse42.pcmpistria128
+    1, // llvm.x86.sse42.pcmpistric128
+    1, // llvm.x86.sse42.pcmpistrio128
+    1, // llvm.x86.sse42.pcmpistris128
+    1, // llvm.x86.sse42.pcmpistriz128
+    1, // llvm.x86.sse42.pcmpistrm128
+    1, // llvm.x86.sse4a.extrq
+    1, // llvm.x86.sse4a.extrqi
+    1, // llvm.x86.sse4a.insertq
+    1, // llvm.x86.sse4a.insertqi
+    1, // llvm.x86.ssse3.pabs.b
+    1, // llvm.x86.ssse3.pabs.d
+    1, // llvm.x86.ssse3.pabs.w
+    1, // llvm.x86.ssse3.phadd.d
+    1, // llvm.x86.ssse3.phadd.d.128
+    1, // llvm.x86.ssse3.phadd.sw
+    1, // llvm.x86.ssse3.phadd.sw.128
+    1, // llvm.x86.ssse3.phadd.w
+    1, // llvm.x86.ssse3.phadd.w.128
+    1, // llvm.x86.ssse3.phsub.d
+    1, // llvm.x86.ssse3.phsub.d.128
+    1, // llvm.x86.ssse3.phsub.sw
+    1, // llvm.x86.ssse3.phsub.sw.128
+    1, // llvm.x86.ssse3.phsub.w
+    1, // llvm.x86.ssse3.phsub.w.128
+    1, // llvm.x86.ssse3.pmadd.ub.sw
+    1, // llvm.x86.ssse3.pmadd.ub.sw.128
+    1, // llvm.x86.ssse3.pmul.hr.sw
+    1, // llvm.x86.ssse3.pmul.hr.sw.128
+    1, // llvm.x86.ssse3.pshuf.b
+    1, // llvm.x86.ssse3.pshuf.b.128
+    1, // llvm.x86.ssse3.psign.b
+    1, // llvm.x86.ssse3.psign.b.128
+    1, // llvm.x86.ssse3.psign.d
+    1, // llvm.x86.ssse3.psign.d.128
+    1, // llvm.x86.ssse3.psign.w
+    1, // llvm.x86.ssse3.psign.w.128
+    22, // llvm.x86.subborrow.u32
+    22, // llvm.x86.subborrow.u64
+    1, // llvm.x86.tbm.bextri.u32
+    1, // llvm.x86.tbm.bextri.u64
+    3, // llvm.x86.tpause
+    3, // llvm.x86.umonitor
+    3, // llvm.x86.umwait
+    1, // llvm.x86.vcvtph2ps.128
+    1, // llvm.x86.vcvtph2ps.256
+    1, // llvm.x86.vcvtps2ph.128
+    1, // llvm.x86.vcvtps2ph.256
+    1, // llvm.x86.vgf2p8affineinvqb.128
+    1, // llvm.x86.vgf2p8affineinvqb.256
+    1, // llvm.x86.vgf2p8affineinvqb.512
+    1, // llvm.x86.vgf2p8affineqb.128
+    1, // llvm.x86.vgf2p8affineqb.256
+    1, // llvm.x86.vgf2p8affineqb.512
+    1, // llvm.x86.vgf2p8mulb.128
+    1, // llvm.x86.vgf2p8mulb.256
+    1, // llvm.x86.vgf2p8mulb.512
+    3, // llvm.x86.wbinvd
+    3, // llvm.x86.wbnoinvd
+    3, // llvm.x86.wrfsbase.32
+    3, // llvm.x86.wrfsbase.64
+    3, // llvm.x86.wrgsbase.32
+    3, // llvm.x86.wrgsbase.64
+    3, // llvm.x86.wrpkru
+    3, // llvm.x86.wrssd
+    3, // llvm.x86.wrssq
+    3, // llvm.x86.wrussd
+    3, // llvm.x86.wrussq
+    3, // llvm.x86.xabort
+    3, // llvm.x86.xbegin
+    3, // llvm.x86.xend
+    3, // llvm.x86.xgetbv
+    1, // llvm.x86.xop.vfrcz.pd
+    1, // llvm.x86.xop.vfrcz.pd.256
+    1, // llvm.x86.xop.vfrcz.ps
+    1, // llvm.x86.xop.vfrcz.ps.256
+    1, // llvm.x86.xop.vfrcz.sd
+    1, // llvm.x86.xop.vfrcz.ss
+    1, // llvm.x86.xop.vpcomb
+    1, // llvm.x86.xop.vpcomd
+    1, // llvm.x86.xop.vpcomq
+    1, // llvm.x86.xop.vpcomub
+    1, // llvm.x86.xop.vpcomud
+    1, // llvm.x86.xop.vpcomuq
+    1, // llvm.x86.xop.vpcomuw
+    1, // llvm.x86.xop.vpcomw
+    1, // llvm.x86.xop.vpermil2pd
+    1, // llvm.x86.xop.vpermil2pd.256
+    1, // llvm.x86.xop.vpermil2ps
+    1, // llvm.x86.xop.vpermil2ps.256
+    1, // llvm.x86.xop.vphaddbd
+    1, // llvm.x86.xop.vphaddbq
+    1, // llvm.x86.xop.vphaddbw
+    1, // llvm.x86.xop.vphadddq
+    1, // llvm.x86.xop.vphaddubd
+    1, // llvm.x86.xop.vphaddubq
+    1, // llvm.x86.xop.vphaddubw
+    1, // llvm.x86.xop.vphaddudq
+    1, // llvm.x86.xop.vphadduwd
+    1, // llvm.x86.xop.vphadduwq
+    1, // llvm.x86.xop.vphaddwd
+    1, // llvm.x86.xop.vphaddwq
+    1, // llvm.x86.xop.vphsubbw
+    1, // llvm.x86.xop.vphsubdq
+    1, // llvm.x86.xop.vphsubwd
+    1, // llvm.x86.xop.vpmacsdd
+    1, // llvm.x86.xop.vpmacsdqh
+    1, // llvm.x86.xop.vpmacsdql
+    1, // llvm.x86.xop.vpmacssdd
+    1, // llvm.x86.xop.vpmacssdqh
+    1, // llvm.x86.xop.vpmacssdql
+    1, // llvm.x86.xop.vpmacsswd
+    1, // llvm.x86.xop.vpmacssww
+    1, // llvm.x86.xop.vpmacswd
+    1, // llvm.x86.xop.vpmacsww
+    1, // llvm.x86.xop.vpmadcsswd
+    1, // llvm.x86.xop.vpmadcswd
+    1, // llvm.x86.xop.vpperm
+    1, // llvm.x86.xop.vprotb
+    1, // llvm.x86.xop.vprotbi
+    1, // llvm.x86.xop.vprotd
+    1, // llvm.x86.xop.vprotdi
+    1, // llvm.x86.xop.vprotq
+    1, // llvm.x86.xop.vprotqi
+    1, // llvm.x86.xop.vprotw
+    1, // llvm.x86.xop.vprotwi
+    1, // llvm.x86.xop.vpshab
+    1, // llvm.x86.xop.vpshad
+    1, // llvm.x86.xop.vpshaq
+    1, // llvm.x86.xop.vpshaw
+    1, // llvm.x86.xop.vpshlb
+    1, // llvm.x86.xop.vpshld
+    1, // llvm.x86.xop.vpshlq
+    1, // llvm.x86.xop.vpshlw
+    3, // llvm.x86.xrstor
+    3, // llvm.x86.xrstor64
+    3, // llvm.x86.xrstors
+    3, // llvm.x86.xrstors64
+    3, // llvm.x86.xsave
+    3, // llvm.x86.xsave64
+    3, // llvm.x86.xsavec
+    3, // llvm.x86.xsavec64
+    3, // llvm.x86.xsaveopt
+    3, // llvm.x86.xsaveopt64
+    3, // llvm.x86.xsaves
+    3, // llvm.x86.xsaves64
+    3, // llvm.x86.xsetbv
+    3, // llvm.x86.xtest
+    1, // llvm.xcore.bitrev
+    3, // llvm.xcore.checkevent
+    50, // llvm.xcore.chkct
+    3, // llvm.xcore.clre
+    50, // llvm.xcore.clrpt
+    3, // llvm.xcore.clrsr
+    1, // llvm.xcore.crc32
+    1, // llvm.xcore.crc8
+    50, // llvm.xcore.edu
+    50, // llvm.xcore.eeu
+    50, // llvm.xcore.endin
+    50, // llvm.xcore.freer
+    3, // llvm.xcore.geted
+    3, // llvm.xcore.getet
+    1, // llvm.xcore.getid
+    3, // llvm.xcore.getps
+    3, // llvm.xcore.getr
+    50, // llvm.xcore.getst
+    50, // llvm.xcore.getts
+    50, // llvm.xcore.in
+    50, // llvm.xcore.inct
+    50, // llvm.xcore.initcp
+    50, // llvm.xcore.initdp
+    50, // llvm.xcore.initlr
+    50, // llvm.xcore.initpc
+    50, // llvm.xcore.initsp
+    50, // llvm.xcore.inshr
+    50, // llvm.xcore.int
+    50, // llvm.xcore.mjoin
+    50, // llvm.xcore.msync
+    50, // llvm.xcore.out
+    50, // llvm.xcore.outct
+    50, // llvm.xcore.outshr
+    50, // llvm.xcore.outt
+    50, // llvm.xcore.peek
+    50, // llvm.xcore.setc
+    51, // llvm.xcore.setclk
+    50, // llvm.xcore.setd
+    50, // llvm.xcore.setev
+    3, // llvm.xcore.setps
+    50, // llvm.xcore.setpsc
+    50, // llvm.xcore.setpt
+    51, // llvm.xcore.setrdy
+    3, // llvm.xcore.setsr
+    50, // llvm.xcore.settw
+    50, // llvm.xcore.setv
+    1, // llvm.xcore.sext
+    3, // llvm.xcore.ssync
+    50, // llvm.xcore.syncr
+    50, // llvm.xcore.testct
+    50, // llvm.xcore.testwct
+    16, // llvm.xcore.waitevent
+    1, // llvm.xcore.zext
+  };
+
+  AttributeList AS[5];
+  unsigned NumAttrs = 0;
+  if (id != 0) {
+    switch(IntrinsicsToAttributesMap[id - 1]) {
+    default: llvm_unreachable("Invalid attribute number");
+    case 3: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 50: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 51: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
+      AS[1] = AttributeList::get(C, 2, AttrParam2);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 3;
+      break;
+      }
+    case 6: {
+      const Attribute::AttrKind AttrParam2[]= {Attribute::WriteOnly};
+      AS[0] = AttributeList::get(C, 2, AttrParam2);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 26: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::InaccessibleMemOrArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 22: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 18: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 8: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 25: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::WriteOnly};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 23: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::WriteOnly};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
+      AS[1] = AttributeList::get(C, 2, AttrParam2);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 3;
+      break;
+      }
+    case 24: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
+      AS[1] = AttributeList::get(C, 2, AttrParam2);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 3;
+      break;
+      }
+    case 20: {
+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 2, AttrParam2);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 17: {
+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 2, AttrParam2);
+      const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture};
+      AS[1] = AttributeList::get(C, 3, AttrParam3);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 3;
+      break;
+      }
+    case 19: {
+      const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 3, AttrParam3);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 30: {
+      const Attribute::AttrKind AttrParam4[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 4, AttrParam4);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 31: {
+      const Attribute::AttrKind AttrParam5[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 5, AttrParam5);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 32: {
+      const Attribute::AttrKind AttrParam6[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 6, AttrParam6);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 15: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::InaccessibleMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 34: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 28: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 29: {
+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
+      AS[0] = AttributeList::get(C, 2, AttrParam2);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 42: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly,Attribute::ArgMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 41: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::WriteOnly};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 16: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 2: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 39: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 13: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 9: {
+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
+      AS[0] = AttributeList::get(C, 2, AttrParam2);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 10: {
+      const Attribute::AttrKind AttrParam2[]= {Attribute::ReadNone};
+      AS[0] = AttributeList::get(C, 2, AttrParam2);
+      const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture,Attribute::ReadOnly};
+      AS[1] = AttributeList::get(C, 3, AttrParam3);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
+      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 3;
+      break;
+      }
+    case 1: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 12: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 27: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::Returned};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 11: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::ReadNone};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind AttrParam2[]= {Attribute::ReadNone};
+      AS[1] = AttributeList::get(C, 2, AttrParam2);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
+      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 3;
+      break;
+      }
+    case 48: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 47: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::InaccessibleMemOrArgMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 46: {
+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+      AS[0] = AttributeList::get(C, 1, AttrParam1);
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::InaccessibleMemOnly};
+      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 2;
+      break;
+      }
+    case 38: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly,Attribute::ArgMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 21: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Speculatable,Attribute::InaccessibleMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 36: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Speculatable,Attribute::ReadOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 4: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Speculatable,Attribute::ReadNone};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 35: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 40: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent,Attribute::InaccessibleMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 33: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent,Attribute::ReadNone};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 14: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoReturn};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 43: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoDuplicate};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 5: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoDuplicate,Attribute::InaccessibleMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 45: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoDuplicate,Attribute::WriteOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 7: {
+      return AttributeList();
+      }
+    case 37: {
+      const Attribute::AttrKind Atts[] = {Attribute::ReadNone};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 49: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoReturn};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 44: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoReturn,Attribute::WriteOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    }
+  }
+  return AttributeList::get(C, makeArrayRef(AS, NumAttrs));
+}
+#endif // GET_INTRINSIC_ATTRIBUTES
+
+// Get the LLVM intrinsic that corresponds to a builtin.
+// This is used by the C front-end.  The builtin name is passed
+// in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
+// in as TargetPrefix.  The result is assigned to 'IntrinsicID'.
+#ifdef GET_LLVM_INTRINSIC_FOR_GCC_BUILTIN
+Intrinsic::ID Intrinsic::getIntrinsicForGCCBuiltin(const char *TargetPrefixStr, StringRef BuiltinNameStr) {
+  static const char BuiltinNames[] = {
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'd', 'j', 'u', 's',
+  't', '_', 't', 'r', 'a', 'm', 'p', 'o', 'l', 'i', 'n', 'e', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'e', 'b', 'u', 'g', 't', 'r',
+  'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'u', 'n',
+  'w', 'i', 'n', 'd', '_', 'i', 'n', 'i', 't', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'f', 'l', 't', '_', 'r', 'o', 'u', 'n', 'd', 's',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'n', 'i', 't',
+  '_', 't', 'r', 'a', 'm', 'p', 'o', 'l', 'i', 'n', 'e', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'o', 'b', 'j', 'e', 'c', 't', '_', 's',
+  'i', 'z', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
+  't', 'a', 'c', 'k', '_', 'r', 'e', 's', 't', 'o', 'r', 'e', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 't', 'a', 'c', 'k', '_', 's',
+  'a', 'v', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't',
+  'h', 'r', 'e', 'a', 'd', '_', 'p', 'o', 'i', 'n', 't', 'e', 'r', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'a', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'd', 'm',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
+  '_', 'd', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'r', 'm', '_', 'i', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'b', 'u', 'f', 'f', 'e',
+  'r', '_', 'w', 'b', 'i', 'n', 'v', 'l', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'b', 'u', 'f',
+  'f', 'e', 'r', '_', 'w', 'b', 'i', 'n', 'v', 'l', '1', '_', 's', 'c', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
+  'n', '_', 'b', 'u', 'f', 'f', 'e', 'r', '_', 'w', 'b', 'i', 'n', 'v', 'l',
+  '1', '_', 'v', 'o', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e', 'i', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
+  'n', '_', 'c', 'u', 'b', 'e', 'm', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e',
+  's', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
+  'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e', 't', 'c', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c',
+  'v', 't', '_', 'p', 'k', '_', 'u', '8', '_', 'f', '3', '2', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
+  'd', 'i', 's', 'p', 'a', 't', 'c', 'h', '_', 'i', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd',
+  'i', 's', 'p', 'a', 't', 'c', 'h', '_', 'p', 't', 'r', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd',
+  's', '_', 'b', 'p', 'e', 'r', 'm', 'u', 't', 'e', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd', 's',
+  '_', 'f', 'a', 'd', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd', 's', '_', 'f', 'm', 'a',
+  'x', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
+  'd', 'g', 'c', 'n', '_', 'd', 's', '_', 'f', 'm', 'i', 'n', 'f', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
+  '_', 'd', 's', '_', 'p', 'e', 'r', 'm', 'u', 't', 'e', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd',
+  's', '_', 's', 'w', 'i', 'z', 'z', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'f', 'd', 'o',
+  't', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
+  'd', 'g', 'c', 'n', '_', 'f', 'm', 'e', 'd', '3', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'f', 'm',
+  'u', 'l', '_', 'l', 'e', 'g', 'a', 'c', 'y', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'g', 'r', 'o',
+  'u', 'p', 's', 't', 'a', 't', 'i', 'c', 's', 'i', 'z', 'e', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
+  'i', 'm', 'p', 'l', 'i', 'c', 'i', 't', '_', 'b', 'u', 'f', 'f', 'e', 'r',
+  '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'm', 'd', 'g', 'c', 'n', '_', 'i', 'm', 'p', 'l', 'i', 'c', 'i', 't',
+  'a', 'r', 'g', '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'i', 'n', 't', 'e', 'r',
+  'p', '_', 'm', 'o', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'i', 'n', 't', 'e', 'r', 'p', '_',
+  'p', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
+  'd', 'g', 'c', 'n', '_', 'i', 'n', 't', 'e', 'r', 'p', '_', 'p', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
+  'n', '_', 'k', 'e', 'r', 'n', 'a', 'r', 'g', '_', 's', 'e', 'g', 'm', 'e',
+  'n', 't', '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'l', 'e', 'r', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
+  '_', 'm', 'b', 'c', 'n', 't', '_', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'm', 'b', 'c',
+  'n', 't', '_', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'm', 'q', 's', 'a', 'd', '_', 'p',
+  'k', '_', 'u', '1', '6', '_', 'u', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'm', 'q', 's', 'a',
+  'd', '_', 'u', '3', '2', '_', 'u', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'm', 's', 'a', 'd',
+  '_', 'u', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'm', 'd', 'g', 'c', 'n', '_', 'q', 's', 'a', 'd', '_', 'p', 'k', '_', 'u',
+  '1', '6', '_', 'u', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'q', 'u', 'e', 'u', 'e', '_', 'p',
+  't', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
+  'd', 'g', 'c', 'n', '_', 'r', 'c', 'p', '_', 'l', 'e', 'g', 'a', 'c', 'y',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
+  'c', 'n', '_', 'r', 'e', 'a', 'd', 'f', 'i', 'r', 's', 't', 'l', 'a', 'n',
+  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd',
+  'g', 'c', 'n', '_', 'r', 'e', 'a', 'd', 'l', 'a', 'n', 'e', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
+  'r', 's', 'q', '_', 'l', 'e', 'g', 'a', 'c', 'y', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_',
+  'b', 'a', 'r', 'r', 'i', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'd', 'c', 'a',
+  'c', 'h', 'e', '_', 'i', 'n', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'd', 'c', 'a',
+  'c', 'h', 'e', '_', 'i', 'n', 'v', '_', 'v', 'o', 'l', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's',
+  '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'w', 'b', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_',
+  'd', 'c', 'a', 'c', 'h', 'e', '_', 'w', 'b', '_', 'v', 'o', 'l', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
+  '_', 's', '_', 'd', 'e', 'c', 'p', 'e', 'r', 'f', 'l', 'e', 'v', 'e', 'l',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
+  'c', 'n', '_', 's', '_', 'g', 'e', 't', 'p', 'c', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_',
+  'g', 'e', 't', 'r', 'e', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'i', 'n', 'c', 'p',
+  'e', 'r', 'f', 'l', 'e', 'v', 'e', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'm', 'e',
+  'm', 'r', 'e', 'a', 'l', 't', 'i', 'm', 'e', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'm',
+  'e', 'm', 't', 'i', 'm', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 's', 'e', 'n', 'd',
+  'm', 's', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'm', 'd', 'g', 'c', 'n', '_', 's', '_', 's', 'e', 'n', 'd', 'm', 's', 'g',
+  'h', 'a', 'l', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 's', 'l', 'e', 'e', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
+  'n', '_', 's', '_', 'w', 'a', 'i', 't', 'c', 'n', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's',
+  'a', 'd', '_', 'h', 'i', '_', 'u', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', 'a', 'd', '_',
+  'u', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'm', 'd', 'g', 'c', 'n', '_', 's', 'a', 'd', '_', 'u', '8', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
+  's', 'd', 'o', 't', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', 'd', 'o', 't', '4', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
+  '_', 's', 'd', 'o', 't', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'u', 'd', 'o', 't', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
+  'n', '_', 'u', 'd', 'o', 't', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'u', 'd', 'o', 't', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
+  'c', 'n', '_', 'w', 'a', 'v', 'e', '_', 'b', 'a', 'r', 'r', 'i', 'e', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
+  'c', 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u', 'p', '_', 'i', 'd',
+  '_', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
+  'd', 'g', 'c', 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u', 'p', '_',
+  'i', 'd', '_', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'm', 'd', 'g', 'c', 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u',
+  'p', '_', 'i', 'd', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'w', 'r', 'i', 't', 'e', 'l',
+  'a', 'n', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'r', 'm', '_', 'c', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'r', 'm', '_', 'c', 'd', 'p', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'g', 'e', 't', '_', 'f',
+  'p', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'r', 'm', '_', 'l', 'd', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'r', 'm', '_', 'l', 'd', 'c', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'l', 'd', 'c', '2',
+  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
+  '_', 'l', 'd', 'c', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'r', 'm', '_', 'm', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'm', 'c', 'r', '2', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'm', 'r', 'c',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
+  'm', 'r', 'c', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'r', 'm', '_', 'q', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'q', 'a', 'd', 'd', '1', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'q',
+  'a', 'd', 'd', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'r', 'm', '_', 'q', 'a', 's', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'q', 's', 'a', 'x', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'q', 's', 'u',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
+  '_', 'q', 's', 'u', 'b', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'r', 'm', '_', 'q', 's', 'u', 'b', '8', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'a', 'd',
+  'd', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'r', 'm', '_', 's', 'a', 'd', 'd', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'a', 's', 'x', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'e', 'l',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
+  's', 'e', 't', '_', 'f', 'p', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'h', 'a', 'd', 'd', '1',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
+  '_', 's', 'h', 'a', 'd', 'd', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'h', 'a', 's', 'x', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'h', 's',
+  'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
+  'm', '_', 's', 'h', 's', 'u', 'b', '1', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'h', 's', 'u', 'b', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
+  's', 'm', 'l', 'a', 'b', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 'a', 'b', 't', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l',
+  'a', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
+  'm', '_', 's', 'm', 'l', 'a', 'd', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 'a', 'l', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's',
+  'm', 'l', 'a', 'l', 'd', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 'a', 't', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l',
+  'a', 't', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'r', 'm', '_', 's', 'm', 'l', 'a', 'w', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 'a', 'w', 't',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
+  's', 'm', 'l', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 's', 'd', 'x', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 's',
+  'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
+  'm', '_', 's', 'm', 'l', 's', 'l', 'd', 'x', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'u', 'a', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's',
+  'm', 'u', 'a', 'd', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'r', 'm', '_', 's', 'm', 'u', 'l', 'b', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'u', 'l',
+  'b', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
+  'm', '_', 's', 'm', 'u', 'l', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'u', 'l', 't', 't', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's',
+  'm', 'u', 'l', 'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'r', 'm', '_', 's', 'm', 'u', 'l', 'w', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'u', 's',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
+  '_', 's', 'm', 'u', 's', 'd', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'r', 'm', '_', 's', 's', 'a', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 's', 'a', 't',
+  '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
+  'm', '_', 's', 's', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'r', 'm', '_', 's', 's', 'u', 'b', '1', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 's', 'u',
+  'b', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
+  'm', '_', 's', 't', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'r', 'm', '_', 's', 't', 'c', '2', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 't', 'c', '2', 'l', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's',
+  't', 'c', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'r', 'm', '_', 's', 'x', 't', 'a', 'b', '1', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'x', 't', 'b', '1',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
+  '_', 'u', 'a', 'd', 'd', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'a', 'd', 'd', '8', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'a', 's',
+  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
+  '_', 'u', 'h', 'a', 'd', 'd', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'h', 'a', 'd', 'd', '8', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u',
+  'h', 'a', 's', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'r', 'm', '_', 'u', 'h', 's', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'h', 's', 'u', 'b', '1',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
+  '_', 'u', 'h', 's', 'u', 'b', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'q', 'a', 'd', 'd', '1', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u',
+  'q', 'a', 'd', 'd', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'r', 'm', '_', 'u', 'q', 'a', 's', 'x', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'q', 's', 'a', 'x',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
+  'u', 'q', 's', 'u', 'b', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'q', 's', 'u', 'b', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 's',
+  'a', 'd', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'r', 'm', '_', 'u', 's', 'a', 'd', 'a', '8', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 's', 'a', 't', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 's',
+  'a', 't', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'r', 'm', '_', 'u', 's', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 's', 'u', 'b', '1', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u',
+  's', 'u', 'b', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'r', 'm', '_', 'u', 'x', 't', 'a', 'b', '1', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'x', 't', 'b',
+  '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p',
+  'f', '_', 'l', 'o', 'a', 'd', '_', 'b', 'y', 't', 'e', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'f', '_', 'l', 'o', 'a', 'd',
+  '_', 'h', 'a', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'b', 'p', 'f', '_', 'l', 'o', 'a', 'd', '_', 'w', 'o', 'r', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'f', '_', 'p',
+  's', 'e', 'u', 'd', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'b', 's',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'b', 's', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 'a', 'b', 's', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h',
+  '_', 'h', '1', '6', '_', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a',
+  'd', 'd', 'h', '_', 'h', '1', '6', '_', 'h', 'l', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
+  '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 'l', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 'l',
+  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1',
+  '6', '_', 's', 'a', 't', '_', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'h', 'l',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6',
+  '_', 's', 'a', 't', '_', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a',
+  'd', 'd', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'l', 'l', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l', '1', '6', '_',
+  'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l',
+  '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd',
+  'h', '_', 'l', '1', '6', '_', 's', 'a', 't', '_', 'h', 'l', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l', '1', '6', '_', 's', 'a',
+  't', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 'a', 'd', 'd', 'p', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
+  '2', '_', 'a', 'd', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  'a', 'd', 'd', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'n', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'n', 'd', 'i', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 'a', 'n', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  'a', 's', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 's', 'r', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b', 'i', 'n', 'e', '_',
+  'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b', 'i', 'n',
+  'e', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b',
+  'i', 'n', 'e', '_', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o',
+  'm', 'b', 'i', 'n', 'e', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  'c', 'o', 'm', 'b', 'i', 'n', 'e', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 'c', 'o', 'm', 'b', 'i', 'n', 'e', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 'm', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'a', 'x', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'a', 'x', 'u', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 'm', 'a', 'x', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  'm', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'i', 'n', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 'm', 'i', 'n', 'u', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
+  '2', '_', 'm', 'i', 'n', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n',
+  'e', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n', 'e', 'g', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'A', '2', '_', 'n', 'e', 'g', 's', 'a', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n', 'o',
+  't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'o', 'r', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 'o', 'r', 'i', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'o',
+  'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'r', 'o', 'u', 'n', 'd', 's',
+  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 's', 'a', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  's', 'a', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', 'u',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', 'u', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'A', '2', '_', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 'h', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 'h', 'l', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_',
+  'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h',
+  '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b',
+  'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'h', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 's', 'a',
+  't', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h',
+  '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'l', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't',
+  '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_',
+  'l', '1', '6', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u',
+  'b', 'h', '_', 'l', '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 's', 'u', 'b', 'h', '_', 'l', '1', '6', '_', 's', 'a', 't', '_', 'h',
+  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'l', '1',
+  '6', '_', 's', 'a', 't', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  's', 'u', 'b', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'r',
+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 's', 'a', 't', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'h', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 's', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 's', 'v', 'a', 'v', 'g', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  's', 'v', 'n', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's',
+  'v', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'v', 's',
+  'u', 'b', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'v', 's', 'u',
+  'b', 'u', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'w', 'i', 'z',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 's', 'x', 't', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 's', 'x', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's',
+  'x', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'A', '2', '_', 't', 'f', 'r', 'i', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
+  '2', '_', 't', 'f', 'r', 'i', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't',
+  'f', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', 'p', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', 's', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 'v', 'a', 'b', 's', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 'v', 'a', 'b', 's', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 'v', 'a', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a',
+  'b', 's', 'w', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a',
+  'd', 'd', 'b', '_', 'm', 'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
+  'a', 'd', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd',
+  'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
+  '2', '_', 'v', 'a', 'd', 'd', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v',
+  'g', 'h', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g',
+  'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'h', 'r', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 'v', 'a', 'v', 'g', 'u', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  'v', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v',
+  'g', 'w', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g',
+  'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'b', 'e',
+  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'b', 'g', 't',
+  'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'e', 'q',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'g', 't', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'g', 't', 'u', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'e', 'q', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'g', 't', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'g', 't', 'u', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 'v', 'c', 'o', 'n', 'j', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 'v', 'm', 'a', 'x', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm',
+  'a', 'x', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 'v', 'm', 'i', 'n', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm',
+  'i', 'n', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 'v', 'n', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
+  'n', 'a', 'v', 'g', 'h', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
+  'n', 'a', 'v', 'g', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n',
+  'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n', 'a', 'v',
+  'g', 'w', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n', 'a', 'v',
+  'g', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 'a', 'd', 'd',
+  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 'a', 'd', 'd', 'u',
+  'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 's',
+  'a', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 's', 'a',
+  'd', 'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
+  's', 'u', 'b', 'b', '_', 'm', 'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
+  'v', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u',
+  'b', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u', 'b', 's',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u', 'h', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 'v', 's', 'u', 'b', 'w', 's', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
+  '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'x', 'o', 'r', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '2', '_', 'z', 'x', 't', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '2', '_', 'z', 'x', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'a',
+  'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'a', 'n', 'd', 'n', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'i', 't', 's', 'p', 'l', 'i', 't',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'i', 't', 's', 'p', 'l', 'i', 't',
+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'o', 'u', 'n', 'd', 's', 'c',
+  'h', 'e', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b',
+  'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'e', 'q',
+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'i', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'u', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'u', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '4', '_', 'c', 'm', 'p', 'h', 'e', 'q', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
+  '4', '_', 'c', 'm', 'p', 'h', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
+  '_', 'c', 'm', 'p', 'h', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c',
+  'm', 'p', 'h', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm',
+  'p', 'h', 'g', 't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p',
+  'h', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'o', 'm',
+  'b', 'i', 'n', 'e', 'i', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'o',
+  'm', 'b', 'i', 'n', 'e', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c',
+  'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
+  'c', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
+  '_', 'm', 'o', 'd', 'w', 'r', 'a', 'p', 'u', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
+  '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'o', 'r', 'n', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'e', 'q', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'e', 'q', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'n', 'e', 'q', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '4', '_', 'r', 'c', 'm', 'p', 'n', 'e', 'q', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '_', 's', 'a', 't',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'r',
+  '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 't', 'l', 'b', 'm',
+  'a', 't', 'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'c', 'm', 'p',
+  'b', 'e', 'q', '_', 'a', 'n', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
+  'c', 'm', 'p', 'b', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
+  'c', 'm', 'p', 'b', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'c',
+  'm', 'p', 'b', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'c',
+  'm', 'p', 'b', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
+  'c', 'm', 'p', 'h', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
+  'c', 'm', 'p', 'h', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
+  'c', 'm', 'p', 'h', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
+  'v', 'c', 'm', 'p', 'w', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
+  'v', 'c', 'm', 'p', 'w', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
+  'v', 'c', 'm', 'p', 'w', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
+  '_', 'v', 'r', 'm', 'a', 'x', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
+  'r', 'm', 'a', 'x', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r',
+  'm', 'a', 'x', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm',
+  'a', 'x', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'u', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'u', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '5', '_', 'v', 'a', 'd', 'd', 'h', 'u', 'b', 's', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'A', '6', '_', 'v', 'c', 'm', 'p', 'b', 'e', 'q', '_', 'n', 'o', 't',
+  'a', 'n', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '6', '_', 'v', 'c', 'm', 'p', 'b',
+  'e', 'q', '_', 'n', 'o', 't', 'a', 'n', 'y', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'C', '2', '_', 'a', 'l', 'l', '8', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
+  '2', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'a', 'n', 'd',
+  'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'a', 'n', 'y', '8', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'C', '2', '_', 'b', 'i', 't', 's', 'c', 'l', 'r', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'C', '2', '_', 'b', 'i', 't', 's', 'c', 'l', 'r', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'C', '2', '_', 'b', 'i', 't', 's', 's', 'e', 't', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
+  '2', '_', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c',
+  'm', 'p', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p',
+  'e', 'q', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 'e',
+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 'e', 'u', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 't', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 't', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
+  '2', '_', 'c', 'm', 'p', 'g', 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
+  'c', 'm', 'p', 'g', 't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm',
+  'p', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p',
+  'g', 't', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'l',
+  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'l', 't', 'u', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'C', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
+  '2', '_', 'm', 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'm', 'u', 'x',
+  'i', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'm', 'u', 'x', 'i', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'C', '2', '_', 'm', 'u', 'x', 'r', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'C', '2', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'o', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'C', '2', '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
+  '2', '_', 'p', 'x', 'f', 'e', 'r', '_', 'm', 'a', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'C', '2', '_', 't', 'f', 'r', 'p', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
+  't', 'f', 'r', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'v', 'i', 't',
+  'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'v', 'm', 'u', 'x',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'C', '2', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
+  '4', '_', 'a', 'n', 'd', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4',
+  '_', 'a', 'n', 'd', '_', 'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4',
+  '_', 'a', 'n', 'd', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'a',
+  'n', 'd', '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm',
+  'p', 'l', 't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l',
+  't', 'e', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l', 't',
+  'e', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l', 't', 'e',
+  'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'n', 'e', 'q',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'n', 'e', 'q', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'C', '4', '_', 'f', 'a', 's', 't', 'c', 'o', 'r', 'n', 'e',
+  'r', '9', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'f', 'a', 's', 't', 'c', 'o',
+  'r', 'n', 'e', 'r', '9', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4',
+  '_', 'n', 'b', 'i', 't', 's', 'c', 'l', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4',
+  '_', 'n', 'b', 'i', 't', 's', 'c', 'l', 'r', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
+  '4', '_', 'n', 'b', 'i', 't', 's', 's', 'e', 't', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
+  '4', '_', 'o', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_',
+  'o', 'r', '_', 'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'o',
+  'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'o', 'r', '_', 'o',
+  'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd',
+  '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
+  'd', '2', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v',
+  '_', 'd', 'f', '2', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n',
+  'v', '_', 'd', 'f', '2', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 's', 'f', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2',
+  'u', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c',
+  'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
+  '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'w', '_', 'c', 'h', 'o',
+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f',
+  '2', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd',
+  'f', '2', 'w', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
+  'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
+  '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'd', '_', 'c', 'h', 'o', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2',
+  'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's',
+  'f', '2', 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v',
+  '_', 's', 'f', '2', 'u', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'u', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'u', 'w',
+  '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n',
+  'v', '_', 's', 'f', '2', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o',
+  'n', 'v', '_', 's', 'f', '2', 'w', '_', 'c', 'h', 'o', 'p', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'd', '2', 'd', 'f', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'd', '2', 's',
+  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'w',
+  '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
+  'u', 'w', '2', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n',
+  'v', '_', 'w', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o',
+  'n', 'v', '_', 'w', '2', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd',
+  'f', 'c', 'l', 'a', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f',
+  'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c',
+  'm', 'p', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm',
+  'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm', 'p',
+  'u', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'i', 'm', 'm', '_',
+  'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'i', 'm', 'm', '_', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'a', 'd', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'F', '2', '_', 's', 'f', 'c', 'l', 'a', 's', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'F', '2', '_', 's', 'f', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F',
+  '2', '_', 's', 'f', 'c', 'm', 'p', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
+  '_', 's', 'f', 'c', 'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
+  's', 'f', 'c', 'm', 'p', 'u', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's',
+  'f', 'f', 'i', 'x', 'u', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's',
+  'f', 'f', 'i', 'x', 'u', 'p', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's',
+  'f', 'f', 'i', 'x', 'u', 'p', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's',
+  'f', 'f', 'm', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm',
+  'a', '_', 'l', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
+  'm', 'a', '_', 's', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
+  'm', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm', 's', '_',
+  'l', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'i', 'm', 'm',
+  '_', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'i', 'm', 'm', '_',
+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'm', 'a', 'x', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'F', '2', '_', 's', 'f', 'm', 'i', 'n', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F',
+  '2', '_', 's', 'f', 'm', 'p', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's',
+  'f', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'L', '2', '_', 'l', 'o', 'a', 'd',
+  'w', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'L', '4', '_',
+  'l', 'o', 'a', 'd', 'd', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'a', 'c', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'a', 'c', 'c', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a',
+  'c', 'i', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a',
+  'c', 'r', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a',
+  'c', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a',
+  'c', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a',
+  'c', 's', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm',
+  'a', 'c', 's', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c',
+  'm', 'p', 'y', 'i', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c',
+  'm', 'p', 'y', 'r', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c',
+  'm', 'p', 'y', 'r', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'c', 'm', 'p', 'y', 'r', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'c', 'm', 'p', 'y', 'r', 's', 'c', '_', 's', '0', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'c', 'm', 'p', 'y', 'r', 's', 'c', '_', 's', '1', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 's', '_', 's', '0', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 's', '_', 's', '1', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 's', 'c', '_', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 's', 'c', '_', 's', '1',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', '_', 's', '0',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', '_', 's', '1',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', 'c', '_', 's',
+  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', 'c', '_',
+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 's',
+  's', '_', 'a', 'c', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'd', 'p', 'm', 'p', 'y', 's', 's', '_', 'n', 'a', 'c', '_', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 's', 's', '_', 'r',
+  'n', 'd', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm',
+  'p', 'y', 's', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd',
+  'p', 'm', 'p', 'y', 'u', 'u', '_', 'a', 'c', 'c', '_', 's', '0', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 'u', 'u', '_', 'n', 'a',
+  'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p',
+  'y', 'u', 'u', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'h', 'm',
+  'm', 'p', 'y', 'h', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'h', 'm', 'm', 'p', 'y', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'h', 'm', 'm', 'p', 'y', 'l', '_', 'r', 's', '1', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'h', 'm', 'm', 'p', 'y', 'l', '_', 's', '1', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'a', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'm', 'a', 'c', 's', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'a',
+  'c', 's', 'i', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c',
+  'h', 's', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
+  'a', 'c', 'h', 's', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'm', 'm', 'a', 'c', 'h', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'm', 'a', 'c', 'h', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 'r', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 'r', 's', '1', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 's', '0',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 's',
+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'h', 's',
+  '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c',
+  'u', 'h', 's', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'm', 'a', 'c', 'u', 'h', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'm', 'a', 'c', 'u', 'h', 's', '_', 's', '1', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l', 's', '_', 'r', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l', 's', '_', 'r',
+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l',
+  's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c',
+  'u', 'l', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
+  'p', 'y', 'h', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'm', 'p', 'y', 'h', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'm', 'm', 'p', 'y', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'm', 'm', 'p', 'y', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'm', 'm', 'p', 'y', 'l', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'm', 'p', 'y', 'l', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'm', 'm', 'p', 'y', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'm', 'm', 'p', 'y', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 'r', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 'r', 's', '1', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 's', '0',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 's',
+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'l', '_',
+  'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u',
+  'l', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p',
+  'y', 'u', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
+  'p', 'y', 'u', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'h', 'h', '_',
+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c',
+  'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'l', 'h', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c',
+  'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'l', 'l', '_',
+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c',
+  'c', '_', 's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_',
+  'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's',
+  'a', 't', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'l', 'h', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c',
+  'c', '_', 's', 'a', 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_',
+  'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '1', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'h', '_', 's', '0',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'h', '_', 's',
+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'l', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'l',
+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'l',
+  'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
+  'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
+  'y', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'h', 'h', '_',
+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a',
+  'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'l', 'h', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a',
+  'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'l', 'l', '_',
+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a',
+  'c', '_', 's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_',
+  'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's',
+  'a', 't', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'l', 'h', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a',
+  'c', '_', 's', 'a', 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_',
+  'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '1', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'h',
+  'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
+  'r', 'n', 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'h',
+  'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
+  'r', 'n', 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '1', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'l',
+  'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
+  'r', 'n', 'd', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'h',
+  'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
+  's', 'a', 't', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '1', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'l',
+  'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
+  's', 'a', 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'l',
+  'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
+  's', 'a', 't', '_', 'r', 'n', 'd', '_', 'h', 'h', '_', 's', '0', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n',
+  'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's',
+  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't',
+  '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'l',
+  'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
+  's', 'a', 't', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '1', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n',
+  'd', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'l', 'l', '_', 's',
+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '_', 's', '1',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '_', 's',
+  '1', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  'd', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'h', 'h', '_',
+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a',
+  'c', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_',
+  'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  'd', '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'l', 'l', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a',
+  'c', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'm', 'p', 'y', 'd', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'm', 'p', 'y', 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'h', 'l', '_', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'h', 'l', '_', 's',
+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'l', 'h',
+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
+  'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  'd', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', 'd', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c',
+  '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
+  'y', 'd', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h', 'l',
+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
+  'n', 'a', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '1',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c',
+  '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
+  'y', 'd', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'h', 'h',
+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
+  'r', 'n', 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '0',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd',
+  '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
+  'y', 'd', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'l', 'h',
+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
+  'r', 'n', 'd', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'l', 'l', '_', 's', '1',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', 's', 'm', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', 's', 'u', '_', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c',
+  '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
+  'y', 'u', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h', 'l',
+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_',
+  'a', 'c', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c',
+  '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
+  'y', 'u', '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'h', '_', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'h', '_', 's',
+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'l',
+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_',
+  'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  'u', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', 'u', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', 'u', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'l', 'l', '_', 's', '1', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'h',
+  'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
+  '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's',
+  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a',
+  'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'l',
+  'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
+  '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's',
+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'u', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c',
+  'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
+  'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '1', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c',
+  '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
+  'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_',
+  'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  'u', 'd', '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'l',
+  'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
+  'd', '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'h', 'h', '_', 's', '0', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'h', 'h', '_',
+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_',
+  'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  'u', 'd', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'm', 'p', 'y', 'u', 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'h', '_', 's', '1', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'l', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_',
+  'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
+  'u', 'd', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'h',
+  'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
+  'd', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'h', 'l',
+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd',
+  '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'l', 'h', '_',
+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_',
+  'n', 'a', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's',
+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'i', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'n', 'a', 'c', 'c', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'n', 'a', 'c', 'c', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  's', 'u', 'b', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'a',
+  'b', 's', 'd', 'i', 'f', 'f', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v',
+  'a', 'b', 's', 'd', 'i', 'f', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'v', 'c', 'm', 'a', 'c', '_', 's', '0', '_', 's', 'a', 't', '_', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'v', 'c', 'm', 'a', 'c', '_', 's', '0', '_',
+  's', 'a', 't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c', 'm',
+  'p', 'y', '_', 's', '0', '_', 's', 'a', 't', '_', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'v', 'c', 'm', 'p', 'y', '_', 's', '0', '_', 's', 'a', 't',
+  '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c', 'm', 'p', 'y', '_',
+  's', '1', '_', 's', 'a', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'v', 'c', 'm', 'p', 'y', '_', 's', '1', '_', 's', 'a', 't', '_', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'a', 'c', 's', '_', 's', '0',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'a', 'c', 's', '_', 's',
+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p', 'y', 'r', 's',
+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p', 'y',
+  'r', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm',
+  'p', 'y', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd',
+  'm', 'p', 'y', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v',
+  'm', 'a', 'c', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a', 'c',
+  '2', 'e', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a', 'c', '2',
+  'e', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a',
+  'c', '2', 'e', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v',
+  'm', 'a', 'c', '2', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'v', 'm', 'a', 'c', '2', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'v', 'm', 'a', 'c', '2', 's', 'u', '_', 's', '0', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'v', 'm', 'a', 'c', '2', 's', 'u', '_', 's', '1', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 'e', 's', '_', 's', '0',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 'e', 's', '_',
+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's',
+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2',
+  's', '_', 's', '0', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
+  'v', 'm', 'p', 'y', '2', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
+  '_', 'v', 'm', 'p', 'y', '2', 's', '_', 's', '1', 'p', 'a', 'c', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', 'u', '_', 's',
+  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', 'u',
+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'a', 'd', 'd',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'a', 'd', 'd', 'u', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'a', 'c', 'i', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'a', 'c',
+  'i', '_', 's', '0', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c',
+  'm', 'a', 'c', 'r', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v',
+  'r', 'c', 'm', 'a', 'c', 'r', '_', 's', '0', 'c', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'i', '_', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'i', '_', 's', '0', 'c',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'r', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y',
+  'r', '_', 's', '0', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c',
+  'm', 'p', 'y', 's', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 's', '_', 's', '1', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 's', '_', 's', '1',
+  'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'm', 'a', 'c', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'm', 'p', 'y', '_',
+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'x', 'o', 'r', '_', 'x', 'a',
+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'a', 'n',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'a', 'n', 'd',
+  'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'o', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'x', 'o', 'r', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'i', '_', 'w', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'i', '_', 'w', 'h', 'c', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'r', '_', 'w', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'r', '_', 'w', 'h', 'c',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'a', 'c', '_', 'u', 'p', '_', 's',
+  '1', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y',
+  'r', 'i', '_', 'a', 'd', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm',
+  'p', 'y', 'r', 'i', '_', 'a', 'd', 'd', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4',
+  '_', 'm', 'p', 'y', 'r', 'i', '_', 'a', 'd', 'd', 'r', '_', 'u', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y', 'r', 'r', '_', 'a', 'd', 'd',
+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y', 'r', 'r', '_', 'a',
+  'd', 'd', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'n', 'a', 'c', '_', 'u',
+  'p', '_', 's', '1', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_',
+  'o', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r',
+  '_', 'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r', '_',
+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r', '_', 'x', 'o', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '4', '_', 'p', 'm', 'p', 'y', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '4', '_', 'p', 'm', 'p', 'y', 'w', '_', 'a', 'c', 'c', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '4', '_', 'v', 'p', 'm', 'p', 'y', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '4', '_', 'v', 'p', 'm', 'p', 'y', 'h', '_', 'a', 'c', 'c', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 'a', 'c',
+  'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p',
+  'y', 'e', 'h', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '4', '_', 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 's', '0', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 's', '1', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 'a',
+  'c', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm',
+  'p', 'y', 'o', 'h', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 's', '0', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 's', '1',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'a', 'n', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'a', 'n', 'd', 'n', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'o', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '5', '_', 'v', 'd', 'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '5', '_', 'v', 'd', 'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'M', '5', '_', 'v', 'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'M', '5', '_', 'v', 'm', 'a', 'c', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
+  '5', '_', 'v', 'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5',
+  '_', 'v', 'm', 'p', 'y', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_',
+  'v', 'r', 'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_',
+  'v', 'r', 'm', 'a', 'c', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_',
+  'v', 'r', 'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_',
+  'v', 'r', 'm', 'p', 'y', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '6', '_',
+  'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '6',
+  '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'u', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'a', 'd', 'd', 'a', 's', 'l', '_', 'r', 'r', 'r', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '_', 'a', 'c',
+  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p',
+  '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_',
+  'i', '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
+  's', 'l', '_', 'i', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'a', 's', 'l', '_', 'i', '_', 'p', '_', 'x', 'a', 'c', 'c', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 'a', 'c', 'c',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_',
+  'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i',
+  '_', 'r', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
+  'l', '_', 'i', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
+  'a', 's', 'l', '_', 'i', '_', 'r', '_', 's', 'a', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 'x', 'a', 'c', 'c',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'v', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'v', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '_', 'a',
+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_',
+  'p', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l',
+  '_', 'r', '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
+  'a', 's', 'l', '_', 'r', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '_', 'x', 'o', 'r', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '_', 'a', 'c', 'c',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '_',
+  'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r',
+  '_', 'r', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
+  'l', '_', 'r', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
+  'a', 's', 'l', '_', 'r', '_', 'r', '_', 's', 'a', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'v', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'v', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'n',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p',
+  '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_',
+  'i', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
+  'r', '_', 'i', '_', 'p', '_', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'r', 'n', 'd', '_', 'g', 'o',
+  'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
+  'a', 's', 'r', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
+  's', 'r', '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'n', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r', '_', 'n', 'a',
+  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r',
+  '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i',
+  '_', 'r', '_', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
+  'r', '_', 'i', '_', 'r', '_', 'r', 'n', 'd', '_', 'g', 'o', 'o', 'd', 's',
+  'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r',
+  '_', 'i', '_', 's', 'v', 'w', '_', 't', 'r', 'u', 'n', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'v', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'v', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'c', 'c', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'n',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p',
+  '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_',
+  'r', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
+  'r', '_', 'r', '_', 'p', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'a', 's', 'r', '_', 'r', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
+  'a', 's', 'r', '_', 'r', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_', 'a', 'n', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_', 'n',
+  'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_',
+  'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_',
+  'r', '_', 'r', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
+  's', 'r', '_', 'r', '_', 's', 'v', 'w', '_', 't', 'r', 'u', 'n', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'v', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'v', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'b', 'r', 'e', 'v', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'b', 'r', 'e', 'v', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'a',
+  'b', 'a', 'c', 'e', 'n', 'c', 'b', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'c', 'l', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', '0', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', '1', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '2', '_', 'c', 'l', '1', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', 'b', 'n', 'o', 'r', 'm',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', 'b', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'c', 'l', 'r', 'b', 'i', 't', '_', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'c', 'l', 'r', 'b', 'i', 't', '_', 'r', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'c', 't', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 't',
+  '0', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 't', '1', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 'c', 't', '1', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
+  'd', 'e', 'i', 'n', 't', 'e', 'r', 'l', 'e', 'a', 'v', 'e', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', '_', 'r', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u',
+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't',
+  'u', 'p', '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's',
+  'e', 'r', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e', 'r',
+  't', '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e',
+  'r', 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e', 'r',
+  't', 'p', '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 't',
+  'e', 'r', 'l', 'e', 'a', 'v', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
+  'f', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r',
+  '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_',
+  'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l',
+  '_', 'r', '_', 'p', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
+  'l', 's', 'l', '_', 'r', '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_', 'o', 'r', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_', 'x', 'o',
+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'r', '_',
+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r',
+  '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's',
+  'l', '_', 'r', '_', 'r', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'l', 's', 'l', '_', 'r', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'v', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'v', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'n',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p',
+  '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_',
+  'i', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's',
+  'r', '_', 'i', '_', 'p', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'l', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'n', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r', '_',
+  'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i',
+  '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r',
+  '_', 'i', '_', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'l', 's', 'r', '_', 'i', '_', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'l', 's', 'r', '_', 'i', '_', 'v', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'l', 's', 'r', '_', 'r', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
+  'l', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'n', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_', 'n',
+  'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_',
+  'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_',
+  'r', '_', 'p', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
+  's', 'r', '_', 'r', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's',
+  'r', '_', 'r', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 'l', 's', 'r', '_', 'r', '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'r', '_', 'n', 'a', 'c',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'r', '_',
+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_',
+  'v', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_',
+  'v', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'p', 'a', 'c', 'k', 'h', 'l',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'p', 'a', 'r', 'i', 't', 'y', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '2', '_', 's', 'e', 't', 'b', 'i', 't', '_', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '2', '_', 's', 'e', 't', 'b', 'i', 't', '_', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'e', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'e', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'o', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'o', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 's', 't', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_',
+  's', 't', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b',
+  'r', 'e', 'v', '_', 's', 't', 'h', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 's', 't', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 's',
+  't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 's', 't', 'o', 'r', 'e', 'w',
+  '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 's',
+  'v', 's', 'a', 't', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 's', 'v',
+  's', 'a', 't', 'h', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'a',
+  'b', 'l', 'e', 'i', 'd', 'x', 'b', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n',
+  't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'a', 'b', 'l', 'e',
+  'i', 'd', 'x', 'd', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 't', 'a', 'b', 'l', 'e', 'i', 'd', 'x',
+  'h', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 't', 'a', 'b', 'l', 'e', 'i', 'd', 'x', 'w', '_', 'g',
+  'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
+  '_', 't', 'o', 'g', 'g', 'l', 'e', 'b', 'i', 't', '_', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 't', 'o', 'g', 'g', 'l', 'e', 'b', 'i', 't', '_', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 't', 's', 't', 'b', 'i', 't', '_', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 't', 's', 't', 'b', 'i', 't', '_', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'a', 'l', 'i', 'g', 'n', 'i', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'a', 'l', 'i', 'g', 'n', 'r', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'c', 'n', 'e', 'g', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'v', 'c', 'r', 'o', 't', 'a', 't', 'e', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'v', 'r', 'c', 'n', 'e', 'g', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 'v', 'r', 'n', 'd', 'p', 'a', 'c', 'k', 'w', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '2', '_', 'v', 'r', 'n', 'd', 'p', 'a', 'c', 'k', 'w',
+  'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'h', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'h', 'b', '_', 'n',
+  'o', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a',
+  't', 'h', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't',
+  'h', 'u', 'b', '_', 'n', 'o', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '2', '_', 'v', 's', 'a', 't', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
+  'v', 's', 'a', 't', 'w', 'h', '_', 'n', 'o', 'p', 'a', 'c', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'w', 'u', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '2', '_', 'v', 's', 'a', 't', 'w', 'u', 'h', '_', 'n', 'o', 'p',
+  'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'p', 'l', 'a',
+  't', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'p', 'l', 'a',
+  't', 'r', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'p', 'l', 'i',
+  'c', 'e', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'p', 'l',
+  'i', 'c', 'e', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'x',
+  't', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'x', 't', 'h',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 't', 'r', 'u', 'n', 'e', 'h',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 't', 'r', 'u', 'n', 'e', 'w',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 't', 'r', 'u', 'n', 'o', 'h',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 't', 'r', 'u', 'n', 'o', 'w',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'z', 'x', 't', 'b', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '2', '_', 'v', 'z', 'x', 't', 'h', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '4', '_', 'a', 'd', 'd', 'a', 'd', 'd', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '4', '_', 'a', 'd', 'd', 'i', '_', 'a', 's', 'l', '_', 'r', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '4', '_', 'a', 'd', 'd', 'i', '_', 'l', 's', 'r', '_',
+  'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'n', 'd', 'i', '_', 'a',
+  's', 'l', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'n', 'd',
+  'i', '_', 'l', 's', 'r', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
+  'c', 'l', 'b', 'a', 'd', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'c',
+  'l', 'b', 'p', 'a', 'd', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'c',
+  'l', 'b', 'p', 'n', 'o', 'r', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'e',
+  'x', 't', 'r', 'a', 'c', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'e', 'x',
+  't', 'r', 'a', 'c', 't', '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
+  'e', 'x', 't', 'r', 'a', 'c', 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
+  'e', 'x', 't', 'r', 'a', 'c', 't', 'p', '_', 'r', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '4', '_', 'l', 's', 'l', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'n',
+  't', 's', 't', 'b', 'i', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
+  'n', 't', 's', 't', 'b', 'i', 't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
+  '_', 'o', 'r', '_', 'a', 'n', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
+  'o', 'r', '_', 'a', 'n', 'd', 'i', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
+  'o', 'r', '_', 'o', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'o', 'r',
+  'i', '_', 'a', 's', 'l', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
+  'o', 'r', 'i', '_', 'l', 's', 'r', '_', 'r', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '4', '_', 'p', 'a', 'r', 'i', 't', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
+  's', 't', 'o', 'r', 'e', 'd', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '4', '_', 's', 'u', 'b', 'a', 'd', 'd', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '4', '_', 's', 'u', 'b', 'i', '_', 'a', 's', 'l', '_', 'r', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'S', '4', '_', 's', 'u', 'b', 'i', '_', 'l', 's', 'r',
+  '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'r', 'c', 'r', 'o',
+  't', 'a', 't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'r', 'c', 'r',
+  'o', 't', 'a', 't', 'e', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
+  '_', 'v', 'x', 'a', 'd', 'd', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '4', '_', 'v', 'x', 'a', 'd', 'd', 's', 'u', 'b', 'h', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '4', '_', 'v', 'x', 'a', 'd', 'd', 's', 'u', 'b', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '4', '_', 'v', 'x', 's', 'u', 'b', 'a', 'd', 'd', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'S', '4', '_', 'v', 'x', 's', 'u', 'b', 'a', 'd', 'd', 'h',
+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 's', 'u', 'b', 'a', 'd',
+  'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '5', '_', 'a', 's', 'r', 'h', 'u', 'b',
+  '_', 'r', 'n', 'd', '_', 's', 'a', 't', '_', 'g', 'o', 'o', 'd', 's', 'y',
+  'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '5', '_', 'a', 's', 'r', 'h',
+  'u', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '5', '_', 'p', 'o',
+  'p', 'c', 'o', 'u', 'n', 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '5', '_', 'v',
+  'a', 's', 'r', 'h', 'r', 'n', 'd', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n',
+  't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i',
+  '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_',
+  'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l',
+  '_', 'i', '_', 'p', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_',
+  'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'o', 'r', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'x', 'a',
+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_',
+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r',
+  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_',
+  'i', '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r',
+  'o', 'l', '_', 'i', '_', 'r', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
+  '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r', '_', 'o', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r', '_', 'x', 'a', 'c',
+  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'v', 's', 'p', 'l', 'a', 't', 'r',
+  'b', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'v', 't', 'r', 'u', 'n', 'e',
+  'h', 'b', '_', 'p', 'p', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'v', 't',
+  'r', 'u', 'n', 'o', 'h', 'b', '_', 'p', 'p', 'p', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'w', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'h', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'o', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'v', 's', 'p', 'l', 'a', 't',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'v', 's', 'p', 'l', 'a', 't',
+  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'v',
+  's', 'p', 'l', 'a', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'v',
+  's', 'p', 'l', 'a', 't', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'l', 'v', 's', 'p', 'l', 'a', 't', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'l', 'v', 's', 'p', 'l', 'a', 't', 'w', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'a', 'n',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'a', 'n',
+  'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r',
+  'e', 'd', '_', 'a', 'n', 'd', '_', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'p', 'r', 'e', 'd', '_', 'a', 'n', 'd', '_', 'n', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'n', 'o', 't',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'n', 'o', 't',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e',
+  'd', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd',
+  '_', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'p', 'r', 'e', 'd', '_', 'o', 'r', '_', 'n', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'p', 'r', 'e', 'd', '_', 'o', 'r', '_', 'n', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 's', 'c', 'a',
+  'l', 'a', 'r', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd',
+  '_', 's', 'c', 'a', 'l', 'a', 'r', '2', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 's', 'c', 'a', 'l', 'a',
+  'r', '2', 'v', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd',
+  '_', 's', 'c', 'a', 'l', 'a', 'r', '2', 'v', '2', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'x', 'o', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'x', 'o', 'r',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 's', 'h', 'u',
+  'f', 'f', 'e', 'q', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 's', 'h', 'u',
+  'f', 'f', 'e', 'q', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 's', 'h', 'u', 'f', 'f', 'e', 'q', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 's', 'h', 'u', 'f', 'f', 'e', 'q', 'w', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'S', '3', '2', 'b', '_', 'n', 'q',
+  'p', 'r', 'e', 'd', '_', 'a', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'S', '3', '2', 'b', '_', 'n', 'q', 'p', 'r', 'e', 'd', '_', 'a', 'i', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'S', '3', '2',
+  'b', '_', 'n', 't', '_', 'n', 'q', 'p', 'r', 'e', 'd', '_', 'a', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'S', '3', '2', 'b', '_', 'n', 't', '_',
+  'n', 'q', 'p', 'r', 'e', 'd', '_', 'a', 'i', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'S', '3', '2', 'b', '_', 'n', 't', '_',
+  'q', 'p', 'r', 'e', 'd', '_', 'a', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'S', '3', '2', 'b', '_', 'n', 't', '_', 'q', 'p', 'r', 'e', 'd', '_',
+  'a', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'S', '3', '2', 'b', '_', 'q', 'p', 'r', 'e', 'd', '_', 'a', 'i', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'S', '3', '2', 'b', '_', 'q', 'p', 'r', 'e',
+  'd', '_', 'a', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'b', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
+  'b', 's', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 'b', 's', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'b', 's', 'b', '_', 's', 'a', 't', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f',
+  'f', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'b', 's', 'd', 'i', 'f', 'f', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'u', 'b', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f',
+  'f', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd',
+  'i', 'f', 'f', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'w', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '_', 's',
+  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '_',
+  's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b',
+  's', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'b', 's', 'w', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 'b', 's', 'w', '_', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 'd', 'd', 'b', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', '_', 'd', 'v', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', '_', 'd', 'v', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b',
+  'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 'n',
+  'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
+  'd', 'd', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
+  'b', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'd', 'd', 'b', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'd', 'd', 'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 's', 'a', 't', '_', 'd', 'v',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 's', 'a', 't',
+  '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'v', '6', '_',
+  'v', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'v', '6',
+  '_', 'v', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'c', 'l', 'b', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'c', 'l', 'b', 'h',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
+  'd', 'c', 'l', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
+  'd', 'c', 'l', 'b', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 'd', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'd', 'd', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'd', 'd', 'h', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'd', 'd', 'h', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 'n', 'q', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 'n', 'q', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 'q',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 'q', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h',
+  's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h',
+  's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 'd', 'd', 'h', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 's', 'a', 't', '_', 'd', 'v', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
+  'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 'w',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
+  'd', 'h', 'w', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'd', 'd', 'h', 'w', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 'h', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b',
+  'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
+  'd', 'u', 'b', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', 'a', 't', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', 'a', 't',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
+  'd', 'u', 'b', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', 'a', 't', '_', 'd', 'v', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u',
+  'b', 'u', 'b', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 'd', 'd', 'u', 'b', 'u', 'b', 'b', '_', 's', 'a', 't', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u',
+  'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
+  'u', 'h', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', 'a', 't', '_', 'd', 'v', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', 'a', 't',
+  '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 'd', 'd', 'u', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'd', 'd', 'u', 'h', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 'w', '_', 'a', 'c', 'c', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 'w', '_', 'a',
+  'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'd', 'd', 'u', 'w', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 'd', 'd', 'u', 'w', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'w', 's', 'a', 't',
+  '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u',
+  'w', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'd', 'd', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '_', 'd', 'v', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '_', 'd', 'v', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 'n', 'q',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 'n', 'q', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
+  'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 'q',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
+  'd', 'w', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
+  'd', 'w', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 'd', 'd', 'w', 's', 'a', 't', '_', 'd', 'v', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 's', 'a', 't', '_', 'd',
+  'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
+  'l', 'i', 'g', 'n', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'l',
+  'i', 'g', 'n', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'l', 'i', 'g', 'n', 'b', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'l', 'i', 'g', 'n', 'b', 'i', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 'n', 'd', 'n', 'q', 'r', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 'n', 'd', 'n', 'q', 'r', 't', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'n', 'q', 'r',
+  't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n',
+  'd', 'n', 'q', 'r', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r', 't', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r', 't', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r',
+  't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n',
+  'd', 'q', 'r', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'n', 'q', 'v', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'n', 'q', 'v', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v',
+  'q', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'q',
+  'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
+  'n', 'd', 'v', 'r', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n',
+  'd', 'v', 'r', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'n', 'd', 'v', 'r', 't', '_', 'a', 'c', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'r', 't', '_', 'a', 'c', 'c',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
+  'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'h', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l',
+  'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
+  'l', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 's', 'l', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 's', 'l', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 's', 'l', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 's', 'l', 'w', '_', 'a', 'c', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', '_', 'a', 'c', 'c', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w',
+  'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', 'v', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h',
+  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r',
+  'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 's', 'r', 'h', 'b', 'r', 'n', 'd', 's', 'a', 't', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'b', 'r', 'n', 'd',
+  's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 's', 'r', 'h', 'b', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 's', 'r', 'h', 'b', 's', 'a', 't', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u', 'b', 'r',
+  'n', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
+  'r', 'h', 'u', 'b', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u', 'b', 's',
+  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u',
+  'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 's', 'r', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 's', 'r', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 's', 'r', 'u', 'h', 'u', 'b', 'r', 'n', 'd', 's', 'a',
+  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'h', 'u',
+  'b', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'h', 'u', 'b', 's', 'a', 't',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'h', 'u', 'b',
+  's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 's', 'r', 'u', 'w', 'u', 'h', 'r', 'n', 'd', 's', 'a', 't', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'w', 'u', 'h', 'r',
+  'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 's', 'r', 'u', 'w', 'u', 'h', 's', 'a', 't', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'w', 'u', 'h', 's', 'a',
+  't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
+  's', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
+  'r', 'w', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
+  's', 'r', 'w', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 's', 'r', 'w', 'h', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', 'r', 'n', 'd', 's',
+  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h',
+  'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', 's', 'a', 't', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', 's', 'a', 't', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w',
+  'u', 'h', 'r', 'n', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 's', 'r', 'w', 'u', 'h', 'r', 'n', 'd', 's', 'a', 't', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w',
+  'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
+  'r', 'w', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'v', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 's', 'r', 'w', 'v', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g', 'n', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g', 'n', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g', 'n',
+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g', 'n',
+  'p', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
+  'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'b',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v',
+  'g', 'b', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v',
+  'g', 'b', 'r', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'v', 'g', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'v', 'g', 'h', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'v', 'g', 'h', 'r', 'n', 'd', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r', 'n',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r',
+  'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'v', 'g', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v',
+  'g', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 'v', 'g', 'u', 'h', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'a', 'v', 'g', 'u', 'h', 'r', 'n', 'd', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'w', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'w', 'r',
+  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'w',
+  'r', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v',
+  'g', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'v', 'g', 'w', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'a', 'v', 'g', 'w', 'r', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'c', 'l', '0', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'c', 'l', '0', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'c', 'l', '0', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'c', 'l', '0', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'c', 'o', 'm', 'b', 'i', 'n', 'e', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'c', 'o', 'm', 'b', 'i', 'n', 'e', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', '0', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'd', '0', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'd', 'd', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
+  'd', '0', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'd', 'e', 'a', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e',
+  'a', 'l', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'd', 'e', 'a', 'l', 'b', '4', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'd', 'e', 'a', 'l', 'b', '4', 'w', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'h', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'v', 'd', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'v', 'd', 'd', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'l',
+  't', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'l', 't', 'a',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
+  'p', 'y', 'b', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
+  'p', 'y', 'b', 'u', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_',
+  'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_', 'd', 'v', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_', 'd', 'v', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p',
+  'y', 'b', 'u', 's', '_', 'd', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_', 'd', 'v', '_',
+  'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'd', 'm', 'p', 'y', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'd', 'm', 'p', 'y', 'h', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'a', 'c', 'c', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'a',
+  'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'd', 'm', 'p', 'y', 'h', 'b', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'd', 'v', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b',
+  '_', 'd', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'd', 'm', 'p', 'y', 'h', 'b', '_', 'd', 'v', '_', 'a', 'c', 'c', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y',
+  'h', 'i', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
+  'p', 'y', 'h', 'i', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'i', 's', 'a', 't', '_',
+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y',
+  'h', 'i', 's', 'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'a', 't',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'a',
+  't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
+  'm', 'p', 'y', 'h', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'a', 't', '_', 'a', 'c',
+  'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
+  'm', 'p', 'y', 'h', 's', 'u', 'i', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 'i', 's', 'a', 't', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p',
+  'y', 'h', 's', 'u', 'i', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 'i', 's', 'a',
+  't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 's', 'a', 't', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 's', 'a',
+  't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
+  'm', 'p', 'y', 'h', 's', 'u', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 's', 'a',
+  't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'v', 's', 'a', 't', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'v', 's', 'a', 't', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p',
+  'y', 'h', 'v', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'v', 's', 'a', 't', '_', 'a', 'c',
+  'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
+  's', 'a', 'd', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 's',
+  'a', 'd', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'd', 's', 'a', 'd', 'u', 'h', '_', 'a', 'c', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'd', 's', 'a', 'd', 'u', 'h', '_', 'a', 'c', 'c',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'a',
+  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'a',
+  'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'e', 'q', 'b', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e',
+  'q', 'b', '_', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'e', 'q', 'b', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'e', 'q', 'b', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'e', 'q', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'a', 'n', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'a', 'n', 'd', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'o',
+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'o', 'r',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q',
+  'h', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q',
+  'h', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'e', 'q', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e',
+  'q', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'e', 'q', 'w', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'e', 'q', 'w', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'o', 'r', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'o', 'r', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'x', 'o', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'x', 'o', 'r',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 'a',
+  't', 'h', 'e', 'r', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g',
+  'a', 't', 'h', 'e', 'r', 'm', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h', 'e', 'r', 'm', 'h', 'q', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h', 'e', 'r', 'm', 'h',
+  'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g',
+  'a', 't', 'h', 'e', 'r', 'm', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'g', 'a', 't', 'h', 'e', 'r', 'm', 'h', 'w', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h', 'e', 'r', 'm',
+  'h', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h',
+  'e', 'r', 'm', 'h', 'w', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'g', 'a', 't', 'h', 'e', 'r', 'm', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h', 'e', 'r', 'm', 'w', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h',
+  'e', 'r', 'm', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 'a',
+  't', 'h', 'e', 'r', 'm', 'w', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'g', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'g', 't', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'g', 't', 'b', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'g', 't', 'b', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'o', 'r', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'o', 'r', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'x',
+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'x',
+  'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'g', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'h',
+  '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'h',
+  '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'g', 't', 'h', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'g', 't', 'h', '_', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'x', 'o', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'x', 'o', 'r', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'a',
+  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_',
+  'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'g', 't', 'u', 'b', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'g', 't', 'u', 'b', '_', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'x', 'o', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'x', 'o', 'r',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
+  'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u',
+  'h', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
+  'u', 'h', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_', 'o', 'r', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_', 'o', 'r', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_', 'x',
+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_',
+  'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'g', 't', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
+  'u', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'g', 't', 'u', 'w', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'g', 't', 'u', 'w', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'w', '_', 'o', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'w', '_', 'o', 'r', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u',
+  'w', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
+  'u', 'w', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'g', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'g', 't', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'g', 't', 'w', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'g', 't', 'w', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'o', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'o', 'r', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'x', 'o',
+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'x', 'o',
+  'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'i',
+  'n', 's', 'e', 'r', 't', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'i', 'n', 's', 'e', 'r', 't', 'w', 'r', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l', 'i', 'g', 'n', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l', 'i', 'g', 'n', 'b', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l', 'i',
+  'g', 'n', 'b', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l',
+  'i', 'g', 'n', 'b', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'l', 's', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'l', 's', 'r', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'l', 's', 'r', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
+  's', 'r', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'l', 's', 'r', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
+  's', 'r', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'l', 's', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
+  's', 'r', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'l', 's', 'r', 'w', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
+  's', 'r', 'w', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'l', 'u', 't', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
+  'u', 't', '4', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'l', 'u', 't', 'v', 'v', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'l', 'u', 't', 'v', 'v', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_', 'n', 'm', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_', 'n', 'm',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u',
+  't', 'v', 'v', 'b', '_', 'o', 'r', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_', 'o', 'r', 'a', 'c', 'c',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u',
+  't', 'v', 'v', 'b', '_', 'o', 'r', 'a', 'c', 'c', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_', 'o', 'r', 'a', 'c',
+  'c', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'l', 'u', 't', 'v', 'v', 'b', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'l', 'u', 't', 'v', 'v', 'b', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_',
+  'n', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w',
+  'h', '_', 'n', 'm', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', 'o', 'r', 'a', 'c', 'c', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', 'o',
+  'r', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', 'o', 'r', 'a', 'c', 'c', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_',
+  'o', 'r', 'a', 'c', 'c', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', 'i', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 's', 'k', 'e', 'd',
+  's', 't', 'o', 'r', 'e', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'm', 'a', 's', 'k', 'e', 'd', 's', 't', 'o', 'r', 'e', 'n', 'q', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 's', 'k',
+  'e', 'd', 's', 't', 'o', 'r', 'e', 'n', 't', 'n', 'q', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'a', 's', 'k', 'e', 'd', 's', 't', 'o', 'r', 'e',
+  'n', 't', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'a', 's', 'k', 'e', 'd', 's', 't', 'o', 'r', 'e', 'n', 't',
+  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 's', 'k', 'e', 'd',
+  's', 't', 'o', 'r', 'e', 'n', 't', 'q', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'm', 'a', 's', 'k', 'e', 'd', 's', 't', 'o',
+  'r', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 's', 'k',
+  'e', 'd', 's', 't', 'o', 'r', 'e', 'q', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'b', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'a', 'x', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'a', 'x', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'a', 'x', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'a', 'x', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'a', 'x', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'i', 'n', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'i', 'n', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'm', 'i', 'n', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'i', 'n', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'm', 'i', 'n', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'i', 'n', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'i', 'n', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', '_', 'a',
+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u',
+  's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', 'v', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', 'v', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 'u', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 'u', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b',
+  'u', 'u', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
+  'p', 'a', 'b', 'u', 'u', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 'u', 'v', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 'u', 'v', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a',
+  'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'h', 'b',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
+  'a', 'h', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'm', 'p', 'a', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'h', 'h', 's', 'a', 't',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'h', 'h', 's', 'a',
+  't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
+  'p', 'a', 'u', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
+  'a', 'u', 'h', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'p', 'a', 'u', 'h', 'b', '_', 'a', 'c', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'u', 'h', 'b', '_', 'a', 'c', 'c',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
+  'a', 'u', 'h', 'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'm', 'p', 'a', 'u', 'h', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 's', 'u', 'h', 'u',
+  'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 's',
+  'u', 'h', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', '_',
+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b',
+  'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', 'v', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', 'v', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's',
+  'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
+  'y', 'b', 'u', 's', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'v', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'v', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'v', '_', 'a',
+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'v',
+  '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'p', 'y', 'e', 'w', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'p', 'y', 'e', 'w', 'u', 'h', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'e', 'w', 'u', 'h', '_',
+  '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'e', 'w',
+  'u', 'h', '_', '6', '4', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'p', 'y', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'm', 'p', 'y', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'p', 'y', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'p', 'y', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 's', 'a',
+  't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
+  'y', 'h', 's', 'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 's', 'r', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 's', 'r', 's', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
+  'h', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h',
+  's', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'm', 'p', 'y', 'h', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
+  'p', 'y', 'h', 'u', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'p', 'y', 'h', 'u', 's', '_', 'a', 'c', 'c', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'u', 's', '_', 'a', 'c',
+  'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
+  'p', 'y', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
+  'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'm', 'p', 'y', 'h', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'p', 'y', 'h', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'v', 's',
+  'r', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'v',
+  's', 'r', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'm', 'p', 'y', 'i', 'e', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'm', 'p', 'y', 'i', 'e', 'o', 'h', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'h', '_', 'a',
+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e',
+  'w', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
+  'e', 'w', 'u', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h', '_', 'a', 'c', 'c', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
+  'i', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
+  'p', 'y', 'i', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h', 'b', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h', 'b',
+  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
+  'i', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'o', 'w', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'o', 'w', 'h', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'b',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
+  'y', 'i', 'w', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'm', 'p', 'y', 'i', 'w', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'h', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
+  'i', 'w', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'm', 'p', 'y', 'i', 'w', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'u', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'u', 'b',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
+  'y', 'i', 'w', 'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'p', 'y', 'i', 'w', 'u', 'b', '_', 'a', 'c', 'c', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o',
+  'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w',
+  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
+  'p', 'y', 'o', 'w', 'h', '_', '6', '4', '_', 'a', 'c', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', '6', '4', '_',
+  'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 'r', 'n', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 'r', 'n', 'd', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
+  'o', 'w', 'h', '_', 'r', 'n', 'd', '_', 's', 'a', 'c', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 'r', 'n', 'd',
+  '_', 's', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 's', 'a', 'c', 'c', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 's',
+  'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'm', 'p', 'y', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
+  'p', 'y', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'p', 'y', 'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'b', '_', 'a', 'c', 'c', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u',
+  'b', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'b',
+  'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
+  'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'm', 'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u',
+  'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
+  'y', 'u', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'e', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'e', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'e', '_',
+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u',
+  'h', 'e', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '_', 'a',
+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h',
+  'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'm', 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
+  'u', 'x', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'n', 'a', 'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'a',
+  'v', 'g', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'n', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n',
+  'a', 'v', 'g', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'n', 'a', 'v', 'g', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'n', 'a', 'v', 'g', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'n', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'n', 'a', 'v', 'g', 'w', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'n', 'o', 'r', 'm', 'a', 'm', 't', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'o', 'r', 'm', 'a', 'm', 't', 'h',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'o',
+  'r', 'm', 'a', 'm', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n',
+  'o', 'r', 'm', 'a', 'm', 't', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'n', 'o', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'o', 'r', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c',
+  'k', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k',
+  'e', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'p', 'a', 'c', 'k', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p',
+  'a', 'c', 'k', 'e', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'p', 'a', 'c', 'k', 'h', 'b', '_', 's', 'a', 't', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'h', 'b', '_', 's', 'a',
+  't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p',
+  'a', 'c', 'k', 'h', 'u', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'p', 'a', 'c', 'k', 'h', 'u', 'b', '_', 's', 'a', 't', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c',
+  'k', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k',
+  'o', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'p', 'a', 'c', 'k', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p',
+  'a', 'c', 'k', 'o', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'p', 'a', 'c', 'k', 'w', 'h', '_', 's', 'a', 't', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'w', 'h', '_', 's', 'a',
+  't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p',
+  'a', 'c', 'k', 'w', 'u', 'h', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 'p', 'a', 'c', 'k', 'w', 'u', 'h', '_', 's', 'a', 't', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'o', 'p',
+  'c', 'o', 'u', 'n', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p',
+  'o', 'p', 'c', 'o', 'u', 'n', 't', 'h', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'p', 'r', 'e', 'f', 'i', 'x', 'q', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'r', 'e', 'f', 'i', 'x', 'q', 'b',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'r',
+  'e', 'f', 'i', 'x', 'q', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p',
+  'r', 'e', 'f', 'i', 'x', 'q', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'p', 'r', 'e', 'f', 'i', 'x', 'q', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'p', 'r', 'e', 'f', 'i', 'x', 'q', 'w', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'd', 'e',
+  'l', 't', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'd', 'e', 'l',
+  't', 'a', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'r', 'm', 'p', 'y', 'b', 'u', 'b', '_', 'r', 't', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 'b', '_', 'r', 't', 't',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm',
+  'p', 'y', 'b', 'u', 'b', '_', 'r', 't', 't', '_', 'a', 'c', 'c', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 'b', '_', 'r',
+  't', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u',
+  's', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm',
+  'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's',
+  'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
+  'm', 'p', 'y', 'b', 'u', 's', 'i', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'i', '_', 'a', 'c',
+  'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
+  'm', 'p', 'y', 'b', 'u', 's', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'r', 'm', 'p', 'y', 'b', 'u', 's', 'v', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'v', '_',
+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y',
+  'b', 'u', 's', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'v', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'v', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'v',
+  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p',
+  'y', 'b', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_',
+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y',
+  'u', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_', 'r', 't', 't', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_', 'r',
+  't', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'r', 'm', 'p', 'y', 'u', 'b', '_', 'r', 't', 't', '_', 'a', 'c', 'c', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_', 'r',
+  't', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'i', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b',
+  'i', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm',
+  'p', 'y', 'u', 'b', 'i', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'v', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'v', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p',
+  'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 'r', 'm', 'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'r', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'r', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'h', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'h', 'b', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u',
+  'n', 'd', 'h', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o',
+  'u', 'n', 'd', 'h', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'u', 'h', 'u', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'u', 'h', 'u', 'b',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o',
+  'u', 'n', 'd', 'u', 'w', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'r', 'o', 'u', 'n', 'd', 'u', 'w', 'u', 'h', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'w', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'w', 'h', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u',
+  'n', 'd', 'w', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o',
+  'u', 'n', 'd', 'w', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b', 'i', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b',
+  'i', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 's',
+  'a', 'd', 'u', 'b', 'i', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'u', 'w',
+  'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'u', 'w',
+  'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  's', 'a', 't', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a',
+  't', 'w', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'b', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't',
+  't', 'e', 'r', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c',
+  'a', 't', 't', 'e', 'r', 'm', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'h', '_',
+  'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't',
+  't', 'e', 'r', 'm', 'h', '_', 'a', 'd', 'd', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm',
+  'h', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't',
+  'e', 'r', 'm', 'h', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'h', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'h',
+  'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
+  'c', 'a', 't', 't', 'e', 'r', 'm', 'h', 'w', '_', 'a', 'd', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'h',
+  'w', '_', 'a', 'd', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'h', 'w', 'q', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm',
+  'h', 'w', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'w', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't',
+  'e', 'r', 'm', 'w', '_', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'w', '_', 'a', 'd', 'd', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a',
+  't', 't', 'e', 'r', 'm', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'w', 'q', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 's', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 's', 'h', 'u', 'f', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 's', 'h', 'u', 'f', 'e', 'h', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'b', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'e',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'e',
+  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
+  'h', 'u', 'f', 'f', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h',
+  'u', 'f', 'f', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 's', 'h', 'u', 'f', 'f', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 's', 'h', 'u', 'f', 'f', 'o', 'b', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'v', 'd', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'v', 'd',
+  'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
+  'h', 'u', 'f', 'o', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
+  'h', 'u', 'f', 'o', 'e', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'e', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'e', 'h', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'h', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b',
+  '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b',
+  '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 's', 'u', 'b', 'b', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  's', 'u', 'b', 'b', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 's', 'u', 'b', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 's', 'u', 'b', 'b', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', 's', 'a', 't', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', 's', 'a', 't', '_', '1', '2',
+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', 's',
+  'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
+  'b', 'b', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'v', '6', '_', 'v', 's', 'u', 'b', 'c', 'a', 'r', 'r', 'y', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'v', '6', '_', 'v', 's', 'u', 'b', 'c', 'a', 'r', 'r', 'y',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
+  'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
+  'h', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
+  'h', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 's', 'u', 'b', 'h', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 's', 'u', 'b', 'h', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'q', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 's', 'u', 'b', 'h', 'q', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 's', 'a', 't', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 's', 'a', 't', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h',
+  's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
+  'u', 'b', 'h', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'w', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 'h', '_', '1',
+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u',
+  'b', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
+  'u', 'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 's', 'a', 't', '_', 'd', 'v', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 's', 'a', 't',
+  '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 's', 'u', 'b', 'u', 'b', 'u', 'b', 'b', '_', 's', 'a', 't', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 'u', 'b', 'b', '_',
+  's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 's', 'u', 'b', 'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 's', 'u', 'b', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 's', 'a',
+  't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
+  'u', 'h', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 'w', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'w', 's',
+  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'w',
+  's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
+  'v', 's', 'u', 'b', 'u', 'w', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'w', 's', 'a', 't', '_', 'd',
+  'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
+  'u', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
+  'b', 'w', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
+  'b', 'w', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
+  '6', '_', 'v', 's', 'u', 'b', 'w', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 's', 'u', 'b', 'w', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 'q', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 's', 'u', 'b', 'w', 'q', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 's', 'a', 't', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 's', 'a', 't', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
+  'w', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  's', 'u', 'b', 'w', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'w', 'a', 'p', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 's', 'w', 'a', 'p', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '_', 'a',
+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b',
+  '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '_', '1', '2', '8', 'B', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '_',
+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y',
+  'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '_', '1', '2', '8', 'B',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '_',
+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y',
+  'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'b', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k',
+  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u',
+  'n', 'p', 'a', 'c', 'k', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
+  'u', 'n', 'p', 'a', 'c', 'k', 'o', 'b', '_', '1', '2', '8', 'B', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'o', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
+  'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'o', 'h',
+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n',
+  'p', 'a', 'c', 'k', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u',
+  'n', 'p', 'a', 'c', 'k', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+  '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'u', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
+  'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'u', 'h', '_',
+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'x', 'o', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'x', 'o', 'r', '_', '1', '2', '8',
+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'z', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'z', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
+  'V', '6', '_', 'v', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'z',
+  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '2', '_', 'd', 'c',
+  'c', 'l', 'e', 'a', 'n', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '2', '_', 'd', 'c',
+  'c', 'l', 'e', 'a', 'n', 'i', 'n', 'v', 'a', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '2',
+  '_', 'd', 'c', 'i', 'n', 'v', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '2', '_', 'd',
+  'c', 'z', 'e', 'r', 'o', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '4', '_', 'l', '2',
+  'f', 'e', 't', 'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '5', '_', 'l', '2', 'f',
+  'e', 't', 'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'c', 'i', 'r', 'c', '_', 'l', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r',
+  'c', '_', 'l', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'u', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c',
+  '_', 's', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'c', 'i', 'r', 'c', '_', 's', 't', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 's', 't', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 's', 't',
+  'h', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c',
+  'i', 'r', 'c', '_', 's', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', '_', 'm', 'm', '2', '5', '6', 'i', '_', 'v', 'a', 'd', 'd',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
+  'A', 'G', 'O', 'N', '_', 'p', 'r', 'e', 'f', 'e', 't', 'c', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a',
+  'b', 's', 'q', '_', 's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'b', 's', 'q', '_', 's',
+  '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'a', 'b', 's', 'q', '_', 's', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
+  '_', 'a', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'a', 'd', 'd', '_', 'a', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', '_',
+  'a', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'a', 'd', 'd', '_', 'a', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'q',
+  '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'a', 'd', 'd', 'q', '_', 's', '_', 'p', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a',
+  'd', 'd', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'q', 'h', '_', 'p',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
+  's', '_', 'a', 'd', 'd', 'q', 'h', '_', 'r', '_', 'p', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd',
+  'd', 'q', 'h', '_', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'q', 'h', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'a', 'd', 'd', 's', '_', 'a', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'a', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'a', 'd', 'd', 's', '_', 'a', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'a',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'a', 'd', 'd', 's', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_',
+  's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'a', 'd', 'd', 's', '_', 's', '_', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's',
+  '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'u', '_', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
+  's', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'u', '_', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd',
+  'd', 's', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 's', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd',
+  'd', 'u', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'u', '_', 'q', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a',
+  'd', 'd', 'u', '_', 's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'u', '_', 's',
+  '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'a', 'd', 'd', 'u', 'h', '_', 'q', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd',
+  'd', 'u', 'h', '_', 'r', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', '_', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
+  'd', 'd', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', '_', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'a', 'd', 'd', 'v', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', 'i', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'a', 'd', 'd', 'v', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', 'i', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
+  '_', 'a', 'd', 'd', 'w', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'a', 'n', 'd', '_', 'v', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'n', 'd', 'i',
+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
+  'p', 's', '_', 'a', 'p', 'p', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 's',
+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'a', 's', 'u', 'b', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_',
+  's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'a', 's', 'u', 'b', '_', 's', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b',
+  '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 'u', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u',
+  'b', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 'u', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v',
+  'e', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 's', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e',
+  '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'a', 'v', 'e', '_', 's', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_',
+  'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'a', 'v', 'e', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 'u',
+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'a', 'v', 'e', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 's',
+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'a', 'v', 'e', 'r', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_',
+  's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'a', 'v', 'e', 'r', '_', 's', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r',
+  '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 'u', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e',
+  'r', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 'u', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'b',
+  'a', 'l', 'i', 'g', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', '_', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r',
+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'b', 'c', 'l', 'r', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', '_', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
+  'c', 'l', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', 'i', '_', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c',
+  'l', 'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', 'i', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n',
+  's', 'l', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's',
+  'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'b', 'i', 'n', 's', 'l', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l',
+  'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'b', 'i', 'n', 's', 'l', 'i', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's',
+  'l', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', 'i', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n',
+  's', 'r', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's',
+  'r', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'b', 'i', 'n', 's', 'r', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r',
+  'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'b', 'i', 'n', 's', 'r', 'i', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's',
+  'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', 'i', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'b', 'i',
+  't', 'r', 'e', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'b', 'm', 'n', 'z', '_', 'v', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'm', 'n', 'z', 'i',
+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'b', 'm', 'z', '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'm', 'z', 'i', '_', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n',
+  'e', 'g', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'b', 'n', 'e', 'g', '_', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', '_',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'b', 'n', 'e', 'g', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', 'i', '_', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
+  'n', 'e', 'g', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', 'i', '_', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n',
+  'e', 'g', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'b', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'b', 'n', 'z', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'v', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
+  '_', 'b', 'p', 'o', 's', 'g', 'e', '3', '2', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 'l', '_', 'v',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'b', 's', 'e', 'l', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', '_', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's',
+  'e', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'b', 's', 'e', 't', '_', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', '_',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'b', 's', 'e', 't', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', 'i', '_', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'b', 's', 'e', 't', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', 'i', '_', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
+  'z', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'b', 'z', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'z', '_', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'z', '_', 'v',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'b', 'z', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'c', 'e', 'q', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
+  'e', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'c', 'e', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', 'i', '_', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'c', 'e', 'q', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', 'i', '_', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q',
+  'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'c', 'f', 'c', 'm', 's', 'a', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 's', '_',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'c', 'l', 'e', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 's', '_', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'c', 'l', 'e', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 'u', '_', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
+  'l', 'e', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 'u', '_', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l',
+  'e', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 's', '_', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l',
+  'e', 'i', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 's', '_', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
+  'l', 'e', 'i', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 'u', '_', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'c', 'l', 'e', 'i', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 'u', '_',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'c', 'l', 'e', 'i', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 's', '_',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'c', 'l', 't', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 's', '_', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'c', 'l', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 'u', '_', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
+  'l', 't', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 'u', '_', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l',
+  't', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 's', '_', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l',
+  't', 'i', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 's', '_', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
+  'l', 't', 'i', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 'u', '_', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'c', 'l', 't', 'i', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 'u', '_',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'c', 'l', 't', 'i', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', '_', 'e',
+  'q', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 'i', 'p', 's', '_', 'c', 'm', 'p', '_', 'l', 'e', '_', 'p', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  'c', 'm', 'p', '_', 'l', 't', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'd',
+  'u', '_', 'e', 'q', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'd', 'u', '_',
+  'l', 'e', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'd', 'u', '_', 'l', 't',
+  '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'u', '_', 'e', 'q', '_', 'q', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
+  '_', 'c', 'm', 'p', 'g', 'u', '_', 'l', 'e', '_', 'q', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm',
+  'p', 'g', 'u', '_', 'l', 't', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'u', '_',
+  'e', 'q', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'u', '_', 'l', 'e', '_', 'q',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
+  's', '_', 'c', 'm', 'p', 'u', '_', 'l', 't', '_', 'q', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p',
+  'y', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 's', '_', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o',
+  'p', 'y', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 's', '_', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
+  'o', 'p', 'y', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 'u', '_', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'c', 'o', 'p', 'y', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 'u', '_',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'c', 't', 'c', 'm', 's', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 's', '_', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd',
+  'i', 'v', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 's', '_', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i',
+  'v', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 'u', '_', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v',
+  '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'd', 'i', 'v', '_', 'u', '_', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_',
+  'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'd', 'l', 's', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_', 's', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'd', 'o', 't', 'p', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_', 's',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'd', 'o', 't', 'p', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_',
+  'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'd', 'o', 't', 'p', '_', 'u', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a',
+  '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 's', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd',
+  'p', 'a', 'd', 'd', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 's',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 'u', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd',
+  'd', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 'u', '_', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  'd', 'p', 'a', 'q', '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a',
+  'q', '_', 's', 'a', '_', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'q', 'x', '_',
+  's', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'q', 'x', '_', 's', 'a',
+  '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'u', '_', 'h', '_', 'q', 'b',
+  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
+  's', '_', 'd', 'p', 'a', 'u', '_', 'h', '_', 'q', 'b', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p',
+  'a', 'x', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', '_', 'w', '_', 'p',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
+  's', '_', 'd', 'p', 's', 'q', '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd',
+  'p', 's', 'q', '_', 's', 'a', '_', 'l', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'q',
+  'x', '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'q', 'x', '_',
+  's', 'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'u', '_', 'h', '_',
+  'q', 'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'd', 'p', 's', 'u', '_', 'h', '_', 'q', 'b', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd',
+  'p', 's', 'u', 'b', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_', 's',
+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'd', 'p', 's', 'u', 'b', '_', 's', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's', 'u',
+  'b', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_', 'u', '_', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd',
+  'p', 's', 'u', 'b', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'x', '_', 'w',
+  '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'e', 'x', 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'p', 'd', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
+  '_', 'e', 'x', 't', 'r', '_', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'r', '_',
+  'r', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'r', '_', 's', '_', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e',
+  'x', 't', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'f', 'a', 'd', 'd', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'a', 'd', 'd',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'f', 'c', 'a', 'f', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'a', 'f', '_', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
+  'c', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'f', 'c', 'e', 'q', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'l', 'a',
+  's', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'f', 'c', 'l', 'a', 's', 's', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'l',
+  'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'f', 'c', 'l', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'l', 't', '_', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'f', 'c', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'n', 'e', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'n',
+  'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'f', 'c', 'o', 'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'o', 'r', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'f', 'c', 'u', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'e', 'q', '_', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
+  'c', 'u', 'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'l', 'e', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c',
+  'u', 'l', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'l', 't', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u',
+  'n', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'f', 'c', 'u', 'n', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'n', 'e', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'f', 'c', 'u', 'n', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'd', 'i', 'v', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
+  'd', 'i', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'd', 'o', '_', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x',
+  'd', 'o', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'f', 'e', 'x', 'p', '2', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'p',
+  '2', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'f', 'e', 'x', 'u', 'p', 'l', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'u',
+  'p', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'f', 'e', 'x', 'u', 'p', 'r', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x',
+  'u', 'p', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_', 's', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
+  'f', 'i', 'n', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_', 'u',
+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'f', 'f', 'i', 'n', 't', '_', 'u', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'q', 'l',
+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'f', 'f', 'q', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'q', 'r', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
+  'f', 'q', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'f', 'i', 'l', 'l', '_', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l', 'l',
+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'f', 'i', 'l', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l', 'l', '_', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
+  'l', 'o', 'g', '2', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'f', 'l', 'o', 'g', '2', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm',
+  'a', 'd', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'd', 'd', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'a',
+  'x', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'x', '_', 'a', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm',
+  'a', 'x', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'f', 'm', 'a', 'x', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'i', 'n', '_',
+  'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'f', 'm', 'i', 'n', '_', 'a', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'i', 'n',
+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'f', 'm', 'i', 'n', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 's', 'u', 'b', '_', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'f', 'm', 's', 'u', 'b', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'u', 'l', '_', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm',
+  'u', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'f', 'r', 'c', 'p', '_', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 'c', 'p', '_',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'f', 'r', 'i', 'n', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 'i', 'n', 't', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'f', 'r', 's', 'q', 'r', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 's', 'q', 'r', 't', '_',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'f', 's', 'a', 'f', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'a', 'f', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's',
+  'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'f', 's', 'e', 'q', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'l', 'e', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'f', 's', 'l', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'l', 't', '_', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's',
+  'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'f', 's', 'n', 'e', '_', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'n', 'e', '_',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'f', 's', 'o', 'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'o', 'r', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's',
+  'q', 'r', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'f', 's', 'q', 'r', 't', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u',
+  'b', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'f', 's', 'u', 'b', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'e', 'q', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'f', 's', 'u', 'e', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'l', 'e', '_', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'f', 's', 'u', 'l', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'l', 't', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
+  's', 'u', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'n', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u',
+  'n', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'f', 's', 'u', 'n', 'e', '_', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'n', 'e',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'f', 't', 'i', 'n', 't', '_', 's', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'i', 'n',
+  't', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'f', 't', 'i', 'n', 't', '_', 'u', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
+  't', 'i', 'n', 't', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'q', '_', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't',
+  'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_', 's', '_', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't',
+  'r', 'u', 'n', 'c', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_',
+  'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_', 'u', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a',
+  'd', 'd', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd', 'd', '_', 's', '_', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h',
+  'a', 'd', 'd', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd', 'd', '_', 'u', '_', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'h', 'a', 'd', 'd', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd', 'd', '_', 'u', '_',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'h', 's', 'u', 'b', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b', '_', 's',
+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'h', 's', 'u', 'b', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b', '_',
+  'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'h', 's', 'u', 'b', '_', 'u', '_', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b',
+  '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'i', 'l', 'v', 'e', 'v', '_', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'e',
+  'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'i', 'l', 'v', 'e', 'v', '_', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'e', 'v',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'i', 'l', 'v', 'l', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i',
+  'l', 'v', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'o',
+  'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'i', 'l', 'v', 'o', 'd', '_', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'o', 'd',
+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'i', 'l', 'v', 'o', 'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'r', '_', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'i', 'l', 'v', 'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'r', '_', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v',
+  'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'i', 'n', 's', 'e', 'r', 't', '_', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'e',
+  'r', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'i', 'n', 's', 'e', 'r', 't', '_', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's',
+  'e', 'r', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 'i', 'p', 's', '_', 'i', 'n', 's', 'v', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'v', 'e',
+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'i', 'n', 's', 'v', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'v', 'e', '_',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'i', 'n', 's', 'v', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 'b', 'u', 'x', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd',
+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'l', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'l', 'd', '_', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd', '_', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l',
+  'd', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'l', 'd', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd', 'i', '_', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l',
+  'd', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 'i', 'p', 's', '_', 'l', 'h', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 's', 'a', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 'w',
+  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
+  's', '_', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', '_', 'q', '_', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
+  'a', 'd', 'd', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'r', '_', 'q', '_',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'm', 'a', 'd', 'd', 'r', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'd', 'd',
+  'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'm', 'a', 'd', 'd', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'v', '_', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'm', 'a', 'd', 'd', 'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'v', '_', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  'm', 'a', 'q', '_', 's', '_', 'w', '_', 'p', 'h', 'l', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'q',
+  '_', 's', '_', 'w', '_', 'p', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'q', '_', 's', 'a',
+  '_', 'w', '_', 'p', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'q', '_', 's', 'a', '_', 'w',
+  '_', 'p', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'a', '_', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_',
+  'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'm', 'a', 'x', '_', 'a', '_', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'a',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'm', 'a', 'x', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 's', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'm', 'a', 'x', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 's', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'm', 'a', 'x', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'u', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
+  'a', 'x', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'u', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a',
+  'x', 'i', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 's', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
+  'a', 'x', 'i', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 's', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'm', 'a', 'x', 'i', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 'u', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'm', 'a', 'x', 'i', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 'u',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'm', 'i', 'n', '_', 'a', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'a', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'm', 'i', 'n', '_', 'a', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'a', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'm', 'i', 'n', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 's', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
+  'i', 'n', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 's', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i',
+  'n', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'u', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n',
+  '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'u', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i',
+  '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 's', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n',
+  'i', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 's', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i',
+  'n', 'i', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 'u', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
+  'i', 'n', 'i', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 'u', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'm', 'o', 'd', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 's', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
+  'o', 'd', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 's', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o',
+  'd', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 'u', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd',
+  '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'm', 'o', 'd', '_', 'u', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'o', 'd',
+  's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'm', 'o', 'v', 'e', '_', 'v', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 's', 'u', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
+  's', 'u', 'b', '_', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b', '_', 'q', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'm', 's', 'u', 'b', 'r', '_', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'r', '_',
+  'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'm', 's', 'u', 'b', 'u', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'v', '_',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'm', 's', 'u', 'b', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'v', '_', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'm', 's', 'u', 'b', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 't', 'h', 'l', 'i', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  'm', 'u', 'l', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', '_', 'q', '_', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u',
+  'l', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', '_', 's', '_', 'p', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  'm', 'u', 'l', 'e', 'q', '_', 's', '_', 'w', '_', 'p', 'h', 'l', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm',
+  'u', 'l', 'e', 'q', '_', 's', '_', 'w', '_', 'p', 'h', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u',
+  'l', 'e', 'u', '_', 's', '_', 'p', 'h', '_', 'q', 'b', 'l', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u',
+  'l', 'e', 'u', '_', 's', '_', 'p', 'h', '_', 'q', 'b', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u',
+  'l', 'q', '_', 'r', 's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 'q', '_', 'r',
+  's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'm', 'u', 'l', 'q', '_', 's', '_', 'p', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm',
+  'u', 'l', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'r', '_', 'q', '_', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'm', 'u', 'l', 'r', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 's', 'a', '_',
+  'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 's', 'a', 'q', '_', 's', '_', 'w',
+  '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'm', 'u', 'l', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 't', 'u', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
+  'u', 'l', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'v', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'v',
+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'm', 'u', 'l', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'o', 'c', '_', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n',
+  'l', 'o', 'c', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'n', 'l', 'o', 'c', '_', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'o', 'c',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'n', 'l', 'z', 'c', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n',
+  'l', 'z', 'c', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'o', 'r', '_',
+  'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'n', 'o', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'o', 'r', '_', 'v', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'o', 'r', 'i', '_',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
+  's', '_', 'p', 'a', 'c', 'k', 'r', 'l', '_', 'p', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'e',
+  'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 'p', 'c', 'k', 'e', 'v', '_', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'e', 'v',
+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 'p', 'c', 'k', 'e', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'o', 'd', '_',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'p', 'c', 'k', 'o', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'o', 'd', '_', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'p', 'c', 'k', 'o', 'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'n', 't', '_', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c',
+  'n', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 'p', 'c', 'n', 't', '_', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'n', 't', '_',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
+  's', '_', 'p', 'i', 'c', 'k', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'i', 'c', 'k', '_',
+  'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
+  'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', '_', 'w', '_', 'p', 'h', 'l',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
+  '_', 'p', 'r', 'e', 'c', 'e', 'q', '_', 'w', '_', 'p', 'h', 'r', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p',
+  'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q', 'b', 'l', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p',
+  'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q', 'b', 'l', 'a', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q', 'b', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q', 'b', 'r', 'a',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
+  '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q', 'b', 'l', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q', 'b', 'l', 'a', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q', 'b', 'r', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p',
+  'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q', 'b', 'r', 'a', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p',
+  'r', 'e', 'c', 'r', '_', 'q', 'b', '_', 'p', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c',
+  'r', '_', 's', 'r', 'a', '_', 'p', 'h', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c',
+  'r', '_', 's', 'r', 'a', '_', 'r', '_', 'p', 'h', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r',
+  'e', 'c', 'r', 'q', '_', 'p', 'h', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'r',
+  'q', '_', 'q', 'b', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'r', 'q', '_',
+  'r', 's', '_', 'p', 'h', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'r', 'q', 'u',
+  '_', 's', '_', 'q', 'b', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'p', 'e', 'n',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
+  's', '_', 'r', 'a', 'd', 'd', 'u', '_', 'w', '_', 'q', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'r', 'd',
+  'd', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 'r', 'e', 'p', 'l', '_', 'p', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'r', 'e', 'p',
+  'l', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 's', 'a', 't', '_', 's', '_', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_',
+  's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 's', 'a', 't', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 's',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 's', 'a', 't', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 'u', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 's', 'a', 't', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 'u', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  's', 'h', 'f', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 's', 'h', 'f', '_', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'h', 'f', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
+  '_', 's', 'h', 'i', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'l', 'l', '_', 'p', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  's', 'h', 'l', 'l', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'l', 'l', '_', 's', '_',
+  'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
+  'p', 's', '_', 's', 'h', 'l', 'l', '_', 's', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r',
+  'a', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'a', '_', 'q', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h',
+  'r', 'a', '_', 'r', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'a', '_', 'r', '_',
+  'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
+  'p', 's', '_', 's', 'h', 'r', 'a', '_', 'r', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r',
+  'l', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'l', '_', 'q', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd',
+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 's', 'l', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', '_', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 's', 'l', 'd', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', 'i', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
+  'l', 'd', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 's', 'l', 'd', 'i', '_', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', '_',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 's', 'l', 'l', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', '_', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', '_',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 's', 'l', 'l', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', 'i', '_', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l',
+  'l', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 's', 'l', 'l', 'i', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't',
+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 's', 'p', 'l', 'a', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', '_',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 's', 'p', 'l', 'a', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', 'i', '_',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 's', 'p', 'l', 'a', 't', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', 'i',
+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 's', 'p', 'l', 'a', 't', 'i', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', '_', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  's', 'r', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 's', 'a', '_', 's', 'r', 'a', '_', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  's', 'r', 'a', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'i', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a',
+  'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 's', 'r', 'a', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', '_', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  's', 'r', 'a', 'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', '_', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a',
+  'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 's', 'r', 'a', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', 'i',
+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 's', 'r', 'a', 'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', 'i', '_',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 's', 'r', 'l', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', '_',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 's', 'r', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'i', '_', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l',
+  'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 's', 'r', 'l', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'i', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  's', 'r', 'l', 'r', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', '_', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l',
+  'r', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 's', 'r', 'l', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', 'i', '_',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 's', 'r', 'l', 'r', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', 'i', '_', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  's', 'r', 'l', 'r', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 't', '_', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 't', '_', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  's', 't', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 's', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', '_', 'p',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
+  's', '_', 's', 'u', 'b', 'q', '_', 's', '_', 'p', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b',
+  'q', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', 'h', '_', 'p', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
+  's', 'u', 'b', 'q', 'h', '_', 'r', '_', 'p', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q',
+  'h', '_', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', 'h', '_', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u',
+  'b', 's', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 's', '_', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
+  'u', 'b', 's', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 's', '_', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  's', 'u', 'b', 's', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 'u', '_',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 's', 'u', 'b', 's', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 'u',
+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u', '_', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b',
+  's', 'u', 's', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u',
+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b',
+  's', 'u', 'u', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', 'u', 'u', '_', 's',
+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
+  'a', '_', 's', 'u', 'b', 's', 'u', 'u', '_', 's', '_', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b',
+  's', 'u', 'u', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', '_', 'p', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
+  '_', 's', 'u', 'b', 'u', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', '_', 's',
+  '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  'i', 'p', 's', '_', 's', 'u', 'b', 'u', '_', 's', '_', 'q', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's',
+  'u', 'b', 'u', 'h', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', 'h', '_', 'r',
+  '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 's', 'u', 'b', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  's', 'u', 'b', 'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b',
+  'v', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 's', 'a', '_', 's', 'u', 'b', 'v', 'i', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v',
+  'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
+  's', 'a', '_', 's', 'u', 'b', 'v', 'i', '_', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'v', 's', 'h', 'f', '_',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
+  '_', 'v', 's', 'h', 'f', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'm', 's', 'a', '_', 'v', 's', 'h', 'f', '_', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'v', 's',
+  'h', 'f', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'm', 'i', 'p', 's', '_', 'w', 'r', 'd', 's', 'p', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'x', 'o', 'r', '_', 'v',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
+  'x', 'o', 'r', 'i', '_', 'b', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a',
+  'd', 'd', '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'a', 'd', 'd', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'a', 'd', 'd', '_', 'r', 'm', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n', '_', 'd', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n', '_', 'f',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n', '_',
+  'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd',
+  'd', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a',
+  'd', 'd', '_', 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'a', 'd', 'd', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_', 'd', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_', 'f', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_', 'f',
+  't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a', 'r',
+  '_', 's', 'y', 'n', 'c', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a',
+  'r', '_', 'w', 'a', 'r', 'p', '_', 's', 'y', 'n', 'c', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'b', 'a', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'b', 'a', 'r', '_', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a',
+  'r', 'r', 'i', 'e', 'r', '_', 's', 'y', 'n', 'c', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'b', 'a', 'r', 'r', 'i', 'e', 'r', '_', 's', 'y', 'n', 'c',
+  '_', 'c', 'n', 't', '\000', '_', '_', 's', 'y', 'n', 'c', 't', 'h', 'r', 'e',
+  'a', 'd', 's', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a', 'r', '0',
+  '_', 'a', 'n', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a', 'r',
+  '0', '_', 'o', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a', 'r',
+  '0', '_', 'p', 'o', 'p', 'c', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b',
+  'i', 't', 'c', 'a', 's', 't', '_', 'd', '2', 'l', 'l', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'b', 'i', 't', 'c', 'a', 's', 't', '_', 'f', '2', 'i',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'i', 't', 'c', 'a', 's', 't',
+  '_', 'i', '2', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'i', 't',
+  'c', 'a', 's', 't', '_', 'l', 'l', '2', 'd', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'c', 'e', 'i', 'l', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'c', 'e', 'i', 'l', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'c', 'e', 'i', 'l', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'c', 'o', 's', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'c', 'o', 's', '_', 'a', 'p', 'p',
+  'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'd', '2', 'f', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'd', '2', 'f', '_', 'r', 'm', '_', 'f', 't', 'z', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'n', '_', 'f', 't', 'z', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'p', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'p', '_', 'f', 't', 'z',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'z', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'z', '_', 'f',
+  't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'h',
+  'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'l', 'o',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'm', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'n', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'p', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'z', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'd', '2', 'l', 'l', '_', 'r', 'm', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'd', '2', 'l', 'l', '_', 'r', 'n', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'd', '2', 'l', 'l', '_', 'r', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'd', '2', 'l', 'l', '_', 'r', 'z', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'd', '2', 'u', 'i', '_', 'r', 'm', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'd', '2', 'u', 'i', '_', 'r', 'n', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'd', '2', 'u', 'i', '_', 'r', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'd', '2', 'u', 'i', '_', 'r', 'z', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'm', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'n', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'z',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'a', 'p', 'p',
+  'r', 'o', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i',
+  'v', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm', '_', 'd',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm', '_',
+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm',
+  '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd',
+  'i', 'v', '_', 'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'd', 'i', 'v', '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'd', 'i', 'v', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_', 'd', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_', 'f',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_',
+  'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i',
+  'v', '_', 'r', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd',
+  'i', 'v', '_', 'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'd', 'i', 'v', '_', 'r', 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'e', 'x', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x',
+  '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'e', 'x', '2', '_', 'a',
+  'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'e', 'x', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_',
+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'h', '_', 'r', 'n',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'h', '_', 'r', 'n', '_',
+  'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_',
+  'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_', 'r',
+  'm', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
+  'i', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i',
+  '_', 'r', 'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'f', '2', 'i', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
+  '2', 'i', '_', 'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'f', '2', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'f', '2', 'i', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'm', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'm', '_', 'f', 't', 'z',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'n',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'n',
+  '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'l',
+  'l', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'l',
+  'l', '_', 'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'f', '2', 'l', 'l', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'f', '2', 'l', 'l', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'm', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'm', '_', 'f', 't',
+  'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r',
+  'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r',
+  'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
+  'u', 'i', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
+  'u', 'i', '_', 'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'm', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'm',
+  '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u',
+  'l', 'l', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
+  'u', 'l', 'l', '_', 'r', 'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'p', '_', 'f', 't',
+  'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_',
+  'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l',
+  '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'f', 'a', 'b', 's', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
+  'a', 'b', 's', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'a',
+  'b', 's', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'f', 'l', 'o', 'o', 'r', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'f', 'l', 'o', 'o', 'r', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'f', 'l', 'o', 'o', 'r', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'd', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'f', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'f',
+  't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a',
+  '_', 'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm',
+  'a', '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
+  'm', 'a', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'd', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'f', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'f', 't',
+  'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_',
+  'r', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a',
+  '_', 'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm',
+  'a', '_', 'r', 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'f', 'm', 'a', 'x', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'f', 'm', 'a', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'f', 'm', 'a', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'f', 'm', 'i', 'n', '_', 'd', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'f', 'm', 'i', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'f', 'm', 'i', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'f', 'n', 's', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'i', '2', 'd', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'i', '2', 'd', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i',
+  '2', 'd', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2',
+  'd', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f',
+  '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_',
+  'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r', 'z',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 's', 'p', 'a', 'c', 'e',
+  'p', '_', 'c', 'o', 'n', 's', 't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'i', 's', 's', 'p', 'a', 'c', 'e', 'p', '_', 'g', 'l', 'o', 'b', 'a', 'l',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 's', 'p', 'a', 'c', 'e',
+  'p', '_', 'l', 'o', 'c', 'a', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'i', 's', 's', 'p', 'a', 'c', 'e', 'p', '_', 's', 'h', 'a', 'r', 'e', 'd',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 't', 'y', 'p', 'e', 'p',
+  '_', 's', 'a', 'm', 'p', 'l', 'e', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'i', 's', 't', 'y', 'p', 'e', 'p', '_', 's', 'u', 'r', 'f', 'a', 'c',
+  'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 't', 'y', 'p', 'e',
+  'p', '_', 't', 'e', 'x', 't', 'u', 'r', 'e', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'l', 'g', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'd', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'g', '2', '_', 'a', 'p', 'p', 'r',
+  'o', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'g', '2',
+  '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'm', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'n', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'z', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'm', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'n', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'z', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'l', 'o', 'h', 'i', '_', 'i', '2', 'd', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'a', 't', 'c', 'h', '_', 'a', 'n',
+  'y', '_', 's', 'y', 'n', 'c', '_', 'i', '3', '2', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'm', 'a', 't', 'c', 'h', '_', 'a', 'n', 'y', '_', 's', 'y',
+  'n', 'c', '_', 'i', '6', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm',
+  'e', 'm', 'b', 'a', 'r', '_', 'c', 't', 'a', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'm', 'e', 'm', 'b', 'a', 'r', '_', 'g', 'l', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'm', 'e', 'm', 'b', 'a', 'r', '_', 's', 'y', 's', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm', '_', 'd',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm', '_',
+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm',
+  '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm',
+  'u', 'l', '_', 'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'm', 'u', 'l', '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'm', 'u', 'l', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_', 'd', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_', 'f',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_',
+  'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u',
+  'l', '_', 'r', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm',
+  'u', 'l', '_', 'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'm', 'u', 'l', '_', 'r', 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '2', '4', '_', 'i', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '2', '4', '_', 'u', 'i', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'i', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'l', 'l', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'u', 'i',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'u',
+  'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'p', 'r', 'm', 't', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'a', 'p', 'p', 'r',
+  'o', 'x', '_', 'f', 't', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'r', 'c', 'p', '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'c', 'p', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'm', '_', 'f', 't', 'z', '_', 'f',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'n', '_',
+  'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'n',
+  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r',
+  'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'r', 'c', 'p', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'r', 'c', 'p', '_', 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'c', 'p', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z', '_', 'd',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z', '_',
+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z',
+  '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c', 'l',
+  'o', 'c', 'k', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
+  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c', 'l', 'o', 'c', 'k',
+  '6', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
+  'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_',
+  'w', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
+  't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'x',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
+  'x', '_', 's', 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'y', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
+  '_', 's', 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'z', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
+  's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '0', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
+  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '0', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '1', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '2', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '3', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '4', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '5', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '6', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '7', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '8', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '9', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '0', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '1', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '2', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '3', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '4', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '5', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '6', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '7', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '8', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '9', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
+  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '3', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g',
+  '_', 'e', 'n', 'v', 'r', 'e', 'g', '3', '0', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g',
+  '_', 'e', 'n', 'v', 'r', 'e', 'g', '3', '1', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g',
+  '_', 'e', 'n', 'v', 'r', 'e', 'g', '4', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
+  'e', 'n', 'v', 'r', 'e', 'g', '5', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
+  'n', 'v', 'r', 'e', 'g', '6', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
+  'v', 'r', 'e', 'g', '7', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
+  'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v',
+  'r', 'e', 'g', '8', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a',
+  'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r',
+  'e', 'g', '9', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
+  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'g', 'r', 'i', 'd', 'i',
+  'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
+  't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'i', 'd', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
+  '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'm', 'a', 's', 'k', '_',
+  'e', 'q', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
+  'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'm', 'a',
+  's', 'k', '_', 'g', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
+  'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n',
+  'e', 'm', 'a', 's', 'k', '_', 'g', 't', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
+  'l', 'a', 'n', 'e', 'm', 'a', 's', 'k', '_', 'l', 'e', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'l', 'a', 'n', 'e', 'm', 'a', 's', 'k', '_', 'l', 't', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
+  '_', 's', 'r', 'e', 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'w', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
+  '_', 's', 'r', 'e', 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'x', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
+  '_', 's', 'r', 'e', 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'y', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
+  '_', 's', 'r', 'e', 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'z', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
+  '_', 's', 'r', 'e', 'g', '_', 'n', 's', 'm', 'i', 'd', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'n', 't', 'i', 'd', '_', 'w', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g',
+  '_', 'n', 't', 'i', 'd', '_', 'x', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n',
+  't', 'i', 'd', '_', 'y', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
+  'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n', 't', 'i',
+  'd', '_', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
+  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n', 'w', 'a', 'r', 'p',
+  'i', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
+  'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'p', 'm', '0', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
+  'r', 'e', 'g', '_', 'p', 'm', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'p',
+  'm', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
+  'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'p', 'm', '3', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
+  'r', 'e', 'g', '_', 's', 'm', 'i', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
+  't', 'i', 'd', '_', 'w', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
+  'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 't', 'i', 'd',
+  '_', 'x', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
+  'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 't', 'i', 'd', '_', 'y', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
+  '_', 's', 'r', 'e', 'g', '_', 't', 'i', 'd', '_', 'z', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
+  'e', 'g', '_', 'w', 'a', 'r', 'p', 'i', 'd', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g',
+  '_', 'w', 'a', 'r', 'p', 's', 'i', 'z', 'e', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'o', 't', 'a', 't', 'e', '_', 'b', '3', '2', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'r', 'o', 't', 'a', 't', 'e', '_', 'b', '6', '4',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'o', 't', 'a', 't', 'e', '_',
+  'r', 'i', 'g', 'h', 't', '_', 'b', '6', '4', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'o', 'u', 'n', 'd', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'o', 'u', 'n', 'd', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'r', 'o', 'u', 'n', 'd', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'r', 's', 'q', 'r', 't', '_', 'a', 'p', 'p',
+  'r', 'o', 'x', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 's',
+  'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'r', 's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r',
+  'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'a', 'd', '_', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'a', 'd', '_', 'u', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'a',
+  't', 'u', 'r', 'a', 't', 'e', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'a', 't', 'u', 'r', 'a', 't', 'e', '_', 'f', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'a', 't', 'u', 'r', 'a', 't', 'e', '_', 'f', 't',
+  'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l',
+  '_', 'b', 'f', 'l', 'y', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'h', 'f', 'l', '_', 'b', 'f', 'l', 'y', '_', 'i', '3', '2',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'd', 'o',
+  'w', 'n', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'h', 'f', 'l', '_', 'd', 'o', 'w', 'n', '_', 'i', '3', '2', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'i', 'd', 'x', '_', 'f',
+  '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_',
+  'i', 'd', 'x', '_', 'i', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'h', 'f', 'l', '_', 's', 'y', 'n', 'c', '_', 'b', 'f', 'l', 'y', '_',
+  'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l',
+  '_', 's', 'y', 'n', 'c', '_', 'b', 'f', 'l', 'y', '_', 'i', '3', '2', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 's', 'y', 'n',
+  'c', '_', 'd', 'o', 'w', 'n', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'h', 'f', 'l', '_', 's', 'y', 'n', 'c', '_', 'd', 'o',
+  'w', 'n', '_', 'i', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'h', 'f', 'l', '_', 's', 'y', 'n', 'c', '_', 'i', 'd', 'x', '_', 'f', '3',
+  '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 's',
+  'y', 'n', 'c', '_', 'i', 'd', 'x', '_', 'i', '3', '2', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 's', 'y', 'n', 'c', '_', 'u',
+  'p', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h',
+  'f', 'l', '_', 's', 'y', 'n', 'c', '_', 'u', 'p', '_', 'i', '3', '2', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'u', 'p', '_',
+  'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l',
+  '_', 'u', 'p', '_', 'i', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'i', 'n', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'i', 'n', '_', 'a', 'p', 'p', 'r', 'o', 'x',
+  '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o',
+  'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'q', 'r', 't', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'q', 'r', 't', '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'q', 'r', 't', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'm', '_', 'f', 't', 'z', '_',
+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r',
+  'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't',
+  '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q',
+  'r', 't', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'p', '_', 'd', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'p', '_', 'f',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'p',
+  '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'q', 'r', 't', '_', 'r', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'q', 'r', 't', '_', 'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'z', '_', 'f', 't', 'z', '_',
+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 'q', '_', 'a', 'r',
+  'r', 'a', 'y', '_', 's', 'i', 'z', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 'q', '_', 'c', 'h', 'a', 'n', 'n', 'e', 'l', '_', 'd', 'a',
+  't', 'a', '_', 't', 'y', 'p', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 'q', '_', 'c', 'h', 'a', 'n', 'n', 'e', 'l', '_', 'o', 'r', 'd',
+  'e', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 'q', '_', 'd',
+  'e', 'p', 't', 'h', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 'q',
+  '_', 'h', 'e', 'i', 'g', 'h', 't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 'q', '_', 'w', 'i', 'd', 't', 'h', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r',
+  'a', 'y', '_', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
+  'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
+  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 'z', 'e', 'r',
+  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 'c',
+  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3',
+  '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
+  'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
+  'y', '_', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a',
+  'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_', 'z', 'e', 'r', 'o',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
+  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 'c', 'l', 'a',
+  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
+  'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 't',
+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_',
+  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2',
+  'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r',
+  'a', 'y', '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_', 'z', 'e',
+  'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
+  'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3',
+  '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y',
+  '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a',
+  'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
+  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4', '_',
+  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
+  '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r',
+  'a', 'y', '_', 'v', '2', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 'c', 'l', 'a',
+  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
+  'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8',
+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
+  '2', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
+  'y', '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r',
+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
+  'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1',
+  '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
+  'v', '4', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a',
+  'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
+  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_',
+  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
+  'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
+  'y', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a',
+  'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
+  'd', '_', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i',
+  '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '1', '6', '_', 'z',
+  'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '1', 'd', '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
+  '1', 'd', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i',
+  '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '6', '4', '_', 'c',
+  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '1', 'd', '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
+  '1', 'd', '_', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i',
+  '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '8', '_', 't', 'r',
+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
+  'b', '_', '1', 'd', '_', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
+  'v', '2', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v',
+  '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i',
+  '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '3', '2',
+  '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '3', '2', '_',
+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e',
+  'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
+  'b', '_', '1', 'd', '_', 'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '1', 'd', '_', 'v', '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
+  'd', '_', 'v', '2', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
+  'v', '2', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2',
+  'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '8', '_',
+  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l',
+  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
+  'd', '_', 'v', '4', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
+  '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v',
+  '4', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i',
+  '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '8', '_',
+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r',
+  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 'c',
+  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1',
+  '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
+  'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
+  'y', '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a',
+  'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 'z', 'e', 'r', 'o',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
+  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_', 'c', 'l',
+  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4',
+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i',
+  '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
+  '_', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
+  'a', 'y', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r',
+  'r', 'a', 'y', '_', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a',
+  'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_', 'c', 'l', 'a', 'm',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6',
+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
+  '2', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
+  'a', 'y', '_', 'v', '2', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
+  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_', 't',
+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i',
+  '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
+  '_', 'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
+  'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4', '_', 't', 'r', 'a',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4',
+  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
+  '2', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
+  'a', 'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
+  'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 'z', 'e', 'r', 'o',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
+  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_',
+  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
+  '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
+  'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_', 'c', 'l',
+  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i',
+  '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
+  '_', 'v', '4', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a',
+  'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
+  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 't',
+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i',
+  '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '1', '6', '_', 'c', 'l',
+  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '2', 'd', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
+  'd', '_', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '3',
+  '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '3', '2', '_', 't',
+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '2', 'd', '_', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
+  'd', '_', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i',
+  '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '6', '4', '_', 'z',
+  'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '2', 'd', '_', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
+  'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '8', '_',
+  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '1', '6', '_', 'c', 'l',
+  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '2', 'd', '_', 'v', '2', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
+  'd', '_', 'v', '2', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
+  '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v',
+  '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i',
+  '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '6',
+  '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '6', '4', '_',
+  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '8', '_', 'c', 'l', 'a',
+  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
+  'b', '_', '2', 'd', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
+  'd', '_', 'v', '2', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v',
+  '4', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4',
+  'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '1',
+  '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '3', '2', '_',
+  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't',
+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '3', '2', '_', 'z', 'e', 'r',
+  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '2', 'd', '_', 'v', '4', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
+  'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v',
+  '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '1', '6', '_',
+  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '1', '6', '_', 't', 'r', 'a',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '3', 'd', '_', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_',
+  'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '3', '2',
+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '3', '2', '_', 'z', 'e', 'r',
+  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '3', 'd', '_', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd',
+  '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '6', '4',
+  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '8', '_', 'c', 'l', 'a', 'm',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '3', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i',
+  '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '1', '6', '_',
+  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '1', '6', '_', 't',
+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '1', '6', '_', 'z', 'e', 'r',
+  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '3', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
+  '3', 'd', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd',
+  '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v',
+  '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2',
+  'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '6',
+  '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '8', '_', 'c',
+  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '3', 'd', '_', 'v', '2', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd',
+  '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_',
+  'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4',
+  'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '3',
+  '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '3', '2',
+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '3', '2', '_', 'z',
+  'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 'c', 'l', 'a', 'm',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
+  '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd',
+  '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r',
+  'r', 'a', 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_',
+  'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1',
+  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 't', 'r', 'a', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
+  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_',
+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2',
+  'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
+  'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'a',
+  'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
+  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_',
+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
+  'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'i', '1', '6', '_', 't',
+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'p', '_', '1', 'd', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1',
+  'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v', '2', 'i',
+  '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v', '2', 'i', '3', '2',
+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'p', '_', '1', 'd', '_', 'v', '2', 'i', '8', '_', 't', 'r',
+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
+  'p', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
+  '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd',
+  '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r',
+  'r', 'a', 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_',
+  'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2',
+  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 't', 'r', 'a', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
+  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_',
+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2',
+  'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
+  'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'a',
+  'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
+  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_',
+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
+  't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
+  'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'i', '1', '6', '_', 't',
+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'p', '_', '2', 'd', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2',
+  'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v', '2', 'i',
+  '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v', '2', 'i', '3', '2',
+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'p', '_', '2', 'd', '_', 'v', '2', 'i', '8', '_', 't', 'r',
+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
+  'p', '_', '2', 'd', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
+  '2', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd',
+  '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'i', '1',
+  '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
+  'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'i', '3', '2', '_', 't', 'r',
+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
+  'p', '_', '3', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_',
+  'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '2',
+  'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
+  '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '2', 'i', '8',
+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
+  's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '4', 'i', '1', '6', '_', 't',
+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
+  '_', 'p', '_', '3', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
+  '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 's', 'w', 'a', 'p', '_', 'l', 'o', '_', 'h',
+  'i', '_', 'b', '6', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'r',
+  'u', 'n', 'c', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'r',
+  'u', 'n', 'c', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'r',
+  'u', 'n', 'c', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 't', 'x', 'q', '_', 'a', 'r', 'r', 'a', 'y', '_', 's', 'i', 'z',
+  'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'c', 'h',
+  'a', 'n', 'n', 'e', 'l', '_', 'd', 'a', 't', 'a', '_', 't', 'y', 'p', 'e',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'c', 'h', 'a',
+  'n', 'n', 'e', 'l', '_', 'o', 'r', 'd', 'e', 'r', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 't', 'x', 'q', '_', 'd', 'e', 'p', 't', 'h', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'h', 'e', 'i', 'g', 'h', 't',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'n', 'u', 'm',
+  '_', 'm', 'i', 'p', 'm', 'a', 'p', '_', 'l', 'e', 'v', 'e', 'l', 's', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'n', 'u', 'm', '_',
+  's', 'a', 'm', 'p', 'l', 'e', 's', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
+  't', 'x', 'q', '_', 'w', 'i', 'd', 't', 'h', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'm', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'n', '\000', '_', '_', 'n',
+  'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'p', '\000', '_', '_',
+  'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'z', '\000', '_',
+  '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'f', '_', 'r', 'm', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'f', '_', 'r', 'n',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'f', '_', 'r',
+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'f', '_',
+  'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o', 't', 'e', '_',
+  'a', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o', 't', 'e',
+  '_', 'a', 'l', 'l', '_', 's', 'y', 'n', 'c', '\000', '_', '_', 'n', 'v', 'v',
+  'm', '_', 'v', 'o', 't', 'e', '_', 'a', 'n', 'y', '\000', '_', '_', 'n', 'v',
+  'v', 'm', '_', 'v', 'o', 't', 'e', '_', 'a', 'n', 'y', '_', 's', 'y', 'n',
+  'c', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o', 't', 'e', '_', 'b',
+  'a', 'l', 'l', 'o', 't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o',
+  't', 'e', '_', 'b', 'a', 'l', 'l', 'o', 't', '_', 's', 'y', 'n', 'c', '\000',
+  '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o', 't', 'e', '_', 'u', 'n', 'i',
+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o', 't', 'e', '_', 'u', 'n',
+  'i', '_', 's', 'y', 'n', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'd', 'd', 'f', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd',
+  '_', 't', 'o', '_', 'o', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p',
+  't', 'o', '_', 'v', 'c', 'i', 'p', 'h', 'e', 'r', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c',
+  'r', 'y', 'p', 't', 'o', '_', 'v', 'c', 'i', 'p', 'h', 'e', 'r', 'l', 'a',
+  's', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
+  't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'n',
+  'c', 'i', 'p', 'h', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't',
+  'o', '_', 'v', 'n', 'c', 'i', 'p', 'h', 'e', 'r', 'l', 'a', 's', 't', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'p', 'e', 'r', 'm',
+  'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v',
+  'p', 'm', 's', 'u', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't',
+  'o', '_', 'v', 'p', 'm', 's', 'u', 'm', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r',
+  'y', 'p', 't', 'o', '_', 'v', 'p', 'm', 's', 'u', 'm', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
+  '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'p', 'm', 's', 'u', 'm', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 's', 'b', 'o',
+  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 's', 'h',
+  'a', 's', 'i', 'g', 'm', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p',
+  't', 'o', '_', 'v', 's', 'h', 'a', 's', 'i', 'g', 'm', 'a', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'd', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'd', 's', 's', 'a', 'l', 'l',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'd', 's', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'd', 's', 't', 's',
+  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'd', 's', 't', 's', 't', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'd', 's', 't', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'm', 'f', 'v', 's', 'c', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'm', 't', 'v', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a',
+  'b', 's', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'b', 's', 'd', 'u',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'a', 'b', 's', 'd', 'u', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
+  '_', 'v', 'a', 'd', 'd', 'c', 'u', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd',
+  'd', 'c', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'e', 'c', 'u',
+  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'e', 'u', 'q', 'm', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 'a', 'd', 'd', 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a',
+  'd', 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 's', 'w',
+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
+  '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd',
+  'd', 'u', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v', 'g', 's', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'a', 'v', 'g', 's', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a',
+  'v', 'g', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v', 'g', 'u', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'a', 'v', 'g', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a',
+  'v', 'g', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'b', 'p', 'e', 'r', 'm', 'q',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 'c', 'f', 's', 'x', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
+  'f', 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'l', 'z', 'l', 's', 'b', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'b', 'f', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'c', 'm', 'p', 'b', 'f', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
+  'm', 'p', 'e', 'q', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e',
+  'q', 'f', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q',
+  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
+  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'b', '_',
+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'd', '_', 'p', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
+  '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
+  'm', 'p', 'e', 'q', 'u', 'h', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
+  'p', 'e', 'q', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q',
+  'u', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 'e', 'f',
+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 'e', 'f', 'p', '_', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'f', 'p', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
+  '_', 'v', 'c', 'm', 'p', 'g', 't', 'f', 'p', '_', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'c', 'm', 'p', 'g', 't', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
+  'p', 'g', 't', 's', 'b', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p',
+  'g', 't', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's',
+  'd', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'h', '_', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'c', 'm', 'p', 'g', 't', 's', 'w', '_', 'p', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
+  'c', 'm', 'p', 'g', 't', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p',
+  'g', 't', 'u', 'b', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g',
+  't', 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'd',
+  '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
+  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'h', '_', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
+  'c', 'm', 'p', 'g', 't', 'u', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
+  'm', 'p', 'n', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e',
+  'b', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'h', '_', 'p', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
+  '_', 'v', 'c', 'm', 'p', 'n', 'e', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
+  'p', 'n', 'e', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n',
+  'e', 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'b',
+  '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
+  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'h', '_', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
+  'c', 'm', 'p', 'n', 'e', 'z', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
+  't', 's', 'x', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 't', 'u', 'x', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'c', 't', 'z', 'l', 's', 'b', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'e', 'x', 'p', 't', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'g', 'b',
+  'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
+  't', 'i', 'v', 'e', 'c', '_', 'v', 'l', 'o', 'g', 'e', 'f', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 'm', 'a', 'd', 'd', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
+  'a', 'x', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 's', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'm', 'a', 'x', 's', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
+  'a', 'x', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 's', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'm', 'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
+  'a', 'x', 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'm', 'a', 'x', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
+  'h', 'a', 'd', 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'h', 'r',
+  'a', 'd', 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'f',
+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'm', 'i', 'n', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'm', 'i', 'n', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'u',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'm', 'i', 'n', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'l', 'a', 'd',
+  'd', 'u', 'h', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 'm', 'b',
+  'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 's', 'h', 'm', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 'm', 's', 'u', 'm', 's', 'h', 's', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
+  'm', 's', 'u', 'm', 'u', 'b', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u',
+  'm', 'u', 'h', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 'u', 'h',
+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 's', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
+  '_', 'v', 'm', 'u', 'l', 'e', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u',
+  'l', 'e', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 'u', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 'u', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'm', 'u', 'l', 'e', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l',
+  'o', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 's', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 's', 'w', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
+  'm', 'u', 'l', 'o', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o',
+  'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
+  't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 'u', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 'n', 'm', 's', 'u', 'b', 'f', 'p', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
+  'p', 'e', 'r', 'm', '_', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k',
+  'p', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
+  't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'd', 's', 's', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 'p', 'k', 's', 'd', 'u', 's', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p',
+  'k', 's', 'h', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'h', 'u',
+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'w', 's', 's', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
+  '_', 'v', 'p', 'k', 's', 'w', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k',
+  'u', 'd', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 'u', 'h', 'u', 's',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 'p', 'k', 'u', 'w', 'u', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'p', 'r', 't', 'y', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'r', 't',
+  'y', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'r', 't', 'y', 'b', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'r', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f',
+  'i', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
+  't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f', 'i', 'n', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'r', 'f', 'i', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f', 'i', 'z', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 'r', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 'r', 'l', 'd', 'm', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
+  'r', 'l', 'd', 'n', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 'r', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'w', 'm',
+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'w', 'n', 'm', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 'r', 's', 'q', 'r', 't', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's',
+  'e', 'l', '_', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 's', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 's', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', 'v',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 's', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 's', 'r', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's',
+  'r', 'a', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'a', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
+  '_', 'v', 's', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 's', 'r', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'v', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 's', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b',
+  'c', 'u', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'c', 'u', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 's', 'u', 'b', 'e', 'c', 'u', 'q', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 's', 'u', 'b', 'e', 'u', 'q', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u',
+  'b', 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 's', 'h', 's',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 's', 'w', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 's', 'u', 'b', 'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b',
+  'u', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'u', 'w', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
+  'e', 'c', '_', 'v', 's', 'u', 'm', '2', 's', 'w', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
+  'v', 's', 'u', 'm', '4', 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u',
+  'm', '4', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'm', '4', 'u',
+  'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
+  't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'm', 's', 'w', 's', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
+  'c', '_', 'v', 'u', 'p', 'k', 'h', 'p', 'x', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u',
+  'p', 'k', 'h', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'h', 's',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
+  'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'h', 's', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
+  '_', 'v', 'u', 'p', 'k', 'l', 'p', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p',
+  'k', 'l', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'l', 's', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
+  'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'l', 's', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'e', 'r', 'm', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v', 'd', 'e', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v', 'd', 'e',
+  'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v',
+  'f', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 't', 'o', '_', 'o',
+  'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i',
+  'v', 'w', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd',
+  'i', 'v', 'w', 'e', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'f', 'm', 'a', 'f', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_',
+  't', 'o', '_', 'o', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'g', 'e', 't', '_', 't', 'e', 'x', 'a', 's', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g', 'e', 't', '_', 't', 'e', 'x',
+  'a', 's', 'r', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'g', 'e', 't', '_', 't', 'f', 'h', 'a', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'g', 'e', 't', '_', 't', 'f', 'i', 'a', 'r', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'u', 'l', 'f', '1',
+  '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 't', 'o', '_', 'o', 'd', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
+  'q', 'v', 'f', 'a', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'a', 'd', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f',
+  'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'f', 'i', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c',
+  'f', 'i', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'f', 'i', 'd', 'u', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f',
+  'c', 'f', 'i', 'd', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'm', 'p', 'e', 'q', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
+  'v', 'f', 'c', 'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'm', 'p', 'l', 't',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
+  'q', 'v', 'f', 'c', 'p', 's', 'g', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
+  'q', 'v', 'f', 'c', 't', 'i', 'd', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'd',
+  'u', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
+  'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'd', 'z', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't',
+  'i', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
+  'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'w', 'u', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't',
+  'i', 'w', 'u', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'w', 'z', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f',
+  'l', 'o', 'g', 'i', 'c', 'a', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 'a', 'd', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
+  'v', 'f', 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 's', 'u', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
+  'v', 'f', 'm', 's', 'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 'u', 'l', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
+  'f', 'm', 'u', 'l', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'a', 'b', 's', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f',
+  'n', 'e', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
+  'p', 'x', '_', 'q', 'v', 'f', 'n', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n',
+  'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'm', 's', 'u', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
+  'f', 'n', 'm', 's', 'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'p', 'e', 'r', 'm', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
+  'v', 'f', 'r', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'e', 's', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'i',
+  'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
+  '_', 'q', 'v', 'f', 'r', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'i', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
+  'f', 'r', 'i', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 's', 'p', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 's',
+  'q', 'r', 't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 's', 'q', 'r', 't', 'e', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
+  'v', 'f', 's', 'e', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 's', 'u', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 's',
+  'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
+  'p', 'x', '_', 'q', 'v', 'f', 't', 's', 't', 'n', 'a', 'n', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f',
+  'x', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'm', 'a', 'd', 'd', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
+  'v', 'f', 'x', 'm', 'u', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'm', 'u', 'l', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
+  'v', 'f', 'x', 'x', 'c', 'p', 'n', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x',
+  'x', 'c', 'p', 'n', 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'm',
+  'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
+  'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'm', 'a', 'd', 'd', 's', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
+  'f', 'x', 'x', 'n', 'p', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'n',
+  'p', 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'g', 'p', 'c', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l',
+  'f', 'c', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
+  'p', 'x', '_', 'q', 'v', 'l', 'f', 'c', 'd', 'a', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'c',
+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
+  '_', 'q', 'v', 'l', 'f', 'c', 's', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
+  'l', 'f', 'd', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'i', 'w', 'a', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f',
+  'i', 'w', 'a', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'i', 'w', 'z', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f',
+  'i', 'w', 'z', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 's', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 's', 'a',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
+  'q', 'v', 'l', 'p', 'c', 'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'p', 'c', 'l', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
+  'v', 'l', 'p', 'c', 'r', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'p', 'c', 'r', 's', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
+  's', 't', 'f', 'c', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'c', 'd', 'a', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
+  's', 't', 'f', 'c', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'c', 's', 'a', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
+  's', 't', 'f', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'd', 'a', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't',
+  'f', 'i', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
+  'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'i', 'w', 'a', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't',
+  'f', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
+  'x', '_', 'q', 'v', 's', 't', 'f', 's', 'a', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', 'e', 't', '_', 't', 'e', 'x', 'a', 's', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 'e', 't', '_',
+  't', 'e', 'x', 'a', 's', 'r', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', 'e', 't', '_', 't', 'f', 'h', 'a', 'r', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 'e', 't', '_', 't', 'f', 'i',
+  'a', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 'q',
+  'r', 't', 'f', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 't', 'o',
+  '_', 'o', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', 'u', 'b', 'f', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 't',
+  'o', '_', 'o', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 't', 'a', 'b', 'o', 'r', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 't', 'a', 'b', 'o', 'r', 't', 'd', 'c', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o', 'r', 't', 'd', 'c',
+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b',
+  'o', 'r', 't', 'w', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 't', 'a', 'b', 'o', 'r', 't', 'w', 'c', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 't', 'b', 'e', 'g', 'i', 'n', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'c', 'h', 'e', 'c', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'e', 'n', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'e', 'n', 'd', 'a',
+  'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'r',
+  'e', 'c', 'h', 'k', 'p', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 't', 'r', 'e', 'c', 'l', 'a', 'i', 'm', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'e', 's', 'u', 'm', 'e', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'u', 'n', 'c', 'f',
+  '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 't', 'o', '_', 'o', 'd',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 's', 'r',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 's', 'u', 's',
+  'p', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  't', 't', 'e', 's', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'v', 's', 'x', '_', 'x', 's', 'm', 'a', 'x', 'd', 'p', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 's', 'm',
+  'i', 'n', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e', 'q', 'd', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
+  'c', 'm', 'p', 'e', 'q', 'd', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e',
+  'q', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
+  's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e', 'q', 's', 'p', '_', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
+  'v', 'c', 'm', 'p', 'g', 'e', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 'e',
+  'd', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 'e', 's', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
+  'c', 'm', 'p', 'g', 'e', 's', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g',
+  't', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
+  's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 't', 'd', 'p', '_', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
+  'v', 'c', 'm', 'p', 'g', 't', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 't',
+  's', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'd', 'p', 's', 'p', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c',
+  'v', 'd', 'p', 's', 'x', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'd', 'p', 'u', 'x',
+  'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
+  'x', '_', 'x', 'v', 'c', 'v', 'h', 'p', 's', 'p', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 's',
+  'p', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
+  's', 'x', '_', 'x', 'v', 'c', 'v', 's', 'p', 'h', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v',
+  's', 'x', 'd', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 's', 'x', 'w', 'd', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
+  'v', 'c', 'v', 'u', 'x', 'd', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'u', 'x', 'w',
+  'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
+  'x', '_', 'x', 'v', 'd', 'i', 'v', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'd', 'i', 'v', 's',
+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x',
+  '_', 'x', 'v', 'i', 'e', 'x', 'p', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'i', 'e', 'x', 'p',
+  's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
+  'x', '_', 'x', 'v', 'm', 'a', 'x', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'm', 'a', 'x', 's',
+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x',
+  '_', 'x', 'v', 'm', 'i', 'n', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'm', 'i', 'n', 's', 'p',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_',
+  'x', 'v', 'r', 'e', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'r', 'e', 's', 'p', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'r',
+  's', 'q', 'r', 't', 'e', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'r', 's', 'q', 'r', 't', 'e',
+  's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
+  'x', '_', 'x', 'v', 't', 's', 't', 'd', 'c', 'd', 'p', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 't', 's',
+  't', 'd', 'c', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'v', 's', 'x', '_', 'x', 'v', 'x', 'e', 'x', 'p', 'd', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
+  'x', 'e', 'x', 'p', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'x', 's', 'i', 'g', 'd', 'p', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
+  'v', 'x', 's', 'i', 'g', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'x', 'e', 'x', 't', 'r', 'a', 'c',
+  't', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
+  's', 'x', '_', 'x', 'x', 'i', 'n', 's', 'e', 'r', 't', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'x', 'l',
+  'e', 'q', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r',
+  '6', '0', '0', '_', 'g', 'r', 'o', 'u', 'p', '_', 'b', 'a', 'r', 'r', 'i',
+  'e', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6',
+  '0', '0', '_', 'i', 'm', 'p', 'l', 'i', 'c', 'i', 't', 'a', 'r', 'g', '_',
+  'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r',
+  '6', '0', '0', '_', 'r', 'a', 't', '_', 's', 't', 'o', 'r', 'e', '_', 't',
+  'y', 'p', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'g', 'l', 'o', 'b', 'a',
+  'l', '_', 's', 'i', 'z', 'e', '_', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'g',
+  'l', 'o', 'b', 'a', 'l', '_', 's', 'i', 'z', 'e', '_', 'y', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e',
+  'a', 'd', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_', 's', 'i', 'z', 'e', '_',
+  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0',
+  '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g', 'r', 'o', 'u', 'p', 's', '_',
+  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0',
+  '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g', 'r', 'o', 'u', 'p', 's', '_',
+  'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0',
+  '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g', 'r', 'o', 'u', 'p', 's', '_',
+  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0',
+  '0', '_', 'r', 'e', 'a', 'd', '_', 't', 'g', 'i', 'd', '_', 'x', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r',
+  'e', 'a', 'd', '_', 't', 'g', 'i', 'd', '_', 'y', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd',
+  '_', 't', 'g', 'i', 'd', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'e', 'f', 'p', 'c', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'x', '_', 'n', 'e', 's', 't',
+  'i', 'n', 'g', '_', 'd', 'e', 'p', 't', 'h', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'l', 'c', 'b', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'x', '_', 'a', 's',
+  's', 'i', 's', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 's', 'f', 'p', 'c', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'a', 'c', 'c', 'c', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'f', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'a', 'c', 'c', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'c',
+  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'a', 'c', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'q', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'a', 'v', 'g', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'g', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'l', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v',
+  'g', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
+  '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'l', 'g', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g',
+  'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
+  '9', '0', '_', 'v', 'b', 'p', 'e', 'r', 'm', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'c', 'k', 's', 'm',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'e', 'r', 'i', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'i', 'm', 'f', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
+  'v', 'e', 'r', 'i', 'm', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'i', 'm', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'e', 'r', 'l', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'f', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e',
+  'r', 'l', 'l', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r',
+  'l', 'l', 'v', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'v', 'f', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e',
+  'r', 'l', 'l', 'v', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'v', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'f', 'a', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'f', 'a', 'e', 'f', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a', 'e',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'f', 'a', 'e', 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a', 'e', 'z', 'f',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'f', 'a', 'e', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'f', 'e', 'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e',
+  'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
+  '9', '0', '_', 'v', 'f', 'e', 'e', 'z', 'f', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'z',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'f', 'e', 'n', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'f',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'f', 'e', 'n', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'z', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'f', 'e', 'n', 'e', 'z', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'z',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'g', 'f', 'm', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'a', 'f',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'g', 'f', 'm', 'a', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'a', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
+  'v', 'g', 'f', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'f', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f',
+  'm', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
+  '9', '0', '_', 'v', 'g', 'f', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'i', 's', 't', 'r', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'i', 's', 't', 'r', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'i', 's', 't', 'r', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
+  'v', 'l', 'b', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'l', 'r', 'l', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'm', 'a', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'm', 'a', 'e', 'f', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'e',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'm', 'a', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'h', 'f', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'm', 'a', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'e', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a',
+  'l', 'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
+  '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'e', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l',
+  'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
+  '9', '0', '_', 'v', 'm', 'a', 'l', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'h',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'm', 'a', 'l', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'o', 'f',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'm', 'a', 'l', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'o', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'm', 'a', 'o', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'm', 'a', 'o', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'e', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'm', 'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 's', '3', '9', '0', '_', 'v', 'm', 'e', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'h', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'm', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 's', '3', '9', '0', '_', 'v', 'm', 'h', 'h', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'e',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'm', 'l', 'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'e', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'm', 'l', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'm', 'l', 'h', 'f', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'h',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'm', 'l', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'o', 'f', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'm', 'l', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'm', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'o', 'f', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
+  'v', 'm', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'm', 's', 'l', 'g', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'd', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'p', 'e', 'r', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'k', 'l', 's', 'f', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'p', 'k', 'l', 's', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 's', '3', '9', '0', '_', 'v', 'p', 'k', 'l', 's', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p',
+  'k', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
+  '3', '9', '0', '_', 'v', 'p', 'k', 's', 'g', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'k', 's', 'h',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 's', 'b', 'c', 'b', 'i', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'b', 'i', 'q', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
+  'v', 's', 'c', 'b', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'c', 'b', 'i', 'f', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  's', 'c', 'b', 'i', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 's', '3', '9', '0', '_', 'v', 's', 'c', 'b', 'i', 'h', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's',
+  'c', 'b', 'i', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 's', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'l', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  's', 'l', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 's', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'r', 'a', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  's', 'r', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 's', 'r', 'l', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'r', 'l', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 's', 't', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's',
+  't', 'r', 'c', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'h', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't',
+  'r', 'c', 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'z', 'f', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's',
+  't', 'r', 'c', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'r', 'l', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'u',
+  'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
+  '9', '0', '_', 'v', 's', 'u', 'm', 'g', 'f', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm', 'g',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 's', 'u', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm', 'q', 'f', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
+  'v', 's', 'u', 'm', 'q', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 's', '3', '9', '0', '_', 'v', 't', 'm', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'h',
+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'u', 'p', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'h', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
+  'u', 'p', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'f', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l',
+  'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
+  '9', '0', '_', 'v', 'u', 'p', 'l', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'h',
+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
+  '0', '_', 'v', 'u', 'p', 'l', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'l', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
+  '_', 'v', 'u', 'p', 'l', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'l', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'a', 'v', 'g', 'u', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', '2', 'i', 'd', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'f', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'f', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'c', 'm',
+  'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'f', 'c', 'm', 'p', 'g', 'e', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'c',
+  'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'f', 'm', 'a', 'x', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'm', 'i',
+  'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'f', 'm', 'u', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'r', 'c', 'p', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'f', 'r', 'c', 'p', 'i', 't', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'r', 'c', 'p', 'i', 't',
+  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'f', 'r', 's', 'q', 'i', 't', '1', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'r', 's',
+  'q', 'r', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'f', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 's', 'u', 'b',
+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'i', '2', 'f', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'f', '2', 'i', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'n', 'a', 'c', 'c', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'f', 'p', 'n', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'i', '2', 'f', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd',
+  'd', 'c', 'a', 'r', 'r', 'y', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'c',
+  'a', 'r', 'r', 'y', '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r',
+  'r', 'y', 'x', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r', 'r',
+  'y', 'x', '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'd', 'e', 'c', '1', '2',
+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'a', 'e', 's', 'd', 'e', 'c', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's',
+  'd', 'e', 'c', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'd', 'e', 'c', 'l', 'a',
+  's', 't', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'd', 'e', 'c', 'l', 'a', 's',
+  't', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'a', 'e', 's', 'd', 'e', 'c', 'l', 'a', 's', 't',
+  '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'a', 'e', 's', 'e', 'n', 'c', '1', '2', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a',
+  'e', 's', 'e', 'n', 'c', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'e', 'n', 'c',
+  '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'a', 'e', 's', 'e', 'n', 'c', 'l', 'a', 's', 't', '1',
+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'a', 'e', 's', 'e', 'n', 'c', 'l', 'a', 's', 't', '2', '5',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'a', 'e', 's', 'e', 'n', 'c', 'l', 'a', 's', 't', '5', '1', '2',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'a', 'e', 's', 'i', 'm', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'k',
+  'e', 'y', 'g', 'e', 'n', 'a', 's', 's', 'i', 's', 't', '1', '2', '8', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd',
+  's', 'u', 'b', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'l', 'e', 'n', 'd', 'v',
+  'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'b', 'l', 'e', 'n', 'd', 'v', 'p', 's', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'p', 's', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'c', 'v', 't', 'p', 'd', '2', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
+  'p', 's', '2', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd',
+  '2', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'd',
+  'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'd', 'p', 'p', 's', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 'a',
+  'd', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 'a', 'd', 'd', 'p', 's', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'h', 's', 'u', 'b', 'p', 'd', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 's',
+  'u', 'b', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'd', 'd', 'q', 'u', '2', '5',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'p', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a',
+  's', 'k', 'l', 'o', 'a', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's',
+  'k', 'l', 'o', 'a', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a',
+  'd', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r',
+  'e', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'p', 'd',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'p', 's',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'p', 's', '2', '5', '6',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'm', 'a', 'x', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p', 's',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'm', 'i', 'n', 'p', 'd', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i',
+  'n', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's', 'k', 'p', 'd',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's', 'k', 'p', 's', '2', '5', '6',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 't', 'e', 's', 't', 'c', '2', '5', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
+  't', 'n', 'z', 'c', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'z', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'r', 'c', 'p', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u',
+  'n', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n', 'd', 'p', 's',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', 'p', 's', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 'd', '2', '5', '6', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'p', 'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
+  'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 's', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't',
+  'e', 's', 't', 'c', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'c', 'p', 'd',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'c', 'p', 's', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't',
+  'e', 's', 't', 'c', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't',
+  'n', 'z', 'c', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'n', 'z', 'c', 'p',
+  'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'n', 'z', 'c', 'p', 's',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 't', 'e', 's', 't', 'n', 'z', 'c', 'p', 's', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 't', 'e', 's', 't', 'z', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'z',
+  'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'z', 'p', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 't', 'e', 's', 't', 'z', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'z', 'e',
+  'r', 'o', 'a', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'z', 'e', 'r', 'o', 'u', 'p', 'p', 'e',
+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't',
+  'h', 'e', 'r', 'd', '_', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
+  'r', 'd', '_', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'p',
+  'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'p', 's',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'p', 's', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'q', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
+  'r', 'd', '_', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q',
+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'd', '2', '5', '6',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'p', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't',
+  'h', 'e', 'r', 'q', '_', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h',
+  'e', 'r', 'q', '_', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_',
+  'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'q',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'q', '2', '5', '6', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
+  'a', 's', 'k', 'l', 'o', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o',
+  'a', 'd', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd',
+  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'q', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k',
+  's', 't', 'o', 'r', 'e', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's',
+  't', 'o', 'r', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e',
+  'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'm', 'p', 's', 'a', 'd', 'b', 'w', '2', '5', '6',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
+  'c', 'k', 's', 's', 'w', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u',
+  's', 'd', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'w', 'b',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'b', '2', '5', '6', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'a', 'd', 'd', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's',
+  'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'w', '2', '5', '6',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'b', 'l', 'e', 'n', 'd', 'v', 'b', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e',
+  'r', 'm', 'v', 'a', 'r', 's', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm',
+  'v', 'a', 'r', 's', 'f', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'd',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 's', 'w', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'h', 'a', 'd', 'd', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b',
+  'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 's', 'w', '2', '5', '6',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'h', 's', 'u', 'b', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd',
+  'd', 'u', 'b', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'w',
+  'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'm', 's', 'k', 'b', '2', '5',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '2', '5', '6', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'm', 'u', 'l', 'h', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u',
+  'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 's', 'a', 'd', 'b', 'w', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 's', 'h', 'u', 'f', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n',
+  'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'd', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 's', 'i', 'g', 'n', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
+  'l', 'l', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', 'i', '2', '5',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
+  'l', 'w', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '4', 's', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'l', 'l', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v',
+  '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '4', 'd', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
+  'r', 'a', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', '2', '5', '6',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'r', 'a', 'd', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a',
+  'w', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '4', 's', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 's', 'r', 'a', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'd', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 's', 'r', 'l', 'q', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
+  'l', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'd', 'i', '2', '5', '6',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'r', 'l', 'q', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l',
+  'w', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '4', 's', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 's', 'r', 'l', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '2',
+  'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 's', 'r', 'l', 'v', '4', 'd', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
+  'b', 's', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w', '2', '5',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
+  'u', 'b', 'u', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'p', 'd', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'a', 'd', 'd', 'p', 's', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o',
+  'a', 'd', 'c', 'a', 's', 't', 'm', 'b', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o',
+  'a', 'd', 'c', 'a', 's', 't', 'm', 'b', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o',
+  'a', 'd', 'c', 'a', 's', 't', 'm', 'b', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o',
+  'a', 'd', 'c', 'a', 's', 't', 'm', 'w', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o',
+  'a', 'd', 'c', 'a', 's', 't', 'm', 'w', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o',
+  'a', 'd', 'c', 'a', 's', 't', 'm', 'w', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
+  's', 'i', '2', 's', 'd', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 'i', '2', 's',
+  's', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'v', 't', 's', 'i', '2', 's', 's', '6', '4', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'c', 'v', 't', 't', 's', 'd', '2', 's', 'i', '3', '2', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c',
+  'v', 't', 't', 's', 'd', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't',
+  't', 's', 'd', '2', 'u', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't',
+  's', 'd', '2', 'u', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's',
+  's', '2', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 's', '2',
+  's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 'u', 's',
+  'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 'u', 's', 'i',
+  '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'v', 't', 'u', 's', 'i', '2', 's', 's', '3', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'c', 'v', 't', 'u', 's', 'i', '2', 's', 'd', '6', '4', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
+  'u', 's', 'i', '2', 's', 's', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'b', 'p', 's', 'a', 'd',
+  'b', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'd', 'b', 'p', 's', 'a', 'd', 'b', 'w', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'd', 'b', 'p', 's', 'a', 'd', 'b', 'w', '5', '1', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'd', 'i', 'v', 'p', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'i', 'v', 'p', 's', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'e', 'x', 'p', '2', 'p', 'd', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'e', 'x', 'p', '2', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't',
+  'h', 'e', 'r', 's', 'i', 'v', '8', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
+  'r', 's', 'i', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
+  's', 'i', 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 's', 'i',
+  'v', '1', '6', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', 'i', 'v',
+  '8', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', 'i', 'v', '1', '6',
+  's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', 'i', 'v', '8', 'd', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', 'i', 'v', '1', '6', 's', 'f', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '2', 'd', 'f', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
+  'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '2', 'd', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a',
+  't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '4', 'd', 'f', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't',
+  'h', 'e', 'r', '3', 'd', 'i', 'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h',
+  'e', 'r', '3', 'd', 'i', 'v', '4', 's', 'f', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
+  'r', '3', 'd', 'i', 'v', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
+  '3', 'd', 'i', 'v', '8', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3',
+  'd', 'i', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's',
+  'i', 'v', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i',
+  'v', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v',
+  '4', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '4',
+  'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '4', 's',
+  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '4', 's', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '8', 's', 'f', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '8', 's', 'i', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
+  'a', 't', 'h', 'e', 'r', 'p', 'f', 'd', 'p', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h',
+  'e', 'r', 'p', 'f', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'p',
+  'f', 'q', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'p', 'f', 'q', 'p',
+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'a', 'd', 'd', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'a', 'd', 'd', 's', 's', '_', 'r', 'o', 'u', 'n', 'd',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 's', 'd', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'c', 'm', 'p', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
+  'm', 'p', 'r', 'e', 's', 's', 'q', 'i', '1', '2', '8', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'q', 'i', '2', '5', '6',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'q',
+  'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
+  'e', 's', 's', 's', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
+  'o', 'm', 'p', 'r', 'e', 's', 's', 's', 'i', '2', '5', '6', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 'i', '5', '1',
+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
+  'd', 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p',
+  'r', 'e', 's', 's', 'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'f', '5', '1', '2', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 'f', '1',
+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's',
+  's', 's', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm',
+  'p', 'r', 'e', 's', 's', 's', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'i', '1', '2', '8', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'i',
+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e',
+  's', 's', 'd', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
+  'm', 'p', 'r', 'e', 's', 's', 'h', 'i', '1', '2', '8', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'h', 'i', '2', '5', '6',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'h',
+  'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n',
+  'f', 'l', 'i', 'c', 't', 's', 'i', '_', '1', '2', '8', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 's', 'i', '_',
+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f',
+  'l', 'i', 'c', 't', 's', 'i', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 'd', 'i', '_', '1',
+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l',
+  'i', 'c', 't', 'd', 'i', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 'd', 'i', '_', '5', '1',
+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'd', 'q', '2', 'p', 's',
+  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2',
+  'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p',
+  'd', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
+  't', 'p', 'd', '2', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
+  'p', 'd', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
+  'v', 't', 'p', 'd', '2', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 'p', 'd', '2', 'q', 'q', '2', '5', '6', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'q', 'q', '5', '1', '2', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'd', 'q', '1',
+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u',
+  'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p',
+  'd', '2', 'u', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
+  'v', 't', 'p', 'd', '2', 'u', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'q', 'q', '2', '5', '6', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'q', 'q', '5',
+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'd',
+  'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's',
+  '2', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
+  'p', 's', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
+  'v', 't', 'p', 's', '2', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 'p', 's', '2', 'q', 'q', '1', '2', '8', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'q', 'q', '2', '5', '6', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'q', 'q', '5', '1',
+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'd',
+  'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's',
+  '2', 'u', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
+  't', 'p', 's', '2', 'u', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'q', 'q', '1', '2', '8', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'q', 'q', '2', '5',
+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'q',
+  'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q',
+  '2', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
+  'q', 'q', '2', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
+  'v', 't', 'q', 'q', '2', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'v', 't', 's', 'd', '2', 's', 's', '_', 'r', 'o', 'u',
+  'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 's', '2', 's',
+  'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
+  't', 't', 'p', 'd', '2', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'd', 'q', '5', '1', '2', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'q', 'q', '1', '2',
+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'q',
+  'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p',
+  'd', '2', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
+  't', 't', 'p', 'd', '2', 'u', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'd', 'q', '2', '5', '6',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'd',
+  'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p',
+  'd', '2', 'u', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
+  'v', 't', 't', 'p', 'd', '2', 'u', 'q', 'q', '2', '5', '6', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'q', 'q', '5', '1',
+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'd',
+  'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p',
+  's', '2', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
+  't', 't', 'p', 's', '2', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 't', 'p', 's', '2', 'q', 'q', '5', '1', '2', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u', 'd', 'q', '1',
+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2',
+  'u', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
+  't', 'p', 's', '2', 'u', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u', 'q', 'q', '1', '2', '8', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u', 'q', 'q',
+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's',
+  '2', 'u', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
+  't', 'u', 'd', 'q', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 'u', 'q', 'q', '2', 'p', 'd', '5', '1', '2', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2', 'p', 's', '1', '2',
+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2', 'p',
+  's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'q',
+  'q', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'i',
+  'v', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'd', 'i', 'v', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'q', 'i', '1', '2', '8', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'q', 'i', '2', '5', '6',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'q', 'i', '5',
+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's',
+  'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
+  'd', 's', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p',
+  'a', 'n', 'd', 's', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e',
+  'x', 'p', 'a', 'n', 'd', 'd', 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'e', 'x', 'p', 'a', 'n', 'd', 'd', 'f', '2', '5', '6', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'd', 'f', '5', '1', '2', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'f', '1', '2',
+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'f',
+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd',
+  's', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a',
+  'n', 'd', 'd', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
+  'p', 'a', 'n', 'd', 'd', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'e', 'x', 'p', 'a', 'n', 'd', 'd', 'i', '5', '1', '2', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'h', 'i', '1', '2', '8', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'h', 'i', '2', '5', '6',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'h', 'i', '5',
+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm',
+  'm', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x',
+  'u', 'p', 'i', 'm', 'm', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '5', '1', '2', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's',
+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i',
+  'm', 'm', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i',
+  'x', 'u', 'p', 'i', 'm', 'm', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 's', 'd', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 's', 's', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's', 's', 's', 'd', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's', 's', 's', 's', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 'd', '1', '2', '8',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 'd', '2',
+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p',
+  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x',
+  'p', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't',
+  'e', 'x', 'p', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
+  'e', 't', 'e', 'x', 'p', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'g', 'e', 't', 'e', 'x', 'p', 's', 'd', '1', '2', '8', '_', 'r', 'o',
+  'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p',
+  's', 's', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p', 'd', '1', '2', '8', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p', 'd', '2',
+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't',
+  'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm',
+  'a', 'n', 't', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
+  'e', 't', 'm', 'a', 'n', 't', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p', 's', '5', '1', '2', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 's', 'd', '_',
+  'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm',
+  'a', 'n', 't', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'm', 'a', 'x', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'm', 'a', 'x', 's', 's', '_', 'r', 'o', 'u', 'n', 'd',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 'd', '_', 'r', 'o', 'u',
+  'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 's', '_', 'r',
+  'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l', 's', 'd',
+  '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l',
+  's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'a', 'd', 'd', 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'a', 'd', 'd', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'a', 'd', 'd', 'u', 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'a', 'd', 'd', 'u', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'o', 'v', 'd', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'o', 'v', 'd', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'o', 'v', 'd', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '2', '5', '6', 'm', 'e',
+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '5', '1',
+  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd',
+  'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd',
+  'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd',
+  'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 'd', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'o', 'v', 'd', 'w', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '1', '2', '8', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '2', '5', '6', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '5', '1', '2', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '1', '2', '8', 'm', 'e',
+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '2', '5',
+  '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q',
+  'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 'q', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 'q', 'd', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'o', 'v', 'q', 'd', '2', '5', '6', 'm', 'e', 'm', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'd', '5', '1', '2', 'm', 'e',
+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '1', '2',
+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '2', '5',
+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '1', '2',
+  '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q',
+  'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 'q', 'w', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'o', 'v', 'w', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'o', 'v', 'w', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '2', '5', '6', 'm', 'e',
+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '5', '1',
+  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's',
+  'd', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
+  's', 'd', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
+  'v', 's', 'd', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 's', 'd', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'b', '2', '5', '6', 'm', 'e', 'm',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'b', '5', '1',
+  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's',
+  'd', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
+  's', 'd', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
+  'v', 's', 'd', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 's', 'd', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'w', '2', '5', '6', 'm', 'e', 'm',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'w', '5', '1',
+  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's',
+  'q', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
+  's', 'q', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
+  'v', 's', 'q', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 's', 'q', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'b', '2', '5', '6', 'm', 'e', 'm',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'b', '5', '1',
+  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's',
+  'q', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
+  's', 'q', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
+  'v', 's', 'q', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 's', 'q', 'd', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'd', '2', '5', '6', 'm', 'e', 'm',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'd', '5', '1',
+  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's',
+  'q', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
+  's', 'q', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
+  'v', 's', 'q', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 's', 'q', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'w', '2', '5', '6', 'm', 'e', 'm',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'w', '5', '1',
+  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's',
+  'w', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
+  's', 'w', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
+  'v', 's', 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 's', 'w', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'm', 'o', 'v', 's', 'w', 'b', '2', '5', '6', 'm', 'e', 'm',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'w', 'b', '5', '1',
+  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u',
+  's', 'd', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
+  'v', 'u', 's', 'd', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'm', 'o', 'v', 'u', 's', 'd', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'b', '1', '2', '8', 'm', 'e', 'm',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'b', '2',
+  '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
+  'u', 's', 'd', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '1', '2', '8', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '2', '5', '6', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '5', '1',
+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w',
+  '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
+  'v', 'u', 's', 'd', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '5', '1', '2', 'm', 'e',
+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'b',
+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's',
+  'q', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
+  'u', 's', 'q', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 'u', 's', 'q', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'b', '2', '5', '6', 'm',
+  'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q',
+  'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'o', 'v', 'u', 's', 'q', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '2', '5', '6', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '5', '1', '2', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '1', '2', '8',
+  'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's',
+  'q', 'd', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'm', 'o', 'v', 'u', 's', 'q', 'd', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '1', '2', '8',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '2',
+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q',
+  'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u',
+  's', 'q', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '2', '5', '6', 'm', 'e', 'm', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '5', '1',
+  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u',
+  's', 'w', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
+  'v', 'u', 's', 'w', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'm', 'o', 'v', 'u', 's', 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'o', 'v', 'u', 's', 'w', 'b', '1', '2', '8', 'm', 'e', 'm',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'w', 'b', '2',
+  '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
+  'u', 's', 'w', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'm', 'u', 'l', 't', 'i', 's', 'h', 'i', 'f', 't', 'q', 'b',
+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'u', 'l', 't',
+  'i', 's', 'h', 'i', 'f', 't', 'q', 'b', '2', '5', '6', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'p', 'm', 'u', 'l', 't', 'i', 's', 'h', 'i', 'f', 't', 'q',
+  'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's',
+  'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's',
+  'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'u',
+  's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
+  'u', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n',
+  'g', 'e', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a',
+  'n', 'g', 'e', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
+  'a', 'n', 'g', 'e', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'r', 'a', 'n', 'g', 'e', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'r', 'a', 'n', 'g', 'e', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'r', 'a', 'n', 'g', 'e', 'p', 's', '5', '1', '2', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 's', 'd', '1', '2', '8', '_', 'r',
+  'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e',
+  's', 's', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 'd', '1', '2', '8', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 'd', '2', '5', '6',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 'd', '5',
+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p',
+  's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c',
+  'e', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd',
+  'u', 'c', 'e', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
+  'e', 'd', 'u', 'c', 'e', 's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e',
+  'd', 'u', 'c', 'e', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd',
+  's', 'c', 'a', 'l', 'e', 'p', 'd', '_', '1', '2', '8', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p', 'd', '_', '2', '5',
+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e',
+  'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l',
+  'e', 'p', 's', '_', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n',
+  'd', 's', 'c', 'a', 'l', 'e', 'p', 's', '_', '2', '5', '6', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p', 's', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 's', 'd', '_',
+  'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's',
+  'c', 'a', 'l', 'e', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 'd', '1', '2', '8', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 'd', '2', '5',
+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 'd',
+  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f',
+  'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l',
+  'e', 'f', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
+  'a', 'l', 'e', 'f', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  's', 'c', 'a', 'l', 'e', 'f', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 's', 's', '_', 'r',
+  'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'u', 'b', 's', 'd',
+  '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'u', 'b',
+  's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'c', 'v', 't', 'p', 'h', '2', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'c', 'v', 't', 'p', 'h', '2', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '5', '1', '2', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's', '2', 'p', 'h', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's', '2', 'p', 'h', '2',
+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's', '2',
+  'p', 'h', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h',
+  'l', 'd', 'v', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  's', 'h', 'l', 'd', 'v', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 's', 'h', 'l', 'd', 'v', 'd', '5', '1', '2', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'q', '1', '2', '8', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'q', '2', '5', '6',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'q', '5',
+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v',
+  'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l',
+  'd', 'v', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
+  'h', 'l', 'd', 'v', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'p', 's', 'h', 'r', 'd', 'v', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'd', '2', '5', '6', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'd', '5', '1', '2', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'q', '1', '2',
+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'q',
+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd',
+  'v', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h',
+  'r', 'd', 'v', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  's', 'h', 'r', 'd', 'v', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 's', 'h', 'r', 'd', 'v', 'w', '5', '1', '2', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'p', 's', 'h', 'u', 'f', 'b', 'i', 't', 'q', 'm', 'b', '1',
+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'u', 'f', 'b',
+  'i', 't', 'q', 'm', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'p', 's', 'h', 'u', 'f', 'b', 'i', 't', 'q', 'm', 'b', '5', '1', '2', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd',
+  '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p',
+  'i', 'm', 'm', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '5', '1', '2', '_', 'm',
+  'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's',
+  '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p',
+  'i', 'm', 'm', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's', '5', '1', '2', '_', 'm',
+  'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 's', 'd',
+  '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm',
+  's', 's', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd',
+  'v', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
+  'h', 'l', 'd', 'v', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 's', 'h', 'l', 'd', 'v', 'd', '5', '1', '2', '_', 'm', 'a', 's',
+  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'q', '1', '2', '8', '_',
+  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'q', '2',
+  '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd',
+  'v', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
+  'h', 'l', 'd', 'v', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 's', 'h', 'l', 'd', 'v', 'w', '2', '5', '6', '_', 'm', 'a', 's',
+  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'w', '5', '1', '2', '_',
+  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'd', '1',
+  '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd',
+  'v', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
+  'h', 'r', 'd', 'v', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 's', 'h', 'r', 'd', 'v', 'q', '1', '2', '8', '_', 'm', 'a', 's',
+  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'q', '2', '5', '6', '_',
+  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'q', '5',
+  '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd',
+  'v', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
+  'h', 'r', 'd', 'v', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 's', 'h', 'r', 'd', 'v', 'w', '5', '1', '2', '_', 'm', 'a', 's',
+  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'm', 'a', 'x', 'p', 'd', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x',
+  'p', 's', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 'd', '5', '1', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'm', 'i', 'n', 'p', 's', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l', 'p', 'd', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'm', 'u', 'l', 'p', 's', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c',
+  'k', 's', 's', 'd', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's',
+  'w', 'b', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'd', 'w', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'w', 'b', '5', '1', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'e', 'r', 'm', 'v', 'a', 'r', 'd', 'f', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e',
+  'r', 'm', 'v', 'a', 'r', 'd', 'f', '5', '1', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm',
+  'v', 'a', 'r', 'd', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a',
+  'r', 'd', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'h',
+  'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'h', 'i', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'h', 'i', '5', '1', '2',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'q', 'i', '1', '2', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'e', 'r', 'm', 'v', 'a', 'r', 'q', 'i', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r',
+  'm', 'v', 'a', 'r', 'q', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v',
+  'a', 'r', 's', 'f', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r',
+  's', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w',
+  '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '5', '1', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u',
+  'l', 'h', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'r', 'o', 'l', 'd', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o',
+  'l', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'd', '5', '1', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'r', 'o', 'l', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'q', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'r', 'o', 'l', 'q', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o',
+  'l', 'v', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'v', 'd', '2', '5',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'r', 'o', 'l', 'v', 'd', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o',
+  'l', 'v', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'v', 'q', '2', '5',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'r', 'o', 'l', 'v', 'q', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o',
+  'r', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'd', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'r', 'o', 'r', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'q', '1',
+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'r', 'o', 'r', 'q', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o',
+  'r', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'v', 'd', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'r', 'o', 'r', 'v', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
+  'v', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'v', 'q', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'r', 'o', 'r', 'v', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
+  'v', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'a', 'd', 'b', 'w', '5', '1', '2',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'h', 'u', 'f', 'b', '5', '1', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
+  'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', '5', '1', '2', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  's', 'l', 'l', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', 'i', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '5', '1', '2', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
+  'l', 'l', 'w', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '1', '6',
+  's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 's', 'l', 'l', 'v', '8', 'd', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
+  'l', 'v', '8', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '1', '6', 'h', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'l', 'l', 'v', '3', '2', 'h', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a',
+  'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', '1', '2', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  's', 'r', 'a', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', '5', '1',
+  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 's', 'r', 'a', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a',
+  'd', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', 'i', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'r', 'a', 'q', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a',
+  'q', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', 'i', '5', '1', '2',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'r', 'a', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a',
+  'v', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', 'q', '2', '5', '6',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'r', 'a', 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v',
+  '8', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '1', '6', 'h', 'i', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  's', 'r', 'a', 'v', '3', '2', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'd', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 's', 'r', 'l', 'q', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
+  'l', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'd', 'i', '5', '1', '2',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'r', 'l', 'q', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l',
+  'w', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '1', '6', 's', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'r', 'l', 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v',
+  '8', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '1', '6', 'h', 'i', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  's', 'r', 'l', 'v', '3', '2', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l',
+  'o', 'g', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g',
+  'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '2', '5', '6', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p',
+  '1', '4', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c',
+  'p', '1', '4', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
+  'c', 'p', '1', '4', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'r', 'c', 'p', '1', '4', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'r', 'c', 'p', '1', '4', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'r', 'c', 'p', '1', '4', 'p', 's', '5', '1', '2', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'r', 'c', 'p', '1', '4', 's', 'd', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'r', 'c', 'p', '1', '4', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
+  'c', 'p', '2', '8', 'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p',
+  '2', '8', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8',
+  's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
+  'c', 'p', '2', '8', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 'p', 'd', '1', '2', '8',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 'p', 'd',
+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1',
+  '4', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q',
+  'r', 't', '1', '4', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'r', 's', 'q', 'r', 't', '1', '4', 'p', 's', '2', '5', '6', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 'p', 's', '5', '1', '2',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 's', 'd',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 's', 's',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '2', '8', 'p', 'd',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '2', '8', 'p', 's',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '2', '8', 's', 'd',
+  '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q',
+  'r', 't', '2', '8', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 'd',
+  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '1', '6', 's',
+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 'd', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '1', '6', 's', 'f',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '8', 'd', 'f', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '1', '6', 's', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '8', 'd', 'i', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
+  'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '1', '6', 's', 'f', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
+  'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '2', 'd', 'f', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
+  'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '2', 'd', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a',
+  't', 't', 'e', 'r', 'd', 'i', 'v', '4', 'd', 'f', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't',
+  't', 'e', 'r', 'd', 'i', 'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't',
+  'e', 'r', 'd', 'i', 'v', '4', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e',
+  'r', 'd', 'i', 'v', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r',
+  'd', 'i', 'v', '8', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd',
+  'i', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'p', 'f',
+  'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'p', 'f', 'd', 'p',
+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'p', 'f', 'q', 'p', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  's', 'c', 'a', 't', 't', 'e', 'r', 'p', 'f', 'q', 'p', 's', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
+  'a', 't', 't', 'e', 'r', 's', 'i', 'v', '2', 'd', 'f', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a',
+  't', 't', 'e', 'r', 's', 'i', 'v', '2', 'd', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't',
+  't', 'e', 'r', 's', 'i', 'v', '4', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't',
+  'e', 'r', 's', 'i', 'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e',
+  'r', 's', 'i', 'v', '4', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r',
+  's', 'i', 'v', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's',
+  'i', 'v', '8', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i',
+  'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 's', 'u', 'b', 'p', 'd', '5', '1', '2', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
+  'u', 'b', 'p', 's', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'o', 'm', 'i', 's', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'c', 'o', 'm', 'i', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 'd',
+  '2', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 'd', '2', 's', 'i',
+  '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'c', 'v', 't', 's', 'd', '2', 'u', 's', 'i', '3', '2',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'c', 'v', 't', 's', 'd', '2', 'u', 's', 'i', '6', '4', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'c', 'v', 't', 's', 's', '2', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't',
+  's', 's', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 's', '2',
+  'u', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 's', '2', 'u', 's',
+  'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b', 'u', 's', 'd', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'd', 'p', 'b', 'u', 's', 'd', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  'd', 'p', 'b', 'u', 's', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b',
+  'u', 's', 'd', 's', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b', 'u', 's',
+  'd', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b', 'u', 's', 'd', 's',
+  '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'w', 's', 's', 'd', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'd', 'p', 'w', 's', 's', 'd', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  'd', 'p', 'w', 's', 's', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'w',
+  's', 's', 'd', 's', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'w', 's', 's',
+  'd', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'w', 's', 's', 'd', 's',
+  '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'd',
+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'd',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'd',
+  '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'h',
+  'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r',
+  'h', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a',
+  'r', 'h', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v',
+  'a', 'r', 'p', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2',
+  'v', 'a', 'r', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i',
+  '2', 'v', 'a', 'r', 'p', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
+  'i', '2', 'v', 'a', 'r', 'p', 's', '1', '2', '8', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
+  'm', 'i', '2', 'v', 'a', 'r', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
+  'r', 'm', 'i', '2', 'v', 'a', 'r', 'p', 's', '5', '1', '2', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', '1', '2', '8', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', '5', '1', '2', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', 'i', '1', '2', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', 'i', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', 'i', '5', '1', '2',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 'd', '5', '1',
+  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 's', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '1',
+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '1',
+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'd', '1', '2', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'p', 's', 'h', 'l', 'd', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l',
+  'd', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'q', '1', '2',
+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'q', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  's', 'h', 'l', 'd', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd',
+  'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'w', '2', '5', '6',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 's', 'h', 'l', 'd', 'w', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
+  'h', 'r', 'd', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'd',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'd', '5', '1', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 's', 'h', 'r', 'd', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h',
+  'r', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'q', '5',
+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'w', '1', '2', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'p', 's', 'h', 'r', 'd', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r',
+  'd', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x', 't', 'r', '_', 'u', '3', '2',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'b', 'e', 'x', 't', 'r', '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'z', 'h', 'i',
+  '_', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'b', 'z', 'h', 'i', '_', 'd', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'd', 'e',
+  'p', '_', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'd', 'e', 'p', '_', 'd', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e',
+  'x', 't', '_', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'x', 't', '_', 'd', 'i', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
+  'l', 'd', 'e', 'm', 'o', 't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'l', 'f', 'l', 'u', 's', 'h',
+  'o', 'p', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'l', 'r', 's', 's', 'b', 's', 'y', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'l',
+  'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'l', 'z', 'e', 'r', 'o', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'i', 'r', 'e', 'c',
+  't', 's', 't', 'o', 'r', 'e', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'i', 'r', 'e',
+  'c', 't', 's', 't', 'o', 'r', 'e', '_', 'u', '6', '4', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'a',
+  'd', 'e', 'f', 'l', 'a', 'g', 's', '_', 'u', '3', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'a',
+  'd', 'e', 'f', 'l', 'a', 'g', 's', '_', 'u', '6', '4', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'i',
+  't', 'e', 'e', 'f', 'l', 'a', 'g', 's', '_', 'u', '3', '2', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r',
+  'i', 't', 'e', 'e', 'f', 'l', 'a', 'g', 's', '_', 'u', '6', '4', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f',
+  'x', 'r', 's', 't', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'f', 'x', 'r', 's', 't', 'o', 'r', '6',
+  '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'f', 'x', 's', 'a', 'v', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'x', 's', 'a', 'v', 'e',
+  '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'i', 'n', 'c', 's', 's', 'p', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 'c', 's',
+  's', 'p', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'i', 'n', 'v', 'p', 'c', 'i', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'l', 'w',
+  'p', 'c', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'l', 'w', 'p', 'i', 'n', 's', '3', '2', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'w',
+  'p', 'i', 'n', 's', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'l', 'w', 'p', 'v', 'a', 'l', '3', '2',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'l', 'w', 'p', 'v', 'a', 'l', '6', '4', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'm', 'm', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'f', 'e', 'm', 'm', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'm', 'o', 'v', 'q', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'm', 'o', 'v', 'n', 't', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'a', 'c', 'k', 's', 's', 'w', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u',
+  's', 'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'a', 'd', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
+  'd', 'd', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd',
+  'd', 'u', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
+  'l', 'i', 'g', 'n', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'n', 'd',
+  'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'a', 'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g', 'w', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'c', 'm', 'p', 'e', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 'q', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'c', 'm', 'p', 'e', 'q', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'g', 't', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'c', 'm', 'p', 'g', 't', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'g', 't',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'e', 'c', '_', 'e', 'x', 't', '_', 'v', '4', 'h', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'e', 'c', '_', 's', 'e', 't', '_', 'v', '4', 'h', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'a', 'd', 'd', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'x', 's', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'm', 'i', 'n', 's', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'i',
+  'n', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'm', 's', 'k', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'u', 'l', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'u', 'l', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'o',
+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 's', 'a', 'd', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 's', 'l', 'l', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
+  'l', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
+  'w', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 's', 'r', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 's', 'r', 'a', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', 'i', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  's', 'r', 'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 's', 'r', 'l', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'r', 'l', 'w', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'b', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  's', 'u', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'q', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 's', 'u', 'b', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'u', 's',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'h', 'b', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u', 'n',
+  'p', 'c', 'k', 'h', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'h', 'w',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'l', 'b', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u', 'n',
+  'p', 'c', 'k', 'l', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'l', 'w',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'n', 'i', 't', 'o', 'r', 'x',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'm', 'o', 'v', 'd', 'i', 'r', '6', '4', 'b', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'w', 'a', 'i',
+  't', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'c', 'l', 'm', 'u', 'l', 'q', 'd', 'q', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'c', 'l', 'm', 'u', 'l', 'q', 'd', 'q', '2', '5', '6', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'c', 'l', 'm', 'u', 'l', 'q', 'd', 'q', '5', '1', '2', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'w',
+  'r', 'i', 't', 'e', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'w', 'r', 'i', 't', 'e', '6',
+  '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'r', 'd', 'f', 's', 'b', 'a', 's', 'e', '3', '2', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd',
+  'f', 's', 'b', 'a', 's', 'e', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'g', 's', 'b', 'a',
+  's', 'e', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'r', 'd', 'g', 's', 'b', 'a', 's', 'e', '6', '4',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'r', 'd', 'p', 'i', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'p', 'k', 'r', 'u', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
+  'd', 'p', 'm', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'r', 'd', 's', 's', 'p', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 's',
+  's', 'p', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'r', 'd', 't', 's', 'c', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 't', 's', 'c',
+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'r', 's', 't', 'o', 'r', 's', 's', 'p', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'a', 'v', 'e',
+  'p', 'r', 'e', 'v', 's', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'e', 't', 's', 's', 'b', 's',
+  'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 's', 'h', 'a', '1', 'm', 's', 'g', '1', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '1',
+  'm', 's', 'g', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 's', 'h', 'a', '1', 'n', 'e', 'x', 't', 'e', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  's', 'h', 'a', '1', 'r', 'n', 'd', 's', '4', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '2', '5',
+  '6', 'm', 's', 'g', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '2', '5', '6', 'm', 's', 'g',
+  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 's', 'h', 'a', '2', '5', '6', 'r', 'n', 'd', 's', '2', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
+  'l', 'w', 'p', 'c', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 's', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm',
+  'i', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'g', 'e', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i',
+  'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'o', 'm', 'i', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'l',
+  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'c', 'o', 'm', 'i', 'n', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd',
+  '2', 'p', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'v', 't', 'p', 'i', '2', 'p', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
+  't', 'p', 'i', '2', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'p', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 's', 's', '2', 's', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 's',
+  '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'p', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 't', 'p', 's', '2', 'p', 'i', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
+  's', 's', '2', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 's', 's', '2', 's', 'i',
+  '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'm', 'a', 'x', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 's', 's', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'm', 'i', 'n', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v',
+  'm', 's', 'k', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'h', 'u', 'f', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c',
+  'p', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'r', 'c', 'p', 's', 's', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't',
+  'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'r', 's', 'q', 'r', 't', 's', 's', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'f', 'e', 'n',
+  'c', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'e', 'q', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm',
+  'i', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'g', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o',
+  'm', 'i', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'l', 't', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c',
+  'o', 'm', 'i', 'n', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'l', 'f', 'l', 'u', 's', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'c', 'm', 'p', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd', 'e', 'q', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'c', 'o', 'm', 'i', 's', 'd', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd',
+  'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd', 'l', 'e', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm',
+  'i', 's', 'd', 'l', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd', 'n', 'e', 'q',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd',
+  '2', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'd', 'q', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
+  't', 's', 'd', '2', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 'd', '2', 's', 'i',
+  '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'v', 't', 's', 'd', '2', 's', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
+  't', 'p', 'd', '2', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'd',
+  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'c', 'v', 't', 't', 's', 'd', '2', 's', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
+  't', 's', 'd', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'f', 'e', 'n', 'c', 'e',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'm', 'a', 's', 'k', 'm', 'o', 'v', 'd', 'q', 'u', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x',
+  'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'm', 'a', 'x', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'f', 'e', 'n', 'c', 'e',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'm', 'i', 'n', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o',
+  'v', 'm', 's', 'k', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w',
+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'w', 'b', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'a', 'c', 'k', 'u', 's', 'w', 'b', '1', '2', '8', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
+  'd', 'd', 's', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'w', '1',
+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'b', '1', '2', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'a', 'd', 'd', 'u', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'u', 's', 'e',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
+  'v', 'm', 's', 'k', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'w',
+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w', '1', '2', '8', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 's', 'a', 'd', 'b', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd',
+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', '1', '2', '8', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
+  'l', 'l', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', 'i', '1', '2',
+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
+  'l', 'w', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 's', 'r', 'a', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd',
+  'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', 'i', '1', '2', '8', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 's', 'r', 'l', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', '1',
+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 's', 'r', 'l', 'w', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
+  'l', 'd', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', 'i', '1', '2',
+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 's', 'r', 'l', 'w', 'i', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
+  'b', 's', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w', '1', '2',
+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '1', '2', '8', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
+  'u', 'b', 'u', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's',
+  'd', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd', 'g', 'e', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u',
+  'c', 'o', 'm', 'i', 's', 'd', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's',
+  'd', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd', 'l', 't', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u',
+  'c', 'o', 'm', 'i', 's', 'd', 'n', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 's', 'u',
+  'b', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 'a',
+  'd', 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'h', 'a', 'd', 'd', 'p', 's', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 's', 'u',
+  'b', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'h', 's', 'u', 'b', 'p', 's', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'd', 'd', 'q',
+  'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'm', 'o', 'n', 'i', 't', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'w', 'a', 'i', 't',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'b', 'l', 'e', 'n', 'd', 'v', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'l', 'e', 'n', 'd',
+  'v', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'd', 'p', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'p', 'p', 's', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i',
+  'n', 's', 'e', 'r', 't', 'p', 's', '1', '2', '8', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'p', 's', 'a',
+  'd', 'b', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'd', 'w',
+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'b', 'l', 'e', 'n', 'd', 'v', 'b', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'h', 'm', 'i', 'n', 'p', 'o', 's', 'u', 'w', '1', '2', '8', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 't', 'e', 's', 't', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't',
+  'n', 'z', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'z', '1', '2',
+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'r', 'o', 'u', 'n', 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n', 'd',
+  'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'r', 'o', 'u', 'n', 'd', 's', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n',
+  'd', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'r', 'c', '3', '2', 'h', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'r', 'c',
+  '3', '2', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'c', 'r', 'c', '3', '2', 'q', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'r',
+  'c', '3', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i',
+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 'a', '1',
+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 'c', '1', '2',
+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 'o', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 's', '1', '2', '8', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 'z', '1', '2', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'c', 'm', 'p', 'e', 's', 't', 'r', 'm', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm',
+  'p', 'i', 's', 't', 'r', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i',
+  's', 't', 'r', 'i', 'a', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's',
+  't', 'r', 'i', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't',
+  'r', 'i', 'o', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't', 'r',
+  'i', 's', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't', 'r', 'i',
+  'z', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't', 'r', 'm', '1',
+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'e', 'x', 't', 'r', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'q', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'i', 'n', 's', 'e', 'r', 't', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't',
+  'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'a', 'b', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'a', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h',
+  'a', 'd', 'd', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 's', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'h', 'a', 'd', 'd', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a',
+  'd', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'w', '1', '2', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'h', 's', 'u', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'd', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'h', 's', 'u', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 's',
+  'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'w', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's',
+  'u', 'b', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's',
+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w', '1', '2', '8', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r',
+  's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'h', 'u', 'f', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
+  'h', 'u', 'f', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 's', 'i', 'g', 'n', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 's', 'i', 'g', 'n', 'd', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i',
+  'g', 'n', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'w', '1', '2', '8', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
+  'u', 'b', 'b', 'o', 'r', 'r', 'o', 'w', '_', 'u', '3', '2', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'u',
+  'b', 'b', 'o', 'r', 'r', 'o', 'w', '_', 'u', '6', '4', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x',
+  't', 'r', 'i', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x', 't', 'r', 'i', '_',
+  'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 't', 'p', 'a', 'u', 's', 'e', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'm', 'o', 'n',
+  'i', 't', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'u', 'm', 'w', 'a', 'i', 't', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v',
+  't', 'p', 'h', '2', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p',
+  's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's', '2', 'p', 'h', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'c', 'v', 't', 'p', 's', '2', 'p', 'h', '2', '5', '6', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'g',
+  'f', '2', 'p', '8', 'a', 'f', 'f', 'i', 'n', 'e', 'i', 'n', 'v', 'q', 'b',
+  '_', 'v', '1', '6', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'g', 'f', '2', 'p', '8', 'a', 'f',
+  'f', 'i', 'n', 'e', 'i', 'n', 'v', 'q', 'b', '_', 'v', '3', '2', 'q', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'g', 'f', '2', 'p', '8', 'a', 'f', 'f', 'i', 'n', 'e', 'i', 'n',
+  'v', 'q', 'b', '_', 'v', '6', '4', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'g', 'f', '2', 'p',
+  '8', 'a', 'f', 'f', 'i', 'n', 'e', 'q', 'b', '_', 'v', '1', '6', 'q', 'i',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'g', 'f', '2', 'p', '8', 'a', 'f', 'f', 'i', 'n', 'e', 'q', 'b',
+  '_', 'v', '3', '2', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'g', 'f', '2', 'p', '8', 'a', 'f',
+  'f', 'i', 'n', 'e', 'q', 'b', '_', 'v', '6', '4', 'q', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'g',
+  'f', '2', 'p', '8', 'm', 'u', 'l', 'b', '_', 'v', '1', '6', 'q', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'g', 'f', '2', 'p', '8', 'm', 'u', 'l', 'b', '_', 'v', '3', '2', 'q',
+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'g', 'f', '2', 'p', '8', 'm', 'u', 'l', 'b', '_', 'v', '6',
+  '4', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'w', 'b', 'i', 'n', 'v', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'b', 'n', 'o',
+  'i', 'n', 'v', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'w', 'r', 'f', 's', 'b', 'a', 's', 'e', '3', '2',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'w', 'r', 'f', 's', 'b', 'a', 's', 'e', '6', '4', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'g',
+  's', 'b', 'a', 's', 'e', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'g', 's', 'b', 'a', 's',
+  'e', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'w', 'r', 'p', 'k', 'r', 'u', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 's', 's',
+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'w', 'r', 's', 's', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'u', 's', 's', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'w', 'r', 'u', 's', 's', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'x', 'a', 'b', 'o', 'r', 't', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'x',
+  'b', 'e', 'g', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'x', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r', 'c',
+  'z', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 'p', 'd', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'f', 'r', 'c', 'z', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 'p', 's',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 's', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r',
+  'c', 'z', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'b', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c',
+  'o', 'm', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'q', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o',
+  'm', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'u', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c',
+  'o', 'm', 'u', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'u', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  'c', 'o', 'm', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', '2', 'p', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', '2', 'p', 'd', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 'e', 'r', 'm', 'i', 'l', '2', 'p', 's', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
+  'm', 'i', 'l', '2', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd',
+  'd', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'b', 'q', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  'h', 'a', 'd', 'd', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'd', 'q',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u', 'b', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a',
+  'd', 'd', 'u', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u', 'b', 'w',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u', 'd', 'q', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a',
+  'd', 'd', 'u', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u', 'w', 'q',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'h', 'a', 'd', 'd', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd',
+  'd', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'p', 'h', 's', 'u', 'b', 'b', 'w', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  'h', 's', 'u', 'b', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 's', 'u', 'b', 'w', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'm', 'a', 'c', 's', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c',
+  's', 'd', 'q', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'd', 'q', 'l', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 'm', 'a', 'c', 's', 's', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c',
+  's', 's', 'd', 'q', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's', 'd', 'q',
+  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's', 'w', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
+  'a', 'c', 's', 's', 'w', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'w', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'm', 'a', 'c', 's', 'w', 'w', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd',
+  'c', 's', 's', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'c', 's', 'w', 'd',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'v', 'p', 'p', 'e', 'r', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 'r', 'o', 't', 'b', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 'r', 'o', 't', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'q', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 'r', 'o', 't', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'w', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 'r', 'o', 't', 'w', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'a', 'b', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'v', 'p', 's', 'h', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'a', 'q', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'p', 's', 'h', 'a', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'b', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
+  's', 'h', 'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'q', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
+  'h', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'x', 't', 'e', 's', 't', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'b', 'i', 't', 'r', 'e', 'v', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'g', 'e', 't', 'i', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g', 'e', 't', 'p', 's', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 'e', 't', 'p', 's', '\000',
+ 
+  };
+
+  struct BuiltinEntry {
+    Intrinsic::ID IntrinID;
+    unsigned StrTabOffset;
+    const char *getName() const {
+      return &BuiltinNames[StrTabOffset];
+    }
+    bool operator<(StringRef RHS) const {
+      return strncmp(getName(), RHS.data(), RHS.size()) < 0;
+    }
+  };
+  StringRef TargetPrefix(TargetPrefixStr);
+
+  /* Target Independent Builtins */ {
+    static const BuiltinEntry Names[] = {
+      {Intrinsic::adjust_trampoline, 0}, // __builtin_adjust_trampoline
+      {Intrinsic::debugtrap, 28}, // __builtin_debugtrap
+      {Intrinsic::flt_rounds, 70}, // __builtin_flt_rounds
+      {Intrinsic::init_trampoline, 91}, // __builtin_init_trampoline
+      {Intrinsic::objectsize, 117}, // __builtin_object_size
+      {Intrinsic::stackrestore, 139}, // __builtin_stack_restore
+      {Intrinsic::stacksave, 163}, // __builtin_stack_save
+      {Intrinsic::thread_pointer, 184}, // __builtin_thread_pointer
+      {Intrinsic::trap, 209}, // __builtin_trap
+      {Intrinsic::eh_unwind_init, 48}, // __builtin_unwind_init
+    };
+    auto I = std::lower_bound(std::begin(Names),
+                              std::end(Names),
+                              BuiltinNameStr);
+    if (I != std::end(Names) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "aarch64") {
+    static const BuiltinEntry aarch64Names[] = {
+      {Intrinsic::aarch64_dmb, 224}, // __builtin_arm_dmb
+      {Intrinsic::aarch64_dsb, 242}, // __builtin_arm_dsb
+      {Intrinsic::aarch64_isb, 260}, // __builtin_arm_isb
+    };
+    auto I = std::lower_bound(std::begin(aarch64Names),
+                              std::end(aarch64Names),
+                              BuiltinNameStr);
+    if (I != std::end(aarch64Names) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "amdgcn") {
+    static const BuiltinEntry amdgcnNames[] = {
+      {Intrinsic::amdgcn_buffer_wbinvl1, 278}, // __builtin_amdgcn_buffer_wbinvl1
+      {Intrinsic::amdgcn_buffer_wbinvl1_sc, 310}, // __builtin_amdgcn_buffer_wbinvl1_sc
+      {Intrinsic::amdgcn_buffer_wbinvl1_vol, 345}, // __builtin_amdgcn_buffer_wbinvl1_vol
+      {Intrinsic::amdgcn_cubeid, 381}, // __builtin_amdgcn_cubeid
+      {Intrinsic::amdgcn_cubema, 405}, // __builtin_amdgcn_cubema
+      {Intrinsic::amdgcn_cubesc, 429}, // __builtin_amdgcn_cubesc
+      {Intrinsic::amdgcn_cubetc, 453}, // __builtin_amdgcn_cubetc
+      {Intrinsic::amdgcn_cvt_pk_u8_f32, 477}, // __builtin_amdgcn_cvt_pk_u8_f32
+      {Intrinsic::amdgcn_dispatch_id, 508}, // __builtin_amdgcn_dispatch_id
+      {Intrinsic::amdgcn_dispatch_ptr, 537}, // __builtin_amdgcn_dispatch_ptr
+      {Intrinsic::amdgcn_ds_bpermute, 567}, // __builtin_amdgcn_ds_bpermute
+      {Intrinsic::amdgcn_ds_fadd, 596}, // __builtin_amdgcn_ds_faddf
+      {Intrinsic::amdgcn_ds_fmax, 622}, // __builtin_amdgcn_ds_fmaxf
+      {Intrinsic::amdgcn_ds_fmin, 648}, // __builtin_amdgcn_ds_fminf
+      {Intrinsic::amdgcn_ds_permute, 674}, // __builtin_amdgcn_ds_permute
+      {Intrinsic::amdgcn_ds_swizzle, 702}, // __builtin_amdgcn_ds_swizzle
+      {Intrinsic::amdgcn_fdot2, 730}, // __builtin_amdgcn_fdot2
+      {Intrinsic::amdgcn_fmed3, 753}, // __builtin_amdgcn_fmed3
+      {Intrinsic::amdgcn_fmul_legacy, 776}, // __builtin_amdgcn_fmul_legacy
+      {Intrinsic::amdgcn_groupstaticsize, 805}, // __builtin_amdgcn_groupstaticsize
+      {Intrinsic::amdgcn_implicit_buffer_ptr, 838}, // __builtin_amdgcn_implicit_buffer_ptr
+      {Intrinsic::amdgcn_implicitarg_ptr, 875}, // __builtin_amdgcn_implicitarg_ptr
+      {Intrinsic::amdgcn_interp_mov, 908}, // __builtin_amdgcn_interp_mov
+      {Intrinsic::amdgcn_interp_p1, 936}, // __builtin_amdgcn_interp_p1
+      {Intrinsic::amdgcn_interp_p2, 963}, // __builtin_amdgcn_interp_p2
+      {Intrinsic::amdgcn_kernarg_segment_ptr, 990}, // __builtin_amdgcn_kernarg_segment_ptr
+      {Intrinsic::amdgcn_lerp, 1027}, // __builtin_amdgcn_lerp
+      {Intrinsic::amdgcn_mbcnt_hi, 1049}, // __builtin_amdgcn_mbcnt_hi
+      {Intrinsic::amdgcn_mbcnt_lo, 1075}, // __builtin_amdgcn_mbcnt_lo
+      {Intrinsic::amdgcn_mqsad_pk_u16_u8, 1101}, // __builtin_amdgcn_mqsad_pk_u16_u8
+      {Intrinsic::amdgcn_mqsad_u32_u8, 1134}, // __builtin_amdgcn_mqsad_u32_u8
+      {Intrinsic::amdgcn_msad_u8, 1164}, // __builtin_amdgcn_msad_u8
+      {Intrinsic::amdgcn_qsad_pk_u16_u8, 1189}, // __builtin_amdgcn_qsad_pk_u16_u8
+      {Intrinsic::amdgcn_queue_ptr, 1221}, // __builtin_amdgcn_queue_ptr
+      {Intrinsic::amdgcn_rcp_legacy, 1248}, // __builtin_amdgcn_rcp_legacy
+      {Intrinsic::amdgcn_readfirstlane, 1276}, // __builtin_amdgcn_readfirstlane
+      {Intrinsic::amdgcn_readlane, 1307}, // __builtin_amdgcn_readlane
+      {Intrinsic::amdgcn_rsq_legacy, 1333}, // __builtin_amdgcn_rsq_legacy
+      {Intrinsic::amdgcn_s_barrier, 1361}, // __builtin_amdgcn_s_barrier
+      {Intrinsic::amdgcn_s_dcache_inv, 1388}, // __builtin_amdgcn_s_dcache_inv
+      {Intrinsic::amdgcn_s_dcache_inv_vol, 1418}, // __builtin_amdgcn_s_dcache_inv_vol
+      {Intrinsic::amdgcn_s_dcache_wb, 1452}, // __builtin_amdgcn_s_dcache_wb
+      {Intrinsic::amdgcn_s_dcache_wb_vol, 1481}, // __builtin_amdgcn_s_dcache_wb_vol
+      {Intrinsic::amdgcn_s_decperflevel, 1514}, // __builtin_amdgcn_s_decperflevel
+      {Intrinsic::amdgcn_s_getpc, 1546}, // __builtin_amdgcn_s_getpc
+      {Intrinsic::amdgcn_s_getreg, 1571}, // __builtin_amdgcn_s_getreg
+      {Intrinsic::amdgcn_s_incperflevel, 1597}, // __builtin_amdgcn_s_incperflevel
+      {Intrinsic::amdgcn_s_memrealtime, 1629}, // __builtin_amdgcn_s_memrealtime
+      {Intrinsic::amdgcn_s_memtime, 1660}, // __builtin_amdgcn_s_memtime
+      {Intrinsic::amdgcn_s_sendmsg, 1687}, // __builtin_amdgcn_s_sendmsg
+      {Intrinsic::amdgcn_s_sendmsghalt, 1714}, // __builtin_amdgcn_s_sendmsghalt
+      {Intrinsic::amdgcn_s_sleep, 1745}, // __builtin_amdgcn_s_sleep
+      {Intrinsic::amdgcn_s_waitcnt, 1770}, // __builtin_amdgcn_s_waitcnt
+      {Intrinsic::amdgcn_sad_hi_u8, 1797}, // __builtin_amdgcn_sad_hi_u8
+      {Intrinsic::amdgcn_sad_u16, 1824}, // __builtin_amdgcn_sad_u16
+      {Intrinsic::amdgcn_sad_u8, 1849}, // __builtin_amdgcn_sad_u8
+      {Intrinsic::amdgcn_sdot2, 1873}, // __builtin_amdgcn_sdot2
+      {Intrinsic::amdgcn_sdot4, 1896}, // __builtin_amdgcn_sdot4
+      {Intrinsic::amdgcn_sdot8, 1919}, // __builtin_amdgcn_sdot8
+      {Intrinsic::amdgcn_udot2, 1942}, // __builtin_amdgcn_udot2
+      {Intrinsic::amdgcn_udot4, 1965}, // __builtin_amdgcn_udot4
+      {Intrinsic::amdgcn_udot8, 1988}, // __builtin_amdgcn_udot8
+      {Intrinsic::amdgcn_wave_barrier, 2011}, // __builtin_amdgcn_wave_barrier
+      {Intrinsic::amdgcn_workgroup_id_x, 2041}, // __builtin_amdgcn_workgroup_id_x
+      {Intrinsic::amdgcn_workgroup_id_y, 2073}, // __builtin_amdgcn_workgroup_id_y
+      {Intrinsic::amdgcn_workgroup_id_z, 2105}, // __builtin_amdgcn_workgroup_id_z
+      {Intrinsic::amdgcn_writelane, 2137}, // __builtin_amdgcn_writelane
+    };
+    auto I = std::lower_bound(std::begin(amdgcnNames),
+                              std::end(amdgcnNames),
+                              BuiltinNameStr);
+    if (I != std::end(amdgcnNames) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "arm") {
+    static const BuiltinEntry armNames[] = {
+      {Intrinsic::arm_cdp, 2164}, // __builtin_arm_cdp
+      {Intrinsic::arm_cdp2, 2182}, // __builtin_arm_cdp2
+      {Intrinsic::arm_dmb, 224}, // __builtin_arm_dmb
+      {Intrinsic::arm_dsb, 242}, // __builtin_arm_dsb
+      {Intrinsic::arm_get_fpscr, 2201}, // __builtin_arm_get_fpscr
+      {Intrinsic::arm_isb, 260}, // __builtin_arm_isb
+      {Intrinsic::arm_ldc, 2225}, // __builtin_arm_ldc
+      {Intrinsic::arm_ldc2, 2243}, // __builtin_arm_ldc2
+      {Intrinsic::arm_ldc2l, 2262}, // __builtin_arm_ldc2l
+      {Intrinsic::arm_ldcl, 2282}, // __builtin_arm_ldcl
+      {Intrinsic::arm_mcr, 2301}, // __builtin_arm_mcr
+      {Intrinsic::arm_mcr2, 2319}, // __builtin_arm_mcr2
+      {Intrinsic::arm_mrc, 2338}, // __builtin_arm_mrc
+      {Intrinsic::arm_mrc2, 2356}, // __builtin_arm_mrc2
+      {Intrinsic::arm_qadd, 2375}, // __builtin_arm_qadd
+      {Intrinsic::arm_qadd16, 2394}, // __builtin_arm_qadd16
+      {Intrinsic::arm_qadd8, 2415}, // __builtin_arm_qadd8
+      {Intrinsic::arm_qasx, 2435}, // __builtin_arm_qasx
+      {Intrinsic::arm_qsax, 2454}, // __builtin_arm_qsax
+      {Intrinsic::arm_qsub, 2473}, // __builtin_arm_qsub
+      {Intrinsic::arm_qsub16, 2492}, // __builtin_arm_qsub16
+      {Intrinsic::arm_qsub8, 2513}, // __builtin_arm_qsub8
+      {Intrinsic::arm_sadd16, 2533}, // __builtin_arm_sadd16
+      {Intrinsic::arm_sadd8, 2554}, // __builtin_arm_sadd8
+      {Intrinsic::arm_sasx, 2574}, // __builtin_arm_sasx
+      {Intrinsic::arm_sel, 2593}, // __builtin_arm_sel
+      {Intrinsic::arm_set_fpscr, 2611}, // __builtin_arm_set_fpscr
+      {Intrinsic::arm_shadd16, 2635}, // __builtin_arm_shadd16
+      {Intrinsic::arm_shadd8, 2657}, // __builtin_arm_shadd8
+      {Intrinsic::arm_shasx, 2678}, // __builtin_arm_shasx
+      {Intrinsic::arm_shsax, 2698}, // __builtin_arm_shsax
+      {Intrinsic::arm_shsub16, 2718}, // __builtin_arm_shsub16
+      {Intrinsic::arm_shsub8, 2740}, // __builtin_arm_shsub8
+      {Intrinsic::arm_smlabb, 2761}, // __builtin_arm_smlabb
+      {Intrinsic::arm_smlabt, 2782}, // __builtin_arm_smlabt
+      {Intrinsic::arm_smlad, 2803}, // __builtin_arm_smlad
+      {Intrinsic::arm_smladx, 2823}, // __builtin_arm_smladx
+      {Intrinsic::arm_smlald, 2844}, // __builtin_arm_smlald
+      {Intrinsic::arm_smlaldx, 2865}, // __builtin_arm_smlaldx
+      {Intrinsic::arm_smlatb, 2887}, // __builtin_arm_smlatb
+      {Intrinsic::arm_smlatt, 2908}, // __builtin_arm_smlatt
+      {Intrinsic::arm_smlawb, 2929}, // __builtin_arm_smlawb
+      {Intrinsic::arm_smlawt, 2950}, // __builtin_arm_smlawt
+      {Intrinsic::arm_smlsd, 2971}, // __builtin_arm_smlsd
+      {Intrinsic::arm_smlsdx, 2991}, // __builtin_arm_smlsdx
+      {Intrinsic::arm_smlsld, 3012}, // __builtin_arm_smlsld
+      {Intrinsic::arm_smlsldx, 3033}, // __builtin_arm_smlsldx
+      {Intrinsic::arm_smuad, 3055}, // __builtin_arm_smuad
+      {Intrinsic::arm_smuadx, 3075}, // __builtin_arm_smuadx
+      {Intrinsic::arm_smulbb, 3096}, // __builtin_arm_smulbb
+      {Intrinsic::arm_smulbt, 3117}, // __builtin_arm_smulbt
+      {Intrinsic::arm_smultb, 3138}, // __builtin_arm_smultb
+      {Intrinsic::arm_smultt, 3159}, // __builtin_arm_smultt
+      {Intrinsic::arm_smulwb, 3180}, // __builtin_arm_smulwb
+      {Intrinsic::arm_smulwt, 3201}, // __builtin_arm_smulwt
+      {Intrinsic::arm_smusd, 3222}, // __builtin_arm_smusd
+      {Intrinsic::arm_smusdx, 3242}, // __builtin_arm_smusdx
+      {Intrinsic::arm_ssat, 3263}, // __builtin_arm_ssat
+      {Intrinsic::arm_ssat16, 3282}, // __builtin_arm_ssat16
+      {Intrinsic::arm_ssax, 3303}, // __builtin_arm_ssax
+      {Intrinsic::arm_ssub16, 3322}, // __builtin_arm_ssub16
+      {Intrinsic::arm_ssub8, 3343}, // __builtin_arm_ssub8
+      {Intrinsic::arm_stc, 3363}, // __builtin_arm_stc
+      {Intrinsic::arm_stc2, 3381}, // __builtin_arm_stc2
+      {Intrinsic::arm_stc2l, 3400}, // __builtin_arm_stc2l
+      {Intrinsic::arm_stcl, 3420}, // __builtin_arm_stcl
+      {Intrinsic::arm_sxtab16, 3439}, // __builtin_arm_sxtab16
+      {Intrinsic::arm_sxtb16, 3461}, // __builtin_arm_sxtb16
+      {Intrinsic::arm_uadd16, 3482}, // __builtin_arm_uadd16
+      {Intrinsic::arm_uadd8, 3503}, // __builtin_arm_uadd8
+      {Intrinsic::arm_uasx, 3523}, // __builtin_arm_uasx
+      {Intrinsic::arm_uhadd16, 3542}, // __builtin_arm_uhadd16
+      {Intrinsic::arm_uhadd8, 3564}, // __builtin_arm_uhadd8
+      {Intrinsic::arm_uhasx, 3585}, // __builtin_arm_uhasx
+      {Intrinsic::arm_uhsax, 3605}, // __builtin_arm_uhsax
+      {Intrinsic::arm_uhsub16, 3625}, // __builtin_arm_uhsub16
+      {Intrinsic::arm_uhsub8, 3647}, // __builtin_arm_uhsub8
+      {Intrinsic::arm_uqadd16, 3668}, // __builtin_arm_uqadd16
+      {Intrinsic::arm_uqadd8, 3690}, // __builtin_arm_uqadd8
+      {Intrinsic::arm_uqasx, 3711}, // __builtin_arm_uqasx
+      {Intrinsic::arm_uqsax, 3731}, // __builtin_arm_uqsax
+      {Intrinsic::arm_uqsub16, 3751}, // __builtin_arm_uqsub16
+      {Intrinsic::arm_uqsub8, 3773}, // __builtin_arm_uqsub8
+      {Intrinsic::arm_usad8, 3794}, // __builtin_arm_usad8
+      {Intrinsic::arm_usada8, 3814}, // __builtin_arm_usada8
+      {Intrinsic::arm_usat, 3835}, // __builtin_arm_usat
+      {Intrinsic::arm_usat16, 3854}, // __builtin_arm_usat16
+      {Intrinsic::arm_usax, 3875}, // __builtin_arm_usax
+      {Intrinsic::arm_usub16, 3894}, // __builtin_arm_usub16
+      {Intrinsic::arm_usub8, 3915}, // __builtin_arm_usub8
+      {Intrinsic::arm_uxtab16, 3935}, // __builtin_arm_uxtab16
+      {Intrinsic::arm_uxtb16, 3957}, // __builtin_arm_uxtb16
+    };
+    auto I = std::lower_bound(std::begin(armNames),
+                              std::end(armNames),
+                              BuiltinNameStr);
+    if (I != std::end(armNames) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "bpf") {
+    static const BuiltinEntry bpfNames[] = {
+      {Intrinsic::bpf_load_byte, 3978}, // __builtin_bpf_load_byte
+      {Intrinsic::bpf_load_half, 4002}, // __builtin_bpf_load_half
+      {Intrinsic::bpf_load_word, 4026}, // __builtin_bpf_load_word
+      {Intrinsic::bpf_pseudo, 4050}, // __builtin_bpf_pseudo
+    };
+    auto I = std::lower_bound(std::begin(bpfNames),
+                              std::end(bpfNames),
+                              BuiltinNameStr);
+    if (I != std::end(bpfNames) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "hexagon") {
+    static const BuiltinEntry hexagonNames[] = {
+      {Intrinsic::hexagon_A2_abs, 4071}, // __builtin_HEXAGON_A2_abs
+      {Intrinsic::hexagon_A2_absp, 4096}, // __builtin_HEXAGON_A2_absp
+      {Intrinsic::hexagon_A2_abssat, 4122}, // __builtin_HEXAGON_A2_abssat
+      {Intrinsic::hexagon_A2_add, 4150}, // __builtin_HEXAGON_A2_add
+      {Intrinsic::hexagon_A2_addh_h16_hh, 4175}, // __builtin_HEXAGON_A2_addh_h16_hh
+      {Intrinsic::hexagon_A2_addh_h16_hl, 4208}, // __builtin_HEXAGON_A2_addh_h16_hl
+      {Intrinsic::hexagon_A2_addh_h16_lh, 4241}, // __builtin_HEXAGON_A2_addh_h16_lh
+      {Intrinsic::hexagon_A2_addh_h16_ll, 4274}, // __builtin_HEXAGON_A2_addh_h16_ll
+      {Intrinsic::hexagon_A2_addh_h16_sat_hh, 4307}, // __builtin_HEXAGON_A2_addh_h16_sat_hh
+      {Intrinsic::hexagon_A2_addh_h16_sat_hl, 4344}, // __builtin_HEXAGON_A2_addh_h16_sat_hl
+      {Intrinsic::hexagon_A2_addh_h16_sat_lh, 4381}, // __builtin_HEXAGON_A2_addh_h16_sat_lh
+      {Intrinsic::hexagon_A2_addh_h16_sat_ll, 4418}, // __builtin_HEXAGON_A2_addh_h16_sat_ll
+      {Intrinsic::hexagon_A2_addh_l16_hl, 4455}, // __builtin_HEXAGON_A2_addh_l16_hl
+      {Intrinsic::hexagon_A2_addh_l16_ll, 4488}, // __builtin_HEXAGON_A2_addh_l16_ll
+      {Intrinsic::hexagon_A2_addh_l16_sat_hl, 4521}, // __builtin_HEXAGON_A2_addh_l16_sat_hl
+      {Intrinsic::hexagon_A2_addh_l16_sat_ll, 4558}, // __builtin_HEXAGON_A2_addh_l16_sat_ll
+      {Intrinsic::hexagon_A2_addi, 4595}, // __builtin_HEXAGON_A2_addi
+      {Intrinsic::hexagon_A2_addp, 4621}, // __builtin_HEXAGON_A2_addp
+      {Intrinsic::hexagon_A2_addpsat, 4647}, // __builtin_HEXAGON_A2_addpsat
+      {Intrinsic::hexagon_A2_addsat, 4676}, // __builtin_HEXAGON_A2_addsat
+      {Intrinsic::hexagon_A2_addsp, 4704}, // __builtin_HEXAGON_A2_addsp
+      {Intrinsic::hexagon_A2_and, 4731}, // __builtin_HEXAGON_A2_and
+      {Intrinsic::hexagon_A2_andir, 4756}, // __builtin_HEXAGON_A2_andir
+      {Intrinsic::hexagon_A2_andp, 4783}, // __builtin_HEXAGON_A2_andp
+      {Intrinsic::hexagon_A2_aslh, 4809}, // __builtin_HEXAGON_A2_aslh
+      {Intrinsic::hexagon_A2_asrh, 4835}, // __builtin_HEXAGON_A2_asrh
+      {Intrinsic::hexagon_A2_combine_hh, 4861}, // __builtin_HEXAGON_A2_combine_hh
+      {Intrinsic::hexagon_A2_combine_hl, 4893}, // __builtin_HEXAGON_A2_combine_hl
+      {Intrinsic::hexagon_A2_combine_lh, 4925}, // __builtin_HEXAGON_A2_combine_lh
+      {Intrinsic::hexagon_A2_combine_ll, 4957}, // __builtin_HEXAGON_A2_combine_ll
+      {Intrinsic::hexagon_A2_combineii, 4989}, // __builtin_HEXAGON_A2_combineii
+      {Intrinsic::hexagon_A2_combinew, 5020}, // __builtin_HEXAGON_A2_combinew
+      {Intrinsic::hexagon_A2_max, 5050}, // __builtin_HEXAGON_A2_max
+      {Intrinsic::hexagon_A2_maxp, 5075}, // __builtin_HEXAGON_A2_maxp
+      {Intrinsic::hexagon_A2_maxu, 5101}, // __builtin_HEXAGON_A2_maxu
+      {Intrinsic::hexagon_A2_maxup, 5127}, // __builtin_HEXAGON_A2_maxup
+      {Intrinsic::hexagon_A2_min, 5154}, // __builtin_HEXAGON_A2_min
+      {Intrinsic::hexagon_A2_minp, 5179}, // __builtin_HEXAGON_A2_minp
+      {Intrinsic::hexagon_A2_minu, 5205}, // __builtin_HEXAGON_A2_minu
+      {Intrinsic::hexagon_A2_minup, 5231}, // __builtin_HEXAGON_A2_minup
+      {Intrinsic::hexagon_A2_neg, 5258}, // __builtin_HEXAGON_A2_neg
+      {Intrinsic::hexagon_A2_negp, 5283}, // __builtin_HEXAGON_A2_negp
+      {Intrinsic::hexagon_A2_negsat, 5309}, // __builtin_HEXAGON_A2_negsat
+      {Intrinsic::hexagon_A2_not, 5337}, // __builtin_HEXAGON_A2_not
+      {Intrinsic::hexagon_A2_notp, 5362}, // __builtin_HEXAGON_A2_notp
+      {Intrinsic::hexagon_A2_or, 5388}, // __builtin_HEXAGON_A2_or
+      {Intrinsic::hexagon_A2_orir, 5412}, // __builtin_HEXAGON_A2_orir
+      {Intrinsic::hexagon_A2_orp, 5438}, // __builtin_HEXAGON_A2_orp
+      {Intrinsic::hexagon_A2_roundsat, 5463}, // __builtin_HEXAGON_A2_roundsat
+      {Intrinsic::hexagon_A2_sat, 5493}, // __builtin_HEXAGON_A2_sat
+      {Intrinsic::hexagon_A2_satb, 5518}, // __builtin_HEXAGON_A2_satb
+      {Intrinsic::hexagon_A2_sath, 5544}, // __builtin_HEXAGON_A2_sath
+      {Intrinsic::hexagon_A2_satub, 5570}, // __builtin_HEXAGON_A2_satub
+      {Intrinsic::hexagon_A2_satuh, 5597}, // __builtin_HEXAGON_A2_satuh
+      {Intrinsic::hexagon_A2_sub, 5624}, // __builtin_HEXAGON_A2_sub
+      {Intrinsic::hexagon_A2_subh_h16_hh, 5649}, // __builtin_HEXAGON_A2_subh_h16_hh
+      {Intrinsic::hexagon_A2_subh_h16_hl, 5682}, // __builtin_HEXAGON_A2_subh_h16_hl
+      {Intrinsic::hexagon_A2_subh_h16_lh, 5715}, // __builtin_HEXAGON_A2_subh_h16_lh
+      {Intrinsic::hexagon_A2_subh_h16_ll, 5748}, // __builtin_HEXAGON_A2_subh_h16_ll
+      {Intrinsic::hexagon_A2_subh_h16_sat_hh, 5781}, // __builtin_HEXAGON_A2_subh_h16_sat_hh
+      {Intrinsic::hexagon_A2_subh_h16_sat_hl, 5818}, // __builtin_HEXAGON_A2_subh_h16_sat_hl
+      {Intrinsic::hexagon_A2_subh_h16_sat_lh, 5855}, // __builtin_HEXAGON_A2_subh_h16_sat_lh
+      {Intrinsic::hexagon_A2_subh_h16_sat_ll, 5892}, // __builtin_HEXAGON_A2_subh_h16_sat_ll
+      {Intrinsic::hexagon_A2_subh_l16_hl, 5929}, // __builtin_HEXAGON_A2_subh_l16_hl
+      {Intrinsic::hexagon_A2_subh_l16_ll, 5962}, // __builtin_HEXAGON_A2_subh_l16_ll
+      {Intrinsic::hexagon_A2_subh_l16_sat_hl, 5995}, // __builtin_HEXAGON_A2_subh_l16_sat_hl
+      {Intrinsic::hexagon_A2_subh_l16_sat_ll, 6032}, // __builtin_HEXAGON_A2_subh_l16_sat_ll
+      {Intrinsic::hexagon_A2_subp, 6069}, // __builtin_HEXAGON_A2_subp
+      {Intrinsic::hexagon_A2_subri, 6095}, // __builtin_HEXAGON_A2_subri
+      {Intrinsic::hexagon_A2_subsat, 6122}, // __builtin_HEXAGON_A2_subsat
+      {Intrinsic::hexagon_A2_svaddh, 6150}, // __builtin_HEXAGON_A2_svaddh
+      {Intrinsic::hexagon_A2_svaddhs, 6178}, // __builtin_HEXAGON_A2_svaddhs
+      {Intrinsic::hexagon_A2_svadduhs, 6207}, // __builtin_HEXAGON_A2_svadduhs
+      {Intrinsic::hexagon_A2_svavgh, 6237}, // __builtin_HEXAGON_A2_svavgh
+      {Intrinsic::hexagon_A2_svavghs, 6265}, // __builtin_HEXAGON_A2_svavghs
+      {Intrinsic::hexagon_A2_svnavgh, 6294}, // __builtin_HEXAGON_A2_svnavgh
+      {Intrinsic::hexagon_A2_svsubh, 6323}, // __builtin_HEXAGON_A2_svsubh
+      {Intrinsic::hexagon_A2_svsubhs, 6351}, // __builtin_HEXAGON_A2_svsubhs
+      {Intrinsic::hexagon_A2_svsubuhs, 6380}, // __builtin_HEXAGON_A2_svsubuhs
+      {Intrinsic::hexagon_A2_swiz, 6410}, // __builtin_HEXAGON_A2_swiz
+      {Intrinsic::hexagon_A2_sxtb, 6436}, // __builtin_HEXAGON_A2_sxtb
+      {Intrinsic::hexagon_A2_sxth, 6462}, // __builtin_HEXAGON_A2_sxth
+      {Intrinsic::hexagon_A2_sxtw, 6488}, // __builtin_HEXAGON_A2_sxtw
+      {Intrinsic::hexagon_A2_tfr, 6514}, // __builtin_HEXAGON_A2_tfr
+      {Intrinsic::hexagon_A2_tfrih, 6539}, // __builtin_HEXAGON_A2_tfrih
+      {Intrinsic::hexagon_A2_tfril, 6566}, // __builtin_HEXAGON_A2_tfril
+      {Intrinsic::hexagon_A2_tfrp, 6593}, // __builtin_HEXAGON_A2_tfrp
+      {Intrinsic::hexagon_A2_tfrpi, 6619}, // __builtin_HEXAGON_A2_tfrpi
+      {Intrinsic::hexagon_A2_tfrsi, 6646}, // __builtin_HEXAGON_A2_tfrsi
+      {Intrinsic::hexagon_A2_vabsh, 6673}, // __builtin_HEXAGON_A2_vabsh
+      {Intrinsic::hexagon_A2_vabshsat, 6700}, // __builtin_HEXAGON_A2_vabshsat
+      {Intrinsic::hexagon_A2_vabsw, 6730}, // __builtin_HEXAGON_A2_vabsw
+      {Intrinsic::hexagon_A2_vabswsat, 6757}, // __builtin_HEXAGON_A2_vabswsat
+      {Intrinsic::hexagon_A2_vaddb_map, 6787}, // __builtin_HEXAGON_A2_vaddb_map
+      {Intrinsic::hexagon_A2_vaddh, 6818}, // __builtin_HEXAGON_A2_vaddh
+      {Intrinsic::hexagon_A2_vaddhs, 6845}, // __builtin_HEXAGON_A2_vaddhs
+      {Intrinsic::hexagon_A2_vaddub, 6873}, // __builtin_HEXAGON_A2_vaddub
+      {Intrinsic::hexagon_A2_vaddubs, 6901}, // __builtin_HEXAGON_A2_vaddubs
+      {Intrinsic::hexagon_A2_vadduhs, 6930}, // __builtin_HEXAGON_A2_vadduhs
+      {Intrinsic::hexagon_A2_vaddw, 6959}, // __builtin_HEXAGON_A2_vaddw
+      {Intrinsic::hexagon_A2_vaddws, 6986}, // __builtin_HEXAGON_A2_vaddws
+      {Intrinsic::hexagon_A2_vavgh, 7014}, // __builtin_HEXAGON_A2_vavgh
+      {Intrinsic::hexagon_A2_vavghcr, 7041}, // __builtin_HEXAGON_A2_vavghcr
+      {Intrinsic::hexagon_A2_vavghr, 7070}, // __builtin_HEXAGON_A2_vavghr
+      {Intrinsic::hexagon_A2_vavgub, 7098}, // __builtin_HEXAGON_A2_vavgub
+      {Intrinsic::hexagon_A2_vavgubr, 7126}, // __builtin_HEXAGON_A2_vavgubr
+      {Intrinsic::hexagon_A2_vavguh, 7155}, // __builtin_HEXAGON_A2_vavguh
+      {Intrinsic::hexagon_A2_vavguhr, 7183}, // __builtin_HEXAGON_A2_vavguhr
+      {Intrinsic::hexagon_A2_vavguw, 7212}, // __builtin_HEXAGON_A2_vavguw
+      {Intrinsic::hexagon_A2_vavguwr, 7240}, // __builtin_HEXAGON_A2_vavguwr
+      {Intrinsic::hexagon_A2_vavgw, 7269}, // __builtin_HEXAGON_A2_vavgw
+      {Intrinsic::hexagon_A2_vavgwcr, 7296}, // __builtin_HEXAGON_A2_vavgwcr
+      {Intrinsic::hexagon_A2_vavgwr, 7325}, // __builtin_HEXAGON_A2_vavgwr
+      {Intrinsic::hexagon_A2_vcmpbeq, 7353}, // __builtin_HEXAGON_A2_vcmpbeq
+      {Intrinsic::hexagon_A2_vcmpbgtu, 7382}, // __builtin_HEXAGON_A2_vcmpbgtu
+      {Intrinsic::hexagon_A2_vcmpheq, 7412}, // __builtin_HEXAGON_A2_vcmpheq
+      {Intrinsic::hexagon_A2_vcmphgt, 7441}, // __builtin_HEXAGON_A2_vcmphgt
+      {Intrinsic::hexagon_A2_vcmphgtu, 7470}, // __builtin_HEXAGON_A2_vcmphgtu
+      {Intrinsic::hexagon_A2_vcmpweq, 7500}, // __builtin_HEXAGON_A2_vcmpweq
+      {Intrinsic::hexagon_A2_vcmpwgt, 7529}, // __builtin_HEXAGON_A2_vcmpwgt
+      {Intrinsic::hexagon_A2_vcmpwgtu, 7558}, // __builtin_HEXAGON_A2_vcmpwgtu
+      {Intrinsic::hexagon_A2_vconj, 7588}, // __builtin_HEXAGON_A2_vconj
+      {Intrinsic::hexagon_A2_vmaxb, 7615}, // __builtin_HEXAGON_A2_vmaxb
+      {Intrinsic::hexagon_A2_vmaxh, 7642}, // __builtin_HEXAGON_A2_vmaxh
+      {Intrinsic::hexagon_A2_vmaxub, 7669}, // __builtin_HEXAGON_A2_vmaxub
+      {Intrinsic::hexagon_A2_vmaxuh, 7697}, // __builtin_HEXAGON_A2_vmaxuh
+      {Intrinsic::hexagon_A2_vmaxuw, 7725}, // __builtin_HEXAGON_A2_vmaxuw
+      {Intrinsic::hexagon_A2_vmaxw, 7753}, // __builtin_HEXAGON_A2_vmaxw
+      {Intrinsic::hexagon_A2_vminb, 7780}, // __builtin_HEXAGON_A2_vminb
+      {Intrinsic::hexagon_A2_vminh, 7807}, // __builtin_HEXAGON_A2_vminh
+      {Intrinsic::hexagon_A2_vminub, 7834}, // __builtin_HEXAGON_A2_vminub
+      {Intrinsic::hexagon_A2_vminuh, 7862}, // __builtin_HEXAGON_A2_vminuh
+      {Intrinsic::hexagon_A2_vminuw, 7890}, // __builtin_HEXAGON_A2_vminuw
+      {Intrinsic::hexagon_A2_vminw, 7918}, // __builtin_HEXAGON_A2_vminw
+      {Intrinsic::hexagon_A2_vnavgh, 7945}, // __builtin_HEXAGON_A2_vnavgh
+      {Intrinsic::hexagon_A2_vnavghcr, 7973}, // __builtin_HEXAGON_A2_vnavghcr
+      {Intrinsic::hexagon_A2_vnavghr, 8003}, // __builtin_HEXAGON_A2_vnavghr
+      {Intrinsic::hexagon_A2_vnavgw, 8032}, // __builtin_HEXAGON_A2_vnavgw
+      {Intrinsic::hexagon_A2_vnavgwcr, 8060}, // __builtin_HEXAGON_A2_vnavgwcr
+      {Intrinsic::hexagon_A2_vnavgwr, 8090}, // __builtin_HEXAGON_A2_vnavgwr
+      {Intrinsic::hexagon_A2_vraddub, 8119}, // __builtin_HEXAGON_A2_vraddub
+      {Intrinsic::hexagon_A2_vraddub_acc, 8148}, // __builtin_HEXAGON_A2_vraddub_acc
+      {Intrinsic::hexagon_A2_vrsadub, 8181}, // __builtin_HEXAGON_A2_vrsadub
+      {Intrinsic::hexagon_A2_vrsadub_acc, 8210}, // __builtin_HEXAGON_A2_vrsadub_acc
+      {Intrinsic::hexagon_A2_vsubb_map, 8243}, // __builtin_HEXAGON_A2_vsubb_map
+      {Intrinsic::hexagon_A2_vsubh, 8274}, // __builtin_HEXAGON_A2_vsubh
+      {Intrinsic::hexagon_A2_vsubhs, 8301}, // __builtin_HEXAGON_A2_vsubhs
+      {Intrinsic::hexagon_A2_vsubub, 8329}, // __builtin_HEXAGON_A2_vsubub
+      {Intrinsic::hexagon_A2_vsububs, 8357}, // __builtin_HEXAGON_A2_vsububs
+      {Intrinsic::hexagon_A2_vsubuhs, 8386}, // __builtin_HEXAGON_A2_vsubuhs
+      {Intrinsic::hexagon_A2_vsubw, 8415}, // __builtin_HEXAGON_A2_vsubw
+      {Intrinsic::hexagon_A2_vsubws, 8442}, // __builtin_HEXAGON_A2_vsubws
+      {Intrinsic::hexagon_A2_xor, 8470}, // __builtin_HEXAGON_A2_xor
+      {Intrinsic::hexagon_A2_xorp, 8495}, // __builtin_HEXAGON_A2_xorp
+      {Intrinsic::hexagon_A2_zxtb, 8521}, // __builtin_HEXAGON_A2_zxtb
+      {Intrinsic::hexagon_A2_zxth, 8547}, // __builtin_HEXAGON_A2_zxth
+      {Intrinsic::hexagon_A4_andn, 8573}, // __builtin_HEXAGON_A4_andn
+      {Intrinsic::hexagon_A4_andnp, 8599}, // __builtin_HEXAGON_A4_andnp
+      {Intrinsic::hexagon_A4_bitsplit, 8626}, // __builtin_HEXAGON_A4_bitsplit
+      {Intrinsic::hexagon_A4_bitspliti, 8656}, // __builtin_HEXAGON_A4_bitspliti
+      {Intrinsic::hexagon_A4_boundscheck, 8687}, // __builtin_HEXAGON_A4_boundscheck
+      {Intrinsic::hexagon_A4_cmpbeq, 8720}, // __builtin_HEXAGON_A4_cmpbeq
+      {Intrinsic::hexagon_A4_cmpbeqi, 8748}, // __builtin_HEXAGON_A4_cmpbeqi
+      {Intrinsic::hexagon_A4_cmpbgt, 8777}, // __builtin_HEXAGON_A4_cmpbgt
+      {Intrinsic::hexagon_A4_cmpbgti, 8805}, // __builtin_HEXAGON_A4_cmpbgti
+      {Intrinsic::hexagon_A4_cmpbgtu, 8834}, // __builtin_HEXAGON_A4_cmpbgtu
+      {Intrinsic::hexagon_A4_cmpbgtui, 8863}, // __builtin_HEXAGON_A4_cmpbgtui
+      {Intrinsic::hexagon_A4_cmpheq, 8893}, // __builtin_HEXAGON_A4_cmpheq
+      {Intrinsic::hexagon_A4_cmpheqi, 8921}, // __builtin_HEXAGON_A4_cmpheqi
+      {Intrinsic::hexagon_A4_cmphgt, 8950}, // __builtin_HEXAGON_A4_cmphgt
+      {Intrinsic::hexagon_A4_cmphgti, 8978}, // __builtin_HEXAGON_A4_cmphgti
+      {Intrinsic::hexagon_A4_cmphgtu, 9007}, // __builtin_HEXAGON_A4_cmphgtu
+      {Intrinsic::hexagon_A4_cmphgtui, 9036}, // __builtin_HEXAGON_A4_cmphgtui
+      {Intrinsic::hexagon_A4_combineir, 9066}, // __builtin_HEXAGON_A4_combineir
+      {Intrinsic::hexagon_A4_combineri, 9097}, // __builtin_HEXAGON_A4_combineri
+      {Intrinsic::hexagon_A4_cround_ri, 9128}, // __builtin_HEXAGON_A4_cround_ri
+      {Intrinsic::hexagon_A4_cround_rr, 9159}, // __builtin_HEXAGON_A4_cround_rr
+      {Intrinsic::hexagon_A4_modwrapu, 9190}, // __builtin_HEXAGON_A4_modwrapu
+      {Intrinsic::hexagon_A4_orn, 9220}, // __builtin_HEXAGON_A4_orn
+      {Intrinsic::hexagon_A4_ornp, 9245}, // __builtin_HEXAGON_A4_ornp
+      {Intrinsic::hexagon_A4_rcmpeq, 9271}, // __builtin_HEXAGON_A4_rcmpeq
+      {Intrinsic::hexagon_A4_rcmpeqi, 9299}, // __builtin_HEXAGON_A4_rcmpeqi
+      {Intrinsic::hexagon_A4_rcmpneq, 9328}, // __builtin_HEXAGON_A4_rcmpneq
+      {Intrinsic::hexagon_A4_rcmpneqi, 9357}, // __builtin_HEXAGON_A4_rcmpneqi
+      {Intrinsic::hexagon_A4_round_ri, 9387}, // __builtin_HEXAGON_A4_round_ri
+      {Intrinsic::hexagon_A4_round_ri_sat, 9417}, // __builtin_HEXAGON_A4_round_ri_sat
+      {Intrinsic::hexagon_A4_round_rr, 9451}, // __builtin_HEXAGON_A4_round_rr
+      {Intrinsic::hexagon_A4_round_rr_sat, 9481}, // __builtin_HEXAGON_A4_round_rr_sat
+      {Intrinsic::hexagon_A4_tlbmatch, 9515}, // __builtin_HEXAGON_A4_tlbmatch
+      {Intrinsic::hexagon_A4_vcmpbeq_any, 9545}, // __builtin_HEXAGON_A4_vcmpbeq_any
+      {Intrinsic::hexagon_A4_vcmpbeqi, 9578}, // __builtin_HEXAGON_A4_vcmpbeqi
+      {Intrinsic::hexagon_A4_vcmpbgt, 9608}, // __builtin_HEXAGON_A4_vcmpbgt
+      {Intrinsic::hexagon_A4_vcmpbgti, 9637}, // __builtin_HEXAGON_A4_vcmpbgti
+      {Intrinsic::hexagon_A4_vcmpbgtui, 9667}, // __builtin_HEXAGON_A4_vcmpbgtui
+      {Intrinsic::hexagon_A4_vcmpheqi, 9698}, // __builtin_HEXAGON_A4_vcmpheqi
+      {Intrinsic::hexagon_A4_vcmphgti, 9728}, // __builtin_HEXAGON_A4_vcmphgti
+      {Intrinsic::hexagon_A4_vcmphgtui, 9758}, // __builtin_HEXAGON_A4_vcmphgtui
+      {Intrinsic::hexagon_A4_vcmpweqi, 9789}, // __builtin_HEXAGON_A4_vcmpweqi
+      {Intrinsic::hexagon_A4_vcmpwgti, 9819}, // __builtin_HEXAGON_A4_vcmpwgti
+      {Intrinsic::hexagon_A4_vcmpwgtui, 9849}, // __builtin_HEXAGON_A4_vcmpwgtui
+      {Intrinsic::hexagon_A4_vrmaxh, 9880}, // __builtin_HEXAGON_A4_vrmaxh
+      {Intrinsic::hexagon_A4_vrmaxuh, 9908}, // __builtin_HEXAGON_A4_vrmaxuh
+      {Intrinsic::hexagon_A4_vrmaxuw, 9937}, // __builtin_HEXAGON_A4_vrmaxuw
+      {Intrinsic::hexagon_A4_vrmaxw, 9966}, // __builtin_HEXAGON_A4_vrmaxw
+      {Intrinsic::hexagon_A4_vrminh, 9994}, // __builtin_HEXAGON_A4_vrminh
+      {Intrinsic::hexagon_A4_vrminuh, 10022}, // __builtin_HEXAGON_A4_vrminuh
+      {Intrinsic::hexagon_A4_vrminuw, 10051}, // __builtin_HEXAGON_A4_vrminuw
+      {Intrinsic::hexagon_A4_vrminw, 10080}, // __builtin_HEXAGON_A4_vrminw
+      {Intrinsic::hexagon_A5_vaddhubs, 10108}, // __builtin_HEXAGON_A5_vaddhubs
+      {Intrinsic::hexagon_A6_vcmpbeq_notany, 10138}, // __builtin_HEXAGON_A6_vcmpbeq_notany
+      {Intrinsic::hexagon_A6_vcmpbeq_notany_128B, 10174}, // __builtin_HEXAGON_A6_vcmpbeq_notany_128B
+      {Intrinsic::hexagon_C2_all8, 10215}, // __builtin_HEXAGON_C2_all8
+      {Intrinsic::hexagon_C2_and, 10241}, // __builtin_HEXAGON_C2_and
+      {Intrinsic::hexagon_C2_andn, 10266}, // __builtin_HEXAGON_C2_andn
+      {Intrinsic::hexagon_C2_any8, 10292}, // __builtin_HEXAGON_C2_any8
+      {Intrinsic::hexagon_C2_bitsclr, 10318}, // __builtin_HEXAGON_C2_bitsclr
+      {Intrinsic::hexagon_C2_bitsclri, 10347}, // __builtin_HEXAGON_C2_bitsclri
+      {Intrinsic::hexagon_C2_bitsset, 10377}, // __builtin_HEXAGON_C2_bitsset
+      {Intrinsic::hexagon_C2_cmpeq, 10406}, // __builtin_HEXAGON_C2_cmpeq
+      {Intrinsic::hexagon_C2_cmpeqi, 10433}, // __builtin_HEXAGON_C2_cmpeqi
+      {Intrinsic::hexagon_C2_cmpeqp, 10461}, // __builtin_HEXAGON_C2_cmpeqp
+      {Intrinsic::hexagon_C2_cmpgei, 10489}, // __builtin_HEXAGON_C2_cmpgei
+      {Intrinsic::hexagon_C2_cmpgeui, 10517}, // __builtin_HEXAGON_C2_cmpgeui
+      {Intrinsic::hexagon_C2_cmpgt, 10546}, // __builtin_HEXAGON_C2_cmpgt
+      {Intrinsic::hexagon_C2_cmpgti, 10573}, // __builtin_HEXAGON_C2_cmpgti
+      {Intrinsic::hexagon_C2_cmpgtp, 10601}, // __builtin_HEXAGON_C2_cmpgtp
+      {Intrinsic::hexagon_C2_cmpgtu, 10629}, // __builtin_HEXAGON_C2_cmpgtu
+      {Intrinsic::hexagon_C2_cmpgtui, 10657}, // __builtin_HEXAGON_C2_cmpgtui
+      {Intrinsic::hexagon_C2_cmpgtup, 10686}, // __builtin_HEXAGON_C2_cmpgtup
+      {Intrinsic::hexagon_C2_cmplt, 10715}, // __builtin_HEXAGON_C2_cmplt
+      {Intrinsic::hexagon_C2_cmpltu, 10742}, // __builtin_HEXAGON_C2_cmpltu
+      {Intrinsic::hexagon_C2_mask, 10770}, // __builtin_HEXAGON_C2_mask
+      {Intrinsic::hexagon_C2_mux, 10796}, // __builtin_HEXAGON_C2_mux
+      {Intrinsic::hexagon_C2_muxii, 10821}, // __builtin_HEXAGON_C2_muxii
+      {Intrinsic::hexagon_C2_muxir, 10848}, // __builtin_HEXAGON_C2_muxir
+      {Intrinsic::hexagon_C2_muxri, 10875}, // __builtin_HEXAGON_C2_muxri
+      {Intrinsic::hexagon_C2_not, 10902}, // __builtin_HEXAGON_C2_not
+      {Intrinsic::hexagon_C2_or, 10927}, // __builtin_HEXAGON_C2_or
+      {Intrinsic::hexagon_C2_orn, 10951}, // __builtin_HEXAGON_C2_orn
+      {Intrinsic::hexagon_C2_pxfer_map, 10976}, // __builtin_HEXAGON_C2_pxfer_map
+      {Intrinsic::hexagon_C2_tfrpr, 11007}, // __builtin_HEXAGON_C2_tfrpr
+      {Intrinsic::hexagon_C2_tfrrp, 11034}, // __builtin_HEXAGON_C2_tfrrp
+      {Intrinsic::hexagon_C2_vitpack, 11061}, // __builtin_HEXAGON_C2_vitpack
+      {Intrinsic::hexagon_C2_vmux, 11090}, // __builtin_HEXAGON_C2_vmux
+      {Intrinsic::hexagon_C2_xor, 11116}, // __builtin_HEXAGON_C2_xor
+      {Intrinsic::hexagon_C4_and_and, 11141}, // __builtin_HEXAGON_C4_and_and
+      {Intrinsic::hexagon_C4_and_andn, 11170}, // __builtin_HEXAGON_C4_and_andn
+      {Intrinsic::hexagon_C4_and_or, 11200}, // __builtin_HEXAGON_C4_and_or
+      {Intrinsic::hexagon_C4_and_orn, 11228}, // __builtin_HEXAGON_C4_and_orn
+      {Intrinsic::hexagon_C4_cmplte, 11257}, // __builtin_HEXAGON_C4_cmplte
+      {Intrinsic::hexagon_C4_cmpltei, 11285}, // __builtin_HEXAGON_C4_cmpltei
+      {Intrinsic::hexagon_C4_cmplteu, 11314}, // __builtin_HEXAGON_C4_cmplteu
+      {Intrinsic::hexagon_C4_cmplteui, 11343}, // __builtin_HEXAGON_C4_cmplteui
+      {Intrinsic::hexagon_C4_cmpneq, 11373}, // __builtin_HEXAGON_C4_cmpneq
+      {Intrinsic::hexagon_C4_cmpneqi, 11401}, // __builtin_HEXAGON_C4_cmpneqi
+      {Intrinsic::hexagon_C4_fastcorner9, 11430}, // __builtin_HEXAGON_C4_fastcorner9
+      {Intrinsic::hexagon_C4_fastcorner9_not, 11463}, // __builtin_HEXAGON_C4_fastcorner9_not
+      {Intrinsic::hexagon_C4_nbitsclr, 11500}, // __builtin_HEXAGON_C4_nbitsclr
+      {Intrinsic::hexagon_C4_nbitsclri, 11530}, // __builtin_HEXAGON_C4_nbitsclri
+      {Intrinsic::hexagon_C4_nbitsset, 11561}, // __builtin_HEXAGON_C4_nbitsset
+      {Intrinsic::hexagon_C4_or_and, 11591}, // __builtin_HEXAGON_C4_or_and
+      {Intrinsic::hexagon_C4_or_andn, 11619}, // __builtin_HEXAGON_C4_or_andn
+      {Intrinsic::hexagon_C4_or_or, 11648}, // __builtin_HEXAGON_C4_or_or
+      {Intrinsic::hexagon_C4_or_orn, 11675}, // __builtin_HEXAGON_C4_or_orn
+      {Intrinsic::hexagon_F2_conv_d2df, 11703}, // __builtin_HEXAGON_F2_conv_d2df
+      {Intrinsic::hexagon_F2_conv_d2sf, 11734}, // __builtin_HEXAGON_F2_conv_d2sf
+      {Intrinsic::hexagon_F2_conv_df2d, 11765}, // __builtin_HEXAGON_F2_conv_df2d
+      {Intrinsic::hexagon_F2_conv_df2d_chop, 11796}, // __builtin_HEXAGON_F2_conv_df2d_chop
+      {Intrinsic::hexagon_F2_conv_df2sf, 11832}, // __builtin_HEXAGON_F2_conv_df2sf
+      {Intrinsic::hexagon_F2_conv_df2ud, 11864}, // __builtin_HEXAGON_F2_conv_df2ud
+      {Intrinsic::hexagon_F2_conv_df2ud_chop, 11896}, // __builtin_HEXAGON_F2_conv_df2ud_chop
+      {Intrinsic::hexagon_F2_conv_df2uw, 11933}, // __builtin_HEXAGON_F2_conv_df2uw
+      {Intrinsic::hexagon_F2_conv_df2uw_chop, 11965}, // __builtin_HEXAGON_F2_conv_df2uw_chop
+      {Intrinsic::hexagon_F2_conv_df2w, 12002}, // __builtin_HEXAGON_F2_conv_df2w
+      {Intrinsic::hexagon_F2_conv_df2w_chop, 12033}, // __builtin_HEXAGON_F2_conv_df2w_chop
+      {Intrinsic::hexagon_F2_conv_sf2d, 12069}, // __builtin_HEXAGON_F2_conv_sf2d
+      {Intrinsic::hexagon_F2_conv_sf2d_chop, 12100}, // __builtin_HEXAGON_F2_conv_sf2d_chop
+      {Intrinsic::hexagon_F2_conv_sf2df, 12136}, // __builtin_HEXAGON_F2_conv_sf2df
+      {Intrinsic::hexagon_F2_conv_sf2ud, 12168}, // __builtin_HEXAGON_F2_conv_sf2ud
+      {Intrinsic::hexagon_F2_conv_sf2ud_chop, 12200}, // __builtin_HEXAGON_F2_conv_sf2ud_chop
+      {Intrinsic::hexagon_F2_conv_sf2uw, 12237}, // __builtin_HEXAGON_F2_conv_sf2uw
+      {Intrinsic::hexagon_F2_conv_sf2uw_chop, 12269}, // __builtin_HEXAGON_F2_conv_sf2uw_chop
+      {Intrinsic::hexagon_F2_conv_sf2w, 12306}, // __builtin_HEXAGON_F2_conv_sf2w
+      {Intrinsic::hexagon_F2_conv_sf2w_chop, 12337}, // __builtin_HEXAGON_F2_conv_sf2w_chop
+      {Intrinsic::hexagon_F2_conv_ud2df, 12373}, // __builtin_HEXAGON_F2_conv_ud2df
+      {Intrinsic::hexagon_F2_conv_ud2sf, 12405}, // __builtin_HEXAGON_F2_conv_ud2sf
+      {Intrinsic::hexagon_F2_conv_uw2df, 12437}, // __builtin_HEXAGON_F2_conv_uw2df
+      {Intrinsic::hexagon_F2_conv_uw2sf, 12469}, // __builtin_HEXAGON_F2_conv_uw2sf
+      {Intrinsic::hexagon_F2_conv_w2df, 12501}, // __builtin_HEXAGON_F2_conv_w2df
+      {Intrinsic::hexagon_F2_conv_w2sf, 12532}, // __builtin_HEXAGON_F2_conv_w2sf
+      {Intrinsic::hexagon_F2_dfclass, 12563}, // __builtin_HEXAGON_F2_dfclass
+      {Intrinsic::hexagon_F2_dfcmpeq, 12592}, // __builtin_HEXAGON_F2_dfcmpeq
+      {Intrinsic::hexagon_F2_dfcmpge, 12621}, // __builtin_HEXAGON_F2_dfcmpge
+      {Intrinsic::hexagon_F2_dfcmpgt, 12650}, // __builtin_HEXAGON_F2_dfcmpgt
+      {Intrinsic::hexagon_F2_dfcmpuo, 12679}, // __builtin_HEXAGON_F2_dfcmpuo
+      {Intrinsic::hexagon_F2_dfimm_n, 12708}, // __builtin_HEXAGON_F2_dfimm_n
+      {Intrinsic::hexagon_F2_dfimm_p, 12737}, // __builtin_HEXAGON_F2_dfimm_p
+      {Intrinsic::hexagon_F2_sfadd, 12766}, // __builtin_HEXAGON_F2_sfadd
+      {Intrinsic::hexagon_F2_sfclass, 12793}, // __builtin_HEXAGON_F2_sfclass
+      {Intrinsic::hexagon_F2_sfcmpeq, 12822}, // __builtin_HEXAGON_F2_sfcmpeq
+      {Intrinsic::hexagon_F2_sfcmpge, 12851}, // __builtin_HEXAGON_F2_sfcmpge
+      {Intrinsic::hexagon_F2_sfcmpgt, 12880}, // __builtin_HEXAGON_F2_sfcmpgt
+      {Intrinsic::hexagon_F2_sfcmpuo, 12909}, // __builtin_HEXAGON_F2_sfcmpuo
+      {Intrinsic::hexagon_F2_sffixupd, 12938}, // __builtin_HEXAGON_F2_sffixupd
+      {Intrinsic::hexagon_F2_sffixupn, 12968}, // __builtin_HEXAGON_F2_sffixupn
+      {Intrinsic::hexagon_F2_sffixupr, 12998}, // __builtin_HEXAGON_F2_sffixupr
+      {Intrinsic::hexagon_F2_sffma, 13028}, // __builtin_HEXAGON_F2_sffma
+      {Intrinsic::hexagon_F2_sffma_lib, 13055}, // __builtin_HEXAGON_F2_sffma_lib
+      {Intrinsic::hexagon_F2_sffma_sc, 13086}, // __builtin_HEXAGON_F2_sffma_sc
+      {Intrinsic::hexagon_F2_sffms, 13116}, // __builtin_HEXAGON_F2_sffms
+      {Intrinsic::hexagon_F2_sffms_lib, 13143}, // __builtin_HEXAGON_F2_sffms_lib
+      {Intrinsic::hexagon_F2_sfimm_n, 13174}, // __builtin_HEXAGON_F2_sfimm_n
+      {Intrinsic::hexagon_F2_sfimm_p, 13203}, // __builtin_HEXAGON_F2_sfimm_p
+      {Intrinsic::hexagon_F2_sfmax, 13232}, // __builtin_HEXAGON_F2_sfmax
+      {Intrinsic::hexagon_F2_sfmin, 13259}, // __builtin_HEXAGON_F2_sfmin
+      {Intrinsic::hexagon_F2_sfmpy, 13286}, // __builtin_HEXAGON_F2_sfmpy
+      {Intrinsic::hexagon_F2_sfsub, 13313}, // __builtin_HEXAGON_F2_sfsub
+      {Intrinsic::hexagon_L2_loadw_locked, 13340}, // __builtin_HEXAGON_L2_loadw_locked
+      {Intrinsic::hexagon_L4_loadd_locked, 13374}, // __builtin_HEXAGON_L4_loadd_locked
+      {Intrinsic::hexagon_M2_acci, 13408}, // __builtin_HEXAGON_M2_acci
+      {Intrinsic::hexagon_M2_accii, 13434}, // __builtin_HEXAGON_M2_accii
+      {Intrinsic::hexagon_M2_cmaci_s0, 13461}, // __builtin_HEXAGON_M2_cmaci_s0
+      {Intrinsic::hexagon_M2_cmacr_s0, 13491}, // __builtin_HEXAGON_M2_cmacr_s0
+      {Intrinsic::hexagon_M2_cmacs_s0, 13521}, // __builtin_HEXAGON_M2_cmacs_s0
+      {Intrinsic::hexagon_M2_cmacs_s1, 13551}, // __builtin_HEXAGON_M2_cmacs_s1
+      {Intrinsic::hexagon_M2_cmacsc_s0, 13581}, // __builtin_HEXAGON_M2_cmacsc_s0
+      {Intrinsic::hexagon_M2_cmacsc_s1, 13612}, // __builtin_HEXAGON_M2_cmacsc_s1
+      {Intrinsic::hexagon_M2_cmpyi_s0, 13643}, // __builtin_HEXAGON_M2_cmpyi_s0
+      {Intrinsic::hexagon_M2_cmpyr_s0, 13673}, // __builtin_HEXAGON_M2_cmpyr_s0
+      {Intrinsic::hexagon_M2_cmpyrs_s0, 13703}, // __builtin_HEXAGON_M2_cmpyrs_s0
+      {Intrinsic::hexagon_M2_cmpyrs_s1, 13734}, // __builtin_HEXAGON_M2_cmpyrs_s1
+      {Intrinsic::hexagon_M2_cmpyrsc_s0, 13765}, // __builtin_HEXAGON_M2_cmpyrsc_s0
+      {Intrinsic::hexagon_M2_cmpyrsc_s1, 13797}, // __builtin_HEXAGON_M2_cmpyrsc_s1
+      {Intrinsic::hexagon_M2_cmpys_s0, 13829}, // __builtin_HEXAGON_M2_cmpys_s0
+      {Intrinsic::hexagon_M2_cmpys_s1, 13859}, // __builtin_HEXAGON_M2_cmpys_s1
+      {Intrinsic::hexagon_M2_cmpysc_s0, 13889}, // __builtin_HEXAGON_M2_cmpysc_s0
+      {Intrinsic::hexagon_M2_cmpysc_s1, 13920}, // __builtin_HEXAGON_M2_cmpysc_s1
+      {Intrinsic::hexagon_M2_cnacs_s0, 13951}, // __builtin_HEXAGON_M2_cnacs_s0
+      {Intrinsic::hexagon_M2_cnacs_s1, 13981}, // __builtin_HEXAGON_M2_cnacs_s1
+      {Intrinsic::hexagon_M2_cnacsc_s0, 14011}, // __builtin_HEXAGON_M2_cnacsc_s0
+      {Intrinsic::hexagon_M2_cnacsc_s1, 14042}, // __builtin_HEXAGON_M2_cnacsc_s1
+      {Intrinsic::hexagon_M2_dpmpyss_acc_s0, 14073}, // __builtin_HEXAGON_M2_dpmpyss_acc_s0
+      {Intrinsic::hexagon_M2_dpmpyss_nac_s0, 14109}, // __builtin_HEXAGON_M2_dpmpyss_nac_s0
+      {Intrinsic::hexagon_M2_dpmpyss_rnd_s0, 14145}, // __builtin_HEXAGON_M2_dpmpyss_rnd_s0
+      {Intrinsic::hexagon_M2_dpmpyss_s0, 14181}, // __builtin_HEXAGON_M2_dpmpyss_s0
+      {Intrinsic::hexagon_M2_dpmpyuu_acc_s0, 14213}, // __builtin_HEXAGON_M2_dpmpyuu_acc_s0
+      {Intrinsic::hexagon_M2_dpmpyuu_nac_s0, 14249}, // __builtin_HEXAGON_M2_dpmpyuu_nac_s0
+      {Intrinsic::hexagon_M2_dpmpyuu_s0, 14285}, // __builtin_HEXAGON_M2_dpmpyuu_s0
+      {Intrinsic::hexagon_M2_hmmpyh_rs1, 14317}, // __builtin_HEXAGON_M2_hmmpyh_rs1
+      {Intrinsic::hexagon_M2_hmmpyh_s1, 14349}, // __builtin_HEXAGON_M2_hmmpyh_s1
+      {Intrinsic::hexagon_M2_hmmpyl_rs1, 14380}, // __builtin_HEXAGON_M2_hmmpyl_rs1
+      {Intrinsic::hexagon_M2_hmmpyl_s1, 14412}, // __builtin_HEXAGON_M2_hmmpyl_s1
+      {Intrinsic::hexagon_M2_maci, 14443}, // __builtin_HEXAGON_M2_maci
+      {Intrinsic::hexagon_M2_macsin, 14469}, // __builtin_HEXAGON_M2_macsin
+      {Intrinsic::hexagon_M2_macsip, 14497}, // __builtin_HEXAGON_M2_macsip
+      {Intrinsic::hexagon_M2_mmachs_rs0, 14525}, // __builtin_HEXAGON_M2_mmachs_rs0
+      {Intrinsic::hexagon_M2_mmachs_rs1, 14557}, // __builtin_HEXAGON_M2_mmachs_rs1
+      {Intrinsic::hexagon_M2_mmachs_s0, 14589}, // __builtin_HEXAGON_M2_mmachs_s0
+      {Intrinsic::hexagon_M2_mmachs_s1, 14620}, // __builtin_HEXAGON_M2_mmachs_s1
+      {Intrinsic::hexagon_M2_mmacls_rs0, 14651}, // __builtin_HEXAGON_M2_mmacls_rs0
+      {Intrinsic::hexagon_M2_mmacls_rs1, 14683}, // __builtin_HEXAGON_M2_mmacls_rs1
+      {Intrinsic::hexagon_M2_mmacls_s0, 14715}, // __builtin_HEXAGON_M2_mmacls_s0
+      {Intrinsic::hexagon_M2_mmacls_s1, 14746}, // __builtin_HEXAGON_M2_mmacls_s1
+      {Intrinsic::hexagon_M2_mmacuhs_rs0, 14777}, // __builtin_HEXAGON_M2_mmacuhs_rs0
+      {Intrinsic::hexagon_M2_mmacuhs_rs1, 14810}, // __builtin_HEXAGON_M2_mmacuhs_rs1
+      {Intrinsic::hexagon_M2_mmacuhs_s0, 14843}, // __builtin_HEXAGON_M2_mmacuhs_s0
+      {Intrinsic::hexagon_M2_mmacuhs_s1, 14875}, // __builtin_HEXAGON_M2_mmacuhs_s1
+      {Intrinsic::hexagon_M2_mmaculs_rs0, 14907}, // __builtin_HEXAGON_M2_mmaculs_rs0
+      {Intrinsic::hexagon_M2_mmaculs_rs1, 14940}, // __builtin_HEXAGON_M2_mmaculs_rs1
+      {Intrinsic::hexagon_M2_mmaculs_s0, 14973}, // __builtin_HEXAGON_M2_mmaculs_s0
+      {Intrinsic::hexagon_M2_mmaculs_s1, 15005}, // __builtin_HEXAGON_M2_mmaculs_s1
+      {Intrinsic::hexagon_M2_mmpyh_rs0, 15037}, // __builtin_HEXAGON_M2_mmpyh_rs0
+      {Intrinsic::hexagon_M2_mmpyh_rs1, 15068}, // __builtin_HEXAGON_M2_mmpyh_rs1
+      {Intrinsic::hexagon_M2_mmpyh_s0, 15099}, // __builtin_HEXAGON_M2_mmpyh_s0
+      {Intrinsic::hexagon_M2_mmpyh_s1, 15129}, // __builtin_HEXAGON_M2_mmpyh_s1
+      {Intrinsic::hexagon_M2_mmpyl_rs0, 15159}, // __builtin_HEXAGON_M2_mmpyl_rs0
+      {Intrinsic::hexagon_M2_mmpyl_rs1, 15190}, // __builtin_HEXAGON_M2_mmpyl_rs1
+      {Intrinsic::hexagon_M2_mmpyl_s0, 15221}, // __builtin_HEXAGON_M2_mmpyl_s0
+      {Intrinsic::hexagon_M2_mmpyl_s1, 15251}, // __builtin_HEXAGON_M2_mmpyl_s1
+      {Intrinsic::hexagon_M2_mmpyuh_rs0, 15281}, // __builtin_HEXAGON_M2_mmpyuh_rs0
+      {Intrinsic::hexagon_M2_mmpyuh_rs1, 15313}, // __builtin_HEXAGON_M2_mmpyuh_rs1
+      {Intrinsic::hexagon_M2_mmpyuh_s0, 15345}, // __builtin_HEXAGON_M2_mmpyuh_s0
+      {Intrinsic::hexagon_M2_mmpyuh_s1, 15376}, // __builtin_HEXAGON_M2_mmpyuh_s1
+      {Intrinsic::hexagon_M2_mmpyul_rs0, 15407}, // __builtin_HEXAGON_M2_mmpyul_rs0
+      {Intrinsic::hexagon_M2_mmpyul_rs1, 15439}, // __builtin_HEXAGON_M2_mmpyul_rs1
+      {Intrinsic::hexagon_M2_mmpyul_s0, 15471}, // __builtin_HEXAGON_M2_mmpyul_s0
+      {Intrinsic::hexagon_M2_mmpyul_s1, 15502}, // __builtin_HEXAGON_M2_mmpyul_s1
+      {Intrinsic::hexagon_M2_mpy_acc_hh_s0, 15533}, // __builtin_HEXAGON_M2_mpy_acc_hh_s0
+      {Intrinsic::hexagon_M2_mpy_acc_hh_s1, 15568}, // __builtin_HEXAGON_M2_mpy_acc_hh_s1
+      {Intrinsic::hexagon_M2_mpy_acc_hl_s0, 15603}, // __builtin_HEXAGON_M2_mpy_acc_hl_s0
+      {Intrinsic::hexagon_M2_mpy_acc_hl_s1, 15638}, // __builtin_HEXAGON_M2_mpy_acc_hl_s1
+      {Intrinsic::hexagon_M2_mpy_acc_lh_s0, 15673}, // __builtin_HEXAGON_M2_mpy_acc_lh_s0
+      {Intrinsic::hexagon_M2_mpy_acc_lh_s1, 15708}, // __builtin_HEXAGON_M2_mpy_acc_lh_s1
+      {Intrinsic::hexagon_M2_mpy_acc_ll_s0, 15743}, // __builtin_HEXAGON_M2_mpy_acc_ll_s0
+      {Intrinsic::hexagon_M2_mpy_acc_ll_s1, 15778}, // __builtin_HEXAGON_M2_mpy_acc_ll_s1
+      {Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0, 15813}, // __builtin_HEXAGON_M2_mpy_acc_sat_hh_s0
+      {Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1, 15852}, // __builtin_HEXAGON_M2_mpy_acc_sat_hh_s1
+      {Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0, 15891}, // __builtin_HEXAGON_M2_mpy_acc_sat_hl_s0
+      {Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1, 15930}, // __builtin_HEXAGON_M2_mpy_acc_sat_hl_s1
+      {Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0, 15969}, // __builtin_HEXAGON_M2_mpy_acc_sat_lh_s0
+      {Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1, 16008}, // __builtin_HEXAGON_M2_mpy_acc_sat_lh_s1
+      {Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0, 16047}, // __builtin_HEXAGON_M2_mpy_acc_sat_ll_s0
+      {Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1, 16086}, // __builtin_HEXAGON_M2_mpy_acc_sat_ll_s1
+      {Intrinsic::hexagon_M2_mpy_hh_s0, 16125}, // __builtin_HEXAGON_M2_mpy_hh_s0
+      {Intrinsic::hexagon_M2_mpy_hh_s1, 16156}, // __builtin_HEXAGON_M2_mpy_hh_s1
+      {Intrinsic::hexagon_M2_mpy_hl_s0, 16187}, // __builtin_HEXAGON_M2_mpy_hl_s0
+      {Intrinsic::hexagon_M2_mpy_hl_s1, 16218}, // __builtin_HEXAGON_M2_mpy_hl_s1
+      {Intrinsic::hexagon_M2_mpy_lh_s0, 16249}, // __builtin_HEXAGON_M2_mpy_lh_s0
+      {Intrinsic::hexagon_M2_mpy_lh_s1, 16280}, // __builtin_HEXAGON_M2_mpy_lh_s1
+      {Intrinsic::hexagon_M2_mpy_ll_s0, 16311}, // __builtin_HEXAGON_M2_mpy_ll_s0
+      {Intrinsic::hexagon_M2_mpy_ll_s1, 16342}, // __builtin_HEXAGON_M2_mpy_ll_s1
+      {Intrinsic::hexagon_M2_mpy_nac_hh_s0, 16373}, // __builtin_HEXAGON_M2_mpy_nac_hh_s0
+      {Intrinsic::hexagon_M2_mpy_nac_hh_s1, 16408}, // __builtin_HEXAGON_M2_mpy_nac_hh_s1
+      {Intrinsic::hexagon_M2_mpy_nac_hl_s0, 16443}, // __builtin_HEXAGON_M2_mpy_nac_hl_s0
+      {Intrinsic::hexagon_M2_mpy_nac_hl_s1, 16478}, // __builtin_HEXAGON_M2_mpy_nac_hl_s1
+      {Intrinsic::hexagon_M2_mpy_nac_lh_s0, 16513}, // __builtin_HEXAGON_M2_mpy_nac_lh_s0
+      {Intrinsic::hexagon_M2_mpy_nac_lh_s1, 16548}, // __builtin_HEXAGON_M2_mpy_nac_lh_s1
+      {Intrinsic::hexagon_M2_mpy_nac_ll_s0, 16583}, // __builtin_HEXAGON_M2_mpy_nac_ll_s0
+      {Intrinsic::hexagon_M2_mpy_nac_ll_s1, 16618}, // __builtin_HEXAGON_M2_mpy_nac_ll_s1
+      {Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0, 16653}, // __builtin_HEXAGON_M2_mpy_nac_sat_hh_s0
+      {Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1, 16692}, // __builtin_HEXAGON_M2_mpy_nac_sat_hh_s1
+      {Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0, 16731}, // __builtin_HEXAGON_M2_mpy_nac_sat_hl_s0
+      {Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1, 16770}, // __builtin_HEXAGON_M2_mpy_nac_sat_hl_s1
+      {Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0, 16809}, // __builtin_HEXAGON_M2_mpy_nac_sat_lh_s0
+      {Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1, 16848}, // __builtin_HEXAGON_M2_mpy_nac_sat_lh_s1
+      {Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0, 16887}, // __builtin_HEXAGON_M2_mpy_nac_sat_ll_s0
+      {Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1, 16926}, // __builtin_HEXAGON_M2_mpy_nac_sat_ll_s1
+      {Intrinsic::hexagon_M2_mpy_rnd_hh_s0, 16965}, // __builtin_HEXAGON_M2_mpy_rnd_hh_s0
+      {Intrinsic::hexagon_M2_mpy_rnd_hh_s1, 17000}, // __builtin_HEXAGON_M2_mpy_rnd_hh_s1
+      {Intrinsic::hexagon_M2_mpy_rnd_hl_s0, 17035}, // __builtin_HEXAGON_M2_mpy_rnd_hl_s0
+      {Intrinsic::hexagon_M2_mpy_rnd_hl_s1, 17070}, // __builtin_HEXAGON_M2_mpy_rnd_hl_s1
+      {Intrinsic::hexagon_M2_mpy_rnd_lh_s0, 17105}, // __builtin_HEXAGON_M2_mpy_rnd_lh_s0
+      {Intrinsic::hexagon_M2_mpy_rnd_lh_s1, 17140}, // __builtin_HEXAGON_M2_mpy_rnd_lh_s1
+      {Intrinsic::hexagon_M2_mpy_rnd_ll_s0, 17175}, // __builtin_HEXAGON_M2_mpy_rnd_ll_s0
+      {Intrinsic::hexagon_M2_mpy_rnd_ll_s1, 17210}, // __builtin_HEXAGON_M2_mpy_rnd_ll_s1
+      {Intrinsic::hexagon_M2_mpy_sat_hh_s0, 17245}, // __builtin_HEXAGON_M2_mpy_sat_hh_s0
+      {Intrinsic::hexagon_M2_mpy_sat_hh_s1, 17280}, // __builtin_HEXAGON_M2_mpy_sat_hh_s1
+      {Intrinsic::hexagon_M2_mpy_sat_hl_s0, 17315}, // __builtin_HEXAGON_M2_mpy_sat_hl_s0
+      {Intrinsic::hexagon_M2_mpy_sat_hl_s1, 17350}, // __builtin_HEXAGON_M2_mpy_sat_hl_s1
+      {Intrinsic::hexagon_M2_mpy_sat_lh_s0, 17385}, // __builtin_HEXAGON_M2_mpy_sat_lh_s0
+      {Intrinsic::hexagon_M2_mpy_sat_lh_s1, 17420}, // __builtin_HEXAGON_M2_mpy_sat_lh_s1
+      {Intrinsic::hexagon_M2_mpy_sat_ll_s0, 17455}, // __builtin_HEXAGON_M2_mpy_sat_ll_s0
+      {Intrinsic::hexagon_M2_mpy_sat_ll_s1, 17490}, // __builtin_HEXAGON_M2_mpy_sat_ll_s1
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0, 17525}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s0
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1, 17564}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s1
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0, 17603}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s0
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1, 17642}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s1
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0, 17681}, // __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s0
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1, 17720}, // __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s1
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0, 17759}, // __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s0
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1, 17798}, // __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s1
+      {Intrinsic::hexagon_M2_mpy_up, 17837}, // __builtin_HEXAGON_M2_mpy_up
+      {Intrinsic::hexagon_M2_mpy_up_s1, 17865}, // __builtin_HEXAGON_M2_mpy_up_s1
+      {Intrinsic::hexagon_M2_mpy_up_s1_sat, 17896}, // __builtin_HEXAGON_M2_mpy_up_s1_sat
+      {Intrinsic::hexagon_M2_mpyd_acc_hh_s0, 17931}, // __builtin_HEXAGON_M2_mpyd_acc_hh_s0
+      {Intrinsic::hexagon_M2_mpyd_acc_hh_s1, 17967}, // __builtin_HEXAGON_M2_mpyd_acc_hh_s1
+      {Intrinsic::hexagon_M2_mpyd_acc_hl_s0, 18003}, // __builtin_HEXAGON_M2_mpyd_acc_hl_s0
+      {Intrinsic::hexagon_M2_mpyd_acc_hl_s1, 18039}, // __builtin_HEXAGON_M2_mpyd_acc_hl_s1
+      {Intrinsic::hexagon_M2_mpyd_acc_lh_s0, 18075}, // __builtin_HEXAGON_M2_mpyd_acc_lh_s0
+      {Intrinsic::hexagon_M2_mpyd_acc_lh_s1, 18111}, // __builtin_HEXAGON_M2_mpyd_acc_lh_s1
+      {Intrinsic::hexagon_M2_mpyd_acc_ll_s0, 18147}, // __builtin_HEXAGON_M2_mpyd_acc_ll_s0
+      {Intrinsic::hexagon_M2_mpyd_acc_ll_s1, 18183}, // __builtin_HEXAGON_M2_mpyd_acc_ll_s1
+      {Intrinsic::hexagon_M2_mpyd_hh_s0, 18219}, // __builtin_HEXAGON_M2_mpyd_hh_s0
+      {Intrinsic::hexagon_M2_mpyd_hh_s1, 18251}, // __builtin_HEXAGON_M2_mpyd_hh_s1
+      {Intrinsic::hexagon_M2_mpyd_hl_s0, 18283}, // __builtin_HEXAGON_M2_mpyd_hl_s0
+      {Intrinsic::hexagon_M2_mpyd_hl_s1, 18315}, // __builtin_HEXAGON_M2_mpyd_hl_s1
+      {Intrinsic::hexagon_M2_mpyd_lh_s0, 18347}, // __builtin_HEXAGON_M2_mpyd_lh_s0
+      {Intrinsic::hexagon_M2_mpyd_lh_s1, 18379}, // __builtin_HEXAGON_M2_mpyd_lh_s1
+      {Intrinsic::hexagon_M2_mpyd_ll_s0, 18411}, // __builtin_HEXAGON_M2_mpyd_ll_s0
+      {Intrinsic::hexagon_M2_mpyd_ll_s1, 18443}, // __builtin_HEXAGON_M2_mpyd_ll_s1
+      {Intrinsic::hexagon_M2_mpyd_nac_hh_s0, 18475}, // __builtin_HEXAGON_M2_mpyd_nac_hh_s0
+      {Intrinsic::hexagon_M2_mpyd_nac_hh_s1, 18511}, // __builtin_HEXAGON_M2_mpyd_nac_hh_s1
+      {Intrinsic::hexagon_M2_mpyd_nac_hl_s0, 18547}, // __builtin_HEXAGON_M2_mpyd_nac_hl_s0
+      {Intrinsic::hexagon_M2_mpyd_nac_hl_s1, 18583}, // __builtin_HEXAGON_M2_mpyd_nac_hl_s1
+      {Intrinsic::hexagon_M2_mpyd_nac_lh_s0, 18619}, // __builtin_HEXAGON_M2_mpyd_nac_lh_s0
+      {Intrinsic::hexagon_M2_mpyd_nac_lh_s1, 18655}, // __builtin_HEXAGON_M2_mpyd_nac_lh_s1
+      {Intrinsic::hexagon_M2_mpyd_nac_ll_s0, 18691}, // __builtin_HEXAGON_M2_mpyd_nac_ll_s0
+      {Intrinsic::hexagon_M2_mpyd_nac_ll_s1, 18727}, // __builtin_HEXAGON_M2_mpyd_nac_ll_s1
+      {Intrinsic::hexagon_M2_mpyd_rnd_hh_s0, 18763}, // __builtin_HEXAGON_M2_mpyd_rnd_hh_s0
+      {Intrinsic::hexagon_M2_mpyd_rnd_hh_s1, 18799}, // __builtin_HEXAGON_M2_mpyd_rnd_hh_s1
+      {Intrinsic::hexagon_M2_mpyd_rnd_hl_s0, 18835}, // __builtin_HEXAGON_M2_mpyd_rnd_hl_s0
+      {Intrinsic::hexagon_M2_mpyd_rnd_hl_s1, 18871}, // __builtin_HEXAGON_M2_mpyd_rnd_hl_s1
+      {Intrinsic::hexagon_M2_mpyd_rnd_lh_s0, 18907}, // __builtin_HEXAGON_M2_mpyd_rnd_lh_s0
+      {Intrinsic::hexagon_M2_mpyd_rnd_lh_s1, 18943}, // __builtin_HEXAGON_M2_mpyd_rnd_lh_s1
+      {Intrinsic::hexagon_M2_mpyd_rnd_ll_s0, 18979}, // __builtin_HEXAGON_M2_mpyd_rnd_ll_s0
+      {Intrinsic::hexagon_M2_mpyd_rnd_ll_s1, 19015}, // __builtin_HEXAGON_M2_mpyd_rnd_ll_s1
+      {Intrinsic::hexagon_M2_mpyi, 19051}, // __builtin_HEXAGON_M2_mpyi
+      {Intrinsic::hexagon_M2_mpysmi, 19077}, // __builtin_HEXAGON_M2_mpysmi
+      {Intrinsic::hexagon_M2_mpysu_up, 19105}, // __builtin_HEXAGON_M2_mpysu_up
+      {Intrinsic::hexagon_M2_mpyu_acc_hh_s0, 19135}, // __builtin_HEXAGON_M2_mpyu_acc_hh_s0
+      {Intrinsic::hexagon_M2_mpyu_acc_hh_s1, 19171}, // __builtin_HEXAGON_M2_mpyu_acc_hh_s1
+      {Intrinsic::hexagon_M2_mpyu_acc_hl_s0, 19207}, // __builtin_HEXAGON_M2_mpyu_acc_hl_s0
+      {Intrinsic::hexagon_M2_mpyu_acc_hl_s1, 19243}, // __builtin_HEXAGON_M2_mpyu_acc_hl_s1
+      {Intrinsic::hexagon_M2_mpyu_acc_lh_s0, 19279}, // __builtin_HEXAGON_M2_mpyu_acc_lh_s0
+      {Intrinsic::hexagon_M2_mpyu_acc_lh_s1, 19315}, // __builtin_HEXAGON_M2_mpyu_acc_lh_s1
+      {Intrinsic::hexagon_M2_mpyu_acc_ll_s0, 19351}, // __builtin_HEXAGON_M2_mpyu_acc_ll_s0
+      {Intrinsic::hexagon_M2_mpyu_acc_ll_s1, 19387}, // __builtin_HEXAGON_M2_mpyu_acc_ll_s1
+      {Intrinsic::hexagon_M2_mpyu_hh_s0, 19423}, // __builtin_HEXAGON_M2_mpyu_hh_s0
+      {Intrinsic::hexagon_M2_mpyu_hh_s1, 19455}, // __builtin_HEXAGON_M2_mpyu_hh_s1
+      {Intrinsic::hexagon_M2_mpyu_hl_s0, 19487}, // __builtin_HEXAGON_M2_mpyu_hl_s0
+      {Intrinsic::hexagon_M2_mpyu_hl_s1, 19519}, // __builtin_HEXAGON_M2_mpyu_hl_s1
+      {Intrinsic::hexagon_M2_mpyu_lh_s0, 19551}, // __builtin_HEXAGON_M2_mpyu_lh_s0
+      {Intrinsic::hexagon_M2_mpyu_lh_s1, 19583}, // __builtin_HEXAGON_M2_mpyu_lh_s1
+      {Intrinsic::hexagon_M2_mpyu_ll_s0, 19615}, // __builtin_HEXAGON_M2_mpyu_ll_s0
+      {Intrinsic::hexagon_M2_mpyu_ll_s1, 19647}, // __builtin_HEXAGON_M2_mpyu_ll_s1
+      {Intrinsic::hexagon_M2_mpyu_nac_hh_s0, 19679}, // __builtin_HEXAGON_M2_mpyu_nac_hh_s0
+      {Intrinsic::hexagon_M2_mpyu_nac_hh_s1, 19715}, // __builtin_HEXAGON_M2_mpyu_nac_hh_s1
+      {Intrinsic::hexagon_M2_mpyu_nac_hl_s0, 19751}, // __builtin_HEXAGON_M2_mpyu_nac_hl_s0
+      {Intrinsic::hexagon_M2_mpyu_nac_hl_s1, 19787}, // __builtin_HEXAGON_M2_mpyu_nac_hl_s1
+      {Intrinsic::hexagon_M2_mpyu_nac_lh_s0, 19823}, // __builtin_HEXAGON_M2_mpyu_nac_lh_s0
+      {Intrinsic::hexagon_M2_mpyu_nac_lh_s1, 19859}, // __builtin_HEXAGON_M2_mpyu_nac_lh_s1
+      {Intrinsic::hexagon_M2_mpyu_nac_ll_s0, 19895}, // __builtin_HEXAGON_M2_mpyu_nac_ll_s0
+      {Intrinsic::hexagon_M2_mpyu_nac_ll_s1, 19931}, // __builtin_HEXAGON_M2_mpyu_nac_ll_s1
+      {Intrinsic::hexagon_M2_mpyu_up, 19967}, // __builtin_HEXAGON_M2_mpyu_up
+      {Intrinsic::hexagon_M2_mpyud_acc_hh_s0, 19996}, // __builtin_HEXAGON_M2_mpyud_acc_hh_s0
+      {Intrinsic::hexagon_M2_mpyud_acc_hh_s1, 20033}, // __builtin_HEXAGON_M2_mpyud_acc_hh_s1
+      {Intrinsic::hexagon_M2_mpyud_acc_hl_s0, 20070}, // __builtin_HEXAGON_M2_mpyud_acc_hl_s0
+      {Intrinsic::hexagon_M2_mpyud_acc_hl_s1, 20107}, // __builtin_HEXAGON_M2_mpyud_acc_hl_s1
+      {Intrinsic::hexagon_M2_mpyud_acc_lh_s0, 20144}, // __builtin_HEXAGON_M2_mpyud_acc_lh_s0
+      {Intrinsic::hexagon_M2_mpyud_acc_lh_s1, 20181}, // __builtin_HEXAGON_M2_mpyud_acc_lh_s1
+      {Intrinsic::hexagon_M2_mpyud_acc_ll_s0, 20218}, // __builtin_HEXAGON_M2_mpyud_acc_ll_s0
+      {Intrinsic::hexagon_M2_mpyud_acc_ll_s1, 20255}, // __builtin_HEXAGON_M2_mpyud_acc_ll_s1
+      {Intrinsic::hexagon_M2_mpyud_hh_s0, 20292}, // __builtin_HEXAGON_M2_mpyud_hh_s0
+      {Intrinsic::hexagon_M2_mpyud_hh_s1, 20325}, // __builtin_HEXAGON_M2_mpyud_hh_s1
+      {Intrinsic::hexagon_M2_mpyud_hl_s0, 20358}, // __builtin_HEXAGON_M2_mpyud_hl_s0
+      {Intrinsic::hexagon_M2_mpyud_hl_s1, 20391}, // __builtin_HEXAGON_M2_mpyud_hl_s1
+      {Intrinsic::hexagon_M2_mpyud_lh_s0, 20424}, // __builtin_HEXAGON_M2_mpyud_lh_s0
+      {Intrinsic::hexagon_M2_mpyud_lh_s1, 20457}, // __builtin_HEXAGON_M2_mpyud_lh_s1
+      {Intrinsic::hexagon_M2_mpyud_ll_s0, 20490}, // __builtin_HEXAGON_M2_mpyud_ll_s0
+      {Intrinsic::hexagon_M2_mpyud_ll_s1, 20523}, // __builtin_HEXAGON_M2_mpyud_ll_s1
+      {Intrinsic::hexagon_M2_mpyud_nac_hh_s0, 20556}, // __builtin_HEXAGON_M2_mpyud_nac_hh_s0
+      {Intrinsic::hexagon_M2_mpyud_nac_hh_s1, 20593}, // __builtin_HEXAGON_M2_mpyud_nac_hh_s1
+      {Intrinsic::hexagon_M2_mpyud_nac_hl_s0, 20630}, // __builtin_HEXAGON_M2_mpyud_nac_hl_s0
+      {Intrinsic::hexagon_M2_mpyud_nac_hl_s1, 20667}, // __builtin_HEXAGON_M2_mpyud_nac_hl_s1
+      {Intrinsic::hexagon_M2_mpyud_nac_lh_s0, 20704}, // __builtin_HEXAGON_M2_mpyud_nac_lh_s0
+      {Intrinsic::hexagon_M2_mpyud_nac_lh_s1, 20741}, // __builtin_HEXAGON_M2_mpyud_nac_lh_s1
+      {Intrinsic::hexagon_M2_mpyud_nac_ll_s0, 20778}, // __builtin_HEXAGON_M2_mpyud_nac_ll_s0
+      {Intrinsic::hexagon_M2_mpyud_nac_ll_s1, 20815}, // __builtin_HEXAGON_M2_mpyud_nac_ll_s1
+      {Intrinsic::hexagon_M2_mpyui, 20852}, // __builtin_HEXAGON_M2_mpyui
+      {Intrinsic::hexagon_M2_nacci, 20879}, // __builtin_HEXAGON_M2_nacci
+      {Intrinsic::hexagon_M2_naccii, 20906}, // __builtin_HEXAGON_M2_naccii
+      {Intrinsic::hexagon_M2_subacc, 20934}, // __builtin_HEXAGON_M2_subacc
+      {Intrinsic::hexagon_M2_vabsdiffh, 20962}, // __builtin_HEXAGON_M2_vabsdiffh
+      {Intrinsic::hexagon_M2_vabsdiffw, 20993}, // __builtin_HEXAGON_M2_vabsdiffw
+      {Intrinsic::hexagon_M2_vcmac_s0_sat_i, 21024}, // __builtin_HEXAGON_M2_vcmac_s0_sat_i
+      {Intrinsic::hexagon_M2_vcmac_s0_sat_r, 21060}, // __builtin_HEXAGON_M2_vcmac_s0_sat_r
+      {Intrinsic::hexagon_M2_vcmpy_s0_sat_i, 21096}, // __builtin_HEXAGON_M2_vcmpy_s0_sat_i
+      {Intrinsic::hexagon_M2_vcmpy_s0_sat_r, 21132}, // __builtin_HEXAGON_M2_vcmpy_s0_sat_r
+      {Intrinsic::hexagon_M2_vcmpy_s1_sat_i, 21168}, // __builtin_HEXAGON_M2_vcmpy_s1_sat_i
+      {Intrinsic::hexagon_M2_vcmpy_s1_sat_r, 21204}, // __builtin_HEXAGON_M2_vcmpy_s1_sat_r
+      {Intrinsic::hexagon_M2_vdmacs_s0, 21240}, // __builtin_HEXAGON_M2_vdmacs_s0
+      {Intrinsic::hexagon_M2_vdmacs_s1, 21271}, // __builtin_HEXAGON_M2_vdmacs_s1
+      {Intrinsic::hexagon_M2_vdmpyrs_s0, 21302}, // __builtin_HEXAGON_M2_vdmpyrs_s0
+      {Intrinsic::hexagon_M2_vdmpyrs_s1, 21334}, // __builtin_HEXAGON_M2_vdmpyrs_s1
+      {Intrinsic::hexagon_M2_vdmpys_s0, 21366}, // __builtin_HEXAGON_M2_vdmpys_s0
+      {Intrinsic::hexagon_M2_vdmpys_s1, 21397}, // __builtin_HEXAGON_M2_vdmpys_s1
+      {Intrinsic::hexagon_M2_vmac2, 21428}, // __builtin_HEXAGON_M2_vmac2
+      {Intrinsic::hexagon_M2_vmac2es, 21455}, // __builtin_HEXAGON_M2_vmac2es
+      {Intrinsic::hexagon_M2_vmac2es_s0, 21484}, // __builtin_HEXAGON_M2_vmac2es_s0
+      {Intrinsic::hexagon_M2_vmac2es_s1, 21516}, // __builtin_HEXAGON_M2_vmac2es_s1
+      {Intrinsic::hexagon_M2_vmac2s_s0, 21548}, // __builtin_HEXAGON_M2_vmac2s_s0
+      {Intrinsic::hexagon_M2_vmac2s_s1, 21579}, // __builtin_HEXAGON_M2_vmac2s_s1
+      {Intrinsic::hexagon_M2_vmac2su_s0, 21610}, // __builtin_HEXAGON_M2_vmac2su_s0
+      {Intrinsic::hexagon_M2_vmac2su_s1, 21642}, // __builtin_HEXAGON_M2_vmac2su_s1
+      {Intrinsic::hexagon_M2_vmpy2es_s0, 21674}, // __builtin_HEXAGON_M2_vmpy2es_s0
+      {Intrinsic::hexagon_M2_vmpy2es_s1, 21706}, // __builtin_HEXAGON_M2_vmpy2es_s1
+      {Intrinsic::hexagon_M2_vmpy2s_s0, 21738}, // __builtin_HEXAGON_M2_vmpy2s_s0
+      {Intrinsic::hexagon_M2_vmpy2s_s0pack, 21769}, // __builtin_HEXAGON_M2_vmpy2s_s0pack
+      {Intrinsic::hexagon_M2_vmpy2s_s1, 21804}, // __builtin_HEXAGON_M2_vmpy2s_s1
+      {Intrinsic::hexagon_M2_vmpy2s_s1pack, 21835}, // __builtin_HEXAGON_M2_vmpy2s_s1pack
+      {Intrinsic::hexagon_M2_vmpy2su_s0, 21870}, // __builtin_HEXAGON_M2_vmpy2su_s0
+      {Intrinsic::hexagon_M2_vmpy2su_s1, 21902}, // __builtin_HEXAGON_M2_vmpy2su_s1
+      {Intrinsic::hexagon_M2_vraddh, 21934}, // __builtin_HEXAGON_M2_vraddh
+      {Intrinsic::hexagon_M2_vradduh, 21962}, // __builtin_HEXAGON_M2_vradduh
+      {Intrinsic::hexagon_M2_vrcmaci_s0, 21991}, // __builtin_HEXAGON_M2_vrcmaci_s0
+      {Intrinsic::hexagon_M2_vrcmaci_s0c, 22023}, // __builtin_HEXAGON_M2_vrcmaci_s0c
+      {Intrinsic::hexagon_M2_vrcmacr_s0, 22056}, // __builtin_HEXAGON_M2_vrcmacr_s0
+      {Intrinsic::hexagon_M2_vrcmacr_s0c, 22088}, // __builtin_HEXAGON_M2_vrcmacr_s0c
+      {Intrinsic::hexagon_M2_vrcmpyi_s0, 22121}, // __builtin_HEXAGON_M2_vrcmpyi_s0
+      {Intrinsic::hexagon_M2_vrcmpyi_s0c, 22153}, // __builtin_HEXAGON_M2_vrcmpyi_s0c
+      {Intrinsic::hexagon_M2_vrcmpyr_s0, 22186}, // __builtin_HEXAGON_M2_vrcmpyr_s0
+      {Intrinsic::hexagon_M2_vrcmpyr_s0c, 22218}, // __builtin_HEXAGON_M2_vrcmpyr_s0c
+      {Intrinsic::hexagon_M2_vrcmpys_acc_s1, 22251}, // __builtin_HEXAGON_M2_vrcmpys_acc_s1
+      {Intrinsic::hexagon_M2_vrcmpys_s1, 22287}, // __builtin_HEXAGON_M2_vrcmpys_s1
+      {Intrinsic::hexagon_M2_vrcmpys_s1rp, 22319}, // __builtin_HEXAGON_M2_vrcmpys_s1rp
+      {Intrinsic::hexagon_M2_vrmac_s0, 22353}, // __builtin_HEXAGON_M2_vrmac_s0
+      {Intrinsic::hexagon_M2_vrmpy_s0, 22383}, // __builtin_HEXAGON_M2_vrmpy_s0
+      {Intrinsic::hexagon_M2_xor_xacc, 22413}, // __builtin_HEXAGON_M2_xor_xacc
+      {Intrinsic::hexagon_M4_and_and, 22443}, // __builtin_HEXAGON_M4_and_and
+      {Intrinsic::hexagon_M4_and_andn, 22472}, // __builtin_HEXAGON_M4_and_andn
+      {Intrinsic::hexagon_M4_and_or, 22502}, // __builtin_HEXAGON_M4_and_or
+      {Intrinsic::hexagon_M4_and_xor, 22530}, // __builtin_HEXAGON_M4_and_xor
+      {Intrinsic::hexagon_M4_cmpyi_wh, 22559}, // __builtin_HEXAGON_M4_cmpyi_wh
+      {Intrinsic::hexagon_M4_cmpyi_whc, 22589}, // __builtin_HEXAGON_M4_cmpyi_whc
+      {Intrinsic::hexagon_M4_cmpyr_wh, 22620}, // __builtin_HEXAGON_M4_cmpyr_wh
+      {Intrinsic::hexagon_M4_cmpyr_whc, 22650}, // __builtin_HEXAGON_M4_cmpyr_whc
+      {Intrinsic::hexagon_M4_mac_up_s1_sat, 22681}, // __builtin_HEXAGON_M4_mac_up_s1_sat
+      {Intrinsic::hexagon_M4_mpyri_addi, 22716}, // __builtin_HEXAGON_M4_mpyri_addi
+      {Intrinsic::hexagon_M4_mpyri_addr, 22748}, // __builtin_HEXAGON_M4_mpyri_addr
+      {Intrinsic::hexagon_M4_mpyri_addr_u2, 22780}, // __builtin_HEXAGON_M4_mpyri_addr_u2
+      {Intrinsic::hexagon_M4_mpyrr_addi, 22815}, // __builtin_HEXAGON_M4_mpyrr_addi
+      {Intrinsic::hexagon_M4_mpyrr_addr, 22847}, // __builtin_HEXAGON_M4_mpyrr_addr
+      {Intrinsic::hexagon_M4_nac_up_s1_sat, 22879}, // __builtin_HEXAGON_M4_nac_up_s1_sat
+      {Intrinsic::hexagon_M4_or_and, 22914}, // __builtin_HEXAGON_M4_or_and
+      {Intrinsic::hexagon_M4_or_andn, 22942}, // __builtin_HEXAGON_M4_or_andn
+      {Intrinsic::hexagon_M4_or_or, 22971}, // __builtin_HEXAGON_M4_or_or
+      {Intrinsic::hexagon_M4_or_xor, 22998}, // __builtin_HEXAGON_M4_or_xor
+      {Intrinsic::hexagon_M4_pmpyw, 23026}, // __builtin_HEXAGON_M4_pmpyw
+      {Intrinsic::hexagon_M4_pmpyw_acc, 23053}, // __builtin_HEXAGON_M4_pmpyw_acc
+      {Intrinsic::hexagon_M4_vpmpyh, 23084}, // __builtin_HEXAGON_M4_vpmpyh
+      {Intrinsic::hexagon_M4_vpmpyh_acc, 23112}, // __builtin_HEXAGON_M4_vpmpyh_acc
+      {Intrinsic::hexagon_M4_vrmpyeh_acc_s0, 23144}, // __builtin_HEXAGON_M4_vrmpyeh_acc_s0
+      {Intrinsic::hexagon_M4_vrmpyeh_acc_s1, 23180}, // __builtin_HEXAGON_M4_vrmpyeh_acc_s1
+      {Intrinsic::hexagon_M4_vrmpyeh_s0, 23216}, // __builtin_HEXAGON_M4_vrmpyeh_s0
+      {Intrinsic::hexagon_M4_vrmpyeh_s1, 23248}, // __builtin_HEXAGON_M4_vrmpyeh_s1
+      {Intrinsic::hexagon_M4_vrmpyoh_acc_s0, 23280}, // __builtin_HEXAGON_M4_vrmpyoh_acc_s0
+      {Intrinsic::hexagon_M4_vrmpyoh_acc_s1, 23316}, // __builtin_HEXAGON_M4_vrmpyoh_acc_s1
+      {Intrinsic::hexagon_M4_vrmpyoh_s0, 23352}, // __builtin_HEXAGON_M4_vrmpyoh_s0
+      {Intrinsic::hexagon_M4_vrmpyoh_s1, 23384}, // __builtin_HEXAGON_M4_vrmpyoh_s1
+      {Intrinsic::hexagon_M4_xor_and, 23416}, // __builtin_HEXAGON_M4_xor_and
+      {Intrinsic::hexagon_M4_xor_andn, 23445}, // __builtin_HEXAGON_M4_xor_andn
+      {Intrinsic::hexagon_M4_xor_or, 23475}, // __builtin_HEXAGON_M4_xor_or
+      {Intrinsic::hexagon_M4_xor_xacc, 23503}, // __builtin_HEXAGON_M4_xor_xacc
+      {Intrinsic::hexagon_M5_vdmacbsu, 23533}, // __builtin_HEXAGON_M5_vdmacbsu
+      {Intrinsic::hexagon_M5_vdmpybsu, 23563}, // __builtin_HEXAGON_M5_vdmpybsu
+      {Intrinsic::hexagon_M5_vmacbsu, 23593}, // __builtin_HEXAGON_M5_vmacbsu
+      {Intrinsic::hexagon_M5_vmacbuu, 23622}, // __builtin_HEXAGON_M5_vmacbuu
+      {Intrinsic::hexagon_M5_vmpybsu, 23651}, // __builtin_HEXAGON_M5_vmpybsu
+      {Intrinsic::hexagon_M5_vmpybuu, 23680}, // __builtin_HEXAGON_M5_vmpybuu
+      {Intrinsic::hexagon_M5_vrmacbsu, 23709}, // __builtin_HEXAGON_M5_vrmacbsu
+      {Intrinsic::hexagon_M5_vrmacbuu, 23739}, // __builtin_HEXAGON_M5_vrmacbuu
+      {Intrinsic::hexagon_M5_vrmpybsu, 23769}, // __builtin_HEXAGON_M5_vrmpybsu
+      {Intrinsic::hexagon_M5_vrmpybuu, 23799}, // __builtin_HEXAGON_M5_vrmpybuu
+      {Intrinsic::hexagon_M6_vabsdiffb, 23829}, // __builtin_HEXAGON_M6_vabsdiffb
+      {Intrinsic::hexagon_M6_vabsdiffub, 23860}, // __builtin_HEXAGON_M6_vabsdiffub
+      {Intrinsic::hexagon_S2_addasl_rrri, 23892}, // __builtin_HEXAGON_S2_addasl_rrri
+      {Intrinsic::hexagon_S2_asl_i_p, 23925}, // __builtin_HEXAGON_S2_asl_i_p
+      {Intrinsic::hexagon_S2_asl_i_p_acc, 23954}, // __builtin_HEXAGON_S2_asl_i_p_acc
+      {Intrinsic::hexagon_S2_asl_i_p_and, 23987}, // __builtin_HEXAGON_S2_asl_i_p_and
+      {Intrinsic::hexagon_S2_asl_i_p_nac, 24020}, // __builtin_HEXAGON_S2_asl_i_p_nac
+      {Intrinsic::hexagon_S2_asl_i_p_or, 24053}, // __builtin_HEXAGON_S2_asl_i_p_or
+      {Intrinsic::hexagon_S2_asl_i_p_xacc, 24085}, // __builtin_HEXAGON_S2_asl_i_p_xacc
+      {Intrinsic::hexagon_S2_asl_i_r, 24119}, // __builtin_HEXAGON_S2_asl_i_r
+      {Intrinsic::hexagon_S2_asl_i_r_acc, 24148}, // __builtin_HEXAGON_S2_asl_i_r_acc
+      {Intrinsic::hexagon_S2_asl_i_r_and, 24181}, // __builtin_HEXAGON_S2_asl_i_r_and
+      {Intrinsic::hexagon_S2_asl_i_r_nac, 24214}, // __builtin_HEXAGON_S2_asl_i_r_nac
+      {Intrinsic::hexagon_S2_asl_i_r_or, 24247}, // __builtin_HEXAGON_S2_asl_i_r_or
+      {Intrinsic::hexagon_S2_asl_i_r_sat, 24279}, // __builtin_HEXAGON_S2_asl_i_r_sat
+      {Intrinsic::hexagon_S2_asl_i_r_xacc, 24312}, // __builtin_HEXAGON_S2_asl_i_r_xacc
+      {Intrinsic::hexagon_S2_asl_i_vh, 24346}, // __builtin_HEXAGON_S2_asl_i_vh
+      {Intrinsic::hexagon_S2_asl_i_vw, 24376}, // __builtin_HEXAGON_S2_asl_i_vw
+      {Intrinsic::hexagon_S2_asl_r_p, 24406}, // __builtin_HEXAGON_S2_asl_r_p
+      {Intrinsic::hexagon_S2_asl_r_p_acc, 24435}, // __builtin_HEXAGON_S2_asl_r_p_acc
+      {Intrinsic::hexagon_S2_asl_r_p_and, 24468}, // __builtin_HEXAGON_S2_asl_r_p_and
+      {Intrinsic::hexagon_S2_asl_r_p_nac, 24501}, // __builtin_HEXAGON_S2_asl_r_p_nac
+      {Intrinsic::hexagon_S2_asl_r_p_or, 24534}, // __builtin_HEXAGON_S2_asl_r_p_or
+      {Intrinsic::hexagon_S2_asl_r_p_xor, 24566}, // __builtin_HEXAGON_S2_asl_r_p_xor
+      {Intrinsic::hexagon_S2_asl_r_r, 24599}, // __builtin_HEXAGON_S2_asl_r_r
+      {Intrinsic::hexagon_S2_asl_r_r_acc, 24628}, // __builtin_HEXAGON_S2_asl_r_r_acc
+      {Intrinsic::hexagon_S2_asl_r_r_and, 24661}, // __builtin_HEXAGON_S2_asl_r_r_and
+      {Intrinsic::hexagon_S2_asl_r_r_nac, 24694}, // __builtin_HEXAGON_S2_asl_r_r_nac
+      {Intrinsic::hexagon_S2_asl_r_r_or, 24727}, // __builtin_HEXAGON_S2_asl_r_r_or
+      {Intrinsic::hexagon_S2_asl_r_r_sat, 24759}, // __builtin_HEXAGON_S2_asl_r_r_sat
+      {Intrinsic::hexagon_S2_asl_r_vh, 24792}, // __builtin_HEXAGON_S2_asl_r_vh
+      {Intrinsic::hexagon_S2_asl_r_vw, 24822}, // __builtin_HEXAGON_S2_asl_r_vw
+      {Intrinsic::hexagon_S2_asr_i_p, 24852}, // __builtin_HEXAGON_S2_asr_i_p
+      {Intrinsic::hexagon_S2_asr_i_p_acc, 24881}, // __builtin_HEXAGON_S2_asr_i_p_acc
+      {Intrinsic::hexagon_S2_asr_i_p_and, 24914}, // __builtin_HEXAGON_S2_asr_i_p_and
+      {Intrinsic::hexagon_S2_asr_i_p_nac, 24947}, // __builtin_HEXAGON_S2_asr_i_p_nac
+      {Intrinsic::hexagon_S2_asr_i_p_or, 24980}, // __builtin_HEXAGON_S2_asr_i_p_or
+      {Intrinsic::hexagon_S2_asr_i_p_rnd, 25012}, // __builtin_HEXAGON_S2_asr_i_p_rnd
+      {Intrinsic::hexagon_S2_asr_i_p_rnd_goodsyntax, 25045}, // __builtin_HEXAGON_S2_asr_i_p_rnd_goodsyntax
+      {Intrinsic::hexagon_S2_asr_i_r, 25089}, // __builtin_HEXAGON_S2_asr_i_r
+      {Intrinsic::hexagon_S2_asr_i_r_acc, 25118}, // __builtin_HEXAGON_S2_asr_i_r_acc
+      {Intrinsic::hexagon_S2_asr_i_r_and, 25151}, // __builtin_HEXAGON_S2_asr_i_r_and
+      {Intrinsic::hexagon_S2_asr_i_r_nac, 25184}, // __builtin_HEXAGON_S2_asr_i_r_nac
+      {Intrinsic::hexagon_S2_asr_i_r_or, 25217}, // __builtin_HEXAGON_S2_asr_i_r_or
+      {Intrinsic::hexagon_S2_asr_i_r_rnd, 25249}, // __builtin_HEXAGON_S2_asr_i_r_rnd
+      {Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax, 25282}, // __builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax
+      {Intrinsic::hexagon_S2_asr_i_svw_trun, 25326}, // __builtin_HEXAGON_S2_asr_i_svw_trun
+      {Intrinsic::hexagon_S2_asr_i_vh, 25362}, // __builtin_HEXAGON_S2_asr_i_vh
+      {Intrinsic::hexagon_S2_asr_i_vw, 25392}, // __builtin_HEXAGON_S2_asr_i_vw
+      {Intrinsic::hexagon_S2_asr_r_p, 25422}, // __builtin_HEXAGON_S2_asr_r_p
+      {Intrinsic::hexagon_S2_asr_r_p_acc, 25451}, // __builtin_HEXAGON_S2_asr_r_p_acc
+      {Intrinsic::hexagon_S2_asr_r_p_and, 25484}, // __builtin_HEXAGON_S2_asr_r_p_and
+      {Intrinsic::hexagon_S2_asr_r_p_nac, 25517}, // __builtin_HEXAGON_S2_asr_r_p_nac
+      {Intrinsic::hexagon_S2_asr_r_p_or, 25550}, // __builtin_HEXAGON_S2_asr_r_p_or
+      {Intrinsic::hexagon_S2_asr_r_p_xor, 25582}, // __builtin_HEXAGON_S2_asr_r_p_xor
+      {Intrinsic::hexagon_S2_asr_r_r, 25615}, // __builtin_HEXAGON_S2_asr_r_r
+      {Intrinsic::hexagon_S2_asr_r_r_acc, 25644}, // __builtin_HEXAGON_S2_asr_r_r_acc
+      {Intrinsic::hexagon_S2_asr_r_r_and, 25677}, // __builtin_HEXAGON_S2_asr_r_r_and
+      {Intrinsic::hexagon_S2_asr_r_r_nac, 25710}, // __builtin_HEXAGON_S2_asr_r_r_nac
+      {Intrinsic::hexagon_S2_asr_r_r_or, 25743}, // __builtin_HEXAGON_S2_asr_r_r_or
+      {Intrinsic::hexagon_S2_asr_r_r_sat, 25775}, // __builtin_HEXAGON_S2_asr_r_r_sat
+      {Intrinsic::hexagon_S2_asr_r_svw_trun, 25808}, // __builtin_HEXAGON_S2_asr_r_svw_trun
+      {Intrinsic::hexagon_S2_asr_r_vh, 25844}, // __builtin_HEXAGON_S2_asr_r_vh
+      {Intrinsic::hexagon_S2_asr_r_vw, 25874}, // __builtin_HEXAGON_S2_asr_r_vw
+      {Intrinsic::hexagon_S2_brev, 25904}, // __builtin_HEXAGON_S2_brev
+      {Intrinsic::hexagon_S2_brevp, 25930}, // __builtin_HEXAGON_S2_brevp
+      {Intrinsic::hexagon_S2_cabacencbin, 25957}, // __builtin_HEXAGON_S2_cabacencbin
+      {Intrinsic::hexagon_S2_cl0, 25990}, // __builtin_HEXAGON_S2_cl0
+      {Intrinsic::hexagon_S2_cl0p, 26015}, // __builtin_HEXAGON_S2_cl0p
+      {Intrinsic::hexagon_S2_cl1, 26041}, // __builtin_HEXAGON_S2_cl1
+      {Intrinsic::hexagon_S2_cl1p, 26066}, // __builtin_HEXAGON_S2_cl1p
+      {Intrinsic::hexagon_S2_clb, 26092}, // __builtin_HEXAGON_S2_clb
+      {Intrinsic::hexagon_S2_clbnorm, 26117}, // __builtin_HEXAGON_S2_clbnorm
+      {Intrinsic::hexagon_S2_clbp, 26146}, // __builtin_HEXAGON_S2_clbp
+      {Intrinsic::hexagon_S2_clrbit_i, 26172}, // __builtin_HEXAGON_S2_clrbit_i
+      {Intrinsic::hexagon_S2_clrbit_r, 26202}, // __builtin_HEXAGON_S2_clrbit_r
+      {Intrinsic::hexagon_S2_ct0, 26232}, // __builtin_HEXAGON_S2_ct0
+      {Intrinsic::hexagon_S2_ct0p, 26257}, // __builtin_HEXAGON_S2_ct0p
+      {Intrinsic::hexagon_S2_ct1, 26283}, // __builtin_HEXAGON_S2_ct1
+      {Intrinsic::hexagon_S2_ct1p, 26308}, // __builtin_HEXAGON_S2_ct1p
+      {Intrinsic::hexagon_S2_deinterleave, 26334}, // __builtin_HEXAGON_S2_deinterleave
+      {Intrinsic::hexagon_S2_extractu, 26368}, // __builtin_HEXAGON_S2_extractu
+      {Intrinsic::hexagon_S2_extractu_rp, 26398}, // __builtin_HEXAGON_S2_extractu_rp
+      {Intrinsic::hexagon_S2_extractup, 26431}, // __builtin_HEXAGON_S2_extractup
+      {Intrinsic::hexagon_S2_extractup_rp, 26462}, // __builtin_HEXAGON_S2_extractup_rp
+      {Intrinsic::hexagon_S2_insert, 26496}, // __builtin_HEXAGON_S2_insert
+      {Intrinsic::hexagon_S2_insert_rp, 26524}, // __builtin_HEXAGON_S2_insert_rp
+      {Intrinsic::hexagon_S2_insertp, 26555}, // __builtin_HEXAGON_S2_insertp
+      {Intrinsic::hexagon_S2_insertp_rp, 26584}, // __builtin_HEXAGON_S2_insertp_rp
+      {Intrinsic::hexagon_S2_interleave, 26616}, // __builtin_HEXAGON_S2_interleave
+      {Intrinsic::hexagon_S2_lfsp, 26648}, // __builtin_HEXAGON_S2_lfsp
+      {Intrinsic::hexagon_S2_lsl_r_p, 26674}, // __builtin_HEXAGON_S2_lsl_r_p
+      {Intrinsic::hexagon_S2_lsl_r_p_acc, 26703}, // __builtin_HEXAGON_S2_lsl_r_p_acc
+      {Intrinsic::hexagon_S2_lsl_r_p_and, 26736}, // __builtin_HEXAGON_S2_lsl_r_p_and
+      {Intrinsic::hexagon_S2_lsl_r_p_nac, 26769}, // __builtin_HEXAGON_S2_lsl_r_p_nac
+      {Intrinsic::hexagon_S2_lsl_r_p_or, 26802}, // __builtin_HEXAGON_S2_lsl_r_p_or
+      {Intrinsic::hexagon_S2_lsl_r_p_xor, 26834}, // __builtin_HEXAGON_S2_lsl_r_p_xor
+      {Intrinsic::hexagon_S2_lsl_r_r, 26867}, // __builtin_HEXAGON_S2_lsl_r_r
+      {Intrinsic::hexagon_S2_lsl_r_r_acc, 26896}, // __builtin_HEXAGON_S2_lsl_r_r_acc
+      {Intrinsic::hexagon_S2_lsl_r_r_and, 26929}, // __builtin_HEXAGON_S2_lsl_r_r_and
+      {Intrinsic::hexagon_S2_lsl_r_r_nac, 26962}, // __builtin_HEXAGON_S2_lsl_r_r_nac
+      {Intrinsic::hexagon_S2_lsl_r_r_or, 26995}, // __builtin_HEXAGON_S2_lsl_r_r_or
+      {Intrinsic::hexagon_S2_lsl_r_vh, 27027}, // __builtin_HEXAGON_S2_lsl_r_vh
+      {Intrinsic::hexagon_S2_lsl_r_vw, 27057}, // __builtin_HEXAGON_S2_lsl_r_vw
+      {Intrinsic::hexagon_S2_lsr_i_p, 27087}, // __builtin_HEXAGON_S2_lsr_i_p
+      {Intrinsic::hexagon_S2_lsr_i_p_acc, 27116}, // __builtin_HEXAGON_S2_lsr_i_p_acc
+      {Intrinsic::hexagon_S2_lsr_i_p_and, 27149}, // __builtin_HEXAGON_S2_lsr_i_p_and
+      {Intrinsic::hexagon_S2_lsr_i_p_nac, 27182}, // __builtin_HEXAGON_S2_lsr_i_p_nac
+      {Intrinsic::hexagon_S2_lsr_i_p_or, 27215}, // __builtin_HEXAGON_S2_lsr_i_p_or
+      {Intrinsic::hexagon_S2_lsr_i_p_xacc, 27247}, // __builtin_HEXAGON_S2_lsr_i_p_xacc
+      {Intrinsic::hexagon_S2_lsr_i_r, 27281}, // __builtin_HEXAGON_S2_lsr_i_r
+      {Intrinsic::hexagon_S2_lsr_i_r_acc, 27310}, // __builtin_HEXAGON_S2_lsr_i_r_acc
+      {Intrinsic::hexagon_S2_lsr_i_r_and, 27343}, // __builtin_HEXAGON_S2_lsr_i_r_and
+      {Intrinsic::hexagon_S2_lsr_i_r_nac, 27376}, // __builtin_HEXAGON_S2_lsr_i_r_nac
+      {Intrinsic::hexagon_S2_lsr_i_r_or, 27409}, // __builtin_HEXAGON_S2_lsr_i_r_or
+      {Intrinsic::hexagon_S2_lsr_i_r_xacc, 27441}, // __builtin_HEXAGON_S2_lsr_i_r_xacc
+      {Intrinsic::hexagon_S2_lsr_i_vh, 27475}, // __builtin_HEXAGON_S2_lsr_i_vh
+      {Intrinsic::hexagon_S2_lsr_i_vw, 27505}, // __builtin_HEXAGON_S2_lsr_i_vw
+      {Intrinsic::hexagon_S2_lsr_r_p, 27535}, // __builtin_HEXAGON_S2_lsr_r_p
+      {Intrinsic::hexagon_S2_lsr_r_p_acc, 27564}, // __builtin_HEXAGON_S2_lsr_r_p_acc
+      {Intrinsic::hexagon_S2_lsr_r_p_and, 27597}, // __builtin_HEXAGON_S2_lsr_r_p_and
+      {Intrinsic::hexagon_S2_lsr_r_p_nac, 27630}, // __builtin_HEXAGON_S2_lsr_r_p_nac
+      {Intrinsic::hexagon_S2_lsr_r_p_or, 27663}, // __builtin_HEXAGON_S2_lsr_r_p_or
+      {Intrinsic::hexagon_S2_lsr_r_p_xor, 27695}, // __builtin_HEXAGON_S2_lsr_r_p_xor
+      {Intrinsic::hexagon_S2_lsr_r_r, 27728}, // __builtin_HEXAGON_S2_lsr_r_r
+      {Intrinsic::hexagon_S2_lsr_r_r_acc, 27757}, // __builtin_HEXAGON_S2_lsr_r_r_acc
+      {Intrinsic::hexagon_S2_lsr_r_r_and, 27790}, // __builtin_HEXAGON_S2_lsr_r_r_and
+      {Intrinsic::hexagon_S2_lsr_r_r_nac, 27823}, // __builtin_HEXAGON_S2_lsr_r_r_nac
+      {Intrinsic::hexagon_S2_lsr_r_r_or, 27856}, // __builtin_HEXAGON_S2_lsr_r_r_or
+      {Intrinsic::hexagon_S2_lsr_r_vh, 27888}, // __builtin_HEXAGON_S2_lsr_r_vh
+      {Intrinsic::hexagon_S2_lsr_r_vw, 27918}, // __builtin_HEXAGON_S2_lsr_r_vw
+      {Intrinsic::hexagon_S2_packhl, 27948}, // __builtin_HEXAGON_S2_packhl
+      {Intrinsic::hexagon_S2_parityp, 27976}, // __builtin_HEXAGON_S2_parityp
+      {Intrinsic::hexagon_S2_setbit_i, 28005}, // __builtin_HEXAGON_S2_setbit_i
+      {Intrinsic::hexagon_S2_setbit_r, 28035}, // __builtin_HEXAGON_S2_setbit_r
+      {Intrinsic::hexagon_S2_shuffeb, 28065}, // __builtin_HEXAGON_S2_shuffeb
+      {Intrinsic::hexagon_S2_shuffeh, 28094}, // __builtin_HEXAGON_S2_shuffeh
+      {Intrinsic::hexagon_S2_shuffob, 28123}, // __builtin_HEXAGON_S2_shuffob
+      {Intrinsic::hexagon_S2_shuffoh, 28152}, // __builtin_HEXAGON_S2_shuffoh
+      {Intrinsic::hexagon_S2_storew_locked, 28278}, // __builtin_HEXAGON_S2_storew_locked
+      {Intrinsic::hexagon_S2_svsathb, 28313}, // __builtin_HEXAGON_S2_svsathb
+      {Intrinsic::hexagon_S2_svsathub, 28342}, // __builtin_HEXAGON_S2_svsathub
+      {Intrinsic::hexagon_S2_tableidxb_goodsyntax, 28372}, // __builtin_HEXAGON_S2_tableidxb_goodsyntax
+      {Intrinsic::hexagon_S2_tableidxd_goodsyntax, 28414}, // __builtin_HEXAGON_S2_tableidxd_goodsyntax
+      {Intrinsic::hexagon_S2_tableidxh_goodsyntax, 28456}, // __builtin_HEXAGON_S2_tableidxh_goodsyntax
+      {Intrinsic::hexagon_S2_tableidxw_goodsyntax, 28498}, // __builtin_HEXAGON_S2_tableidxw_goodsyntax
+      {Intrinsic::hexagon_S2_togglebit_i, 28540}, // __builtin_HEXAGON_S2_togglebit_i
+      {Intrinsic::hexagon_S2_togglebit_r, 28573}, // __builtin_HEXAGON_S2_togglebit_r
+      {Intrinsic::hexagon_S2_tstbit_i, 28606}, // __builtin_HEXAGON_S2_tstbit_i
+      {Intrinsic::hexagon_S2_tstbit_r, 28636}, // __builtin_HEXAGON_S2_tstbit_r
+      {Intrinsic::hexagon_S2_valignib, 28666}, // __builtin_HEXAGON_S2_valignib
+      {Intrinsic::hexagon_S2_valignrb, 28696}, // __builtin_HEXAGON_S2_valignrb
+      {Intrinsic::hexagon_S2_vcnegh, 28726}, // __builtin_HEXAGON_S2_vcnegh
+      {Intrinsic::hexagon_S2_vcrotate, 28754}, // __builtin_HEXAGON_S2_vcrotate
+      {Intrinsic::hexagon_S2_vrcnegh, 28784}, // __builtin_HEXAGON_S2_vrcnegh
+      {Intrinsic::hexagon_S2_vrndpackwh, 28813}, // __builtin_HEXAGON_S2_vrndpackwh
+      {Intrinsic::hexagon_S2_vrndpackwhs, 28845}, // __builtin_HEXAGON_S2_vrndpackwhs
+      {Intrinsic::hexagon_S2_vsathb, 28878}, // __builtin_HEXAGON_S2_vsathb
+      {Intrinsic::hexagon_S2_vsathb_nopack, 28906}, // __builtin_HEXAGON_S2_vsathb_nopack
+      {Intrinsic::hexagon_S2_vsathub, 28941}, // __builtin_HEXAGON_S2_vsathub
+      {Intrinsic::hexagon_S2_vsathub_nopack, 28970}, // __builtin_HEXAGON_S2_vsathub_nopack
+      {Intrinsic::hexagon_S2_vsatwh, 29006}, // __builtin_HEXAGON_S2_vsatwh
+      {Intrinsic::hexagon_S2_vsatwh_nopack, 29034}, // __builtin_HEXAGON_S2_vsatwh_nopack
+      {Intrinsic::hexagon_S2_vsatwuh, 29069}, // __builtin_HEXAGON_S2_vsatwuh
+      {Intrinsic::hexagon_S2_vsatwuh_nopack, 29098}, // __builtin_HEXAGON_S2_vsatwuh_nopack
+      {Intrinsic::hexagon_S2_vsplatrb, 29134}, // __builtin_HEXAGON_S2_vsplatrb
+      {Intrinsic::hexagon_S2_vsplatrh, 29164}, // __builtin_HEXAGON_S2_vsplatrh
+      {Intrinsic::hexagon_S2_vspliceib, 29194}, // __builtin_HEXAGON_S2_vspliceib
+      {Intrinsic::hexagon_S2_vsplicerb, 29225}, // __builtin_HEXAGON_S2_vsplicerb
+      {Intrinsic::hexagon_S2_vsxtbh, 29256}, // __builtin_HEXAGON_S2_vsxtbh
+      {Intrinsic::hexagon_S2_vsxthw, 29284}, // __builtin_HEXAGON_S2_vsxthw
+      {Intrinsic::hexagon_S2_vtrunehb, 29312}, // __builtin_HEXAGON_S2_vtrunehb
+      {Intrinsic::hexagon_S2_vtrunewh, 29342}, // __builtin_HEXAGON_S2_vtrunewh
+      {Intrinsic::hexagon_S2_vtrunohb, 29372}, // __builtin_HEXAGON_S2_vtrunohb
+      {Intrinsic::hexagon_S2_vtrunowh, 29402}, // __builtin_HEXAGON_S2_vtrunowh
+      {Intrinsic::hexagon_S2_vzxtbh, 29432}, // __builtin_HEXAGON_S2_vzxtbh
+      {Intrinsic::hexagon_S2_vzxthw, 29460}, // __builtin_HEXAGON_S2_vzxthw
+      {Intrinsic::hexagon_S4_addaddi, 29488}, // __builtin_HEXAGON_S4_addaddi
+      {Intrinsic::hexagon_S4_addi_asl_ri, 29517}, // __builtin_HEXAGON_S4_addi_asl_ri
+      {Intrinsic::hexagon_S4_addi_lsr_ri, 29550}, // __builtin_HEXAGON_S4_addi_lsr_ri
+      {Intrinsic::hexagon_S4_andi_asl_ri, 29583}, // __builtin_HEXAGON_S4_andi_asl_ri
+      {Intrinsic::hexagon_S4_andi_lsr_ri, 29616}, // __builtin_HEXAGON_S4_andi_lsr_ri
+      {Intrinsic::hexagon_S4_clbaddi, 29649}, // __builtin_HEXAGON_S4_clbaddi
+      {Intrinsic::hexagon_S4_clbpaddi, 29678}, // __builtin_HEXAGON_S4_clbpaddi
+      {Intrinsic::hexagon_S4_clbpnorm, 29708}, // __builtin_HEXAGON_S4_clbpnorm
+      {Intrinsic::hexagon_S4_extract, 29738}, // __builtin_HEXAGON_S4_extract
+      {Intrinsic::hexagon_S4_extract_rp, 29767}, // __builtin_HEXAGON_S4_extract_rp
+      {Intrinsic::hexagon_S4_extractp, 29799}, // __builtin_HEXAGON_S4_extractp
+      {Intrinsic::hexagon_S4_extractp_rp, 29829}, // __builtin_HEXAGON_S4_extractp_rp
+      {Intrinsic::hexagon_S4_lsli, 29862}, // __builtin_HEXAGON_S4_lsli
+      {Intrinsic::hexagon_S4_ntstbit_i, 29888}, // __builtin_HEXAGON_S4_ntstbit_i
+      {Intrinsic::hexagon_S4_ntstbit_r, 29919}, // __builtin_HEXAGON_S4_ntstbit_r
+      {Intrinsic::hexagon_S4_or_andi, 29950}, // __builtin_HEXAGON_S4_or_andi
+      {Intrinsic::hexagon_S4_or_andix, 29979}, // __builtin_HEXAGON_S4_or_andix
+      {Intrinsic::hexagon_S4_or_ori, 30009}, // __builtin_HEXAGON_S4_or_ori
+      {Intrinsic::hexagon_S4_ori_asl_ri, 30037}, // __builtin_HEXAGON_S4_ori_asl_ri
+      {Intrinsic::hexagon_S4_ori_lsr_ri, 30069}, // __builtin_HEXAGON_S4_ori_lsr_ri
+      {Intrinsic::hexagon_S4_parity, 30101}, // __builtin_HEXAGON_S4_parity
+      {Intrinsic::hexagon_S4_stored_locked, 30129}, // __builtin_HEXAGON_S4_stored_locked
+      {Intrinsic::hexagon_S4_subaddi, 30164}, // __builtin_HEXAGON_S4_subaddi
+      {Intrinsic::hexagon_S4_subi_asl_ri, 30193}, // __builtin_HEXAGON_S4_subi_asl_ri
+      {Intrinsic::hexagon_S4_subi_lsr_ri, 30226}, // __builtin_HEXAGON_S4_subi_lsr_ri
+      {Intrinsic::hexagon_S4_vrcrotate, 30259}, // __builtin_HEXAGON_S4_vrcrotate
+      {Intrinsic::hexagon_S4_vrcrotate_acc, 30290}, // __builtin_HEXAGON_S4_vrcrotate_acc
+      {Intrinsic::hexagon_S4_vxaddsubh, 30325}, // __builtin_HEXAGON_S4_vxaddsubh
+      {Intrinsic::hexagon_S4_vxaddsubhr, 30356}, // __builtin_HEXAGON_S4_vxaddsubhr
+      {Intrinsic::hexagon_S4_vxaddsubw, 30388}, // __builtin_HEXAGON_S4_vxaddsubw
+      {Intrinsic::hexagon_S4_vxsubaddh, 30419}, // __builtin_HEXAGON_S4_vxsubaddh
+      {Intrinsic::hexagon_S4_vxsubaddhr, 30450}, // __builtin_HEXAGON_S4_vxsubaddhr
+      {Intrinsic::hexagon_S4_vxsubaddw, 30482}, // __builtin_HEXAGON_S4_vxsubaddw
+      {Intrinsic::hexagon_S5_asrhub_rnd_sat_goodsyntax, 30513}, // __builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax
+      {Intrinsic::hexagon_S5_asrhub_sat, 30560}, // __builtin_HEXAGON_S5_asrhub_sat
+      {Intrinsic::hexagon_S5_popcountp, 30592}, // __builtin_HEXAGON_S5_popcountp
+      {Intrinsic::hexagon_S5_vasrhrnd_goodsyntax, 30623}, // __builtin_HEXAGON_S5_vasrhrnd_goodsyntax
+      {Intrinsic::hexagon_S6_rol_i_p, 30664}, // __builtin_HEXAGON_S6_rol_i_p
+      {Intrinsic::hexagon_S6_rol_i_p_acc, 30693}, // __builtin_HEXAGON_S6_rol_i_p_acc
+      {Intrinsic::hexagon_S6_rol_i_p_and, 30726}, // __builtin_HEXAGON_S6_rol_i_p_and
+      {Intrinsic::hexagon_S6_rol_i_p_nac, 30759}, // __builtin_HEXAGON_S6_rol_i_p_nac
+      {Intrinsic::hexagon_S6_rol_i_p_or, 30792}, // __builtin_HEXAGON_S6_rol_i_p_or
+      {Intrinsic::hexagon_S6_rol_i_p_xacc, 30824}, // __builtin_HEXAGON_S6_rol_i_p_xacc
+      {Intrinsic::hexagon_S6_rol_i_r, 30858}, // __builtin_HEXAGON_S6_rol_i_r
+      {Intrinsic::hexagon_S6_rol_i_r_acc, 30887}, // __builtin_HEXAGON_S6_rol_i_r_acc
+      {Intrinsic::hexagon_S6_rol_i_r_and, 30920}, // __builtin_HEXAGON_S6_rol_i_r_and
+      {Intrinsic::hexagon_S6_rol_i_r_nac, 30953}, // __builtin_HEXAGON_S6_rol_i_r_nac
+      {Intrinsic::hexagon_S6_rol_i_r_or, 30986}, // __builtin_HEXAGON_S6_rol_i_r_or
+      {Intrinsic::hexagon_S6_rol_i_r_xacc, 31018}, // __builtin_HEXAGON_S6_rol_i_r_xacc
+      {Intrinsic::hexagon_S6_vsplatrbp, 31052}, // __builtin_HEXAGON_S6_vsplatrbp
+      {Intrinsic::hexagon_S6_vtrunehb_ppp, 31083}, // __builtin_HEXAGON_S6_vtrunehb_ppp
+      {Intrinsic::hexagon_S6_vtrunohb_ppp, 31117}, // __builtin_HEXAGON_S6_vtrunohb_ppp
+      {Intrinsic::hexagon_V6_extractw, 31151}, // __builtin_HEXAGON_V6_extractw
+      {Intrinsic::hexagon_V6_extractw_128B, 31181}, // __builtin_HEXAGON_V6_extractw_128B
+      {Intrinsic::hexagon_V6_hi, 31216}, // __builtin_HEXAGON_V6_hi
+      {Intrinsic::hexagon_V6_hi_128B, 31240}, // __builtin_HEXAGON_V6_hi_128B
+      {Intrinsic::hexagon_V6_lo, 31269}, // __builtin_HEXAGON_V6_lo
+      {Intrinsic::hexagon_V6_lo_128B, 31293}, // __builtin_HEXAGON_V6_lo_128B
+      {Intrinsic::hexagon_V6_lvsplatb, 31322}, // __builtin_HEXAGON_V6_lvsplatb
+      {Intrinsic::hexagon_V6_lvsplatb_128B, 31352}, // __builtin_HEXAGON_V6_lvsplatb_128B
+      {Intrinsic::hexagon_V6_lvsplath, 31387}, // __builtin_HEXAGON_V6_lvsplath
+      {Intrinsic::hexagon_V6_lvsplath_128B, 31417}, // __builtin_HEXAGON_V6_lvsplath_128B
+      {Intrinsic::hexagon_V6_lvsplatw, 31452}, // __builtin_HEXAGON_V6_lvsplatw
+      {Intrinsic::hexagon_V6_lvsplatw_128B, 31482}, // __builtin_HEXAGON_V6_lvsplatw_128B
+      {Intrinsic::hexagon_V6_pred_and, 31517}, // __builtin_HEXAGON_V6_pred_and
+      {Intrinsic::hexagon_V6_pred_and_128B, 31547}, // __builtin_HEXAGON_V6_pred_and_128B
+      {Intrinsic::hexagon_V6_pred_and_n, 31582}, // __builtin_HEXAGON_V6_pred_and_n
+      {Intrinsic::hexagon_V6_pred_and_n_128B, 31614}, // __builtin_HEXAGON_V6_pred_and_n_128B
+      {Intrinsic::hexagon_V6_pred_not, 31651}, // __builtin_HEXAGON_V6_pred_not
+      {Intrinsic::hexagon_V6_pred_not_128B, 31681}, // __builtin_HEXAGON_V6_pred_not_128B
+      {Intrinsic::hexagon_V6_pred_or, 31716}, // __builtin_HEXAGON_V6_pred_or
+      {Intrinsic::hexagon_V6_pred_or_128B, 31745}, // __builtin_HEXAGON_V6_pred_or_128B
+      {Intrinsic::hexagon_V6_pred_or_n, 31779}, // __builtin_HEXAGON_V6_pred_or_n
+      {Intrinsic::hexagon_V6_pred_or_n_128B, 31810}, // __builtin_HEXAGON_V6_pred_or_n_128B
+      {Intrinsic::hexagon_V6_pred_scalar2, 31846}, // __builtin_HEXAGON_V6_pred_scalar2
+      {Intrinsic::hexagon_V6_pred_scalar2_128B, 31880}, // __builtin_HEXAGON_V6_pred_scalar2_128B
+      {Intrinsic::hexagon_V6_pred_scalar2v2, 31919}, // __builtin_HEXAGON_V6_pred_scalar2v2
+      {Intrinsic::hexagon_V6_pred_scalar2v2_128B, 31955}, // __builtin_HEXAGON_V6_pred_scalar2v2_128B
+      {Intrinsic::hexagon_V6_pred_xor, 31996}, // __builtin_HEXAGON_V6_pred_xor
+      {Intrinsic::hexagon_V6_pred_xor_128B, 32026}, // __builtin_HEXAGON_V6_pred_xor_128B
+      {Intrinsic::hexagon_V6_shuffeqh, 32061}, // __builtin_HEXAGON_V6_shuffeqh
+      {Intrinsic::hexagon_V6_shuffeqh_128B, 32091}, // __builtin_HEXAGON_V6_shuffeqh_128B
+      {Intrinsic::hexagon_V6_shuffeqw, 32126}, // __builtin_HEXAGON_V6_shuffeqw
+      {Intrinsic::hexagon_V6_shuffeqw_128B, 32156}, // __builtin_HEXAGON_V6_shuffeqw_128B
+      {Intrinsic::hexagon_V6_vS32b_nqpred_ai, 32191}, // __builtin_HEXAGON_V6_vS32b_nqpred_ai
+      {Intrinsic::hexagon_V6_vS32b_nqpred_ai_128B, 32228}, // __builtin_HEXAGON_V6_vS32b_nqpred_ai_128B
+      {Intrinsic::hexagon_V6_vS32b_nt_nqpred_ai, 32270}, // __builtin_HEXAGON_V6_vS32b_nt_nqpred_ai
+      {Intrinsic::hexagon_V6_vS32b_nt_nqpred_ai_128B, 32310}, // __builtin_HEXAGON_V6_vS32b_nt_nqpred_ai_128B
+      {Intrinsic::hexagon_V6_vS32b_nt_qpred_ai, 32355}, // __builtin_HEXAGON_V6_vS32b_nt_qpred_ai
+      {Intrinsic::hexagon_V6_vS32b_nt_qpred_ai_128B, 32394}, // __builtin_HEXAGON_V6_vS32b_nt_qpred_ai_128B
+      {Intrinsic::hexagon_V6_vS32b_qpred_ai, 32438}, // __builtin_HEXAGON_V6_vS32b_qpred_ai
+      {Intrinsic::hexagon_V6_vS32b_qpred_ai_128B, 32474}, // __builtin_HEXAGON_V6_vS32b_qpred_ai_128B
+      {Intrinsic::hexagon_V6_vabsb, 32515}, // __builtin_HEXAGON_V6_vabsb
+      {Intrinsic::hexagon_V6_vabsb_128B, 32542}, // __builtin_HEXAGON_V6_vabsb_128B
+      {Intrinsic::hexagon_V6_vabsb_sat, 32574}, // __builtin_HEXAGON_V6_vabsb_sat
+      {Intrinsic::hexagon_V6_vabsb_sat_128B, 32605}, // __builtin_HEXAGON_V6_vabsb_sat_128B
+      {Intrinsic::hexagon_V6_vabsdiffh, 32641}, // __builtin_HEXAGON_V6_vabsdiffh
+      {Intrinsic::hexagon_V6_vabsdiffh_128B, 32672}, // __builtin_HEXAGON_V6_vabsdiffh_128B
+      {Intrinsic::hexagon_V6_vabsdiffub, 32708}, // __builtin_HEXAGON_V6_vabsdiffub
+      {Intrinsic::hexagon_V6_vabsdiffub_128B, 32740}, // __builtin_HEXAGON_V6_vabsdiffub_128B
+      {Intrinsic::hexagon_V6_vabsdiffuh, 32777}, // __builtin_HEXAGON_V6_vabsdiffuh
+      {Intrinsic::hexagon_V6_vabsdiffuh_128B, 32809}, // __builtin_HEXAGON_V6_vabsdiffuh_128B
+      {Intrinsic::hexagon_V6_vabsdiffw, 32846}, // __builtin_HEXAGON_V6_vabsdiffw
+      {Intrinsic::hexagon_V6_vabsdiffw_128B, 32877}, // __builtin_HEXAGON_V6_vabsdiffw_128B
+      {Intrinsic::hexagon_V6_vabsh, 32913}, // __builtin_HEXAGON_V6_vabsh
+      {Intrinsic::hexagon_V6_vabsh_128B, 32940}, // __builtin_HEXAGON_V6_vabsh_128B
+      {Intrinsic::hexagon_V6_vabsh_sat, 32972}, // __builtin_HEXAGON_V6_vabsh_sat
+      {Intrinsic::hexagon_V6_vabsh_sat_128B, 33003}, // __builtin_HEXAGON_V6_vabsh_sat_128B
+      {Intrinsic::hexagon_V6_vabsw, 33039}, // __builtin_HEXAGON_V6_vabsw
+      {Intrinsic::hexagon_V6_vabsw_128B, 33066}, // __builtin_HEXAGON_V6_vabsw_128B
+      {Intrinsic::hexagon_V6_vabsw_sat, 33098}, // __builtin_HEXAGON_V6_vabsw_sat
+      {Intrinsic::hexagon_V6_vabsw_sat_128B, 33129}, // __builtin_HEXAGON_V6_vabsw_sat_128B
+      {Intrinsic::hexagon_V6_vaddb, 33165}, // __builtin_HEXAGON_V6_vaddb
+      {Intrinsic::hexagon_V6_vaddb_128B, 33192}, // __builtin_HEXAGON_V6_vaddb_128B
+      {Intrinsic::hexagon_V6_vaddb_dv, 33224}, // __builtin_HEXAGON_V6_vaddb_dv
+      {Intrinsic::hexagon_V6_vaddb_dv_128B, 33254}, // __builtin_HEXAGON_V6_vaddb_dv_128B
+      {Intrinsic::hexagon_V6_vaddbnq, 33289}, // __builtin_HEXAGON_V6_vaddbnq
+      {Intrinsic::hexagon_V6_vaddbnq_128B, 33318}, // __builtin_HEXAGON_V6_vaddbnq_128B
+      {Intrinsic::hexagon_V6_vaddbq, 33352}, // __builtin_HEXAGON_V6_vaddbq
+      {Intrinsic::hexagon_V6_vaddbq_128B, 33380}, // __builtin_HEXAGON_V6_vaddbq_128B
+      {Intrinsic::hexagon_V6_vaddbsat, 33413}, // __builtin_HEXAGON_V6_vaddbsat
+      {Intrinsic::hexagon_V6_vaddbsat_128B, 33443}, // __builtin_HEXAGON_V6_vaddbsat_128B
+      {Intrinsic::hexagon_V6_vaddbsat_dv, 33478}, // __builtin_HEXAGON_V6_vaddbsat_dv
+      {Intrinsic::hexagon_V6_vaddbsat_dv_128B, 33511}, // __builtin_HEXAGON_V6_vaddbsat_dv_128B
+      {Intrinsic::hexagon_V6_vaddclbh, 33616}, // __builtin_HEXAGON_V6_vaddclbh
+      {Intrinsic::hexagon_V6_vaddclbh_128B, 33646}, // __builtin_HEXAGON_V6_vaddclbh_128B
+      {Intrinsic::hexagon_V6_vaddclbw, 33681}, // __builtin_HEXAGON_V6_vaddclbw
+      {Intrinsic::hexagon_V6_vaddclbw_128B, 33711}, // __builtin_HEXAGON_V6_vaddclbw_128B
+      {Intrinsic::hexagon_V6_vaddh, 33746}, // __builtin_HEXAGON_V6_vaddh
+      {Intrinsic::hexagon_V6_vaddh_128B, 33773}, // __builtin_HEXAGON_V6_vaddh_128B
+      {Intrinsic::hexagon_V6_vaddh_dv, 33805}, // __builtin_HEXAGON_V6_vaddh_dv
+      {Intrinsic::hexagon_V6_vaddh_dv_128B, 33835}, // __builtin_HEXAGON_V6_vaddh_dv_128B
+      {Intrinsic::hexagon_V6_vaddhnq, 33870}, // __builtin_HEXAGON_V6_vaddhnq
+      {Intrinsic::hexagon_V6_vaddhnq_128B, 33899}, // __builtin_HEXAGON_V6_vaddhnq_128B
+      {Intrinsic::hexagon_V6_vaddhq, 33933}, // __builtin_HEXAGON_V6_vaddhq
+      {Intrinsic::hexagon_V6_vaddhq_128B, 33961}, // __builtin_HEXAGON_V6_vaddhq_128B
+      {Intrinsic::hexagon_V6_vaddhsat, 33994}, // __builtin_HEXAGON_V6_vaddhsat
+      {Intrinsic::hexagon_V6_vaddhsat_128B, 34024}, // __builtin_HEXAGON_V6_vaddhsat_128B
+      {Intrinsic::hexagon_V6_vaddhsat_dv, 34059}, // __builtin_HEXAGON_V6_vaddhsat_dv
+      {Intrinsic::hexagon_V6_vaddhsat_dv_128B, 34092}, // __builtin_HEXAGON_V6_vaddhsat_dv_128B
+      {Intrinsic::hexagon_V6_vaddhw, 34130}, // __builtin_HEXAGON_V6_vaddhw
+      {Intrinsic::hexagon_V6_vaddhw_128B, 34158}, // __builtin_HEXAGON_V6_vaddhw_128B
+      {Intrinsic::hexagon_V6_vaddhw_acc, 34191}, // __builtin_HEXAGON_V6_vaddhw_acc
+      {Intrinsic::hexagon_V6_vaddhw_acc_128B, 34223}, // __builtin_HEXAGON_V6_vaddhw_acc_128B
+      {Intrinsic::hexagon_V6_vaddubh, 34260}, // __builtin_HEXAGON_V6_vaddubh
+      {Intrinsic::hexagon_V6_vaddubh_128B, 34289}, // __builtin_HEXAGON_V6_vaddubh_128B
+      {Intrinsic::hexagon_V6_vaddubh_acc, 34323}, // __builtin_HEXAGON_V6_vaddubh_acc
+      {Intrinsic::hexagon_V6_vaddubh_acc_128B, 34356}, // __builtin_HEXAGON_V6_vaddubh_acc_128B
+      {Intrinsic::hexagon_V6_vaddubsat, 34394}, // __builtin_HEXAGON_V6_vaddubsat
+      {Intrinsic::hexagon_V6_vaddubsat_128B, 34425}, // __builtin_HEXAGON_V6_vaddubsat_128B
+      {Intrinsic::hexagon_V6_vaddubsat_dv, 34461}, // __builtin_HEXAGON_V6_vaddubsat_dv
+      {Intrinsic::hexagon_V6_vaddubsat_dv_128B, 34495}, // __builtin_HEXAGON_V6_vaddubsat_dv_128B
+      {Intrinsic::hexagon_V6_vaddububb_sat, 34534}, // __builtin_HEXAGON_V6_vaddububb_sat
+      {Intrinsic::hexagon_V6_vaddububb_sat_128B, 34569}, // __builtin_HEXAGON_V6_vaddububb_sat_128B
+      {Intrinsic::hexagon_V6_vadduhsat, 34609}, // __builtin_HEXAGON_V6_vadduhsat
+      {Intrinsic::hexagon_V6_vadduhsat_128B, 34640}, // __builtin_HEXAGON_V6_vadduhsat_128B
+      {Intrinsic::hexagon_V6_vadduhsat_dv, 34676}, // __builtin_HEXAGON_V6_vadduhsat_dv
+      {Intrinsic::hexagon_V6_vadduhsat_dv_128B, 34710}, // __builtin_HEXAGON_V6_vadduhsat_dv_128B
+      {Intrinsic::hexagon_V6_vadduhw, 34749}, // __builtin_HEXAGON_V6_vadduhw
+      {Intrinsic::hexagon_V6_vadduhw_128B, 34778}, // __builtin_HEXAGON_V6_vadduhw_128B
+      {Intrinsic::hexagon_V6_vadduhw_acc, 34812}, // __builtin_HEXAGON_V6_vadduhw_acc
+      {Intrinsic::hexagon_V6_vadduhw_acc_128B, 34845}, // __builtin_HEXAGON_V6_vadduhw_acc_128B
+      {Intrinsic::hexagon_V6_vadduwsat, 34883}, // __builtin_HEXAGON_V6_vadduwsat
+      {Intrinsic::hexagon_V6_vadduwsat_128B, 34914}, // __builtin_HEXAGON_V6_vadduwsat_128B
+      {Intrinsic::hexagon_V6_vadduwsat_dv, 34950}, // __builtin_HEXAGON_V6_vadduwsat_dv
+      {Intrinsic::hexagon_V6_vadduwsat_dv_128B, 34984}, // __builtin_HEXAGON_V6_vadduwsat_dv_128B
+      {Intrinsic::hexagon_V6_vaddw, 35023}, // __builtin_HEXAGON_V6_vaddw
+      {Intrinsic::hexagon_V6_vaddw_128B, 35050}, // __builtin_HEXAGON_V6_vaddw_128B
+      {Intrinsic::hexagon_V6_vaddw_dv, 35082}, // __builtin_HEXAGON_V6_vaddw_dv
+      {Intrinsic::hexagon_V6_vaddw_dv_128B, 35112}, // __builtin_HEXAGON_V6_vaddw_dv_128B
+      {Intrinsic::hexagon_V6_vaddwnq, 35147}, // __builtin_HEXAGON_V6_vaddwnq
+      {Intrinsic::hexagon_V6_vaddwnq_128B, 35176}, // __builtin_HEXAGON_V6_vaddwnq_128B
+      {Intrinsic::hexagon_V6_vaddwq, 35210}, // __builtin_HEXAGON_V6_vaddwq
+      {Intrinsic::hexagon_V6_vaddwq_128B, 35238}, // __builtin_HEXAGON_V6_vaddwq_128B
+      {Intrinsic::hexagon_V6_vaddwsat, 35271}, // __builtin_HEXAGON_V6_vaddwsat
+      {Intrinsic::hexagon_V6_vaddwsat_128B, 35301}, // __builtin_HEXAGON_V6_vaddwsat_128B
+      {Intrinsic::hexagon_V6_vaddwsat_dv, 35336}, // __builtin_HEXAGON_V6_vaddwsat_dv
+      {Intrinsic::hexagon_V6_vaddwsat_dv_128B, 35369}, // __builtin_HEXAGON_V6_vaddwsat_dv_128B
+      {Intrinsic::hexagon_V6_valignb, 35407}, // __builtin_HEXAGON_V6_valignb
+      {Intrinsic::hexagon_V6_valignb_128B, 35436}, // __builtin_HEXAGON_V6_valignb_128B
+      {Intrinsic::hexagon_V6_valignbi, 35470}, // __builtin_HEXAGON_V6_valignbi
+      {Intrinsic::hexagon_V6_valignbi_128B, 35500}, // __builtin_HEXAGON_V6_valignbi_128B
+      {Intrinsic::hexagon_V6_vand, 35535}, // __builtin_HEXAGON_V6_vand
+      {Intrinsic::hexagon_V6_vand_128B, 35561}, // __builtin_HEXAGON_V6_vand_128B
+      {Intrinsic::hexagon_V6_vandnqrt, 35592}, // __builtin_HEXAGON_V6_vandnqrt
+      {Intrinsic::hexagon_V6_vandnqrt_128B, 35622}, // __builtin_HEXAGON_V6_vandnqrt_128B
+      {Intrinsic::hexagon_V6_vandnqrt_acc, 35657}, // __builtin_HEXAGON_V6_vandnqrt_acc
+      {Intrinsic::hexagon_V6_vandnqrt_acc_128B, 35691}, // __builtin_HEXAGON_V6_vandnqrt_acc_128B
+      {Intrinsic::hexagon_V6_vandqrt, 35730}, // __builtin_HEXAGON_V6_vandqrt
+      {Intrinsic::hexagon_V6_vandqrt_128B, 35759}, // __builtin_HEXAGON_V6_vandqrt_128B
+      {Intrinsic::hexagon_V6_vandqrt_acc, 35793}, // __builtin_HEXAGON_V6_vandqrt_acc
+      {Intrinsic::hexagon_V6_vandqrt_acc_128B, 35826}, // __builtin_HEXAGON_V6_vandqrt_acc_128B
+      {Intrinsic::hexagon_V6_vandvnqv, 35864}, // __builtin_HEXAGON_V6_vandvnqv
+      {Intrinsic::hexagon_V6_vandvnqv_128B, 35894}, // __builtin_HEXAGON_V6_vandvnqv_128B
+      {Intrinsic::hexagon_V6_vandvqv, 35929}, // __builtin_HEXAGON_V6_vandvqv
+      {Intrinsic::hexagon_V6_vandvqv_128B, 35958}, // __builtin_HEXAGON_V6_vandvqv_128B
+      {Intrinsic::hexagon_V6_vandvrt, 35992}, // __builtin_HEXAGON_V6_vandvrt
+      {Intrinsic::hexagon_V6_vandvrt_128B, 36021}, // __builtin_HEXAGON_V6_vandvrt_128B
+      {Intrinsic::hexagon_V6_vandvrt_acc, 36055}, // __builtin_HEXAGON_V6_vandvrt_acc
+      {Intrinsic::hexagon_V6_vandvrt_acc_128B, 36088}, // __builtin_HEXAGON_V6_vandvrt_acc_128B
+      {Intrinsic::hexagon_V6_vaslh, 36126}, // __builtin_HEXAGON_V6_vaslh
+      {Intrinsic::hexagon_V6_vaslh_128B, 36153}, // __builtin_HEXAGON_V6_vaslh_128B
+      {Intrinsic::hexagon_V6_vaslh_acc, 36185}, // __builtin_HEXAGON_V6_vaslh_acc
+      {Intrinsic::hexagon_V6_vaslh_acc_128B, 36216}, // __builtin_HEXAGON_V6_vaslh_acc_128B
+      {Intrinsic::hexagon_V6_vaslhv, 36252}, // __builtin_HEXAGON_V6_vaslhv
+      {Intrinsic::hexagon_V6_vaslhv_128B, 36280}, // __builtin_HEXAGON_V6_vaslhv_128B
+      {Intrinsic::hexagon_V6_vaslw, 36313}, // __builtin_HEXAGON_V6_vaslw
+      {Intrinsic::hexagon_V6_vaslw_128B, 36340}, // __builtin_HEXAGON_V6_vaslw_128B
+      {Intrinsic::hexagon_V6_vaslw_acc, 36372}, // __builtin_HEXAGON_V6_vaslw_acc
+      {Intrinsic::hexagon_V6_vaslw_acc_128B, 36403}, // __builtin_HEXAGON_V6_vaslw_acc_128B
+      {Intrinsic::hexagon_V6_vaslwv, 36439}, // __builtin_HEXAGON_V6_vaslwv
+      {Intrinsic::hexagon_V6_vaslwv_128B, 36467}, // __builtin_HEXAGON_V6_vaslwv_128B
+      {Intrinsic::hexagon_V6_vasrh, 36500}, // __builtin_HEXAGON_V6_vasrh
+      {Intrinsic::hexagon_V6_vasrh_128B, 36527}, // __builtin_HEXAGON_V6_vasrh_128B
+      {Intrinsic::hexagon_V6_vasrh_acc, 36559}, // __builtin_HEXAGON_V6_vasrh_acc
+      {Intrinsic::hexagon_V6_vasrh_acc_128B, 36590}, // __builtin_HEXAGON_V6_vasrh_acc_128B
+      {Intrinsic::hexagon_V6_vasrhbrndsat, 36626}, // __builtin_HEXAGON_V6_vasrhbrndsat
+      {Intrinsic::hexagon_V6_vasrhbrndsat_128B, 36660}, // __builtin_HEXAGON_V6_vasrhbrndsat_128B
+      {Intrinsic::hexagon_V6_vasrhbsat, 36699}, // __builtin_HEXAGON_V6_vasrhbsat
+      {Intrinsic::hexagon_V6_vasrhbsat_128B, 36730}, // __builtin_HEXAGON_V6_vasrhbsat_128B
+      {Intrinsic::hexagon_V6_vasrhubrndsat, 36766}, // __builtin_HEXAGON_V6_vasrhubrndsat
+      {Intrinsic::hexagon_V6_vasrhubrndsat_128B, 36801}, // __builtin_HEXAGON_V6_vasrhubrndsat_128B
+      {Intrinsic::hexagon_V6_vasrhubsat, 36841}, // __builtin_HEXAGON_V6_vasrhubsat
+      {Intrinsic::hexagon_V6_vasrhubsat_128B, 36873}, // __builtin_HEXAGON_V6_vasrhubsat_128B
+      {Intrinsic::hexagon_V6_vasrhv, 36910}, // __builtin_HEXAGON_V6_vasrhv
+      {Intrinsic::hexagon_V6_vasrhv_128B, 36938}, // __builtin_HEXAGON_V6_vasrhv_128B
+      {Intrinsic::hexagon_V6_vasruhubrndsat, 36971}, // __builtin_HEXAGON_V6_vasruhubrndsat
+      {Intrinsic::hexagon_V6_vasruhubrndsat_128B, 37007}, // __builtin_HEXAGON_V6_vasruhubrndsat_128B
+      {Intrinsic::hexagon_V6_vasruhubsat, 37048}, // __builtin_HEXAGON_V6_vasruhubsat
+      {Intrinsic::hexagon_V6_vasruhubsat_128B, 37081}, // __builtin_HEXAGON_V6_vasruhubsat_128B
+      {Intrinsic::hexagon_V6_vasruwuhrndsat, 37119}, // __builtin_HEXAGON_V6_vasruwuhrndsat
+      {Intrinsic::hexagon_V6_vasruwuhrndsat_128B, 37155}, // __builtin_HEXAGON_V6_vasruwuhrndsat_128B
+      {Intrinsic::hexagon_V6_vasruwuhsat, 37196}, // __builtin_HEXAGON_V6_vasruwuhsat
+      {Intrinsic::hexagon_V6_vasruwuhsat_128B, 37229}, // __builtin_HEXAGON_V6_vasruwuhsat_128B
+      {Intrinsic::hexagon_V6_vasrw, 37267}, // __builtin_HEXAGON_V6_vasrw
+      {Intrinsic::hexagon_V6_vasrw_128B, 37294}, // __builtin_HEXAGON_V6_vasrw_128B
+      {Intrinsic::hexagon_V6_vasrw_acc, 37326}, // __builtin_HEXAGON_V6_vasrw_acc
+      {Intrinsic::hexagon_V6_vasrw_acc_128B, 37357}, // __builtin_HEXAGON_V6_vasrw_acc_128B
+      {Intrinsic::hexagon_V6_vasrwh, 37393}, // __builtin_HEXAGON_V6_vasrwh
+      {Intrinsic::hexagon_V6_vasrwh_128B, 37421}, // __builtin_HEXAGON_V6_vasrwh_128B
+      {Intrinsic::hexagon_V6_vasrwhrndsat, 37454}, // __builtin_HEXAGON_V6_vasrwhrndsat
+      {Intrinsic::hexagon_V6_vasrwhrndsat_128B, 37488}, // __builtin_HEXAGON_V6_vasrwhrndsat_128B
+      {Intrinsic::hexagon_V6_vasrwhsat, 37527}, // __builtin_HEXAGON_V6_vasrwhsat
+      {Intrinsic::hexagon_V6_vasrwhsat_128B, 37558}, // __builtin_HEXAGON_V6_vasrwhsat_128B
+      {Intrinsic::hexagon_V6_vasrwuhrndsat, 37594}, // __builtin_HEXAGON_V6_vasrwuhrndsat
+      {Intrinsic::hexagon_V6_vasrwuhrndsat_128B, 37629}, // __builtin_HEXAGON_V6_vasrwuhrndsat_128B
+      {Intrinsic::hexagon_V6_vasrwuhsat, 37669}, // __builtin_HEXAGON_V6_vasrwuhsat
+      {Intrinsic::hexagon_V6_vasrwuhsat_128B, 37701}, // __builtin_HEXAGON_V6_vasrwuhsat_128B
+      {Intrinsic::hexagon_V6_vasrwv, 37738}, // __builtin_HEXAGON_V6_vasrwv
+      {Intrinsic::hexagon_V6_vasrwv_128B, 37766}, // __builtin_HEXAGON_V6_vasrwv_128B
+      {Intrinsic::hexagon_V6_vassign, 37799}, // __builtin_HEXAGON_V6_vassign
+      {Intrinsic::hexagon_V6_vassign_128B, 37828}, // __builtin_HEXAGON_V6_vassign_128B
+      {Intrinsic::hexagon_V6_vassignp, 37862}, // __builtin_HEXAGON_V6_vassignp
+      {Intrinsic::hexagon_V6_vassignp_128B, 37892}, // __builtin_HEXAGON_V6_vassignp_128B
+      {Intrinsic::hexagon_V6_vavgb, 37927}, // __builtin_HEXAGON_V6_vavgb
+      {Intrinsic::hexagon_V6_vavgb_128B, 37954}, // __builtin_HEXAGON_V6_vavgb_128B
+      {Intrinsic::hexagon_V6_vavgbrnd, 37986}, // __builtin_HEXAGON_V6_vavgbrnd
+      {Intrinsic::hexagon_V6_vavgbrnd_128B, 38016}, // __builtin_HEXAGON_V6_vavgbrnd_128B
+      {Intrinsic::hexagon_V6_vavgh, 38051}, // __builtin_HEXAGON_V6_vavgh
+      {Intrinsic::hexagon_V6_vavgh_128B, 38078}, // __builtin_HEXAGON_V6_vavgh_128B
+      {Intrinsic::hexagon_V6_vavghrnd, 38110}, // __builtin_HEXAGON_V6_vavghrnd
+      {Intrinsic::hexagon_V6_vavghrnd_128B, 38140}, // __builtin_HEXAGON_V6_vavghrnd_128B
+      {Intrinsic::hexagon_V6_vavgub, 38175}, // __builtin_HEXAGON_V6_vavgub
+      {Intrinsic::hexagon_V6_vavgub_128B, 38203}, // __builtin_HEXAGON_V6_vavgub_128B
+      {Intrinsic::hexagon_V6_vavgubrnd, 38236}, // __builtin_HEXAGON_V6_vavgubrnd
+      {Intrinsic::hexagon_V6_vavgubrnd_128B, 38267}, // __builtin_HEXAGON_V6_vavgubrnd_128B
+      {Intrinsic::hexagon_V6_vavguh, 38303}, // __builtin_HEXAGON_V6_vavguh
+      {Intrinsic::hexagon_V6_vavguh_128B, 38331}, // __builtin_HEXAGON_V6_vavguh_128B
+      {Intrinsic::hexagon_V6_vavguhrnd, 38364}, // __builtin_HEXAGON_V6_vavguhrnd
+      {Intrinsic::hexagon_V6_vavguhrnd_128B, 38395}, // __builtin_HEXAGON_V6_vavguhrnd_128B
+      {Intrinsic::hexagon_V6_vavguw, 38431}, // __builtin_HEXAGON_V6_vavguw
+      {Intrinsic::hexagon_V6_vavguw_128B, 38459}, // __builtin_HEXAGON_V6_vavguw_128B
+      {Intrinsic::hexagon_V6_vavguwrnd, 38492}, // __builtin_HEXAGON_V6_vavguwrnd
+      {Intrinsic::hexagon_V6_vavguwrnd_128B, 38523}, // __builtin_HEXAGON_V6_vavguwrnd_128B
+      {Intrinsic::hexagon_V6_vavgw, 38559}, // __builtin_HEXAGON_V6_vavgw
+      {Intrinsic::hexagon_V6_vavgw_128B, 38586}, // __builtin_HEXAGON_V6_vavgw_128B
+      {Intrinsic::hexagon_V6_vavgwrnd, 38618}, // __builtin_HEXAGON_V6_vavgwrnd
+      {Intrinsic::hexagon_V6_vavgwrnd_128B, 38648}, // __builtin_HEXAGON_V6_vavgwrnd_128B
+      {Intrinsic::hexagon_V6_vcl0h, 38683}, // __builtin_HEXAGON_V6_vcl0h
+      {Intrinsic::hexagon_V6_vcl0h_128B, 38710}, // __builtin_HEXAGON_V6_vcl0h_128B
+      {Intrinsic::hexagon_V6_vcl0w, 38742}, // __builtin_HEXAGON_V6_vcl0w
+      {Intrinsic::hexagon_V6_vcl0w_128B, 38769}, // __builtin_HEXAGON_V6_vcl0w_128B
+      {Intrinsic::hexagon_V6_vcombine, 38801}, // __builtin_HEXAGON_V6_vcombine
+      {Intrinsic::hexagon_V6_vcombine_128B, 38831}, // __builtin_HEXAGON_V6_vcombine_128B
+      {Intrinsic::hexagon_V6_vd0, 38866}, // __builtin_HEXAGON_V6_vd0
+      {Intrinsic::hexagon_V6_vd0_128B, 38891}, // __builtin_HEXAGON_V6_vd0_128B
+      {Intrinsic::hexagon_V6_vdd0, 38921}, // __builtin_HEXAGON_V6_vdd0
+      {Intrinsic::hexagon_V6_vdd0_128B, 38947}, // __builtin_HEXAGON_V6_vdd0_128B
+      {Intrinsic::hexagon_V6_vdealb, 38978}, // __builtin_HEXAGON_V6_vdealb
+      {Intrinsic::hexagon_V6_vdealb4w, 39039}, // __builtin_HEXAGON_V6_vdealb4w
+      {Intrinsic::hexagon_V6_vdealb4w_128B, 39069}, // __builtin_HEXAGON_V6_vdealb4w_128B
+      {Intrinsic::hexagon_V6_vdealb_128B, 39006}, // __builtin_HEXAGON_V6_vdealb_128B
+      {Intrinsic::hexagon_V6_vdealh, 39104}, // __builtin_HEXAGON_V6_vdealh
+      {Intrinsic::hexagon_V6_vdealh_128B, 39132}, // __builtin_HEXAGON_V6_vdealh_128B
+      {Intrinsic::hexagon_V6_vdealvdd, 39165}, // __builtin_HEXAGON_V6_vdealvdd
+      {Intrinsic::hexagon_V6_vdealvdd_128B, 39195}, // __builtin_HEXAGON_V6_vdealvdd_128B
+      {Intrinsic::hexagon_V6_vdelta, 39230}, // __builtin_HEXAGON_V6_vdelta
+      {Intrinsic::hexagon_V6_vdelta_128B, 39258}, // __builtin_HEXAGON_V6_vdelta_128B
+      {Intrinsic::hexagon_V6_vdmpybus, 39291}, // __builtin_HEXAGON_V6_vdmpybus
+      {Intrinsic::hexagon_V6_vdmpybus_128B, 39321}, // __builtin_HEXAGON_V6_vdmpybus_128B
+      {Intrinsic::hexagon_V6_vdmpybus_acc, 39356}, // __builtin_HEXAGON_V6_vdmpybus_acc
+      {Intrinsic::hexagon_V6_vdmpybus_acc_128B, 39390}, // __builtin_HEXAGON_V6_vdmpybus_acc_128B
+      {Intrinsic::hexagon_V6_vdmpybus_dv, 39429}, // __builtin_HEXAGON_V6_vdmpybus_dv
+      {Intrinsic::hexagon_V6_vdmpybus_dv_128B, 39462}, // __builtin_HEXAGON_V6_vdmpybus_dv_128B
+      {Intrinsic::hexagon_V6_vdmpybus_dv_acc, 39500}, // __builtin_HEXAGON_V6_vdmpybus_dv_acc
+      {Intrinsic::hexagon_V6_vdmpybus_dv_acc_128B, 39537}, // __builtin_HEXAGON_V6_vdmpybus_dv_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhb, 39579}, // __builtin_HEXAGON_V6_vdmpyhb
+      {Intrinsic::hexagon_V6_vdmpyhb_128B, 39608}, // __builtin_HEXAGON_V6_vdmpyhb_128B
+      {Intrinsic::hexagon_V6_vdmpyhb_acc, 39642}, // __builtin_HEXAGON_V6_vdmpyhb_acc
+      {Intrinsic::hexagon_V6_vdmpyhb_acc_128B, 39675}, // __builtin_HEXAGON_V6_vdmpyhb_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhb_dv, 39713}, // __builtin_HEXAGON_V6_vdmpyhb_dv
+      {Intrinsic::hexagon_V6_vdmpyhb_dv_128B, 39745}, // __builtin_HEXAGON_V6_vdmpyhb_dv_128B
+      {Intrinsic::hexagon_V6_vdmpyhb_dv_acc, 39782}, // __builtin_HEXAGON_V6_vdmpyhb_dv_acc
+      {Intrinsic::hexagon_V6_vdmpyhb_dv_acc_128B, 39818}, // __builtin_HEXAGON_V6_vdmpyhb_dv_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhisat, 39859}, // __builtin_HEXAGON_V6_vdmpyhisat
+      {Intrinsic::hexagon_V6_vdmpyhisat_128B, 39891}, // __builtin_HEXAGON_V6_vdmpyhisat_128B
+      {Intrinsic::hexagon_V6_vdmpyhisat_acc, 39928}, // __builtin_HEXAGON_V6_vdmpyhisat_acc
+      {Intrinsic::hexagon_V6_vdmpyhisat_acc_128B, 39964}, // __builtin_HEXAGON_V6_vdmpyhisat_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhsat, 40005}, // __builtin_HEXAGON_V6_vdmpyhsat
+      {Intrinsic::hexagon_V6_vdmpyhsat_128B, 40036}, // __builtin_HEXAGON_V6_vdmpyhsat_128B
+      {Intrinsic::hexagon_V6_vdmpyhsat_acc, 40072}, // __builtin_HEXAGON_V6_vdmpyhsat_acc
+      {Intrinsic::hexagon_V6_vdmpyhsat_acc_128B, 40107}, // __builtin_HEXAGON_V6_vdmpyhsat_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhsuisat, 40147}, // __builtin_HEXAGON_V6_vdmpyhsuisat
+      {Intrinsic::hexagon_V6_vdmpyhsuisat_128B, 40181}, // __builtin_HEXAGON_V6_vdmpyhsuisat_128B
+      {Intrinsic::hexagon_V6_vdmpyhsuisat_acc, 40220}, // __builtin_HEXAGON_V6_vdmpyhsuisat_acc
+      {Intrinsic::hexagon_V6_vdmpyhsuisat_acc_128B, 40258}, // __builtin_HEXAGON_V6_vdmpyhsuisat_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhsusat, 40301}, // __builtin_HEXAGON_V6_vdmpyhsusat
+      {Intrinsic::hexagon_V6_vdmpyhsusat_128B, 40334}, // __builtin_HEXAGON_V6_vdmpyhsusat_128B
+      {Intrinsic::hexagon_V6_vdmpyhsusat_acc, 40372}, // __builtin_HEXAGON_V6_vdmpyhsusat_acc
+      {Intrinsic::hexagon_V6_vdmpyhsusat_acc_128B, 40409}, // __builtin_HEXAGON_V6_vdmpyhsusat_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhvsat, 40451}, // __builtin_HEXAGON_V6_vdmpyhvsat
+      {Intrinsic::hexagon_V6_vdmpyhvsat_128B, 40483}, // __builtin_HEXAGON_V6_vdmpyhvsat_128B
+      {Intrinsic::hexagon_V6_vdmpyhvsat_acc, 40520}, // __builtin_HEXAGON_V6_vdmpyhvsat_acc
+      {Intrinsic::hexagon_V6_vdmpyhvsat_acc_128B, 40556}, // __builtin_HEXAGON_V6_vdmpyhvsat_acc_128B
+      {Intrinsic::hexagon_V6_vdsaduh, 40597}, // __builtin_HEXAGON_V6_vdsaduh
+      {Intrinsic::hexagon_V6_vdsaduh_128B, 40626}, // __builtin_HEXAGON_V6_vdsaduh_128B
+      {Intrinsic::hexagon_V6_vdsaduh_acc, 40660}, // __builtin_HEXAGON_V6_vdsaduh_acc
+      {Intrinsic::hexagon_V6_vdsaduh_acc_128B, 40693}, // __builtin_HEXAGON_V6_vdsaduh_acc_128B
+      {Intrinsic::hexagon_V6_veqb, 40731}, // __builtin_HEXAGON_V6_veqb
+      {Intrinsic::hexagon_V6_veqb_128B, 40757}, // __builtin_HEXAGON_V6_veqb_128B
+      {Intrinsic::hexagon_V6_veqb_and, 40788}, // __builtin_HEXAGON_V6_veqb_and
+      {Intrinsic::hexagon_V6_veqb_and_128B, 40818}, // __builtin_HEXAGON_V6_veqb_and_128B
+      {Intrinsic::hexagon_V6_veqb_or, 40853}, // __builtin_HEXAGON_V6_veqb_or
+      {Intrinsic::hexagon_V6_veqb_or_128B, 40882}, // __builtin_HEXAGON_V6_veqb_or_128B
+      {Intrinsic::hexagon_V6_veqb_xor, 40916}, // __builtin_HEXAGON_V6_veqb_xor
+      {Intrinsic::hexagon_V6_veqb_xor_128B, 40946}, // __builtin_HEXAGON_V6_veqb_xor_128B
+      {Intrinsic::hexagon_V6_veqh, 40981}, // __builtin_HEXAGON_V6_veqh
+      {Intrinsic::hexagon_V6_veqh_128B, 41007}, // __builtin_HEXAGON_V6_veqh_128B
+      {Intrinsic::hexagon_V6_veqh_and, 41038}, // __builtin_HEXAGON_V6_veqh_and
+      {Intrinsic::hexagon_V6_veqh_and_128B, 41068}, // __builtin_HEXAGON_V6_veqh_and_128B
+      {Intrinsic::hexagon_V6_veqh_or, 41103}, // __builtin_HEXAGON_V6_veqh_or
+      {Intrinsic::hexagon_V6_veqh_or_128B, 41132}, // __builtin_HEXAGON_V6_veqh_or_128B
+      {Intrinsic::hexagon_V6_veqh_xor, 41166}, // __builtin_HEXAGON_V6_veqh_xor
+      {Intrinsic::hexagon_V6_veqh_xor_128B, 41196}, // __builtin_HEXAGON_V6_veqh_xor_128B
+      {Intrinsic::hexagon_V6_veqw, 41231}, // __builtin_HEXAGON_V6_veqw
+      {Intrinsic::hexagon_V6_veqw_128B, 41257}, // __builtin_HEXAGON_V6_veqw_128B
+      {Intrinsic::hexagon_V6_veqw_and, 41288}, // __builtin_HEXAGON_V6_veqw_and
+      {Intrinsic::hexagon_V6_veqw_and_128B, 41318}, // __builtin_HEXAGON_V6_veqw_and_128B
+      {Intrinsic::hexagon_V6_veqw_or, 41353}, // __builtin_HEXAGON_V6_veqw_or
+      {Intrinsic::hexagon_V6_veqw_or_128B, 41382}, // __builtin_HEXAGON_V6_veqw_or_128B
+      {Intrinsic::hexagon_V6_veqw_xor, 41416}, // __builtin_HEXAGON_V6_veqw_xor
+      {Intrinsic::hexagon_V6_veqw_xor_128B, 41446}, // __builtin_HEXAGON_V6_veqw_xor_128B
+      {Intrinsic::hexagon_V6_vgathermh, 41481}, // __builtin_HEXAGON_V6_vgathermh
+      {Intrinsic::hexagon_V6_vgathermh_128B, 41512}, // __builtin_HEXAGON_V6_vgathermh_128B
+      {Intrinsic::hexagon_V6_vgathermhq, 41548}, // __builtin_HEXAGON_V6_vgathermhq
+      {Intrinsic::hexagon_V6_vgathermhq_128B, 41580}, // __builtin_HEXAGON_V6_vgathermhq_128B
+      {Intrinsic::hexagon_V6_vgathermhw, 41617}, // __builtin_HEXAGON_V6_vgathermhw
+      {Intrinsic::hexagon_V6_vgathermhw_128B, 41649}, // __builtin_HEXAGON_V6_vgathermhw_128B
+      {Intrinsic::hexagon_V6_vgathermhwq, 41686}, // __builtin_HEXAGON_V6_vgathermhwq
+      {Intrinsic::hexagon_V6_vgathermhwq_128B, 41719}, // __builtin_HEXAGON_V6_vgathermhwq_128B
+      {Intrinsic::hexagon_V6_vgathermw, 41757}, // __builtin_HEXAGON_V6_vgathermw
+      {Intrinsic::hexagon_V6_vgathermw_128B, 41788}, // __builtin_HEXAGON_V6_vgathermw_128B
+      {Intrinsic::hexagon_V6_vgathermwq, 41824}, // __builtin_HEXAGON_V6_vgathermwq
+      {Intrinsic::hexagon_V6_vgathermwq_128B, 41856}, // __builtin_HEXAGON_V6_vgathermwq_128B
+      {Intrinsic::hexagon_V6_vgtb, 41893}, // __builtin_HEXAGON_V6_vgtb
+      {Intrinsic::hexagon_V6_vgtb_128B, 41919}, // __builtin_HEXAGON_V6_vgtb_128B
+      {Intrinsic::hexagon_V6_vgtb_and, 41950}, // __builtin_HEXAGON_V6_vgtb_and
+      {Intrinsic::hexagon_V6_vgtb_and_128B, 41980}, // __builtin_HEXAGON_V6_vgtb_and_128B
+      {Intrinsic::hexagon_V6_vgtb_or, 42015}, // __builtin_HEXAGON_V6_vgtb_or
+      {Intrinsic::hexagon_V6_vgtb_or_128B, 42044}, // __builtin_HEXAGON_V6_vgtb_or_128B
+      {Intrinsic::hexagon_V6_vgtb_xor, 42078}, // __builtin_HEXAGON_V6_vgtb_xor
+      {Intrinsic::hexagon_V6_vgtb_xor_128B, 42108}, // __builtin_HEXAGON_V6_vgtb_xor_128B
+      {Intrinsic::hexagon_V6_vgth, 42143}, // __builtin_HEXAGON_V6_vgth
+      {Intrinsic::hexagon_V6_vgth_128B, 42169}, // __builtin_HEXAGON_V6_vgth_128B
+      {Intrinsic::hexagon_V6_vgth_and, 42200}, // __builtin_HEXAGON_V6_vgth_and
+      {Intrinsic::hexagon_V6_vgth_and_128B, 42230}, // __builtin_HEXAGON_V6_vgth_and_128B
+      {Intrinsic::hexagon_V6_vgth_or, 42265}, // __builtin_HEXAGON_V6_vgth_or
+      {Intrinsic::hexagon_V6_vgth_or_128B, 42294}, // __builtin_HEXAGON_V6_vgth_or_128B
+      {Intrinsic::hexagon_V6_vgth_xor, 42328}, // __builtin_HEXAGON_V6_vgth_xor
+      {Intrinsic::hexagon_V6_vgth_xor_128B, 42358}, // __builtin_HEXAGON_V6_vgth_xor_128B
+      {Intrinsic::hexagon_V6_vgtub, 42393}, // __builtin_HEXAGON_V6_vgtub
+      {Intrinsic::hexagon_V6_vgtub_128B, 42420}, // __builtin_HEXAGON_V6_vgtub_128B
+      {Intrinsic::hexagon_V6_vgtub_and, 42452}, // __builtin_HEXAGON_V6_vgtub_and
+      {Intrinsic::hexagon_V6_vgtub_and_128B, 42483}, // __builtin_HEXAGON_V6_vgtub_and_128B
+      {Intrinsic::hexagon_V6_vgtub_or, 42519}, // __builtin_HEXAGON_V6_vgtub_or
+      {Intrinsic::hexagon_V6_vgtub_or_128B, 42549}, // __builtin_HEXAGON_V6_vgtub_or_128B
+      {Intrinsic::hexagon_V6_vgtub_xor, 42584}, // __builtin_HEXAGON_V6_vgtub_xor
+      {Intrinsic::hexagon_V6_vgtub_xor_128B, 42615}, // __builtin_HEXAGON_V6_vgtub_xor_128B
+      {Intrinsic::hexagon_V6_vgtuh, 42651}, // __builtin_HEXAGON_V6_vgtuh
+      {Intrinsic::hexagon_V6_vgtuh_128B, 42678}, // __builtin_HEXAGON_V6_vgtuh_128B
+      {Intrinsic::hexagon_V6_vgtuh_and, 42710}, // __builtin_HEXAGON_V6_vgtuh_and
+      {Intrinsic::hexagon_V6_vgtuh_and_128B, 42741}, // __builtin_HEXAGON_V6_vgtuh_and_128B
+      {Intrinsic::hexagon_V6_vgtuh_or, 42777}, // __builtin_HEXAGON_V6_vgtuh_or
+      {Intrinsic::hexagon_V6_vgtuh_or_128B, 42807}, // __builtin_HEXAGON_V6_vgtuh_or_128B
+      {Intrinsic::hexagon_V6_vgtuh_xor, 42842}, // __builtin_HEXAGON_V6_vgtuh_xor
+      {Intrinsic::hexagon_V6_vgtuh_xor_128B, 42873}, // __builtin_HEXAGON_V6_vgtuh_xor_128B
+      {Intrinsic::hexagon_V6_vgtuw, 42909}, // __builtin_HEXAGON_V6_vgtuw
+      {Intrinsic::hexagon_V6_vgtuw_128B, 42936}, // __builtin_HEXAGON_V6_vgtuw_128B
+      {Intrinsic::hexagon_V6_vgtuw_and, 42968}, // __builtin_HEXAGON_V6_vgtuw_and
+      {Intrinsic::hexagon_V6_vgtuw_and_128B, 42999}, // __builtin_HEXAGON_V6_vgtuw_and_128B
+      {Intrinsic::hexagon_V6_vgtuw_or, 43035}, // __builtin_HEXAGON_V6_vgtuw_or
+      {Intrinsic::hexagon_V6_vgtuw_or_128B, 43065}, // __builtin_HEXAGON_V6_vgtuw_or_128B
+      {Intrinsic::hexagon_V6_vgtuw_xor, 43100}, // __builtin_HEXAGON_V6_vgtuw_xor
+      {Intrinsic::hexagon_V6_vgtuw_xor_128B, 43131}, // __builtin_HEXAGON_V6_vgtuw_xor_128B
+      {Intrinsic::hexagon_V6_vgtw, 43167}, // __builtin_HEXAGON_V6_vgtw
+      {Intrinsic::hexagon_V6_vgtw_128B, 43193}, // __builtin_HEXAGON_V6_vgtw_128B
+      {Intrinsic::hexagon_V6_vgtw_and, 43224}, // __builtin_HEXAGON_V6_vgtw_and
+      {Intrinsic::hexagon_V6_vgtw_and_128B, 43254}, // __builtin_HEXAGON_V6_vgtw_and_128B
+      {Intrinsic::hexagon_V6_vgtw_or, 43289}, // __builtin_HEXAGON_V6_vgtw_or
+      {Intrinsic::hexagon_V6_vgtw_or_128B, 43318}, // __builtin_HEXAGON_V6_vgtw_or_128B
+      {Intrinsic::hexagon_V6_vgtw_xor, 43352}, // __builtin_HEXAGON_V6_vgtw_xor
+      {Intrinsic::hexagon_V6_vgtw_xor_128B, 43382}, // __builtin_HEXAGON_V6_vgtw_xor_128B
+      {Intrinsic::hexagon_V6_vinsertwr, 43417}, // __builtin_HEXAGON_V6_vinsertwr
+      {Intrinsic::hexagon_V6_vinsertwr_128B, 43448}, // __builtin_HEXAGON_V6_vinsertwr_128B
+      {Intrinsic::hexagon_V6_vlalignb, 43484}, // __builtin_HEXAGON_V6_vlalignb
+      {Intrinsic::hexagon_V6_vlalignb_128B, 43514}, // __builtin_HEXAGON_V6_vlalignb_128B
+      {Intrinsic::hexagon_V6_vlalignbi, 43549}, // __builtin_HEXAGON_V6_vlalignbi
+      {Intrinsic::hexagon_V6_vlalignbi_128B, 43580}, // __builtin_HEXAGON_V6_vlalignbi_128B
+      {Intrinsic::hexagon_V6_vlsrb, 43616}, // __builtin_HEXAGON_V6_vlsrb
+      {Intrinsic::hexagon_V6_vlsrb_128B, 43643}, // __builtin_HEXAGON_V6_vlsrb_128B
+      {Intrinsic::hexagon_V6_vlsrh, 43675}, // __builtin_HEXAGON_V6_vlsrh
+      {Intrinsic::hexagon_V6_vlsrh_128B, 43702}, // __builtin_HEXAGON_V6_vlsrh_128B
+      {Intrinsic::hexagon_V6_vlsrhv, 43734}, // __builtin_HEXAGON_V6_vlsrhv
+      {Intrinsic::hexagon_V6_vlsrhv_128B, 43762}, // __builtin_HEXAGON_V6_vlsrhv_128B
+      {Intrinsic::hexagon_V6_vlsrw, 43795}, // __builtin_HEXAGON_V6_vlsrw
+      {Intrinsic::hexagon_V6_vlsrw_128B, 43822}, // __builtin_HEXAGON_V6_vlsrw_128B
+      {Intrinsic::hexagon_V6_vlsrwv, 43854}, // __builtin_HEXAGON_V6_vlsrwv
+      {Intrinsic::hexagon_V6_vlsrwv_128B, 43882}, // __builtin_HEXAGON_V6_vlsrwv_128B
+      {Intrinsic::hexagon_V6_vlut4, 43915}, // __builtin_HEXAGON_V6_vlut4
+      {Intrinsic::hexagon_V6_vlut4_128B, 43942}, // __builtin_HEXAGON_V6_vlut4_128B
+      {Intrinsic::hexagon_V6_vlutvvb, 43974}, // __builtin_HEXAGON_V6_vlutvvb
+      {Intrinsic::hexagon_V6_vlutvvb_128B, 44003}, // __builtin_HEXAGON_V6_vlutvvb_128B
+      {Intrinsic::hexagon_V6_vlutvvb_nm, 44037}, // __builtin_HEXAGON_V6_vlutvvb_nm
+      {Intrinsic::hexagon_V6_vlutvvb_nm_128B, 44069}, // __builtin_HEXAGON_V6_vlutvvb_nm_128B
+      {Intrinsic::hexagon_V6_vlutvvb_oracc, 44106}, // __builtin_HEXAGON_V6_vlutvvb_oracc
+      {Intrinsic::hexagon_V6_vlutvvb_oracc_128B, 44141}, // __builtin_HEXAGON_V6_vlutvvb_oracc_128B
+      {Intrinsic::hexagon_V6_vlutvvb_oracci, 44181}, // __builtin_HEXAGON_V6_vlutvvb_oracci
+      {Intrinsic::hexagon_V6_vlutvvb_oracci_128B, 44217}, // __builtin_HEXAGON_V6_vlutvvb_oracci_128B
+      {Intrinsic::hexagon_V6_vlutvvbi, 44258}, // __builtin_HEXAGON_V6_vlutvvbi
+      {Intrinsic::hexagon_V6_vlutvvbi_128B, 44288}, // __builtin_HEXAGON_V6_vlutvvbi_128B
+      {Intrinsic::hexagon_V6_vlutvwh, 44323}, // __builtin_HEXAGON_V6_vlutvwh
+      {Intrinsic::hexagon_V6_vlutvwh_128B, 44352}, // __builtin_HEXAGON_V6_vlutvwh_128B
+      {Intrinsic::hexagon_V6_vlutvwh_nm, 44386}, // __builtin_HEXAGON_V6_vlutvwh_nm
+      {Intrinsic::hexagon_V6_vlutvwh_nm_128B, 44418}, // __builtin_HEXAGON_V6_vlutvwh_nm_128B
+      {Intrinsic::hexagon_V6_vlutvwh_oracc, 44455}, // __builtin_HEXAGON_V6_vlutvwh_oracc
+      {Intrinsic::hexagon_V6_vlutvwh_oracc_128B, 44490}, // __builtin_HEXAGON_V6_vlutvwh_oracc_128B
+      {Intrinsic::hexagon_V6_vlutvwh_oracci, 44530}, // __builtin_HEXAGON_V6_vlutvwh_oracci
+      {Intrinsic::hexagon_V6_vlutvwh_oracci_128B, 44566}, // __builtin_HEXAGON_V6_vlutvwh_oracci_128B
+      {Intrinsic::hexagon_V6_vlutvwhi, 44607}, // __builtin_HEXAGON_V6_vlutvwhi
+      {Intrinsic::hexagon_V6_vlutvwhi_128B, 44637}, // __builtin_HEXAGON_V6_vlutvwhi_128B
+      {Intrinsic::hexagon_V6_vmaskedstorenq, 44672}, // __builtin_HEXAGON_V6_vmaskedstorenq
+      {Intrinsic::hexagon_V6_vmaskedstorenq_128B, 44708}, // __builtin_HEXAGON_V6_vmaskedstorenq_128B
+      {Intrinsic::hexagon_V6_vmaskedstorentnq, 44749}, // __builtin_HEXAGON_V6_vmaskedstorentnq
+      {Intrinsic::hexagon_V6_vmaskedstorentnq_128B, 44787}, // __builtin_HEXAGON_V6_vmaskedstorentnq_128B
+      {Intrinsic::hexagon_V6_vmaskedstorentq, 44830}, // __builtin_HEXAGON_V6_vmaskedstorentq
+      {Intrinsic::hexagon_V6_vmaskedstorentq_128B, 44867}, // __builtin_HEXAGON_V6_vmaskedstorentq_128B
+      {Intrinsic::hexagon_V6_vmaskedstoreq, 44909}, // __builtin_HEXAGON_V6_vmaskedstoreq
+      {Intrinsic::hexagon_V6_vmaskedstoreq_128B, 44944}, // __builtin_HEXAGON_V6_vmaskedstoreq_128B
+      {Intrinsic::hexagon_V6_vmaxb, 44984}, // __builtin_HEXAGON_V6_vmaxb
+      {Intrinsic::hexagon_V6_vmaxb_128B, 45011}, // __builtin_HEXAGON_V6_vmaxb_128B
+      {Intrinsic::hexagon_V6_vmaxh, 45043}, // __builtin_HEXAGON_V6_vmaxh
+      {Intrinsic::hexagon_V6_vmaxh_128B, 45070}, // __builtin_HEXAGON_V6_vmaxh_128B
+      {Intrinsic::hexagon_V6_vmaxub, 45102}, // __builtin_HEXAGON_V6_vmaxub
+      {Intrinsic::hexagon_V6_vmaxub_128B, 45130}, // __builtin_HEXAGON_V6_vmaxub_128B
+      {Intrinsic::hexagon_V6_vmaxuh, 45163}, // __builtin_HEXAGON_V6_vmaxuh
+      {Intrinsic::hexagon_V6_vmaxuh_128B, 45191}, // __builtin_HEXAGON_V6_vmaxuh_128B
+      {Intrinsic::hexagon_V6_vmaxw, 45224}, // __builtin_HEXAGON_V6_vmaxw
+      {Intrinsic::hexagon_V6_vmaxw_128B, 45251}, // __builtin_HEXAGON_V6_vmaxw_128B
+      {Intrinsic::hexagon_V6_vminb, 45283}, // __builtin_HEXAGON_V6_vminb
+      {Intrinsic::hexagon_V6_vminb_128B, 45310}, // __builtin_HEXAGON_V6_vminb_128B
+      {Intrinsic::hexagon_V6_vminh, 45342}, // __builtin_HEXAGON_V6_vminh
+      {Intrinsic::hexagon_V6_vminh_128B, 45369}, // __builtin_HEXAGON_V6_vminh_128B
+      {Intrinsic::hexagon_V6_vminub, 45401}, // __builtin_HEXAGON_V6_vminub
+      {Intrinsic::hexagon_V6_vminub_128B, 45429}, // __builtin_HEXAGON_V6_vminub_128B
+      {Intrinsic::hexagon_V6_vminuh, 45462}, // __builtin_HEXAGON_V6_vminuh
+      {Intrinsic::hexagon_V6_vminuh_128B, 45490}, // __builtin_HEXAGON_V6_vminuh_128B
+      {Intrinsic::hexagon_V6_vminw, 45523}, // __builtin_HEXAGON_V6_vminw
+      {Intrinsic::hexagon_V6_vminw_128B, 45550}, // __builtin_HEXAGON_V6_vminw_128B
+      {Intrinsic::hexagon_V6_vmpabus, 45582}, // __builtin_HEXAGON_V6_vmpabus
+      {Intrinsic::hexagon_V6_vmpabus_128B, 45611}, // __builtin_HEXAGON_V6_vmpabus_128B
+      {Intrinsic::hexagon_V6_vmpabus_acc, 45645}, // __builtin_HEXAGON_V6_vmpabus_acc
+      {Intrinsic::hexagon_V6_vmpabus_acc_128B, 45678}, // __builtin_HEXAGON_V6_vmpabus_acc_128B
+      {Intrinsic::hexagon_V6_vmpabusv, 45716}, // __builtin_HEXAGON_V6_vmpabusv
+      {Intrinsic::hexagon_V6_vmpabusv_128B, 45746}, // __builtin_HEXAGON_V6_vmpabusv_128B
+      {Intrinsic::hexagon_V6_vmpabuu, 45781}, // __builtin_HEXAGON_V6_vmpabuu
+      {Intrinsic::hexagon_V6_vmpabuu_128B, 45810}, // __builtin_HEXAGON_V6_vmpabuu_128B
+      {Intrinsic::hexagon_V6_vmpabuu_acc, 45844}, // __builtin_HEXAGON_V6_vmpabuu_acc
+      {Intrinsic::hexagon_V6_vmpabuu_acc_128B, 45877}, // __builtin_HEXAGON_V6_vmpabuu_acc_128B
+      {Intrinsic::hexagon_V6_vmpabuuv, 45915}, // __builtin_HEXAGON_V6_vmpabuuv
+      {Intrinsic::hexagon_V6_vmpabuuv_128B, 45945}, // __builtin_HEXAGON_V6_vmpabuuv_128B
+      {Intrinsic::hexagon_V6_vmpahb, 45980}, // __builtin_HEXAGON_V6_vmpahb
+      {Intrinsic::hexagon_V6_vmpahb_128B, 46008}, // __builtin_HEXAGON_V6_vmpahb_128B
+      {Intrinsic::hexagon_V6_vmpahb_acc, 46041}, // __builtin_HEXAGON_V6_vmpahb_acc
+      {Intrinsic::hexagon_V6_vmpahb_acc_128B, 46073}, // __builtin_HEXAGON_V6_vmpahb_acc_128B
+      {Intrinsic::hexagon_V6_vmpahhsat, 46110}, // __builtin_HEXAGON_V6_vmpahhsat
+      {Intrinsic::hexagon_V6_vmpahhsat_128B, 46141}, // __builtin_HEXAGON_V6_vmpahhsat_128B
+      {Intrinsic::hexagon_V6_vmpauhb, 46177}, // __builtin_HEXAGON_V6_vmpauhb
+      {Intrinsic::hexagon_V6_vmpauhb_128B, 46206}, // __builtin_HEXAGON_V6_vmpauhb_128B
+      {Intrinsic::hexagon_V6_vmpauhb_acc, 46240}, // __builtin_HEXAGON_V6_vmpauhb_acc
+      {Intrinsic::hexagon_V6_vmpauhb_acc_128B, 46273}, // __builtin_HEXAGON_V6_vmpauhb_acc_128B
+      {Intrinsic::hexagon_V6_vmpauhuhsat, 46311}, // __builtin_HEXAGON_V6_vmpauhuhsat
+      {Intrinsic::hexagon_V6_vmpauhuhsat_128B, 46344}, // __builtin_HEXAGON_V6_vmpauhuhsat_128B
+      {Intrinsic::hexagon_V6_vmpsuhuhsat, 46382}, // __builtin_HEXAGON_V6_vmpsuhuhsat
+      {Intrinsic::hexagon_V6_vmpsuhuhsat_128B, 46415}, // __builtin_HEXAGON_V6_vmpsuhuhsat_128B
+      {Intrinsic::hexagon_V6_vmpybus, 46453}, // __builtin_HEXAGON_V6_vmpybus
+      {Intrinsic::hexagon_V6_vmpybus_128B, 46482}, // __builtin_HEXAGON_V6_vmpybus_128B
+      {Intrinsic::hexagon_V6_vmpybus_acc, 46516}, // __builtin_HEXAGON_V6_vmpybus_acc
+      {Intrinsic::hexagon_V6_vmpybus_acc_128B, 46549}, // __builtin_HEXAGON_V6_vmpybus_acc_128B
+      {Intrinsic::hexagon_V6_vmpybusv, 46587}, // __builtin_HEXAGON_V6_vmpybusv
+      {Intrinsic::hexagon_V6_vmpybusv_128B, 46617}, // __builtin_HEXAGON_V6_vmpybusv_128B
+      {Intrinsic::hexagon_V6_vmpybusv_acc, 46652}, // __builtin_HEXAGON_V6_vmpybusv_acc
+      {Intrinsic::hexagon_V6_vmpybusv_acc_128B, 46686}, // __builtin_HEXAGON_V6_vmpybusv_acc_128B
+      {Intrinsic::hexagon_V6_vmpybv, 46725}, // __builtin_HEXAGON_V6_vmpybv
+      {Intrinsic::hexagon_V6_vmpybv_128B, 46753}, // __builtin_HEXAGON_V6_vmpybv_128B
+      {Intrinsic::hexagon_V6_vmpybv_acc, 46786}, // __builtin_HEXAGON_V6_vmpybv_acc
+      {Intrinsic::hexagon_V6_vmpybv_acc_128B, 46818}, // __builtin_HEXAGON_V6_vmpybv_acc_128B
+      {Intrinsic::hexagon_V6_vmpyewuh, 46855}, // __builtin_HEXAGON_V6_vmpyewuh
+      {Intrinsic::hexagon_V6_vmpyewuh_128B, 46885}, // __builtin_HEXAGON_V6_vmpyewuh_128B
+      {Intrinsic::hexagon_V6_vmpyewuh_64, 46920}, // __builtin_HEXAGON_V6_vmpyewuh_64
+      {Intrinsic::hexagon_V6_vmpyewuh_64_128B, 46953}, // __builtin_HEXAGON_V6_vmpyewuh_64_128B
+      {Intrinsic::hexagon_V6_vmpyh, 46991}, // __builtin_HEXAGON_V6_vmpyh
+      {Intrinsic::hexagon_V6_vmpyh_128B, 47018}, // __builtin_HEXAGON_V6_vmpyh_128B
+      {Intrinsic::hexagon_V6_vmpyh_acc, 47050}, // __builtin_HEXAGON_V6_vmpyh_acc
+      {Intrinsic::hexagon_V6_vmpyh_acc_128B, 47081}, // __builtin_HEXAGON_V6_vmpyh_acc_128B
+      {Intrinsic::hexagon_V6_vmpyhsat_acc, 47117}, // __builtin_HEXAGON_V6_vmpyhsat_acc
+      {Intrinsic::hexagon_V6_vmpyhsat_acc_128B, 47151}, // __builtin_HEXAGON_V6_vmpyhsat_acc_128B
+      {Intrinsic::hexagon_V6_vmpyhsrs, 47190}, // __builtin_HEXAGON_V6_vmpyhsrs
+      {Intrinsic::hexagon_V6_vmpyhsrs_128B, 47220}, // __builtin_HEXAGON_V6_vmpyhsrs_128B
+      {Intrinsic::hexagon_V6_vmpyhss, 47255}, // __builtin_HEXAGON_V6_vmpyhss
+      {Intrinsic::hexagon_V6_vmpyhss_128B, 47284}, // __builtin_HEXAGON_V6_vmpyhss_128B
+      {Intrinsic::hexagon_V6_vmpyhus, 47318}, // __builtin_HEXAGON_V6_vmpyhus
+      {Intrinsic::hexagon_V6_vmpyhus_128B, 47347}, // __builtin_HEXAGON_V6_vmpyhus_128B
+      {Intrinsic::hexagon_V6_vmpyhus_acc, 47381}, // __builtin_HEXAGON_V6_vmpyhus_acc
+      {Intrinsic::hexagon_V6_vmpyhus_acc_128B, 47414}, // __builtin_HEXAGON_V6_vmpyhus_acc_128B
+      {Intrinsic::hexagon_V6_vmpyhv, 47452}, // __builtin_HEXAGON_V6_vmpyhv
+      {Intrinsic::hexagon_V6_vmpyhv_128B, 47480}, // __builtin_HEXAGON_V6_vmpyhv_128B
+      {Intrinsic::hexagon_V6_vmpyhv_acc, 47513}, // __builtin_HEXAGON_V6_vmpyhv_acc
+      {Intrinsic::hexagon_V6_vmpyhv_acc_128B, 47545}, // __builtin_HEXAGON_V6_vmpyhv_acc_128B
+      {Intrinsic::hexagon_V6_vmpyhvsrs, 47582}, // __builtin_HEXAGON_V6_vmpyhvsrs
+      {Intrinsic::hexagon_V6_vmpyhvsrs_128B, 47613}, // __builtin_HEXAGON_V6_vmpyhvsrs_128B
+      {Intrinsic::hexagon_V6_vmpyieoh, 47649}, // __builtin_HEXAGON_V6_vmpyieoh
+      {Intrinsic::hexagon_V6_vmpyieoh_128B, 47679}, // __builtin_HEXAGON_V6_vmpyieoh_128B
+      {Intrinsic::hexagon_V6_vmpyiewh_acc, 47714}, // __builtin_HEXAGON_V6_vmpyiewh_acc
+      {Intrinsic::hexagon_V6_vmpyiewh_acc_128B, 47748}, // __builtin_HEXAGON_V6_vmpyiewh_acc_128B
+      {Intrinsic::hexagon_V6_vmpyiewuh, 47787}, // __builtin_HEXAGON_V6_vmpyiewuh
+      {Intrinsic::hexagon_V6_vmpyiewuh_128B, 47818}, // __builtin_HEXAGON_V6_vmpyiewuh_128B
+      {Intrinsic::hexagon_V6_vmpyiewuh_acc, 47854}, // __builtin_HEXAGON_V6_vmpyiewuh_acc
+      {Intrinsic::hexagon_V6_vmpyiewuh_acc_128B, 47889}, // __builtin_HEXAGON_V6_vmpyiewuh_acc_128B
+      {Intrinsic::hexagon_V6_vmpyih, 47929}, // __builtin_HEXAGON_V6_vmpyih
+      {Intrinsic::hexagon_V6_vmpyih_128B, 47957}, // __builtin_HEXAGON_V6_vmpyih_128B
+      {Intrinsic::hexagon_V6_vmpyih_acc, 47990}, // __builtin_HEXAGON_V6_vmpyih_acc
+      {Intrinsic::hexagon_V6_vmpyih_acc_128B, 48022}, // __builtin_HEXAGON_V6_vmpyih_acc_128B
+      {Intrinsic::hexagon_V6_vmpyihb, 48059}, // __builtin_HEXAGON_V6_vmpyihb
+      {Intrinsic::hexagon_V6_vmpyihb_128B, 48088}, // __builtin_HEXAGON_V6_vmpyihb_128B
+      {Intrinsic::hexagon_V6_vmpyihb_acc, 48122}, // __builtin_HEXAGON_V6_vmpyihb_acc
+      {Intrinsic::hexagon_V6_vmpyihb_acc_128B, 48155}, // __builtin_HEXAGON_V6_vmpyihb_acc_128B
+      {Intrinsic::hexagon_V6_vmpyiowh, 48193}, // __builtin_HEXAGON_V6_vmpyiowh
+      {Intrinsic::hexagon_V6_vmpyiowh_128B, 48223}, // __builtin_HEXAGON_V6_vmpyiowh_128B
+      {Intrinsic::hexagon_V6_vmpyiwb, 48258}, // __builtin_HEXAGON_V6_vmpyiwb
+      {Intrinsic::hexagon_V6_vmpyiwb_128B, 48287}, // __builtin_HEXAGON_V6_vmpyiwb_128B
+      {Intrinsic::hexagon_V6_vmpyiwb_acc, 48321}, // __builtin_HEXAGON_V6_vmpyiwb_acc
+      {Intrinsic::hexagon_V6_vmpyiwb_acc_128B, 48354}, // __builtin_HEXAGON_V6_vmpyiwb_acc_128B
+      {Intrinsic::hexagon_V6_vmpyiwh, 48392}, // __builtin_HEXAGON_V6_vmpyiwh
+      {Intrinsic::hexagon_V6_vmpyiwh_128B, 48421}, // __builtin_HEXAGON_V6_vmpyiwh_128B
+      {Intrinsic::hexagon_V6_vmpyiwh_acc, 48455}, // __builtin_HEXAGON_V6_vmpyiwh_acc
+      {Intrinsic::hexagon_V6_vmpyiwh_acc_128B, 48488}, // __builtin_HEXAGON_V6_vmpyiwh_acc_128B
+      {Intrinsic::hexagon_V6_vmpyiwub, 48526}, // __builtin_HEXAGON_V6_vmpyiwub
+      {Intrinsic::hexagon_V6_vmpyiwub_128B, 48556}, // __builtin_HEXAGON_V6_vmpyiwub_128B
+      {Intrinsic::hexagon_V6_vmpyiwub_acc, 48591}, // __builtin_HEXAGON_V6_vmpyiwub_acc
+      {Intrinsic::hexagon_V6_vmpyiwub_acc_128B, 48625}, // __builtin_HEXAGON_V6_vmpyiwub_acc_128B
+      {Intrinsic::hexagon_V6_vmpyowh, 48664}, // __builtin_HEXAGON_V6_vmpyowh
+      {Intrinsic::hexagon_V6_vmpyowh_128B, 48693}, // __builtin_HEXAGON_V6_vmpyowh_128B
+      {Intrinsic::hexagon_V6_vmpyowh_64_acc, 48727}, // __builtin_HEXAGON_V6_vmpyowh_64_acc
+      {Intrinsic::hexagon_V6_vmpyowh_64_acc_128B, 48763}, // __builtin_HEXAGON_V6_vmpyowh_64_acc_128B
+      {Intrinsic::hexagon_V6_vmpyowh_rnd, 48804}, // __builtin_HEXAGON_V6_vmpyowh_rnd
+      {Intrinsic::hexagon_V6_vmpyowh_rnd_128B, 48837}, // __builtin_HEXAGON_V6_vmpyowh_rnd_128B
+      {Intrinsic::hexagon_V6_vmpyowh_rnd_sacc, 48875}, // __builtin_HEXAGON_V6_vmpyowh_rnd_sacc
+      {Intrinsic::hexagon_V6_vmpyowh_rnd_sacc_128B, 48913}, // __builtin_HEXAGON_V6_vmpyowh_rnd_sacc_128B
+      {Intrinsic::hexagon_V6_vmpyowh_sacc, 48956}, // __builtin_HEXAGON_V6_vmpyowh_sacc
+      {Intrinsic::hexagon_V6_vmpyowh_sacc_128B, 48990}, // __builtin_HEXAGON_V6_vmpyowh_sacc_128B
+      {Intrinsic::hexagon_V6_vmpyub, 49029}, // __builtin_HEXAGON_V6_vmpyub
+      {Intrinsic::hexagon_V6_vmpyub_128B, 49057}, // __builtin_HEXAGON_V6_vmpyub_128B
+      {Intrinsic::hexagon_V6_vmpyub_acc, 49090}, // __builtin_HEXAGON_V6_vmpyub_acc
+      {Intrinsic::hexagon_V6_vmpyub_acc_128B, 49122}, // __builtin_HEXAGON_V6_vmpyub_acc_128B
+      {Intrinsic::hexagon_V6_vmpyubv, 49159}, // __builtin_HEXAGON_V6_vmpyubv
+      {Intrinsic::hexagon_V6_vmpyubv_128B, 49188}, // __builtin_HEXAGON_V6_vmpyubv_128B
+      {Intrinsic::hexagon_V6_vmpyubv_acc, 49222}, // __builtin_HEXAGON_V6_vmpyubv_acc
+      {Intrinsic::hexagon_V6_vmpyubv_acc_128B, 49255}, // __builtin_HEXAGON_V6_vmpyubv_acc_128B
+      {Intrinsic::hexagon_V6_vmpyuh, 49293}, // __builtin_HEXAGON_V6_vmpyuh
+      {Intrinsic::hexagon_V6_vmpyuh_128B, 49321}, // __builtin_HEXAGON_V6_vmpyuh_128B
+      {Intrinsic::hexagon_V6_vmpyuh_acc, 49354}, // __builtin_HEXAGON_V6_vmpyuh_acc
+      {Intrinsic::hexagon_V6_vmpyuh_acc_128B, 49386}, // __builtin_HEXAGON_V6_vmpyuh_acc_128B
+      {Intrinsic::hexagon_V6_vmpyuhe, 49423}, // __builtin_HEXAGON_V6_vmpyuhe
+      {Intrinsic::hexagon_V6_vmpyuhe_128B, 49452}, // __builtin_HEXAGON_V6_vmpyuhe_128B
+      {Intrinsic::hexagon_V6_vmpyuhe_acc, 49486}, // __builtin_HEXAGON_V6_vmpyuhe_acc
+      {Intrinsic::hexagon_V6_vmpyuhe_acc_128B, 49519}, // __builtin_HEXAGON_V6_vmpyuhe_acc_128B
+      {Intrinsic::hexagon_V6_vmpyuhv, 49557}, // __builtin_HEXAGON_V6_vmpyuhv
+      {Intrinsic::hexagon_V6_vmpyuhv_128B, 49586}, // __builtin_HEXAGON_V6_vmpyuhv_128B
+      {Intrinsic::hexagon_V6_vmpyuhv_acc, 49620}, // __builtin_HEXAGON_V6_vmpyuhv_acc
+      {Intrinsic::hexagon_V6_vmpyuhv_acc_128B, 49653}, // __builtin_HEXAGON_V6_vmpyuhv_acc_128B
+      {Intrinsic::hexagon_V6_vmux, 49691}, // __builtin_HEXAGON_V6_vmux
+      {Intrinsic::hexagon_V6_vmux_128B, 49717}, // __builtin_HEXAGON_V6_vmux_128B
+      {Intrinsic::hexagon_V6_vnavgb, 49748}, // __builtin_HEXAGON_V6_vnavgb
+      {Intrinsic::hexagon_V6_vnavgb_128B, 49776}, // __builtin_HEXAGON_V6_vnavgb_128B
+      {Intrinsic::hexagon_V6_vnavgh, 49809}, // __builtin_HEXAGON_V6_vnavgh
+      {Intrinsic::hexagon_V6_vnavgh_128B, 49837}, // __builtin_HEXAGON_V6_vnavgh_128B
+      {Intrinsic::hexagon_V6_vnavgub, 49870}, // __builtin_HEXAGON_V6_vnavgub
+      {Intrinsic::hexagon_V6_vnavgub_128B, 49899}, // __builtin_HEXAGON_V6_vnavgub_128B
+      {Intrinsic::hexagon_V6_vnavgw, 49933}, // __builtin_HEXAGON_V6_vnavgw
+      {Intrinsic::hexagon_V6_vnavgw_128B, 49961}, // __builtin_HEXAGON_V6_vnavgw_128B
+      {Intrinsic::hexagon_V6_vnormamth, 49994}, // __builtin_HEXAGON_V6_vnormamth
+      {Intrinsic::hexagon_V6_vnormamth_128B, 50025}, // __builtin_HEXAGON_V6_vnormamth_128B
+      {Intrinsic::hexagon_V6_vnormamtw, 50061}, // __builtin_HEXAGON_V6_vnormamtw
+      {Intrinsic::hexagon_V6_vnormamtw_128B, 50092}, // __builtin_HEXAGON_V6_vnormamtw_128B
+      {Intrinsic::hexagon_V6_vnot, 50128}, // __builtin_HEXAGON_V6_vnot
+      {Intrinsic::hexagon_V6_vnot_128B, 50154}, // __builtin_HEXAGON_V6_vnot_128B
+      {Intrinsic::hexagon_V6_vor, 50185}, // __builtin_HEXAGON_V6_vor
+      {Intrinsic::hexagon_V6_vor_128B, 50210}, // __builtin_HEXAGON_V6_vor_128B
+      {Intrinsic::hexagon_V6_vpackeb, 50240}, // __builtin_HEXAGON_V6_vpackeb
+      {Intrinsic::hexagon_V6_vpackeb_128B, 50269}, // __builtin_HEXAGON_V6_vpackeb_128B
+      {Intrinsic::hexagon_V6_vpackeh, 50303}, // __builtin_HEXAGON_V6_vpackeh
+      {Intrinsic::hexagon_V6_vpackeh_128B, 50332}, // __builtin_HEXAGON_V6_vpackeh_128B
+      {Intrinsic::hexagon_V6_vpackhb_sat, 50366}, // __builtin_HEXAGON_V6_vpackhb_sat
+      {Intrinsic::hexagon_V6_vpackhb_sat_128B, 50399}, // __builtin_HEXAGON_V6_vpackhb_sat_128B
+      {Intrinsic::hexagon_V6_vpackhub_sat, 50437}, // __builtin_HEXAGON_V6_vpackhub_sat
+      {Intrinsic::hexagon_V6_vpackhub_sat_128B, 50471}, // __builtin_HEXAGON_V6_vpackhub_sat_128B
+      {Intrinsic::hexagon_V6_vpackob, 50510}, // __builtin_HEXAGON_V6_vpackob
+      {Intrinsic::hexagon_V6_vpackob_128B, 50539}, // __builtin_HEXAGON_V6_vpackob_128B
+      {Intrinsic::hexagon_V6_vpackoh, 50573}, // __builtin_HEXAGON_V6_vpackoh
+      {Intrinsic::hexagon_V6_vpackoh_128B, 50602}, // __builtin_HEXAGON_V6_vpackoh_128B
+      {Intrinsic::hexagon_V6_vpackwh_sat, 50636}, // __builtin_HEXAGON_V6_vpackwh_sat
+      {Intrinsic::hexagon_V6_vpackwh_sat_128B, 50669}, // __builtin_HEXAGON_V6_vpackwh_sat_128B
+      {Intrinsic::hexagon_V6_vpackwuh_sat, 50707}, // __builtin_HEXAGON_V6_vpackwuh_sat
+      {Intrinsic::hexagon_V6_vpackwuh_sat_128B, 50741}, // __builtin_HEXAGON_V6_vpackwuh_sat_128B
+      {Intrinsic::hexagon_V6_vpopcounth, 50780}, // __builtin_HEXAGON_V6_vpopcounth
+      {Intrinsic::hexagon_V6_vpopcounth_128B, 50812}, // __builtin_HEXAGON_V6_vpopcounth_128B
+      {Intrinsic::hexagon_V6_vprefixqb, 50849}, // __builtin_HEXAGON_V6_vprefixqb
+      {Intrinsic::hexagon_V6_vprefixqb_128B, 50880}, // __builtin_HEXAGON_V6_vprefixqb_128B
+      {Intrinsic::hexagon_V6_vprefixqh, 50916}, // __builtin_HEXAGON_V6_vprefixqh
+      {Intrinsic::hexagon_V6_vprefixqh_128B, 50947}, // __builtin_HEXAGON_V6_vprefixqh_128B
+      {Intrinsic::hexagon_V6_vprefixqw, 50983}, // __builtin_HEXAGON_V6_vprefixqw
+      {Intrinsic::hexagon_V6_vprefixqw_128B, 51014}, // __builtin_HEXAGON_V6_vprefixqw_128B
+      {Intrinsic::hexagon_V6_vrdelta, 51050}, // __builtin_HEXAGON_V6_vrdelta
+      {Intrinsic::hexagon_V6_vrdelta_128B, 51079}, // __builtin_HEXAGON_V6_vrdelta_128B
+      {Intrinsic::hexagon_V6_vrmpybub_rtt, 51113}, // __builtin_HEXAGON_V6_vrmpybub_rtt
+      {Intrinsic::hexagon_V6_vrmpybub_rtt_128B, 51147}, // __builtin_HEXAGON_V6_vrmpybub_rtt_128B
+      {Intrinsic::hexagon_V6_vrmpybub_rtt_acc, 51186}, // __builtin_HEXAGON_V6_vrmpybub_rtt_acc
+      {Intrinsic::hexagon_V6_vrmpybub_rtt_acc_128B, 51224}, // __builtin_HEXAGON_V6_vrmpybub_rtt_acc_128B
+      {Intrinsic::hexagon_V6_vrmpybus, 51267}, // __builtin_HEXAGON_V6_vrmpybus
+      {Intrinsic::hexagon_V6_vrmpybus_128B, 51297}, // __builtin_HEXAGON_V6_vrmpybus_128B
+      {Intrinsic::hexagon_V6_vrmpybus_acc, 51332}, // __builtin_HEXAGON_V6_vrmpybus_acc
+      {Intrinsic::hexagon_V6_vrmpybus_acc_128B, 51366}, // __builtin_HEXAGON_V6_vrmpybus_acc_128B
+      {Intrinsic::hexagon_V6_vrmpybusi, 51405}, // __builtin_HEXAGON_V6_vrmpybusi
+      {Intrinsic::hexagon_V6_vrmpybusi_128B, 51436}, // __builtin_HEXAGON_V6_vrmpybusi_128B
+      {Intrinsic::hexagon_V6_vrmpybusi_acc, 51472}, // __builtin_HEXAGON_V6_vrmpybusi_acc
+      {Intrinsic::hexagon_V6_vrmpybusi_acc_128B, 51507}, // __builtin_HEXAGON_V6_vrmpybusi_acc_128B
+      {Intrinsic::hexagon_V6_vrmpybusv, 51547}, // __builtin_HEXAGON_V6_vrmpybusv
+      {Intrinsic::hexagon_V6_vrmpybusv_128B, 51578}, // __builtin_HEXAGON_V6_vrmpybusv_128B
+      {Intrinsic::hexagon_V6_vrmpybusv_acc, 51614}, // __builtin_HEXAGON_V6_vrmpybusv_acc
+      {Intrinsic::hexagon_V6_vrmpybusv_acc_128B, 51649}, // __builtin_HEXAGON_V6_vrmpybusv_acc_128B
+      {Intrinsic::hexagon_V6_vrmpybv, 51689}, // __builtin_HEXAGON_V6_vrmpybv
+      {Intrinsic::hexagon_V6_vrmpybv_128B, 51718}, // __builtin_HEXAGON_V6_vrmpybv_128B
+      {Intrinsic::hexagon_V6_vrmpybv_acc, 51752}, // __builtin_HEXAGON_V6_vrmpybv_acc
+      {Intrinsic::hexagon_V6_vrmpybv_acc_128B, 51785}, // __builtin_HEXAGON_V6_vrmpybv_acc_128B
+      {Intrinsic::hexagon_V6_vrmpyub, 51823}, // __builtin_HEXAGON_V6_vrmpyub
+      {Intrinsic::hexagon_V6_vrmpyub_128B, 51852}, // __builtin_HEXAGON_V6_vrmpyub_128B
+      {Intrinsic::hexagon_V6_vrmpyub_acc, 51886}, // __builtin_HEXAGON_V6_vrmpyub_acc
+      {Intrinsic::hexagon_V6_vrmpyub_acc_128B, 51919}, // __builtin_HEXAGON_V6_vrmpyub_acc_128B
+      {Intrinsic::hexagon_V6_vrmpyub_rtt, 51957}, // __builtin_HEXAGON_V6_vrmpyub_rtt
+      {Intrinsic::hexagon_V6_vrmpyub_rtt_128B, 51990}, // __builtin_HEXAGON_V6_vrmpyub_rtt_128B
+      {Intrinsic::hexagon_V6_vrmpyub_rtt_acc, 52028}, // __builtin_HEXAGON_V6_vrmpyub_rtt_acc
+      {Intrinsic::hexagon_V6_vrmpyub_rtt_acc_128B, 52065}, // __builtin_HEXAGON_V6_vrmpyub_rtt_acc_128B
+      {Intrinsic::hexagon_V6_vrmpyubi, 52107}, // __builtin_HEXAGON_V6_vrmpyubi
+      {Intrinsic::hexagon_V6_vrmpyubi_128B, 52137}, // __builtin_HEXAGON_V6_vrmpyubi_128B
+      {Intrinsic::hexagon_V6_vrmpyubi_acc, 52172}, // __builtin_HEXAGON_V6_vrmpyubi_acc
+      {Intrinsic::hexagon_V6_vrmpyubi_acc_128B, 52206}, // __builtin_HEXAGON_V6_vrmpyubi_acc_128B
+      {Intrinsic::hexagon_V6_vrmpyubv, 52245}, // __builtin_HEXAGON_V6_vrmpyubv
+      {Intrinsic::hexagon_V6_vrmpyubv_128B, 52275}, // __builtin_HEXAGON_V6_vrmpyubv_128B
+      {Intrinsic::hexagon_V6_vrmpyubv_acc, 52310}, // __builtin_HEXAGON_V6_vrmpyubv_acc
+      {Intrinsic::hexagon_V6_vrmpyubv_acc_128B, 52344}, // __builtin_HEXAGON_V6_vrmpyubv_acc_128B
+      {Intrinsic::hexagon_V6_vror, 52383}, // __builtin_HEXAGON_V6_vror
+      {Intrinsic::hexagon_V6_vror_128B, 52409}, // __builtin_HEXAGON_V6_vror_128B
+      {Intrinsic::hexagon_V6_vroundhb, 52440}, // __builtin_HEXAGON_V6_vroundhb
+      {Intrinsic::hexagon_V6_vroundhb_128B, 52470}, // __builtin_HEXAGON_V6_vroundhb_128B
+      {Intrinsic::hexagon_V6_vroundhub, 52505}, // __builtin_HEXAGON_V6_vroundhub
+      {Intrinsic::hexagon_V6_vroundhub_128B, 52536}, // __builtin_HEXAGON_V6_vroundhub_128B
+      {Intrinsic::hexagon_V6_vrounduhub, 52572}, // __builtin_HEXAGON_V6_vrounduhub
+      {Intrinsic::hexagon_V6_vrounduhub_128B, 52604}, // __builtin_HEXAGON_V6_vrounduhub_128B
+      {Intrinsic::hexagon_V6_vrounduwuh, 52641}, // __builtin_HEXAGON_V6_vrounduwuh
+      {Intrinsic::hexagon_V6_vrounduwuh_128B, 52673}, // __builtin_HEXAGON_V6_vrounduwuh_128B
+      {Intrinsic::hexagon_V6_vroundwh, 52710}, // __builtin_HEXAGON_V6_vroundwh
+      {Intrinsic::hexagon_V6_vroundwh_128B, 52740}, // __builtin_HEXAGON_V6_vroundwh_128B
+      {Intrinsic::hexagon_V6_vroundwuh, 52775}, // __builtin_HEXAGON_V6_vroundwuh
+      {Intrinsic::hexagon_V6_vroundwuh_128B, 52806}, // __builtin_HEXAGON_V6_vroundwuh_128B
+      {Intrinsic::hexagon_V6_vrsadubi, 52842}, // __builtin_HEXAGON_V6_vrsadubi
+      {Intrinsic::hexagon_V6_vrsadubi_128B, 52872}, // __builtin_HEXAGON_V6_vrsadubi_128B
+      {Intrinsic::hexagon_V6_vrsadubi_acc, 52907}, // __builtin_HEXAGON_V6_vrsadubi_acc
+      {Intrinsic::hexagon_V6_vrsadubi_acc_128B, 52941}, // __builtin_HEXAGON_V6_vrsadubi_acc_128B
+      {Intrinsic::hexagon_V6_vsathub, 52980}, // __builtin_HEXAGON_V6_vsathub
+      {Intrinsic::hexagon_V6_vsathub_128B, 53009}, // __builtin_HEXAGON_V6_vsathub_128B
+      {Intrinsic::hexagon_V6_vsatuwuh, 53043}, // __builtin_HEXAGON_V6_vsatuwuh
+      {Intrinsic::hexagon_V6_vsatuwuh_128B, 53073}, // __builtin_HEXAGON_V6_vsatuwuh_128B
+      {Intrinsic::hexagon_V6_vsatwh, 53108}, // __builtin_HEXAGON_V6_vsatwh
+      {Intrinsic::hexagon_V6_vsatwh_128B, 53136}, // __builtin_HEXAGON_V6_vsatwh_128B
+      {Intrinsic::hexagon_V6_vsb, 53169}, // __builtin_HEXAGON_V6_vsb
+      {Intrinsic::hexagon_V6_vsb_128B, 53194}, // __builtin_HEXAGON_V6_vsb_128B
+      {Intrinsic::hexagon_V6_vscattermh, 53224}, // __builtin_HEXAGON_V6_vscattermh
+      {Intrinsic::hexagon_V6_vscattermh_128B, 53256}, // __builtin_HEXAGON_V6_vscattermh_128B
+      {Intrinsic::hexagon_V6_vscattermh_add, 53293}, // __builtin_HEXAGON_V6_vscattermh_add
+      {Intrinsic::hexagon_V6_vscattermh_add_128B, 53329}, // __builtin_HEXAGON_V6_vscattermh_add_128B
+      {Intrinsic::hexagon_V6_vscattermhq, 53370}, // __builtin_HEXAGON_V6_vscattermhq
+      {Intrinsic::hexagon_V6_vscattermhq_128B, 53403}, // __builtin_HEXAGON_V6_vscattermhq_128B
+      {Intrinsic::hexagon_V6_vscattermhw, 53441}, // __builtin_HEXAGON_V6_vscattermhw
+      {Intrinsic::hexagon_V6_vscattermhw_128B, 53474}, // __builtin_HEXAGON_V6_vscattermhw_128B
+      {Intrinsic::hexagon_V6_vscattermhw_add, 53512}, // __builtin_HEXAGON_V6_vscattermhw_add
+      {Intrinsic::hexagon_V6_vscattermhw_add_128B, 53549}, // __builtin_HEXAGON_V6_vscattermhw_add_128B
+      {Intrinsic::hexagon_V6_vscattermhwq, 53591}, // __builtin_HEXAGON_V6_vscattermhwq
+      {Intrinsic::hexagon_V6_vscattermhwq_128B, 53625}, // __builtin_HEXAGON_V6_vscattermhwq_128B
+      {Intrinsic::hexagon_V6_vscattermw, 53664}, // __builtin_HEXAGON_V6_vscattermw
+      {Intrinsic::hexagon_V6_vscattermw_128B, 53696}, // __builtin_HEXAGON_V6_vscattermw_128B
+      {Intrinsic::hexagon_V6_vscattermw_add, 53733}, // __builtin_HEXAGON_V6_vscattermw_add
+      {Intrinsic::hexagon_V6_vscattermw_add_128B, 53769}, // __builtin_HEXAGON_V6_vscattermw_add_128B
+      {Intrinsic::hexagon_V6_vscattermwq, 53810}, // __builtin_HEXAGON_V6_vscattermwq
+      {Intrinsic::hexagon_V6_vscattermwq_128B, 53843}, // __builtin_HEXAGON_V6_vscattermwq_128B
+      {Intrinsic::hexagon_V6_vsh, 53881}, // __builtin_HEXAGON_V6_vsh
+      {Intrinsic::hexagon_V6_vsh_128B, 53906}, // __builtin_HEXAGON_V6_vsh_128B
+      {Intrinsic::hexagon_V6_vshufeh, 53936}, // __builtin_HEXAGON_V6_vshufeh
+      {Intrinsic::hexagon_V6_vshufeh_128B, 53965}, // __builtin_HEXAGON_V6_vshufeh_128B
+      {Intrinsic::hexagon_V6_vshuffb, 53999}, // __builtin_HEXAGON_V6_vshuffb
+      {Intrinsic::hexagon_V6_vshuffb_128B, 54028}, // __builtin_HEXAGON_V6_vshuffb_128B
+      {Intrinsic::hexagon_V6_vshuffeb, 54062}, // __builtin_HEXAGON_V6_vshuffeb
+      {Intrinsic::hexagon_V6_vshuffeb_128B, 54092}, // __builtin_HEXAGON_V6_vshuffeb_128B
+      {Intrinsic::hexagon_V6_vshuffh, 54127}, // __builtin_HEXAGON_V6_vshuffh
+      {Intrinsic::hexagon_V6_vshuffh_128B, 54156}, // __builtin_HEXAGON_V6_vshuffh_128B
+      {Intrinsic::hexagon_V6_vshuffob, 54190}, // __builtin_HEXAGON_V6_vshuffob
+      {Intrinsic::hexagon_V6_vshuffob_128B, 54220}, // __builtin_HEXAGON_V6_vshuffob_128B
+      {Intrinsic::hexagon_V6_vshuffvdd, 54255}, // __builtin_HEXAGON_V6_vshuffvdd
+      {Intrinsic::hexagon_V6_vshuffvdd_128B, 54286}, // __builtin_HEXAGON_V6_vshuffvdd_128B
+      {Intrinsic::hexagon_V6_vshufoeb, 54322}, // __builtin_HEXAGON_V6_vshufoeb
+      {Intrinsic::hexagon_V6_vshufoeb_128B, 54352}, // __builtin_HEXAGON_V6_vshufoeb_128B
+      {Intrinsic::hexagon_V6_vshufoeh, 54387}, // __builtin_HEXAGON_V6_vshufoeh
+      {Intrinsic::hexagon_V6_vshufoeh_128B, 54417}, // __builtin_HEXAGON_V6_vshufoeh_128B
+      {Intrinsic::hexagon_V6_vshufoh, 54452}, // __builtin_HEXAGON_V6_vshufoh
+      {Intrinsic::hexagon_V6_vshufoh_128B, 54481}, // __builtin_HEXAGON_V6_vshufoh_128B
+      {Intrinsic::hexagon_V6_vsubb, 54515}, // __builtin_HEXAGON_V6_vsubb
+      {Intrinsic::hexagon_V6_vsubb_128B, 54542}, // __builtin_HEXAGON_V6_vsubb_128B
+      {Intrinsic::hexagon_V6_vsubb_dv, 54574}, // __builtin_HEXAGON_V6_vsubb_dv
+      {Intrinsic::hexagon_V6_vsubb_dv_128B, 54604}, // __builtin_HEXAGON_V6_vsubb_dv_128B
+      {Intrinsic::hexagon_V6_vsubbnq, 54639}, // __builtin_HEXAGON_V6_vsubbnq
+      {Intrinsic::hexagon_V6_vsubbnq_128B, 54668}, // __builtin_HEXAGON_V6_vsubbnq_128B
+      {Intrinsic::hexagon_V6_vsubbq, 54702}, // __builtin_HEXAGON_V6_vsubbq
+      {Intrinsic::hexagon_V6_vsubbq_128B, 54730}, // __builtin_HEXAGON_V6_vsubbq_128B
+      {Intrinsic::hexagon_V6_vsubbsat, 54763}, // __builtin_HEXAGON_V6_vsubbsat
+      {Intrinsic::hexagon_V6_vsubbsat_128B, 54793}, // __builtin_HEXAGON_V6_vsubbsat_128B
+      {Intrinsic::hexagon_V6_vsubbsat_dv, 54828}, // __builtin_HEXAGON_V6_vsubbsat_dv
+      {Intrinsic::hexagon_V6_vsubbsat_dv_128B, 54861}, // __builtin_HEXAGON_V6_vsubbsat_dv_128B
+      {Intrinsic::hexagon_V6_vsubh, 54966}, // __builtin_HEXAGON_V6_vsubh
+      {Intrinsic::hexagon_V6_vsubh_128B, 54993}, // __builtin_HEXAGON_V6_vsubh_128B
+      {Intrinsic::hexagon_V6_vsubh_dv, 55025}, // __builtin_HEXAGON_V6_vsubh_dv
+      {Intrinsic::hexagon_V6_vsubh_dv_128B, 55055}, // __builtin_HEXAGON_V6_vsubh_dv_128B
+      {Intrinsic::hexagon_V6_vsubhnq, 55090}, // __builtin_HEXAGON_V6_vsubhnq
+      {Intrinsic::hexagon_V6_vsubhnq_128B, 55119}, // __builtin_HEXAGON_V6_vsubhnq_128B
+      {Intrinsic::hexagon_V6_vsubhq, 55153}, // __builtin_HEXAGON_V6_vsubhq
+      {Intrinsic::hexagon_V6_vsubhq_128B, 55181}, // __builtin_HEXAGON_V6_vsubhq_128B
+      {Intrinsic::hexagon_V6_vsubhsat, 55214}, // __builtin_HEXAGON_V6_vsubhsat
+      {Intrinsic::hexagon_V6_vsubhsat_128B, 55244}, // __builtin_HEXAGON_V6_vsubhsat_128B
+      {Intrinsic::hexagon_V6_vsubhsat_dv, 55279}, // __builtin_HEXAGON_V6_vsubhsat_dv
+      {Intrinsic::hexagon_V6_vsubhsat_dv_128B, 55312}, // __builtin_HEXAGON_V6_vsubhsat_dv_128B
+      {Intrinsic::hexagon_V6_vsubhw, 55350}, // __builtin_HEXAGON_V6_vsubhw
+      {Intrinsic::hexagon_V6_vsubhw_128B, 55378}, // __builtin_HEXAGON_V6_vsubhw_128B
+      {Intrinsic::hexagon_V6_vsububh, 55411}, // __builtin_HEXAGON_V6_vsububh
+      {Intrinsic::hexagon_V6_vsububh_128B, 55440}, // __builtin_HEXAGON_V6_vsububh_128B
+      {Intrinsic::hexagon_V6_vsububsat, 55474}, // __builtin_HEXAGON_V6_vsububsat
+      {Intrinsic::hexagon_V6_vsububsat_128B, 55505}, // __builtin_HEXAGON_V6_vsububsat_128B
+      {Intrinsic::hexagon_V6_vsububsat_dv, 55541}, // __builtin_HEXAGON_V6_vsububsat_dv
+      {Intrinsic::hexagon_V6_vsububsat_dv_128B, 55575}, // __builtin_HEXAGON_V6_vsububsat_dv_128B
+      {Intrinsic::hexagon_V6_vsubububb_sat, 55614}, // __builtin_HEXAGON_V6_vsubububb_sat
+      {Intrinsic::hexagon_V6_vsubububb_sat_128B, 55649}, // __builtin_HEXAGON_V6_vsubububb_sat_128B
+      {Intrinsic::hexagon_V6_vsubuhsat, 55689}, // __builtin_HEXAGON_V6_vsubuhsat
+      {Intrinsic::hexagon_V6_vsubuhsat_128B, 55720}, // __builtin_HEXAGON_V6_vsubuhsat_128B
+      {Intrinsic::hexagon_V6_vsubuhsat_dv, 55756}, // __builtin_HEXAGON_V6_vsubuhsat_dv
+      {Intrinsic::hexagon_V6_vsubuhsat_dv_128B, 55790}, // __builtin_HEXAGON_V6_vsubuhsat_dv_128B
+      {Intrinsic::hexagon_V6_vsubuhw, 55829}, // __builtin_HEXAGON_V6_vsubuhw
+      {Intrinsic::hexagon_V6_vsubuhw_128B, 55858}, // __builtin_HEXAGON_V6_vsubuhw_128B
+      {Intrinsic::hexagon_V6_vsubuwsat, 55892}, // __builtin_HEXAGON_V6_vsubuwsat
+      {Intrinsic::hexagon_V6_vsubuwsat_128B, 55923}, // __builtin_HEXAGON_V6_vsubuwsat_128B
+      {Intrinsic::hexagon_V6_vsubuwsat_dv, 55959}, // __builtin_HEXAGON_V6_vsubuwsat_dv
+      {Intrinsic::hexagon_V6_vsubuwsat_dv_128B, 55993}, // __builtin_HEXAGON_V6_vsubuwsat_dv_128B
+      {Intrinsic::hexagon_V6_vsubw, 56032}, // __builtin_HEXAGON_V6_vsubw
+      {Intrinsic::hexagon_V6_vsubw_128B, 56059}, // __builtin_HEXAGON_V6_vsubw_128B
+      {Intrinsic::hexagon_V6_vsubw_dv, 56091}, // __builtin_HEXAGON_V6_vsubw_dv
+      {Intrinsic::hexagon_V6_vsubw_dv_128B, 56121}, // __builtin_HEXAGON_V6_vsubw_dv_128B
+      {Intrinsic::hexagon_V6_vsubwnq, 56156}, // __builtin_HEXAGON_V6_vsubwnq
+      {Intrinsic::hexagon_V6_vsubwnq_128B, 56185}, // __builtin_HEXAGON_V6_vsubwnq_128B
+      {Intrinsic::hexagon_V6_vsubwq, 56219}, // __builtin_HEXAGON_V6_vsubwq
+      {Intrinsic::hexagon_V6_vsubwq_128B, 56247}, // __builtin_HEXAGON_V6_vsubwq_128B
+      {Intrinsic::hexagon_V6_vsubwsat, 56280}, // __builtin_HEXAGON_V6_vsubwsat
+      {Intrinsic::hexagon_V6_vsubwsat_128B, 56310}, // __builtin_HEXAGON_V6_vsubwsat_128B
+      {Intrinsic::hexagon_V6_vsubwsat_dv, 56345}, // __builtin_HEXAGON_V6_vsubwsat_dv
+      {Intrinsic::hexagon_V6_vsubwsat_dv_128B, 56378}, // __builtin_HEXAGON_V6_vsubwsat_dv_128B
+      {Intrinsic::hexagon_V6_vswap, 56416}, // __builtin_HEXAGON_V6_vswap
+      {Intrinsic::hexagon_V6_vswap_128B, 56443}, // __builtin_HEXAGON_V6_vswap_128B
+      {Intrinsic::hexagon_V6_vtmpyb, 56475}, // __builtin_HEXAGON_V6_vtmpyb
+      {Intrinsic::hexagon_V6_vtmpyb_128B, 56503}, // __builtin_HEXAGON_V6_vtmpyb_128B
+      {Intrinsic::hexagon_V6_vtmpyb_acc, 56536}, // __builtin_HEXAGON_V6_vtmpyb_acc
+      {Intrinsic::hexagon_V6_vtmpyb_acc_128B, 56568}, // __builtin_HEXAGON_V6_vtmpyb_acc_128B
+      {Intrinsic::hexagon_V6_vtmpybus, 56605}, // __builtin_HEXAGON_V6_vtmpybus
+      {Intrinsic::hexagon_V6_vtmpybus_128B, 56635}, // __builtin_HEXAGON_V6_vtmpybus_128B
+      {Intrinsic::hexagon_V6_vtmpybus_acc, 56670}, // __builtin_HEXAGON_V6_vtmpybus_acc
+      {Intrinsic::hexagon_V6_vtmpybus_acc_128B, 56704}, // __builtin_HEXAGON_V6_vtmpybus_acc_128B
+      {Intrinsic::hexagon_V6_vtmpyhb, 56743}, // __builtin_HEXAGON_V6_vtmpyhb
+      {Intrinsic::hexagon_V6_vtmpyhb_128B, 56772}, // __builtin_HEXAGON_V6_vtmpyhb_128B
+      {Intrinsic::hexagon_V6_vtmpyhb_acc, 56806}, // __builtin_HEXAGON_V6_vtmpyhb_acc
+      {Intrinsic::hexagon_V6_vtmpyhb_acc_128B, 56839}, // __builtin_HEXAGON_V6_vtmpyhb_acc_128B
+      {Intrinsic::hexagon_V6_vunpackb, 56877}, // __builtin_HEXAGON_V6_vunpackb
+      {Intrinsic::hexagon_V6_vunpackb_128B, 56907}, // __builtin_HEXAGON_V6_vunpackb_128B
+      {Intrinsic::hexagon_V6_vunpackh, 56942}, // __builtin_HEXAGON_V6_vunpackh
+      {Intrinsic::hexagon_V6_vunpackh_128B, 56972}, // __builtin_HEXAGON_V6_vunpackh_128B
+      {Intrinsic::hexagon_V6_vunpackob, 57007}, // __builtin_HEXAGON_V6_vunpackob
+      {Intrinsic::hexagon_V6_vunpackob_128B, 57038}, // __builtin_HEXAGON_V6_vunpackob_128B
+      {Intrinsic::hexagon_V6_vunpackoh, 57074}, // __builtin_HEXAGON_V6_vunpackoh
+      {Intrinsic::hexagon_V6_vunpackoh_128B, 57105}, // __builtin_HEXAGON_V6_vunpackoh_128B
+      {Intrinsic::hexagon_V6_vunpackub, 57141}, // __builtin_HEXAGON_V6_vunpackub
+      {Intrinsic::hexagon_V6_vunpackub_128B, 57172}, // __builtin_HEXAGON_V6_vunpackub_128B
+      {Intrinsic::hexagon_V6_vunpackuh, 57208}, // __builtin_HEXAGON_V6_vunpackuh
+      {Intrinsic::hexagon_V6_vunpackuh_128B, 57239}, // __builtin_HEXAGON_V6_vunpackuh_128B
+      {Intrinsic::hexagon_V6_vxor, 57275}, // __builtin_HEXAGON_V6_vxor
+      {Intrinsic::hexagon_V6_vxor_128B, 57301}, // __builtin_HEXAGON_V6_vxor_128B
+      {Intrinsic::hexagon_V6_vzb, 57332}, // __builtin_HEXAGON_V6_vzb
+      {Intrinsic::hexagon_V6_vzb_128B, 57357}, // __builtin_HEXAGON_V6_vzb_128B
+      {Intrinsic::hexagon_V6_vzh, 57387}, // __builtin_HEXAGON_V6_vzh
+      {Intrinsic::hexagon_V6_vzh_128B, 57412}, // __builtin_HEXAGON_V6_vzh_128B
+      {Intrinsic::hexagon_Y2_dccleana, 57442}, // __builtin_HEXAGON_Y2_dccleana
+      {Intrinsic::hexagon_Y2_dccleaninva, 57472}, // __builtin_HEXAGON_Y2_dccleaninva
+      {Intrinsic::hexagon_Y2_dcinva, 57505}, // __builtin_HEXAGON_Y2_dcinva
+      {Intrinsic::hexagon_Y2_dczeroa, 57533}, // __builtin_HEXAGON_Y2_dczeroa
+      {Intrinsic::hexagon_Y4_l2fetch, 57562}, // __builtin_HEXAGON_Y4_l2fetch
+      {Intrinsic::hexagon_Y5_l2fetch, 57591}, // __builtin_HEXAGON_Y5_l2fetch
+      {Intrinsic::hexagon_prefetch, 57857}, // __builtin_HEXAGON_prefetch
+      {Intrinsic::hexagon_V6_vaddcarry, 33549}, // __builtin_HEXAGON_v6_vaddcarry
+      {Intrinsic::hexagon_V6_vaddcarry_128B, 33580}, // __builtin_HEXAGON_v6_vaddcarry_128B
+      {Intrinsic::hexagon_V6_vsubcarry, 54899}, // __builtin_HEXAGON_v6_vsubcarry
+      {Intrinsic::hexagon_V6_vsubcarry_128B, 54930}, // __builtin_HEXAGON_v6_vsubcarry_128B
+      {Intrinsic::hexagon_mm256i_vaddw, 57833}, // __builtin__mm256i_vaddw
+      {Intrinsic::hexagon_S2_storerb_pbr, 28181}, // __builtin_brev_stb
+      {Intrinsic::hexagon_S2_storerd_pbr, 28200}, // __builtin_brev_std
+      {Intrinsic::hexagon_S2_storerh_pbr, 28240}, // __builtin_brev_sth
+      {Intrinsic::hexagon_S2_storerf_pbr, 28219}, // __builtin_brev_sthhi
+      {Intrinsic::hexagon_S2_storeri_pbr, 28259}, // __builtin_brev_stw
+      {Intrinsic::hexagon_circ_ldb, 57620}, // __builtin_circ_ldb
+      {Intrinsic::hexagon_circ_ldd, 57639}, // __builtin_circ_ldd
+      {Intrinsic::hexagon_circ_ldh, 57658}, // __builtin_circ_ldh
+      {Intrinsic::hexagon_circ_ldub, 57677}, // __builtin_circ_ldub
+      {Intrinsic::hexagon_circ_lduh, 57697}, // __builtin_circ_lduh
+      {Intrinsic::hexagon_circ_ldw, 57717}, // __builtin_circ_ldw
+      {Intrinsic::hexagon_circ_stb, 57736}, // __builtin_circ_stb
+      {Intrinsic::hexagon_circ_std, 57755}, // __builtin_circ_std
+      {Intrinsic::hexagon_circ_sth, 57774}, // __builtin_circ_sth
+      {Intrinsic::hexagon_circ_sthhi, 57793}, // __builtin_circ_sthhi
+      {Intrinsic::hexagon_circ_stw, 57814}, // __builtin_circ_stw
+    };
+    auto I = std::lower_bound(std::begin(hexagonNames),
+                              std::end(hexagonNames),
+                              BuiltinNameStr);
+    if (I != std::end(hexagonNames) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "mips") {
+    static const BuiltinEntry mipsNames[] = {
+      {Intrinsic::mips_absq_s_ph, 57884}, // __builtin_mips_absq_s_ph
+      {Intrinsic::mips_absq_s_qb, 57909}, // __builtin_mips_absq_s_qb
+      {Intrinsic::mips_absq_s_w, 57934}, // __builtin_mips_absq_s_w
+      {Intrinsic::mips_addq_ph, 58046}, // __builtin_mips_addq_ph
+      {Intrinsic::mips_addq_s_ph, 58069}, // __builtin_mips_addq_s_ph
+      {Intrinsic::mips_addq_s_w, 58094}, // __builtin_mips_addq_s_w
+      {Intrinsic::mips_addqh_ph, 58118}, // __builtin_mips_addqh_ph
+      {Intrinsic::mips_addqh_r_ph, 58142}, // __builtin_mips_addqh_r_ph
+      {Intrinsic::mips_addqh_r_w, 58168}, // __builtin_mips_addqh_r_w
+      {Intrinsic::mips_addqh_w, 58193}, // __builtin_mips_addqh_w
+      {Intrinsic::mips_addsc, 58492}, // __builtin_mips_addsc
+      {Intrinsic::mips_addu_ph, 58513}, // __builtin_mips_addu_ph
+      {Intrinsic::mips_addu_qb, 58536}, // __builtin_mips_addu_qb
+      {Intrinsic::mips_addu_s_ph, 58559}, // __builtin_mips_addu_s_ph
+      {Intrinsic::mips_addu_s_qb, 58584}, // __builtin_mips_addu_s_qb
+      {Intrinsic::mips_adduh_qb, 58609}, // __builtin_mips_adduh_qb
+      {Intrinsic::mips_adduh_r_qb, 58633}, // __builtin_mips_adduh_r_qb
+      {Intrinsic::mips_addwc, 58831}, // __builtin_mips_addwc
+      {Intrinsic::mips_append, 58893}, // __builtin_mips_append
+      {Intrinsic::mips_balign, 59459}, // __builtin_mips_balign
+      {Intrinsic::mips_bitrev, 60013}, // __builtin_mips_bitrev
+      {Intrinsic::mips_bposge32, 60391}, // __builtin_mips_bposge32
+      {Intrinsic::mips_cmp_eq_ph, 61630}, // __builtin_mips_cmp_eq_ph
+      {Intrinsic::mips_cmp_le_ph, 61655}, // __builtin_mips_cmp_le_ph
+      {Intrinsic::mips_cmp_lt_ph, 61680}, // __builtin_mips_cmp_lt_ph
+      {Intrinsic::mips_cmpgdu_eq_qb, 61705}, // __builtin_mips_cmpgdu_eq_qb
+      {Intrinsic::mips_cmpgdu_le_qb, 61733}, // __builtin_mips_cmpgdu_le_qb
+      {Intrinsic::mips_cmpgdu_lt_qb, 61761}, // __builtin_mips_cmpgdu_lt_qb
+      {Intrinsic::mips_cmpgu_eq_qb, 61789}, // __builtin_mips_cmpgu_eq_qb
+      {Intrinsic::mips_cmpgu_le_qb, 61816}, // __builtin_mips_cmpgu_le_qb
+      {Intrinsic::mips_cmpgu_lt_qb, 61843}, // __builtin_mips_cmpgu_lt_qb
+      {Intrinsic::mips_cmpu_eq_qb, 61870}, // __builtin_mips_cmpu_eq_qb
+      {Intrinsic::mips_cmpu_le_qb, 61896}, // __builtin_mips_cmpu_le_qb
+      {Intrinsic::mips_cmpu_lt_qb, 61922}, // __builtin_mips_cmpu_lt_qb
+      {Intrinsic::mips_dlsa, 62329}, // __builtin_mips_dlsa
+      {Intrinsic::mips_dpa_w_ph, 62487}, // __builtin_mips_dpa_w_ph
+      {Intrinsic::mips_dpaq_s_w_ph, 62655}, // __builtin_mips_dpaq_s_w_ph
+      {Intrinsic::mips_dpaq_sa_l_w, 62682}, // __builtin_mips_dpaq_sa_l_w
+      {Intrinsic::mips_dpaqx_s_w_ph, 62709}, // __builtin_mips_dpaqx_s_w_ph
+      {Intrinsic::mips_dpaqx_sa_w_ph, 62737}, // __builtin_mips_dpaqx_sa_w_ph
+      {Intrinsic::mips_dpau_h_qbl, 62766}, // __builtin_mips_dpau_h_qbl
+      {Intrinsic::mips_dpau_h_qbr, 62792}, // __builtin_mips_dpau_h_qbr
+      {Intrinsic::mips_dpax_w_ph, 62818}, // __builtin_mips_dpax_w_ph
+      {Intrinsic::mips_dps_w_ph, 62843}, // __builtin_mips_dps_w_ph
+      {Intrinsic::mips_dpsq_s_w_ph, 62867}, // __builtin_mips_dpsq_s_w_ph
+      {Intrinsic::mips_dpsq_sa_l_w, 62894}, // __builtin_mips_dpsq_sa_l_w
+      {Intrinsic::mips_dpsqx_s_w_ph, 62921}, // __builtin_mips_dpsqx_s_w_ph
+      {Intrinsic::mips_dpsqx_sa_w_ph, 62949}, // __builtin_mips_dpsqx_sa_w_ph
+      {Intrinsic::mips_dpsu_h_qbl, 62978}, // __builtin_mips_dpsu_h_qbl
+      {Intrinsic::mips_dpsu_h_qbr, 63004}, // __builtin_mips_dpsu_h_qbr
+      {Intrinsic::mips_dpsx_w_ph, 63174}, // __builtin_mips_dpsx_w_ph
+      {Intrinsic::mips_extp, 63199}, // __builtin_mips_extp
+      {Intrinsic::mips_extpdp, 63219}, // __builtin_mips_extpdp
+      {Intrinsic::mips_extr_r_w, 63241}, // __builtin_mips_extr_r_w
+      {Intrinsic::mips_extr_rs_w, 63265}, // __builtin_mips_extr_rs_w
+      {Intrinsic::mips_extr_s_h, 63290}, // __builtin_mips_extr_s_h
+      {Intrinsic::mips_extr_w, 63314}, // __builtin_mips_extr_w
+      {Intrinsic::mips_insv, 66366}, // __builtin_mips_insv
+      {Intrinsic::mips_lbux, 66474}, // __builtin_mips_lbux
+      {Intrinsic::mips_lhx, 66650}, // __builtin_mips_lhx
+      {Intrinsic::mips_lsa, 66669}, // __builtin_mips_lsa
+      {Intrinsic::mips_lwx, 66688}, // __builtin_mips_lwx
+      {Intrinsic::mips_madd, 66707}, // __builtin_mips_madd
+      {Intrinsic::mips_maddu, 66821}, // __builtin_mips_maddu
+      {Intrinsic::mips_maq_s_w_phl, 66930}, // __builtin_mips_maq_s_w_phl
+      {Intrinsic::mips_maq_s_w_phr, 66957}, // __builtin_mips_maq_s_w_phr
+      {Intrinsic::mips_maq_sa_w_phl, 66984}, // __builtin_mips_maq_sa_w_phl
+      {Intrinsic::mips_maq_sa_w_phr, 67012}, // __builtin_mips_maq_sa_w_phr
+      {Intrinsic::mips_modsub, 68112}, // __builtin_mips_modsub
+      {Intrinsic::mips_msub, 68155}, // __builtin_mips_msub
+      {Intrinsic::mips_msubu, 68269}, // __builtin_mips_msubu
+      {Intrinsic::mips_mthlip, 68378}, // __builtin_mips_mthlip
+      {Intrinsic::mips_mul_ph, 68400}, // __builtin_mips_mul_ph
+      {Intrinsic::mips_mul_s_ph, 68466}, // __builtin_mips_mul_s_ph
+      {Intrinsic::mips_muleq_s_w_phl, 68490}, // __builtin_mips_muleq_s_w_phl
+      {Intrinsic::mips_muleq_s_w_phr, 68519}, // __builtin_mips_muleq_s_w_phr
+      {Intrinsic::mips_muleu_s_ph_qbl, 68548}, // __builtin_mips_muleu_s_ph_qbl
+      {Intrinsic::mips_muleu_s_ph_qbr, 68578}, // __builtin_mips_muleu_s_ph_qbr
+      {Intrinsic::mips_mulq_rs_ph, 68608}, // __builtin_mips_mulq_rs_ph
+      {Intrinsic::mips_mulq_rs_w, 68634}, // __builtin_mips_mulq_rs_w
+      {Intrinsic::mips_mulq_s_ph, 68659}, // __builtin_mips_mulq_s_ph
+      {Intrinsic::mips_mulq_s_w, 68684}, // __builtin_mips_mulq_s_w
+      {Intrinsic::mips_mulsa_w_ph, 68754}, // __builtin_mips_mulsa_w_ph
+      {Intrinsic::mips_mulsaq_s_w_ph, 68780}, // __builtin_mips_mulsaq_s_w_ph
+      {Intrinsic::mips_mult, 68809}, // __builtin_mips_mult
+      {Intrinsic::mips_multu, 68829}, // __builtin_mips_multu
+      {Intrinsic::mips_packrl_ph, 69182}, // __builtin_mips_packrl_ph
+      {Intrinsic::mips_pick_ph, 69467}, // __builtin_mips_pick_ph
+      {Intrinsic::mips_pick_qb, 69490}, // __builtin_mips_pick_qb
+      {Intrinsic::mips_preceq_w_phl, 69513}, // __builtin_mips_preceq_w_phl
+      {Intrinsic::mips_preceq_w_phr, 69541}, // __builtin_mips_preceq_w_phr
+      {Intrinsic::mips_precequ_ph_qbl, 69569}, // __builtin_mips_precequ_ph_qbl
+      {Intrinsic::mips_precequ_ph_qbla, 69599}, // __builtin_mips_precequ_ph_qbla
+      {Intrinsic::mips_precequ_ph_qbr, 69630}, // __builtin_mips_precequ_ph_qbr
+      {Intrinsic::mips_precequ_ph_qbra, 69660}, // __builtin_mips_precequ_ph_qbra
+      {Intrinsic::mips_preceu_ph_qbl, 69691}, // __builtin_mips_preceu_ph_qbl
+      {Intrinsic::mips_preceu_ph_qbla, 69720}, // __builtin_mips_preceu_ph_qbla
+      {Intrinsic::mips_preceu_ph_qbr, 69750}, // __builtin_mips_preceu_ph_qbr
+      {Intrinsic::mips_preceu_ph_qbra, 69779}, // __builtin_mips_preceu_ph_qbra
+      {Intrinsic::mips_precr_qb_ph, 69809}, // __builtin_mips_precr_qb_ph
+      {Intrinsic::mips_precr_sra_ph_w, 69836}, // __builtin_mips_precr_sra_ph_w
+      {Intrinsic::mips_precr_sra_r_ph_w, 69866}, // __builtin_mips_precr_sra_r_ph_w
+      {Intrinsic::mips_precrq_ph_w, 69898}, // __builtin_mips_precrq_ph_w
+      {Intrinsic::mips_precrq_qb_ph, 69925}, // __builtin_mips_precrq_qb_ph
+      {Intrinsic::mips_precrq_rs_ph_w, 69953}, // __builtin_mips_precrq_rs_ph_w
+      {Intrinsic::mips_precrqu_s_qb_ph, 69983}, // __builtin_mips_precrqu_s_qb_ph
+      {Intrinsic::mips_prepend, 70014}, // __builtin_mips_prepend
+      {Intrinsic::mips_raddu_w_qb, 70037}, // __builtin_mips_raddu_w_qb
+      {Intrinsic::mips_rddsp, 70063}, // __builtin_mips_rddsp
+      {Intrinsic::mips_repl_ph, 70084}, // __builtin_mips_repl_ph
+      {Intrinsic::mips_repl_qb, 70107}, // __builtin_mips_repl_qb
+      {Intrinsic::mips_shilo, 70366}, // __builtin_mips_shilo
+      {Intrinsic::mips_shll_ph, 70387}, // __builtin_mips_shll_ph
+      {Intrinsic::mips_shll_qb, 70410}, // __builtin_mips_shll_qb
+      {Intrinsic::mips_shll_s_ph, 70433}, // __builtin_mips_shll_s_ph
+      {Intrinsic::mips_shll_s_w, 70458}, // __builtin_mips_shll_s_w
+      {Intrinsic::mips_shra_ph, 70482}, // __builtin_mips_shra_ph
+      {Intrinsic::mips_shra_qb, 70505}, // __builtin_mips_shra_qb
+      {Intrinsic::mips_shra_r_ph, 70528}, // __builtin_mips_shra_r_ph
+      {Intrinsic::mips_shra_r_qb, 70553}, // __builtin_mips_shra_r_qb
+      {Intrinsic::mips_shra_r_w, 70578}, // __builtin_mips_shra_r_w
+      {Intrinsic::mips_shrl_ph, 70602}, // __builtin_mips_shrl_ph
+      {Intrinsic::mips_shrl_qb, 70625}, // __builtin_mips_shrl_qb
+      {Intrinsic::mips_subq_ph, 71904}, // __builtin_mips_subq_ph
+      {Intrinsic::mips_subq_s_ph, 71927}, // __builtin_mips_subq_s_ph
+      {Intrinsic::mips_subq_s_w, 71952}, // __builtin_mips_subq_s_w
+      {Intrinsic::mips_subqh_ph, 71976}, // __builtin_mips_subqh_ph
+      {Intrinsic::mips_subqh_r_ph, 72000}, // __builtin_mips_subqh_r_ph
+      {Intrinsic::mips_subqh_r_w, 72026}, // __builtin_mips_subqh_r_w
+      {Intrinsic::mips_subqh_w, 72051}, // __builtin_mips_subqh_w
+      {Intrinsic::mips_subu_ph, 72458}, // __builtin_mips_subu_ph
+      {Intrinsic::mips_subu_qb, 72481}, // __builtin_mips_subu_qb
+      {Intrinsic::mips_subu_s_ph, 72504}, // __builtin_mips_subu_s_ph
+      {Intrinsic::mips_subu_s_qb, 72529}, // __builtin_mips_subu_s_qb
+      {Intrinsic::mips_subuh_qb, 72554}, // __builtin_mips_subuh_qb
+      {Intrinsic::mips_subuh_r_qb, 72578}, // __builtin_mips_subuh_r_qb
+      {Intrinsic::mips_wrdsp, 72860}, // __builtin_mips_wrdsp
+      {Intrinsic::mips_add_a_b, 57958}, // __builtin_msa_add_a_b
+      {Intrinsic::mips_add_a_d, 57980}, // __builtin_msa_add_a_d
+      {Intrinsic::mips_add_a_h, 58002}, // __builtin_msa_add_a_h
+      {Intrinsic::mips_add_a_w, 58024}, // __builtin_msa_add_a_w
+      {Intrinsic::mips_adds_a_b, 58216}, // __builtin_msa_adds_a_b
+      {Intrinsic::mips_adds_a_d, 58239}, // __builtin_msa_adds_a_d
+      {Intrinsic::mips_adds_a_h, 58262}, // __builtin_msa_adds_a_h
+      {Intrinsic::mips_adds_a_w, 58285}, // __builtin_msa_adds_a_w
+      {Intrinsic::mips_adds_s_b, 58308}, // __builtin_msa_adds_s_b
+      {Intrinsic::mips_adds_s_d, 58331}, // __builtin_msa_adds_s_d
+      {Intrinsic::mips_adds_s_h, 58354}, // __builtin_msa_adds_s_h
+      {Intrinsic::mips_adds_s_w, 58377}, // __builtin_msa_adds_s_w
+      {Intrinsic::mips_adds_u_b, 58400}, // __builtin_msa_adds_u_b
+      {Intrinsic::mips_adds_u_d, 58423}, // __builtin_msa_adds_u_d
+      {Intrinsic::mips_adds_u_h, 58446}, // __builtin_msa_adds_u_h
+      {Intrinsic::mips_adds_u_w, 58469}, // __builtin_msa_adds_u_w
+      {Intrinsic::mips_addv_b, 58659}, // __builtin_msa_addv_b
+      {Intrinsic::mips_addv_d, 58680}, // __builtin_msa_addv_d
+      {Intrinsic::mips_addv_h, 58701}, // __builtin_msa_addv_h
+      {Intrinsic::mips_addv_w, 58722}, // __builtin_msa_addv_w
+      {Intrinsic::mips_addvi_b, 58743}, // __builtin_msa_addvi_b
+      {Intrinsic::mips_addvi_d, 58765}, // __builtin_msa_addvi_d
+      {Intrinsic::mips_addvi_h, 58787}, // __builtin_msa_addvi_h
+      {Intrinsic::mips_addvi_w, 58809}, // __builtin_msa_addvi_w
+      {Intrinsic::mips_and_v, 58852}, // __builtin_msa_and_v
+      {Intrinsic::mips_andi_b, 58872}, // __builtin_msa_andi_b
+      {Intrinsic::mips_asub_s_b, 58915}, // __builtin_msa_asub_s_b
+      {Intrinsic::mips_asub_s_d, 58938}, // __builtin_msa_asub_s_d
+      {Intrinsic::mips_asub_s_h, 58961}, // __builtin_msa_asub_s_h
+      {Intrinsic::mips_asub_s_w, 58984}, // __builtin_msa_asub_s_w
+      {Intrinsic::mips_asub_u_b, 59007}, // __builtin_msa_asub_u_b
+      {Intrinsic::mips_asub_u_d, 59030}, // __builtin_msa_asub_u_d
+      {Intrinsic::mips_asub_u_h, 59053}, // __builtin_msa_asub_u_h
+      {Intrinsic::mips_asub_u_w, 59076}, // __builtin_msa_asub_u_w
+      {Intrinsic::mips_ave_s_b, 59099}, // __builtin_msa_ave_s_b
+      {Intrinsic::mips_ave_s_d, 59121}, // __builtin_msa_ave_s_d
+      {Intrinsic::mips_ave_s_h, 59143}, // __builtin_msa_ave_s_h
+      {Intrinsic::mips_ave_s_w, 59165}, // __builtin_msa_ave_s_w
+      {Intrinsic::mips_ave_u_b, 59187}, // __builtin_msa_ave_u_b
+      {Intrinsic::mips_ave_u_d, 59209}, // __builtin_msa_ave_u_d
+      {Intrinsic::mips_ave_u_h, 59231}, // __builtin_msa_ave_u_h
+      {Intrinsic::mips_ave_u_w, 59253}, // __builtin_msa_ave_u_w
+      {Intrinsic::mips_aver_s_b, 59275}, // __builtin_msa_aver_s_b
+      {Intrinsic::mips_aver_s_d, 59298}, // __builtin_msa_aver_s_d
+      {Intrinsic::mips_aver_s_h, 59321}, // __builtin_msa_aver_s_h
+      {Intrinsic::mips_aver_s_w, 59344}, // __builtin_msa_aver_s_w
+      {Intrinsic::mips_aver_u_b, 59367}, // __builtin_msa_aver_u_b
+      {Intrinsic::mips_aver_u_d, 59390}, // __builtin_msa_aver_u_d
+      {Intrinsic::mips_aver_u_h, 59413}, // __builtin_msa_aver_u_h
+      {Intrinsic::mips_aver_u_w, 59436}, // __builtin_msa_aver_u_w
+      {Intrinsic::mips_bclr_b, 59481}, // __builtin_msa_bclr_b
+      {Intrinsic::mips_bclr_d, 59502}, // __builtin_msa_bclr_d
+      {Intrinsic::mips_bclr_h, 59523}, // __builtin_msa_bclr_h
+      {Intrinsic::mips_bclr_w, 59544}, // __builtin_msa_bclr_w
+      {Intrinsic::mips_bclri_b, 59565}, // __builtin_msa_bclri_b
+      {Intrinsic::mips_bclri_d, 59587}, // __builtin_msa_bclri_d
+      {Intrinsic::mips_bclri_h, 59609}, // __builtin_msa_bclri_h
+      {Intrinsic::mips_bclri_w, 59631}, // __builtin_msa_bclri_w
+      {Intrinsic::mips_binsl_b, 59653}, // __builtin_msa_binsl_b
+      {Intrinsic::mips_binsl_d, 59675}, // __builtin_msa_binsl_d
+      {Intrinsic::mips_binsl_h, 59697}, // __builtin_msa_binsl_h
+      {Intrinsic::mips_binsl_w, 59719}, // __builtin_msa_binsl_w
+      {Intrinsic::mips_binsli_b, 59741}, // __builtin_msa_binsli_b
+      {Intrinsic::mips_binsli_d, 59764}, // __builtin_msa_binsli_d
+      {Intrinsic::mips_binsli_h, 59787}, // __builtin_msa_binsli_h
+      {Intrinsic::mips_binsli_w, 59810}, // __builtin_msa_binsli_w
+      {Intrinsic::mips_binsr_b, 59833}, // __builtin_msa_binsr_b
+      {Intrinsic::mips_binsr_d, 59855}, // __builtin_msa_binsr_d
+      {Intrinsic::mips_binsr_h, 59877}, // __builtin_msa_binsr_h
+      {Intrinsic::mips_binsr_w, 59899}, // __builtin_msa_binsr_w
+      {Intrinsic::mips_binsri_b, 59921}, // __builtin_msa_binsri_b
+      {Intrinsic::mips_binsri_d, 59944}, // __builtin_msa_binsri_d
+      {Intrinsic::mips_binsri_h, 59967}, // __builtin_msa_binsri_h
+      {Intrinsic::mips_binsri_w, 59990}, // __builtin_msa_binsri_w
+      {Intrinsic::mips_bmnz_v, 60035}, // __builtin_msa_bmnz_v
+      {Intrinsic::mips_bmnzi_b, 60056}, // __builtin_msa_bmnzi_b
+      {Intrinsic::mips_bmz_v, 60078}, // __builtin_msa_bmz_v
+      {Intrinsic::mips_bmzi_b, 60098}, // __builtin_msa_bmzi_b
+      {Intrinsic::mips_bneg_b, 60119}, // __builtin_msa_bneg_b
+      {Intrinsic::mips_bneg_d, 60140}, // __builtin_msa_bneg_d
+      {Intrinsic::mips_bneg_h, 60161}, // __builtin_msa_bneg_h
+      {Intrinsic::mips_bneg_w, 60182}, // __builtin_msa_bneg_w
+      {Intrinsic::mips_bnegi_b, 60203}, // __builtin_msa_bnegi_b
+      {Intrinsic::mips_bnegi_d, 60225}, // __builtin_msa_bnegi_d
+      {Intrinsic::mips_bnegi_h, 60247}, // __builtin_msa_bnegi_h
+      {Intrinsic::mips_bnegi_w, 60269}, // __builtin_msa_bnegi_w
+      {Intrinsic::mips_bnz_b, 60291}, // __builtin_msa_bnz_b
+      {Intrinsic::mips_bnz_d, 60311}, // __builtin_msa_bnz_d
+      {Intrinsic::mips_bnz_h, 60331}, // __builtin_msa_bnz_h
+      {Intrinsic::mips_bnz_v, 60351}, // __builtin_msa_bnz_v
+      {Intrinsic::mips_bnz_w, 60371}, // __builtin_msa_bnz_w
+      {Intrinsic::mips_bsel_v, 60415}, // __builtin_msa_bsel_v
+      {Intrinsic::mips_bseli_b, 60436}, // __builtin_msa_bseli_b
+      {Intrinsic::mips_bset_b, 60458}, // __builtin_msa_bset_b
+      {Intrinsic::mips_bset_d, 60479}, // __builtin_msa_bset_d
+      {Intrinsic::mips_bset_h, 60500}, // __builtin_msa_bset_h
+      {Intrinsic::mips_bset_w, 60521}, // __builtin_msa_bset_w
+      {Intrinsic::mips_bseti_b, 60542}, // __builtin_msa_bseti_b
+      {Intrinsic::mips_bseti_d, 60564}, // __builtin_msa_bseti_d
+      {Intrinsic::mips_bseti_h, 60586}, // __builtin_msa_bseti_h
+      {Intrinsic::mips_bseti_w, 60608}, // __builtin_msa_bseti_w
+      {Intrinsic::mips_bz_b, 60630}, // __builtin_msa_bz_b
+      {Intrinsic::mips_bz_d, 60649}, // __builtin_msa_bz_d
+      {Intrinsic::mips_bz_h, 60668}, // __builtin_msa_bz_h
+      {Intrinsic::mips_bz_v, 60687}, // __builtin_msa_bz_v
+      {Intrinsic::mips_bz_w, 60706}, // __builtin_msa_bz_w
+      {Intrinsic::mips_ceq_b, 60725}, // __builtin_msa_ceq_b
+      {Intrinsic::mips_ceq_d, 60745}, // __builtin_msa_ceq_d
+      {Intrinsic::mips_ceq_h, 60765}, // __builtin_msa_ceq_h
+      {Intrinsic::mips_ceq_w, 60785}, // __builtin_msa_ceq_w
+      {Intrinsic::mips_ceqi_b, 60805}, // __builtin_msa_ceqi_b
+      {Intrinsic::mips_ceqi_d, 60826}, // __builtin_msa_ceqi_d
+      {Intrinsic::mips_ceqi_h, 60847}, // __builtin_msa_ceqi_h
+      {Intrinsic::mips_ceqi_w, 60868}, // __builtin_msa_ceqi_w
+      {Intrinsic::mips_cfcmsa, 60889}, // __builtin_msa_cfcmsa
+      {Intrinsic::mips_cle_s_b, 60910}, // __builtin_msa_cle_s_b
+      {Intrinsic::mips_cle_s_d, 60932}, // __builtin_msa_cle_s_d
+      {Intrinsic::mips_cle_s_h, 60954}, // __builtin_msa_cle_s_h
+      {Intrinsic::mips_cle_s_w, 60976}, // __builtin_msa_cle_s_w
+      {Intrinsic::mips_cle_u_b, 60998}, // __builtin_msa_cle_u_b
+      {Intrinsic::mips_cle_u_d, 61020}, // __builtin_msa_cle_u_d
+      {Intrinsic::mips_cle_u_h, 61042}, // __builtin_msa_cle_u_h
+      {Intrinsic::mips_cle_u_w, 61064}, // __builtin_msa_cle_u_w
+      {Intrinsic::mips_clei_s_b, 61086}, // __builtin_msa_clei_s_b
+      {Intrinsic::mips_clei_s_d, 61109}, // __builtin_msa_clei_s_d
+      {Intrinsic::mips_clei_s_h, 61132}, // __builtin_msa_clei_s_h
+      {Intrinsic::mips_clei_s_w, 61155}, // __builtin_msa_clei_s_w
+      {Intrinsic::mips_clei_u_b, 61178}, // __builtin_msa_clei_u_b
+      {Intrinsic::mips_clei_u_d, 61201}, // __builtin_msa_clei_u_d
+      {Intrinsic::mips_clei_u_h, 61224}, // __builtin_msa_clei_u_h
+      {Intrinsic::mips_clei_u_w, 61247}, // __builtin_msa_clei_u_w
+      {Intrinsic::mips_clt_s_b, 61270}, // __builtin_msa_clt_s_b
+      {Intrinsic::mips_clt_s_d, 61292}, // __builtin_msa_clt_s_d
+      {Intrinsic::mips_clt_s_h, 61314}, // __builtin_msa_clt_s_h
+      {Intrinsic::mips_clt_s_w, 61336}, // __builtin_msa_clt_s_w
+      {Intrinsic::mips_clt_u_b, 61358}, // __builtin_msa_clt_u_b
+      {Intrinsic::mips_clt_u_d, 61380}, // __builtin_msa_clt_u_d
+      {Intrinsic::mips_clt_u_h, 61402}, // __builtin_msa_clt_u_h
+      {Intrinsic::mips_clt_u_w, 61424}, // __builtin_msa_clt_u_w
+      {Intrinsic::mips_clti_s_b, 61446}, // __builtin_msa_clti_s_b
+      {Intrinsic::mips_clti_s_d, 61469}, // __builtin_msa_clti_s_d
+      {Intrinsic::mips_clti_s_h, 61492}, // __builtin_msa_clti_s_h
+      {Intrinsic::mips_clti_s_w, 61515}, // __builtin_msa_clti_s_w
+      {Intrinsic::mips_clti_u_b, 61538}, // __builtin_msa_clti_u_b
+      {Intrinsic::mips_clti_u_d, 61561}, // __builtin_msa_clti_u_d
+      {Intrinsic::mips_clti_u_h, 61584}, // __builtin_msa_clti_u_h
+      {Intrinsic::mips_clti_u_w, 61607}, // __builtin_msa_clti_u_w
+      {Intrinsic::mips_copy_s_b, 61948}, // __builtin_msa_copy_s_b
+      {Intrinsic::mips_copy_s_d, 61971}, // __builtin_msa_copy_s_d
+      {Intrinsic::mips_copy_s_h, 61994}, // __builtin_msa_copy_s_h
+      {Intrinsic::mips_copy_s_w, 62017}, // __builtin_msa_copy_s_w
+      {Intrinsic::mips_copy_u_b, 62040}, // __builtin_msa_copy_u_b
+      {Intrinsic::mips_copy_u_d, 62063}, // __builtin_msa_copy_u_d
+      {Intrinsic::mips_copy_u_h, 62086}, // __builtin_msa_copy_u_h
+      {Intrinsic::mips_copy_u_w, 62109}, // __builtin_msa_copy_u_w
+      {Intrinsic::mips_ctcmsa, 62132}, // __builtin_msa_ctcmsa
+      {Intrinsic::mips_div_s_b, 62153}, // __builtin_msa_div_s_b
+      {Intrinsic::mips_div_s_d, 62175}, // __builtin_msa_div_s_d
+      {Intrinsic::mips_div_s_h, 62197}, // __builtin_msa_div_s_h
+      {Intrinsic::mips_div_s_w, 62219}, // __builtin_msa_div_s_w
+      {Intrinsic::mips_div_u_b, 62241}, // __builtin_msa_div_u_b
+      {Intrinsic::mips_div_u_d, 62263}, // __builtin_msa_div_u_d
+      {Intrinsic::mips_div_u_h, 62285}, // __builtin_msa_div_u_h
+      {Intrinsic::mips_div_u_w, 62307}, // __builtin_msa_div_u_w
+      {Intrinsic::mips_dotp_s_d, 62349}, // __builtin_msa_dotp_s_d
+      {Intrinsic::mips_dotp_s_h, 62372}, // __builtin_msa_dotp_s_h
+      {Intrinsic::mips_dotp_s_w, 62395}, // __builtin_msa_dotp_s_w
+      {Intrinsic::mips_dotp_u_d, 62418}, // __builtin_msa_dotp_u_d
+      {Intrinsic::mips_dotp_u_h, 62441}, // __builtin_msa_dotp_u_h
+      {Intrinsic::mips_dotp_u_w, 62464}, // __builtin_msa_dotp_u_w
+      {Intrinsic::mips_dpadd_s_d, 62511}, // __builtin_msa_dpadd_s_d
+      {Intrinsic::mips_dpadd_s_h, 62535}, // __builtin_msa_dpadd_s_h
+      {Intrinsic::mips_dpadd_s_w, 62559}, // __builtin_msa_dpadd_s_w
+      {Intrinsic::mips_dpadd_u_d, 62583}, // __builtin_msa_dpadd_u_d
+      {Intrinsic::mips_dpadd_u_h, 62607}, // __builtin_msa_dpadd_u_h
+      {Intrinsic::mips_dpadd_u_w, 62631}, // __builtin_msa_dpadd_u_w
+      {Intrinsic::mips_dpsub_s_d, 63030}, // __builtin_msa_dpsub_s_d
+      {Intrinsic::mips_dpsub_s_h, 63054}, // __builtin_msa_dpsub_s_h
+      {Intrinsic::mips_dpsub_s_w, 63078}, // __builtin_msa_dpsub_s_w
+      {Intrinsic::mips_dpsub_u_d, 63102}, // __builtin_msa_dpsub_u_d
+      {Intrinsic::mips_dpsub_u_h, 63126}, // __builtin_msa_dpsub_u_h
+      {Intrinsic::mips_dpsub_u_w, 63150}, // __builtin_msa_dpsub_u_w
+      {Intrinsic::mips_fadd_d, 63336}, // __builtin_msa_fadd_d
+      {Intrinsic::mips_fadd_w, 63357}, // __builtin_msa_fadd_w
+      {Intrinsic::mips_fcaf_d, 63378}, // __builtin_msa_fcaf_d
+      {Intrinsic::mips_fcaf_w, 63399}, // __builtin_msa_fcaf_w
+      {Intrinsic::mips_fceq_d, 63420}, // __builtin_msa_fceq_d
+      {Intrinsic::mips_fceq_w, 63441}, // __builtin_msa_fceq_w
+      {Intrinsic::mips_fclass_d, 63462}, // __builtin_msa_fclass_d
+      {Intrinsic::mips_fclass_w, 63485}, // __builtin_msa_fclass_w
+      {Intrinsic::mips_fcle_d, 63508}, // __builtin_msa_fcle_d
+      {Intrinsic::mips_fcle_w, 63529}, // __builtin_msa_fcle_w
+      {Intrinsic::mips_fclt_d, 63550}, // __builtin_msa_fclt_d
+      {Intrinsic::mips_fclt_w, 63571}, // __builtin_msa_fclt_w
+      {Intrinsic::mips_fcne_d, 63592}, // __builtin_msa_fcne_d
+      {Intrinsic::mips_fcne_w, 63613}, // __builtin_msa_fcne_w
+      {Intrinsic::mips_fcor_d, 63634}, // __builtin_msa_fcor_d
+      {Intrinsic::mips_fcor_w, 63655}, // __builtin_msa_fcor_w
+      {Intrinsic::mips_fcueq_d, 63676}, // __builtin_msa_fcueq_d
+      {Intrinsic::mips_fcueq_w, 63698}, // __builtin_msa_fcueq_w
+      {Intrinsic::mips_fcule_d, 63720}, // __builtin_msa_fcule_d
+      {Intrinsic::mips_fcule_w, 63742}, // __builtin_msa_fcule_w
+      {Intrinsic::mips_fcult_d, 63764}, // __builtin_msa_fcult_d
+      {Intrinsic::mips_fcult_w, 63786}, // __builtin_msa_fcult_w
+      {Intrinsic::mips_fcun_d, 63808}, // __builtin_msa_fcun_d
+      {Intrinsic::mips_fcun_w, 63829}, // __builtin_msa_fcun_w
+      {Intrinsic::mips_fcune_d, 63850}, // __builtin_msa_fcune_d
+      {Intrinsic::mips_fcune_w, 63872}, // __builtin_msa_fcune_w
+      {Intrinsic::mips_fdiv_d, 63894}, // __builtin_msa_fdiv_d
+      {Intrinsic::mips_fdiv_w, 63915}, // __builtin_msa_fdiv_w
+      {Intrinsic::mips_fexdo_h, 63936}, // __builtin_msa_fexdo_h
+      {Intrinsic::mips_fexdo_w, 63958}, // __builtin_msa_fexdo_w
+      {Intrinsic::mips_fexp2_d, 63980}, // __builtin_msa_fexp2_d
+      {Intrinsic::mips_fexp2_w, 64002}, // __builtin_msa_fexp2_w
+      {Intrinsic::mips_fexupl_d, 64024}, // __builtin_msa_fexupl_d
+      {Intrinsic::mips_fexupl_w, 64047}, // __builtin_msa_fexupl_w
+      {Intrinsic::mips_fexupr_d, 64070}, // __builtin_msa_fexupr_d
+      {Intrinsic::mips_fexupr_w, 64093}, // __builtin_msa_fexupr_w
+      {Intrinsic::mips_ffint_s_d, 64116}, // __builtin_msa_ffint_s_d
+      {Intrinsic::mips_ffint_s_w, 64140}, // __builtin_msa_ffint_s_w
+      {Intrinsic::mips_ffint_u_d, 64164}, // __builtin_msa_ffint_u_d
+      {Intrinsic::mips_ffint_u_w, 64188}, // __builtin_msa_ffint_u_w
+      {Intrinsic::mips_ffql_d, 64212}, // __builtin_msa_ffql_d
+      {Intrinsic::mips_ffql_w, 64233}, // __builtin_msa_ffql_w
+      {Intrinsic::mips_ffqr_d, 64254}, // __builtin_msa_ffqr_d
+      {Intrinsic::mips_ffqr_w, 64275}, // __builtin_msa_ffqr_w
+      {Intrinsic::mips_fill_b, 64296}, // __builtin_msa_fill_b
+      {Intrinsic::mips_fill_d, 64317}, // __builtin_msa_fill_d
+      {Intrinsic::mips_fill_h, 64338}, // __builtin_msa_fill_h
+      {Intrinsic::mips_fill_w, 64359}, // __builtin_msa_fill_w
+      {Intrinsic::mips_flog2_d, 64380}, // __builtin_msa_flog2_d
+      {Intrinsic::mips_flog2_w, 64402}, // __builtin_msa_flog2_w
+      {Intrinsic::mips_fmadd_d, 64424}, // __builtin_msa_fmadd_d
+      {Intrinsic::mips_fmadd_w, 64446}, // __builtin_msa_fmadd_w
+      {Intrinsic::mips_fmax_a_d, 64468}, // __builtin_msa_fmax_a_d
+      {Intrinsic::mips_fmax_a_w, 64491}, // __builtin_msa_fmax_a_w
+      {Intrinsic::mips_fmax_d, 64514}, // __builtin_msa_fmax_d
+      {Intrinsic::mips_fmax_w, 64535}, // __builtin_msa_fmax_w
+      {Intrinsic::mips_fmin_a_d, 64556}, // __builtin_msa_fmin_a_d
+      {Intrinsic::mips_fmin_a_w, 64579}, // __builtin_msa_fmin_a_w
+      {Intrinsic::mips_fmin_d, 64602}, // __builtin_msa_fmin_d
+      {Intrinsic::mips_fmin_w, 64623}, // __builtin_msa_fmin_w
+      {Intrinsic::mips_fmsub_d, 64644}, // __builtin_msa_fmsub_d
+      {Intrinsic::mips_fmsub_w, 64666}, // __builtin_msa_fmsub_w
+      {Intrinsic::mips_fmul_d, 64688}, // __builtin_msa_fmul_d
+      {Intrinsic::mips_fmul_w, 64709}, // __builtin_msa_fmul_w
+      {Intrinsic::mips_frcp_d, 64730}, // __builtin_msa_frcp_d
+      {Intrinsic::mips_frcp_w, 64751}, // __builtin_msa_frcp_w
+      {Intrinsic::mips_frint_d, 64772}, // __builtin_msa_frint_d
+      {Intrinsic::mips_frint_w, 64794}, // __builtin_msa_frint_w
+      {Intrinsic::mips_frsqrt_d, 64816}, // __builtin_msa_frsqrt_d
+      {Intrinsic::mips_frsqrt_w, 64839}, // __builtin_msa_frsqrt_w
+      {Intrinsic::mips_fsaf_d, 64862}, // __builtin_msa_fsaf_d
+      {Intrinsic::mips_fsaf_w, 64883}, // __builtin_msa_fsaf_w
+      {Intrinsic::mips_fseq_d, 64904}, // __builtin_msa_fseq_d
+      {Intrinsic::mips_fseq_w, 64925}, // __builtin_msa_fseq_w
+      {Intrinsic::mips_fsle_d, 64946}, // __builtin_msa_fsle_d
+      {Intrinsic::mips_fsle_w, 64967}, // __builtin_msa_fsle_w
+      {Intrinsic::mips_fslt_d, 64988}, // __builtin_msa_fslt_d
+      {Intrinsic::mips_fslt_w, 65009}, // __builtin_msa_fslt_w
+      {Intrinsic::mips_fsne_d, 65030}, // __builtin_msa_fsne_d
+      {Intrinsic::mips_fsne_w, 65051}, // __builtin_msa_fsne_w
+      {Intrinsic::mips_fsor_d, 65072}, // __builtin_msa_fsor_d
+      {Intrinsic::mips_fsor_w, 65093}, // __builtin_msa_fsor_w
+      {Intrinsic::mips_fsqrt_d, 65114}, // __builtin_msa_fsqrt_d
+      {Intrinsic::mips_fsqrt_w, 65136}, // __builtin_msa_fsqrt_w
+      {Intrinsic::mips_fsub_d, 65158}, // __builtin_msa_fsub_d
+      {Intrinsic::mips_fsub_w, 65179}, // __builtin_msa_fsub_w
+      {Intrinsic::mips_fsueq_d, 65200}, // __builtin_msa_fsueq_d
+      {Intrinsic::mips_fsueq_w, 65222}, // __builtin_msa_fsueq_w
+      {Intrinsic::mips_fsule_d, 65244}, // __builtin_msa_fsule_d
+      {Intrinsic::mips_fsule_w, 65266}, // __builtin_msa_fsule_w
+      {Intrinsic::mips_fsult_d, 65288}, // __builtin_msa_fsult_d
+      {Intrinsic::mips_fsult_w, 65310}, // __builtin_msa_fsult_w
+      {Intrinsic::mips_fsun_d, 65332}, // __builtin_msa_fsun_d
+      {Intrinsic::mips_fsun_w, 65353}, // __builtin_msa_fsun_w
+      {Intrinsic::mips_fsune_d, 65374}, // __builtin_msa_fsune_d
+      {Intrinsic::mips_fsune_w, 65396}, // __builtin_msa_fsune_w
+      {Intrinsic::mips_ftint_s_d, 65418}, // __builtin_msa_ftint_s_d
+      {Intrinsic::mips_ftint_s_w, 65442}, // __builtin_msa_ftint_s_w
+      {Intrinsic::mips_ftint_u_d, 65466}, // __builtin_msa_ftint_u_d
+      {Intrinsic::mips_ftint_u_w, 65490}, // __builtin_msa_ftint_u_w
+      {Intrinsic::mips_ftq_h, 65514}, // __builtin_msa_ftq_h
+      {Intrinsic::mips_ftq_w, 65534}, // __builtin_msa_ftq_w
+      {Intrinsic::mips_ftrunc_s_d, 65554}, // __builtin_msa_ftrunc_s_d
+      {Intrinsic::mips_ftrunc_s_w, 65579}, // __builtin_msa_ftrunc_s_w
+      {Intrinsic::mips_ftrunc_u_d, 65604}, // __builtin_msa_ftrunc_u_d
+      {Intrinsic::mips_ftrunc_u_w, 65629}, // __builtin_msa_ftrunc_u_w
+      {Intrinsic::mips_hadd_s_d, 65654}, // __builtin_msa_hadd_s_d
+      {Intrinsic::mips_hadd_s_h, 65677}, // __builtin_msa_hadd_s_h
+      {Intrinsic::mips_hadd_s_w, 65700}, // __builtin_msa_hadd_s_w
+      {Intrinsic::mips_hadd_u_d, 65723}, // __builtin_msa_hadd_u_d
+      {Intrinsic::mips_hadd_u_h, 65746}, // __builtin_msa_hadd_u_h
+      {Intrinsic::mips_hadd_u_w, 65769}, // __builtin_msa_hadd_u_w
+      {Intrinsic::mips_hsub_s_d, 65792}, // __builtin_msa_hsub_s_d
+      {Intrinsic::mips_hsub_s_h, 65815}, // __builtin_msa_hsub_s_h
+      {Intrinsic::mips_hsub_s_w, 65838}, // __builtin_msa_hsub_s_w
+      {Intrinsic::mips_hsub_u_d, 65861}, // __builtin_msa_hsub_u_d
+      {Intrinsic::mips_hsub_u_h, 65884}, // __builtin_msa_hsub_u_h
+      {Intrinsic::mips_hsub_u_w, 65907}, // __builtin_msa_hsub_u_w
+      {Intrinsic::mips_ilvev_b, 65930}, // __builtin_msa_ilvev_b
+      {Intrinsic::mips_ilvev_d, 65952}, // __builtin_msa_ilvev_d
+      {Intrinsic::mips_ilvev_h, 65974}, // __builtin_msa_ilvev_h
+      {Intrinsic::mips_ilvev_w, 65996}, // __builtin_msa_ilvev_w
+      {Intrinsic::mips_ilvl_b, 66018}, // __builtin_msa_ilvl_b
+      {Intrinsic::mips_ilvl_d, 66039}, // __builtin_msa_ilvl_d
+      {Intrinsic::mips_ilvl_h, 66060}, // __builtin_msa_ilvl_h
+      {Intrinsic::mips_ilvl_w, 66081}, // __builtin_msa_ilvl_w
+      {Intrinsic::mips_ilvod_b, 66102}, // __builtin_msa_ilvod_b
+      {Intrinsic::mips_ilvod_d, 66124}, // __builtin_msa_ilvod_d
+      {Intrinsic::mips_ilvod_h, 66146}, // __builtin_msa_ilvod_h
+      {Intrinsic::mips_ilvod_w, 66168}, // __builtin_msa_ilvod_w
+      {Intrinsic::mips_ilvr_b, 66190}, // __builtin_msa_ilvr_b
+      {Intrinsic::mips_ilvr_d, 66211}, // __builtin_msa_ilvr_d
+      {Intrinsic::mips_ilvr_h, 66232}, // __builtin_msa_ilvr_h
+      {Intrinsic::mips_ilvr_w, 66253}, // __builtin_msa_ilvr_w
+      {Intrinsic::mips_insert_b, 66274}, // __builtin_msa_insert_b
+      {Intrinsic::mips_insert_d, 66297}, // __builtin_msa_insert_d
+      {Intrinsic::mips_insert_h, 66320}, // __builtin_msa_insert_h
+      {Intrinsic::mips_insert_w, 66343}, // __builtin_msa_insert_w
+      {Intrinsic::mips_insve_b, 66386}, // __builtin_msa_insve_b
+      {Intrinsic::mips_insve_d, 66408}, // __builtin_msa_insve_d
+      {Intrinsic::mips_insve_h, 66430}, // __builtin_msa_insve_h
+      {Intrinsic::mips_insve_w, 66452}, // __builtin_msa_insve_w
+      {Intrinsic::mips_ld_b, 66494}, // __builtin_msa_ld_b
+      {Intrinsic::mips_ld_d, 66513}, // __builtin_msa_ld_d
+      {Intrinsic::mips_ld_h, 66532}, // __builtin_msa_ld_h
+      {Intrinsic::mips_ld_w, 66551}, // __builtin_msa_ld_w
+      {Intrinsic::mips_ldi_b, 66570}, // __builtin_msa_ldi_b
+      {Intrinsic::mips_ldi_d, 66590}, // __builtin_msa_ldi_d
+      {Intrinsic::mips_ldi_h, 66610}, // __builtin_msa_ldi_h
+      {Intrinsic::mips_ldi_w, 66630}, // __builtin_msa_ldi_w
+      {Intrinsic::mips_madd_q_h, 66727}, // __builtin_msa_madd_q_h
+      {Intrinsic::mips_madd_q_w, 66750}, // __builtin_msa_madd_q_w
+      {Intrinsic::mips_maddr_q_h, 66773}, // __builtin_msa_maddr_q_h
+      {Intrinsic::mips_maddr_q_w, 66797}, // __builtin_msa_maddr_q_w
+      {Intrinsic::mips_maddv_b, 66842}, // __builtin_msa_maddv_b
+      {Intrinsic::mips_maddv_d, 66864}, // __builtin_msa_maddv_d
+      {Intrinsic::mips_maddv_h, 66886}, // __builtin_msa_maddv_h
+      {Intrinsic::mips_maddv_w, 66908}, // __builtin_msa_maddv_w
+      {Intrinsic::mips_max_a_b, 67040}, // __builtin_msa_max_a_b
+      {Intrinsic::mips_max_a_d, 67062}, // __builtin_msa_max_a_d
+      {Intrinsic::mips_max_a_h, 67084}, // __builtin_msa_max_a_h
+      {Intrinsic::mips_max_a_w, 67106}, // __builtin_msa_max_a_w
+      {Intrinsic::mips_max_s_b, 67128}, // __builtin_msa_max_s_b
+      {Intrinsic::mips_max_s_d, 67150}, // __builtin_msa_max_s_d
+      {Intrinsic::mips_max_s_h, 67172}, // __builtin_msa_max_s_h
+      {Intrinsic::mips_max_s_w, 67194}, // __builtin_msa_max_s_w
+      {Intrinsic::mips_max_u_b, 67216}, // __builtin_msa_max_u_b
+      {Intrinsic::mips_max_u_d, 67238}, // __builtin_msa_max_u_d
+      {Intrinsic::mips_max_u_h, 67260}, // __builtin_msa_max_u_h
+      {Intrinsic::mips_max_u_w, 67282}, // __builtin_msa_max_u_w
+      {Intrinsic::mips_maxi_s_b, 67304}, // __builtin_msa_maxi_s_b
+      {Intrinsic::mips_maxi_s_d, 67327}, // __builtin_msa_maxi_s_d
+      {Intrinsic::mips_maxi_s_h, 67350}, // __builtin_msa_maxi_s_h
+      {Intrinsic::mips_maxi_s_w, 67373}, // __builtin_msa_maxi_s_w
+      {Intrinsic::mips_maxi_u_b, 67396}, // __builtin_msa_maxi_u_b
+      {Intrinsic::mips_maxi_u_d, 67419}, // __builtin_msa_maxi_u_d
+      {Intrinsic::mips_maxi_u_h, 67442}, // __builtin_msa_maxi_u_h
+      {Intrinsic::mips_maxi_u_w, 67465}, // __builtin_msa_maxi_u_w
+      {Intrinsic::mips_min_a_b, 67488}, // __builtin_msa_min_a_b
+      {Intrinsic::mips_min_a_d, 67510}, // __builtin_msa_min_a_d
+      {Intrinsic::mips_min_a_h, 67532}, // __builtin_msa_min_a_h
+      {Intrinsic::mips_min_a_w, 67554}, // __builtin_msa_min_a_w
+      {Intrinsic::mips_min_s_b, 67576}, // __builtin_msa_min_s_b
+      {Intrinsic::mips_min_s_d, 67598}, // __builtin_msa_min_s_d
+      {Intrinsic::mips_min_s_h, 67620}, // __builtin_msa_min_s_h
+      {Intrinsic::mips_min_s_w, 67642}, // __builtin_msa_min_s_w
+      {Intrinsic::mips_min_u_b, 67664}, // __builtin_msa_min_u_b
+      {Intrinsic::mips_min_u_d, 67686}, // __builtin_msa_min_u_d
+      {Intrinsic::mips_min_u_h, 67708}, // __builtin_msa_min_u_h
+      {Intrinsic::mips_min_u_w, 67730}, // __builtin_msa_min_u_w
+      {Intrinsic::mips_mini_s_b, 67752}, // __builtin_msa_mini_s_b
+      {Intrinsic::mips_mini_s_d, 67775}, // __builtin_msa_mini_s_d
+      {Intrinsic::mips_mini_s_h, 67798}, // __builtin_msa_mini_s_h
+      {Intrinsic::mips_mini_s_w, 67821}, // __builtin_msa_mini_s_w
+      {Intrinsic::mips_mini_u_b, 67844}, // __builtin_msa_mini_u_b
+      {Intrinsic::mips_mini_u_d, 67867}, // __builtin_msa_mini_u_d
+      {Intrinsic::mips_mini_u_h, 67890}, // __builtin_msa_mini_u_h
+      {Intrinsic::mips_mini_u_w, 67913}, // __builtin_msa_mini_u_w
+      {Intrinsic::mips_mod_s_b, 67936}, // __builtin_msa_mod_s_b
+      {Intrinsic::mips_mod_s_d, 67958}, // __builtin_msa_mod_s_d
+      {Intrinsic::mips_mod_s_h, 67980}, // __builtin_msa_mod_s_h
+      {Intrinsic::mips_mod_s_w, 68002}, // __builtin_msa_mod_s_w
+      {Intrinsic::mips_mod_u_b, 68024}, // __builtin_msa_mod_u_b
+      {Intrinsic::mips_mod_u_d, 68046}, // __builtin_msa_mod_u_d
+      {Intrinsic::mips_mod_u_h, 68068}, // __builtin_msa_mod_u_h
+      {Intrinsic::mips_mod_u_w, 68090}, // __builtin_msa_mod_u_w
+      {Intrinsic::mips_move_v, 68134}, // __builtin_msa_move_v
+      {Intrinsic::mips_msub_q_h, 68175}, // __builtin_msa_msub_q_h
+      {Intrinsic::mips_msub_q_w, 68198}, // __builtin_msa_msub_q_w
+      {Intrinsic::mips_msubr_q_h, 68221}, // __builtin_msa_msubr_q_h
+      {Intrinsic::mips_msubr_q_w, 68245}, // __builtin_msa_msubr_q_w
+      {Intrinsic::mips_msubv_b, 68290}, // __builtin_msa_msubv_b
+      {Intrinsic::mips_msubv_d, 68312}, // __builtin_msa_msubv_d
+      {Intrinsic::mips_msubv_h, 68334}, // __builtin_msa_msubv_h
+      {Intrinsic::mips_msubv_w, 68356}, // __builtin_msa_msubv_w
+      {Intrinsic::mips_mul_q_h, 68422}, // __builtin_msa_mul_q_h
+      {Intrinsic::mips_mul_q_w, 68444}, // __builtin_msa_mul_q_w
+      {Intrinsic::mips_mulr_q_h, 68708}, // __builtin_msa_mulr_q_h
+      {Intrinsic::mips_mulr_q_w, 68731}, // __builtin_msa_mulr_q_w
+      {Intrinsic::mips_mulv_b, 68850}, // __builtin_msa_mulv_b
+      {Intrinsic::mips_mulv_d, 68871}, // __builtin_msa_mulv_d
+      {Intrinsic::mips_mulv_h, 68892}, // __builtin_msa_mulv_h
+      {Intrinsic::mips_mulv_w, 68913}, // __builtin_msa_mulv_w
+      {Intrinsic::mips_nloc_b, 68934}, // __builtin_msa_nloc_b
+      {Intrinsic::mips_nloc_d, 68955}, // __builtin_msa_nloc_d
+      {Intrinsic::mips_nloc_h, 68976}, // __builtin_msa_nloc_h
+      {Intrinsic::mips_nloc_w, 68997}, // __builtin_msa_nloc_w
+      {Intrinsic::mips_nlzc_b, 69018}, // __builtin_msa_nlzc_b
+      {Intrinsic::mips_nlzc_d, 69039}, // __builtin_msa_nlzc_d
+      {Intrinsic::mips_nlzc_h, 69060}, // __builtin_msa_nlzc_h
+      {Intrinsic::mips_nlzc_w, 69081}, // __builtin_msa_nlzc_w
+      {Intrinsic::mips_nor_v, 69102}, // __builtin_msa_nor_v
+      {Intrinsic::mips_nori_b, 69122}, // __builtin_msa_nori_b
+      {Intrinsic::mips_or_v, 69143}, // __builtin_msa_or_v
+      {Intrinsic::mips_ori_b, 69162}, // __builtin_msa_ori_b
+      {Intrinsic::mips_pckev_b, 69207}, // __builtin_msa_pckev_b
+      {Intrinsic::mips_pckev_d, 69229}, // __builtin_msa_pckev_d
+      {Intrinsic::mips_pckev_h, 69251}, // __builtin_msa_pckev_h
+      {Intrinsic::mips_pckev_w, 69273}, // __builtin_msa_pckev_w
+      {Intrinsic::mips_pckod_b, 69295}, // __builtin_msa_pckod_b
+      {Intrinsic::mips_pckod_d, 69317}, // __builtin_msa_pckod_d
+      {Intrinsic::mips_pckod_h, 69339}, // __builtin_msa_pckod_h
+      {Intrinsic::mips_pckod_w, 69361}, // __builtin_msa_pckod_w
+      {Intrinsic::mips_pcnt_b, 69383}, // __builtin_msa_pcnt_b
+      {Intrinsic::mips_pcnt_d, 69404}, // __builtin_msa_pcnt_d
+      {Intrinsic::mips_pcnt_h, 69425}, // __builtin_msa_pcnt_h
+      {Intrinsic::mips_pcnt_w, 69446}, // __builtin_msa_pcnt_w
+      {Intrinsic::mips_sat_s_b, 70130}, // __builtin_msa_sat_s_b
+      {Intrinsic::mips_sat_s_d, 70152}, // __builtin_msa_sat_s_d
+      {Intrinsic::mips_sat_s_h, 70174}, // __builtin_msa_sat_s_h
+      {Intrinsic::mips_sat_s_w, 70196}, // __builtin_msa_sat_s_w
+      {Intrinsic::mips_sat_u_b, 70218}, // __builtin_msa_sat_u_b
+      {Intrinsic::mips_sat_u_d, 70240}, // __builtin_msa_sat_u_d
+      {Intrinsic::mips_sat_u_h, 70262}, // __builtin_msa_sat_u_h
+      {Intrinsic::mips_sat_u_w, 70284}, // __builtin_msa_sat_u_w
+      {Intrinsic::mips_shf_b, 70306}, // __builtin_msa_shf_b
+      {Intrinsic::mips_shf_h, 70326}, // __builtin_msa_shf_h
+      {Intrinsic::mips_shf_w, 70346}, // __builtin_msa_shf_w
+      {Intrinsic::mips_sld_b, 70648}, // __builtin_msa_sld_b
+      {Intrinsic::mips_sld_d, 70668}, // __builtin_msa_sld_d
+      {Intrinsic::mips_sld_h, 70688}, // __builtin_msa_sld_h
+      {Intrinsic::mips_sld_w, 70708}, // __builtin_msa_sld_w
+      {Intrinsic::mips_sldi_b, 70728}, // __builtin_msa_sldi_b
+      {Intrinsic::mips_sldi_d, 70749}, // __builtin_msa_sldi_d
+      {Intrinsic::mips_sldi_h, 70770}, // __builtin_msa_sldi_h
+      {Intrinsic::mips_sldi_w, 70791}, // __builtin_msa_sldi_w
+      {Intrinsic::mips_sll_b, 70812}, // __builtin_msa_sll_b
+      {Intrinsic::mips_sll_d, 70832}, // __builtin_msa_sll_d
+      {Intrinsic::mips_sll_h, 70852}, // __builtin_msa_sll_h
+      {Intrinsic::mips_sll_w, 70872}, // __builtin_msa_sll_w
+      {Intrinsic::mips_slli_b, 70892}, // __builtin_msa_slli_b
+      {Intrinsic::mips_slli_d, 70913}, // __builtin_msa_slli_d
+      {Intrinsic::mips_slli_h, 70934}, // __builtin_msa_slli_h
+      {Intrinsic::mips_slli_w, 70955}, // __builtin_msa_slli_w
+      {Intrinsic::mips_splat_b, 70976}, // __builtin_msa_splat_b
+      {Intrinsic::mips_splat_d, 70998}, // __builtin_msa_splat_d
+      {Intrinsic::mips_splat_h, 71020}, // __builtin_msa_splat_h
+      {Intrinsic::mips_splat_w, 71042}, // __builtin_msa_splat_w
+      {Intrinsic::mips_splati_b, 71064}, // __builtin_msa_splati_b
+      {Intrinsic::mips_splati_d, 71087}, // __builtin_msa_splati_d
+      {Intrinsic::mips_splati_h, 71110}, // __builtin_msa_splati_h
+      {Intrinsic::mips_splati_w, 71133}, // __builtin_msa_splati_w
+      {Intrinsic::mips_sra_b, 71156}, // __builtin_msa_sra_b
+      {Intrinsic::mips_sra_d, 71176}, // __builtin_msa_sra_d
+      {Intrinsic::mips_sra_h, 71196}, // __builtin_msa_sra_h
+      {Intrinsic::mips_sra_w, 71216}, // __builtin_msa_sra_w
+      {Intrinsic::mips_srai_b, 71236}, // __builtin_msa_srai_b
+      {Intrinsic::mips_srai_d, 71257}, // __builtin_msa_srai_d
+      {Intrinsic::mips_srai_h, 71278}, // __builtin_msa_srai_h
+      {Intrinsic::mips_srai_w, 71299}, // __builtin_msa_srai_w
+      {Intrinsic::mips_srar_b, 71320}, // __builtin_msa_srar_b
+      {Intrinsic::mips_srar_d, 71341}, // __builtin_msa_srar_d
+      {Intrinsic::mips_srar_h, 71362}, // __builtin_msa_srar_h
+      {Intrinsic::mips_srar_w, 71383}, // __builtin_msa_srar_w
+      {Intrinsic::mips_srari_b, 71404}, // __builtin_msa_srari_b
+      {Intrinsic::mips_srari_d, 71426}, // __builtin_msa_srari_d
+      {Intrinsic::mips_srari_h, 71448}, // __builtin_msa_srari_h
+      {Intrinsic::mips_srari_w, 71470}, // __builtin_msa_srari_w
+      {Intrinsic::mips_srl_b, 71492}, // __builtin_msa_srl_b
+      {Intrinsic::mips_srl_d, 71512}, // __builtin_msa_srl_d
+      {Intrinsic::mips_srl_h, 71532}, // __builtin_msa_srl_h
+      {Intrinsic::mips_srl_w, 71552}, // __builtin_msa_srl_w
+      {Intrinsic::mips_srli_b, 71572}, // __builtin_msa_srli_b
+      {Intrinsic::mips_srli_d, 71593}, // __builtin_msa_srli_d
+      {Intrinsic::mips_srli_h, 71614}, // __builtin_msa_srli_h
+      {Intrinsic::mips_srli_w, 71635}, // __builtin_msa_srli_w
+      {Intrinsic::mips_srlr_b, 71656}, // __builtin_msa_srlr_b
+      {Intrinsic::mips_srlr_d, 71677}, // __builtin_msa_srlr_d
+      {Intrinsic::mips_srlr_h, 71698}, // __builtin_msa_srlr_h
+      {Intrinsic::mips_srlr_w, 71719}, // __builtin_msa_srlr_w
+      {Intrinsic::mips_srlri_b, 71740}, // __builtin_msa_srlri_b
+      {Intrinsic::mips_srlri_d, 71762}, // __builtin_msa_srlri_d
+      {Intrinsic::mips_srlri_h, 71784}, // __builtin_msa_srlri_h
+      {Intrinsic::mips_srlri_w, 71806}, // __builtin_msa_srlri_w
+      {Intrinsic::mips_st_b, 71828}, // __builtin_msa_st_b
+      {Intrinsic::mips_st_d, 71847}, // __builtin_msa_st_d
+      {Intrinsic::mips_st_h, 71866}, // __builtin_msa_st_h
+      {Intrinsic::mips_st_w, 71885}, // __builtin_msa_st_w
+      {Intrinsic::mips_subs_s_b, 72074}, // __builtin_msa_subs_s_b
+      {Intrinsic::mips_subs_s_d, 72097}, // __builtin_msa_subs_s_d
+      {Intrinsic::mips_subs_s_h, 72120}, // __builtin_msa_subs_s_h
+      {Intrinsic::mips_subs_s_w, 72143}, // __builtin_msa_subs_s_w
+      {Intrinsic::mips_subs_u_b, 72166}, // __builtin_msa_subs_u_b
+      {Intrinsic::mips_subs_u_d, 72189}, // __builtin_msa_subs_u_d
+      {Intrinsic::mips_subs_u_h, 72212}, // __builtin_msa_subs_u_h
+      {Intrinsic::mips_subs_u_w, 72235}, // __builtin_msa_subs_u_w
+      {Intrinsic::mips_subsus_u_b, 72258}, // __builtin_msa_subsus_u_b
+      {Intrinsic::mips_subsus_u_d, 72283}, // __builtin_msa_subsus_u_d
+      {Intrinsic::mips_subsus_u_h, 72308}, // __builtin_msa_subsus_u_h
+      {Intrinsic::mips_subsus_u_w, 72333}, // __builtin_msa_subsus_u_w
+      {Intrinsic::mips_subsuu_s_b, 72358}, // __builtin_msa_subsuu_s_b
+      {Intrinsic::mips_subsuu_s_d, 72383}, // __builtin_msa_subsuu_s_d
+      {Intrinsic::mips_subsuu_s_h, 72408}, // __builtin_msa_subsuu_s_h
+      {Intrinsic::mips_subsuu_s_w, 72433}, // __builtin_msa_subsuu_s_w
+      {Intrinsic::mips_subv_b, 72604}, // __builtin_msa_subv_b
+      {Intrinsic::mips_subv_d, 72625}, // __builtin_msa_subv_d
+      {Intrinsic::mips_subv_h, 72646}, // __builtin_msa_subv_h
+      {Intrinsic::mips_subv_w, 72667}, // __builtin_msa_subv_w
+      {Intrinsic::mips_subvi_b, 72688}, // __builtin_msa_subvi_b
+      {Intrinsic::mips_subvi_d, 72710}, // __builtin_msa_subvi_d
+      {Intrinsic::mips_subvi_h, 72732}, // __builtin_msa_subvi_h
+      {Intrinsic::mips_subvi_w, 72754}, // __builtin_msa_subvi_w
+      {Intrinsic::mips_vshf_b, 72776}, // __builtin_msa_vshf_b
+      {Intrinsic::mips_vshf_d, 72797}, // __builtin_msa_vshf_d
+      {Intrinsic::mips_vshf_h, 72818}, // __builtin_msa_vshf_h
+      {Intrinsic::mips_vshf_w, 72839}, // __builtin_msa_vshf_w
+      {Intrinsic::mips_xor_v, 72881}, // __builtin_msa_xor_v
+      {Intrinsic::mips_xori_b, 72901}, // __builtin_msa_xori_b
+    };
+    auto I = std::lower_bound(std::begin(mipsNames),
+                              std::end(mipsNames),
+                              BuiltinNameStr);
+    if (I != std::end(mipsNames) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "nvvm") {
+    static const BuiltinEntry nvvmNames[] = {
+      {Intrinsic::nvvm_add_rm_d, 72922}, // __nvvm_add_rm_d
+      {Intrinsic::nvvm_add_rm_f, 72938}, // __nvvm_add_rm_f
+      {Intrinsic::nvvm_add_rm_ftz_f, 72954}, // __nvvm_add_rm_ftz_f
+      {Intrinsic::nvvm_add_rn_d, 72974}, // __nvvm_add_rn_d
+      {Intrinsic::nvvm_add_rn_f, 72990}, // __nvvm_add_rn_f
+      {Intrinsic::nvvm_add_rn_ftz_f, 73006}, // __nvvm_add_rn_ftz_f
+      {Intrinsic::nvvm_add_rp_d, 73026}, // __nvvm_add_rp_d
+      {Intrinsic::nvvm_add_rp_f, 73042}, // __nvvm_add_rp_f
+      {Intrinsic::nvvm_add_rp_ftz_f, 73058}, // __nvvm_add_rp_ftz_f
+      {Intrinsic::nvvm_add_rz_d, 73078}, // __nvvm_add_rz_d
+      {Intrinsic::nvvm_add_rz_f, 73094}, // __nvvm_add_rz_f
+      {Intrinsic::nvvm_add_rz_ftz_f, 73110}, // __nvvm_add_rz_ftz_f
+      {Intrinsic::nvvm_barrier, 73167}, // __nvvm_bar
+      {Intrinsic::nvvm_barrier0_and, 73249}, // __nvvm_bar0_and
+      {Intrinsic::nvvm_barrier0_or, 73265}, // __nvvm_bar0_or
+      {Intrinsic::nvvm_barrier0_popc, 73280}, // __nvvm_bar0_popc
+      {Intrinsic::nvvm_barrier_n, 73178}, // __nvvm_bar_n
+      {Intrinsic::nvvm_bar_sync, 73130}, // __nvvm_bar_sync
+      {Intrinsic::nvvm_bar_warp_sync, 73146}, // __nvvm_bar_warp_sync
+      {Intrinsic::nvvm_barrier_sync, 73191}, // __nvvm_barrier_sync
+      {Intrinsic::nvvm_barrier_sync_cnt, 73211}, // __nvvm_barrier_sync_cnt
+      {Intrinsic::nvvm_bitcast_d2ll, 73297}, // __nvvm_bitcast_d2ll
+      {Intrinsic::nvvm_bitcast_f2i, 73317}, // __nvvm_bitcast_f2i
+      {Intrinsic::nvvm_bitcast_i2f, 73336}, // __nvvm_bitcast_i2f
+      {Intrinsic::nvvm_bitcast_ll2d, 73355}, // __nvvm_bitcast_ll2d
+      {Intrinsic::nvvm_ceil_d, 73375}, // __nvvm_ceil_d
+      {Intrinsic::nvvm_ceil_f, 73389}, // __nvvm_ceil_f
+      {Intrinsic::nvvm_ceil_ftz_f, 73403}, // __nvvm_ceil_ftz_f
+      {Intrinsic::nvvm_cos_approx_f, 73421}, // __nvvm_cos_approx_f
+      {Intrinsic::nvvm_cos_approx_ftz_f, 73441}, // __nvvm_cos_approx_ftz_f
+      {Intrinsic::nvvm_d2f_rm, 73465}, // __nvvm_d2f_rm
+      {Intrinsic::nvvm_d2f_rm_ftz, 73479}, // __nvvm_d2f_rm_ftz
+      {Intrinsic::nvvm_d2f_rn, 73497}, // __nvvm_d2f_rn
+      {Intrinsic::nvvm_d2f_rn_ftz, 73511}, // __nvvm_d2f_rn_ftz
+      {Intrinsic::nvvm_d2f_rp, 73529}, // __nvvm_d2f_rp
+      {Intrinsic::nvvm_d2f_rp_ftz, 73543}, // __nvvm_d2f_rp_ftz
+      {Intrinsic::nvvm_d2f_rz, 73561}, // __nvvm_d2f_rz
+      {Intrinsic::nvvm_d2f_rz_ftz, 73575}, // __nvvm_d2f_rz_ftz
+      {Intrinsic::nvvm_d2i_hi, 73593}, // __nvvm_d2i_hi
+      {Intrinsic::nvvm_d2i_lo, 73607}, // __nvvm_d2i_lo
+      {Intrinsic::nvvm_d2i_rm, 73621}, // __nvvm_d2i_rm
+      {Intrinsic::nvvm_d2i_rn, 73635}, // __nvvm_d2i_rn
+      {Intrinsic::nvvm_d2i_rp, 73649}, // __nvvm_d2i_rp
+      {Intrinsic::nvvm_d2i_rz, 73663}, // __nvvm_d2i_rz
+      {Intrinsic::nvvm_d2ll_rm, 73677}, // __nvvm_d2ll_rm
+      {Intrinsic::nvvm_d2ll_rn, 73692}, // __nvvm_d2ll_rn
+      {Intrinsic::nvvm_d2ll_rp, 73707}, // __nvvm_d2ll_rp
+      {Intrinsic::nvvm_d2ll_rz, 73722}, // __nvvm_d2ll_rz
+      {Intrinsic::nvvm_d2ui_rm, 73737}, // __nvvm_d2ui_rm
+      {Intrinsic::nvvm_d2ui_rn, 73752}, // __nvvm_d2ui_rn
+      {Intrinsic::nvvm_d2ui_rp, 73767}, // __nvvm_d2ui_rp
+      {Intrinsic::nvvm_d2ui_rz, 73782}, // __nvvm_d2ui_rz
+      {Intrinsic::nvvm_d2ull_rm, 73797}, // __nvvm_d2ull_rm
+      {Intrinsic::nvvm_d2ull_rn, 73813}, // __nvvm_d2ull_rn
+      {Intrinsic::nvvm_d2ull_rp, 73829}, // __nvvm_d2ull_rp
+      {Intrinsic::nvvm_d2ull_rz, 73845}, // __nvvm_d2ull_rz
+      {Intrinsic::nvvm_div_approx_f, 73861}, // __nvvm_div_approx_f
+      {Intrinsic::nvvm_div_approx_ftz_f, 73881}, // __nvvm_div_approx_ftz_f
+      {Intrinsic::nvvm_div_rm_d, 73905}, // __nvvm_div_rm_d
+      {Intrinsic::nvvm_div_rm_f, 73921}, // __nvvm_div_rm_f
+      {Intrinsic::nvvm_div_rm_ftz_f, 73937}, // __nvvm_div_rm_ftz_f
+      {Intrinsic::nvvm_div_rn_d, 73957}, // __nvvm_div_rn_d
+      {Intrinsic::nvvm_div_rn_f, 73973}, // __nvvm_div_rn_f
+      {Intrinsic::nvvm_div_rn_ftz_f, 73989}, // __nvvm_div_rn_ftz_f
+      {Intrinsic::nvvm_div_rp_d, 74009}, // __nvvm_div_rp_d
+      {Intrinsic::nvvm_div_rp_f, 74025}, // __nvvm_div_rp_f
+      {Intrinsic::nvvm_div_rp_ftz_f, 74041}, // __nvvm_div_rp_ftz_f
+      {Intrinsic::nvvm_div_rz_d, 74061}, // __nvvm_div_rz_d
+      {Intrinsic::nvvm_div_rz_f, 74077}, // __nvvm_div_rz_f
+      {Intrinsic::nvvm_div_rz_ftz_f, 74093}, // __nvvm_div_rz_ftz_f
+      {Intrinsic::nvvm_ex2_approx_d, 74113}, // __nvvm_ex2_approx_d
+      {Intrinsic::nvvm_ex2_approx_f, 74133}, // __nvvm_ex2_approx_f
+      {Intrinsic::nvvm_ex2_approx_ftz_f, 74153}, // __nvvm_ex2_approx_ftz_f
+      {Intrinsic::nvvm_f2h_rn, 74177}, // __nvvm_f2h_rn
+      {Intrinsic::nvvm_f2h_rn_ftz, 74191}, // __nvvm_f2h_rn_ftz
+      {Intrinsic::nvvm_f2i_rm, 74209}, // __nvvm_f2i_rm
+      {Intrinsic::nvvm_f2i_rm_ftz, 74223}, // __nvvm_f2i_rm_ftz
+      {Intrinsic::nvvm_f2i_rn, 74241}, // __nvvm_f2i_rn
+      {Intrinsic::nvvm_f2i_rn_ftz, 74255}, // __nvvm_f2i_rn_ftz
+      {Intrinsic::nvvm_f2i_rp, 74273}, // __nvvm_f2i_rp
+      {Intrinsic::nvvm_f2i_rp_ftz, 74287}, // __nvvm_f2i_rp_ftz
+      {Intrinsic::nvvm_f2i_rz, 74305}, // __nvvm_f2i_rz
+      {Intrinsic::nvvm_f2i_rz_ftz, 74319}, // __nvvm_f2i_rz_ftz
+      {Intrinsic::nvvm_f2ll_rm, 74337}, // __nvvm_f2ll_rm
+      {Intrinsic::nvvm_f2ll_rm_ftz, 74352}, // __nvvm_f2ll_rm_ftz
+      {Intrinsic::nvvm_f2ll_rn, 74371}, // __nvvm_f2ll_rn
+      {Intrinsic::nvvm_f2ll_rn_ftz, 74386}, // __nvvm_f2ll_rn_ftz
+      {Intrinsic::nvvm_f2ll_rp, 74405}, // __nvvm_f2ll_rp
+      {Intrinsic::nvvm_f2ll_rp_ftz, 74420}, // __nvvm_f2ll_rp_ftz
+      {Intrinsic::nvvm_f2ll_rz, 74439}, // __nvvm_f2ll_rz
+      {Intrinsic::nvvm_f2ll_rz_ftz, 74454}, // __nvvm_f2ll_rz_ftz
+      {Intrinsic::nvvm_f2ui_rm, 74473}, // __nvvm_f2ui_rm
+      {Intrinsic::nvvm_f2ui_rm_ftz, 74488}, // __nvvm_f2ui_rm_ftz
+      {Intrinsic::nvvm_f2ui_rn, 74507}, // __nvvm_f2ui_rn
+      {Intrinsic::nvvm_f2ui_rn_ftz, 74522}, // __nvvm_f2ui_rn_ftz
+      {Intrinsic::nvvm_f2ui_rp, 74541}, // __nvvm_f2ui_rp
+      {Intrinsic::nvvm_f2ui_rp_ftz, 74556}, // __nvvm_f2ui_rp_ftz
+      {Intrinsic::nvvm_f2ui_rz, 74575}, // __nvvm_f2ui_rz
+      {Intrinsic::nvvm_f2ui_rz_ftz, 74590}, // __nvvm_f2ui_rz_ftz
+      {Intrinsic::nvvm_f2ull_rm, 74609}, // __nvvm_f2ull_rm
+      {Intrinsic::nvvm_f2ull_rm_ftz, 74625}, // __nvvm_f2ull_rm_ftz
+      {Intrinsic::nvvm_f2ull_rn, 74645}, // __nvvm_f2ull_rn
+      {Intrinsic::nvvm_f2ull_rn_ftz, 74661}, // __nvvm_f2ull_rn_ftz
+      {Intrinsic::nvvm_f2ull_rp, 74681}, // __nvvm_f2ull_rp
+      {Intrinsic::nvvm_f2ull_rp_ftz, 74697}, // __nvvm_f2ull_rp_ftz
+      {Intrinsic::nvvm_f2ull_rz, 74717}, // __nvvm_f2ull_rz
+      {Intrinsic::nvvm_f2ull_rz_ftz, 74733}, // __nvvm_f2ull_rz_ftz
+      {Intrinsic::nvvm_fabs_d, 74753}, // __nvvm_fabs_d
+      {Intrinsic::nvvm_fabs_f, 74767}, // __nvvm_fabs_f
+      {Intrinsic::nvvm_fabs_ftz_f, 74781}, // __nvvm_fabs_ftz_f
+      {Intrinsic::nvvm_floor_d, 74799}, // __nvvm_floor_d
+      {Intrinsic::nvvm_floor_f, 74814}, // __nvvm_floor_f
+      {Intrinsic::nvvm_floor_ftz_f, 74829}, // __nvvm_floor_ftz_f
+      {Intrinsic::nvvm_fma_rm_d, 74848}, // __nvvm_fma_rm_d
+      {Intrinsic::nvvm_fma_rm_f, 74864}, // __nvvm_fma_rm_f
+      {Intrinsic::nvvm_fma_rm_ftz_f, 74880}, // __nvvm_fma_rm_ftz_f
+      {Intrinsic::nvvm_fma_rn_d, 74900}, // __nvvm_fma_rn_d
+      {Intrinsic::nvvm_fma_rn_f, 74916}, // __nvvm_fma_rn_f
+      {Intrinsic::nvvm_fma_rn_ftz_f, 74932}, // __nvvm_fma_rn_ftz_f
+      {Intrinsic::nvvm_fma_rp_d, 74952}, // __nvvm_fma_rp_d
+      {Intrinsic::nvvm_fma_rp_f, 74968}, // __nvvm_fma_rp_f
+      {Intrinsic::nvvm_fma_rp_ftz_f, 74984}, // __nvvm_fma_rp_ftz_f
+      {Intrinsic::nvvm_fma_rz_d, 75004}, // __nvvm_fma_rz_d
+      {Intrinsic::nvvm_fma_rz_f, 75020}, // __nvvm_fma_rz_f
+      {Intrinsic::nvvm_fma_rz_ftz_f, 75036}, // __nvvm_fma_rz_ftz_f
+      {Intrinsic::nvvm_fmax_d, 75056}, // __nvvm_fmax_d
+      {Intrinsic::nvvm_fmax_f, 75070}, // __nvvm_fmax_f
+      {Intrinsic::nvvm_fmax_ftz_f, 75084}, // __nvvm_fmax_ftz_f
+      {Intrinsic::nvvm_fmin_d, 75102}, // __nvvm_fmin_d
+      {Intrinsic::nvvm_fmin_f, 75116}, // __nvvm_fmin_f
+      {Intrinsic::nvvm_fmin_ftz_f, 75130}, // __nvvm_fmin_ftz_f
+      {Intrinsic::nvvm_fns, 75148}, // __nvvm_fns
+      {Intrinsic::nvvm_i2d_rm, 75159}, // __nvvm_i2d_rm
+      {Intrinsic::nvvm_i2d_rn, 75173}, // __nvvm_i2d_rn
+      {Intrinsic::nvvm_i2d_rp, 75187}, // __nvvm_i2d_rp
+      {Intrinsic::nvvm_i2d_rz, 75201}, // __nvvm_i2d_rz
+      {Intrinsic::nvvm_i2f_rm, 75215}, // __nvvm_i2f_rm
+      {Intrinsic::nvvm_i2f_rn, 75229}, // __nvvm_i2f_rn
+      {Intrinsic::nvvm_i2f_rp, 75243}, // __nvvm_i2f_rp
+      {Intrinsic::nvvm_i2f_rz, 75257}, // __nvvm_i2f_rz
+      {Intrinsic::nvvm_isspacep_const, 75271}, // __nvvm_isspacep_const
+      {Intrinsic::nvvm_isspacep_global, 75293}, // __nvvm_isspacep_global
+      {Intrinsic::nvvm_isspacep_local, 75316}, // __nvvm_isspacep_local
+      {Intrinsic::nvvm_isspacep_shared, 75338}, // __nvvm_isspacep_shared
+      {Intrinsic::nvvm_istypep_sampler, 75361}, // __nvvm_istypep_sampler
+      {Intrinsic::nvvm_istypep_surface, 75384}, // __nvvm_istypep_surface
+      {Intrinsic::nvvm_istypep_texture, 75407}, // __nvvm_istypep_texture
+      {Intrinsic::nvvm_lg2_approx_d, 75430}, // __nvvm_lg2_approx_d
+      {Intrinsic::nvvm_lg2_approx_f, 75450}, // __nvvm_lg2_approx_f
+      {Intrinsic::nvvm_lg2_approx_ftz_f, 75470}, // __nvvm_lg2_approx_ftz_f
+      {Intrinsic::nvvm_ll2d_rm, 75494}, // __nvvm_ll2d_rm
+      {Intrinsic::nvvm_ll2d_rn, 75509}, // __nvvm_ll2d_rn
+      {Intrinsic::nvvm_ll2d_rp, 75524}, // __nvvm_ll2d_rp
+      {Intrinsic::nvvm_ll2d_rz, 75539}, // __nvvm_ll2d_rz
+      {Intrinsic::nvvm_ll2f_rm, 75554}, // __nvvm_ll2f_rm
+      {Intrinsic::nvvm_ll2f_rn, 75569}, // __nvvm_ll2f_rn
+      {Intrinsic::nvvm_ll2f_rp, 75584}, // __nvvm_ll2f_rp
+      {Intrinsic::nvvm_ll2f_rz, 75599}, // __nvvm_ll2f_rz
+      {Intrinsic::nvvm_lohi_i2d, 75614}, // __nvvm_lohi_i2d
+      {Intrinsic::nvvm_match_any_sync_i32, 75630}, // __nvvm_match_any_sync_i32
+      {Intrinsic::nvvm_match_any_sync_i64, 75656}, // __nvvm_match_any_sync_i64
+      {Intrinsic::nvvm_membar_cta, 75682}, // __nvvm_membar_cta
+      {Intrinsic::nvvm_membar_gl, 75700}, // __nvvm_membar_gl
+      {Intrinsic::nvvm_membar_sys, 75717}, // __nvvm_membar_sys
+      {Intrinsic::nvvm_mul24_i, 75943}, // __nvvm_mul24_i
+      {Intrinsic::nvvm_mul24_ui, 75958}, // __nvvm_mul24_ui
+      {Intrinsic::nvvm_mul_rm_d, 75735}, // __nvvm_mul_rm_d
+      {Intrinsic::nvvm_mul_rm_f, 75751}, // __nvvm_mul_rm_f
+      {Intrinsic::nvvm_mul_rm_ftz_f, 75767}, // __nvvm_mul_rm_ftz_f
+      {Intrinsic::nvvm_mul_rn_d, 75787}, // __nvvm_mul_rn_d
+      {Intrinsic::nvvm_mul_rn_f, 75803}, // __nvvm_mul_rn_f
+      {Intrinsic::nvvm_mul_rn_ftz_f, 75819}, // __nvvm_mul_rn_ftz_f
+      {Intrinsic::nvvm_mul_rp_d, 75839}, // __nvvm_mul_rp_d
+      {Intrinsic::nvvm_mul_rp_f, 75855}, // __nvvm_mul_rp_f
+      {Intrinsic::nvvm_mul_rp_ftz_f, 75871}, // __nvvm_mul_rp_ftz_f
+      {Intrinsic::nvvm_mul_rz_d, 75891}, // __nvvm_mul_rz_d
+      {Intrinsic::nvvm_mul_rz_f, 75907}, // __nvvm_mul_rz_f
+      {Intrinsic::nvvm_mul_rz_ftz_f, 75923}, // __nvvm_mul_rz_ftz_f
+      {Intrinsic::nvvm_mulhi_i, 75974}, // __nvvm_mulhi_i
+      {Intrinsic::nvvm_mulhi_ll, 75989}, // __nvvm_mulhi_ll
+      {Intrinsic::nvvm_mulhi_ui, 76005}, // __nvvm_mulhi_ui
+      {Intrinsic::nvvm_mulhi_ull, 76021}, // __nvvm_mulhi_ull
+      {Intrinsic::nvvm_prmt, 76038}, // __nvvm_prmt
+      {Intrinsic::nvvm_rcp_approx_ftz_d, 76050}, // __nvvm_rcp_approx_ftz_d
+      {Intrinsic::nvvm_rcp_rm_d, 76074}, // __nvvm_rcp_rm_d
+      {Intrinsic::nvvm_rcp_rm_f, 76090}, // __nvvm_rcp_rm_f
+      {Intrinsic::nvvm_rcp_rm_ftz_f, 76106}, // __nvvm_rcp_rm_ftz_f
+      {Intrinsic::nvvm_rcp_rn_d, 76126}, // __nvvm_rcp_rn_d
+      {Intrinsic::nvvm_rcp_rn_f, 76142}, // __nvvm_rcp_rn_f
+      {Intrinsic::nvvm_rcp_rn_ftz_f, 76158}, // __nvvm_rcp_rn_ftz_f
+      {Intrinsic::nvvm_rcp_rp_d, 76178}, // __nvvm_rcp_rp_d
+      {Intrinsic::nvvm_rcp_rp_f, 76194}, // __nvvm_rcp_rp_f
+      {Intrinsic::nvvm_rcp_rp_ftz_f, 76210}, // __nvvm_rcp_rp_ftz_f
+      {Intrinsic::nvvm_rcp_rz_d, 76230}, // __nvvm_rcp_rz_d
+      {Intrinsic::nvvm_rcp_rz_f, 76246}, // __nvvm_rcp_rz_f
+      {Intrinsic::nvvm_rcp_rz_ftz_f, 76262}, // __nvvm_rcp_rz_ftz_f
+      {Intrinsic::nvvm_read_ptx_sreg_clock, 76282}, // __nvvm_read_ptx_sreg_clock
+      {Intrinsic::nvvm_read_ptx_sreg_clock64, 76309}, // __nvvm_read_ptx_sreg_clock64
+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_w, 76338}, // __nvvm_read_ptx_sreg_ctaid_w
+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_x, 76367}, // __nvvm_read_ptx_sreg_ctaid_x
+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_y, 76396}, // __nvvm_read_ptx_sreg_ctaid_y
+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_z, 76425}, // __nvvm_read_ptx_sreg_ctaid_z
+      {Intrinsic::nvvm_read_ptx_sreg_envreg0, 76454}, // __nvvm_read_ptx_sreg_envreg0
+      {Intrinsic::nvvm_read_ptx_sreg_envreg1, 76483}, // __nvvm_read_ptx_sreg_envreg1
+      {Intrinsic::nvvm_read_ptx_sreg_envreg10, 76512}, // __nvvm_read_ptx_sreg_envreg10
+      {Intrinsic::nvvm_read_ptx_sreg_envreg11, 76542}, // __nvvm_read_ptx_sreg_envreg11
+      {Intrinsic::nvvm_read_ptx_sreg_envreg12, 76572}, // __nvvm_read_ptx_sreg_envreg12
+      {Intrinsic::nvvm_read_ptx_sreg_envreg13, 76602}, // __nvvm_read_ptx_sreg_envreg13
+      {Intrinsic::nvvm_read_ptx_sreg_envreg14, 76632}, // __nvvm_read_ptx_sreg_envreg14
+      {Intrinsic::nvvm_read_ptx_sreg_envreg15, 76662}, // __nvvm_read_ptx_sreg_envreg15
+      {Intrinsic::nvvm_read_ptx_sreg_envreg16, 76692}, // __nvvm_read_ptx_sreg_envreg16
+      {Intrinsic::nvvm_read_ptx_sreg_envreg17, 76722}, // __nvvm_read_ptx_sreg_envreg17
+      {Intrinsic::nvvm_read_ptx_sreg_envreg18, 76752}, // __nvvm_read_ptx_sreg_envreg18
+      {Intrinsic::nvvm_read_ptx_sreg_envreg19, 76782}, // __nvvm_read_ptx_sreg_envreg19
+      {Intrinsic::nvvm_read_ptx_sreg_envreg2, 76812}, // __nvvm_read_ptx_sreg_envreg2
+      {Intrinsic::nvvm_read_ptx_sreg_envreg20, 76841}, // __nvvm_read_ptx_sreg_envreg20
+      {Intrinsic::nvvm_read_ptx_sreg_envreg21, 76871}, // __nvvm_read_ptx_sreg_envreg21
+      {Intrinsic::nvvm_read_ptx_sreg_envreg22, 76901}, // __nvvm_read_ptx_sreg_envreg22
+      {Intrinsic::nvvm_read_ptx_sreg_envreg23, 76931}, // __nvvm_read_ptx_sreg_envreg23
+      {Intrinsic::nvvm_read_ptx_sreg_envreg24, 76961}, // __nvvm_read_ptx_sreg_envreg24
+      {Intrinsic::nvvm_read_ptx_sreg_envreg25, 76991}, // __nvvm_read_ptx_sreg_envreg25
+      {Intrinsic::nvvm_read_ptx_sreg_envreg26, 77021}, // __nvvm_read_ptx_sreg_envreg26
+      {Intrinsic::nvvm_read_ptx_sreg_envreg27, 77051}, // __nvvm_read_ptx_sreg_envreg27
+      {Intrinsic::nvvm_read_ptx_sreg_envreg28, 77081}, // __nvvm_read_ptx_sreg_envreg28
+      {Intrinsic::nvvm_read_ptx_sreg_envreg29, 77111}, // __nvvm_read_ptx_sreg_envreg29
+      {Intrinsic::nvvm_read_ptx_sreg_envreg3, 77141}, // __nvvm_read_ptx_sreg_envreg3
+      {Intrinsic::nvvm_read_ptx_sreg_envreg30, 77170}, // __nvvm_read_ptx_sreg_envreg30
+      {Intrinsic::nvvm_read_ptx_sreg_envreg31, 77200}, // __nvvm_read_ptx_sreg_envreg31
+      {Intrinsic::nvvm_read_ptx_sreg_envreg4, 77230}, // __nvvm_read_ptx_sreg_envreg4
+      {Intrinsic::nvvm_read_ptx_sreg_envreg5, 77259}, // __nvvm_read_ptx_sreg_envreg5
+      {Intrinsic::nvvm_read_ptx_sreg_envreg6, 77288}, // __nvvm_read_ptx_sreg_envreg6
+      {Intrinsic::nvvm_read_ptx_sreg_envreg7, 77317}, // __nvvm_read_ptx_sreg_envreg7
+      {Intrinsic::nvvm_read_ptx_sreg_envreg8, 77346}, // __nvvm_read_ptx_sreg_envreg8
+      {Intrinsic::nvvm_read_ptx_sreg_envreg9, 77375}, // __nvvm_read_ptx_sreg_envreg9
+      {Intrinsic::nvvm_read_ptx_sreg_gridid, 77404}, // __nvvm_read_ptx_sreg_gridid
+      {Intrinsic::nvvm_read_ptx_sreg_laneid, 77432}, // __nvvm_read_ptx_sreg_laneid
+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_eq, 77460}, // __nvvm_read_ptx_sreg_lanemask_eq
+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_ge, 77493}, // __nvvm_read_ptx_sreg_lanemask_ge
+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_gt, 77526}, // __nvvm_read_ptx_sreg_lanemask_gt
+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_le, 77559}, // __nvvm_read_ptx_sreg_lanemask_le
+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_lt, 77592}, // __nvvm_read_ptx_sreg_lanemask_lt
+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_w, 77625}, // __nvvm_read_ptx_sreg_nctaid_w
+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_x, 77655}, // __nvvm_read_ptx_sreg_nctaid_x
+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_y, 77685}, // __nvvm_read_ptx_sreg_nctaid_y
+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_z, 77715}, // __nvvm_read_ptx_sreg_nctaid_z
+      {Intrinsic::nvvm_read_ptx_sreg_nsmid, 77745}, // __nvvm_read_ptx_sreg_nsmid
+      {Intrinsic::nvvm_read_ptx_sreg_ntid_w, 77772}, // __nvvm_read_ptx_sreg_ntid_w
+      {Intrinsic::nvvm_read_ptx_sreg_ntid_x, 77800}, // __nvvm_read_ptx_sreg_ntid_x
+      {Intrinsic::nvvm_read_ptx_sreg_ntid_y, 77828}, // __nvvm_read_ptx_sreg_ntid_y
+      {Intrinsic::nvvm_read_ptx_sreg_ntid_z, 77856}, // __nvvm_read_ptx_sreg_ntid_z
+      {Intrinsic::nvvm_read_ptx_sreg_nwarpid, 77884}, // __nvvm_read_ptx_sreg_nwarpid
+      {Intrinsic::nvvm_read_ptx_sreg_pm0, 77913}, // __nvvm_read_ptx_sreg_pm0
+      {Intrinsic::nvvm_read_ptx_sreg_pm1, 77938}, // __nvvm_read_ptx_sreg_pm1
+      {Intrinsic::nvvm_read_ptx_sreg_pm2, 77963}, // __nvvm_read_ptx_sreg_pm2
+      {Intrinsic::nvvm_read_ptx_sreg_pm3, 77988}, // __nvvm_read_ptx_sreg_pm3
+      {Intrinsic::nvvm_read_ptx_sreg_smid, 78013}, // __nvvm_read_ptx_sreg_smid
+      {Intrinsic::nvvm_read_ptx_sreg_tid_w, 78039}, // __nvvm_read_ptx_sreg_tid_w
+      {Intrinsic::nvvm_read_ptx_sreg_tid_x, 78066}, // __nvvm_read_ptx_sreg_tid_x
+      {Intrinsic::nvvm_read_ptx_sreg_tid_y, 78093}, // __nvvm_read_ptx_sreg_tid_y
+      {Intrinsic::nvvm_read_ptx_sreg_tid_z, 78120}, // __nvvm_read_ptx_sreg_tid_z
+      {Intrinsic::nvvm_read_ptx_sreg_warpid, 78147}, // __nvvm_read_ptx_sreg_warpid
+      {Intrinsic::nvvm_read_ptx_sreg_warpsize, 78175}, // __nvvm_read_ptx_sreg_warpsize
+      {Intrinsic::nvvm_rotate_b32, 78205}, // __nvvm_rotate_b32
+      {Intrinsic::nvvm_rotate_b64, 78223}, // __nvvm_rotate_b64
+      {Intrinsic::nvvm_rotate_right_b64, 78241}, // __nvvm_rotate_right_b64
+      {Intrinsic::nvvm_round_d, 78265}, // __nvvm_round_d
+      {Intrinsic::nvvm_round_f, 78280}, // __nvvm_round_f
+      {Intrinsic::nvvm_round_ftz_f, 78295}, // __nvvm_round_ftz_f
+      {Intrinsic::nvvm_rsqrt_approx_d, 78314}, // __nvvm_rsqrt_approx_d
+      {Intrinsic::nvvm_rsqrt_approx_f, 78336}, // __nvvm_rsqrt_approx_f
+      {Intrinsic::nvvm_rsqrt_approx_ftz_f, 78358}, // __nvvm_rsqrt_approx_ftz_f
+      {Intrinsic::nvvm_sad_i, 78384}, // __nvvm_sad_i
+      {Intrinsic::nvvm_sad_ui, 78397}, // __nvvm_sad_ui
+      {Intrinsic::nvvm_saturate_d, 78411}, // __nvvm_saturate_d
+      {Intrinsic::nvvm_saturate_f, 78429}, // __nvvm_saturate_f
+      {Intrinsic::nvvm_saturate_ftz_f, 78447}, // __nvvm_saturate_ftz_f
+      {Intrinsic::nvvm_shfl_bfly_f32, 78469}, // __nvvm_shfl_bfly_f32
+      {Intrinsic::nvvm_shfl_bfly_i32, 78490}, // __nvvm_shfl_bfly_i32
+      {Intrinsic::nvvm_shfl_down_f32, 78511}, // __nvvm_shfl_down_f32
+      {Intrinsic::nvvm_shfl_down_i32, 78532}, // __nvvm_shfl_down_i32
+      {Intrinsic::nvvm_shfl_idx_f32, 78553}, // __nvvm_shfl_idx_f32
+      {Intrinsic::nvvm_shfl_idx_i32, 78573}, // __nvvm_shfl_idx_i32
+      {Intrinsic::nvvm_shfl_sync_bfly_f32, 78593}, // __nvvm_shfl_sync_bfly_f32
+      {Intrinsic::nvvm_shfl_sync_bfly_i32, 78619}, // __nvvm_shfl_sync_bfly_i32
+      {Intrinsic::nvvm_shfl_sync_down_f32, 78645}, // __nvvm_shfl_sync_down_f32
+      {Intrinsic::nvvm_shfl_sync_down_i32, 78671}, // __nvvm_shfl_sync_down_i32
+      {Intrinsic::nvvm_shfl_sync_idx_f32, 78697}, // __nvvm_shfl_sync_idx_f32
+      {Intrinsic::nvvm_shfl_sync_idx_i32, 78722}, // __nvvm_shfl_sync_idx_i32
+      {Intrinsic::nvvm_shfl_sync_up_f32, 78747}, // __nvvm_shfl_sync_up_f32
+      {Intrinsic::nvvm_shfl_sync_up_i32, 78771}, // __nvvm_shfl_sync_up_i32
+      {Intrinsic::nvvm_shfl_up_f32, 78795}, // __nvvm_shfl_up_f32
+      {Intrinsic::nvvm_shfl_up_i32, 78814}, // __nvvm_shfl_up_i32
+      {Intrinsic::nvvm_sin_approx_f, 78833}, // __nvvm_sin_approx_f
+      {Intrinsic::nvvm_sin_approx_ftz_f, 78853}, // __nvvm_sin_approx_ftz_f
+      {Intrinsic::nvvm_sqrt_approx_f, 78877}, // __nvvm_sqrt_approx_f
+      {Intrinsic::nvvm_sqrt_approx_ftz_f, 78898}, // __nvvm_sqrt_approx_ftz_f
+      {Intrinsic::nvvm_sqrt_f, 78923}, // __nvvm_sqrt_f
+      {Intrinsic::nvvm_sqrt_rm_d, 78937}, // __nvvm_sqrt_rm_d
+      {Intrinsic::nvvm_sqrt_rm_f, 78954}, // __nvvm_sqrt_rm_f
+      {Intrinsic::nvvm_sqrt_rm_ftz_f, 78971}, // __nvvm_sqrt_rm_ftz_f
+      {Intrinsic::nvvm_sqrt_rn_d, 78992}, // __nvvm_sqrt_rn_d
+      {Intrinsic::nvvm_sqrt_rn_f, 79009}, // __nvvm_sqrt_rn_f
+      {Intrinsic::nvvm_sqrt_rn_ftz_f, 79026}, // __nvvm_sqrt_rn_ftz_f
+      {Intrinsic::nvvm_sqrt_rp_d, 79047}, // __nvvm_sqrt_rp_d
+      {Intrinsic::nvvm_sqrt_rp_f, 79064}, // __nvvm_sqrt_rp_f
+      {Intrinsic::nvvm_sqrt_rp_ftz_f, 79081}, // __nvvm_sqrt_rp_ftz_f
+      {Intrinsic::nvvm_sqrt_rz_d, 79102}, // __nvvm_sqrt_rz_d
+      {Intrinsic::nvvm_sqrt_rz_f, 79119}, // __nvvm_sqrt_rz_f
+      {Intrinsic::nvvm_sqrt_rz_ftz_f, 79136}, // __nvvm_sqrt_rz_ftz_f
+      {Intrinsic::nvvm_suq_array_size, 79157}, // __nvvm_suq_array_size
+      {Intrinsic::nvvm_suq_channel_data_type, 79179}, // __nvvm_suq_channel_data_type
+      {Intrinsic::nvvm_suq_channel_order, 79208}, // __nvvm_suq_channel_order
+      {Intrinsic::nvvm_suq_depth, 79233}, // __nvvm_suq_depth
+      {Intrinsic::nvvm_suq_height, 79250}, // __nvvm_suq_height
+      {Intrinsic::nvvm_suq_width, 79268}, // __nvvm_suq_width
+      {Intrinsic::nvvm_sust_b_1d_array_i16_clamp, 79285}, // __nvvm_sust_b_1d_array_i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_i16_trap, 79318}, // __nvvm_sust_b_1d_array_i16_trap
+      {Intrinsic::nvvm_sust_b_1d_array_i16_zero, 79350}, // __nvvm_sust_b_1d_array_i16_zero
+      {Intrinsic::nvvm_sust_b_1d_array_i32_clamp, 79382}, // __nvvm_sust_b_1d_array_i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_i32_trap, 79415}, // __nvvm_sust_b_1d_array_i32_trap
+      {Intrinsic::nvvm_sust_b_1d_array_i32_zero, 79447}, // __nvvm_sust_b_1d_array_i32_zero
+      {Intrinsic::nvvm_sust_b_1d_array_i64_clamp, 79479}, // __nvvm_sust_b_1d_array_i64_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_i64_trap, 79512}, // __nvvm_sust_b_1d_array_i64_trap
+      {Intrinsic::nvvm_sust_b_1d_array_i64_zero, 79544}, // __nvvm_sust_b_1d_array_i64_zero
+      {Intrinsic::nvvm_sust_b_1d_array_i8_clamp, 79576}, // __nvvm_sust_b_1d_array_i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_i8_trap, 79608}, // __nvvm_sust_b_1d_array_i8_trap
+      {Intrinsic::nvvm_sust_b_1d_array_i8_zero, 79639}, // __nvvm_sust_b_1d_array_i8_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v2i16_clamp, 79670}, // __nvvm_sust_b_1d_array_v2i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v2i16_trap, 79705}, // __nvvm_sust_b_1d_array_v2i16_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v2i16_zero, 79739}, // __nvvm_sust_b_1d_array_v2i16_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v2i32_clamp, 79773}, // __nvvm_sust_b_1d_array_v2i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v2i32_trap, 79808}, // __nvvm_sust_b_1d_array_v2i32_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v2i32_zero, 79842}, // __nvvm_sust_b_1d_array_v2i32_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v2i64_clamp, 79876}, // __nvvm_sust_b_1d_array_v2i64_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v2i64_trap, 79911}, // __nvvm_sust_b_1d_array_v2i64_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v2i64_zero, 79945}, // __nvvm_sust_b_1d_array_v2i64_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v2i8_clamp, 79979}, // __nvvm_sust_b_1d_array_v2i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v2i8_trap, 80013}, // __nvvm_sust_b_1d_array_v2i8_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v2i8_zero, 80046}, // __nvvm_sust_b_1d_array_v2i8_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v4i16_clamp, 80079}, // __nvvm_sust_b_1d_array_v4i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v4i16_trap, 80114}, // __nvvm_sust_b_1d_array_v4i16_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v4i16_zero, 80148}, // __nvvm_sust_b_1d_array_v4i16_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v4i32_clamp, 80182}, // __nvvm_sust_b_1d_array_v4i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v4i32_trap, 80217}, // __nvvm_sust_b_1d_array_v4i32_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v4i32_zero, 80251}, // __nvvm_sust_b_1d_array_v4i32_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v4i8_clamp, 80285}, // __nvvm_sust_b_1d_array_v4i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v4i8_trap, 80319}, // __nvvm_sust_b_1d_array_v4i8_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v4i8_zero, 80352}, // __nvvm_sust_b_1d_array_v4i8_zero
+      {Intrinsic::nvvm_sust_b_1d_i16_clamp, 80385}, // __nvvm_sust_b_1d_i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_i16_trap, 80412}, // __nvvm_sust_b_1d_i16_trap
+      {Intrinsic::nvvm_sust_b_1d_i16_zero, 80438}, // __nvvm_sust_b_1d_i16_zero
+      {Intrinsic::nvvm_sust_b_1d_i32_clamp, 80464}, // __nvvm_sust_b_1d_i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_i32_trap, 80491}, // __nvvm_sust_b_1d_i32_trap
+      {Intrinsic::nvvm_sust_b_1d_i32_zero, 80517}, // __nvvm_sust_b_1d_i32_zero
+      {Intrinsic::nvvm_sust_b_1d_i64_clamp, 80543}, // __nvvm_sust_b_1d_i64_clamp
+      {Intrinsic::nvvm_sust_b_1d_i64_trap, 80570}, // __nvvm_sust_b_1d_i64_trap
+      {Intrinsic::nvvm_sust_b_1d_i64_zero, 80596}, // __nvvm_sust_b_1d_i64_zero
+      {Intrinsic::nvvm_sust_b_1d_i8_clamp, 80622}, // __nvvm_sust_b_1d_i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_i8_trap, 80648}, // __nvvm_sust_b_1d_i8_trap
+      {Intrinsic::nvvm_sust_b_1d_i8_zero, 80673}, // __nvvm_sust_b_1d_i8_zero
+      {Intrinsic::nvvm_sust_b_1d_v2i16_clamp, 80698}, // __nvvm_sust_b_1d_v2i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_v2i16_trap, 80727}, // __nvvm_sust_b_1d_v2i16_trap
+      {Intrinsic::nvvm_sust_b_1d_v2i16_zero, 80755}, // __nvvm_sust_b_1d_v2i16_zero
+      {Intrinsic::nvvm_sust_b_1d_v2i32_clamp, 80783}, // __nvvm_sust_b_1d_v2i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_v2i32_trap, 80812}, // __nvvm_sust_b_1d_v2i32_trap
+      {Intrinsic::nvvm_sust_b_1d_v2i32_zero, 80840}, // __nvvm_sust_b_1d_v2i32_zero
+      {Intrinsic::nvvm_sust_b_1d_v2i64_clamp, 80868}, // __nvvm_sust_b_1d_v2i64_clamp
+      {Intrinsic::nvvm_sust_b_1d_v2i64_trap, 80897}, // __nvvm_sust_b_1d_v2i64_trap
+      {Intrinsic::nvvm_sust_b_1d_v2i64_zero, 80925}, // __nvvm_sust_b_1d_v2i64_zero
+      {Intrinsic::nvvm_sust_b_1d_v2i8_clamp, 80953}, // __nvvm_sust_b_1d_v2i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_v2i8_trap, 80981}, // __nvvm_sust_b_1d_v2i8_trap
+      {Intrinsic::nvvm_sust_b_1d_v2i8_zero, 81008}, // __nvvm_sust_b_1d_v2i8_zero
+      {Intrinsic::nvvm_sust_b_1d_v4i16_clamp, 81035}, // __nvvm_sust_b_1d_v4i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_v4i16_trap, 81064}, // __nvvm_sust_b_1d_v4i16_trap
+      {Intrinsic::nvvm_sust_b_1d_v4i16_zero, 81092}, // __nvvm_sust_b_1d_v4i16_zero
+      {Intrinsic::nvvm_sust_b_1d_v4i32_clamp, 81120}, // __nvvm_sust_b_1d_v4i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_v4i32_trap, 81149}, // __nvvm_sust_b_1d_v4i32_trap
+      {Intrinsic::nvvm_sust_b_1d_v4i32_zero, 81177}, // __nvvm_sust_b_1d_v4i32_zero
+      {Intrinsic::nvvm_sust_b_1d_v4i8_clamp, 81205}, // __nvvm_sust_b_1d_v4i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_v4i8_trap, 81233}, // __nvvm_sust_b_1d_v4i8_trap
+      {Intrinsic::nvvm_sust_b_1d_v4i8_zero, 81260}, // __nvvm_sust_b_1d_v4i8_zero
+      {Intrinsic::nvvm_sust_b_2d_array_i16_clamp, 81287}, // __nvvm_sust_b_2d_array_i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_i16_trap, 81320}, // __nvvm_sust_b_2d_array_i16_trap
+      {Intrinsic::nvvm_sust_b_2d_array_i16_zero, 81352}, // __nvvm_sust_b_2d_array_i16_zero
+      {Intrinsic::nvvm_sust_b_2d_array_i32_clamp, 81384}, // __nvvm_sust_b_2d_array_i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_i32_trap, 81417}, // __nvvm_sust_b_2d_array_i32_trap
+      {Intrinsic::nvvm_sust_b_2d_array_i32_zero, 81449}, // __nvvm_sust_b_2d_array_i32_zero
+      {Intrinsic::nvvm_sust_b_2d_array_i64_clamp, 81481}, // __nvvm_sust_b_2d_array_i64_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_i64_trap, 81514}, // __nvvm_sust_b_2d_array_i64_trap
+      {Intrinsic::nvvm_sust_b_2d_array_i64_zero, 81546}, // __nvvm_sust_b_2d_array_i64_zero
+      {Intrinsic::nvvm_sust_b_2d_array_i8_clamp, 81578}, // __nvvm_sust_b_2d_array_i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_i8_trap, 81610}, // __nvvm_sust_b_2d_array_i8_trap
+      {Intrinsic::nvvm_sust_b_2d_array_i8_zero, 81641}, // __nvvm_sust_b_2d_array_i8_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v2i16_clamp, 81672}, // __nvvm_sust_b_2d_array_v2i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v2i16_trap, 81707}, // __nvvm_sust_b_2d_array_v2i16_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v2i16_zero, 81741}, // __nvvm_sust_b_2d_array_v2i16_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v2i32_clamp, 81775}, // __nvvm_sust_b_2d_array_v2i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v2i32_trap, 81810}, // __nvvm_sust_b_2d_array_v2i32_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v2i32_zero, 81844}, // __nvvm_sust_b_2d_array_v2i32_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v2i64_clamp, 81878}, // __nvvm_sust_b_2d_array_v2i64_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v2i64_trap, 81913}, // __nvvm_sust_b_2d_array_v2i64_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v2i64_zero, 81947}, // __nvvm_sust_b_2d_array_v2i64_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v2i8_clamp, 81981}, // __nvvm_sust_b_2d_array_v2i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v2i8_trap, 82015}, // __nvvm_sust_b_2d_array_v2i8_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v2i8_zero, 82048}, // __nvvm_sust_b_2d_array_v2i8_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v4i16_clamp, 82081}, // __nvvm_sust_b_2d_array_v4i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v4i16_trap, 82116}, // __nvvm_sust_b_2d_array_v4i16_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v4i16_zero, 82150}, // __nvvm_sust_b_2d_array_v4i16_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v4i32_clamp, 82184}, // __nvvm_sust_b_2d_array_v4i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v4i32_trap, 82219}, // __nvvm_sust_b_2d_array_v4i32_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v4i32_zero, 82253}, // __nvvm_sust_b_2d_array_v4i32_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v4i8_clamp, 82287}, // __nvvm_sust_b_2d_array_v4i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v4i8_trap, 82321}, // __nvvm_sust_b_2d_array_v4i8_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v4i8_zero, 82354}, // __nvvm_sust_b_2d_array_v4i8_zero
+      {Intrinsic::nvvm_sust_b_2d_i16_clamp, 82387}, // __nvvm_sust_b_2d_i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_i16_trap, 82414}, // __nvvm_sust_b_2d_i16_trap
+      {Intrinsic::nvvm_sust_b_2d_i16_zero, 82440}, // __nvvm_sust_b_2d_i16_zero
+      {Intrinsic::nvvm_sust_b_2d_i32_clamp, 82466}, // __nvvm_sust_b_2d_i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_i32_trap, 82493}, // __nvvm_sust_b_2d_i32_trap
+      {Intrinsic::nvvm_sust_b_2d_i32_zero, 82519}, // __nvvm_sust_b_2d_i32_zero
+      {Intrinsic::nvvm_sust_b_2d_i64_clamp, 82545}, // __nvvm_sust_b_2d_i64_clamp
+      {Intrinsic::nvvm_sust_b_2d_i64_trap, 82572}, // __nvvm_sust_b_2d_i64_trap
+      {Intrinsic::nvvm_sust_b_2d_i64_zero, 82598}, // __nvvm_sust_b_2d_i64_zero
+      {Intrinsic::nvvm_sust_b_2d_i8_clamp, 82624}, // __nvvm_sust_b_2d_i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_i8_trap, 82650}, // __nvvm_sust_b_2d_i8_trap
+      {Intrinsic::nvvm_sust_b_2d_i8_zero, 82675}, // __nvvm_sust_b_2d_i8_zero
+      {Intrinsic::nvvm_sust_b_2d_v2i16_clamp, 82700}, // __nvvm_sust_b_2d_v2i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_v2i16_trap, 82729}, // __nvvm_sust_b_2d_v2i16_trap
+      {Intrinsic::nvvm_sust_b_2d_v2i16_zero, 82757}, // __nvvm_sust_b_2d_v2i16_zero
+      {Intrinsic::nvvm_sust_b_2d_v2i32_clamp, 82785}, // __nvvm_sust_b_2d_v2i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_v2i32_trap, 82814}, // __nvvm_sust_b_2d_v2i32_trap
+      {Intrinsic::nvvm_sust_b_2d_v2i32_zero, 82842}, // __nvvm_sust_b_2d_v2i32_zero
+      {Intrinsic::nvvm_sust_b_2d_v2i64_clamp, 82870}, // __nvvm_sust_b_2d_v2i64_clamp
+      {Intrinsic::nvvm_sust_b_2d_v2i64_trap, 82899}, // __nvvm_sust_b_2d_v2i64_trap
+      {Intrinsic::nvvm_sust_b_2d_v2i64_zero, 82927}, // __nvvm_sust_b_2d_v2i64_zero
+      {Intrinsic::nvvm_sust_b_2d_v2i8_clamp, 82955}, // __nvvm_sust_b_2d_v2i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_v2i8_trap, 82983}, // __nvvm_sust_b_2d_v2i8_trap
+      {Intrinsic::nvvm_sust_b_2d_v2i8_zero, 83010}, // __nvvm_sust_b_2d_v2i8_zero
+      {Intrinsic::nvvm_sust_b_2d_v4i16_clamp, 83037}, // __nvvm_sust_b_2d_v4i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_v4i16_trap, 83066}, // __nvvm_sust_b_2d_v4i16_trap
+      {Intrinsic::nvvm_sust_b_2d_v4i16_zero, 83094}, // __nvvm_sust_b_2d_v4i16_zero
+      {Intrinsic::nvvm_sust_b_2d_v4i32_clamp, 83122}, // __nvvm_sust_b_2d_v4i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_v4i32_trap, 83151}, // __nvvm_sust_b_2d_v4i32_trap
+      {Intrinsic::nvvm_sust_b_2d_v4i32_zero, 83179}, // __nvvm_sust_b_2d_v4i32_zero
+      {Intrinsic::nvvm_sust_b_2d_v4i8_clamp, 83207}, // __nvvm_sust_b_2d_v4i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_v4i8_trap, 83235}, // __nvvm_sust_b_2d_v4i8_trap
+      {Intrinsic::nvvm_sust_b_2d_v4i8_zero, 83262}, // __nvvm_sust_b_2d_v4i8_zero
+      {Intrinsic::nvvm_sust_b_3d_i16_clamp, 83289}, // __nvvm_sust_b_3d_i16_clamp
+      {Intrinsic::nvvm_sust_b_3d_i16_trap, 83316}, // __nvvm_sust_b_3d_i16_trap
+      {Intrinsic::nvvm_sust_b_3d_i16_zero, 83342}, // __nvvm_sust_b_3d_i16_zero
+      {Intrinsic::nvvm_sust_b_3d_i32_clamp, 83368}, // __nvvm_sust_b_3d_i32_clamp
+      {Intrinsic::nvvm_sust_b_3d_i32_trap, 83395}, // __nvvm_sust_b_3d_i32_trap
+      {Intrinsic::nvvm_sust_b_3d_i32_zero, 83421}, // __nvvm_sust_b_3d_i32_zero
+      {Intrinsic::nvvm_sust_b_3d_i64_clamp, 83447}, // __nvvm_sust_b_3d_i64_clamp
+      {Intrinsic::nvvm_sust_b_3d_i64_trap, 83474}, // __nvvm_sust_b_3d_i64_trap
+      {Intrinsic::nvvm_sust_b_3d_i64_zero, 83500}, // __nvvm_sust_b_3d_i64_zero
+      {Intrinsic::nvvm_sust_b_3d_i8_clamp, 83526}, // __nvvm_sust_b_3d_i8_clamp
+      {Intrinsic::nvvm_sust_b_3d_i8_trap, 83552}, // __nvvm_sust_b_3d_i8_trap
+      {Intrinsic::nvvm_sust_b_3d_i8_zero, 83577}, // __nvvm_sust_b_3d_i8_zero
+      {Intrinsic::nvvm_sust_b_3d_v2i16_clamp, 83602}, // __nvvm_sust_b_3d_v2i16_clamp
+      {Intrinsic::nvvm_sust_b_3d_v2i16_trap, 83631}, // __nvvm_sust_b_3d_v2i16_trap
+      {Intrinsic::nvvm_sust_b_3d_v2i16_zero, 83659}, // __nvvm_sust_b_3d_v2i16_zero
+      {Intrinsic::nvvm_sust_b_3d_v2i32_clamp, 83687}, // __nvvm_sust_b_3d_v2i32_clamp
+      {Intrinsic::nvvm_sust_b_3d_v2i32_trap, 83716}, // __nvvm_sust_b_3d_v2i32_trap
+      {Intrinsic::nvvm_sust_b_3d_v2i32_zero, 83744}, // __nvvm_sust_b_3d_v2i32_zero
+      {Intrinsic::nvvm_sust_b_3d_v2i64_clamp, 83772}, // __nvvm_sust_b_3d_v2i64_clamp
+      {Intrinsic::nvvm_sust_b_3d_v2i64_trap, 83801}, // __nvvm_sust_b_3d_v2i64_trap
+      {Intrinsic::nvvm_sust_b_3d_v2i64_zero, 83829}, // __nvvm_sust_b_3d_v2i64_zero
+      {Intrinsic::nvvm_sust_b_3d_v2i8_clamp, 83857}, // __nvvm_sust_b_3d_v2i8_clamp
+      {Intrinsic::nvvm_sust_b_3d_v2i8_trap, 83885}, // __nvvm_sust_b_3d_v2i8_trap
+      {Intrinsic::nvvm_sust_b_3d_v2i8_zero, 83912}, // __nvvm_sust_b_3d_v2i8_zero
+      {Intrinsic::nvvm_sust_b_3d_v4i16_clamp, 83939}, // __nvvm_sust_b_3d_v4i16_clamp
+      {Intrinsic::nvvm_sust_b_3d_v4i16_trap, 83968}, // __nvvm_sust_b_3d_v4i16_trap
+      {Intrinsic::nvvm_sust_b_3d_v4i16_zero, 83996}, // __nvvm_sust_b_3d_v4i16_zero
+      {Intrinsic::nvvm_sust_b_3d_v4i32_clamp, 84024}, // __nvvm_sust_b_3d_v4i32_clamp
+      {Intrinsic::nvvm_sust_b_3d_v4i32_trap, 84053}, // __nvvm_sust_b_3d_v4i32_trap
+      {Intrinsic::nvvm_sust_b_3d_v4i32_zero, 84081}, // __nvvm_sust_b_3d_v4i32_zero
+      {Intrinsic::nvvm_sust_b_3d_v4i8_clamp, 84109}, // __nvvm_sust_b_3d_v4i8_clamp
+      {Intrinsic::nvvm_sust_b_3d_v4i8_trap, 84137}, // __nvvm_sust_b_3d_v4i8_trap
+      {Intrinsic::nvvm_sust_b_3d_v4i8_zero, 84164}, // __nvvm_sust_b_3d_v4i8_zero
+      {Intrinsic::nvvm_sust_p_1d_array_i16_trap, 84191}, // __nvvm_sust_p_1d_array_i16_trap
+      {Intrinsic::nvvm_sust_p_1d_array_i32_trap, 84223}, // __nvvm_sust_p_1d_array_i32_trap
+      {Intrinsic::nvvm_sust_p_1d_array_i8_trap, 84255}, // __nvvm_sust_p_1d_array_i8_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v2i16_trap, 84286}, // __nvvm_sust_p_1d_array_v2i16_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v2i32_trap, 84320}, // __nvvm_sust_p_1d_array_v2i32_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v2i8_trap, 84354}, // __nvvm_sust_p_1d_array_v2i8_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v4i16_trap, 84387}, // __nvvm_sust_p_1d_array_v4i16_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v4i32_trap, 84421}, // __nvvm_sust_p_1d_array_v4i32_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v4i8_trap, 84455}, // __nvvm_sust_p_1d_array_v4i8_trap
+      {Intrinsic::nvvm_sust_p_1d_i16_trap, 84488}, // __nvvm_sust_p_1d_i16_trap
+      {Intrinsic::nvvm_sust_p_1d_i32_trap, 84514}, // __nvvm_sust_p_1d_i32_trap
+      {Intrinsic::nvvm_sust_p_1d_i8_trap, 84540}, // __nvvm_sust_p_1d_i8_trap
+      {Intrinsic::nvvm_sust_p_1d_v2i16_trap, 84565}, // __nvvm_sust_p_1d_v2i16_trap
+      {Intrinsic::nvvm_sust_p_1d_v2i32_trap, 84593}, // __nvvm_sust_p_1d_v2i32_trap
+      {Intrinsic::nvvm_sust_p_1d_v2i8_trap, 84621}, // __nvvm_sust_p_1d_v2i8_trap
+      {Intrinsic::nvvm_sust_p_1d_v4i16_trap, 84648}, // __nvvm_sust_p_1d_v4i16_trap
+      {Intrinsic::nvvm_sust_p_1d_v4i32_trap, 84676}, // __nvvm_sust_p_1d_v4i32_trap
+      {Intrinsic::nvvm_sust_p_1d_v4i8_trap, 84704}, // __nvvm_sust_p_1d_v4i8_trap
+      {Intrinsic::nvvm_sust_p_2d_array_i16_trap, 84731}, // __nvvm_sust_p_2d_array_i16_trap
+      {Intrinsic::nvvm_sust_p_2d_array_i32_trap, 84763}, // __nvvm_sust_p_2d_array_i32_trap
+      {Intrinsic::nvvm_sust_p_2d_array_i8_trap, 84795}, // __nvvm_sust_p_2d_array_i8_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v2i16_trap, 84826}, // __nvvm_sust_p_2d_array_v2i16_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v2i32_trap, 84860}, // __nvvm_sust_p_2d_array_v2i32_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v2i8_trap, 84894}, // __nvvm_sust_p_2d_array_v2i8_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v4i16_trap, 84927}, // __nvvm_sust_p_2d_array_v4i16_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v4i32_trap, 84961}, // __nvvm_sust_p_2d_array_v4i32_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v4i8_trap, 84995}, // __nvvm_sust_p_2d_array_v4i8_trap
+      {Intrinsic::nvvm_sust_p_2d_i16_trap, 85028}, // __nvvm_sust_p_2d_i16_trap
+      {Intrinsic::nvvm_sust_p_2d_i32_trap, 85054}, // __nvvm_sust_p_2d_i32_trap
+      {Intrinsic::nvvm_sust_p_2d_i8_trap, 85080}, // __nvvm_sust_p_2d_i8_trap
+      {Intrinsic::nvvm_sust_p_2d_v2i16_trap, 85105}, // __nvvm_sust_p_2d_v2i16_trap
+      {Intrinsic::nvvm_sust_p_2d_v2i32_trap, 85133}, // __nvvm_sust_p_2d_v2i32_trap
+      {Intrinsic::nvvm_sust_p_2d_v2i8_trap, 85161}, // __nvvm_sust_p_2d_v2i8_trap
+      {Intrinsic::nvvm_sust_p_2d_v4i16_trap, 85188}, // __nvvm_sust_p_2d_v4i16_trap
+      {Intrinsic::nvvm_sust_p_2d_v4i32_trap, 85216}, // __nvvm_sust_p_2d_v4i32_trap
+      {Intrinsic::nvvm_sust_p_2d_v4i8_trap, 85244}, // __nvvm_sust_p_2d_v4i8_trap
+      {Intrinsic::nvvm_sust_p_3d_i16_trap, 85271}, // __nvvm_sust_p_3d_i16_trap
+      {Intrinsic::nvvm_sust_p_3d_i32_trap, 85297}, // __nvvm_sust_p_3d_i32_trap
+      {Intrinsic::nvvm_sust_p_3d_i8_trap, 85323}, // __nvvm_sust_p_3d_i8_trap
+      {Intrinsic::nvvm_sust_p_3d_v2i16_trap, 85348}, // __nvvm_sust_p_3d_v2i16_trap
+      {Intrinsic::nvvm_sust_p_3d_v2i32_trap, 85376}, // __nvvm_sust_p_3d_v2i32_trap
+      {Intrinsic::nvvm_sust_p_3d_v2i8_trap, 85404}, // __nvvm_sust_p_3d_v2i8_trap
+      {Intrinsic::nvvm_sust_p_3d_v4i16_trap, 85431}, // __nvvm_sust_p_3d_v4i16_trap
+      {Intrinsic::nvvm_sust_p_3d_v4i32_trap, 85459}, // __nvvm_sust_p_3d_v4i32_trap
+      {Intrinsic::nvvm_sust_p_3d_v4i8_trap, 85487}, // __nvvm_sust_p_3d_v4i8_trap
+      {Intrinsic::nvvm_swap_lo_hi_b64, 85514}, // __nvvm_swap_lo_hi_b64
+      {Intrinsic::nvvm_trunc_d, 85536}, // __nvvm_trunc_d
+      {Intrinsic::nvvm_trunc_f, 85551}, // __nvvm_trunc_f
+      {Intrinsic::nvvm_trunc_ftz_f, 85566}, // __nvvm_trunc_ftz_f
+      {Intrinsic::nvvm_txq_array_size, 85585}, // __nvvm_txq_array_size
+      {Intrinsic::nvvm_txq_channel_data_type, 85607}, // __nvvm_txq_channel_data_type
+      {Intrinsic::nvvm_txq_channel_order, 85636}, // __nvvm_txq_channel_order
+      {Intrinsic::nvvm_txq_depth, 85661}, // __nvvm_txq_depth
+      {Intrinsic::nvvm_txq_height, 85678}, // __nvvm_txq_height
+      {Intrinsic::nvvm_txq_num_mipmap_levels, 85696}, // __nvvm_txq_num_mipmap_levels
+      {Intrinsic::nvvm_txq_num_samples, 85725}, // __nvvm_txq_num_samples
+      {Intrinsic::nvvm_txq_width, 85748}, // __nvvm_txq_width
+      {Intrinsic::nvvm_ui2d_rm, 85765}, // __nvvm_ui2d_rm
+      {Intrinsic::nvvm_ui2d_rn, 85780}, // __nvvm_ui2d_rn
+      {Intrinsic::nvvm_ui2d_rp, 85795}, // __nvvm_ui2d_rp
+      {Intrinsic::nvvm_ui2d_rz, 85810}, // __nvvm_ui2d_rz
+      {Intrinsic::nvvm_ui2f_rm, 85825}, // __nvvm_ui2f_rm
+      {Intrinsic::nvvm_ui2f_rn, 85840}, // __nvvm_ui2f_rn
+      {Intrinsic::nvvm_ui2f_rp, 85855}, // __nvvm_ui2f_rp
+      {Intrinsic::nvvm_ui2f_rz, 85870}, // __nvvm_ui2f_rz
+      {Intrinsic::nvvm_ull2d_rm, 85885}, // __nvvm_ull2d_rm
+      {Intrinsic::nvvm_ull2d_rn, 85901}, // __nvvm_ull2d_rn
+      {Intrinsic::nvvm_ull2d_rp, 85917}, // __nvvm_ull2d_rp
+      {Intrinsic::nvvm_ull2d_rz, 85933}, // __nvvm_ull2d_rz
+      {Intrinsic::nvvm_ull2f_rm, 85949}, // __nvvm_ull2f_rm
+      {Intrinsic::nvvm_ull2f_rn, 85965}, // __nvvm_ull2f_rn
+      {Intrinsic::nvvm_ull2f_rp, 85981}, // __nvvm_ull2f_rp
+      {Intrinsic::nvvm_ull2f_rz, 85997}, // __nvvm_ull2f_rz
+      {Intrinsic::nvvm_vote_all, 86013}, // __nvvm_vote_all
+      {Intrinsic::nvvm_vote_all_sync, 86029}, // __nvvm_vote_all_sync
+      {Intrinsic::nvvm_vote_any, 86050}, // __nvvm_vote_any
+      {Intrinsic::nvvm_vote_any_sync, 86066}, // __nvvm_vote_any_sync
+      {Intrinsic::nvvm_vote_ballot, 86087}, // __nvvm_vote_ballot
+      {Intrinsic::nvvm_vote_ballot_sync, 86106}, // __nvvm_vote_ballot_sync
+      {Intrinsic::nvvm_vote_uni, 86130}, // __nvvm_vote_uni
+      {Intrinsic::nvvm_vote_uni_sync, 86146}, // __nvvm_vote_uni_sync
+      {Intrinsic::nvvm_barrier0, 73235}, // __syncthreads
+    };
+    auto I = std::lower_bound(std::begin(nvvmNames),
+                              std::end(nvvmNames),
+                              BuiltinNameStr);
+    if (I != std::end(nvvmNames) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "ppc") {
+    static const BuiltinEntry ppcNames[] = {
+      {Intrinsic::ppc_addf128_round_to_odd, 86167}, // __builtin_addf128_round_to_odd
+      {Intrinsic::ppc_altivec_crypto_vcipher, 86198}, // __builtin_altivec_crypto_vcipher
+      {Intrinsic::ppc_altivec_crypto_vcipherlast, 86231}, // __builtin_altivec_crypto_vcipherlast
+      {Intrinsic::ppc_altivec_crypto_vncipher, 86268}, // __builtin_altivec_crypto_vncipher
+      {Intrinsic::ppc_altivec_crypto_vncipherlast, 86302}, // __builtin_altivec_crypto_vncipherlast
+      {Intrinsic::ppc_altivec_crypto_vpermxor, 86340}, // __builtin_altivec_crypto_vpermxor
+      {Intrinsic::ppc_altivec_crypto_vpmsumb, 86374}, // __builtin_altivec_crypto_vpmsumb
+      {Intrinsic::ppc_altivec_crypto_vpmsumd, 86407}, // __builtin_altivec_crypto_vpmsumd
+      {Intrinsic::ppc_altivec_crypto_vpmsumh, 86440}, // __builtin_altivec_crypto_vpmsumh
+      {Intrinsic::ppc_altivec_crypto_vpmsumw, 86473}, // __builtin_altivec_crypto_vpmsumw
+      {Intrinsic::ppc_altivec_crypto_vsbox, 86506}, // __builtin_altivec_crypto_vsbox
+      {Intrinsic::ppc_altivec_crypto_vshasigmad, 86537}, // __builtin_altivec_crypto_vshasigmad
+      {Intrinsic::ppc_altivec_crypto_vshasigmaw, 86573}, // __builtin_altivec_crypto_vshasigmaw
+      {Intrinsic::ppc_altivec_dss, 86609}, // __builtin_altivec_dss
+      {Intrinsic::ppc_altivec_dssall, 86631}, // __builtin_altivec_dssall
+      {Intrinsic::ppc_altivec_dst, 86656}, // __builtin_altivec_dst
+      {Intrinsic::ppc_altivec_dstst, 86678}, // __builtin_altivec_dstst
+      {Intrinsic::ppc_altivec_dststt, 86702}, // __builtin_altivec_dststt
+      {Intrinsic::ppc_altivec_dstt, 86727}, // __builtin_altivec_dstt
+      {Intrinsic::ppc_altivec_mfvscr, 86750}, // __builtin_altivec_mfvscr
+      {Intrinsic::ppc_altivec_mtvscr, 86775}, // __builtin_altivec_mtvscr
+      {Intrinsic::ppc_altivec_vabsdub, 86800}, // __builtin_altivec_vabsdub
+      {Intrinsic::ppc_altivec_vabsduh, 86826}, // __builtin_altivec_vabsduh
+      {Intrinsic::ppc_altivec_vabsduw, 86852}, // __builtin_altivec_vabsduw
+      {Intrinsic::ppc_altivec_vaddcuq, 86878}, // __builtin_altivec_vaddcuq
+      {Intrinsic::ppc_altivec_vaddcuw, 86904}, // __builtin_altivec_vaddcuw
+      {Intrinsic::ppc_altivec_vaddecuq, 86930}, // __builtin_altivec_vaddecuq
+      {Intrinsic::ppc_altivec_vaddeuqm, 86957}, // __builtin_altivec_vaddeuqm
+      {Intrinsic::ppc_altivec_vaddsbs, 86984}, // __builtin_altivec_vaddsbs
+      {Intrinsic::ppc_altivec_vaddshs, 87010}, // __builtin_altivec_vaddshs
+      {Intrinsic::ppc_altivec_vaddsws, 87036}, // __builtin_altivec_vaddsws
+      {Intrinsic::ppc_altivec_vaddubs, 87062}, // __builtin_altivec_vaddubs
+      {Intrinsic::ppc_altivec_vadduhs, 87088}, // __builtin_altivec_vadduhs
+      {Intrinsic::ppc_altivec_vadduws, 87114}, // __builtin_altivec_vadduws
+      {Intrinsic::ppc_altivec_vavgsb, 87140}, // __builtin_altivec_vavgsb
+      {Intrinsic::ppc_altivec_vavgsh, 87165}, // __builtin_altivec_vavgsh
+      {Intrinsic::ppc_altivec_vavgsw, 87190}, // __builtin_altivec_vavgsw
+      {Intrinsic::ppc_altivec_vavgub, 87215}, // __builtin_altivec_vavgub
+      {Intrinsic::ppc_altivec_vavguh, 87240}, // __builtin_altivec_vavguh
+      {Intrinsic::ppc_altivec_vavguw, 87265}, // __builtin_altivec_vavguw
+      {Intrinsic::ppc_altivec_vbpermq, 87290}, // __builtin_altivec_vbpermq
+      {Intrinsic::ppc_altivec_vcfsx, 87316}, // __builtin_altivec_vcfsx
+      {Intrinsic::ppc_altivec_vcfux, 87340}, // __builtin_altivec_vcfux
+      {Intrinsic::ppc_altivec_vclzlsbb, 87364}, // __builtin_altivec_vclzlsbb
+      {Intrinsic::ppc_altivec_vcmpbfp, 87391}, // __builtin_altivec_vcmpbfp
+      {Intrinsic::ppc_altivec_vcmpbfp_p, 87417}, // __builtin_altivec_vcmpbfp_p
+      {Intrinsic::ppc_altivec_vcmpeqfp, 87445}, // __builtin_altivec_vcmpeqfp
+      {Intrinsic::ppc_altivec_vcmpeqfp_p, 87472}, // __builtin_altivec_vcmpeqfp_p
+      {Intrinsic::ppc_altivec_vcmpequb, 87501}, // __builtin_altivec_vcmpequb
+      {Intrinsic::ppc_altivec_vcmpequb_p, 87528}, // __builtin_altivec_vcmpequb_p
+      {Intrinsic::ppc_altivec_vcmpequd, 87557}, // __builtin_altivec_vcmpequd
+      {Intrinsic::ppc_altivec_vcmpequd_p, 87584}, // __builtin_altivec_vcmpequd_p
+      {Intrinsic::ppc_altivec_vcmpequh, 87613}, // __builtin_altivec_vcmpequh
+      {Intrinsic::ppc_altivec_vcmpequh_p, 87640}, // __builtin_altivec_vcmpequh_p
+      {Intrinsic::ppc_altivec_vcmpequw, 87669}, // __builtin_altivec_vcmpequw
+      {Intrinsic::ppc_altivec_vcmpequw_p, 87696}, // __builtin_altivec_vcmpequw_p
+      {Intrinsic::ppc_altivec_vcmpgefp, 87725}, // __builtin_altivec_vcmpgefp
+      {Intrinsic::ppc_altivec_vcmpgefp_p, 87752}, // __builtin_altivec_vcmpgefp_p
+      {Intrinsic::ppc_altivec_vcmpgtfp, 87781}, // __builtin_altivec_vcmpgtfp
+      {Intrinsic::ppc_altivec_vcmpgtfp_p, 87808}, // __builtin_altivec_vcmpgtfp_p
+      {Intrinsic::ppc_altivec_vcmpgtsb, 87837}, // __builtin_altivec_vcmpgtsb
+      {Intrinsic::ppc_altivec_vcmpgtsb_p, 87864}, // __builtin_altivec_vcmpgtsb_p
+      {Intrinsic::ppc_altivec_vcmpgtsd, 87893}, // __builtin_altivec_vcmpgtsd
+      {Intrinsic::ppc_altivec_vcmpgtsd_p, 87920}, // __builtin_altivec_vcmpgtsd_p
+      {Intrinsic::ppc_altivec_vcmpgtsh, 87949}, // __builtin_altivec_vcmpgtsh
+      {Intrinsic::ppc_altivec_vcmpgtsh_p, 87976}, // __builtin_altivec_vcmpgtsh_p
+      {Intrinsic::ppc_altivec_vcmpgtsw, 88005}, // __builtin_altivec_vcmpgtsw
+      {Intrinsic::ppc_altivec_vcmpgtsw_p, 88032}, // __builtin_altivec_vcmpgtsw_p
+      {Intrinsic::ppc_altivec_vcmpgtub, 88061}, // __builtin_altivec_vcmpgtub
+      {Intrinsic::ppc_altivec_vcmpgtub_p, 88088}, // __builtin_altivec_vcmpgtub_p
+      {Intrinsic::ppc_altivec_vcmpgtud, 88117}, // __builtin_altivec_vcmpgtud
+      {Intrinsic::ppc_altivec_vcmpgtud_p, 88144}, // __builtin_altivec_vcmpgtud_p
+      {Intrinsic::ppc_altivec_vcmpgtuh, 88173}, // __builtin_altivec_vcmpgtuh
+      {Intrinsic::ppc_altivec_vcmpgtuh_p, 88200}, // __builtin_altivec_vcmpgtuh_p
+      {Intrinsic::ppc_altivec_vcmpgtuw, 88229}, // __builtin_altivec_vcmpgtuw
+      {Intrinsic::ppc_altivec_vcmpgtuw_p, 88256}, // __builtin_altivec_vcmpgtuw_p
+      {Intrinsic::ppc_altivec_vcmpneb, 88285}, // __builtin_altivec_vcmpneb
+      {Intrinsic::ppc_altivec_vcmpneb_p, 88311}, // __builtin_altivec_vcmpneb_p
+      {Intrinsic::ppc_altivec_vcmpneh, 88339}, // __builtin_altivec_vcmpneh
+      {Intrinsic::ppc_altivec_vcmpneh_p, 88365}, // __builtin_altivec_vcmpneh_p
+      {Intrinsic::ppc_altivec_vcmpnew, 88393}, // __builtin_altivec_vcmpnew
+      {Intrinsic::ppc_altivec_vcmpnew_p, 88419}, // __builtin_altivec_vcmpnew_p
+      {Intrinsic::ppc_altivec_vcmpnezb, 88447}, // __builtin_altivec_vcmpnezb
+      {Intrinsic::ppc_altivec_vcmpnezb_p, 88474}, // __builtin_altivec_vcmpnezb_p
+      {Intrinsic::ppc_altivec_vcmpnezh, 88503}, // __builtin_altivec_vcmpnezh
+      {Intrinsic::ppc_altivec_vcmpnezh_p, 88530}, // __builtin_altivec_vcmpnezh_p
+      {Intrinsic::ppc_altivec_vcmpnezw, 88559}, // __builtin_altivec_vcmpnezw
+      {Intrinsic::ppc_altivec_vcmpnezw_p, 88586}, // __builtin_altivec_vcmpnezw_p
+      {Intrinsic::ppc_altivec_vctsxs, 88615}, // __builtin_altivec_vctsxs
+      {Intrinsic::ppc_altivec_vctuxs, 88640}, // __builtin_altivec_vctuxs
+      {Intrinsic::ppc_altivec_vctzlsbb, 88665}, // __builtin_altivec_vctzlsbb
+      {Intrinsic::ppc_altivec_vexptefp, 88692}, // __builtin_altivec_vexptefp
+      {Intrinsic::ppc_altivec_vgbbd, 88719}, // __builtin_altivec_vgbbd
+      {Intrinsic::ppc_altivec_vlogefp, 88743}, // __builtin_altivec_vlogefp
+      {Intrinsic::ppc_altivec_vmaddfp, 88769}, // __builtin_altivec_vmaddfp
+      {Intrinsic::ppc_altivec_vmaxfp, 88795}, // __builtin_altivec_vmaxfp
+      {Intrinsic::ppc_altivec_vmaxsb, 88820}, // __builtin_altivec_vmaxsb
+      {Intrinsic::ppc_altivec_vmaxsd, 88845}, // __builtin_altivec_vmaxsd
+      {Intrinsic::ppc_altivec_vmaxsh, 88870}, // __builtin_altivec_vmaxsh
+      {Intrinsic::ppc_altivec_vmaxsw, 88895}, // __builtin_altivec_vmaxsw
+      {Intrinsic::ppc_altivec_vmaxub, 88920}, // __builtin_altivec_vmaxub
+      {Intrinsic::ppc_altivec_vmaxud, 88945}, // __builtin_altivec_vmaxud
+      {Intrinsic::ppc_altivec_vmaxuh, 88970}, // __builtin_altivec_vmaxuh
+      {Intrinsic::ppc_altivec_vmaxuw, 88995}, // __builtin_altivec_vmaxuw
+      {Intrinsic::ppc_altivec_vmhaddshs, 89020}, // __builtin_altivec_vmhaddshs
+      {Intrinsic::ppc_altivec_vmhraddshs, 89048}, // __builtin_altivec_vmhraddshs
+      {Intrinsic::ppc_altivec_vminfp, 89077}, // __builtin_altivec_vminfp
+      {Intrinsic::ppc_altivec_vminsb, 89102}, // __builtin_altivec_vminsb
+      {Intrinsic::ppc_altivec_vminsd, 89127}, // __builtin_altivec_vminsd
+      {Intrinsic::ppc_altivec_vminsh, 89152}, // __builtin_altivec_vminsh
+      {Intrinsic::ppc_altivec_vminsw, 89177}, // __builtin_altivec_vminsw
+      {Intrinsic::ppc_altivec_vminub, 89202}, // __builtin_altivec_vminub
+      {Intrinsic::ppc_altivec_vminud, 89227}, // __builtin_altivec_vminud
+      {Intrinsic::ppc_altivec_vminuh, 89252}, // __builtin_altivec_vminuh
+      {Intrinsic::ppc_altivec_vminuw, 89277}, // __builtin_altivec_vminuw
+      {Intrinsic::ppc_altivec_vmladduhm, 89302}, // __builtin_altivec_vmladduhm
+      {Intrinsic::ppc_altivec_vmsummbm, 89330}, // __builtin_altivec_vmsummbm
+      {Intrinsic::ppc_altivec_vmsumshm, 89357}, // __builtin_altivec_vmsumshm
+      {Intrinsic::ppc_altivec_vmsumshs, 89384}, // __builtin_altivec_vmsumshs
+      {Intrinsic::ppc_altivec_vmsumubm, 89411}, // __builtin_altivec_vmsumubm
+      {Intrinsic::ppc_altivec_vmsumuhm, 89438}, // __builtin_altivec_vmsumuhm
+      {Intrinsic::ppc_altivec_vmsumuhs, 89465}, // __builtin_altivec_vmsumuhs
+      {Intrinsic::ppc_altivec_vmulesb, 89492}, // __builtin_altivec_vmulesb
+      {Intrinsic::ppc_altivec_vmulesh, 89518}, // __builtin_altivec_vmulesh
+      {Intrinsic::ppc_altivec_vmulesw, 89544}, // __builtin_altivec_vmulesw
+      {Intrinsic::ppc_altivec_vmuleub, 89570}, // __builtin_altivec_vmuleub
+      {Intrinsic::ppc_altivec_vmuleuh, 89596}, // __builtin_altivec_vmuleuh
+      {Intrinsic::ppc_altivec_vmuleuw, 89622}, // __builtin_altivec_vmuleuw
+      {Intrinsic::ppc_altivec_vmulosb, 89648}, // __builtin_altivec_vmulosb
+      {Intrinsic::ppc_altivec_vmulosh, 89674}, // __builtin_altivec_vmulosh
+      {Intrinsic::ppc_altivec_vmulosw, 89700}, // __builtin_altivec_vmulosw
+      {Intrinsic::ppc_altivec_vmuloub, 89726}, // __builtin_altivec_vmuloub
+      {Intrinsic::ppc_altivec_vmulouh, 89752}, // __builtin_altivec_vmulouh
+      {Intrinsic::ppc_altivec_vmulouw, 89778}, // __builtin_altivec_vmulouw
+      {Intrinsic::ppc_altivec_vnmsubfp, 89804}, // __builtin_altivec_vnmsubfp
+      {Intrinsic::ppc_altivec_vperm, 89831}, // __builtin_altivec_vperm_4si
+      {Intrinsic::ppc_altivec_vpkpx, 89859}, // __builtin_altivec_vpkpx
+      {Intrinsic::ppc_altivec_vpksdss, 89883}, // __builtin_altivec_vpksdss
+      {Intrinsic::ppc_altivec_vpksdus, 89909}, // __builtin_altivec_vpksdus
+      {Intrinsic::ppc_altivec_vpkshss, 89935}, // __builtin_altivec_vpkshss
+      {Intrinsic::ppc_altivec_vpkshus, 89961}, // __builtin_altivec_vpkshus
+      {Intrinsic::ppc_altivec_vpkswss, 89987}, // __builtin_altivec_vpkswss
+      {Intrinsic::ppc_altivec_vpkswus, 90013}, // __builtin_altivec_vpkswus
+      {Intrinsic::ppc_altivec_vpkudus, 90039}, // __builtin_altivec_vpkudus
+      {Intrinsic::ppc_altivec_vpkuhus, 90065}, // __builtin_altivec_vpkuhus
+      {Intrinsic::ppc_altivec_vpkuwus, 90091}, // __builtin_altivec_vpkuwus
+      {Intrinsic::ppc_altivec_vprtybd, 90117}, // __builtin_altivec_vprtybd
+      {Intrinsic::ppc_altivec_vprtybq, 90143}, // __builtin_altivec_vprtybq
+      {Intrinsic::ppc_altivec_vprtybw, 90169}, // __builtin_altivec_vprtybw
+      {Intrinsic::ppc_altivec_vrefp, 90195}, // __builtin_altivec_vrefp
+      {Intrinsic::ppc_altivec_vrfim, 90219}, // __builtin_altivec_vrfim
+      {Intrinsic::ppc_altivec_vrfin, 90243}, // __builtin_altivec_vrfin
+      {Intrinsic::ppc_altivec_vrfip, 90267}, // __builtin_altivec_vrfip
+      {Intrinsic::ppc_altivec_vrfiz, 90291}, // __builtin_altivec_vrfiz
+      {Intrinsic::ppc_altivec_vrlb, 90315}, // __builtin_altivec_vrlb
+      {Intrinsic::ppc_altivec_vrld, 90338}, // __builtin_altivec_vrld
+      {Intrinsic::ppc_altivec_vrldmi, 90361}, // __builtin_altivec_vrldmi
+      {Intrinsic::ppc_altivec_vrldnm, 90386}, // __builtin_altivec_vrldnm
+      {Intrinsic::ppc_altivec_vrlh, 90411}, // __builtin_altivec_vrlh
+      {Intrinsic::ppc_altivec_vrlw, 90434}, // __builtin_altivec_vrlw
+      {Intrinsic::ppc_altivec_vrlwmi, 90457}, // __builtin_altivec_vrlwmi
+      {Intrinsic::ppc_altivec_vrlwnm, 90482}, // __builtin_altivec_vrlwnm
+      {Intrinsic::ppc_altivec_vrsqrtefp, 90507}, // __builtin_altivec_vrsqrtefp
+      {Intrinsic::ppc_altivec_vsel, 90535}, // __builtin_altivec_vsel_4si
+      {Intrinsic::ppc_altivec_vsl, 90562}, // __builtin_altivec_vsl
+      {Intrinsic::ppc_altivec_vslb, 90584}, // __builtin_altivec_vslb
+      {Intrinsic::ppc_altivec_vslh, 90607}, // __builtin_altivec_vslh
+      {Intrinsic::ppc_altivec_vslo, 90630}, // __builtin_altivec_vslo
+      {Intrinsic::ppc_altivec_vslv, 90653}, // __builtin_altivec_vslv
+      {Intrinsic::ppc_altivec_vslw, 90676}, // __builtin_altivec_vslw
+      {Intrinsic::ppc_altivec_vsr, 90699}, // __builtin_altivec_vsr
+      {Intrinsic::ppc_altivec_vsrab, 90721}, // __builtin_altivec_vsrab
+      {Intrinsic::ppc_altivec_vsrah, 90745}, // __builtin_altivec_vsrah
+      {Intrinsic::ppc_altivec_vsraw, 90769}, // __builtin_altivec_vsraw
+      {Intrinsic::ppc_altivec_vsrb, 90793}, // __builtin_altivec_vsrb
+      {Intrinsic::ppc_altivec_vsrh, 90816}, // __builtin_altivec_vsrh
+      {Intrinsic::ppc_altivec_vsro, 90839}, // __builtin_altivec_vsro
+      {Intrinsic::ppc_altivec_vsrv, 90862}, // __builtin_altivec_vsrv
+      {Intrinsic::ppc_altivec_vsrw, 90885}, // __builtin_altivec_vsrw
+      {Intrinsic::ppc_altivec_vsubcuq, 90908}, // __builtin_altivec_vsubcuq
+      {Intrinsic::ppc_altivec_vsubcuw, 90934}, // __builtin_altivec_vsubcuw
+      {Intrinsic::ppc_altivec_vsubecuq, 90960}, // __builtin_altivec_vsubecuq
+      {Intrinsic::ppc_altivec_vsubeuqm, 90987}, // __builtin_altivec_vsubeuqm
+      {Intrinsic::ppc_altivec_vsubsbs, 91014}, // __builtin_altivec_vsubsbs
+      {Intrinsic::ppc_altivec_vsubshs, 91040}, // __builtin_altivec_vsubshs
+      {Intrinsic::ppc_altivec_vsubsws, 91066}, // __builtin_altivec_vsubsws
+      {Intrinsic::ppc_altivec_vsububs, 91092}, // __builtin_altivec_vsububs
+      {Intrinsic::ppc_altivec_vsubuhs, 91118}, // __builtin_altivec_vsubuhs
+      {Intrinsic::ppc_altivec_vsubuws, 91144}, // __builtin_altivec_vsubuws
+      {Intrinsic::ppc_altivec_vsum2sws, 91170}, // __builtin_altivec_vsum2sws
+      {Intrinsic::ppc_altivec_vsum4sbs, 91197}, // __builtin_altivec_vsum4sbs
+      {Intrinsic::ppc_altivec_vsum4shs, 91224}, // __builtin_altivec_vsum4shs
+      {Intrinsic::ppc_altivec_vsum4ubs, 91251}, // __builtin_altivec_vsum4ubs
+      {Intrinsic::ppc_altivec_vsumsws, 91278}, // __builtin_altivec_vsumsws
+      {Intrinsic::ppc_altivec_vupkhpx, 91304}, // __builtin_altivec_vupkhpx
+      {Intrinsic::ppc_altivec_vupkhsb, 91330}, // __builtin_altivec_vupkhsb
+      {Intrinsic::ppc_altivec_vupkhsh, 91356}, // __builtin_altivec_vupkhsh
+      {Intrinsic::ppc_altivec_vupkhsw, 91382}, // __builtin_altivec_vupkhsw
+      {Intrinsic::ppc_altivec_vupklpx, 91408}, // __builtin_altivec_vupklpx
+      {Intrinsic::ppc_altivec_vupklsb, 91434}, // __builtin_altivec_vupklsb
+      {Intrinsic::ppc_altivec_vupklsh, 91460}, // __builtin_altivec_vupklsh
+      {Intrinsic::ppc_altivec_vupklsw, 91486}, // __builtin_altivec_vupklsw
+      {Intrinsic::ppc_bpermd, 91512}, // __builtin_bpermd
+      {Intrinsic::ppc_divde, 91529}, // __builtin_divde
+      {Intrinsic::ppc_divdeu, 91545}, // __builtin_divdeu
+      {Intrinsic::ppc_divf128_round_to_odd, 91562}, // __builtin_divf128_round_to_odd
+      {Intrinsic::ppc_divwe, 91593}, // __builtin_divwe
+      {Intrinsic::ppc_divweu, 91609}, // __builtin_divweu
+      {Intrinsic::ppc_fmaf128_round_to_odd, 91626}, // __builtin_fmaf128_round_to_odd
+      {Intrinsic::ppc_get_texasr, 91657}, // __builtin_get_texasr
+      {Intrinsic::ppc_get_texasru, 91678}, // __builtin_get_texasru
+      {Intrinsic::ppc_get_tfhar, 91700}, // __builtin_get_tfhar
+      {Intrinsic::ppc_get_tfiar, 91720}, // __builtin_get_tfiar
+      {Intrinsic::ppc_mulf128_round_to_odd, 91740}, // __builtin_mulf128_round_to_odd
+      {Intrinsic::ppc_qpx_qvfabs, 91771}, // __builtin_qpx_qvfabs
+      {Intrinsic::ppc_qpx_qvfadd, 91792}, // __builtin_qpx_qvfadd
+      {Intrinsic::ppc_qpx_qvfadds, 91813}, // __builtin_qpx_qvfadds
+      {Intrinsic::ppc_qpx_qvfcfid, 91835}, // __builtin_qpx_qvfcfid
+      {Intrinsic::ppc_qpx_qvfcfids, 91857}, // __builtin_qpx_qvfcfids
+      {Intrinsic::ppc_qpx_qvfcfidu, 91880}, // __builtin_qpx_qvfcfidu
+      {Intrinsic::ppc_qpx_qvfcfidus, 91903}, // __builtin_qpx_qvfcfidus
+      {Intrinsic::ppc_qpx_qvfcmpeq, 91927}, // __builtin_qpx_qvfcmpeq
+      {Intrinsic::ppc_qpx_qvfcmpgt, 91950}, // __builtin_qpx_qvfcmpgt
+      {Intrinsic::ppc_qpx_qvfcmplt, 91973}, // __builtin_qpx_qvfcmplt
+      {Intrinsic::ppc_qpx_qvfcpsgn, 91996}, // __builtin_qpx_qvfcpsgn
+      {Intrinsic::ppc_qpx_qvfctid, 92019}, // __builtin_qpx_qvfctid
+      {Intrinsic::ppc_qpx_qvfctidu, 92041}, // __builtin_qpx_qvfctidu
+      {Intrinsic::ppc_qpx_qvfctiduz, 92064}, // __builtin_qpx_qvfctiduz
+      {Intrinsic::ppc_qpx_qvfctidz, 92088}, // __builtin_qpx_qvfctidz
+      {Intrinsic::ppc_qpx_qvfctiw, 92111}, // __builtin_qpx_qvfctiw
+      {Intrinsic::ppc_qpx_qvfctiwu, 92133}, // __builtin_qpx_qvfctiwu
+      {Intrinsic::ppc_qpx_qvfctiwuz, 92156}, // __builtin_qpx_qvfctiwuz
+      {Intrinsic::ppc_qpx_qvfctiwz, 92180}, // __builtin_qpx_qvfctiwz
+      {Intrinsic::ppc_qpx_qvflogical, 92203}, // __builtin_qpx_qvflogical
+      {Intrinsic::ppc_qpx_qvfmadd, 92228}, // __builtin_qpx_qvfmadd
+      {Intrinsic::ppc_qpx_qvfmadds, 92250}, // __builtin_qpx_qvfmadds
+      {Intrinsic::ppc_qpx_qvfmsub, 92273}, // __builtin_qpx_qvfmsub
+      {Intrinsic::ppc_qpx_qvfmsubs, 92295}, // __builtin_qpx_qvfmsubs
+      {Intrinsic::ppc_qpx_qvfmul, 92318}, // __builtin_qpx_qvfmul
+      {Intrinsic::ppc_qpx_qvfmuls, 92339}, // __builtin_qpx_qvfmuls
+      {Intrinsic::ppc_qpx_qvfnabs, 92361}, // __builtin_qpx_qvfnabs
+      {Intrinsic::ppc_qpx_qvfneg, 92383}, // __builtin_qpx_qvfneg
+      {Intrinsic::ppc_qpx_qvfnmadd, 92404}, // __builtin_qpx_qvfnmadd
+      {Intrinsic::ppc_qpx_qvfnmadds, 92427}, // __builtin_qpx_qvfnmadds
+      {Intrinsic::ppc_qpx_qvfnmsub, 92451}, // __builtin_qpx_qvfnmsub
+      {Intrinsic::ppc_qpx_qvfnmsubs, 92474}, // __builtin_qpx_qvfnmsubs
+      {Intrinsic::ppc_qpx_qvfperm, 92498}, // __builtin_qpx_qvfperm
+      {Intrinsic::ppc_qpx_qvfre, 92520}, // __builtin_qpx_qvfre
+      {Intrinsic::ppc_qpx_qvfres, 92540}, // __builtin_qpx_qvfres
+      {Intrinsic::ppc_qpx_qvfrim, 92561}, // __builtin_qpx_qvfrim
+      {Intrinsic::ppc_qpx_qvfrin, 92582}, // __builtin_qpx_qvfrin
+      {Intrinsic::ppc_qpx_qvfrip, 92603}, // __builtin_qpx_qvfrip
+      {Intrinsic::ppc_qpx_qvfriz, 92624}, // __builtin_qpx_qvfriz
+      {Intrinsic::ppc_qpx_qvfrsp, 92645}, // __builtin_qpx_qvfrsp
+      {Intrinsic::ppc_qpx_qvfrsqrte, 92666}, // __builtin_qpx_qvfrsqrte
+      {Intrinsic::ppc_qpx_qvfrsqrtes, 92690}, // __builtin_qpx_qvfrsqrtes
+      {Intrinsic::ppc_qpx_qvfsel, 92715}, // __builtin_qpx_qvfsel
+      {Intrinsic::ppc_qpx_qvfsub, 92736}, // __builtin_qpx_qvfsub
+      {Intrinsic::ppc_qpx_qvfsubs, 92757}, // __builtin_qpx_qvfsubs
+      {Intrinsic::ppc_qpx_qvftstnan, 92779}, // __builtin_qpx_qvftstnan
+      {Intrinsic::ppc_qpx_qvfxmadd, 92803}, // __builtin_qpx_qvfxmadd
+      {Intrinsic::ppc_qpx_qvfxmadds, 92826}, // __builtin_qpx_qvfxmadds
+      {Intrinsic::ppc_qpx_qvfxmul, 92850}, // __builtin_qpx_qvfxmul
+      {Intrinsic::ppc_qpx_qvfxmuls, 92872}, // __builtin_qpx_qvfxmuls
+      {Intrinsic::ppc_qpx_qvfxxcpnmadd, 92895}, // __builtin_qpx_qvfxxcpnmadd
+      {Intrinsic::ppc_qpx_qvfxxcpnmadds, 92922}, // __builtin_qpx_qvfxxcpnmadds
+      {Intrinsic::ppc_qpx_qvfxxmadd, 92950}, // __builtin_qpx_qvfxxmadd
+      {Intrinsic::ppc_qpx_qvfxxmadds, 92974}, // __builtin_qpx_qvfxxmadds
+      {Intrinsic::ppc_qpx_qvfxxnpmadd, 92999}, // __builtin_qpx_qvfxxnpmadd
+      {Intrinsic::ppc_qpx_qvfxxnpmadds, 93025}, // __builtin_qpx_qvfxxnpmadds
+      {Intrinsic::ppc_qpx_qvgpci, 93052}, // __builtin_qpx_qvgpci
+      {Intrinsic::ppc_qpx_qvlfcd, 93073}, // __builtin_qpx_qvlfcd
+      {Intrinsic::ppc_qpx_qvlfcda, 93094}, // __builtin_qpx_qvlfcda
+      {Intrinsic::ppc_qpx_qvlfcs, 93116}, // __builtin_qpx_qvlfcs
+      {Intrinsic::ppc_qpx_qvlfcsa, 93137}, // __builtin_qpx_qvlfcsa
+      {Intrinsic::ppc_qpx_qvlfd, 93159}, // __builtin_qpx_qvlfd
+      {Intrinsic::ppc_qpx_qvlfda, 93179}, // __builtin_qpx_qvlfda
+      {Intrinsic::ppc_qpx_qvlfiwa, 93200}, // __builtin_qpx_qvlfiwa
+      {Intrinsic::ppc_qpx_qvlfiwaa, 93222}, // __builtin_qpx_qvlfiwaa
+      {Intrinsic::ppc_qpx_qvlfiwz, 93245}, // __builtin_qpx_qvlfiwz
+      {Intrinsic::ppc_qpx_qvlfiwza, 93267}, // __builtin_qpx_qvlfiwza
+      {Intrinsic::ppc_qpx_qvlfs, 93290}, // __builtin_qpx_qvlfs
+      {Intrinsic::ppc_qpx_qvlfsa, 93310}, // __builtin_qpx_qvlfsa
+      {Intrinsic::ppc_qpx_qvlpcld, 93331}, // __builtin_qpx_qvlpcld
+      {Intrinsic::ppc_qpx_qvlpcls, 93353}, // __builtin_qpx_qvlpcls
+      {Intrinsic::ppc_qpx_qvlpcrd, 93375}, // __builtin_qpx_qvlpcrd
+      {Intrinsic::ppc_qpx_qvlpcrs, 93397}, // __builtin_qpx_qvlpcrs
+      {Intrinsic::ppc_qpx_qvstfcd, 93419}, // __builtin_qpx_qvstfcd
+      {Intrinsic::ppc_qpx_qvstfcda, 93441}, // __builtin_qpx_qvstfcda
+      {Intrinsic::ppc_qpx_qvstfcs, 93464}, // __builtin_qpx_qvstfcs
+      {Intrinsic::ppc_qpx_qvstfcsa, 93486}, // __builtin_qpx_qvstfcsa
+      {Intrinsic::ppc_qpx_qvstfd, 93509}, // __builtin_qpx_qvstfd
+      {Intrinsic::ppc_qpx_qvstfda, 93530}, // __builtin_qpx_qvstfda
+      {Intrinsic::ppc_qpx_qvstfiw, 93552}, // __builtin_qpx_qvstfiw
+      {Intrinsic::ppc_qpx_qvstfiwa, 93574}, // __builtin_qpx_qvstfiwa
+      {Intrinsic::ppc_qpx_qvstfs, 93597}, // __builtin_qpx_qvstfs
+      {Intrinsic::ppc_qpx_qvstfsa, 93618}, // __builtin_qpx_qvstfsa
+      {Intrinsic::ppc_set_texasr, 93640}, // __builtin_set_texasr
+      {Intrinsic::ppc_set_texasru, 93661}, // __builtin_set_texasru
+      {Intrinsic::ppc_set_tfhar, 93683}, // __builtin_set_tfhar
+      {Intrinsic::ppc_set_tfiar, 93703}, // __builtin_set_tfiar
+      {Intrinsic::ppc_sqrtf128_round_to_odd, 93723}, // __builtin_sqrtf128_round_to_odd
+      {Intrinsic::ppc_subf128_round_to_odd, 93755}, // __builtin_subf128_round_to_odd
+      {Intrinsic::ppc_tabort, 93786}, // __builtin_tabort
+      {Intrinsic::ppc_tabortdc, 93803}, // __builtin_tabortdc
+      {Intrinsic::ppc_tabortdci, 93822}, // __builtin_tabortdci
+      {Intrinsic::ppc_tabortwc, 93842}, // __builtin_tabortwc
+      {Intrinsic::ppc_tabortwci, 93861}, // __builtin_tabortwci
+      {Intrinsic::ppc_tbegin, 93881}, // __builtin_tbegin
+      {Intrinsic::ppc_tcheck, 93898}, // __builtin_tcheck
+      {Intrinsic::ppc_tend, 93915}, // __builtin_tend
+      {Intrinsic::ppc_tendall, 93930}, // __builtin_tendall
+      {Intrinsic::ppc_trechkpt, 93948}, // __builtin_trechkpt
+      {Intrinsic::ppc_treclaim, 93967}, // __builtin_treclaim
+      {Intrinsic::ppc_tresume, 93986}, // __builtin_tresume
+      {Intrinsic::ppc_truncf128_round_to_odd, 94004}, // __builtin_truncf128_round_to_odd
+      {Intrinsic::ppc_tsr, 94037}, // __builtin_tsr
+      {Intrinsic::ppc_tsuspend, 94051}, // __builtin_tsuspend
+      {Intrinsic::ppc_ttest, 94070}, // __builtin_ttest
+      {Intrinsic::ppc_vsx_xsmaxdp, 94086}, // __builtin_vsx_xsmaxdp
+      {Intrinsic::ppc_vsx_xsmindp, 94108}, // __builtin_vsx_xsmindp
+      {Intrinsic::ppc_vsx_xvcmpeqdp, 94130}, // __builtin_vsx_xvcmpeqdp
+      {Intrinsic::ppc_vsx_xvcmpeqdp_p, 94154}, // __builtin_vsx_xvcmpeqdp_p
+      {Intrinsic::ppc_vsx_xvcmpeqsp, 94180}, // __builtin_vsx_xvcmpeqsp
+      {Intrinsic::ppc_vsx_xvcmpeqsp_p, 94204}, // __builtin_vsx_xvcmpeqsp_p
+      {Intrinsic::ppc_vsx_xvcmpgedp, 94230}, // __builtin_vsx_xvcmpgedp
+      {Intrinsic::ppc_vsx_xvcmpgedp_p, 94254}, // __builtin_vsx_xvcmpgedp_p
+      {Intrinsic::ppc_vsx_xvcmpgesp, 94280}, // __builtin_vsx_xvcmpgesp
+      {Intrinsic::ppc_vsx_xvcmpgesp_p, 94304}, // __builtin_vsx_xvcmpgesp_p
+      {Intrinsic::ppc_vsx_xvcmpgtdp, 94330}, // __builtin_vsx_xvcmpgtdp
+      {Intrinsic::ppc_vsx_xvcmpgtdp_p, 94354}, // __builtin_vsx_xvcmpgtdp_p
+      {Intrinsic::ppc_vsx_xvcmpgtsp, 94380}, // __builtin_vsx_xvcmpgtsp
+      {Intrinsic::ppc_vsx_xvcmpgtsp_p, 94404}, // __builtin_vsx_xvcmpgtsp_p
+      {Intrinsic::ppc_vsx_xvcvdpsp, 94430}, // __builtin_vsx_xvcvdpsp
+      {Intrinsic::ppc_vsx_xvcvdpsxws, 94453}, // __builtin_vsx_xvcvdpsxws
+      {Intrinsic::ppc_vsx_xvcvdpuxws, 94478}, // __builtin_vsx_xvcvdpuxws
+      {Intrinsic::ppc_vsx_xvcvhpsp, 94503}, // __builtin_vsx_xvcvhpsp
+      {Intrinsic::ppc_vsx_xvcvspdp, 94526}, // __builtin_vsx_xvcvspdp
+      {Intrinsic::ppc_vsx_xvcvsphp, 94549}, // __builtin_vsx_xvcvsphp
+      {Intrinsic::ppc_vsx_xvcvsxdsp, 94572}, // __builtin_vsx_xvcvsxdsp
+      {Intrinsic::ppc_vsx_xvcvsxwdp, 94596}, // __builtin_vsx_xvcvsxwdp
+      {Intrinsic::ppc_vsx_xvcvuxdsp, 94620}, // __builtin_vsx_xvcvuxdsp
+      {Intrinsic::ppc_vsx_xvcvuxwdp, 94644}, // __builtin_vsx_xvcvuxwdp
+      {Intrinsic::ppc_vsx_xvdivdp, 94668}, // __builtin_vsx_xvdivdp
+      {Intrinsic::ppc_vsx_xvdivsp, 94690}, // __builtin_vsx_xvdivsp
+      {Intrinsic::ppc_vsx_xviexpdp, 94712}, // __builtin_vsx_xviexpdp
+      {Intrinsic::ppc_vsx_xviexpsp, 94735}, // __builtin_vsx_xviexpsp
+      {Intrinsic::ppc_vsx_xvmaxdp, 94758}, // __builtin_vsx_xvmaxdp
+      {Intrinsic::ppc_vsx_xvmaxsp, 94780}, // __builtin_vsx_xvmaxsp
+      {Intrinsic::ppc_vsx_xvmindp, 94802}, // __builtin_vsx_xvmindp
+      {Intrinsic::ppc_vsx_xvminsp, 94824}, // __builtin_vsx_xvminsp
+      {Intrinsic::ppc_vsx_xvredp, 94846}, // __builtin_vsx_xvredp
+      {Intrinsic::ppc_vsx_xvresp, 94867}, // __builtin_vsx_xvresp
+      {Intrinsic::ppc_vsx_xvrsqrtedp, 94888}, // __builtin_vsx_xvrsqrtedp
+      {Intrinsic::ppc_vsx_xvrsqrtesp, 94913}, // __builtin_vsx_xvrsqrtesp
+      {Intrinsic::ppc_vsx_xvtstdcdp, 94938}, // __builtin_vsx_xvtstdcdp
+      {Intrinsic::ppc_vsx_xvtstdcsp, 94962}, // __builtin_vsx_xvtstdcsp
+      {Intrinsic::ppc_vsx_xvxexpdp, 94986}, // __builtin_vsx_xvxexpdp
+      {Intrinsic::ppc_vsx_xvxexpsp, 95009}, // __builtin_vsx_xvxexpsp
+      {Intrinsic::ppc_vsx_xvxsigdp, 95032}, // __builtin_vsx_xvxsigdp
+      {Intrinsic::ppc_vsx_xvxsigsp, 95055}, // __builtin_vsx_xvxsigsp
+      {Intrinsic::ppc_vsx_xxextractuw, 95078}, // __builtin_vsx_xxextractuw
+      {Intrinsic::ppc_vsx_xxinsertw, 95104}, // __builtin_vsx_xxinsertw
+      {Intrinsic::ppc_vsx_xxleqv, 95128}, // __builtin_vsx_xxleqv
+    };
+    auto I = std::lower_bound(std::begin(ppcNames),
+                              std::end(ppcNames),
+                              BuiltinNameStr);
+    if (I != std::end(ppcNames) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "r600") {
+    static const BuiltinEntry r600Names[] = {
+      {Intrinsic::r600_group_barrier, 95149}, // __builtin_r600_group_barrier
+      {Intrinsic::r600_implicitarg_ptr, 95178}, // __builtin_r600_implicitarg_ptr
+      {Intrinsic::r600_rat_store_typed, 95209}, // __builtin_r600_rat_store_typed
+      {Intrinsic::r600_read_global_size_x, 95240}, // __builtin_r600_read_global_size_x
+      {Intrinsic::r600_read_global_size_y, 95274}, // __builtin_r600_read_global_size_y
+      {Intrinsic::r600_read_global_size_z, 95308}, // __builtin_r600_read_global_size_z
+      {Intrinsic::r600_read_ngroups_x, 95342}, // __builtin_r600_read_ngroups_x
+      {Intrinsic::r600_read_ngroups_y, 95372}, // __builtin_r600_read_ngroups_y
+      {Intrinsic::r600_read_ngroups_z, 95402}, // __builtin_r600_read_ngroups_z
+      {Intrinsic::r600_read_tgid_x, 95432}, // __builtin_r600_read_tgid_x
+      {Intrinsic::r600_read_tgid_y, 95459}, // __builtin_r600_read_tgid_y
+      {Intrinsic::r600_read_tgid_z, 95486}, // __builtin_r600_read_tgid_z
+    };
+    auto I = std::lower_bound(std::begin(r600Names),
+                              std::end(r600Names),
+                              BuiltinNameStr);
+    if (I != std::end(r600Names) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "s390") {
+    static const BuiltinEntry s390Names[] = {
+      {Intrinsic::s390_efpc, 95513}, // __builtin_s390_efpc
+      {Intrinsic::s390_lcbb, 95560}, // __builtin_s390_lcbb
+      {Intrinsic::s390_sfpc, 95600}, // __builtin_s390_sfpc
+      {Intrinsic::s390_vaccb, 95620}, // __builtin_s390_vaccb
+      {Intrinsic::s390_vacccq, 95641}, // __builtin_s390_vacccq
+      {Intrinsic::s390_vaccf, 95663}, // __builtin_s390_vaccf
+      {Intrinsic::s390_vaccg, 95684}, // __builtin_s390_vaccg
+      {Intrinsic::s390_vacch, 95705}, // __builtin_s390_vacch
+      {Intrinsic::s390_vaccq, 95726}, // __builtin_s390_vaccq
+      {Intrinsic::s390_vacq, 95747}, // __builtin_s390_vacq
+      {Intrinsic::s390_vaq, 95767}, // __builtin_s390_vaq
+      {Intrinsic::s390_vavgb, 95786}, // __builtin_s390_vavgb
+      {Intrinsic::s390_vavgf, 95807}, // __builtin_s390_vavgf
+      {Intrinsic::s390_vavgg, 95828}, // __builtin_s390_vavgg
+      {Intrinsic::s390_vavgh, 95849}, // __builtin_s390_vavgh
+      {Intrinsic::s390_vavglb, 95870}, // __builtin_s390_vavglb
+      {Intrinsic::s390_vavglf, 95892}, // __builtin_s390_vavglf
+      {Intrinsic::s390_vavglg, 95914}, // __builtin_s390_vavglg
+      {Intrinsic::s390_vavglh, 95936}, // __builtin_s390_vavglh
+      {Intrinsic::s390_vbperm, 95958}, // __builtin_s390_vbperm
+      {Intrinsic::s390_vcksm, 95980}, // __builtin_s390_vcksm
+      {Intrinsic::s390_verimb, 96001}, // __builtin_s390_verimb
+      {Intrinsic::s390_verimf, 96023}, // __builtin_s390_verimf
+      {Intrinsic::s390_verimg, 96045}, // __builtin_s390_verimg
+      {Intrinsic::s390_verimh, 96067}, // __builtin_s390_verimh
+      {Intrinsic::s390_verllb, 96089}, // __builtin_s390_verllb
+      {Intrinsic::s390_verllf, 96111}, // __builtin_s390_verllf
+      {Intrinsic::s390_verllg, 96133}, // __builtin_s390_verllg
+      {Intrinsic::s390_verllh, 96155}, // __builtin_s390_verllh
+      {Intrinsic::s390_verllvb, 96177}, // __builtin_s390_verllvb
+      {Intrinsic::s390_verllvf, 96200}, // __builtin_s390_verllvf
+      {Intrinsic::s390_verllvg, 96223}, // __builtin_s390_verllvg
+      {Intrinsic::s390_verllvh, 96246}, // __builtin_s390_verllvh
+      {Intrinsic::s390_vfaeb, 96269}, // __builtin_s390_vfaeb
+      {Intrinsic::s390_vfaef, 96290}, // __builtin_s390_vfaef
+      {Intrinsic::s390_vfaeh, 96311}, // __builtin_s390_vfaeh
+      {Intrinsic::s390_vfaezb, 96332}, // __builtin_s390_vfaezb
+      {Intrinsic::s390_vfaezf, 96354}, // __builtin_s390_vfaezf
+      {Intrinsic::s390_vfaezh, 96376}, // __builtin_s390_vfaezh
+      {Intrinsic::s390_vfeeb, 96398}, // __builtin_s390_vfeeb
+      {Intrinsic::s390_vfeef, 96419}, // __builtin_s390_vfeef
+      {Intrinsic::s390_vfeeh, 96440}, // __builtin_s390_vfeeh
+      {Intrinsic::s390_vfeezb, 96461}, // __builtin_s390_vfeezb
+      {Intrinsic::s390_vfeezf, 96483}, // __builtin_s390_vfeezf
+      {Intrinsic::s390_vfeezh, 96505}, // __builtin_s390_vfeezh
+      {Intrinsic::s390_vfeneb, 96527}, // __builtin_s390_vfeneb
+      {Intrinsic::s390_vfenef, 96549}, // __builtin_s390_vfenef
+      {Intrinsic::s390_vfeneh, 96571}, // __builtin_s390_vfeneh
+      {Intrinsic::s390_vfenezb, 96593}, // __builtin_s390_vfenezb
+      {Intrinsic::s390_vfenezf, 96616}, // __builtin_s390_vfenezf
+      {Intrinsic::s390_vfenezh, 96639}, // __builtin_s390_vfenezh
+      {Intrinsic::s390_vgfmab, 96662}, // __builtin_s390_vgfmab
+      {Intrinsic::s390_vgfmaf, 96684}, // __builtin_s390_vgfmaf
+      {Intrinsic::s390_vgfmag, 96706}, // __builtin_s390_vgfmag
+      {Intrinsic::s390_vgfmah, 96728}, // __builtin_s390_vgfmah
+      {Intrinsic::s390_vgfmb, 96750}, // __builtin_s390_vgfmb
+      {Intrinsic::s390_vgfmf, 96771}, // __builtin_s390_vgfmf
+      {Intrinsic::s390_vgfmg, 96792}, // __builtin_s390_vgfmg
+      {Intrinsic::s390_vgfmh, 96813}, // __builtin_s390_vgfmh
+      {Intrinsic::s390_vistrb, 96834}, // __builtin_s390_vistrb
+      {Intrinsic::s390_vistrf, 96856}, // __builtin_s390_vistrf
+      {Intrinsic::s390_vistrh, 96878}, // __builtin_s390_vistrh
+      {Intrinsic::s390_vlbb, 96900}, // __builtin_s390_vlbb
+      {Intrinsic::s390_vll, 96920}, // __builtin_s390_vll
+      {Intrinsic::s390_vlrl, 96939}, // __builtin_s390_vlrl
+      {Intrinsic::s390_vmaeb, 96959}, // __builtin_s390_vmaeb
+      {Intrinsic::s390_vmaef, 96980}, // __builtin_s390_vmaef
+      {Intrinsic::s390_vmaeh, 97001}, // __builtin_s390_vmaeh
+      {Intrinsic::s390_vmahb, 97022}, // __builtin_s390_vmahb
+      {Intrinsic::s390_vmahf, 97043}, // __builtin_s390_vmahf
+      {Intrinsic::s390_vmahh, 97064}, // __builtin_s390_vmahh
+      {Intrinsic::s390_vmaleb, 97085}, // __builtin_s390_vmaleb
+      {Intrinsic::s390_vmalef, 97107}, // __builtin_s390_vmalef
+      {Intrinsic::s390_vmaleh, 97129}, // __builtin_s390_vmaleh
+      {Intrinsic::s390_vmalhb, 97151}, // __builtin_s390_vmalhb
+      {Intrinsic::s390_vmalhf, 97173}, // __builtin_s390_vmalhf
+      {Intrinsic::s390_vmalhh, 97195}, // __builtin_s390_vmalhh
+      {Intrinsic::s390_vmalob, 97217}, // __builtin_s390_vmalob
+      {Intrinsic::s390_vmalof, 97239}, // __builtin_s390_vmalof
+      {Intrinsic::s390_vmaloh, 97261}, // __builtin_s390_vmaloh
+      {Intrinsic::s390_vmaob, 97283}, // __builtin_s390_vmaob
+      {Intrinsic::s390_vmaof, 97304}, // __builtin_s390_vmaof
+      {Intrinsic::s390_vmaoh, 97325}, // __builtin_s390_vmaoh
+      {Intrinsic::s390_vmeb, 97346}, // __builtin_s390_vmeb
+      {Intrinsic::s390_vmef, 97366}, // __builtin_s390_vmef
+      {Intrinsic::s390_vmeh, 97386}, // __builtin_s390_vmeh
+      {Intrinsic::s390_vmhb, 97406}, // __builtin_s390_vmhb
+      {Intrinsic::s390_vmhf, 97426}, // __builtin_s390_vmhf
+      {Intrinsic::s390_vmhh, 97446}, // __builtin_s390_vmhh
+      {Intrinsic::s390_vmleb, 97466}, // __builtin_s390_vmleb
+      {Intrinsic::s390_vmlef, 97487}, // __builtin_s390_vmlef
+      {Intrinsic::s390_vmleh, 97508}, // __builtin_s390_vmleh
+      {Intrinsic::s390_vmlhb, 97529}, // __builtin_s390_vmlhb
+      {Intrinsic::s390_vmlhf, 97550}, // __builtin_s390_vmlhf
+      {Intrinsic::s390_vmlhh, 97571}, // __builtin_s390_vmlhh
+      {Intrinsic::s390_vmlob, 97592}, // __builtin_s390_vmlob
+      {Intrinsic::s390_vmlof, 97613}, // __builtin_s390_vmlof
+      {Intrinsic::s390_vmloh, 97634}, // __builtin_s390_vmloh
+      {Intrinsic::s390_vmob, 97655}, // __builtin_s390_vmob
+      {Intrinsic::s390_vmof, 97675}, // __builtin_s390_vmof
+      {Intrinsic::s390_vmoh, 97695}, // __builtin_s390_vmoh
+      {Intrinsic::s390_vmslg, 97715}, // __builtin_s390_vmslg
+      {Intrinsic::s390_vpdi, 97736}, // __builtin_s390_vpdi
+      {Intrinsic::s390_vperm, 97756}, // __builtin_s390_vperm
+      {Intrinsic::s390_vpklsf, 97777}, // __builtin_s390_vpklsf
+      {Intrinsic::s390_vpklsg, 97799}, // __builtin_s390_vpklsg
+      {Intrinsic::s390_vpklsh, 97821}, // __builtin_s390_vpklsh
+      {Intrinsic::s390_vpksf, 97843}, // __builtin_s390_vpksf
+      {Intrinsic::s390_vpksg, 97864}, // __builtin_s390_vpksg
+      {Intrinsic::s390_vpksh, 97885}, // __builtin_s390_vpksh
+      {Intrinsic::s390_vsbcbiq, 97906}, // __builtin_s390_vsbcbiq
+      {Intrinsic::s390_vsbiq, 97929}, // __builtin_s390_vsbiq
+      {Intrinsic::s390_vscbib, 97950}, // __builtin_s390_vscbib
+      {Intrinsic::s390_vscbif, 97972}, // __builtin_s390_vscbif
+      {Intrinsic::s390_vscbig, 97994}, // __builtin_s390_vscbig
+      {Intrinsic::s390_vscbih, 98016}, // __builtin_s390_vscbih
+      {Intrinsic::s390_vscbiq, 98038}, // __builtin_s390_vscbiq
+      {Intrinsic::s390_vsl, 98060}, // __builtin_s390_vsl
+      {Intrinsic::s390_vslb, 98079}, // __builtin_s390_vslb
+      {Intrinsic::s390_vsldb, 98099}, // __builtin_s390_vsldb
+      {Intrinsic::s390_vsq, 98120}, // __builtin_s390_vsq
+      {Intrinsic::s390_vsra, 98139}, // __builtin_s390_vsra
+      {Intrinsic::s390_vsrab, 98159}, // __builtin_s390_vsrab
+      {Intrinsic::s390_vsrl, 98180}, // __builtin_s390_vsrl
+      {Intrinsic::s390_vsrlb, 98200}, // __builtin_s390_vsrlb
+      {Intrinsic::s390_vstl, 98221}, // __builtin_s390_vstl
+      {Intrinsic::s390_vstrcb, 98241}, // __builtin_s390_vstrcb
+      {Intrinsic::s390_vstrcf, 98263}, // __builtin_s390_vstrcf
+      {Intrinsic::s390_vstrch, 98285}, // __builtin_s390_vstrch
+      {Intrinsic::s390_vstrczb, 98307}, // __builtin_s390_vstrczb
+      {Intrinsic::s390_vstrczf, 98330}, // __builtin_s390_vstrczf
+      {Intrinsic::s390_vstrczh, 98353}, // __builtin_s390_vstrczh
+      {Intrinsic::s390_vstrl, 98376}, // __builtin_s390_vstrl
+      {Intrinsic::s390_vsumb, 98397}, // __builtin_s390_vsumb
+      {Intrinsic::s390_vsumgf, 98418}, // __builtin_s390_vsumgf
+      {Intrinsic::s390_vsumgh, 98440}, // __builtin_s390_vsumgh
+      {Intrinsic::s390_vsumh, 98462}, // __builtin_s390_vsumh
+      {Intrinsic::s390_vsumqf, 98483}, // __builtin_s390_vsumqf
+      {Intrinsic::s390_vsumqg, 98505}, // __builtin_s390_vsumqg
+      {Intrinsic::s390_vtm, 98527}, // __builtin_s390_vtm
+      {Intrinsic::s390_vuphb, 98546}, // __builtin_s390_vuphb
+      {Intrinsic::s390_vuphf, 98567}, // __builtin_s390_vuphf
+      {Intrinsic::s390_vuphh, 98588}, // __builtin_s390_vuphh
+      {Intrinsic::s390_vuplb, 98609}, // __builtin_s390_vuplb
+      {Intrinsic::s390_vuplf, 98630}, // __builtin_s390_vuplf
+      {Intrinsic::s390_vuplhb, 98651}, // __builtin_s390_vuplhb
+      {Intrinsic::s390_vuplhf, 98673}, // __builtin_s390_vuplhf
+      {Intrinsic::s390_vuplhh, 98695}, // __builtin_s390_vuplhh
+      {Intrinsic::s390_vuplhw, 98717}, // __builtin_s390_vuplhw
+      {Intrinsic::s390_vupllb, 98739}, // __builtin_s390_vupllb
+      {Intrinsic::s390_vupllf, 98761}, // __builtin_s390_vupllf
+      {Intrinsic::s390_vupllh, 98783}, // __builtin_s390_vupllh
+      {Intrinsic::s390_tend, 93915}, // __builtin_tend
+      {Intrinsic::s390_ppa_txassist, 95580}, // __builtin_tx_assist
+      {Intrinsic::s390_etnd, 95533}, // __builtin_tx_nesting_depth
+    };
+    auto I = std::lower_bound(std::begin(s390Names),
+                              std::end(s390Names),
+                              BuiltinNameStr);
+    if (I != std::end(s390Names) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "x86") {
+    static const BuiltinEntry x86Names[] = {
+      {Intrinsic::x86_addcarry_u32, 99313}, // __builtin_ia32_addcarry_u32
+      {Intrinsic::x86_addcarry_u64, 99341}, // __builtin_ia32_addcarry_u64
+      {Intrinsic::x86_addcarryx_u32, 99369}, // __builtin_ia32_addcarryx_u32
+      {Intrinsic::x86_addcarryx_u64, 99398}, // __builtin_ia32_addcarryx_u64
+      {Intrinsic::x86_avx512_add_pd_512, 103374}, // __builtin_ia32_addpd512
+      {Intrinsic::x86_avx512_add_ps_512, 103398}, // __builtin_ia32_addps512
+      {Intrinsic::x86_avx512_mask_add_sd_round, 104972}, // __builtin_ia32_addsd_round_mask
+      {Intrinsic::x86_avx512_mask_add_ss_round, 105004}, // __builtin_ia32_addss_round_mask
+      {Intrinsic::x86_sse3_addsub_pd, 127495}, // __builtin_ia32_addsubpd
+      {Intrinsic::x86_avx_addsub_pd_256, 99810}, // __builtin_ia32_addsubpd256
+      {Intrinsic::x86_sse3_addsub_ps, 127519}, // __builtin_ia32_addsubps
+      {Intrinsic::x86_avx_addsub_ps_256, 99837}, // __builtin_ia32_addsubps256
+      {Intrinsic::x86_aesni_aesdec, 99427}, // __builtin_ia32_aesdec128
+      {Intrinsic::x86_aesni_aesdec_256, 99452}, // __builtin_ia32_aesdec256
+      {Intrinsic::x86_aesni_aesdec_512, 99477}, // __builtin_ia32_aesdec512
+      {Intrinsic::x86_aesni_aesdeclast, 99502}, // __builtin_ia32_aesdeclast128
+      {Intrinsic::x86_aesni_aesdeclast_256, 99531}, // __builtin_ia32_aesdeclast256
+      {Intrinsic::x86_aesni_aesdeclast_512, 99560}, // __builtin_ia32_aesdeclast512
+      {Intrinsic::x86_aesni_aesenc, 99589}, // __builtin_ia32_aesenc128
+      {Intrinsic::x86_aesni_aesenc_256, 99614}, // __builtin_ia32_aesenc256
+      {Intrinsic::x86_aesni_aesenc_512, 99639}, // __builtin_ia32_aesenc512
+      {Intrinsic::x86_aesni_aesenclast, 99664}, // __builtin_ia32_aesenclast128
+      {Intrinsic::x86_aesni_aesenclast_256, 99693}, // __builtin_ia32_aesenclast256
+      {Intrinsic::x86_aesni_aesenclast_512, 99722}, // __builtin_ia32_aesenclast512
+      {Intrinsic::x86_aesni_aesimc, 99751}, // __builtin_ia32_aesimc128
+      {Intrinsic::x86_aesni_aeskeygenassist, 99776}, // __builtin_ia32_aeskeygenassist128
+      {Intrinsic::x86_bmi_bextr_32, 122031}, // __builtin_ia32_bextr_u32
+      {Intrinsic::x86_bmi_bextr_64, 122056}, // __builtin_ia32_bextr_u64
+      {Intrinsic::x86_tbm_bextri_u32, 129372}, // __builtin_ia32_bextri_u32
+      {Intrinsic::x86_tbm_bextri_u64, 129398}, // __builtin_ia32_bextri_u64
+      {Intrinsic::x86_sse41_blendvpd, 127696}, // __builtin_ia32_blendvpd
+      {Intrinsic::x86_avx_blendv_pd_256, 99864}, // __builtin_ia32_blendvpd256
+      {Intrinsic::x86_sse41_blendvps, 127720}, // __builtin_ia32_blendvps
+      {Intrinsic::x86_avx_blendv_ps_256, 99891}, // __builtin_ia32_blendvps256
+      {Intrinsic::x86_avx512_broadcastmb_128, 103422}, // __builtin_ia32_broadcastmb128
+      {Intrinsic::x86_avx512_broadcastmb_256, 103452}, // __builtin_ia32_broadcastmb256
+      {Intrinsic::x86_avx512_broadcastmb_512, 103482}, // __builtin_ia32_broadcastmb512
+      {Intrinsic::x86_avx512_broadcastmw_128, 103512}, // __builtin_ia32_broadcastmw128
+      {Intrinsic::x86_avx512_broadcastmw_256, 103542}, // __builtin_ia32_broadcastmw256
+      {Intrinsic::x86_avx512_broadcastmw_512, 103572}, // __builtin_ia32_broadcastmw512
+      {Intrinsic::x86_bmi_bzhi_64, 122104}, // __builtin_ia32_bzhi_di
+      {Intrinsic::x86_bmi_bzhi_32, 122081}, // __builtin_ia32_bzhi_si
+      {Intrinsic::x86_cldemote, 122219}, // __builtin_ia32_cldemote
+      {Intrinsic::x86_sse2_clflush, 125902}, // __builtin_ia32_clflush
+      {Intrinsic::x86_clflushopt, 122243}, // __builtin_ia32_clflushopt
+      {Intrinsic::x86_clrssbsy, 122269}, // __builtin_ia32_clrssbsy
+      {Intrinsic::x86_clwb, 122293}, // __builtin_ia32_clwb
+      {Intrinsic::x86_clzero, 122313}, // __builtin_ia32_clzero
+      {Intrinsic::x86_sse2_cmp_sd, 125925}, // __builtin_ia32_cmpsd
+      {Intrinsic::x86_avx512_mask_cmp_sd, 105036}, // __builtin_ia32_cmpsd_mask
+      {Intrinsic::x86_sse_cmp_ss, 125121}, // __builtin_ia32_cmpss
+      {Intrinsic::x86_avx512_mask_cmp_ss, 105062}, // __builtin_ia32_cmpss_mask
+      {Intrinsic::x86_sse_comieq_ss, 125142}, // __builtin_ia32_comieq
+      {Intrinsic::x86_sse_comige_ss, 125164}, // __builtin_ia32_comige
+      {Intrinsic::x86_sse_comigt_ss, 125186}, // __builtin_ia32_comigt
+      {Intrinsic::x86_sse_comile_ss, 125208}, // __builtin_ia32_comile
+      {Intrinsic::x86_sse_comilt_ss, 125230}, // __builtin_ia32_comilt
+      {Intrinsic::x86_sse_comineq_ss, 125252}, // __builtin_ia32_comineq
+      {Intrinsic::x86_sse2_comieq_sd, 125946}, // __builtin_ia32_comisdeq
+      {Intrinsic::x86_sse2_comige_sd, 125970}, // __builtin_ia32_comisdge
+      {Intrinsic::x86_sse2_comigt_sd, 125994}, // __builtin_ia32_comisdgt
+      {Intrinsic::x86_sse2_comile_sd, 126018}, // __builtin_ia32_comisdle
+      {Intrinsic::x86_sse2_comilt_sd, 126042}, // __builtin_ia32_comisdlt
+      {Intrinsic::x86_sse2_comineq_sd, 126066}, // __builtin_ia32_comisdneq
+      {Intrinsic::x86_avx512_mask_compress_pd_128, 105292}, // __builtin_ia32_compressdf128_mask
+      {Intrinsic::x86_avx512_mask_compress_pd_256, 105326}, // __builtin_ia32_compressdf256_mask
+      {Intrinsic::x86_avx512_mask_compress_pd_512, 105360}, // __builtin_ia32_compressdf512_mask
+      {Intrinsic::x86_avx512_mask_compress_q_128, 105496}, // __builtin_ia32_compressdi128_mask
+      {Intrinsic::x86_avx512_mask_compress_q_256, 105530}, // __builtin_ia32_compressdi256_mask
+      {Intrinsic::x86_avx512_mask_compress_q_512, 105564}, // __builtin_ia32_compressdi512_mask
+      {Intrinsic::x86_avx512_mask_compress_w_128, 105598}, // __builtin_ia32_compresshi128_mask
+      {Intrinsic::x86_avx512_mask_compress_w_256, 105632}, // __builtin_ia32_compresshi256_mask
+      {Intrinsic::x86_avx512_mask_compress_w_512, 105666}, // __builtin_ia32_compresshi512_mask
+      {Intrinsic::x86_avx512_mask_compress_b_128, 105088}, // __builtin_ia32_compressqi128_mask
+      {Intrinsic::x86_avx512_mask_compress_b_256, 105122}, // __builtin_ia32_compressqi256_mask
+      {Intrinsic::x86_avx512_mask_compress_b_512, 105156}, // __builtin_ia32_compressqi512_mask
+      {Intrinsic::x86_avx512_mask_compress_ps_128, 105394}, // __builtin_ia32_compresssf128_mask
+      {Intrinsic::x86_avx512_mask_compress_ps_256, 105428}, // __builtin_ia32_compresssf256_mask
+      {Intrinsic::x86_avx512_mask_compress_ps_512, 105462}, // __builtin_ia32_compresssf512_mask
+      {Intrinsic::x86_avx512_mask_compress_d_128, 105190}, // __builtin_ia32_compresssi128_mask
+      {Intrinsic::x86_avx512_mask_compress_d_256, 105224}, // __builtin_ia32_compresssi256_mask
+      {Intrinsic::x86_avx512_mask_compress_d_512, 105258}, // __builtin_ia32_compresssi512_mask
+      {Intrinsic::x86_sse42_crc32_64_64, 128158}, // __builtin_ia32_crc32di
+      {Intrinsic::x86_sse42_crc32_32_16, 128089}, // __builtin_ia32_crc32hi
+      {Intrinsic::x86_sse42_crc32_32_8, 128135}, // __builtin_ia32_crc32qi
+      {Intrinsic::x86_sse42_crc32_32_32, 128112}, // __builtin_ia32_crc32si
+      {Intrinsic::x86_avx512_mask_cvtdq2ps_512, 105922}, // __builtin_ia32_cvtdq2ps512_mask
+      {Intrinsic::x86_sse2_cvtpd2dq, 126091}, // __builtin_ia32_cvtpd2dq
+      {Intrinsic::x86_avx512_mask_cvtpd2dq_128, 105954}, // __builtin_ia32_cvtpd2dq128_mask
+      {Intrinsic::x86_avx_cvt_pd2dq_256, 99945}, // __builtin_ia32_cvtpd2dq256
+      {Intrinsic::x86_avx512_mask_cvtpd2dq_512, 105986}, // __builtin_ia32_cvtpd2dq512_mask
+      {Intrinsic::x86_sse_cvtpd2pi, 125275}, // __builtin_ia32_cvtpd2pi
+      {Intrinsic::x86_sse2_cvtpd2ps, 126115}, // __builtin_ia32_cvtpd2ps
+      {Intrinsic::x86_avx_cvt_pd2_ps_256, 99918}, // __builtin_ia32_cvtpd2ps256
+      {Intrinsic::x86_avx512_mask_cvtpd2ps_512, 106047}, // __builtin_ia32_cvtpd2ps512_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2ps, 106018}, // __builtin_ia32_cvtpd2ps_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2qq_128, 106079}, // __builtin_ia32_cvtpd2qq128_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2qq_256, 106111}, // __builtin_ia32_cvtpd2qq256_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2qq_512, 106143}, // __builtin_ia32_cvtpd2qq512_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2udq_128, 106175}, // __builtin_ia32_cvtpd2udq128_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2udq_256, 106208}, // __builtin_ia32_cvtpd2udq256_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2udq_512, 106241}, // __builtin_ia32_cvtpd2udq512_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2uqq_128, 106274}, // __builtin_ia32_cvtpd2uqq128_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2uqq_256, 106307}, // __builtin_ia32_cvtpd2uqq256_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2uqq_512, 106340}, // __builtin_ia32_cvtpd2uqq512_mask
+      {Intrinsic::x86_sse_cvtpi2pd, 125299}, // __builtin_ia32_cvtpi2pd
+      {Intrinsic::x86_sse_cvtpi2ps, 125323}, // __builtin_ia32_cvtpi2ps
+      {Intrinsic::x86_sse2_cvtps2dq, 126139}, // __builtin_ia32_cvtps2dq
+      {Intrinsic::x86_avx512_mask_cvtps2dq_128, 106373}, // __builtin_ia32_cvtps2dq128_mask
+      {Intrinsic::x86_avx_cvt_ps2dq_256, 99972}, // __builtin_ia32_cvtps2dq256
+      {Intrinsic::x86_avx512_mask_cvtps2dq_256, 106405}, // __builtin_ia32_cvtps2dq256_mask
+      {Intrinsic::x86_avx512_mask_cvtps2dq_512, 106437}, // __builtin_ia32_cvtps2dq512_mask
+      {Intrinsic::x86_avx512_mask_cvtps2pd_512, 106469}, // __builtin_ia32_cvtps2pd512_mask
+      {Intrinsic::x86_sse_cvtps2pi, 125347}, // __builtin_ia32_cvtps2pi
+      {Intrinsic::x86_avx512_mask_cvtps2qq_128, 106501}, // __builtin_ia32_cvtps2qq128_mask
+      {Intrinsic::x86_avx512_mask_cvtps2qq_256, 106533}, // __builtin_ia32_cvtps2qq256_mask
+      {Intrinsic::x86_avx512_mask_cvtps2qq_512, 106565}, // __builtin_ia32_cvtps2qq512_mask
+      {Intrinsic::x86_avx512_mask_cvtps2udq_128, 106597}, // __builtin_ia32_cvtps2udq128_mask
+      {Intrinsic::x86_avx512_mask_cvtps2udq_256, 106630}, // __builtin_ia32_cvtps2udq256_mask
+      {Intrinsic::x86_avx512_mask_cvtps2udq_512, 106663}, // __builtin_ia32_cvtps2udq512_mask
+      {Intrinsic::x86_avx512_mask_cvtps2uqq_128, 106696}, // __builtin_ia32_cvtps2uqq128_mask
+      {Intrinsic::x86_avx512_mask_cvtps2uqq_256, 106729}, // __builtin_ia32_cvtps2uqq256_mask
+      {Intrinsic::x86_avx512_mask_cvtps2uqq_512, 106762}, // __builtin_ia32_cvtps2uqq512_mask
+      {Intrinsic::x86_avx512_mask_cvtqq2pd_512, 106795}, // __builtin_ia32_cvtqq2pd512_mask
+      {Intrinsic::x86_avx512_mask_cvtqq2ps_128, 106827}, // __builtin_ia32_cvtqq2ps128_mask
+      {Intrinsic::x86_avx512_mask_cvtqq2ps_256, 106859}, // __builtin_ia32_cvtqq2ps256_mask
+      {Intrinsic::x86_avx512_mask_cvtqq2ps_512, 106891}, // __builtin_ia32_cvtqq2ps512_mask
+      {Intrinsic::x86_sse2_cvtsd2si, 126163}, // __builtin_ia32_cvtsd2si
+      {Intrinsic::x86_sse2_cvtsd2si64, 126187}, // __builtin_ia32_cvtsd2si64
+      {Intrinsic::x86_sse2_cvtsd2ss, 126213}, // __builtin_ia32_cvtsd2ss
+      {Intrinsic::x86_avx512_mask_cvtsd2ss_round, 106923}, // __builtin_ia32_cvtsd2ss_round_mask
+      {Intrinsic::x86_avx512_cvtsi2sd64, 103602}, // __builtin_ia32_cvtsi2sd64
+      {Intrinsic::x86_avx512_cvtsi2ss32, 103628}, // __builtin_ia32_cvtsi2ss32
+      {Intrinsic::x86_avx512_cvtsi2ss64, 103654}, // __builtin_ia32_cvtsi2ss64
+      {Intrinsic::x86_avx512_mask_cvtss2sd_round, 106958}, // __builtin_ia32_cvtss2sd_round_mask
+      {Intrinsic::x86_sse_cvtss2si, 125371}, // __builtin_ia32_cvtss2si
+      {Intrinsic::x86_sse_cvtss2si64, 125395}, // __builtin_ia32_cvtss2si64
+      {Intrinsic::x86_sse2_cvttpd2dq, 126237}, // __builtin_ia32_cvttpd2dq
+      {Intrinsic::x86_avx512_mask_cvttpd2dq_128, 106993}, // __builtin_ia32_cvttpd2dq128_mask
+      {Intrinsic::x86_avx_cvtt_pd2dq_256, 99999}, // __builtin_ia32_cvttpd2dq256
+      {Intrinsic::x86_avx512_mask_cvttpd2dq_512, 107026}, // __builtin_ia32_cvttpd2dq512_mask
+      {Intrinsic::x86_sse_cvttpd2pi, 125421}, // __builtin_ia32_cvttpd2pi
+      {Intrinsic::x86_avx512_mask_cvttpd2qq_128, 107059}, // __builtin_ia32_cvttpd2qq128_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2qq_256, 107092}, // __builtin_ia32_cvttpd2qq256_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2qq_512, 107125}, // __builtin_ia32_cvttpd2qq512_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2udq_128, 107158}, // __builtin_ia32_cvttpd2udq128_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2udq_256, 107192}, // __builtin_ia32_cvttpd2udq256_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2udq_512, 107226}, // __builtin_ia32_cvttpd2udq512_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2uqq_128, 107260}, // __builtin_ia32_cvttpd2uqq128_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2uqq_256, 107294}, // __builtin_ia32_cvttpd2uqq256_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2uqq_512, 107328}, // __builtin_ia32_cvttpd2uqq512_mask
+      {Intrinsic::x86_sse2_cvttps2dq, 126262}, // __builtin_ia32_cvttps2dq
+      {Intrinsic::x86_avx_cvtt_ps2dq_256, 100027}, // __builtin_ia32_cvttps2dq256
+      {Intrinsic::x86_avx512_mask_cvttps2dq_512, 107362}, // __builtin_ia32_cvttps2dq512_mask
+      {Intrinsic::x86_sse_cvttps2pi, 125446}, // __builtin_ia32_cvttps2pi
+      {Intrinsic::x86_avx512_mask_cvttps2qq_128, 107395}, // __builtin_ia32_cvttps2qq128_mask
+      {Intrinsic::x86_avx512_mask_cvttps2qq_256, 107428}, // __builtin_ia32_cvttps2qq256_mask
+      {Intrinsic::x86_avx512_mask_cvttps2qq_512, 107461}, // __builtin_ia32_cvttps2qq512_mask
+      {Intrinsic::x86_avx512_mask_cvttps2udq_128, 107494}, // __builtin_ia32_cvttps2udq128_mask
+      {Intrinsic::x86_avx512_mask_cvttps2udq_256, 107528}, // __builtin_ia32_cvttps2udq256_mask
+      {Intrinsic::x86_avx512_mask_cvttps2udq_512, 107562}, // __builtin_ia32_cvttps2udq512_mask
+      {Intrinsic::x86_avx512_mask_cvttps2uqq_128, 107596}, // __builtin_ia32_cvttps2uqq128_mask
+      {Intrinsic::x86_avx512_mask_cvttps2uqq_256, 107630}, // __builtin_ia32_cvttps2uqq256_mask
+      {Intrinsic::x86_avx512_mask_cvttps2uqq_512, 107664}, // __builtin_ia32_cvttps2uqq512_mask
+      {Intrinsic::x86_sse2_cvttsd2si, 126287}, // __builtin_ia32_cvttsd2si
+      {Intrinsic::x86_sse2_cvttsd2si64, 126312}, // __builtin_ia32_cvttsd2si64
+      {Intrinsic::x86_sse_cvttss2si, 125471}, // __builtin_ia32_cvttss2si
+      {Intrinsic::x86_sse_cvttss2si64, 125496}, // __builtin_ia32_cvttss2si64
+      {Intrinsic::x86_avx512_mask_cvtudq2ps_512, 107698}, // __builtin_ia32_cvtudq2ps512_mask
+      {Intrinsic::x86_avx512_mask_cvtuqq2pd_512, 107731}, // __builtin_ia32_cvtuqq2pd512_mask
+      {Intrinsic::x86_avx512_mask_cvtuqq2ps_128, 107764}, // __builtin_ia32_cvtuqq2ps128_mask
+      {Intrinsic::x86_avx512_mask_cvtuqq2ps_256, 107797}, // __builtin_ia32_cvtuqq2ps256_mask
+      {Intrinsic::x86_avx512_mask_cvtuqq2ps_512, 107830}, // __builtin_ia32_cvtuqq2ps512_mask
+      {Intrinsic::x86_avx512_cvtusi642sd, 103935}, // __builtin_ia32_cvtusi2sd64
+      {Intrinsic::x86_avx512_cvtusi2ss, 103908}, // __builtin_ia32_cvtusi2ss32
+      {Intrinsic::x86_avx512_cvtusi642ss, 103962}, // __builtin_ia32_cvtusi2ss64
+      {Intrinsic::x86_avx512_dbpsadbw_128, 103989}, // __builtin_ia32_dbpsadbw128
+      {Intrinsic::x86_avx512_dbpsadbw_256, 104016}, // __builtin_ia32_dbpsadbw256
+      {Intrinsic::x86_avx512_dbpsadbw_512, 104043}, // __builtin_ia32_dbpsadbw512
+      {Intrinsic::x86_directstore32, 122335}, // __builtin_ia32_directstore_u32
+      {Intrinsic::x86_directstore64, 122366}, // __builtin_ia32_directstore_u64
+      {Intrinsic::x86_avx512_div_pd_512, 104070}, // __builtin_ia32_divpd512
+      {Intrinsic::x86_avx512_div_ps_512, 104094}, // __builtin_ia32_divps512
+      {Intrinsic::x86_avx512_mask_div_sd_round, 107863}, // __builtin_ia32_divsd_round_mask
+      {Intrinsic::x86_avx512_mask_div_ss_round, 107895}, // __builtin_ia32_divss_round_mask
+      {Intrinsic::x86_sse41_dppd, 127744}, // __builtin_ia32_dppd
+      {Intrinsic::x86_sse41_dpps, 127764}, // __builtin_ia32_dpps
+      {Intrinsic::x86_avx_dp_ps_256, 100055}, // __builtin_ia32_dpps256
+      {Intrinsic::x86_mmx_emms, 122800}, // __builtin_ia32_emms
+      {Intrinsic::x86_avx512_exp2_pd, 104118}, // __builtin_ia32_exp2pd_mask
+      {Intrinsic::x86_avx512_exp2_ps, 104145}, // __builtin_ia32_exp2ps_mask
+      {Intrinsic::x86_avx512_mask_expand_pd_128, 108119}, // __builtin_ia32_expanddf128_mask
+      {Intrinsic::x86_avx512_mask_expand_pd_256, 108151}, // __builtin_ia32_expanddf256_mask
+      {Intrinsic::x86_avx512_mask_expand_pd_512, 108183}, // __builtin_ia32_expanddf512_mask
+      {Intrinsic::x86_avx512_mask_expand_q_128, 108311}, // __builtin_ia32_expanddi128_mask
+      {Intrinsic::x86_avx512_mask_expand_q_256, 108343}, // __builtin_ia32_expanddi256_mask
+      {Intrinsic::x86_avx512_mask_expand_q_512, 108375}, // __builtin_ia32_expanddi512_mask
+      {Intrinsic::x86_avx512_mask_expand_w_128, 108407}, // __builtin_ia32_expandhi128_mask
+      {Intrinsic::x86_avx512_mask_expand_w_256, 108439}, // __builtin_ia32_expandhi256_mask
+      {Intrinsic::x86_avx512_mask_expand_w_512, 108471}, // __builtin_ia32_expandhi512_mask
+      {Intrinsic::x86_avx512_mask_expand_b_128, 107927}, // __builtin_ia32_expandqi128_mask
+      {Intrinsic::x86_avx512_mask_expand_b_256, 107959}, // __builtin_ia32_expandqi256_mask
+      {Intrinsic::x86_avx512_mask_expand_b_512, 107991}, // __builtin_ia32_expandqi512_mask
+      {Intrinsic::x86_avx512_mask_expand_ps_128, 108215}, // __builtin_ia32_expandsf128_mask
+      {Intrinsic::x86_avx512_mask_expand_ps_256, 108247}, // __builtin_ia32_expandsf256_mask
+      {Intrinsic::x86_avx512_mask_expand_ps_512, 108279}, // __builtin_ia32_expandsf512_mask
+      {Intrinsic::x86_avx512_mask_expand_d_128, 108023}, // __builtin_ia32_expandsi128_mask
+      {Intrinsic::x86_avx512_mask_expand_d_256, 108055}, // __builtin_ia32_expandsi256_mask
+      {Intrinsic::x86_avx512_mask_expand_d_512, 108087}, // __builtin_ia32_expandsi512_mask
+      {Intrinsic::x86_sse4a_extrq, 128583}, // __builtin_ia32_extrq
+      {Intrinsic::x86_sse4a_extrqi, 128604}, // __builtin_ia32_extrqi
+      {Intrinsic::x86_mmx_femms, 122820}, // __builtin_ia32_femms
+      {Intrinsic::x86_avx512_mask_fixupimm_pd_128, 108503}, // __builtin_ia32_fixupimmpd128_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_pd_128, 115205}, // __builtin_ia32_fixupimmpd128_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_pd_256, 108537}, // __builtin_ia32_fixupimmpd256_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_pd_256, 115240}, // __builtin_ia32_fixupimmpd256_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_pd_512, 108571}, // __builtin_ia32_fixupimmpd512_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_pd_512, 115275}, // __builtin_ia32_fixupimmpd512_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_ps_128, 108605}, // __builtin_ia32_fixupimmps128_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_ps_128, 115310}, // __builtin_ia32_fixupimmps128_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_ps_256, 108639}, // __builtin_ia32_fixupimmps256_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_ps_256, 115345}, // __builtin_ia32_fixupimmps256_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_ps_512, 108673}, // __builtin_ia32_fixupimmps512_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_ps_512, 115380}, // __builtin_ia32_fixupimmps512_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_sd, 108707}, // __builtin_ia32_fixupimmsd_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_sd, 115415}, // __builtin_ia32_fixupimmsd_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_ss, 108738}, // __builtin_ia32_fixupimmss_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_ss, 115447}, // __builtin_ia32_fixupimmss_maskz
+      {Intrinsic::x86_avx512_mask_fpclass_sd, 108769}, // __builtin_ia32_fpclasssd_mask
+      {Intrinsic::x86_avx512_mask_fpclass_ss, 108799}, // __builtin_ia32_fpclassss_mask
+      {Intrinsic::x86_fxrstor, 122519}, // __builtin_ia32_fxrstor
+      {Intrinsic::x86_fxrstor64, 122542}, // __builtin_ia32_fxrstor64
+      {Intrinsic::x86_fxsave, 122567}, // __builtin_ia32_fxsave
+      {Intrinsic::x86_fxsave64, 122589}, // __builtin_ia32_fxsave64
+      {Intrinsic::x86_avx512_gather3div2_df, 104400}, // __builtin_ia32_gather3div2df
+      {Intrinsic::x86_avx512_gather3div2_di, 104429}, // __builtin_ia32_gather3div2di
+      {Intrinsic::x86_avx512_gather3div4_df, 104458}, // __builtin_ia32_gather3div4df
+      {Intrinsic::x86_avx512_gather3div4_di, 104487}, // __builtin_ia32_gather3div4di
+      {Intrinsic::x86_avx512_gather3div4_sf, 104516}, // __builtin_ia32_gather3div4sf
+      {Intrinsic::x86_avx512_gather3div4_si, 104545}, // __builtin_ia32_gather3div4si
+      {Intrinsic::x86_avx512_gather3div8_sf, 104574}, // __builtin_ia32_gather3div8sf
+      {Intrinsic::x86_avx512_gather3div8_si, 104603}, // __builtin_ia32_gather3div8si
+      {Intrinsic::x86_avx512_gather3siv2_df, 104632}, // __builtin_ia32_gather3siv2df
+      {Intrinsic::x86_avx512_gather3siv2_di, 104661}, // __builtin_ia32_gather3siv2di
+      {Intrinsic::x86_avx512_gather3siv4_df, 104690}, // __builtin_ia32_gather3siv4df
+      {Intrinsic::x86_avx512_gather3siv4_di, 104719}, // __builtin_ia32_gather3siv4di
+      {Intrinsic::x86_avx512_gather3siv4_sf, 104748}, // __builtin_ia32_gather3siv4sf
+      {Intrinsic::x86_avx512_gather3siv4_si, 104777}, // __builtin_ia32_gather3siv4si
+      {Intrinsic::x86_avx512_gather3siv8_sf, 104806}, // __builtin_ia32_gather3siv8sf
+      {Intrinsic::x86_avx512_gather3siv8_si, 104835}, // __builtin_ia32_gather3siv8si
+      {Intrinsic::x86_avx2_gather_d_d, 101237}, // __builtin_ia32_gatherd_d
+      {Intrinsic::x86_avx2_gather_d_d_256, 101262}, // __builtin_ia32_gatherd_d256
+      {Intrinsic::x86_avx2_gather_d_pd, 101290}, // __builtin_ia32_gatherd_pd
+      {Intrinsic::x86_avx2_gather_d_pd_256, 101316}, // __builtin_ia32_gatherd_pd256
+      {Intrinsic::x86_avx2_gather_d_ps, 101345}, // __builtin_ia32_gatherd_ps
+      {Intrinsic::x86_avx2_gather_d_ps_256, 101371}, // __builtin_ia32_gatherd_ps256
+      {Intrinsic::x86_avx2_gather_d_q, 101400}, // __builtin_ia32_gatherd_q
+      {Intrinsic::x86_avx2_gather_d_q_256, 101425}, // __builtin_ia32_gatherd_q256
+      {Intrinsic::x86_avx512_gather_qps_512, 104371}, // __builtin_ia32_gatherdiv16sf
+      {Intrinsic::x86_avx512_gather_qpi_512, 104314}, // __builtin_ia32_gatherdiv16si
+      {Intrinsic::x86_avx512_gather_qpd_512, 104286}, // __builtin_ia32_gatherdiv8df
+      {Intrinsic::x86_avx512_gather_qpq_512, 104343}, // __builtin_ia32_gatherdiv8di
+      {Intrinsic::x86_avx512_gatherpf_dpd_512, 104864}, // __builtin_ia32_gatherpfdpd
+      {Intrinsic::x86_avx512_gatherpf_dps_512, 104891}, // __builtin_ia32_gatherpfdps
+      {Intrinsic::x86_avx512_gatherpf_qpd_512, 104918}, // __builtin_ia32_gatherpfqpd
+      {Intrinsic::x86_avx512_gatherpf_qps_512, 104945}, // __builtin_ia32_gatherpfqps
+      {Intrinsic::x86_avx2_gather_q_d, 101453}, // __builtin_ia32_gatherq_d
+      {Intrinsic::x86_avx2_gather_q_d_256, 101478}, // __builtin_ia32_gatherq_d256
+      {Intrinsic::x86_avx2_gather_q_pd, 101506}, // __builtin_ia32_gatherq_pd
+      {Intrinsic::x86_avx2_gather_q_pd_256, 101532}, // __builtin_ia32_gatherq_pd256
+      {Intrinsic::x86_avx2_gather_q_ps, 101561}, // __builtin_ia32_gatherq_ps
+      {Intrinsic::x86_avx2_gather_q_ps_256, 101587}, // __builtin_ia32_gatherq_ps256
+      {Intrinsic::x86_avx2_gather_q_q, 101616}, // __builtin_ia32_gatherq_q
+      {Intrinsic::x86_avx2_gather_q_q_256, 101641}, // __builtin_ia32_gatherq_q256
+      {Intrinsic::x86_avx512_gather_dps_512, 104257}, // __builtin_ia32_gathersiv16sf
+      {Intrinsic::x86_avx512_gather_dpi_512, 104200}, // __builtin_ia32_gathersiv16si
+      {Intrinsic::x86_avx512_gather_dpd_512, 104172}, // __builtin_ia32_gathersiv8df
+      {Intrinsic::x86_avx512_gather_dpq_512, 104229}, // __builtin_ia32_gathersiv8di
+      {Intrinsic::x86_avx512_mask_getexp_pd_128, 108829}, // __builtin_ia32_getexppd128_mask
+      {Intrinsic::x86_avx512_mask_getexp_pd_256, 108861}, // __builtin_ia32_getexppd256_mask
+      {Intrinsic::x86_avx512_mask_getexp_pd_512, 108893}, // __builtin_ia32_getexppd512_mask
+      {Intrinsic::x86_avx512_mask_getexp_ps_128, 108925}, // __builtin_ia32_getexpps128_mask
+      {Intrinsic::x86_avx512_mask_getexp_ps_256, 108957}, // __builtin_ia32_getexpps256_mask
+      {Intrinsic::x86_avx512_mask_getexp_ps_512, 108989}, // __builtin_ia32_getexpps512_mask
+      {Intrinsic::x86_avx512_mask_getexp_sd, 109021}, // __builtin_ia32_getexpsd128_round_mask
+      {Intrinsic::x86_avx512_mask_getexp_ss, 109059}, // __builtin_ia32_getexpss128_round_mask
+      {Intrinsic::x86_avx512_mask_getmant_pd_128, 109097}, // __builtin_ia32_getmantpd128_mask
+      {Intrinsic::x86_avx512_mask_getmant_pd_256, 109130}, // __builtin_ia32_getmantpd256_mask
+      {Intrinsic::x86_avx512_mask_getmant_pd_512, 109163}, // __builtin_ia32_getmantpd512_mask
+      {Intrinsic::x86_avx512_mask_getmant_ps_128, 109196}, // __builtin_ia32_getmantps128_mask
+      {Intrinsic::x86_avx512_mask_getmant_ps_256, 109229}, // __builtin_ia32_getmantps256_mask
+      {Intrinsic::x86_avx512_mask_getmant_ps_512, 109262}, // __builtin_ia32_getmantps512_mask
+      {Intrinsic::x86_avx512_mask_getmant_sd, 109295}, // __builtin_ia32_getmantsd_round_mask
+      {Intrinsic::x86_avx512_mask_getmant_ss, 109331}, // __builtin_ia32_getmantss_round_mask
+      {Intrinsic::x86_sse3_hadd_pd, 127543}, // __builtin_ia32_haddpd
+      {Intrinsic::x86_avx_hadd_pd_256, 100078}, // __builtin_ia32_haddpd256
+      {Intrinsic::x86_sse3_hadd_ps, 127565}, // __builtin_ia32_haddps
+      {Intrinsic::x86_avx_hadd_ps_256, 100103}, // __builtin_ia32_haddps256
+      {Intrinsic::x86_sse3_hsub_pd, 127587}, // __builtin_ia32_hsubpd
+      {Intrinsic::x86_avx_hsub_pd_256, 100128}, // __builtin_ia32_hsubpd256
+      {Intrinsic::x86_sse3_hsub_ps, 127609}, // __builtin_ia32_hsubps
+      {Intrinsic::x86_avx_hsub_ps_256, 100153}, // __builtin_ia32_hsubps256
+      {Intrinsic::x86_incsspd, 122613}, // __builtin_ia32_incsspd
+      {Intrinsic::x86_incsspq, 122636}, // __builtin_ia32_incsspq
+      {Intrinsic::x86_sse41_insertps, 127784}, // __builtin_ia32_insertps128
+      {Intrinsic::x86_sse4a_insertq, 128626}, // __builtin_ia32_insertq
+      {Intrinsic::x86_sse4a_insertqi, 128649}, // __builtin_ia32_insertqi
+      {Intrinsic::x86_invpcid, 122659}, // __builtin_ia32_invpcid
+      {Intrinsic::x86_sse3_ldu_dq, 127631}, // __builtin_ia32_lddqu
+      {Intrinsic::x86_avx_ldu_dq_256, 100178}, // __builtin_ia32_lddqu256
+      {Intrinsic::x86_sse2_lfence, 126339}, // __builtin_ia32_lfence
+      {Intrinsic::x86_llwpcb, 122682}, // __builtin_ia32_llwpcb
+      {Intrinsic::x86_lwpins32, 122704}, // __builtin_ia32_lwpins32
+      {Intrinsic::x86_lwpins64, 122728}, // __builtin_ia32_lwpins64
+      {Intrinsic::x86_lwpval32, 122752}, // __builtin_ia32_lwpval32
+      {Intrinsic::x86_lwpval64, 122776}, // __builtin_ia32_lwpval64
+      {Intrinsic::x86_avx2_maskload_d, 101669}, // __builtin_ia32_maskloadd
+      {Intrinsic::x86_avx2_maskload_d_256, 101694}, // __builtin_ia32_maskloadd256
+      {Intrinsic::x86_avx_maskload_pd, 100202}, // __builtin_ia32_maskloadpd
+      {Intrinsic::x86_avx_maskload_pd_256, 100228}, // __builtin_ia32_maskloadpd256
+      {Intrinsic::x86_avx_maskload_ps, 100257}, // __builtin_ia32_maskloadps
+      {Intrinsic::x86_avx_maskload_ps_256, 100283}, // __builtin_ia32_maskloadps256
+      {Intrinsic::x86_avx2_maskload_q, 101722}, // __builtin_ia32_maskloadq
+      {Intrinsic::x86_avx2_maskload_q_256, 101747}, // __builtin_ia32_maskloadq256
+      {Intrinsic::x86_sse2_maskmov_dqu, 126361}, // __builtin_ia32_maskmovdqu
+      {Intrinsic::x86_mmx_maskmovq, 122841}, // __builtin_ia32_maskmovq
+      {Intrinsic::x86_avx2_maskstore_d, 101775}, // __builtin_ia32_maskstored
+      {Intrinsic::x86_avx2_maskstore_d_256, 101801}, // __builtin_ia32_maskstored256
+      {Intrinsic::x86_avx_maskstore_pd, 100312}, // __builtin_ia32_maskstorepd
+      {Intrinsic::x86_avx_maskstore_pd_256, 100339}, // __builtin_ia32_maskstorepd256
+      {Intrinsic::x86_avx_maskstore_ps, 100369}, // __builtin_ia32_maskstoreps
+      {Intrinsic::x86_avx_maskstore_ps_256, 100396}, // __builtin_ia32_maskstoreps256
+      {Intrinsic::x86_avx2_maskstore_q, 101830}, // __builtin_ia32_maskstoreq
+      {Intrinsic::x86_avx2_maskstore_q_256, 101856}, // __builtin_ia32_maskstoreq256
+      {Intrinsic::x86_sse2_max_pd, 126387}, // __builtin_ia32_maxpd
+      {Intrinsic::x86_avx_max_pd_256, 100426}, // __builtin_ia32_maxpd256
+      {Intrinsic::x86_avx512_max_pd_512, 116073}, // __builtin_ia32_maxpd512
+      {Intrinsic::x86_sse_max_ps, 125523}, // __builtin_ia32_maxps
+      {Intrinsic::x86_avx_max_ps_256, 100450}, // __builtin_ia32_maxps256
+      {Intrinsic::x86_avx512_max_ps_512, 116097}, // __builtin_ia32_maxps512
+      {Intrinsic::x86_sse2_max_sd, 126408}, // __builtin_ia32_maxsd
+      {Intrinsic::x86_avx512_mask_max_sd_round, 109367}, // __builtin_ia32_maxsd_round_mask
+      {Intrinsic::x86_sse_max_ss, 125544}, // __builtin_ia32_maxss
+      {Intrinsic::x86_avx512_mask_max_ss_round, 109399}, // __builtin_ia32_maxss_round_mask
+      {Intrinsic::x86_sse2_mfence, 126429}, // __builtin_ia32_mfence
+      {Intrinsic::x86_sse2_min_pd, 126451}, // __builtin_ia32_minpd
+      {Intrinsic::x86_avx_min_pd_256, 100474}, // __builtin_ia32_minpd256
+      {Intrinsic::x86_avx512_min_pd_512, 116121}, // __builtin_ia32_minpd512
+      {Intrinsic::x86_sse_min_ps, 125565}, // __builtin_ia32_minps
+      {Intrinsic::x86_avx_min_ps_256, 100498}, // __builtin_ia32_minps256
+      {Intrinsic::x86_avx512_min_ps_512, 116145}, // __builtin_ia32_minps512
+      {Intrinsic::x86_sse2_min_sd, 126472}, // __builtin_ia32_minsd
+      {Intrinsic::x86_avx512_mask_min_sd_round, 109431}, // __builtin_ia32_minsd_round_mask
+      {Intrinsic::x86_sse_min_ss, 125586}, // __builtin_ia32_minss
+      {Intrinsic::x86_avx512_mask_min_ss_round, 109463}, // __builtin_ia32_minss_round_mask
+      {Intrinsic::x86_sse3_monitor, 127652}, // __builtin_ia32_monitor
+      {Intrinsic::x86_monitorx, 124387}, // __builtin_ia32_monitorx
+      {Intrinsic::x86_movdir64b, 124411}, // __builtin_ia32_movdir64b
+      {Intrinsic::x86_sse2_movmsk_pd, 126493}, // __builtin_ia32_movmskpd
+      {Intrinsic::x86_avx_movmsk_pd_256, 100522}, // __builtin_ia32_movmskpd256
+      {Intrinsic::x86_sse_movmsk_ps, 125607}, // __builtin_ia32_movmskps
+      {Intrinsic::x86_avx_movmsk_ps_256, 100549}, // __builtin_ia32_movmskps256
+      {Intrinsic::x86_mmx_movnt_dq, 122865}, // __builtin_ia32_movntq
+      {Intrinsic::x86_sse41_mpsadbw, 127811}, // __builtin_ia32_mpsadbw128
+      {Intrinsic::x86_avx2_mpsadbw, 101885}, // __builtin_ia32_mpsadbw256
+      {Intrinsic::x86_avx512_mul_pd_512, 116169}, // __builtin_ia32_mulpd512
+      {Intrinsic::x86_avx512_mul_ps_512, 116193}, // __builtin_ia32_mulps512
+      {Intrinsic::x86_avx512_mask_mul_sd_round, 109495}, // __builtin_ia32_mulsd_round_mask
+      {Intrinsic::x86_avx512_mask_mul_ss_round, 109527}, // __builtin_ia32_mulss_round_mask
+      {Intrinsic::x86_sse3_mwait, 127675}, // __builtin_ia32_mwait
+      {Intrinsic::x86_mwaitx, 124436}, // __builtin_ia32_mwaitx
+      {Intrinsic::x86_ssse3_pabs_b, 128673}, // __builtin_ia32_pabsb
+      {Intrinsic::x86_ssse3_pabs_d, 128694}, // __builtin_ia32_pabsd
+      {Intrinsic::x86_ssse3_pabs_w, 128715}, // __builtin_ia32_pabsw
+      {Intrinsic::x86_mmx_packssdw, 122887}, // __builtin_ia32_packssdw
+      {Intrinsic::x86_sse2_packssdw_128, 126517}, // __builtin_ia32_packssdw128
+      {Intrinsic::x86_avx2_packssdw, 101911}, // __builtin_ia32_packssdw256
+      {Intrinsic::x86_avx512_packssdw_512, 116217}, // __builtin_ia32_packssdw512
+      {Intrinsic::x86_mmx_packsswb, 122911}, // __builtin_ia32_packsswb
+      {Intrinsic::x86_sse2_packsswb_128, 126544}, // __builtin_ia32_packsswb128
+      {Intrinsic::x86_avx2_packsswb, 101938}, // __builtin_ia32_packsswb256
+      {Intrinsic::x86_avx512_packsswb_512, 116244}, // __builtin_ia32_packsswb512
+      {Intrinsic::x86_sse41_packusdw, 127837}, // __builtin_ia32_packusdw128
+      {Intrinsic::x86_avx2_packusdw, 101965}, // __builtin_ia32_packusdw256
+      {Intrinsic::x86_avx512_packusdw_512, 116271}, // __builtin_ia32_packusdw512
+      {Intrinsic::x86_mmx_packuswb, 122935}, // __builtin_ia32_packuswb
+      {Intrinsic::x86_sse2_packuswb_128, 126571}, // __builtin_ia32_packuswb128
+      {Intrinsic::x86_avx2_packuswb, 101992}, // __builtin_ia32_packuswb256
+      {Intrinsic::x86_avx512_packuswb_512, 116298}, // __builtin_ia32_packuswb512
+      {Intrinsic::x86_mmx_padd_b, 122959}, // __builtin_ia32_paddb
+      {Intrinsic::x86_mmx_padd_d, 122980}, // __builtin_ia32_paddd
+      {Intrinsic::x86_mmx_padd_q, 123001}, // __builtin_ia32_paddq
+      {Intrinsic::x86_mmx_padds_b, 123043}, // __builtin_ia32_paddsb
+      {Intrinsic::x86_sse2_padds_b, 126598}, // __builtin_ia32_paddsb128
+      {Intrinsic::x86_avx2_padds_b, 102019}, // __builtin_ia32_paddsb256
+      {Intrinsic::x86_avx512_mask_padds_b_512, 109559}, // __builtin_ia32_paddsb512_mask
+      {Intrinsic::x86_mmx_padds_w, 123065}, // __builtin_ia32_paddsw
+      {Intrinsic::x86_sse2_padds_w, 126623}, // __builtin_ia32_paddsw128
+      {Intrinsic::x86_avx2_padds_w, 102044}, // __builtin_ia32_paddsw256
+      {Intrinsic::x86_avx512_mask_padds_w_512, 109589}, // __builtin_ia32_paddsw512_mask
+      {Intrinsic::x86_mmx_paddus_b, 123087}, // __builtin_ia32_paddusb
+      {Intrinsic::x86_sse2_paddus_b, 126648}, // __builtin_ia32_paddusb128
+      {Intrinsic::x86_avx2_paddus_b, 102069}, // __builtin_ia32_paddusb256
+      {Intrinsic::x86_avx512_mask_paddus_b_512, 109619}, // __builtin_ia32_paddusb512_mask
+      {Intrinsic::x86_mmx_paddus_w, 123110}, // __builtin_ia32_paddusw
+      {Intrinsic::x86_sse2_paddus_w, 126674}, // __builtin_ia32_paddusw128
+      {Intrinsic::x86_avx2_paddus_w, 102095}, // __builtin_ia32_paddusw256
+      {Intrinsic::x86_avx512_mask_paddus_w_512, 109650}, // __builtin_ia32_paddusw512_mask
+      {Intrinsic::x86_mmx_padd_w, 123022}, // __builtin_ia32_paddw
+      {Intrinsic::x86_mmx_palignr_b, 123133}, // __builtin_ia32_palignr
+      {Intrinsic::x86_mmx_pand, 123156}, // __builtin_ia32_pand
+      {Intrinsic::x86_mmx_pandn, 123176}, // __builtin_ia32_pandn
+      {Intrinsic::x86_sse2_pause, 126700}, // __builtin_ia32_pause
+      {Intrinsic::x86_mmx_pavg_b, 123197}, // __builtin_ia32_pavgb
+      {Intrinsic::x86_3dnow_pavgusb, 98805}, // __builtin_ia32_pavgusb
+      {Intrinsic::x86_mmx_pavg_w, 123218}, // __builtin_ia32_pavgw
+      {Intrinsic::x86_sse41_pblendvb, 127864}, // __builtin_ia32_pblendvb128
+      {Intrinsic::x86_avx2_pblendvb, 102121}, // __builtin_ia32_pblendvb256
+      {Intrinsic::x86_pclmulqdq, 124458}, // __builtin_ia32_pclmulqdq128
+      {Intrinsic::x86_pclmulqdq_256, 124486}, // __builtin_ia32_pclmulqdq256
+      {Intrinsic::x86_pclmulqdq_512, 124514}, // __builtin_ia32_pclmulqdq512
+      {Intrinsic::x86_mmx_pcmpeq_b, 123239}, // __builtin_ia32_pcmpeqb
+      {Intrinsic::x86_mmx_pcmpeq_d, 123262}, // __builtin_ia32_pcmpeqd
+      {Intrinsic::x86_mmx_pcmpeq_w, 123285}, // __builtin_ia32_pcmpeqw
+      {Intrinsic::x86_sse42_pcmpestri128, 128181}, // __builtin_ia32_pcmpestri128
+      {Intrinsic::x86_sse42_pcmpestria128, 128209}, // __builtin_ia32_pcmpestria128
+      {Intrinsic::x86_sse42_pcmpestric128, 128238}, // __builtin_ia32_pcmpestric128
+      {Intrinsic::x86_sse42_pcmpestrio128, 128267}, // __builtin_ia32_pcmpestrio128
+      {Intrinsic::x86_sse42_pcmpestris128, 128296}, // __builtin_ia32_pcmpestris128
+      {Intrinsic::x86_sse42_pcmpestriz128, 128325}, // __builtin_ia32_pcmpestriz128
+      {Intrinsic::x86_sse42_pcmpestrm128, 128354}, // __builtin_ia32_pcmpestrm128
+      {Intrinsic::x86_mmx_pcmpgt_b, 123308}, // __builtin_ia32_pcmpgtb
+      {Intrinsic::x86_mmx_pcmpgt_d, 123331}, // __builtin_ia32_pcmpgtd
+      {Intrinsic::x86_mmx_pcmpgt_w, 123354}, // __builtin_ia32_pcmpgtw
+      {Intrinsic::x86_sse42_pcmpistri128, 128382}, // __builtin_ia32_pcmpistri128
+      {Intrinsic::x86_sse42_pcmpistria128, 128410}, // __builtin_ia32_pcmpistria128
+      {Intrinsic::x86_sse42_pcmpistric128, 128439}, // __builtin_ia32_pcmpistric128
+      {Intrinsic::x86_sse42_pcmpistrio128, 128468}, // __builtin_ia32_pcmpistrio128
+      {Intrinsic::x86_sse42_pcmpistris128, 128497}, // __builtin_ia32_pcmpistris128
+      {Intrinsic::x86_sse42_pcmpistriz128, 128526}, // __builtin_ia32_pcmpistriz128
+      {Intrinsic::x86_sse42_pcmpistrm128, 128555}, // __builtin_ia32_pcmpistrm128
+      {Intrinsic::x86_bmi_pdep_64, 122150}, // __builtin_ia32_pdep_di
+      {Intrinsic::x86_bmi_pdep_32, 122127}, // __builtin_ia32_pdep_si
+      {Intrinsic::x86_avx512_permvar_df_256, 116325}, // __builtin_ia32_permvardf256
+      {Intrinsic::x86_avx512_permvar_df_512, 116353}, // __builtin_ia32_permvardf512
+      {Intrinsic::x86_avx512_permvar_di_256, 116381}, // __builtin_ia32_permvardi256
+      {Intrinsic::x86_avx512_permvar_di_512, 116409}, // __builtin_ia32_permvardi512
+      {Intrinsic::x86_avx512_permvar_hi_128, 116437}, // __builtin_ia32_permvarhi128
+      {Intrinsic::x86_avx512_permvar_hi_256, 116465}, // __builtin_ia32_permvarhi256
+      {Intrinsic::x86_avx512_permvar_hi_512, 116493}, // __builtin_ia32_permvarhi512
+      {Intrinsic::x86_avx512_permvar_qi_128, 116521}, // __builtin_ia32_permvarqi128
+      {Intrinsic::x86_avx512_permvar_qi_256, 116549}, // __builtin_ia32_permvarqi256
+      {Intrinsic::x86_avx512_permvar_qi_512, 116577}, // __builtin_ia32_permvarqi512
+      {Intrinsic::x86_avx2_permps, 102176}, // __builtin_ia32_permvarsf256
+      {Intrinsic::x86_avx512_permvar_sf_512, 116605}, // __builtin_ia32_permvarsf512
+      {Intrinsic::x86_avx2_permd, 102148}, // __builtin_ia32_permvarsi256
+      {Intrinsic::x86_avx512_permvar_si_512, 116633}, // __builtin_ia32_permvarsi512
+      {Intrinsic::x86_bmi_pext_64, 122196}, // __builtin_ia32_pext_di
+      {Intrinsic::x86_bmi_pext_32, 122173}, // __builtin_ia32_pext_si
+      {Intrinsic::x86_3dnow_pf2id, 98828}, // __builtin_ia32_pf2id
+      {Intrinsic::x86_3dnowa_pf2iw, 99226}, // __builtin_ia32_pf2iw
+      {Intrinsic::x86_3dnow_pfacc, 98849}, // __builtin_ia32_pfacc
+      {Intrinsic::x86_3dnow_pfadd, 98870}, // __builtin_ia32_pfadd
+      {Intrinsic::x86_3dnow_pfcmpeq, 98891}, // __builtin_ia32_pfcmpeq
+      {Intrinsic::x86_3dnow_pfcmpge, 98914}, // __builtin_ia32_pfcmpge
+      {Intrinsic::x86_3dnow_pfcmpgt, 98937}, // __builtin_ia32_pfcmpgt
+      {Intrinsic::x86_3dnow_pfmax, 98960}, // __builtin_ia32_pfmax
+      {Intrinsic::x86_3dnow_pfmin, 98981}, // __builtin_ia32_pfmin
+      {Intrinsic::x86_3dnow_pfmul, 99002}, // __builtin_ia32_pfmul
+      {Intrinsic::x86_3dnowa_pfnacc, 99247}, // __builtin_ia32_pfnacc
+      {Intrinsic::x86_3dnowa_pfpnacc, 99269}, // __builtin_ia32_pfpnacc
+      {Intrinsic::x86_3dnow_pfrcp, 99023}, // __builtin_ia32_pfrcp
+      {Intrinsic::x86_3dnow_pfrcpit1, 99044}, // __builtin_ia32_pfrcpit1
+      {Intrinsic::x86_3dnow_pfrcpit2, 99068}, // __builtin_ia32_pfrcpit2
+      {Intrinsic::x86_3dnow_pfrsqit1, 99092}, // __builtin_ia32_pfrsqit1
+      {Intrinsic::x86_3dnow_pfrsqrt, 99116}, // __builtin_ia32_pfrsqrt
+      {Intrinsic::x86_3dnow_pfsub, 99139}, // __builtin_ia32_pfsub
+      {Intrinsic::x86_3dnow_pfsubr, 99160}, // __builtin_ia32_pfsubr
+      {Intrinsic::x86_ssse3_phadd_d, 128736}, // __builtin_ia32_phaddd
+      {Intrinsic::x86_ssse3_phadd_d_128, 128758}, // __builtin_ia32_phaddd128
+      {Intrinsic::x86_avx2_phadd_d, 102204}, // __builtin_ia32_phaddd256
+      {Intrinsic::x86_ssse3_phadd_sw, 128783}, // __builtin_ia32_phaddsw
+      {Intrinsic::x86_ssse3_phadd_sw_128, 128806}, // __builtin_ia32_phaddsw128
+      {Intrinsic::x86_avx2_phadd_sw, 102229}, // __builtin_ia32_phaddsw256
+      {Intrinsic::x86_ssse3_phadd_w, 128832}, // __builtin_ia32_phaddw
+      {Intrinsic::x86_ssse3_phadd_w_128, 128854}, // __builtin_ia32_phaddw128
+      {Intrinsic::x86_avx2_phadd_w, 102255}, // __builtin_ia32_phaddw256
+      {Intrinsic::x86_sse41_phminposuw, 127891}, // __builtin_ia32_phminposuw128
+      {Intrinsic::x86_ssse3_phsub_d, 128879}, // __builtin_ia32_phsubd
+      {Intrinsic::x86_ssse3_phsub_d_128, 128901}, // __builtin_ia32_phsubd128
+      {Intrinsic::x86_avx2_phsub_d, 102280}, // __builtin_ia32_phsubd256
+      {Intrinsic::x86_ssse3_phsub_sw, 128926}, // __builtin_ia32_phsubsw
+      {Intrinsic::x86_ssse3_phsub_sw_128, 128949}, // __builtin_ia32_phsubsw128
+      {Intrinsic::x86_avx2_phsub_sw, 102305}, // __builtin_ia32_phsubsw256
+      {Intrinsic::x86_ssse3_phsub_w, 128975}, // __builtin_ia32_phsubw
+      {Intrinsic::x86_ssse3_phsub_w_128, 128997}, // __builtin_ia32_phsubw128
+      {Intrinsic::x86_avx2_phsub_w, 102331}, // __builtin_ia32_phsubw256
+      {Intrinsic::x86_3dnow_pi2fd, 99182}, // __builtin_ia32_pi2fd
+      {Intrinsic::x86_3dnowa_pi2fw, 99292}, // __builtin_ia32_pi2fw
+      {Intrinsic::x86_ssse3_pmadd_ub_sw, 129022}, // __builtin_ia32_pmaddubsw
+      {Intrinsic::x86_ssse3_pmadd_ub_sw_128, 129047}, // __builtin_ia32_pmaddubsw128
+      {Intrinsic::x86_avx2_pmadd_ub_sw, 102356}, // __builtin_ia32_pmaddubsw256
+      {Intrinsic::x86_avx512_pmaddubs_w_512, 116661}, // __builtin_ia32_pmaddubsw512
+      {Intrinsic::x86_mmx_pmadd_wd, 123433}, // __builtin_ia32_pmaddwd
+      {Intrinsic::x86_sse2_pmadd_wd, 126721}, // __builtin_ia32_pmaddwd128
+      {Intrinsic::x86_avx2_pmadd_wd, 102384}, // __builtin_ia32_pmaddwd256
+      {Intrinsic::x86_avx512_pmaddw_d_512, 116689}, // __builtin_ia32_pmaddwd512
+      {Intrinsic::x86_mmx_pmaxs_w, 123456}, // __builtin_ia32_pmaxsw
+      {Intrinsic::x86_mmx_pmaxu_b, 123478}, // __builtin_ia32_pmaxub
+      {Intrinsic::x86_mmx_pmins_w, 123500}, // __builtin_ia32_pminsw
+      {Intrinsic::x86_mmx_pminu_b, 123522}, // __builtin_ia32_pminub
+      {Intrinsic::x86_avx512_mask_pmov_db_128, 109681}, // __builtin_ia32_pmovdb128_mask
+      {Intrinsic::x86_avx512_mask_pmov_db_mem_128, 109741}, // __builtin_ia32_pmovdb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_db_256, 109711}, // __builtin_ia32_pmovdb256_mask
+      {Intrinsic::x86_avx512_mask_pmov_db_mem_256, 109774}, // __builtin_ia32_pmovdb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_db_mem_512, 109807}, // __builtin_ia32_pmovdb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_128, 109840}, // __builtin_ia32_pmovdw128_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_mem_128, 109900}, // __builtin_ia32_pmovdw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_256, 109870}, // __builtin_ia32_pmovdw256_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_mem_256, 109933}, // __builtin_ia32_pmovdw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_mem_512, 109966}, // __builtin_ia32_pmovdw512mem_mask
+      {Intrinsic::x86_mmx_pmovmskb, 123544}, // __builtin_ia32_pmovmskb
+      {Intrinsic::x86_sse2_pmovmskb_128, 126747}, // __builtin_ia32_pmovmskb128
+      {Intrinsic::x86_avx2_pmovmskb, 102410}, // __builtin_ia32_pmovmskb256
+      {Intrinsic::x86_avx512_mask_pmov_qb_128, 109999}, // __builtin_ia32_pmovqb128_mask
+      {Intrinsic::x86_avx512_mask_pmov_qb_mem_128, 110089}, // __builtin_ia32_pmovqb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qb_256, 110029}, // __builtin_ia32_pmovqb256_mask
+      {Intrinsic::x86_avx512_mask_pmov_qb_mem_256, 110122}, // __builtin_ia32_pmovqb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qb_512, 110059}, // __builtin_ia32_pmovqb512_mask
+      {Intrinsic::x86_avx512_mask_pmov_qb_mem_512, 110155}, // __builtin_ia32_pmovqb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qd_128, 110188}, // __builtin_ia32_pmovqd128_mask
+      {Intrinsic::x86_avx512_mask_pmov_qd_mem_128, 110218}, // __builtin_ia32_pmovqd128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qd_mem_256, 110251}, // __builtin_ia32_pmovqd256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qd_mem_512, 110284}, // __builtin_ia32_pmovqd512mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_128, 110317}, // __builtin_ia32_pmovqw128_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_mem_128, 110377}, // __builtin_ia32_pmovqw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_256, 110347}, // __builtin_ia32_pmovqw256_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_mem_256, 110410}, // __builtin_ia32_pmovqw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_mem_512, 110443}, // __builtin_ia32_pmovqw512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_128, 110605}, // __builtin_ia32_pmovsdb128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_mem_128, 110698}, // __builtin_ia32_pmovsdb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_256, 110636}, // __builtin_ia32_pmovsdb256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_mem_256, 110732}, // __builtin_ia32_pmovsdb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_512, 110667}, // __builtin_ia32_pmovsdb512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_mem_512, 110766}, // __builtin_ia32_pmovsdb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_128, 110800}, // __builtin_ia32_pmovsdw128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_128, 110893}, // __builtin_ia32_pmovsdw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_256, 110831}, // __builtin_ia32_pmovsdw256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_256, 110927}, // __builtin_ia32_pmovsdw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_512, 110862}, // __builtin_ia32_pmovsdw512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_512, 110961}, // __builtin_ia32_pmovsdw512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_128, 110995}, // __builtin_ia32_pmovsqb128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_128, 111088}, // __builtin_ia32_pmovsqb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_256, 111026}, // __builtin_ia32_pmovsqb256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_256, 111122}, // __builtin_ia32_pmovsqb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_512, 111057}, // __builtin_ia32_pmovsqb512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_512, 111156}, // __builtin_ia32_pmovsqb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_128, 111190}, // __builtin_ia32_pmovsqd128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_128, 111283}, // __builtin_ia32_pmovsqd128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_256, 111221}, // __builtin_ia32_pmovsqd256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_256, 111317}, // __builtin_ia32_pmovsqd256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_512, 111252}, // __builtin_ia32_pmovsqd512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_512, 111351}, // __builtin_ia32_pmovsqd512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_128, 111385}, // __builtin_ia32_pmovsqw128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_128, 111478}, // __builtin_ia32_pmovsqw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_256, 111416}, // __builtin_ia32_pmovsqw256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_256, 111512}, // __builtin_ia32_pmovsqw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_512, 111447}, // __builtin_ia32_pmovsqw512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_512, 111546}, // __builtin_ia32_pmovsqw512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_128, 111580}, // __builtin_ia32_pmovswb128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_128, 111673}, // __builtin_ia32_pmovswb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_256, 111611}, // __builtin_ia32_pmovswb256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_256, 111707}, // __builtin_ia32_pmovswb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_512, 111642}, // __builtin_ia32_pmovswb512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_512, 111741}, // __builtin_ia32_pmovswb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_128, 111775}, // __builtin_ia32_pmovusdb128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_mem_128, 111871}, // __builtin_ia32_pmovusdb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_256, 111807}, // __builtin_ia32_pmovusdb256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_mem_256, 111906}, // __builtin_ia32_pmovusdb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_512, 111839}, // __builtin_ia32_pmovusdb512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_mem_512, 111941}, // __builtin_ia32_pmovusdb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_128, 111976}, // __builtin_ia32_pmovusdw128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_128, 112072}, // __builtin_ia32_pmovusdw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_256, 112008}, // __builtin_ia32_pmovusdw256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_256, 112107}, // __builtin_ia32_pmovusdw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_512, 112040}, // __builtin_ia32_pmovusdw512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_512, 112142}, // __builtin_ia32_pmovusdw512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_128, 112177}, // __builtin_ia32_pmovusqb128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_128, 112273}, // __builtin_ia32_pmovusqb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_256, 112209}, // __builtin_ia32_pmovusqb256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_256, 112308}, // __builtin_ia32_pmovusqb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_512, 112241}, // __builtin_ia32_pmovusqb512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_512, 112343}, // __builtin_ia32_pmovusqb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_128, 112378}, // __builtin_ia32_pmovusqd128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_128, 112474}, // __builtin_ia32_pmovusqd128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_256, 112410}, // __builtin_ia32_pmovusqd256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_256, 112509}, // __builtin_ia32_pmovusqd256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_512, 112442}, // __builtin_ia32_pmovusqd512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_512, 112544}, // __builtin_ia32_pmovusqd512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_128, 112579}, // __builtin_ia32_pmovusqw128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_128, 112675}, // __builtin_ia32_pmovusqw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_256, 112611}, // __builtin_ia32_pmovusqw256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_256, 112710}, // __builtin_ia32_pmovusqw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_512, 112643}, // __builtin_ia32_pmovusqw512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_512, 112745}, // __builtin_ia32_pmovusqw512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_128, 112780}, // __builtin_ia32_pmovuswb128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_128, 112876}, // __builtin_ia32_pmovuswb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_256, 112812}, // __builtin_ia32_pmovuswb256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_256, 112911}, // __builtin_ia32_pmovuswb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_512, 112844}, // __builtin_ia32_pmovuswb512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_512, 112946}, // __builtin_ia32_pmovuswb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_wb_128, 110476}, // __builtin_ia32_pmovwb128_mask
+      {Intrinsic::x86_avx512_mask_pmov_wb_mem_128, 110506}, // __builtin_ia32_pmovwb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_wb_mem_256, 110539}, // __builtin_ia32_pmovwb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_wb_mem_512, 110572}, // __builtin_ia32_pmovwb512mem_mask
+      {Intrinsic::x86_ssse3_pmul_hr_sw, 129075}, // __builtin_ia32_pmulhrsw
+      {Intrinsic::x86_ssse3_pmul_hr_sw_128, 129099}, // __builtin_ia32_pmulhrsw128
+      {Intrinsic::x86_avx2_pmul_hr_sw, 102437}, // __builtin_ia32_pmulhrsw256
+      {Intrinsic::x86_avx512_pmul_hr_sw_512, 116715}, // __builtin_ia32_pmulhrsw512
+      {Intrinsic::x86_3dnow_pmulhrw, 99203}, // __builtin_ia32_pmulhrw
+      {Intrinsic::x86_mmx_pmulhu_w, 123590}, // __builtin_ia32_pmulhuw
+      {Intrinsic::x86_sse2_pmulhu_w, 126799}, // __builtin_ia32_pmulhuw128
+      {Intrinsic::x86_avx2_pmulhu_w, 102489}, // __builtin_ia32_pmulhuw256
+      {Intrinsic::x86_avx512_pmulhu_w_512, 116767}, // __builtin_ia32_pmulhuw512
+      {Intrinsic::x86_mmx_pmulh_w, 123568}, // __builtin_ia32_pmulhw
+      {Intrinsic::x86_sse2_pmulh_w, 126774}, // __builtin_ia32_pmulhw128
+      {Intrinsic::x86_avx2_pmulh_w, 102464}, // __builtin_ia32_pmulhw256
+      {Intrinsic::x86_avx512_pmulh_w_512, 116742}, // __builtin_ia32_pmulhw512
+      {Intrinsic::x86_mmx_pmull_w, 123613}, // __builtin_ia32_pmullw
+      {Intrinsic::x86_mmx_pmulu_dq, 123635}, // __builtin_ia32_pmuludq
+      {Intrinsic::x86_mmx_por, 123658}, // __builtin_ia32_por
+      {Intrinsic::x86_avx512_prol_d_128, 116793}, // __builtin_ia32_prold128
+      {Intrinsic::x86_avx512_prol_d_256, 116817}, // __builtin_ia32_prold256
+      {Intrinsic::x86_avx512_prol_d_512, 116841}, // __builtin_ia32_prold512
+      {Intrinsic::x86_avx512_prol_q_128, 116865}, // __builtin_ia32_prolq128
+      {Intrinsic::x86_avx512_prol_q_256, 116889}, // __builtin_ia32_prolq256
+      {Intrinsic::x86_avx512_prol_q_512, 116913}, // __builtin_ia32_prolq512
+      {Intrinsic::x86_avx512_prolv_d_128, 116937}, // __builtin_ia32_prolvd128
+      {Intrinsic::x86_avx512_prolv_d_256, 116962}, // __builtin_ia32_prolvd256
+      {Intrinsic::x86_avx512_prolv_d_512, 116987}, // __builtin_ia32_prolvd512
+      {Intrinsic::x86_avx512_prolv_q_128, 117012}, // __builtin_ia32_prolvq128
+      {Intrinsic::x86_avx512_prolv_q_256, 117037}, // __builtin_ia32_prolvq256
+      {Intrinsic::x86_avx512_prolv_q_512, 117062}, // __builtin_ia32_prolvq512
+      {Intrinsic::x86_avx512_pror_d_128, 117087}, // __builtin_ia32_prord128
+      {Intrinsic::x86_avx512_pror_d_256, 117111}, // __builtin_ia32_prord256
+      {Intrinsic::x86_avx512_pror_d_512, 117135}, // __builtin_ia32_prord512
+      {Intrinsic::x86_avx512_pror_q_128, 117159}, // __builtin_ia32_prorq128
+      {Intrinsic::x86_avx512_pror_q_256, 117183}, // __builtin_ia32_prorq256
+      {Intrinsic::x86_avx512_pror_q_512, 117207}, // __builtin_ia32_prorq512
+      {Intrinsic::x86_avx512_prorv_d_128, 117231}, // __builtin_ia32_prorvd128
+      {Intrinsic::x86_avx512_prorv_d_256, 117256}, // __builtin_ia32_prorvd256
+      {Intrinsic::x86_avx512_prorv_d_512, 117281}, // __builtin_ia32_prorvd512
+      {Intrinsic::x86_avx512_prorv_q_128, 117306}, // __builtin_ia32_prorvq128
+      {Intrinsic::x86_avx512_prorv_q_256, 117331}, // __builtin_ia32_prorvq256
+      {Intrinsic::x86_avx512_prorv_q_512, 117356}, // __builtin_ia32_prorvq512
+      {Intrinsic::x86_mmx_psad_bw, 123677}, // __builtin_ia32_psadbw
+      {Intrinsic::x86_sse2_psad_bw, 126825}, // __builtin_ia32_psadbw128
+      {Intrinsic::x86_avx2_psad_bw, 102515}, // __builtin_ia32_psadbw256
+      {Intrinsic::x86_avx512_psad_bw_512, 117381}, // __builtin_ia32_psadbw512
+      {Intrinsic::x86_ssse3_pshuf_b, 129126}, // __builtin_ia32_pshufb
+      {Intrinsic::x86_ssse3_pshuf_b_128, 129148}, // __builtin_ia32_pshufb128
+      {Intrinsic::x86_avx2_pshuf_b, 102540}, // __builtin_ia32_pshufb256
+      {Intrinsic::x86_avx512_pshuf_b_512, 117406}, // __builtin_ia32_pshufb512
+      {Intrinsic::x86_sse_pshuf_w, 125631}, // __builtin_ia32_pshufw
+      {Intrinsic::x86_ssse3_psign_b, 129173}, // __builtin_ia32_psignb
+      {Intrinsic::x86_ssse3_psign_b_128, 129195}, // __builtin_ia32_psignb128
+      {Intrinsic::x86_avx2_psign_b, 102565}, // __builtin_ia32_psignb256
+      {Intrinsic::x86_ssse3_psign_d, 129220}, // __builtin_ia32_psignd
+      {Intrinsic::x86_ssse3_psign_d_128, 129242}, // __builtin_ia32_psignd128
+      {Intrinsic::x86_avx2_psign_d, 102590}, // __builtin_ia32_psignd256
+      {Intrinsic::x86_ssse3_psign_w, 129267}, // __builtin_ia32_psignw
+      {Intrinsic::x86_ssse3_psign_w_128, 129289}, // __builtin_ia32_psignw128
+      {Intrinsic::x86_avx2_psign_w, 102615}, // __builtin_ia32_psignw256
+      {Intrinsic::x86_mmx_psll_d, 123699}, // __builtin_ia32_pslld
+      {Intrinsic::x86_sse2_psll_d, 126850}, // __builtin_ia32_pslld128
+      {Intrinsic::x86_avx2_psll_d, 102640}, // __builtin_ia32_pslld256
+      {Intrinsic::x86_avx512_psll_d_512, 117431}, // __builtin_ia32_pslld512
+      {Intrinsic::x86_mmx_pslli_d, 123762}, // __builtin_ia32_pslldi
+      {Intrinsic::x86_sse2_pslli_d, 126922}, // __builtin_ia32_pslldi128
+      {Intrinsic::x86_avx2_pslli_d, 102712}, // __builtin_ia32_pslldi256
+      {Intrinsic::x86_avx512_pslli_d_512, 117503}, // __builtin_ia32_pslldi512
+      {Intrinsic::x86_mmx_psll_q, 123720}, // __builtin_ia32_psllq
+      {Intrinsic::x86_sse2_psll_q, 126874}, // __builtin_ia32_psllq128
+      {Intrinsic::x86_avx2_psll_q, 102664}, // __builtin_ia32_psllq256
+      {Intrinsic::x86_avx512_psll_q_512, 117455}, // __builtin_ia32_psllq512
+      {Intrinsic::x86_mmx_pslli_q, 123784}, // __builtin_ia32_psllqi
+      {Intrinsic::x86_sse2_pslli_q, 126947}, // __builtin_ia32_psllqi128
+      {Intrinsic::x86_avx2_pslli_q, 102737}, // __builtin_ia32_psllqi256
+      {Intrinsic::x86_avx512_pslli_q_512, 117528}, // __builtin_ia32_psllqi512
+      {Intrinsic::x86_avx512_psllv_w_256, 117651}, // __builtin_ia32_psllv16hi
+      {Intrinsic::x86_avx512_psllv_d_512, 117578}, // __builtin_ia32_psllv16si
+      {Intrinsic::x86_avx2_psllv_q, 102835}, // __builtin_ia32_psllv2di
+      {Intrinsic::x86_avx512_psllv_w_512, 117676}, // __builtin_ia32_psllv32hi
+      {Intrinsic::x86_avx2_psllv_q_256, 102859}, // __builtin_ia32_psllv4di
+      {Intrinsic::x86_avx2_psllv_d, 102787}, // __builtin_ia32_psllv4si
+      {Intrinsic::x86_avx512_psllv_q_512, 117603}, // __builtin_ia32_psllv8di
+      {Intrinsic::x86_avx512_psllv_w_128, 117627}, // __builtin_ia32_psllv8hi
+      {Intrinsic::x86_avx2_psllv_d_256, 102811}, // __builtin_ia32_psllv8si
+      {Intrinsic::x86_mmx_psll_w, 123741}, // __builtin_ia32_psllw
+      {Intrinsic::x86_sse2_psll_w, 126898}, // __builtin_ia32_psllw128
+      {Intrinsic::x86_avx2_psll_w, 102688}, // __builtin_ia32_psllw256
+      {Intrinsic::x86_avx512_psll_w_512, 117479}, // __builtin_ia32_psllw512
+      {Intrinsic::x86_mmx_pslli_w, 123806}, // __builtin_ia32_psllwi
+      {Intrinsic::x86_sse2_pslli_w, 126972}, // __builtin_ia32_psllwi128
+      {Intrinsic::x86_avx2_pslli_w, 102762}, // __builtin_ia32_psllwi256
+      {Intrinsic::x86_avx512_pslli_w_512, 117553}, // __builtin_ia32_psllwi512
+      {Intrinsic::x86_mmx_psra_d, 123828}, // __builtin_ia32_psrad
+      {Intrinsic::x86_sse2_psra_d, 126997}, // __builtin_ia32_psrad128
+      {Intrinsic::x86_avx2_psra_d, 102883}, // __builtin_ia32_psrad256
+      {Intrinsic::x86_avx512_psra_d_512, 117701}, // __builtin_ia32_psrad512
+      {Intrinsic::x86_mmx_psrai_d, 123870}, // __builtin_ia32_psradi
+      {Intrinsic::x86_sse2_psrai_d, 127045}, // __builtin_ia32_psradi128
+      {Intrinsic::x86_avx2_psrai_d, 102931}, // __builtin_ia32_psradi256
+      {Intrinsic::x86_avx512_psrai_d_512, 117821}, // __builtin_ia32_psradi512
+      {Intrinsic::x86_avx512_psra_q_128, 117725}, // __builtin_ia32_psraq128
+      {Intrinsic::x86_avx512_psra_q_256, 117749}, // __builtin_ia32_psraq256
+      {Intrinsic::x86_avx512_psra_q_512, 117773}, // __builtin_ia32_psraq512
+      {Intrinsic::x86_avx512_psrai_q_128, 117846}, // __builtin_ia32_psraqi128
+      {Intrinsic::x86_avx512_psrai_q_256, 117871}, // __builtin_ia32_psraqi256
+      {Intrinsic::x86_avx512_psrai_q_512, 117896}, // __builtin_ia32_psraqi512
+      {Intrinsic::x86_avx512_psrav_w_256, 118069}, // __builtin_ia32_psrav16hi
+      {Intrinsic::x86_avx512_psrav_d_512, 117946}, // __builtin_ia32_psrav16si
+      {Intrinsic::x86_avx512_psrav_w_512, 118094}, // __builtin_ia32_psrav32hi
+      {Intrinsic::x86_avx2_psrav_d, 102981}, // __builtin_ia32_psrav4si
+      {Intrinsic::x86_avx512_psrav_q_512, 118021}, // __builtin_ia32_psrav8di
+      {Intrinsic::x86_avx512_psrav_w_128, 118045}, // __builtin_ia32_psrav8hi
+      {Intrinsic::x86_avx2_psrav_d_256, 103005}, // __builtin_ia32_psrav8si
+      {Intrinsic::x86_avx512_psrav_q_128, 117971}, // __builtin_ia32_psravq128
+      {Intrinsic::x86_avx512_psrav_q_256, 117996}, // __builtin_ia32_psravq256
+      {Intrinsic::x86_mmx_psra_w, 123849}, // __builtin_ia32_psraw
+      {Intrinsic::x86_sse2_psra_w, 127021}, // __builtin_ia32_psraw128
+      {Intrinsic::x86_avx2_psra_w, 102907}, // __builtin_ia32_psraw256
+      {Intrinsic::x86_avx512_psra_w_512, 117797}, // __builtin_ia32_psraw512
+      {Intrinsic::x86_mmx_psrai_w, 123892}, // __builtin_ia32_psrawi
+      {Intrinsic::x86_sse2_psrai_w, 127070}, // __builtin_ia32_psrawi128
+      {Intrinsic::x86_avx2_psrai_w, 102956}, // __builtin_ia32_psrawi256
+      {Intrinsic::x86_avx512_psrai_w_512, 117921}, // __builtin_ia32_psrawi512
+      {Intrinsic::x86_mmx_psrl_d, 123914}, // __builtin_ia32_psrld
+      {Intrinsic::x86_sse2_psrl_d, 127095}, // __builtin_ia32_psrld128
+      {Intrinsic::x86_avx2_psrl_d, 103029}, // __builtin_ia32_psrld256
+      {Intrinsic::x86_avx512_psrl_d_512, 118119}, // __builtin_ia32_psrld512
+      {Intrinsic::x86_mmx_psrli_d, 123977}, // __builtin_ia32_psrldi
+      {Intrinsic::x86_sse2_psrli_d, 127167}, // __builtin_ia32_psrldi128
+      {Intrinsic::x86_avx2_psrli_d, 103101}, // __builtin_ia32_psrldi256
+      {Intrinsic::x86_avx512_psrli_d_512, 118191}, // __builtin_ia32_psrldi512
+      {Intrinsic::x86_mmx_psrl_q, 123935}, // __builtin_ia32_psrlq
+      {Intrinsic::x86_sse2_psrl_q, 127119}, // __builtin_ia32_psrlq128
+      {Intrinsic::x86_avx2_psrl_q, 103053}, // __builtin_ia32_psrlq256
+      {Intrinsic::x86_avx512_psrl_q_512, 118143}, // __builtin_ia32_psrlq512
+      {Intrinsic::x86_mmx_psrli_q, 123999}, // __builtin_ia32_psrlqi
+      {Intrinsic::x86_sse2_psrli_q, 127192}, // __builtin_ia32_psrlqi128
+      {Intrinsic::x86_avx2_psrli_q, 103126}, // __builtin_ia32_psrlqi256
+      {Intrinsic::x86_avx512_psrli_q_512, 118216}, // __builtin_ia32_psrlqi512
+      {Intrinsic::x86_avx512_psrlv_w_256, 118339}, // __builtin_ia32_psrlv16hi
+      {Intrinsic::x86_avx512_psrlv_d_512, 118266}, // __builtin_ia32_psrlv16si
+      {Intrinsic::x86_avx2_psrlv_q, 103224}, // __builtin_ia32_psrlv2di
+      {Intrinsic::x86_avx512_psrlv_w_512, 118364}, // __builtin_ia32_psrlv32hi
+      {Intrinsic::x86_avx2_psrlv_q_256, 103248}, // __builtin_ia32_psrlv4di
+      {Intrinsic::x86_avx2_psrlv_d, 103176}, // __builtin_ia32_psrlv4si
+      {Intrinsic::x86_avx512_psrlv_q_512, 118291}, // __builtin_ia32_psrlv8di
+      {Intrinsic::x86_avx512_psrlv_w_128, 118315}, // __builtin_ia32_psrlv8hi
+      {Intrinsic::x86_avx2_psrlv_d_256, 103200}, // __builtin_ia32_psrlv8si
+      {Intrinsic::x86_mmx_psrl_w, 123956}, // __builtin_ia32_psrlw
+      {Intrinsic::x86_sse2_psrl_w, 127143}, // __builtin_ia32_psrlw128
+      {Intrinsic::x86_avx2_psrl_w, 103077}, // __builtin_ia32_psrlw256
+      {Intrinsic::x86_avx512_psrl_w_512, 118167}, // __builtin_ia32_psrlw512
+      {Intrinsic::x86_mmx_psrli_w, 124021}, // __builtin_ia32_psrlwi
+      {Intrinsic::x86_sse2_psrli_w, 127217}, // __builtin_ia32_psrlwi128
+      {Intrinsic::x86_avx2_psrli_w, 103151}, // __builtin_ia32_psrlwi256
+      {Intrinsic::x86_avx512_psrli_w_512, 118241}, // __builtin_ia32_psrlwi512
+      {Intrinsic::x86_mmx_psub_b, 124043}, // __builtin_ia32_psubb
+      {Intrinsic::x86_mmx_psub_d, 124064}, // __builtin_ia32_psubd
+      {Intrinsic::x86_mmx_psub_q, 124085}, // __builtin_ia32_psubq
+      {Intrinsic::x86_mmx_psubs_b, 124127}, // __builtin_ia32_psubsb
+      {Intrinsic::x86_sse2_psubs_b, 127242}, // __builtin_ia32_psubsb128
+      {Intrinsic::x86_avx2_psubs_b, 103272}, // __builtin_ia32_psubsb256
+      {Intrinsic::x86_avx512_mask_psubs_b_512, 113095}, // __builtin_ia32_psubsb512_mask
+      {Intrinsic::x86_mmx_psubs_w, 124149}, // __builtin_ia32_psubsw
+      {Intrinsic::x86_sse2_psubs_w, 127267}, // __builtin_ia32_psubsw128
+      {Intrinsic::x86_avx2_psubs_w, 103297}, // __builtin_ia32_psubsw256
+      {Intrinsic::x86_avx512_mask_psubs_w_512, 113125}, // __builtin_ia32_psubsw512_mask
+      {Intrinsic::x86_mmx_psubus_b, 124171}, // __builtin_ia32_psubusb
+      {Intrinsic::x86_sse2_psubus_b, 127292}, // __builtin_ia32_psubusb128
+      {Intrinsic::x86_avx2_psubus_b, 103322}, // __builtin_ia32_psubusb256
+      {Intrinsic::x86_avx512_mask_psubus_b_512, 113155}, // __builtin_ia32_psubusb512_mask
+      {Intrinsic::x86_mmx_psubus_w, 124194}, // __builtin_ia32_psubusw
+      {Intrinsic::x86_sse2_psubus_w, 127318}, // __builtin_ia32_psubusw128
+      {Intrinsic::x86_avx2_psubus_w, 103348}, // __builtin_ia32_psubusw256
+      {Intrinsic::x86_avx512_mask_psubus_w_512, 113186}, // __builtin_ia32_psubusw512_mask
+      {Intrinsic::x86_mmx_psub_w, 124106}, // __builtin_ia32_psubw
+      {Intrinsic::x86_avx512_pternlog_d_128, 118389}, // __builtin_ia32_pternlogd128
+      {Intrinsic::x86_avx512_pternlog_d_256, 118417}, // __builtin_ia32_pternlogd256
+      {Intrinsic::x86_avx512_pternlog_d_512, 118445}, // __builtin_ia32_pternlogd512
+      {Intrinsic::x86_avx512_pternlog_q_128, 118473}, // __builtin_ia32_pternlogq128
+      {Intrinsic::x86_avx512_pternlog_q_256, 118501}, // __builtin_ia32_pternlogq256
+      {Intrinsic::x86_avx512_pternlog_q_512, 118529}, // __builtin_ia32_pternlogq512
+      {Intrinsic::x86_sse41_ptestc, 127920}, // __builtin_ia32_ptestc128
+      {Intrinsic::x86_avx_ptestc_256, 100576}, // __builtin_ia32_ptestc256
+      {Intrinsic::x86_sse41_ptestnzc, 127945}, // __builtin_ia32_ptestnzc128
+      {Intrinsic::x86_avx_ptestnzc_256, 100601}, // __builtin_ia32_ptestnzc256
+      {Intrinsic::x86_sse41_ptestz, 127972}, // __builtin_ia32_ptestz128
+      {Intrinsic::x86_avx_ptestz_256, 100628}, // __builtin_ia32_ptestz256
+      {Intrinsic::x86_ptwrite32, 124542}, // __builtin_ia32_ptwrite32
+      {Intrinsic::x86_ptwrite64, 124567}, // __builtin_ia32_ptwrite64
+      {Intrinsic::x86_mmx_punpckhbw, 124217}, // __builtin_ia32_punpckhbw
+      {Intrinsic::x86_mmx_punpckhdq, 124242}, // __builtin_ia32_punpckhdq
+      {Intrinsic::x86_mmx_punpckhwd, 124267}, // __builtin_ia32_punpckhwd
+      {Intrinsic::x86_mmx_punpcklbw, 124292}, // __builtin_ia32_punpcklbw
+      {Intrinsic::x86_mmx_punpckldq, 124317}, // __builtin_ia32_punpckldq
+      {Intrinsic::x86_mmx_punpcklwd, 124342}, // __builtin_ia32_punpcklwd
+      {Intrinsic::x86_mmx_pxor, 124367}, // __builtin_ia32_pxor
+      {Intrinsic::x86_avx512_mask_range_pd_128, 113217}, // __builtin_ia32_rangepd128_mask
+      {Intrinsic::x86_avx512_mask_range_pd_256, 113248}, // __builtin_ia32_rangepd256_mask
+      {Intrinsic::x86_avx512_mask_range_pd_512, 113279}, // __builtin_ia32_rangepd512_mask
+      {Intrinsic::x86_avx512_mask_range_ps_128, 113310}, // __builtin_ia32_rangeps128_mask
+      {Intrinsic::x86_avx512_mask_range_ps_256, 113341}, // __builtin_ia32_rangeps256_mask
+      {Intrinsic::x86_avx512_mask_range_ps_512, 113372}, // __builtin_ia32_rangeps512_mask
+      {Intrinsic::x86_avx512_mask_range_sd, 113403}, // __builtin_ia32_rangesd128_round_mask
+      {Intrinsic::x86_avx512_mask_range_ss, 113440}, // __builtin_ia32_rangess128_round_mask
+      {Intrinsic::x86_avx512_rcp14_pd_128, 118557}, // __builtin_ia32_rcp14pd128_mask
+      {Intrinsic::x86_avx512_rcp14_pd_256, 118588}, // __builtin_ia32_rcp14pd256_mask
+      {Intrinsic::x86_avx512_rcp14_pd_512, 118619}, // __builtin_ia32_rcp14pd512_mask
+      {Intrinsic::x86_avx512_rcp14_ps_128, 118650}, // __builtin_ia32_rcp14ps128_mask
+      {Intrinsic::x86_avx512_rcp14_ps_256, 118681}, // __builtin_ia32_rcp14ps256_mask
+      {Intrinsic::x86_avx512_rcp14_ps_512, 118712}, // __builtin_ia32_rcp14ps512_mask
+      {Intrinsic::x86_avx512_rcp14_sd, 118743}, // __builtin_ia32_rcp14sd_mask
+      {Intrinsic::x86_avx512_rcp14_ss, 118771}, // __builtin_ia32_rcp14ss_mask
+      {Intrinsic::x86_avx512_rcp28_pd, 118799}, // __builtin_ia32_rcp28pd_mask
+      {Intrinsic::x86_avx512_rcp28_ps, 118827}, // __builtin_ia32_rcp28ps_mask
+      {Intrinsic::x86_avx512_rcp28_sd, 118855}, // __builtin_ia32_rcp28sd_round_mask
+      {Intrinsic::x86_avx512_rcp28_ss, 118889}, // __builtin_ia32_rcp28ss_round_mask
+      {Intrinsic::x86_sse_rcp_ps, 125653}, // __builtin_ia32_rcpps
+      {Intrinsic::x86_avx_rcp_ps_256, 100653}, // __builtin_ia32_rcpps256
+      {Intrinsic::x86_sse_rcp_ss, 125674}, // __builtin_ia32_rcpss
+      {Intrinsic::x86_rdfsbase_32, 124592}, // __builtin_ia32_rdfsbase32
+      {Intrinsic::x86_rdfsbase_64, 124618}, // __builtin_ia32_rdfsbase64
+      {Intrinsic::x86_rdgsbase_32, 124644}, // __builtin_ia32_rdgsbase32
+      {Intrinsic::x86_rdgsbase_64, 124670}, // __builtin_ia32_rdgsbase64
+      {Intrinsic::x86_rdpid, 124696}, // __builtin_ia32_rdpid
+      {Intrinsic::x86_rdpkru, 124717}, // __builtin_ia32_rdpkru
+      {Intrinsic::x86_rdpmc, 124739}, // __builtin_ia32_rdpmc
+      {Intrinsic::x86_rdsspd, 124760}, // __builtin_ia32_rdsspd
+      {Intrinsic::x86_rdsspq, 124782}, // __builtin_ia32_rdsspq
+      {Intrinsic::x86_rdtsc, 124804}, // __builtin_ia32_rdtsc
+      {Intrinsic::x86_rdtscp, 124825}, // __builtin_ia32_rdtscp
+      {Intrinsic::x86_flags_read_u32, 122397}, // __builtin_ia32_readeflags_u32
+      {Intrinsic::x86_flags_read_u64, 122427}, // __builtin_ia32_readeflags_u64
+      {Intrinsic::x86_avx512_mask_reduce_pd_128, 113477}, // __builtin_ia32_reducepd128_mask
+      {Intrinsic::x86_avx512_mask_reduce_pd_256, 113509}, // __builtin_ia32_reducepd256_mask
+      {Intrinsic::x86_avx512_mask_reduce_pd_512, 113541}, // __builtin_ia32_reducepd512_mask
+      {Intrinsic::x86_avx512_mask_reduce_ps_128, 113573}, // __builtin_ia32_reduceps128_mask
+      {Intrinsic::x86_avx512_mask_reduce_ps_256, 113605}, // __builtin_ia32_reduceps256_mask
+      {Intrinsic::x86_avx512_mask_reduce_ps_512, 113637}, // __builtin_ia32_reduceps512_mask
+      {Intrinsic::x86_avx512_mask_reduce_sd, 113669}, // __builtin_ia32_reducesd_mask
+      {Intrinsic::x86_avx512_mask_reduce_ss, 113698}, // __builtin_ia32_reducess_mask
+      {Intrinsic::x86_avx512_mask_rndscale_pd_128, 113727}, // __builtin_ia32_rndscalepd_128_mask
+      {Intrinsic::x86_avx512_mask_rndscale_pd_256, 113762}, // __builtin_ia32_rndscalepd_256_mask
+      {Intrinsic::x86_avx512_mask_rndscale_pd_512, 113797}, // __builtin_ia32_rndscalepd_mask
+      {Intrinsic::x86_avx512_mask_rndscale_ps_128, 113828}, // __builtin_ia32_rndscaleps_128_mask
+      {Intrinsic::x86_avx512_mask_rndscale_ps_256, 113863}, // __builtin_ia32_rndscaleps_256_mask
+      {Intrinsic::x86_avx512_mask_rndscale_ps_512, 113898}, // __builtin_ia32_rndscaleps_mask
+      {Intrinsic::x86_avx512_mask_rndscale_sd, 113929}, // __builtin_ia32_rndscalesd_round_mask
+      {Intrinsic::x86_avx512_mask_rndscale_ss, 113966}, // __builtin_ia32_rndscaless_round_mask
+      {Intrinsic::x86_sse41_round_pd, 127997}, // __builtin_ia32_roundpd
+      {Intrinsic::x86_avx_round_pd_256, 100677}, // __builtin_ia32_roundpd256
+      {Intrinsic::x86_sse41_round_ps, 128020}, // __builtin_ia32_roundps
+      {Intrinsic::x86_avx_round_ps_256, 100703}, // __builtin_ia32_roundps256
+      {Intrinsic::x86_sse41_round_sd, 128043}, // __builtin_ia32_roundsd
+      {Intrinsic::x86_sse41_round_ss, 128066}, // __builtin_ia32_roundss
+      {Intrinsic::x86_avx512_rsqrt14_pd_128, 118923}, // __builtin_ia32_rsqrt14pd128_mask
+      {Intrinsic::x86_avx512_rsqrt14_pd_256, 118956}, // __builtin_ia32_rsqrt14pd256_mask
+      {Intrinsic::x86_avx512_rsqrt14_pd_512, 118989}, // __builtin_ia32_rsqrt14pd512_mask
+      {Intrinsic::x86_avx512_rsqrt14_ps_128, 119022}, // __builtin_ia32_rsqrt14ps128_mask
+      {Intrinsic::x86_avx512_rsqrt14_ps_256, 119055}, // __builtin_ia32_rsqrt14ps256_mask
+      {Intrinsic::x86_avx512_rsqrt14_ps_512, 119088}, // __builtin_ia32_rsqrt14ps512_mask
+      {Intrinsic::x86_avx512_rsqrt14_sd, 119121}, // __builtin_ia32_rsqrt14sd_mask
+      {Intrinsic::x86_avx512_rsqrt14_ss, 119151}, // __builtin_ia32_rsqrt14ss_mask
+      {Intrinsic::x86_avx512_rsqrt28_pd, 119181}, // __builtin_ia32_rsqrt28pd_mask
+      {Intrinsic::x86_avx512_rsqrt28_ps, 119211}, // __builtin_ia32_rsqrt28ps_mask
+      {Intrinsic::x86_avx512_rsqrt28_sd, 119241}, // __builtin_ia32_rsqrt28sd_round_mask
+      {Intrinsic::x86_avx512_rsqrt28_ss, 119277}, // __builtin_ia32_rsqrt28ss_round_mask
+      {Intrinsic::x86_sse_rsqrt_ps, 125695}, // __builtin_ia32_rsqrtps
+      {Intrinsic::x86_avx_rsqrt_ps_256, 100729}, // __builtin_ia32_rsqrtps256
+      {Intrinsic::x86_sse_rsqrt_ss, 125718}, // __builtin_ia32_rsqrtss
+      {Intrinsic::x86_rstorssp, 124847}, // __builtin_ia32_rstorssp
+      {Intrinsic::x86_saveprevssp, 124871}, // __builtin_ia32_saveprevssp
+      {Intrinsic::x86_avx512_mask_scalef_pd_128, 114003}, // __builtin_ia32_scalefpd128_mask
+      {Intrinsic::x86_avx512_mask_scalef_pd_256, 114035}, // __builtin_ia32_scalefpd256_mask
+      {Intrinsic::x86_avx512_mask_scalef_pd_512, 114067}, // __builtin_ia32_scalefpd512_mask
+      {Intrinsic::x86_avx512_mask_scalef_ps_128, 114099}, // __builtin_ia32_scalefps128_mask
+      {Intrinsic::x86_avx512_mask_scalef_ps_256, 114131}, // __builtin_ia32_scalefps256_mask
+      {Intrinsic::x86_avx512_mask_scalef_ps_512, 114163}, // __builtin_ia32_scalefps512_mask
+      {Intrinsic::x86_avx512_mask_scalef_sd, 114195}, // __builtin_ia32_scalefsd_round_mask
+      {Intrinsic::x86_avx512_mask_scalef_ss, 114230}, // __builtin_ia32_scalefss_round_mask
+      {Intrinsic::x86_avx512_scatter_qps_512, 119519}, // __builtin_ia32_scatterdiv16sf
+      {Intrinsic::x86_avx512_scatter_qpi_512, 119460}, // __builtin_ia32_scatterdiv16si
+      {Intrinsic::x86_avx512_scatterdiv2_df, 119549}, // __builtin_ia32_scatterdiv2df
+      {Intrinsic::x86_avx512_scatterdiv2_di, 119578}, // __builtin_ia32_scatterdiv2di
+      {Intrinsic::x86_avx512_scatterdiv4_df, 119607}, // __builtin_ia32_scatterdiv4df
+      {Intrinsic::x86_avx512_scatterdiv4_di, 119636}, // __builtin_ia32_scatterdiv4di
+      {Intrinsic::x86_avx512_scatterdiv4_sf, 119665}, // __builtin_ia32_scatterdiv4sf
+      {Intrinsic::x86_avx512_scatterdiv4_si, 119694}, // __builtin_ia32_scatterdiv4si
+      {Intrinsic::x86_avx512_scatter_qpd_512, 119431}, // __builtin_ia32_scatterdiv8df
+      {Intrinsic::x86_avx512_scatter_qpq_512, 119490}, // __builtin_ia32_scatterdiv8di
+      {Intrinsic::x86_avx512_scatterdiv8_sf, 119723}, // __builtin_ia32_scatterdiv8sf
+      {Intrinsic::x86_avx512_scatterdiv8_si, 119752}, // __builtin_ia32_scatterdiv8si
+      {Intrinsic::x86_avx512_scatterpf_dpd_512, 119781}, // __builtin_ia32_scatterpfdpd
+      {Intrinsic::x86_avx512_scatterpf_dps_512, 119809}, // __builtin_ia32_scatterpfdps
+      {Intrinsic::x86_avx512_scatterpf_qpd_512, 119837}, // __builtin_ia32_scatterpfqpd
+      {Intrinsic::x86_avx512_scatterpf_qps_512, 119865}, // __builtin_ia32_scatterpfqps
+      {Intrinsic::x86_avx512_scatter_dps_512, 119401}, // __builtin_ia32_scattersiv16sf
+      {Intrinsic::x86_avx512_scatter_dpi_512, 119342}, // __builtin_ia32_scattersiv16si
+      {Intrinsic::x86_avx512_scattersiv2_df, 119893}, // __builtin_ia32_scattersiv2df
+      {Intrinsic::x86_avx512_scattersiv2_di, 119922}, // __builtin_ia32_scattersiv2di
+      {Intrinsic::x86_avx512_scattersiv4_df, 119951}, // __builtin_ia32_scattersiv4df
+      {Intrinsic::x86_avx512_scattersiv4_di, 119980}, // __builtin_ia32_scattersiv4di
+      {Intrinsic::x86_avx512_scattersiv4_sf, 120009}, // __builtin_ia32_scattersiv4sf
+      {Intrinsic::x86_avx512_scattersiv4_si, 120038}, // __builtin_ia32_scattersiv4si
+      {Intrinsic::x86_avx512_scatter_dpd_512, 119313}, // __builtin_ia32_scattersiv8df
+      {Intrinsic::x86_avx512_scatter_dpq_512, 119372}, // __builtin_ia32_scattersiv8di
+      {Intrinsic::x86_avx512_scattersiv8_sf, 120067}, // __builtin_ia32_scattersiv8sf
+      {Intrinsic::x86_avx512_scattersiv8_si, 120096}, // __builtin_ia32_scattersiv8si
+      {Intrinsic::x86_setssbsy, 124898}, // __builtin_ia32_setssbsy
+      {Intrinsic::x86_sse_sfence, 125741}, // __builtin_ia32_sfence
+      {Intrinsic::x86_sha1msg1, 124922}, // __builtin_ia32_sha1msg1
+      {Intrinsic::x86_sha1msg2, 124946}, // __builtin_ia32_sha1msg2
+      {Intrinsic::x86_sha1nexte, 124970}, // __builtin_ia32_sha1nexte
+      {Intrinsic::x86_sha1rnds4, 124995}, // __builtin_ia32_sha1rnds4
+      {Intrinsic::x86_sha256msg1, 125020}, // __builtin_ia32_sha256msg1
+      {Intrinsic::x86_sha256msg2, 125046}, // __builtin_ia32_sha256msg2
+      {Intrinsic::x86_sha256rnds2, 125072}, // __builtin_ia32_sha256rnds2
+      {Intrinsic::x86_slwpcb, 125099}, // __builtin_ia32_slwpcb
+      {Intrinsic::x86_subborrow_u32, 129314}, // __builtin_ia32_subborrow_u32
+      {Intrinsic::x86_subborrow_u64, 129343}, // __builtin_ia32_subborrow_u64
+      {Intrinsic::x86_avx512_sub_pd_512, 120125}, // __builtin_ia32_subpd512
+      {Intrinsic::x86_avx512_sub_ps_512, 120149}, // __builtin_ia32_subps512
+      {Intrinsic::x86_avx512_mask_sub_sd_round, 114265}, // __builtin_ia32_subsd_round_mask
+      {Intrinsic::x86_avx512_mask_sub_ss_round, 114297}, // __builtin_ia32_subss_round_mask
+      {Intrinsic::x86_tpause, 129424}, // __builtin_ia32_tpause
+      {Intrinsic::x86_sse_ucomieq_ss, 125763}, // __builtin_ia32_ucomieq
+      {Intrinsic::x86_sse_ucomige_ss, 125786}, // __builtin_ia32_ucomige
+      {Intrinsic::x86_sse_ucomigt_ss, 125809}, // __builtin_ia32_ucomigt
+      {Intrinsic::x86_sse_ucomile_ss, 125832}, // __builtin_ia32_ucomile
+      {Intrinsic::x86_sse_ucomilt_ss, 125855}, // __builtin_ia32_ucomilt
+      {Intrinsic::x86_sse_ucomineq_ss, 125878}, // __builtin_ia32_ucomineq
+      {Intrinsic::x86_sse2_ucomieq_sd, 127344}, // __builtin_ia32_ucomisdeq
+      {Intrinsic::x86_sse2_ucomige_sd, 127369}, // __builtin_ia32_ucomisdge
+      {Intrinsic::x86_sse2_ucomigt_sd, 127394}, // __builtin_ia32_ucomisdgt
+      {Intrinsic::x86_sse2_ucomile_sd, 127419}, // __builtin_ia32_ucomisdle
+      {Intrinsic::x86_sse2_ucomilt_sd, 127444}, // __builtin_ia32_ucomisdlt
+      {Intrinsic::x86_sse2_ucomineq_sd, 127469}, // __builtin_ia32_ucomisdneq
+      {Intrinsic::x86_umonitor, 129446}, // __builtin_ia32_umonitor
+      {Intrinsic::x86_umwait, 129470}, // __builtin_ia32_umwait
+      {Intrinsic::x86_avx512_vcomi_sd, 120173}, // __builtin_ia32_vcomisd
+      {Intrinsic::x86_avx512_vcomi_ss, 120196}, // __builtin_ia32_vcomiss
+      {Intrinsic::x86_vcvtph2ps_128, 129492}, // __builtin_ia32_vcvtph2ps
+      {Intrinsic::x86_vcvtph2ps_256, 129517}, // __builtin_ia32_vcvtph2ps256
+      {Intrinsic::x86_avx512_mask_vcvtph2ps_256, 114359}, // __builtin_ia32_vcvtph2ps256_mask
+      {Intrinsic::x86_avx512_mask_vcvtph2ps_512, 114392}, // __builtin_ia32_vcvtph2ps512_mask
+      {Intrinsic::x86_avx512_mask_vcvtph2ps_128, 114329}, // __builtin_ia32_vcvtph2ps_mask
+      {Intrinsic::x86_vcvtps2ph_128, 129545}, // __builtin_ia32_vcvtps2ph
+      {Intrinsic::x86_vcvtps2ph_256, 129570}, // __builtin_ia32_vcvtps2ph256
+      {Intrinsic::x86_avx512_mask_vcvtps2ph_256, 114455}, // __builtin_ia32_vcvtps2ph256_mask
+      {Intrinsic::x86_avx512_mask_vcvtps2ph_512, 114488}, // __builtin_ia32_vcvtps2ph512_mask
+      {Intrinsic::x86_avx512_mask_vcvtps2ph_128, 114425}, // __builtin_ia32_vcvtps2ph_mask
+      {Intrinsic::x86_avx512_vcvtsd2si32, 120219}, // __builtin_ia32_vcvtsd2si32
+      {Intrinsic::x86_avx512_vcvtsd2si64, 120246}, // __builtin_ia32_vcvtsd2si64
+      {Intrinsic::x86_avx512_vcvtsd2usi32, 120273}, // __builtin_ia32_vcvtsd2usi32
+      {Intrinsic::x86_avx512_vcvtsd2usi64, 120301}, // __builtin_ia32_vcvtsd2usi64
+      {Intrinsic::x86_avx512_vcvtss2si32, 120329}, // __builtin_ia32_vcvtss2si32
+      {Intrinsic::x86_avx512_vcvtss2si64, 120356}, // __builtin_ia32_vcvtss2si64
+      {Intrinsic::x86_avx512_vcvtss2usi32, 120383}, // __builtin_ia32_vcvtss2usi32
+      {Intrinsic::x86_avx512_vcvtss2usi64, 120411}, // __builtin_ia32_vcvtss2usi64
+      {Intrinsic::x86_avx512_cvttsd2si, 103680}, // __builtin_ia32_vcvttsd2si32
+      {Intrinsic::x86_avx512_cvttsd2si64, 103708}, // __builtin_ia32_vcvttsd2si64
+      {Intrinsic::x86_avx512_cvttsd2usi, 103736}, // __builtin_ia32_vcvttsd2usi32
+      {Intrinsic::x86_avx512_cvttsd2usi64, 103765}, // __builtin_ia32_vcvttsd2usi64
+      {Intrinsic::x86_avx512_cvttss2si, 103794}, // __builtin_ia32_vcvttss2si32
+      {Intrinsic::x86_avx512_cvttss2si64, 103822}, // __builtin_ia32_vcvttss2si64
+      {Intrinsic::x86_avx512_cvttss2usi, 103850}, // __builtin_ia32_vcvttss2usi32
+      {Intrinsic::x86_avx512_cvttss2usi64, 103879}, // __builtin_ia32_vcvttss2usi64
+      {Intrinsic::x86_mmx_pextr_w, 123377}, // __builtin_ia32_vec_ext_v4hi
+      {Intrinsic::x86_mmx_pinsr_w, 123405}, // __builtin_ia32_vec_set_v4hi
+      {Intrinsic::x86_xop_vfrcz_pd, 130241}, // __builtin_ia32_vfrczpd
+      {Intrinsic::x86_xop_vfrcz_pd_256, 130264}, // __builtin_ia32_vfrczpd256
+      {Intrinsic::x86_xop_vfrcz_ps, 130290}, // __builtin_ia32_vfrczps
+      {Intrinsic::x86_xop_vfrcz_ps_256, 130313}, // __builtin_ia32_vfrczps256
+      {Intrinsic::x86_xop_vfrcz_sd, 130339}, // __builtin_ia32_vfrczsd
+      {Intrinsic::x86_xop_vfrcz_ss, 130362}, // __builtin_ia32_vfrczss
+      {Intrinsic::x86_vgf2p8affineinvqb_128, 129598}, // __builtin_ia32_vgf2p8affineinvqb_v16qi
+      {Intrinsic::x86_vgf2p8affineinvqb_256, 129637}, // __builtin_ia32_vgf2p8affineinvqb_v32qi
+      {Intrinsic::x86_vgf2p8affineinvqb_512, 129676}, // __builtin_ia32_vgf2p8affineinvqb_v64qi
+      {Intrinsic::x86_vgf2p8affineqb_128, 129715}, // __builtin_ia32_vgf2p8affineqb_v16qi
+      {Intrinsic::x86_vgf2p8affineqb_256, 129751}, // __builtin_ia32_vgf2p8affineqb_v32qi
+      {Intrinsic::x86_vgf2p8affineqb_512, 129787}, // __builtin_ia32_vgf2p8affineqb_v64qi
+      {Intrinsic::x86_vgf2p8mulb_128, 129823}, // __builtin_ia32_vgf2p8mulb_v16qi
+      {Intrinsic::x86_vgf2p8mulb_256, 129855}, // __builtin_ia32_vgf2p8mulb_v32qi
+      {Intrinsic::x86_vgf2p8mulb_512, 129887}, // __builtin_ia32_vgf2p8mulb_v64qi
+      {Intrinsic::x86_xop_vpcomb, 130385}, // __builtin_ia32_vpcomb
+      {Intrinsic::x86_xop_vpcomd, 130407}, // __builtin_ia32_vpcomd
+      {Intrinsic::x86_xop_vpcomq, 130429}, // __builtin_ia32_vpcomq
+      {Intrinsic::x86_xop_vpcomub, 130451}, // __builtin_ia32_vpcomub
+      {Intrinsic::x86_xop_vpcomud, 130474}, // __builtin_ia32_vpcomud
+      {Intrinsic::x86_xop_vpcomuq, 130497}, // __builtin_ia32_vpcomuq
+      {Intrinsic::x86_xop_vpcomuw, 130520}, // __builtin_ia32_vpcomuw
+      {Intrinsic::x86_xop_vpcomw, 130543}, // __builtin_ia32_vpcomw
+      {Intrinsic::x86_avx512_mask_conflict_q_128, 105811}, // __builtin_ia32_vpconflictdi_128_mask
+      {Intrinsic::x86_avx512_mask_conflict_q_256, 105848}, // __builtin_ia32_vpconflictdi_256_mask
+      {Intrinsic::x86_avx512_mask_conflict_q_512, 105885}, // __builtin_ia32_vpconflictdi_512_mask
+      {Intrinsic::x86_avx512_mask_conflict_d_128, 105700}, // __builtin_ia32_vpconflictsi_128_mask
+      {Intrinsic::x86_avx512_mask_conflict_d_256, 105737}, // __builtin_ia32_vpconflictsi_256_mask
+      {Intrinsic::x86_avx512_mask_conflict_d_512, 105774}, // __builtin_ia32_vpconflictsi_512_mask
+      {Intrinsic::x86_avx512_vpdpbusd_128, 120439}, // __builtin_ia32_vpdpbusd128
+      {Intrinsic::x86_avx512_vpdpbusd_256, 120466}, // __builtin_ia32_vpdpbusd256
+      {Intrinsic::x86_avx512_vpdpbusd_512, 120493}, // __builtin_ia32_vpdpbusd512
+      {Intrinsic::x86_avx512_vpdpbusds_128, 120520}, // __builtin_ia32_vpdpbusds128
+      {Intrinsic::x86_avx512_vpdpbusds_256, 120548}, // __builtin_ia32_vpdpbusds256
+      {Intrinsic::x86_avx512_vpdpbusds_512, 120576}, // __builtin_ia32_vpdpbusds512
+      {Intrinsic::x86_avx512_vpdpwssd_128, 120604}, // __builtin_ia32_vpdpwssd128
+      {Intrinsic::x86_avx512_vpdpwssd_256, 120631}, // __builtin_ia32_vpdpwssd256
+      {Intrinsic::x86_avx512_vpdpwssd_512, 120658}, // __builtin_ia32_vpdpwssd512
+      {Intrinsic::x86_avx512_vpdpwssds_128, 120685}, // __builtin_ia32_vpdpwssds128
+      {Intrinsic::x86_avx512_vpdpwssds_256, 120713}, // __builtin_ia32_vpdpwssds256
+      {Intrinsic::x86_avx512_vpdpwssds_512, 120741}, // __builtin_ia32_vpdpwssds512
+      {Intrinsic::x86_avx512_vpermi2var_d_128, 120769}, // __builtin_ia32_vpermi2vard128
+      {Intrinsic::x86_avx512_vpermi2var_d_256, 120799}, // __builtin_ia32_vpermi2vard256
+      {Intrinsic::x86_avx512_vpermi2var_d_512, 120829}, // __builtin_ia32_vpermi2vard512
+      {Intrinsic::x86_avx512_vpermi2var_hi_128, 120859}, // __builtin_ia32_vpermi2varhi128
+      {Intrinsic::x86_avx512_vpermi2var_hi_256, 120890}, // __builtin_ia32_vpermi2varhi256
+      {Intrinsic::x86_avx512_vpermi2var_hi_512, 120921}, // __builtin_ia32_vpermi2varhi512
+      {Intrinsic::x86_avx512_vpermi2var_pd_128, 120952}, // __builtin_ia32_vpermi2varpd128
+      {Intrinsic::x86_avx512_vpermi2var_pd_256, 120983}, // __builtin_ia32_vpermi2varpd256
+      {Intrinsic::x86_avx512_vpermi2var_pd_512, 121014}, // __builtin_ia32_vpermi2varpd512
+      {Intrinsic::x86_avx512_vpermi2var_ps_128, 121045}, // __builtin_ia32_vpermi2varps128
+      {Intrinsic::x86_avx512_vpermi2var_ps_256, 121076}, // __builtin_ia32_vpermi2varps256
+      {Intrinsic::x86_avx512_vpermi2var_ps_512, 121107}, // __builtin_ia32_vpermi2varps512
+      {Intrinsic::x86_avx512_vpermi2var_q_128, 121138}, // __builtin_ia32_vpermi2varq128
+      {Intrinsic::x86_avx512_vpermi2var_q_256, 121168}, // __builtin_ia32_vpermi2varq256
+      {Intrinsic::x86_avx512_vpermi2var_q_512, 121198}, // __builtin_ia32_vpermi2varq512
+      {Intrinsic::x86_avx512_vpermi2var_qi_128, 121228}, // __builtin_ia32_vpermi2varqi128
+      {Intrinsic::x86_avx512_vpermi2var_qi_256, 121259}, // __builtin_ia32_vpermi2varqi256
+      {Intrinsic::x86_avx512_vpermi2var_qi_512, 121290}, // __builtin_ia32_vpermi2varqi512
+      {Intrinsic::x86_xop_vpermil2pd, 130565}, // __builtin_ia32_vpermil2pd
+      {Intrinsic::x86_xop_vpermil2pd_256, 130591}, // __builtin_ia32_vpermil2pd256
+      {Intrinsic::x86_xop_vpermil2ps, 130620}, // __builtin_ia32_vpermil2ps
+      {Intrinsic::x86_xop_vpermil2ps_256, 130646}, // __builtin_ia32_vpermil2ps256
+      {Intrinsic::x86_avx_vpermilvar_pd, 100755}, // __builtin_ia32_vpermilvarpd
+      {Intrinsic::x86_avx_vpermilvar_pd_256, 100783}, // __builtin_ia32_vpermilvarpd256
+      {Intrinsic::x86_avx512_vpermilvar_pd_512, 121321}, // __builtin_ia32_vpermilvarpd512
+      {Intrinsic::x86_avx_vpermilvar_ps, 100814}, // __builtin_ia32_vpermilvarps
+      {Intrinsic::x86_avx_vpermilvar_ps_256, 100842}, // __builtin_ia32_vpermilvarps256
+      {Intrinsic::x86_avx512_vpermilvar_ps_512, 121352}, // __builtin_ia32_vpermilvarps512
+      {Intrinsic::x86_xop_vphaddbd, 130675}, // __builtin_ia32_vphaddbd
+      {Intrinsic::x86_xop_vphaddbq, 130699}, // __builtin_ia32_vphaddbq
+      {Intrinsic::x86_xop_vphaddbw, 130723}, // __builtin_ia32_vphaddbw
+      {Intrinsic::x86_xop_vphadddq, 130747}, // __builtin_ia32_vphadddq
+      {Intrinsic::x86_xop_vphaddubd, 130771}, // __builtin_ia32_vphaddubd
+      {Intrinsic::x86_xop_vphaddubq, 130796}, // __builtin_ia32_vphaddubq
+      {Intrinsic::x86_xop_vphaddubw, 130821}, // __builtin_ia32_vphaddubw
+      {Intrinsic::x86_xop_vphaddudq, 130846}, // __builtin_ia32_vphaddudq
+      {Intrinsic::x86_xop_vphadduwd, 130871}, // __builtin_ia32_vphadduwd
+      {Intrinsic::x86_xop_vphadduwq, 130896}, // __builtin_ia32_vphadduwq
+      {Intrinsic::x86_xop_vphaddwd, 130921}, // __builtin_ia32_vphaddwd
+      {Intrinsic::x86_xop_vphaddwq, 130945}, // __builtin_ia32_vphaddwq
+      {Intrinsic::x86_xop_vphsubbw, 130969}, // __builtin_ia32_vphsubbw
+      {Intrinsic::x86_xop_vphsubdq, 130993}, // __builtin_ia32_vphsubdq
+      {Intrinsic::x86_xop_vphsubwd, 131017}, // __builtin_ia32_vphsubwd
+      {Intrinsic::x86_xop_vpmacsdd, 131041}, // __builtin_ia32_vpmacsdd
+      {Intrinsic::x86_xop_vpmacsdqh, 131065}, // __builtin_ia32_vpmacsdqh
+      {Intrinsic::x86_xop_vpmacsdql, 131090}, // __builtin_ia32_vpmacsdql
+      {Intrinsic::x86_xop_vpmacssdd, 131115}, // __builtin_ia32_vpmacssdd
+      {Intrinsic::x86_xop_vpmacssdqh, 131140}, // __builtin_ia32_vpmacssdqh
+      {Intrinsic::x86_xop_vpmacssdql, 131166}, // __builtin_ia32_vpmacssdql
+      {Intrinsic::x86_xop_vpmacsswd, 131192}, // __builtin_ia32_vpmacsswd
+      {Intrinsic::x86_xop_vpmacssww, 131217}, // __builtin_ia32_vpmacssww
+      {Intrinsic::x86_xop_vpmacswd, 131242}, // __builtin_ia32_vpmacswd
+      {Intrinsic::x86_xop_vpmacsww, 131266}, // __builtin_ia32_vpmacsww
+      {Intrinsic::x86_xop_vpmadcsswd, 131290}, // __builtin_ia32_vpmadcsswd
+      {Intrinsic::x86_xop_vpmadcswd, 131316}, // __builtin_ia32_vpmadcswd
+      {Intrinsic::x86_avx512_vpmadd52h_uq_128, 121383}, // __builtin_ia32_vpmadd52huq128
+      {Intrinsic::x86_avx512_vpmadd52h_uq_256, 121413}, // __builtin_ia32_vpmadd52huq256
+      {Intrinsic::x86_avx512_vpmadd52h_uq_512, 121443}, // __builtin_ia32_vpmadd52huq512
+      {Intrinsic::x86_avx512_vpmadd52l_uq_128, 121473}, // __builtin_ia32_vpmadd52luq128
+      {Intrinsic::x86_avx512_vpmadd52l_uq_256, 121503}, // __builtin_ia32_vpmadd52luq256
+      {Intrinsic::x86_avx512_vpmadd52l_uq_512, 121533}, // __builtin_ia32_vpmadd52luq512
+      {Intrinsic::x86_avx512_mask_pmultishift_qb_128, 112981}, // __builtin_ia32_vpmultishiftqb128_mask
+      {Intrinsic::x86_avx512_mask_pmultishift_qb_256, 113019}, // __builtin_ia32_vpmultishiftqb256_mask
+      {Intrinsic::x86_avx512_mask_pmultishift_qb_512, 113057}, // __builtin_ia32_vpmultishiftqb512_mask
+      {Intrinsic::x86_xop_vpperm, 131341}, // __builtin_ia32_vpperm
+      {Intrinsic::x86_xop_vprotb, 131363}, // __builtin_ia32_vprotb
+      {Intrinsic::x86_xop_vprotbi, 131385}, // __builtin_ia32_vprotbi
+      {Intrinsic::x86_xop_vprotd, 131408}, // __builtin_ia32_vprotd
+      {Intrinsic::x86_xop_vprotdi, 131430}, // __builtin_ia32_vprotdi
+      {Intrinsic::x86_xop_vprotq, 131453}, // __builtin_ia32_vprotq
+      {Intrinsic::x86_xop_vprotqi, 131475}, // __builtin_ia32_vprotqi
+      {Intrinsic::x86_xop_vprotw, 131498}, // __builtin_ia32_vprotw
+      {Intrinsic::x86_xop_vprotwi, 131520}, // __builtin_ia32_vprotwi
+      {Intrinsic::x86_xop_vpshab, 131543}, // __builtin_ia32_vpshab
+      {Intrinsic::x86_xop_vpshad, 131565}, // __builtin_ia32_vpshad
+      {Intrinsic::x86_xop_vpshaq, 131587}, // __builtin_ia32_vpshaq
+      {Intrinsic::x86_xop_vpshaw, 131609}, // __builtin_ia32_vpshaw
+      {Intrinsic::x86_xop_vpshlb, 131631}, // __builtin_ia32_vpshlb
+      {Intrinsic::x86_xop_vpshld, 131653}, // __builtin_ia32_vpshld
+      {Intrinsic::x86_avx512_vpshld_d_128, 121563}, // __builtin_ia32_vpshldd128
+      {Intrinsic::x86_avx512_vpshld_d_256, 121589}, // __builtin_ia32_vpshldd256
+      {Intrinsic::x86_avx512_vpshld_d_512, 121615}, // __builtin_ia32_vpshldd512
+      {Intrinsic::x86_avx512_vpshld_q_128, 121641}, // __builtin_ia32_vpshldq128
+      {Intrinsic::x86_avx512_vpshld_q_256, 121667}, // __builtin_ia32_vpshldq256
+      {Intrinsic::x86_avx512_vpshld_q_512, 121693}, // __builtin_ia32_vpshldq512
+      {Intrinsic::x86_avx512_mask_vpshldv_d_128, 114521}, // __builtin_ia32_vpshldvd128_mask
+      {Intrinsic::x86_avx512_maskz_vpshldv_d_128, 115479}, // __builtin_ia32_vpshldvd128_maskz
+      {Intrinsic::x86_avx512_mask_vpshldv_d_256, 114553}, // __builtin_ia32_vpshldvd256_mask
+      {Intrinsic::x86_avx512_maskz_vpshldv_d_256, 115512}, // __builtin_ia32_vpshldvd256_maskz
+      {Intrinsic::x86_avx512_mask_vpshldv_d_512, 114585}, // __builtin_ia32_vpshldvd512_mask
+      {Intrinsic::x86_avx512_maskz_vpshldv_d_512, 115545}, // __builtin_ia32_vpshldvd512_maskz
+      {Intrinsic::x86_avx512_mask_vpshldv_q_128, 114617}, // __builtin_ia32_vpshldvq128_mask
+      {Intrinsic::x86_avx512_maskz_vpshldv_q_128, 115578}, // __builtin_ia32_vpshldvq128_maskz
+      {Intrinsic::x86_avx512_mask_vpshldv_q_256, 114649}, // __builtin_ia32_vpshldvq256_mask
+      {Intrinsic::x86_avx512_maskz_vpshldv_q_256, 115611}, // __builtin_ia32_vpshldvq256_maskz
+      {Intrinsic::x86_avx512_mask_vpshldv_q_512, 114681}, // __builtin_ia32_vpshldvq512_mask
+      {Intrinsic::x86_avx512_maskz_vpshldv_q_512, 115644}, // __builtin_ia32_vpshldvq512_maskz
+      {Intrinsic::x86_avx512_mask_vpshldv_w_128, 114713}, // __builtin_ia32_vpshldvw128_mask
+      {Intrinsic::x86_avx512_maskz_vpshldv_w_128, 115677}, // __builtin_ia32_vpshldvw128_maskz
+      {Intrinsic::x86_avx512_mask_vpshldv_w_256, 114745}, // __builtin_ia32_vpshldvw256_mask
+      {Intrinsic::x86_avx512_maskz_vpshldv_w_256, 115710}, // __builtin_ia32_vpshldvw256_maskz
+      {Intrinsic::x86_avx512_mask_vpshldv_w_512, 114777}, // __builtin_ia32_vpshldvw512_mask
+      {Intrinsic::x86_avx512_maskz_vpshldv_w_512, 115743}, // __builtin_ia32_vpshldvw512_maskz
+      {Intrinsic::x86_avx512_vpshld_w_128, 121719}, // __builtin_ia32_vpshldw128
+      {Intrinsic::x86_avx512_vpshld_w_256, 121745}, // __builtin_ia32_vpshldw256
+      {Intrinsic::x86_avx512_vpshld_w_512, 121771}, // __builtin_ia32_vpshldw512
+      {Intrinsic::x86_xop_vpshlq, 131675}, // __builtin_ia32_vpshlq
+      {Intrinsic::x86_xop_vpshlw, 131697}, // __builtin_ia32_vpshlw
+      {Intrinsic::x86_avx512_vpshrd_d_128, 121797}, // __builtin_ia32_vpshrdd128
+      {Intrinsic::x86_avx512_vpshrd_d_256, 121823}, // __builtin_ia32_vpshrdd256
+      {Intrinsic::x86_avx512_vpshrd_d_512, 121849}, // __builtin_ia32_vpshrdd512
+      {Intrinsic::x86_avx512_vpshrd_q_128, 121875}, // __builtin_ia32_vpshrdq128
+      {Intrinsic::x86_avx512_vpshrd_q_256, 121901}, // __builtin_ia32_vpshrdq256
+      {Intrinsic::x86_avx512_vpshrd_q_512, 121927}, // __builtin_ia32_vpshrdq512
+      {Intrinsic::x86_avx512_mask_vpshrdv_d_128, 114809}, // __builtin_ia32_vpshrdvd128_mask
+      {Intrinsic::x86_avx512_maskz_vpshrdv_d_128, 115776}, // __builtin_ia32_vpshrdvd128_maskz
+      {Intrinsic::x86_avx512_mask_vpshrdv_d_256, 114841}, // __builtin_ia32_vpshrdvd256_mask
+      {Intrinsic::x86_avx512_maskz_vpshrdv_d_256, 115809}, // __builtin_ia32_vpshrdvd256_maskz
+      {Intrinsic::x86_avx512_mask_vpshrdv_d_512, 114873}, // __builtin_ia32_vpshrdvd512_mask
+      {Intrinsic::x86_avx512_maskz_vpshrdv_d_512, 115842}, // __builtin_ia32_vpshrdvd512_maskz
+      {Intrinsic::x86_avx512_mask_vpshrdv_q_128, 114905}, // __builtin_ia32_vpshrdvq128_mask
+      {Intrinsic::x86_avx512_maskz_vpshrdv_q_128, 115875}, // __builtin_ia32_vpshrdvq128_maskz
+      {Intrinsic::x86_avx512_mask_vpshrdv_q_256, 114937}, // __builtin_ia32_vpshrdvq256_mask
+      {Intrinsic::x86_avx512_maskz_vpshrdv_q_256, 115908}, // __builtin_ia32_vpshrdvq256_maskz
+      {Intrinsic::x86_avx512_mask_vpshrdv_q_512, 114969}, // __builtin_ia32_vpshrdvq512_mask
+      {Intrinsic::x86_avx512_maskz_vpshrdv_q_512, 115941}, // __builtin_ia32_vpshrdvq512_maskz
+      {Intrinsic::x86_avx512_mask_vpshrdv_w_128, 115001}, // __builtin_ia32_vpshrdvw128_mask
+      {Intrinsic::x86_avx512_maskz_vpshrdv_w_128, 115974}, // __builtin_ia32_vpshrdvw128_maskz
+      {Intrinsic::x86_avx512_mask_vpshrdv_w_256, 115033}, // __builtin_ia32_vpshrdvw256_mask
+      {Intrinsic::x86_avx512_maskz_vpshrdv_w_256, 116007}, // __builtin_ia32_vpshrdvw256_maskz
+      {Intrinsic::x86_avx512_mask_vpshrdv_w_512, 115065}, // __builtin_ia32_vpshrdvw512_mask
+      {Intrinsic::x86_avx512_maskz_vpshrdv_w_512, 116040}, // __builtin_ia32_vpshrdvw512_maskz
+      {Intrinsic::x86_avx512_vpshrd_w_128, 121953}, // __builtin_ia32_vpshrdw128
+      {Intrinsic::x86_avx512_vpshrd_w_256, 121979}, // __builtin_ia32_vpshrdw256
+      {Intrinsic::x86_avx512_vpshrd_w_512, 122005}, // __builtin_ia32_vpshrdw512
+      {Intrinsic::x86_avx512_mask_vpshufbitqmb_128, 115097}, // __builtin_ia32_vpshufbitqmb128_mask
+      {Intrinsic::x86_avx512_mask_vpshufbitqmb_256, 115133}, // __builtin_ia32_vpshufbitqmb256_mask
+      {Intrinsic::x86_avx512_mask_vpshufbitqmb_512, 115169}, // __builtin_ia32_vpshufbitqmb512_mask
+      {Intrinsic::x86_avx_vtestc_pd, 100873}, // __builtin_ia32_vtestcpd
+      {Intrinsic::x86_avx_vtestc_pd_256, 100897}, // __builtin_ia32_vtestcpd256
+      {Intrinsic::x86_avx_vtestc_ps, 100924}, // __builtin_ia32_vtestcps
+      {Intrinsic::x86_avx_vtestc_ps_256, 100948}, // __builtin_ia32_vtestcps256
+      {Intrinsic::x86_avx_vtestnzc_pd, 100975}, // __builtin_ia32_vtestnzcpd
+      {Intrinsic::x86_avx_vtestnzc_pd_256, 101001}, // __builtin_ia32_vtestnzcpd256
+      {Intrinsic::x86_avx_vtestnzc_ps, 101030}, // __builtin_ia32_vtestnzcps
+      {Intrinsic::x86_avx_vtestnzc_ps_256, 101056}, // __builtin_ia32_vtestnzcps256
+      {Intrinsic::x86_avx_vtestz_pd, 101085}, // __builtin_ia32_vtestzpd
+      {Intrinsic::x86_avx_vtestz_pd_256, 101109}, // __builtin_ia32_vtestzpd256
+      {Intrinsic::x86_avx_vtestz_ps, 101136}, // __builtin_ia32_vtestzps
+      {Intrinsic::x86_avx_vtestz_ps_256, 101160}, // __builtin_ia32_vtestzps256
+      {Intrinsic::x86_avx_vzeroall, 101187}, // __builtin_ia32_vzeroall
+      {Intrinsic::x86_avx_vzeroupper, 101211}, // __builtin_ia32_vzeroupper
+      {Intrinsic::x86_wbinvd, 129919}, // __builtin_ia32_wbinvd
+      {Intrinsic::x86_wbnoinvd, 129941}, // __builtin_ia32_wbnoinvd
+      {Intrinsic::x86_wrfsbase_32, 129965}, // __builtin_ia32_wrfsbase32
+      {Intrinsic::x86_wrfsbase_64, 129991}, // __builtin_ia32_wrfsbase64
+      {Intrinsic::x86_wrgsbase_32, 130017}, // __builtin_ia32_wrgsbase32
+      {Intrinsic::x86_wrgsbase_64, 130043}, // __builtin_ia32_wrgsbase64
+      {Intrinsic::x86_flags_write_u32, 122457}, // __builtin_ia32_writeeflags_u32
+      {Intrinsic::x86_flags_write_u64, 122488}, // __builtin_ia32_writeeflags_u64
+      {Intrinsic::x86_wrpkru, 130069}, // __builtin_ia32_wrpkru
+      {Intrinsic::x86_wrssd, 130091}, // __builtin_ia32_wrssd
+      {Intrinsic::x86_wrssq, 130112}, // __builtin_ia32_wrssq
+      {Intrinsic::x86_wrussd, 130133}, // __builtin_ia32_wrussd
+      {Intrinsic::x86_wrussq, 130155}, // __builtin_ia32_wrussq
+      {Intrinsic::x86_xabort, 130177}, // __builtin_ia32_xabort
+      {Intrinsic::x86_xbegin, 130199}, // __builtin_ia32_xbegin
+      {Intrinsic::x86_xend, 130221}, // __builtin_ia32_xend
+      {Intrinsic::x86_xtest, 131719}, // __builtin_ia32_xtest
+    };
+    auto I = std::lower_bound(std::begin(x86Names),
+                              std::end(x86Names),
+                              BuiltinNameStr);
+    if (I != std::end(x86Names) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "xcore") {
+    static const BuiltinEntry xcoreNames[] = {
+      {Intrinsic::xcore_bitrev, 131740}, // __builtin_bitrev
+      {Intrinsic::xcore_getid, 131757}, // __builtin_getid
+      {Intrinsic::xcore_getps, 131773}, // __builtin_getps
+      {Intrinsic::xcore_setps, 131789}, // __builtin_setps
+    };
+    auto I = std::lower_bound(std::begin(xcoreNames),
+                              std::end(xcoreNames),
+                              BuiltinNameStr);
+    if (I != std::end(xcoreNames) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  return Intrinsic::not_intrinsic;
+}
+#endif
+
+// Get the LLVM intrinsic that corresponds to a builtin.
+// This is used by the C front-end.  The builtin name is passed
+// in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
+// in as TargetPrefix.  The result is assigned to 'IntrinsicID'.
+#ifdef GET_LLVM_INTRINSIC_FOR_MS_BUILTIN
+Intrinsic::ID Intrinsic::getIntrinsicForMSBuiltin(const char *TargetPrefixStr, StringRef BuiltinNameStr) {
+  static const char BuiltinNames[] = {
+  '_', '_', 'd', 'm', 'b', '\000', '_', '_', 'd', 's', 'b', '\000', '_', '_', 'i',
+  's', 'b', '\000', '_', 'M', 'o', 'v', 'e', 'F', 'r', 'o', 'm', 'C', 'o', 'p',
+  'r', 'o', 'c', 'e', 's', 's', 'o', 'r', '\000', '_', 'M', 'o', 'v', 'e', 'F',
+  'r', 'o', 'm', 'C', 'o', 'p', 'r', 'o', 'c', 'e', 's', 's', 'o', 'r', '2',
+  '\000',
+  };
+
+  struct BuiltinEntry {
+    Intrinsic::ID IntrinID;
+    unsigned StrTabOffset;
+    const char *getName() const {
+      return &BuiltinNames[StrTabOffset];
+    }
+    bool operator<(StringRef RHS) const {
+      return strncmp(getName(), RHS.data(), RHS.size()) < 0;
+    }
+  };
+  StringRef TargetPrefix(TargetPrefixStr);
+
+  if (TargetPrefix == "aarch64") {
+    static const BuiltinEntry aarch64Names[] = {
+      {Intrinsic::aarch64_dmb, 0}, // __dmb
+      {Intrinsic::aarch64_dsb, 6}, // __dsb
+      {Intrinsic::aarch64_isb, 12}, // __isb
+    };
+    auto I = std::lower_bound(std::begin(aarch64Names),
+                              std::end(aarch64Names),
+                              BuiltinNameStr);
+    if (I != std::end(aarch64Names) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  if (TargetPrefix == "arm") {
+    static const BuiltinEntry armNames[] = {
+      {Intrinsic::arm_mrc, 18}, // _MoveFromCoprocessor
+      {Intrinsic::arm_mrc2, 39}, // _MoveFromCoprocessor2
+      {Intrinsic::arm_dmb, 0}, // __dmb
+      {Intrinsic::arm_dsb, 6}, // __dsb
+      {Intrinsic::arm_isb, 12}, // __isb
+    };
+    auto I = std::lower_bound(std::begin(armNames),
+                              std::end(armNames),
+                              BuiltinNameStr);
+    if (I != std::end(armNames) &&
+        I->getName() == BuiltinNameStr)
+      return I->IntrinID;
+  }
+  return Intrinsic::not_intrinsic;
+}
+#endif
+
+#if defined(_MSC_VER) && defined(setjmp_undefined_for_msvc)
+// let's return it to _setjmp state
+#  pragma pop_macro("setjmp")
+#  undef setjmp_undefined_for_msvc
+#endif
+
diff --git a/linux-x64/clang/include/llvm/IR/IntrinsicInst.h b/linux-x64/clang/include/llvm/IR/IntrinsicInst.h
index 80d428c..32a62a4 100644
--- a/linux-x64/clang/include/llvm/IR/IntrinsicInst.h
+++ b/linux-x64/clang/include/llvm/IR/IntrinsicInst.h
@@ -66,6 +66,27 @@
   /// This is the common base class for debug info intrinsics.
   class DbgInfoIntrinsic : public IntrinsicInst {
   public:
+    /// \name Casting methods
+    /// @{
+    static bool classof(const IntrinsicInst *I) {
+      switch (I->getIntrinsicID()) {
+      case Intrinsic::dbg_declare:
+      case Intrinsic::dbg_value:
+      case Intrinsic::dbg_addr:
+      case Intrinsic::dbg_label:
+        return true;
+      default: return false;
+      }
+    }
+    static bool classof(const Value *V) {
+      return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
+    }
+    /// @}
+  };
+
+  /// This is the common base class for debug info intrinsics for variables.
+  class DbgVariableIntrinsic : public DbgInfoIntrinsic {
+  public:
     /// Get the location corresponding to the variable referenced by the debug
     /// info intrinsic.  Depending on the intrinsic, this could be the
     /// variable's value or its address.
@@ -93,6 +114,10 @@
       return cast<MetadataAsValue>(getArgOperand(2))->getMetadata();
     }
 
+    /// Get the size (in bits) of the variable, or fragment of the variable that
+    /// is described.
+    Optional<uint64_t> getFragmentSizeInBits() const;
+
     /// \name Casting methods
     /// @{
     static bool classof(const IntrinsicInst *I) {
@@ -111,7 +136,7 @@
   };
 
   /// This represents the llvm.dbg.declare instruction.
-  class DbgDeclareInst : public DbgInfoIntrinsic {
+  class DbgDeclareInst : public DbgVariableIntrinsic {
   public:
     Value *getAddress() const { return getVariableLocation(); }
 
@@ -127,7 +152,7 @@
   };
 
   /// This represents the llvm.dbg.addr instruction.
-  class DbgAddrIntrinsic : public DbgInfoIntrinsic {
+  class DbgAddrIntrinsic : public DbgVariableIntrinsic {
   public:
     Value *getAddress() const { return getVariableLocation(); }
 
@@ -142,7 +167,7 @@
   };
 
   /// This represents the llvm.dbg.value instruction.
-  class DbgValueInst : public DbgInfoIntrinsic {
+  class DbgValueInst : public DbgVariableIntrinsic {
   public:
     Value *getValue() const {
       return getVariableLocation(/* AllowNullOp = */ false);
@@ -159,6 +184,28 @@
     /// @}
   };
 
+  /// This represents the llvm.dbg.label instruction.
+  class DbgLabelInst : public DbgInfoIntrinsic {
+  public:
+    DILabel *getLabel() const {
+      return cast<DILabel>(getRawLabel());
+    }
+
+    Metadata *getRawLabel() const {
+      return cast<MetadataAsValue>(getArgOperand(0))->getMetadata();
+    }
+
+    /// Methods for support type inquiry through isa, cast, and dyn_cast:
+    /// @{
+    static bool classof(const IntrinsicInst *I) {
+      return I->getIntrinsicID() == Intrinsic::dbg_label;
+    }
+    static bool classof(const Value *V) {
+      return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
+    }
+    /// @}
+  };
+
   /// This is the common base class for constrained floating point intrinsics.
   class ConstrainedFPIntrinsic : public IntrinsicInst {
   public:
@@ -266,6 +313,71 @@
     }
   };
 
+  /// Common base class for all memory transfer intrinsics. Simply provides
+  /// common methods.
+  template <class BaseCL> class MemTransferBase : public BaseCL {
+  private:
+    enum { ARG_SOURCE = 1 };
+
+  public:
+    /// Return the arguments to the instruction.
+    Value *getRawSource() const {
+      return const_cast<Value *>(BaseCL::getArgOperand(ARG_SOURCE));
+    }
+    const Use &getRawSourceUse() const {
+      return BaseCL::getArgOperandUse(ARG_SOURCE);
+    }
+    Use &getRawSourceUse() { return BaseCL::getArgOperandUse(ARG_SOURCE); }
+
+    /// This is just like getRawSource, but it strips off any cast
+    /// instructions that feed it, giving the original input.  The returned
+    /// value is guaranteed to be a pointer.
+    Value *getSource() const { return getRawSource()->stripPointerCasts(); }
+
+    unsigned getSourceAddressSpace() const {
+      return cast<PointerType>(getRawSource()->getType())->getAddressSpace();
+    }
+
+    unsigned getSourceAlignment() const {
+      return BaseCL::getParamAlignment(ARG_SOURCE);
+    }
+
+    void setSource(Value *Ptr) {
+      assert(getRawSource()->getType() == Ptr->getType() &&
+             "setSource called with pointer of wrong type!");
+      BaseCL::setArgOperand(ARG_SOURCE, Ptr);
+    }
+
+    void setSourceAlignment(unsigned Align) {
+      BaseCL::removeParamAttr(ARG_SOURCE, Attribute::Alignment);
+      if (Align > 0)
+        BaseCL::addParamAttr(ARG_SOURCE, Attribute::getWithAlignment(
+                                             BaseCL::getContext(), Align));
+    }
+  };
+
+  /// Common base class for all memset intrinsics. Simply provides
+  /// common methods.
+  template <class BaseCL> class MemSetBase : public BaseCL {
+  private:
+    enum { ARG_VALUE = 1 };
+
+  public:
+    Value *getValue() const {
+      return const_cast<Value *>(BaseCL::getArgOperand(ARG_VALUE));
+    }
+    const Use &getValueUse() const {
+      return BaseCL::getArgOperandUse(ARG_VALUE);
+    }
+    Use &getValueUse() { return BaseCL::getArgOperandUse(ARG_VALUE); }
+
+    void setValue(Value *Val) {
+      assert(getValue()->getType() == Val->getType() &&
+             "setValue called with value of wrong type!");
+      BaseCL::setArgOperand(ARG_VALUE, Val);
+    }
+  };
+
   // The common base class for the atomic memset/memmove/memcpy intrinsics
   // i.e. llvm.element.unordered.atomic.memset/memcpy/memmove
   class AtomicMemIntrinsic : public MemIntrinsicBase<AtomicMemIntrinsic> {
@@ -308,23 +420,8 @@
 
   /// This class represents atomic memset intrinsic
   // i.e. llvm.element.unordered.atomic.memset
-  class AtomicMemSetInst : public AtomicMemIntrinsic {
-  private:
-    enum { ARG_VALUE = 1 };
-
+  class AtomicMemSetInst : public MemSetBase<AtomicMemIntrinsic> {
   public:
-    Value *getValue() const {
-      return const_cast<Value *>(getArgOperand(ARG_VALUE));
-    }
-    const Use &getValueUse() const { return getArgOperandUse(ARG_VALUE); }
-    Use &getValueUse() { return getArgOperandUse(ARG_VALUE); }
-
-    void setValue(Value *Val) {
-      assert(getValue()->getType() == Val->getType() &&
-             "setValue called with value of wrong type!");
-      setArgOperand(ARG_VALUE, Val);
-    }
-
     static bool classof(const IntrinsicInst *I) {
       return I->getIntrinsicID() == Intrinsic::memset_element_unordered_atomic;
     }
@@ -335,44 +432,8 @@
 
   // This class wraps the atomic memcpy/memmove intrinsics
   // i.e. llvm.element.unordered.atomic.memcpy/memmove
-  class AtomicMemTransferInst : public AtomicMemIntrinsic {
-  private:
-    enum { ARG_SOURCE = 1 };
-
+  class AtomicMemTransferInst : public MemTransferBase<AtomicMemIntrinsic> {
   public:
-    /// Return the arguments to the instruction.
-    Value *getRawSource() const {
-      return const_cast<Value *>(getArgOperand(ARG_SOURCE));
-    }
-    const Use &getRawSourceUse() const { return getArgOperandUse(ARG_SOURCE); }
-    Use &getRawSourceUse() { return getArgOperandUse(ARG_SOURCE); }
-
-    /// This is just like getRawSource, but it strips off any cast
-    /// instructions that feed it, giving the original input.  The returned
-    /// value is guaranteed to be a pointer.
-    Value *getSource() const { return getRawSource()->stripPointerCasts(); }
-
-    unsigned getSourceAddressSpace() const {
-      return cast<PointerType>(getRawSource()->getType())->getAddressSpace();
-    }
-
-    unsigned getSourceAlignment() const {
-      return getParamAlignment(ARG_SOURCE);
-    }
-
-    void setSource(Value *Ptr) {
-      assert(getRawSource()->getType() == Ptr->getType() &&
-             "setSource called with pointer of wrong type!");
-      setArgOperand(ARG_SOURCE, Ptr);
-    }
-
-    void setSourceAlignment(unsigned Align) {
-      removeParamAttr(ARG_SOURCE, Attribute::Alignment);
-      if (Align > 0)
-        addParamAttr(ARG_SOURCE,
-                     Attribute::getWithAlignment(getContext(), Align));
-    }
-
     static bool classof(const IntrinsicInst *I) {
       switch (I->getIntrinsicID()) {
       case Intrinsic::memcpy_element_unordered_atomic:
@@ -444,19 +505,8 @@
   };
 
   /// This class wraps the llvm.memset intrinsic.
-  class MemSetInst : public MemIntrinsic {
+  class MemSetInst : public MemSetBase<MemIntrinsic> {
   public:
-    /// Return the arguments to the instruction.
-    Value *getValue() const { return const_cast<Value*>(getArgOperand(1)); }
-    const Use &getValueUse() const { return getArgOperandUse(1); }
-    Use &getValueUse() { return getArgOperandUse(1); }
-
-    void setValue(Value *Val) {
-      assert(getValue()->getType() == Val->getType() &&
-             "setValue called with value of wrong type!");
-      setArgOperand(1, Val);
-    }
-
     // Methods for support type inquiry through isa, cast, and dyn_cast:
     static bool classof(const IntrinsicInst *I) {
       return I->getIntrinsicID() == Intrinsic::memset;
@@ -467,42 +517,8 @@
   };
 
   /// This class wraps the llvm.memcpy/memmove intrinsics.
-  class MemTransferInst : public MemIntrinsic {
-  private:
-    enum { ARG_SOURCE = 1 };
-
+  class MemTransferInst : public MemTransferBase<MemIntrinsic> {
   public:
-    /// Return the arguments to the instruction.
-    Value *getRawSource() const { return const_cast<Value*>(getArgOperand(ARG_SOURCE)); }
-    const Use &getRawSourceUse() const { return getArgOperandUse(ARG_SOURCE); }
-    Use &getRawSourceUse() { return getArgOperandUse(ARG_SOURCE); }
-
-    /// This is just like getRawSource, but it strips off any cast
-    /// instructions that feed it, giving the original input.  The returned
-    /// value is guaranteed to be a pointer.
-    Value *getSource() const { return getRawSource()->stripPointerCasts(); }
-
-    unsigned getSourceAddressSpace() const {
-      return cast<PointerType>(getRawSource()->getType())->getAddressSpace();
-    }
-
-    unsigned getSourceAlignment() const {
-      return getParamAlignment(ARG_SOURCE);
-    }
-
-    void setSource(Value *Ptr) {
-      assert(getRawSource()->getType() == Ptr->getType() &&
-             "setSource called with pointer of wrong type!");
-      setArgOperand(ARG_SOURCE, Ptr);
-    }
-
-    void setSourceAlignment(unsigned Align) {
-      removeParamAttr(ARG_SOURCE, Attribute::Alignment);
-      if (Align > 0)
-        addParamAttr(ARG_SOURCE,
-                     Attribute::getWithAlignment(getContext(), Align));
-    }
-
     // Methods for support type inquiry through isa, cast, and dyn_cast:
     static bool classof(const IntrinsicInst *I) {
       return I->getIntrinsicID() == Intrinsic::memcpy ||
@@ -571,23 +587,8 @@
   /// This class represents any memset intrinsic
   // i.e. llvm.element.unordered.atomic.memset
   // and  llvm.memset
-  class AnyMemSetInst : public AnyMemIntrinsic {
-  private:
-    enum { ARG_VALUE = 1 };
-
+  class AnyMemSetInst : public MemSetBase<AnyMemIntrinsic> {
   public:
-    Value *getValue() const {
-      return const_cast<Value *>(getArgOperand(ARG_VALUE));
-    }
-    const Use &getValueUse() const { return getArgOperandUse(ARG_VALUE); }
-    Use &getValueUse() { return getArgOperandUse(ARG_VALUE); }
-
-    void setValue(Value *Val) {
-      assert(getValue()->getType() == Val->getType() &&
-             "setValue called with value of wrong type!");
-      setArgOperand(ARG_VALUE, Val);
-    }
-
     static bool classof(const IntrinsicInst *I) {
       switch (I->getIntrinsicID()) {
       case Intrinsic::memset:
@@ -605,44 +606,8 @@
   // This class wraps any memcpy/memmove intrinsics
   // i.e. llvm.element.unordered.atomic.memcpy/memmove
   // and  llvm.memcpy/memmove
-  class AnyMemTransferInst : public AnyMemIntrinsic {
-  private:
-    enum { ARG_SOURCE = 1 };
-
+  class AnyMemTransferInst : public MemTransferBase<AnyMemIntrinsic> {
   public:
-    /// Return the arguments to the instruction.
-    Value *getRawSource() const {
-      return const_cast<Value *>(getArgOperand(ARG_SOURCE));
-    }
-    const Use &getRawSourceUse() const { return getArgOperandUse(ARG_SOURCE); }
-    Use &getRawSourceUse() { return getArgOperandUse(ARG_SOURCE); }
-
-    /// This is just like getRawSource, but it strips off any cast
-    /// instructions that feed it, giving the original input.  The returned
-    /// value is guaranteed to be a pointer.
-    Value *getSource() const { return getRawSource()->stripPointerCasts(); }
-
-    unsigned getSourceAddressSpace() const {
-      return cast<PointerType>(getRawSource()->getType())->getAddressSpace();
-    }
-
-    unsigned getSourceAlignment() const {
-      return getParamAlignment(ARG_SOURCE);
-    }
-
-    void setSource(Value *Ptr) {
-      assert(getRawSource()->getType() == Ptr->getType() &&
-             "setSource called with pointer of wrong type!");
-      setArgOperand(ARG_SOURCE, Ptr);
-    }
-
-    void setSourceAlignment(unsigned Align) {
-      removeParamAttr(ARG_SOURCE, Attribute::Alignment);
-      if (Align > 0)
-        addParamAttr(ARG_SOURCE,
-                     Attribute::getWithAlignment(getContext(), Align));
-    }
-
     static bool classof(const IntrinsicInst *I) {
       switch (I->getIntrinsicID()) {
       case Intrinsic::memcpy:
diff --git a/linux-x64/clang/include/llvm/IR/Intrinsics.gen b/linux-x64/clang/include/llvm/IR/Intrinsics.gen
deleted file mode 100644
index 7919f07..0000000
--- a/linux-x64/clang/include/llvm/IR/Intrinsics.gen
+++ /dev/null
@@ -1,36169 +0,0 @@
-/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
-|*                                                                            *|
-|* Intrinsic Function Source Fragment                                         *|
-|*                                                                            *|
-|* Automatically generated file, do not edit!                                 *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-// VisualStudio defines setjmp as _setjmp
-#if defined(_MSC_VER) && defined(setjmp) && \
-                         !defined(setjmp_undefined_for_msvc)
-#  pragma push_macro("setjmp")
-#  undef setjmp
-#  define setjmp_undefined_for_msvc
-#endif
-
-// Enum values for Intrinsics.h
-#ifdef GET_INTRINSIC_ENUM_VALUES
-    addressofreturnaddress,                    // llvm.addressofreturnaddress
-    adjust_trampoline,                         // llvm.adjust.trampoline
-    annotation,                                // llvm.annotation
-    assume,                                    // llvm.assume
-    bitreverse,                                // llvm.bitreverse
-    bswap,                                     // llvm.bswap
-    canonicalize,                              // llvm.canonicalize
-    ceil,                                      // llvm.ceil
-    clear_cache,                               // llvm.clear_cache
-    codeview_annotation,                       // llvm.codeview.annotation
-    convert_from_fp16,                         // llvm.convert.from.fp16
-    convert_to_fp16,                           // llvm.convert.to.fp16
-    copysign,                                  // llvm.copysign
-    coro_alloc,                                // llvm.coro.alloc
-    coro_begin,                                // llvm.coro.begin
-    coro_destroy,                              // llvm.coro.destroy
-    coro_done,                                 // llvm.coro.done
-    coro_end,                                  // llvm.coro.end
-    coro_frame,                                // llvm.coro.frame
-    coro_free,                                 // llvm.coro.free
-    coro_id,                                   // llvm.coro.id
-    coro_param,                                // llvm.coro.param
-    coro_promise,                              // llvm.coro.promise
-    coro_resume,                               // llvm.coro.resume
-    coro_save,                                 // llvm.coro.save
-    coro_size,                                 // llvm.coro.size
-    coro_subfn_addr,                           // llvm.coro.subfn.addr
-    coro_suspend,                              // llvm.coro.suspend
-    cos,                                       // llvm.cos
-    ctlz,                                      // llvm.ctlz
-    ctpop,                                     // llvm.ctpop
-    cttz,                                      // llvm.cttz
-    dbg_addr,                                  // llvm.dbg.addr
-    dbg_declare,                               // llvm.dbg.declare
-    dbg_value,                                 // llvm.dbg.value
-    debugtrap,                                 // llvm.debugtrap
-    donothing,                                 // llvm.donothing
-    eh_dwarf_cfa,                              // llvm.eh.dwarf.cfa
-    eh_exceptioncode,                          // llvm.eh.exceptioncode
-    eh_exceptionpointer,                       // llvm.eh.exceptionpointer
-    eh_return_i32,                             // llvm.eh.return.i32
-    eh_return_i64,                             // llvm.eh.return.i64
-    eh_sjlj_callsite,                          // llvm.eh.sjlj.callsite
-    eh_sjlj_functioncontext,                   // llvm.eh.sjlj.functioncontext
-    eh_sjlj_longjmp,                           // llvm.eh.sjlj.longjmp
-    eh_sjlj_lsda,                              // llvm.eh.sjlj.lsda
-    eh_sjlj_setjmp,                            // llvm.eh.sjlj.setjmp
-    eh_sjlj_setup_dispatch,                    // llvm.eh.sjlj.setup.dispatch
-    eh_typeid_for,                             // llvm.eh.typeid.for
-    eh_unwind_init,                            // llvm.eh.unwind.init
-    exp,                                       // llvm.exp
-    exp2,                                      // llvm.exp2
-    expect,                                    // llvm.expect
-    experimental_constrained_cos,              // llvm.experimental.constrained.cos
-    experimental_constrained_exp,              // llvm.experimental.constrained.exp
-    experimental_constrained_exp2,             // llvm.experimental.constrained.exp2
-    experimental_constrained_fadd,             // llvm.experimental.constrained.fadd
-    experimental_constrained_fdiv,             // llvm.experimental.constrained.fdiv
-    experimental_constrained_fma,              // llvm.experimental.constrained.fma
-    experimental_constrained_fmul,             // llvm.experimental.constrained.fmul
-    experimental_constrained_frem,             // llvm.experimental.constrained.frem
-    experimental_constrained_fsub,             // llvm.experimental.constrained.fsub
-    experimental_constrained_log,              // llvm.experimental.constrained.log
-    experimental_constrained_log10,            // llvm.experimental.constrained.log10
-    experimental_constrained_log2,             // llvm.experimental.constrained.log2
-    experimental_constrained_nearbyint,        // llvm.experimental.constrained.nearbyint
-    experimental_constrained_pow,              // llvm.experimental.constrained.pow
-    experimental_constrained_powi,             // llvm.experimental.constrained.powi
-    experimental_constrained_rint,             // llvm.experimental.constrained.rint
-    experimental_constrained_sin,              // llvm.experimental.constrained.sin
-    experimental_constrained_sqrt,             // llvm.experimental.constrained.sqrt
-    experimental_deoptimize,                   // llvm.experimental.deoptimize
-    experimental_gc_relocate,                  // llvm.experimental.gc.relocate
-    experimental_gc_result,                    // llvm.experimental.gc.result
-    experimental_gc_statepoint,                // llvm.experimental.gc.statepoint
-    experimental_guard,                        // llvm.experimental.guard
-    experimental_patchpoint_i64,               // llvm.experimental.patchpoint.i64
-    experimental_patchpoint_void,              // llvm.experimental.patchpoint.void
-    experimental_stackmap,                     // llvm.experimental.stackmap
-    experimental_vector_reduce_add,            // llvm.experimental.vector.reduce.add
-    experimental_vector_reduce_and,            // llvm.experimental.vector.reduce.and
-    experimental_vector_reduce_fadd,           // llvm.experimental.vector.reduce.fadd
-    experimental_vector_reduce_fmax,           // llvm.experimental.vector.reduce.fmax
-    experimental_vector_reduce_fmin,           // llvm.experimental.vector.reduce.fmin
-    experimental_vector_reduce_fmul,           // llvm.experimental.vector.reduce.fmul
-    experimental_vector_reduce_mul,            // llvm.experimental.vector.reduce.mul
-    experimental_vector_reduce_or,             // llvm.experimental.vector.reduce.or
-    experimental_vector_reduce_smax,           // llvm.experimental.vector.reduce.smax
-    experimental_vector_reduce_smin,           // llvm.experimental.vector.reduce.smin
-    experimental_vector_reduce_umax,           // llvm.experimental.vector.reduce.umax
-    experimental_vector_reduce_umin,           // llvm.experimental.vector.reduce.umin
-    experimental_vector_reduce_xor,            // llvm.experimental.vector.reduce.xor
-    fabs,                                      // llvm.fabs
-    floor,                                     // llvm.floor
-    flt_rounds,                                // llvm.flt.rounds
-    fma,                                       // llvm.fma
-    fmuladd,                                   // llvm.fmuladd
-    frameaddress,                              // llvm.frameaddress
-    gcread,                                    // llvm.gcread
-    gcroot,                                    // llvm.gcroot
-    gcwrite,                                   // llvm.gcwrite
-    get_dynamic_area_offset,                   // llvm.get.dynamic.area.offset
-    icall_branch_funnel,                       // llvm.icall.branch.funnel
-    init_trampoline,                           // llvm.init.trampoline
-    instrprof_increment,                       // llvm.instrprof.increment
-    instrprof_increment_step,                  // llvm.instrprof.increment.step
-    instrprof_value_profile,                   // llvm.instrprof.value.profile
-    invariant_end,                             // llvm.invariant.end
-    invariant_group_barrier,                   // llvm.invariant.group.barrier
-    invariant_start,                           // llvm.invariant.start
-    lifetime_end,                              // llvm.lifetime.end
-    lifetime_start,                            // llvm.lifetime.start
-    load_relative,                             // llvm.load.relative
-    localaddress,                              // llvm.localaddress
-    localescape,                               // llvm.localescape
-    localrecover,                              // llvm.localrecover
-    log,                                       // llvm.log
-    log10,                                     // llvm.log10
-    log2,                                      // llvm.log2
-    longjmp,                                   // llvm.longjmp
-    masked_compressstore,                      // llvm.masked.compressstore
-    masked_expandload,                         // llvm.masked.expandload
-    masked_gather,                             // llvm.masked.gather
-    masked_load,                               // llvm.masked.load
-    masked_scatter,                            // llvm.masked.scatter
-    masked_store,                              // llvm.masked.store
-    maxnum,                                    // llvm.maxnum
-    memcpy,                                    // llvm.memcpy
-    memcpy_element_unordered_atomic,           // llvm.memcpy.element.unordered.atomic
-    memmove,                                   // llvm.memmove
-    memmove_element_unordered_atomic,          // llvm.memmove.element.unordered.atomic
-    memset,                                    // llvm.memset
-    memset_element_unordered_atomic,           // llvm.memset.element.unordered.atomic
-    minnum,                                    // llvm.minnum
-    nearbyint,                                 // llvm.nearbyint
-    objectsize,                                // llvm.objectsize
-    pcmarker,                                  // llvm.pcmarker
-    pow,                                       // llvm.pow
-    powi,                                      // llvm.powi
-    prefetch,                                  // llvm.prefetch
-    ptr_annotation,                            // llvm.ptr.annotation
-    read_register,                             // llvm.read_register
-    readcyclecounter,                          // llvm.readcyclecounter
-    returnaddress,                             // llvm.returnaddress
-    rint,                                      // llvm.rint
-    round,                                     // llvm.round
-    sadd_with_overflow,                        // llvm.sadd.with.overflow
-    setjmp,                                    // llvm.setjmp
-    sideeffect,                                // llvm.sideeffect
-    siglongjmp,                                // llvm.siglongjmp
-    sigsetjmp,                                 // llvm.sigsetjmp
-    sin,                                       // llvm.sin
-    smul_with_overflow,                        // llvm.smul.with.overflow
-    sqrt,                                      // llvm.sqrt
-    ssa_copy,                                  // llvm.ssa.copy
-    ssub_with_overflow,                        // llvm.ssub.with.overflow
-    stackguard,                                // llvm.stackguard
-    stackprotector,                            // llvm.stackprotector
-    stackrestore,                              // llvm.stackrestore
-    stacksave,                                 // llvm.stacksave
-    thread_pointer,                            // llvm.thread.pointer
-    trap,                                      // llvm.trap
-    trunc,                                     // llvm.trunc
-    type_checked_load,                         // llvm.type.checked.load
-    type_test,                                 // llvm.type.test
-    uadd_with_overflow,                        // llvm.uadd.with.overflow
-    umul_with_overflow,                        // llvm.umul.with.overflow
-    usub_with_overflow,                        // llvm.usub.with.overflow
-    vacopy,                                    // llvm.va_copy
-    vaend,                                     // llvm.va_end
-    vastart,                                   // llvm.va_start
-    var_annotation,                            // llvm.var.annotation
-    write_register,                            // llvm.write_register
-    xray_customevent,                          // llvm.xray.customevent
-    aarch64_clrex,                             // llvm.aarch64.clrex
-    aarch64_crc32b,                            // llvm.aarch64.crc32b
-    aarch64_crc32cb,                           // llvm.aarch64.crc32cb
-    aarch64_crc32ch,                           // llvm.aarch64.crc32ch
-    aarch64_crc32cw,                           // llvm.aarch64.crc32cw
-    aarch64_crc32cx,                           // llvm.aarch64.crc32cx
-    aarch64_crc32h,                            // llvm.aarch64.crc32h
-    aarch64_crc32w,                            // llvm.aarch64.crc32w
-    aarch64_crc32x,                            // llvm.aarch64.crc32x
-    aarch64_crypto_aesd,                       // llvm.aarch64.crypto.aesd
-    aarch64_crypto_aese,                       // llvm.aarch64.crypto.aese
-    aarch64_crypto_aesimc,                     // llvm.aarch64.crypto.aesimc
-    aarch64_crypto_aesmc,                      // llvm.aarch64.crypto.aesmc
-    aarch64_crypto_sha1c,                      // llvm.aarch64.crypto.sha1c
-    aarch64_crypto_sha1h,                      // llvm.aarch64.crypto.sha1h
-    aarch64_crypto_sha1m,                      // llvm.aarch64.crypto.sha1m
-    aarch64_crypto_sha1p,                      // llvm.aarch64.crypto.sha1p
-    aarch64_crypto_sha1su0,                    // llvm.aarch64.crypto.sha1su0
-    aarch64_crypto_sha1su1,                    // llvm.aarch64.crypto.sha1su1
-    aarch64_crypto_sha256h,                    // llvm.aarch64.crypto.sha256h
-    aarch64_crypto_sha256h2,                   // llvm.aarch64.crypto.sha256h2
-    aarch64_crypto_sha256su0,                  // llvm.aarch64.crypto.sha256su0
-    aarch64_crypto_sha256su1,                  // llvm.aarch64.crypto.sha256su1
-    aarch64_dmb,                               // llvm.aarch64.dmb
-    aarch64_dsb,                               // llvm.aarch64.dsb
-    aarch64_hint,                              // llvm.aarch64.hint
-    aarch64_isb,                               // llvm.aarch64.isb
-    aarch64_ldaxp,                             // llvm.aarch64.ldaxp
-    aarch64_ldaxr,                             // llvm.aarch64.ldaxr
-    aarch64_ldxp,                              // llvm.aarch64.ldxp
-    aarch64_ldxr,                              // llvm.aarch64.ldxr
-    aarch64_neon_abs,                          // llvm.aarch64.neon.abs
-    aarch64_neon_addhn,                        // llvm.aarch64.neon.addhn
-    aarch64_neon_addp,                         // llvm.aarch64.neon.addp
-    aarch64_neon_cls,                          // llvm.aarch64.neon.cls
-    aarch64_neon_fabd,                         // llvm.aarch64.neon.fabd
-    aarch64_neon_facge,                        // llvm.aarch64.neon.facge
-    aarch64_neon_facgt,                        // llvm.aarch64.neon.facgt
-    aarch64_neon_faddv,                        // llvm.aarch64.neon.faddv
-    aarch64_neon_fcvtas,                       // llvm.aarch64.neon.fcvtas
-    aarch64_neon_fcvtau,                       // llvm.aarch64.neon.fcvtau
-    aarch64_neon_fcvtms,                       // llvm.aarch64.neon.fcvtms
-    aarch64_neon_fcvtmu,                       // llvm.aarch64.neon.fcvtmu
-    aarch64_neon_fcvtns,                       // llvm.aarch64.neon.fcvtns
-    aarch64_neon_fcvtnu,                       // llvm.aarch64.neon.fcvtnu
-    aarch64_neon_fcvtps,                       // llvm.aarch64.neon.fcvtps
-    aarch64_neon_fcvtpu,                       // llvm.aarch64.neon.fcvtpu
-    aarch64_neon_fcvtxn,                       // llvm.aarch64.neon.fcvtxn
-    aarch64_neon_fcvtzs,                       // llvm.aarch64.neon.fcvtzs
-    aarch64_neon_fcvtzu,                       // llvm.aarch64.neon.fcvtzu
-    aarch64_neon_fmax,                         // llvm.aarch64.neon.fmax
-    aarch64_neon_fmaxnm,                       // llvm.aarch64.neon.fmaxnm
-    aarch64_neon_fmaxnmp,                      // llvm.aarch64.neon.fmaxnmp
-    aarch64_neon_fmaxnmv,                      // llvm.aarch64.neon.fmaxnmv
-    aarch64_neon_fmaxp,                        // llvm.aarch64.neon.fmaxp
-    aarch64_neon_fmaxv,                        // llvm.aarch64.neon.fmaxv
-    aarch64_neon_fmin,                         // llvm.aarch64.neon.fmin
-    aarch64_neon_fminnm,                       // llvm.aarch64.neon.fminnm
-    aarch64_neon_fminnmp,                      // llvm.aarch64.neon.fminnmp
-    aarch64_neon_fminnmv,                      // llvm.aarch64.neon.fminnmv
-    aarch64_neon_fminp,                        // llvm.aarch64.neon.fminp
-    aarch64_neon_fminv,                        // llvm.aarch64.neon.fminv
-    aarch64_neon_fmulx,                        // llvm.aarch64.neon.fmulx
-    aarch64_neon_frecpe,                       // llvm.aarch64.neon.frecpe
-    aarch64_neon_frecps,                       // llvm.aarch64.neon.frecps
-    aarch64_neon_frecpx,                       // llvm.aarch64.neon.frecpx
-    aarch64_neon_frintn,                       // llvm.aarch64.neon.frintn
-    aarch64_neon_frsqrte,                      // llvm.aarch64.neon.frsqrte
-    aarch64_neon_frsqrts,                      // llvm.aarch64.neon.frsqrts
-    aarch64_neon_ld1x2,                        // llvm.aarch64.neon.ld1x2
-    aarch64_neon_ld1x3,                        // llvm.aarch64.neon.ld1x3
-    aarch64_neon_ld1x4,                        // llvm.aarch64.neon.ld1x4
-    aarch64_neon_ld2,                          // llvm.aarch64.neon.ld2
-    aarch64_neon_ld2lane,                      // llvm.aarch64.neon.ld2lane
-    aarch64_neon_ld2r,                         // llvm.aarch64.neon.ld2r
-    aarch64_neon_ld3,                          // llvm.aarch64.neon.ld3
-    aarch64_neon_ld3lane,                      // llvm.aarch64.neon.ld3lane
-    aarch64_neon_ld3r,                         // llvm.aarch64.neon.ld3r
-    aarch64_neon_ld4,                          // llvm.aarch64.neon.ld4
-    aarch64_neon_ld4lane,                      // llvm.aarch64.neon.ld4lane
-    aarch64_neon_ld4r,                         // llvm.aarch64.neon.ld4r
-    aarch64_neon_pmul,                         // llvm.aarch64.neon.pmul
-    aarch64_neon_pmull,                        // llvm.aarch64.neon.pmull
-    aarch64_neon_pmull64,                      // llvm.aarch64.neon.pmull64
-    aarch64_neon_raddhn,                       // llvm.aarch64.neon.raddhn
-    aarch64_neon_rbit,                         // llvm.aarch64.neon.rbit
-    aarch64_neon_rshrn,                        // llvm.aarch64.neon.rshrn
-    aarch64_neon_rsubhn,                       // llvm.aarch64.neon.rsubhn
-    aarch64_neon_sabd,                         // llvm.aarch64.neon.sabd
-    aarch64_neon_saddlp,                       // llvm.aarch64.neon.saddlp
-    aarch64_neon_saddlv,                       // llvm.aarch64.neon.saddlv
-    aarch64_neon_saddv,                        // llvm.aarch64.neon.saddv
-    aarch64_neon_scalar_sqxtn,                 // llvm.aarch64.neon.scalar.sqxtn
-    aarch64_neon_scalar_sqxtun,                // llvm.aarch64.neon.scalar.sqxtun
-    aarch64_neon_scalar_uqxtn,                 // llvm.aarch64.neon.scalar.uqxtn
-    aarch64_neon_shadd,                        // llvm.aarch64.neon.shadd
-    aarch64_neon_shll,                         // llvm.aarch64.neon.shll
-    aarch64_neon_shsub,                        // llvm.aarch64.neon.shsub
-    aarch64_neon_smax,                         // llvm.aarch64.neon.smax
-    aarch64_neon_smaxp,                        // llvm.aarch64.neon.smaxp
-    aarch64_neon_smaxv,                        // llvm.aarch64.neon.smaxv
-    aarch64_neon_smin,                         // llvm.aarch64.neon.smin
-    aarch64_neon_sminp,                        // llvm.aarch64.neon.sminp
-    aarch64_neon_sminv,                        // llvm.aarch64.neon.sminv
-    aarch64_neon_smull,                        // llvm.aarch64.neon.smull
-    aarch64_neon_sqabs,                        // llvm.aarch64.neon.sqabs
-    aarch64_neon_sqadd,                        // llvm.aarch64.neon.sqadd
-    aarch64_neon_sqdmulh,                      // llvm.aarch64.neon.sqdmulh
-    aarch64_neon_sqdmull,                      // llvm.aarch64.neon.sqdmull
-    aarch64_neon_sqdmulls_scalar,              // llvm.aarch64.neon.sqdmulls.scalar
-    aarch64_neon_sqneg,                        // llvm.aarch64.neon.sqneg
-    aarch64_neon_sqrdmulh,                     // llvm.aarch64.neon.sqrdmulh
-    aarch64_neon_sqrshl,                       // llvm.aarch64.neon.sqrshl
-    aarch64_neon_sqrshrn,                      // llvm.aarch64.neon.sqrshrn
-    aarch64_neon_sqrshrun,                     // llvm.aarch64.neon.sqrshrun
-    aarch64_neon_sqshl,                        // llvm.aarch64.neon.sqshl
-    aarch64_neon_sqshlu,                       // llvm.aarch64.neon.sqshlu
-    aarch64_neon_sqshrn,                       // llvm.aarch64.neon.sqshrn
-    aarch64_neon_sqshrun,                      // llvm.aarch64.neon.sqshrun
-    aarch64_neon_sqsub,                        // llvm.aarch64.neon.sqsub
-    aarch64_neon_sqxtn,                        // llvm.aarch64.neon.sqxtn
-    aarch64_neon_sqxtun,                       // llvm.aarch64.neon.sqxtun
-    aarch64_neon_srhadd,                       // llvm.aarch64.neon.srhadd
-    aarch64_neon_srshl,                        // llvm.aarch64.neon.srshl
-    aarch64_neon_sshl,                         // llvm.aarch64.neon.sshl
-    aarch64_neon_sshll,                        // llvm.aarch64.neon.sshll
-    aarch64_neon_st1x2,                        // llvm.aarch64.neon.st1x2
-    aarch64_neon_st1x3,                        // llvm.aarch64.neon.st1x3
-    aarch64_neon_st1x4,                        // llvm.aarch64.neon.st1x4
-    aarch64_neon_st2,                          // llvm.aarch64.neon.st2
-    aarch64_neon_st2lane,                      // llvm.aarch64.neon.st2lane
-    aarch64_neon_st3,                          // llvm.aarch64.neon.st3
-    aarch64_neon_st3lane,                      // llvm.aarch64.neon.st3lane
-    aarch64_neon_st4,                          // llvm.aarch64.neon.st4
-    aarch64_neon_st4lane,                      // llvm.aarch64.neon.st4lane
-    aarch64_neon_subhn,                        // llvm.aarch64.neon.subhn
-    aarch64_neon_suqadd,                       // llvm.aarch64.neon.suqadd
-    aarch64_neon_tbl1,                         // llvm.aarch64.neon.tbl1
-    aarch64_neon_tbl2,                         // llvm.aarch64.neon.tbl2
-    aarch64_neon_tbl3,                         // llvm.aarch64.neon.tbl3
-    aarch64_neon_tbl4,                         // llvm.aarch64.neon.tbl4
-    aarch64_neon_tbx1,                         // llvm.aarch64.neon.tbx1
-    aarch64_neon_tbx2,                         // llvm.aarch64.neon.tbx2
-    aarch64_neon_tbx3,                         // llvm.aarch64.neon.tbx3
-    aarch64_neon_tbx4,                         // llvm.aarch64.neon.tbx4
-    aarch64_neon_uabd,                         // llvm.aarch64.neon.uabd
-    aarch64_neon_uaddlp,                       // llvm.aarch64.neon.uaddlp
-    aarch64_neon_uaddlv,                       // llvm.aarch64.neon.uaddlv
-    aarch64_neon_uaddv,                        // llvm.aarch64.neon.uaddv
-    aarch64_neon_uhadd,                        // llvm.aarch64.neon.uhadd
-    aarch64_neon_uhsub,                        // llvm.aarch64.neon.uhsub
-    aarch64_neon_umax,                         // llvm.aarch64.neon.umax
-    aarch64_neon_umaxp,                        // llvm.aarch64.neon.umaxp
-    aarch64_neon_umaxv,                        // llvm.aarch64.neon.umaxv
-    aarch64_neon_umin,                         // llvm.aarch64.neon.umin
-    aarch64_neon_uminp,                        // llvm.aarch64.neon.uminp
-    aarch64_neon_uminv,                        // llvm.aarch64.neon.uminv
-    aarch64_neon_umull,                        // llvm.aarch64.neon.umull
-    aarch64_neon_uqadd,                        // llvm.aarch64.neon.uqadd
-    aarch64_neon_uqrshl,                       // llvm.aarch64.neon.uqrshl
-    aarch64_neon_uqrshrn,                      // llvm.aarch64.neon.uqrshrn
-    aarch64_neon_uqshl,                        // llvm.aarch64.neon.uqshl
-    aarch64_neon_uqshrn,                       // llvm.aarch64.neon.uqshrn
-    aarch64_neon_uqsub,                        // llvm.aarch64.neon.uqsub
-    aarch64_neon_uqxtn,                        // llvm.aarch64.neon.uqxtn
-    aarch64_neon_urecpe,                       // llvm.aarch64.neon.urecpe
-    aarch64_neon_urhadd,                       // llvm.aarch64.neon.urhadd
-    aarch64_neon_urshl,                        // llvm.aarch64.neon.urshl
-    aarch64_neon_ursqrte,                      // llvm.aarch64.neon.ursqrte
-    aarch64_neon_ushl,                         // llvm.aarch64.neon.ushl
-    aarch64_neon_ushll,                        // llvm.aarch64.neon.ushll
-    aarch64_neon_usqadd,                       // llvm.aarch64.neon.usqadd
-    aarch64_neon_vcopy_lane,                   // llvm.aarch64.neon.vcopy.lane
-    aarch64_neon_vcvtfp2fxs,                   // llvm.aarch64.neon.vcvtfp2fxs
-    aarch64_neon_vcvtfp2fxu,                   // llvm.aarch64.neon.vcvtfp2fxu
-    aarch64_neon_vcvtfp2hf,                    // llvm.aarch64.neon.vcvtfp2hf
-    aarch64_neon_vcvtfxs2fp,                   // llvm.aarch64.neon.vcvtfxs2fp
-    aarch64_neon_vcvtfxu2fp,                   // llvm.aarch64.neon.vcvtfxu2fp
-    aarch64_neon_vcvthf2fp,                    // llvm.aarch64.neon.vcvthf2fp
-    aarch64_neon_vsli,                         // llvm.aarch64.neon.vsli
-    aarch64_neon_vsri,                         // llvm.aarch64.neon.vsri
-    aarch64_sdiv,                              // llvm.aarch64.sdiv
-    aarch64_sisd_fabd,                         // llvm.aarch64.sisd.fabd
-    aarch64_sisd_fcvtxn,                       // llvm.aarch64.sisd.fcvtxn
-    aarch64_stlxp,                             // llvm.aarch64.stlxp
-    aarch64_stlxr,                             // llvm.aarch64.stlxr
-    aarch64_stxp,                              // llvm.aarch64.stxp
-    aarch64_stxr,                              // llvm.aarch64.stxr
-    aarch64_udiv,                              // llvm.aarch64.udiv
-    amdgcn_alignbit,                           // llvm.amdgcn.alignbit
-    amdgcn_alignbyte,                          // llvm.amdgcn.alignbyte
-    amdgcn_atomic_dec,                         // llvm.amdgcn.atomic.dec
-    amdgcn_atomic_inc,                         // llvm.amdgcn.atomic.inc
-    amdgcn_break,                              // llvm.amdgcn.break
-    amdgcn_buffer_atomic_add,                  // llvm.amdgcn.buffer.atomic.add
-    amdgcn_buffer_atomic_and,                  // llvm.amdgcn.buffer.atomic.and
-    amdgcn_buffer_atomic_cmpswap,              // llvm.amdgcn.buffer.atomic.cmpswap
-    amdgcn_buffer_atomic_or,                   // llvm.amdgcn.buffer.atomic.or
-    amdgcn_buffer_atomic_smax,                 // llvm.amdgcn.buffer.atomic.smax
-    amdgcn_buffer_atomic_smin,                 // llvm.amdgcn.buffer.atomic.smin
-    amdgcn_buffer_atomic_sub,                  // llvm.amdgcn.buffer.atomic.sub
-    amdgcn_buffer_atomic_swap,                 // llvm.amdgcn.buffer.atomic.swap
-    amdgcn_buffer_atomic_umax,                 // llvm.amdgcn.buffer.atomic.umax
-    amdgcn_buffer_atomic_umin,                 // llvm.amdgcn.buffer.atomic.umin
-    amdgcn_buffer_atomic_xor,                  // llvm.amdgcn.buffer.atomic.xor
-    amdgcn_buffer_load,                        // llvm.amdgcn.buffer.load
-    amdgcn_buffer_load_format,                 // llvm.amdgcn.buffer.load.format
-    amdgcn_buffer_store,                       // llvm.amdgcn.buffer.store
-    amdgcn_buffer_store_format,                // llvm.amdgcn.buffer.store.format
-    amdgcn_buffer_wbinvl1,                     // llvm.amdgcn.buffer.wbinvl1
-    amdgcn_buffer_wbinvl1_sc,                  // llvm.amdgcn.buffer.wbinvl1.sc
-    amdgcn_buffer_wbinvl1_vol,                 // llvm.amdgcn.buffer.wbinvl1.vol
-    amdgcn_class,                              // llvm.amdgcn.class
-    amdgcn_cos,                                // llvm.amdgcn.cos
-    amdgcn_cubeid,                             // llvm.amdgcn.cubeid
-    amdgcn_cubema,                             // llvm.amdgcn.cubema
-    amdgcn_cubesc,                             // llvm.amdgcn.cubesc
-    amdgcn_cubetc,                             // llvm.amdgcn.cubetc
-    amdgcn_cvt_pk_i16,                         // llvm.amdgcn.cvt.pk.i16
-    amdgcn_cvt_pk_u16,                         // llvm.amdgcn.cvt.pk.u16
-    amdgcn_cvt_pk_u8_f32,                      // llvm.amdgcn.cvt.pk.u8.f32
-    amdgcn_cvt_pknorm_i16,                     // llvm.amdgcn.cvt.pknorm.i16
-    amdgcn_cvt_pknorm_u16,                     // llvm.amdgcn.cvt.pknorm.u16
-    amdgcn_cvt_pkrtz,                          // llvm.amdgcn.cvt.pkrtz
-    amdgcn_dispatch_id,                        // llvm.amdgcn.dispatch.id
-    amdgcn_dispatch_ptr,                       // llvm.amdgcn.dispatch.ptr
-    amdgcn_div_fixup,                          // llvm.amdgcn.div.fixup
-    amdgcn_div_fmas,                           // llvm.amdgcn.div.fmas
-    amdgcn_div_scale,                          // llvm.amdgcn.div.scale
-    amdgcn_ds_bpermute,                        // llvm.amdgcn.ds.bpermute
-    amdgcn_ds_fadd,                            // llvm.amdgcn.ds.fadd
-    amdgcn_ds_fmax,                            // llvm.amdgcn.ds.fmax
-    amdgcn_ds_fmin,                            // llvm.amdgcn.ds.fmin
-    amdgcn_ds_permute,                         // llvm.amdgcn.ds.permute
-    amdgcn_ds_swizzle,                         // llvm.amdgcn.ds.swizzle
-    amdgcn_else,                               // llvm.amdgcn.else
-    amdgcn_else_break,                         // llvm.amdgcn.else.break
-    amdgcn_end_cf,                             // llvm.amdgcn.end.cf
-    amdgcn_exp,                                // llvm.amdgcn.exp
-    amdgcn_exp_compr,                          // llvm.amdgcn.exp.compr
-    amdgcn_fcmp,                               // llvm.amdgcn.fcmp
-    amdgcn_fdiv_fast,                          // llvm.amdgcn.fdiv.fast
-    amdgcn_fmed3,                              // llvm.amdgcn.fmed3
-    amdgcn_fmul_legacy,                        // llvm.amdgcn.fmul.legacy
-    amdgcn_fract,                              // llvm.amdgcn.fract
-    amdgcn_frexp_exp,                          // llvm.amdgcn.frexp.exp
-    amdgcn_frexp_mant,                         // llvm.amdgcn.frexp.mant
-    amdgcn_groupstaticsize,                    // llvm.amdgcn.groupstaticsize
-    amdgcn_icmp,                               // llvm.amdgcn.icmp
-    amdgcn_if,                                 // llvm.amdgcn.if
-    amdgcn_if_break,                           // llvm.amdgcn.if.break
-    amdgcn_image_atomic_add,                   // llvm.amdgcn.image.atomic.add
-    amdgcn_image_atomic_and,                   // llvm.amdgcn.image.atomic.and
-    amdgcn_image_atomic_cmpswap,               // llvm.amdgcn.image.atomic.cmpswap
-    amdgcn_image_atomic_dec,                   // llvm.amdgcn.image.atomic.dec
-    amdgcn_image_atomic_inc,                   // llvm.amdgcn.image.atomic.inc
-    amdgcn_image_atomic_or,                    // llvm.amdgcn.image.atomic.or
-    amdgcn_image_atomic_smax,                  // llvm.amdgcn.image.atomic.smax
-    amdgcn_image_atomic_smin,                  // llvm.amdgcn.image.atomic.smin
-    amdgcn_image_atomic_sub,                   // llvm.amdgcn.image.atomic.sub
-    amdgcn_image_atomic_swap,                  // llvm.amdgcn.image.atomic.swap
-    amdgcn_image_atomic_umax,                  // llvm.amdgcn.image.atomic.umax
-    amdgcn_image_atomic_umin,                  // llvm.amdgcn.image.atomic.umin
-    amdgcn_image_atomic_xor,                   // llvm.amdgcn.image.atomic.xor
-    amdgcn_image_gather4,                      // llvm.amdgcn.image.gather4
-    amdgcn_image_gather4_b,                    // llvm.amdgcn.image.gather4.b
-    amdgcn_image_gather4_b_cl,                 // llvm.amdgcn.image.gather4.b.cl
-    amdgcn_image_gather4_b_cl_o,               // llvm.amdgcn.image.gather4.b.cl.o
-    amdgcn_image_gather4_b_o,                  // llvm.amdgcn.image.gather4.b.o
-    amdgcn_image_gather4_c,                    // llvm.amdgcn.image.gather4.c
-    amdgcn_image_gather4_c_b,                  // llvm.amdgcn.image.gather4.c.b
-    amdgcn_image_gather4_c_b_cl,               // llvm.amdgcn.image.gather4.c.b.cl
-    amdgcn_image_gather4_c_b_cl_o,             // llvm.amdgcn.image.gather4.c.b.cl.o
-    amdgcn_image_gather4_c_b_o,                // llvm.amdgcn.image.gather4.c.b.o
-    amdgcn_image_gather4_c_cl,                 // llvm.amdgcn.image.gather4.c.cl
-    amdgcn_image_gather4_c_cl_o,               // llvm.amdgcn.image.gather4.c.cl.o
-    amdgcn_image_gather4_c_l,                  // llvm.amdgcn.image.gather4.c.l
-    amdgcn_image_gather4_c_l_o,                // llvm.amdgcn.image.gather4.c.l.o
-    amdgcn_image_gather4_c_lz,                 // llvm.amdgcn.image.gather4.c.lz
-    amdgcn_image_gather4_c_lz_o,               // llvm.amdgcn.image.gather4.c.lz.o
-    amdgcn_image_gather4_c_o,                  // llvm.amdgcn.image.gather4.c.o
-    amdgcn_image_gather4_cl,                   // llvm.amdgcn.image.gather4.cl
-    amdgcn_image_gather4_cl_o,                 // llvm.amdgcn.image.gather4.cl.o
-    amdgcn_image_gather4_l,                    // llvm.amdgcn.image.gather4.l
-    amdgcn_image_gather4_l_o,                  // llvm.amdgcn.image.gather4.l.o
-    amdgcn_image_gather4_lz,                   // llvm.amdgcn.image.gather4.lz
-    amdgcn_image_gather4_lz_o,                 // llvm.amdgcn.image.gather4.lz.o
-    amdgcn_image_gather4_o,                    // llvm.amdgcn.image.gather4.o
-    amdgcn_image_getlod,                       // llvm.amdgcn.image.getlod
-    amdgcn_image_getresinfo,                   // llvm.amdgcn.image.getresinfo
-    amdgcn_image_load,                         // llvm.amdgcn.image.load
-    amdgcn_image_load_mip,                     // llvm.amdgcn.image.load.mip
-    amdgcn_image_sample,                       // llvm.amdgcn.image.sample
-    amdgcn_image_sample_b,                     // llvm.amdgcn.image.sample.b
-    amdgcn_image_sample_b_cl,                  // llvm.amdgcn.image.sample.b.cl
-    amdgcn_image_sample_b_cl_o,                // llvm.amdgcn.image.sample.b.cl.o
-    amdgcn_image_sample_b_o,                   // llvm.amdgcn.image.sample.b.o
-    amdgcn_image_sample_c,                     // llvm.amdgcn.image.sample.c
-    amdgcn_image_sample_c_b,                   // llvm.amdgcn.image.sample.c.b
-    amdgcn_image_sample_c_b_cl,                // llvm.amdgcn.image.sample.c.b.cl
-    amdgcn_image_sample_c_b_cl_o,              // llvm.amdgcn.image.sample.c.b.cl.o
-    amdgcn_image_sample_c_b_o,                 // llvm.amdgcn.image.sample.c.b.o
-    amdgcn_image_sample_c_cd,                  // llvm.amdgcn.image.sample.c.cd
-    amdgcn_image_sample_c_cd_cl,               // llvm.amdgcn.image.sample.c.cd.cl
-    amdgcn_image_sample_c_cd_cl_o,             // llvm.amdgcn.image.sample.c.cd.cl.o
-    amdgcn_image_sample_c_cd_o,                // llvm.amdgcn.image.sample.c.cd.o
-    amdgcn_image_sample_c_cl,                  // llvm.amdgcn.image.sample.c.cl
-    amdgcn_image_sample_c_cl_o,                // llvm.amdgcn.image.sample.c.cl.o
-    amdgcn_image_sample_c_d,                   // llvm.amdgcn.image.sample.c.d
-    amdgcn_image_sample_c_d_cl,                // llvm.amdgcn.image.sample.c.d.cl
-    amdgcn_image_sample_c_d_cl_o,              // llvm.amdgcn.image.sample.c.d.cl.o
-    amdgcn_image_sample_c_d_o,                 // llvm.amdgcn.image.sample.c.d.o
-    amdgcn_image_sample_c_l,                   // llvm.amdgcn.image.sample.c.l
-    amdgcn_image_sample_c_l_o,                 // llvm.amdgcn.image.sample.c.l.o
-    amdgcn_image_sample_c_lz,                  // llvm.amdgcn.image.sample.c.lz
-    amdgcn_image_sample_c_lz_o,                // llvm.amdgcn.image.sample.c.lz.o
-    amdgcn_image_sample_c_o,                   // llvm.amdgcn.image.sample.c.o
-    amdgcn_image_sample_cd,                    // llvm.amdgcn.image.sample.cd
-    amdgcn_image_sample_cd_cl,                 // llvm.amdgcn.image.sample.cd.cl
-    amdgcn_image_sample_cd_cl_o,               // llvm.amdgcn.image.sample.cd.cl.o
-    amdgcn_image_sample_cd_o,                  // llvm.amdgcn.image.sample.cd.o
-    amdgcn_image_sample_cl,                    // llvm.amdgcn.image.sample.cl
-    amdgcn_image_sample_cl_o,                  // llvm.amdgcn.image.sample.cl.o
-    amdgcn_image_sample_d,                     // llvm.amdgcn.image.sample.d
-    amdgcn_image_sample_d_cl,                  // llvm.amdgcn.image.sample.d.cl
-    amdgcn_image_sample_d_cl_o,                // llvm.amdgcn.image.sample.d.cl.o
-    amdgcn_image_sample_d_o,                   // llvm.amdgcn.image.sample.d.o
-    amdgcn_image_sample_l,                     // llvm.amdgcn.image.sample.l
-    amdgcn_image_sample_l_o,                   // llvm.amdgcn.image.sample.l.o
-    amdgcn_image_sample_lz,                    // llvm.amdgcn.image.sample.lz
-    amdgcn_image_sample_lz_o,                  // llvm.amdgcn.image.sample.lz.o
-    amdgcn_image_sample_o,                     // llvm.amdgcn.image.sample.o
-    amdgcn_image_store,                        // llvm.amdgcn.image.store
-    amdgcn_image_store_mip,                    // llvm.amdgcn.image.store.mip
-    amdgcn_implicit_buffer_ptr,                // llvm.amdgcn.implicit.buffer.ptr
-    amdgcn_implicitarg_ptr,                    // llvm.amdgcn.implicitarg.ptr
-    amdgcn_init_exec,                          // llvm.amdgcn.init.exec
-    amdgcn_init_exec_from_input,               // llvm.amdgcn.init.exec.from.input
-    amdgcn_interp_mov,                         // llvm.amdgcn.interp.mov
-    amdgcn_interp_p1,                          // llvm.amdgcn.interp.p1
-    amdgcn_interp_p2,                          // llvm.amdgcn.interp.p2
-    amdgcn_kernarg_segment_ptr,                // llvm.amdgcn.kernarg.segment.ptr
-    amdgcn_kill,                               // llvm.amdgcn.kill
-    amdgcn_ldexp,                              // llvm.amdgcn.ldexp
-    amdgcn_lerp,                               // llvm.amdgcn.lerp
-    amdgcn_log_clamp,                          // llvm.amdgcn.log.clamp
-    amdgcn_loop,                               // llvm.amdgcn.loop
-    amdgcn_mbcnt_hi,                           // llvm.amdgcn.mbcnt.hi
-    amdgcn_mbcnt_lo,                           // llvm.amdgcn.mbcnt.lo
-    amdgcn_mov_dpp,                            // llvm.amdgcn.mov.dpp
-    amdgcn_mqsad_pk_u16_u8,                    // llvm.amdgcn.mqsad.pk.u16.u8
-    amdgcn_mqsad_u32_u8,                       // llvm.amdgcn.mqsad.u32.u8
-    amdgcn_msad_u8,                            // llvm.amdgcn.msad.u8
-    amdgcn_ps_live,                            // llvm.amdgcn.ps.live
-    amdgcn_qsad_pk_u16_u8,                     // llvm.amdgcn.qsad.pk.u16.u8
-    amdgcn_queue_ptr,                          // llvm.amdgcn.queue.ptr
-    amdgcn_rcp,                                // llvm.amdgcn.rcp
-    amdgcn_rcp_legacy,                         // llvm.amdgcn.rcp.legacy
-    amdgcn_readfirstlane,                      // llvm.amdgcn.readfirstlane
-    amdgcn_readlane,                           // llvm.amdgcn.readlane
-    amdgcn_rsq,                                // llvm.amdgcn.rsq
-    amdgcn_rsq_clamp,                          // llvm.amdgcn.rsq.clamp
-    amdgcn_rsq_legacy,                         // llvm.amdgcn.rsq.legacy
-    amdgcn_s_barrier,                          // llvm.amdgcn.s.barrier
-    amdgcn_s_dcache_inv,                       // llvm.amdgcn.s.dcache.inv
-    amdgcn_s_dcache_inv_vol,                   // llvm.amdgcn.s.dcache.inv.vol
-    amdgcn_s_dcache_wb,                        // llvm.amdgcn.s.dcache.wb
-    amdgcn_s_dcache_wb_vol,                    // llvm.amdgcn.s.dcache.wb.vol
-    amdgcn_s_decperflevel,                     // llvm.amdgcn.s.decperflevel
-    amdgcn_s_getpc,                            // llvm.amdgcn.s.getpc
-    amdgcn_s_getreg,                           // llvm.amdgcn.s.getreg
-    amdgcn_s_incperflevel,                     // llvm.amdgcn.s.incperflevel
-    amdgcn_s_memrealtime,                      // llvm.amdgcn.s.memrealtime
-    amdgcn_s_memtime,                          // llvm.amdgcn.s.memtime
-    amdgcn_s_sendmsg,                          // llvm.amdgcn.s.sendmsg
-    amdgcn_s_sendmsghalt,                      // llvm.amdgcn.s.sendmsghalt
-    amdgcn_s_sleep,                            // llvm.amdgcn.s.sleep
-    amdgcn_s_waitcnt,                          // llvm.amdgcn.s.waitcnt
-    amdgcn_sad_hi_u8,                          // llvm.amdgcn.sad.hi.u8
-    amdgcn_sad_u16,                            // llvm.amdgcn.sad.u16
-    amdgcn_sad_u8,                             // llvm.amdgcn.sad.u8
-    amdgcn_sbfe,                               // llvm.amdgcn.sbfe
-    amdgcn_set_inactive,                       // llvm.amdgcn.set.inactive
-    amdgcn_sffbh,                              // llvm.amdgcn.sffbh
-    amdgcn_sin,                                // llvm.amdgcn.sin
-    amdgcn_tbuffer_load,                       // llvm.amdgcn.tbuffer.load
-    amdgcn_tbuffer_store,                      // llvm.amdgcn.tbuffer.store
-    amdgcn_trig_preop,                         // llvm.amdgcn.trig.preop
-    amdgcn_ubfe,                               // llvm.amdgcn.ubfe
-    amdgcn_unreachable,                        // llvm.amdgcn.unreachable
-    amdgcn_update_dpp,                         // llvm.amdgcn.update.dpp
-    amdgcn_wave_barrier,                       // llvm.amdgcn.wave.barrier
-    amdgcn_workgroup_id_x,                     // llvm.amdgcn.workgroup.id.x
-    amdgcn_workgroup_id_y,                     // llvm.amdgcn.workgroup.id.y
-    amdgcn_workgroup_id_z,                     // llvm.amdgcn.workgroup.id.z
-    amdgcn_workitem_id_x,                      // llvm.amdgcn.workitem.id.x
-    amdgcn_workitem_id_y,                      // llvm.amdgcn.workitem.id.y
-    amdgcn_workitem_id_z,                      // llvm.amdgcn.workitem.id.z
-    amdgcn_wqm,                                // llvm.amdgcn.wqm
-    amdgcn_wqm_vote,                           // llvm.amdgcn.wqm.vote
-    amdgcn_writelane,                          // llvm.amdgcn.writelane
-    amdgcn_wwm,                                // llvm.amdgcn.wwm
-    arm_cdp,                                   // llvm.arm.cdp
-    arm_cdp2,                                  // llvm.arm.cdp2
-    arm_clrex,                                 // llvm.arm.clrex
-    arm_crc32b,                                // llvm.arm.crc32b
-    arm_crc32cb,                               // llvm.arm.crc32cb
-    arm_crc32ch,                               // llvm.arm.crc32ch
-    arm_crc32cw,                               // llvm.arm.crc32cw
-    arm_crc32h,                                // llvm.arm.crc32h
-    arm_crc32w,                                // llvm.arm.crc32w
-    arm_dbg,                                   // llvm.arm.dbg
-    arm_dmb,                                   // llvm.arm.dmb
-    arm_dsb,                                   // llvm.arm.dsb
-    arm_get_fpscr,                             // llvm.arm.get.fpscr
-    arm_hint,                                  // llvm.arm.hint
-    arm_isb,                                   // llvm.arm.isb
-    arm_ldaex,                                 // llvm.arm.ldaex
-    arm_ldaexd,                                // llvm.arm.ldaexd
-    arm_ldc,                                   // llvm.arm.ldc
-    arm_ldc2,                                  // llvm.arm.ldc2
-    arm_ldc2l,                                 // llvm.arm.ldc2l
-    arm_ldcl,                                  // llvm.arm.ldcl
-    arm_ldrex,                                 // llvm.arm.ldrex
-    arm_ldrexd,                                // llvm.arm.ldrexd
-    arm_mcr,                                   // llvm.arm.mcr
-    arm_mcr2,                                  // llvm.arm.mcr2
-    arm_mcrr,                                  // llvm.arm.mcrr
-    arm_mcrr2,                                 // llvm.arm.mcrr2
-    arm_mrc,                                   // llvm.arm.mrc
-    arm_mrc2,                                  // llvm.arm.mrc2
-    arm_mrrc,                                  // llvm.arm.mrrc
-    arm_mrrc2,                                 // llvm.arm.mrrc2
-    arm_neon_aesd,                             // llvm.arm.neon.aesd
-    arm_neon_aese,                             // llvm.arm.neon.aese
-    arm_neon_aesimc,                           // llvm.arm.neon.aesimc
-    arm_neon_aesmc,                            // llvm.arm.neon.aesmc
-    arm_neon_sha1c,                            // llvm.arm.neon.sha1c
-    arm_neon_sha1h,                            // llvm.arm.neon.sha1h
-    arm_neon_sha1m,                            // llvm.arm.neon.sha1m
-    arm_neon_sha1p,                            // llvm.arm.neon.sha1p
-    arm_neon_sha1su0,                          // llvm.arm.neon.sha1su0
-    arm_neon_sha1su1,                          // llvm.arm.neon.sha1su1
-    arm_neon_sha256h,                          // llvm.arm.neon.sha256h
-    arm_neon_sha256h2,                         // llvm.arm.neon.sha256h2
-    arm_neon_sha256su0,                        // llvm.arm.neon.sha256su0
-    arm_neon_sha256su1,                        // llvm.arm.neon.sha256su1
-    arm_neon_vabds,                            // llvm.arm.neon.vabds
-    arm_neon_vabdu,                            // llvm.arm.neon.vabdu
-    arm_neon_vabs,                             // llvm.arm.neon.vabs
-    arm_neon_vacge,                            // llvm.arm.neon.vacge
-    arm_neon_vacgt,                            // llvm.arm.neon.vacgt
-    arm_neon_vbsl,                             // llvm.arm.neon.vbsl
-    arm_neon_vcls,                             // llvm.arm.neon.vcls
-    arm_neon_vcvtas,                           // llvm.arm.neon.vcvtas
-    arm_neon_vcvtau,                           // llvm.arm.neon.vcvtau
-    arm_neon_vcvtfp2fxs,                       // llvm.arm.neon.vcvtfp2fxs
-    arm_neon_vcvtfp2fxu,                       // llvm.arm.neon.vcvtfp2fxu
-    arm_neon_vcvtfp2hf,                        // llvm.arm.neon.vcvtfp2hf
-    arm_neon_vcvtfxs2fp,                       // llvm.arm.neon.vcvtfxs2fp
-    arm_neon_vcvtfxu2fp,                       // llvm.arm.neon.vcvtfxu2fp
-    arm_neon_vcvthf2fp,                        // llvm.arm.neon.vcvthf2fp
-    arm_neon_vcvtms,                           // llvm.arm.neon.vcvtms
-    arm_neon_vcvtmu,                           // llvm.arm.neon.vcvtmu
-    arm_neon_vcvtns,                           // llvm.arm.neon.vcvtns
-    arm_neon_vcvtnu,                           // llvm.arm.neon.vcvtnu
-    arm_neon_vcvtps,                           // llvm.arm.neon.vcvtps
-    arm_neon_vcvtpu,                           // llvm.arm.neon.vcvtpu
-    arm_neon_vhadds,                           // llvm.arm.neon.vhadds
-    arm_neon_vhaddu,                           // llvm.arm.neon.vhaddu
-    arm_neon_vhsubs,                           // llvm.arm.neon.vhsubs
-    arm_neon_vhsubu,                           // llvm.arm.neon.vhsubu
-    arm_neon_vld1,                             // llvm.arm.neon.vld1
-    arm_neon_vld2,                             // llvm.arm.neon.vld2
-    arm_neon_vld2lane,                         // llvm.arm.neon.vld2lane
-    arm_neon_vld3,                             // llvm.arm.neon.vld3
-    arm_neon_vld3lane,                         // llvm.arm.neon.vld3lane
-    arm_neon_vld4,                             // llvm.arm.neon.vld4
-    arm_neon_vld4lane,                         // llvm.arm.neon.vld4lane
-    arm_neon_vmaxnm,                           // llvm.arm.neon.vmaxnm
-    arm_neon_vmaxs,                            // llvm.arm.neon.vmaxs
-    arm_neon_vmaxu,                            // llvm.arm.neon.vmaxu
-    arm_neon_vminnm,                           // llvm.arm.neon.vminnm
-    arm_neon_vmins,                            // llvm.arm.neon.vmins
-    arm_neon_vminu,                            // llvm.arm.neon.vminu
-    arm_neon_vmullp,                           // llvm.arm.neon.vmullp
-    arm_neon_vmulls,                           // llvm.arm.neon.vmulls
-    arm_neon_vmullu,                           // llvm.arm.neon.vmullu
-    arm_neon_vmulp,                            // llvm.arm.neon.vmulp
-    arm_neon_vpadals,                          // llvm.arm.neon.vpadals
-    arm_neon_vpadalu,                          // llvm.arm.neon.vpadalu
-    arm_neon_vpadd,                            // llvm.arm.neon.vpadd
-    arm_neon_vpaddls,                          // llvm.arm.neon.vpaddls
-    arm_neon_vpaddlu,                          // llvm.arm.neon.vpaddlu
-    arm_neon_vpmaxs,                           // llvm.arm.neon.vpmaxs
-    arm_neon_vpmaxu,                           // llvm.arm.neon.vpmaxu
-    arm_neon_vpmins,                           // llvm.arm.neon.vpmins
-    arm_neon_vpminu,                           // llvm.arm.neon.vpminu
-    arm_neon_vqabs,                            // llvm.arm.neon.vqabs
-    arm_neon_vqadds,                           // llvm.arm.neon.vqadds
-    arm_neon_vqaddu,                           // llvm.arm.neon.vqaddu
-    arm_neon_vqdmulh,                          // llvm.arm.neon.vqdmulh
-    arm_neon_vqdmull,                          // llvm.arm.neon.vqdmull
-    arm_neon_vqmovns,                          // llvm.arm.neon.vqmovns
-    arm_neon_vqmovnsu,                         // llvm.arm.neon.vqmovnsu
-    arm_neon_vqmovnu,                          // llvm.arm.neon.vqmovnu
-    arm_neon_vqneg,                            // llvm.arm.neon.vqneg
-    arm_neon_vqrdmulh,                         // llvm.arm.neon.vqrdmulh
-    arm_neon_vqrshiftns,                       // llvm.arm.neon.vqrshiftns
-    arm_neon_vqrshiftnsu,                      // llvm.arm.neon.vqrshiftnsu
-    arm_neon_vqrshiftnu,                       // llvm.arm.neon.vqrshiftnu
-    arm_neon_vqrshifts,                        // llvm.arm.neon.vqrshifts
-    arm_neon_vqrshiftu,                        // llvm.arm.neon.vqrshiftu
-    arm_neon_vqshiftns,                        // llvm.arm.neon.vqshiftns
-    arm_neon_vqshiftnsu,                       // llvm.arm.neon.vqshiftnsu
-    arm_neon_vqshiftnu,                        // llvm.arm.neon.vqshiftnu
-    arm_neon_vqshifts,                         // llvm.arm.neon.vqshifts
-    arm_neon_vqshiftsu,                        // llvm.arm.neon.vqshiftsu
-    arm_neon_vqshiftu,                         // llvm.arm.neon.vqshiftu
-    arm_neon_vqsubs,                           // llvm.arm.neon.vqsubs
-    arm_neon_vqsubu,                           // llvm.arm.neon.vqsubu
-    arm_neon_vraddhn,                          // llvm.arm.neon.vraddhn
-    arm_neon_vrecpe,                           // llvm.arm.neon.vrecpe
-    arm_neon_vrecps,                           // llvm.arm.neon.vrecps
-    arm_neon_vrhadds,                          // llvm.arm.neon.vrhadds
-    arm_neon_vrhaddu,                          // llvm.arm.neon.vrhaddu
-    arm_neon_vrinta,                           // llvm.arm.neon.vrinta
-    arm_neon_vrintm,                           // llvm.arm.neon.vrintm
-    arm_neon_vrintn,                           // llvm.arm.neon.vrintn
-    arm_neon_vrintp,                           // llvm.arm.neon.vrintp
-    arm_neon_vrintx,                           // llvm.arm.neon.vrintx
-    arm_neon_vrintz,                           // llvm.arm.neon.vrintz
-    arm_neon_vrshiftn,                         // llvm.arm.neon.vrshiftn
-    arm_neon_vrshifts,                         // llvm.arm.neon.vrshifts
-    arm_neon_vrshiftu,                         // llvm.arm.neon.vrshiftu
-    arm_neon_vrsqrte,                          // llvm.arm.neon.vrsqrte
-    arm_neon_vrsqrts,                          // llvm.arm.neon.vrsqrts
-    arm_neon_vrsubhn,                          // llvm.arm.neon.vrsubhn
-    arm_neon_vshiftins,                        // llvm.arm.neon.vshiftins
-    arm_neon_vshifts,                          // llvm.arm.neon.vshifts
-    arm_neon_vshiftu,                          // llvm.arm.neon.vshiftu
-    arm_neon_vst1,                             // llvm.arm.neon.vst1
-    arm_neon_vst2,                             // llvm.arm.neon.vst2
-    arm_neon_vst2lane,                         // llvm.arm.neon.vst2lane
-    arm_neon_vst3,                             // llvm.arm.neon.vst3
-    arm_neon_vst3lane,                         // llvm.arm.neon.vst3lane
-    arm_neon_vst4,                             // llvm.arm.neon.vst4
-    arm_neon_vst4lane,                         // llvm.arm.neon.vst4lane
-    arm_neon_vtbl1,                            // llvm.arm.neon.vtbl1
-    arm_neon_vtbl2,                            // llvm.arm.neon.vtbl2
-    arm_neon_vtbl3,                            // llvm.arm.neon.vtbl3
-    arm_neon_vtbl4,                            // llvm.arm.neon.vtbl4
-    arm_neon_vtbx1,                            // llvm.arm.neon.vtbx1
-    arm_neon_vtbx2,                            // llvm.arm.neon.vtbx2
-    arm_neon_vtbx3,                            // llvm.arm.neon.vtbx3
-    arm_neon_vtbx4,                            // llvm.arm.neon.vtbx4
-    arm_qadd,                                  // llvm.arm.qadd
-    arm_qadd16,                                // llvm.arm.qadd16
-    arm_qadd8,                                 // llvm.arm.qadd8
-    arm_qasx,                                  // llvm.arm.qasx
-    arm_qsax,                                  // llvm.arm.qsax
-    arm_qsub,                                  // llvm.arm.qsub
-    arm_qsub16,                                // llvm.arm.qsub16
-    arm_qsub8,                                 // llvm.arm.qsub8
-    arm_sadd16,                                // llvm.arm.sadd16
-    arm_sadd8,                                 // llvm.arm.sadd8
-    arm_sasx,                                  // llvm.arm.sasx
-    arm_sel,                                   // llvm.arm.sel
-    arm_set_fpscr,                             // llvm.arm.set.fpscr
-    arm_shadd16,                               // llvm.arm.shadd16
-    arm_shadd8,                                // llvm.arm.shadd8
-    arm_shasx,                                 // llvm.arm.shasx
-    arm_shsax,                                 // llvm.arm.shsax
-    arm_shsub16,                               // llvm.arm.shsub16
-    arm_shsub8,                                // llvm.arm.shsub8
-    arm_smlabb,                                // llvm.arm.smlabb
-    arm_smlabt,                                // llvm.arm.smlabt
-    arm_smlad,                                 // llvm.arm.smlad
-    arm_smladx,                                // llvm.arm.smladx
-    arm_smlald,                                // llvm.arm.smlald
-    arm_smlaldx,                               // llvm.arm.smlaldx
-    arm_smlatb,                                // llvm.arm.smlatb
-    arm_smlatt,                                // llvm.arm.smlatt
-    arm_smlawb,                                // llvm.arm.smlawb
-    arm_smlawt,                                // llvm.arm.smlawt
-    arm_smlsd,                                 // llvm.arm.smlsd
-    arm_smlsdx,                                // llvm.arm.smlsdx
-    arm_smlsld,                                // llvm.arm.smlsld
-    arm_smlsldx,                               // llvm.arm.smlsldx
-    arm_smuad,                                 // llvm.arm.smuad
-    arm_smuadx,                                // llvm.arm.smuadx
-    arm_smulbb,                                // llvm.arm.smulbb
-    arm_smulbt,                                // llvm.arm.smulbt
-    arm_smultb,                                // llvm.arm.smultb
-    arm_smultt,                                // llvm.arm.smultt
-    arm_smulwb,                                // llvm.arm.smulwb
-    arm_smulwt,                                // llvm.arm.smulwt
-    arm_smusd,                                 // llvm.arm.smusd
-    arm_smusdx,                                // llvm.arm.smusdx
-    arm_space,                                 // llvm.arm.space
-    arm_ssat,                                  // llvm.arm.ssat
-    arm_ssat16,                                // llvm.arm.ssat16
-    arm_ssax,                                  // llvm.arm.ssax
-    arm_ssub16,                                // llvm.arm.ssub16
-    arm_ssub8,                                 // llvm.arm.ssub8
-    arm_stc,                                   // llvm.arm.stc
-    arm_stc2,                                  // llvm.arm.stc2
-    arm_stc2l,                                 // llvm.arm.stc2l
-    arm_stcl,                                  // llvm.arm.stcl
-    arm_stlex,                                 // llvm.arm.stlex
-    arm_stlexd,                                // llvm.arm.stlexd
-    arm_strex,                                 // llvm.arm.strex
-    arm_strexd,                                // llvm.arm.strexd
-    arm_sxtab16,                               // llvm.arm.sxtab16
-    arm_sxtb16,                                // llvm.arm.sxtb16
-    arm_uadd16,                                // llvm.arm.uadd16
-    arm_uadd8,                                 // llvm.arm.uadd8
-    arm_uasx,                                  // llvm.arm.uasx
-    arm_uhadd16,                               // llvm.arm.uhadd16
-    arm_uhadd8,                                // llvm.arm.uhadd8
-    arm_uhasx,                                 // llvm.arm.uhasx
-    arm_uhsax,                                 // llvm.arm.uhsax
-    arm_uhsub16,                               // llvm.arm.uhsub16
-    arm_uhsub8,                                // llvm.arm.uhsub8
-    arm_undefined,                             // llvm.arm.undefined
-    arm_uqadd16,                               // llvm.arm.uqadd16
-    arm_uqadd8,                                // llvm.arm.uqadd8
-    arm_uqasx,                                 // llvm.arm.uqasx
-    arm_uqsax,                                 // llvm.arm.uqsax
-    arm_uqsub16,                               // llvm.arm.uqsub16
-    arm_uqsub8,                                // llvm.arm.uqsub8
-    arm_usad8,                                 // llvm.arm.usad8
-    arm_usada8,                                // llvm.arm.usada8
-    arm_usat,                                  // llvm.arm.usat
-    arm_usat16,                                // llvm.arm.usat16
-    arm_usax,                                  // llvm.arm.usax
-    arm_usub16,                                // llvm.arm.usub16
-    arm_usub8,                                 // llvm.arm.usub8
-    arm_uxtab16,                               // llvm.arm.uxtab16
-    arm_uxtb16,                                // llvm.arm.uxtb16
-    arm_vcvtr,                                 // llvm.arm.vcvtr
-    arm_vcvtru,                                // llvm.arm.vcvtru
-    bpf_load_byte,                             // llvm.bpf.load.byte
-    bpf_load_half,                             // llvm.bpf.load.half
-    bpf_load_word,                             // llvm.bpf.load.word
-    bpf_pseudo,                                // llvm.bpf.pseudo
-    hexagon_A2_abs,                            // llvm.hexagon.A2.abs
-    hexagon_A2_absp,                           // llvm.hexagon.A2.absp
-    hexagon_A2_abssat,                         // llvm.hexagon.A2.abssat
-    hexagon_A2_add,                            // llvm.hexagon.A2.add
-    hexagon_A2_addh_h16_hh,                    // llvm.hexagon.A2.addh.h16.hh
-    hexagon_A2_addh_h16_hl,                    // llvm.hexagon.A2.addh.h16.hl
-    hexagon_A2_addh_h16_lh,                    // llvm.hexagon.A2.addh.h16.lh
-    hexagon_A2_addh_h16_ll,                    // llvm.hexagon.A2.addh.h16.ll
-    hexagon_A2_addh_h16_sat_hh,                // llvm.hexagon.A2.addh.h16.sat.hh
-    hexagon_A2_addh_h16_sat_hl,                // llvm.hexagon.A2.addh.h16.sat.hl
-    hexagon_A2_addh_h16_sat_lh,                // llvm.hexagon.A2.addh.h16.sat.lh
-    hexagon_A2_addh_h16_sat_ll,                // llvm.hexagon.A2.addh.h16.sat.ll
-    hexagon_A2_addh_l16_hl,                    // llvm.hexagon.A2.addh.l16.hl
-    hexagon_A2_addh_l16_ll,                    // llvm.hexagon.A2.addh.l16.ll
-    hexagon_A2_addh_l16_sat_hl,                // llvm.hexagon.A2.addh.l16.sat.hl
-    hexagon_A2_addh_l16_sat_ll,                // llvm.hexagon.A2.addh.l16.sat.ll
-    hexagon_A2_addi,                           // llvm.hexagon.A2.addi
-    hexagon_A2_addp,                           // llvm.hexagon.A2.addp
-    hexagon_A2_addpsat,                        // llvm.hexagon.A2.addpsat
-    hexagon_A2_addsat,                         // llvm.hexagon.A2.addsat
-    hexagon_A2_addsp,                          // llvm.hexagon.A2.addsp
-    hexagon_A2_and,                            // llvm.hexagon.A2.and
-    hexagon_A2_andir,                          // llvm.hexagon.A2.andir
-    hexagon_A2_andp,                           // llvm.hexagon.A2.andp
-    hexagon_A2_aslh,                           // llvm.hexagon.A2.aslh
-    hexagon_A2_asrh,                           // llvm.hexagon.A2.asrh
-    hexagon_A2_combine_hh,                     // llvm.hexagon.A2.combine.hh
-    hexagon_A2_combine_hl,                     // llvm.hexagon.A2.combine.hl
-    hexagon_A2_combine_lh,                     // llvm.hexagon.A2.combine.lh
-    hexagon_A2_combine_ll,                     // llvm.hexagon.A2.combine.ll
-    hexagon_A2_combineii,                      // llvm.hexagon.A2.combineii
-    hexagon_A2_combinew,                       // llvm.hexagon.A2.combinew
-    hexagon_A2_max,                            // llvm.hexagon.A2.max
-    hexagon_A2_maxp,                           // llvm.hexagon.A2.maxp
-    hexagon_A2_maxu,                           // llvm.hexagon.A2.maxu
-    hexagon_A2_maxup,                          // llvm.hexagon.A2.maxup
-    hexagon_A2_min,                            // llvm.hexagon.A2.min
-    hexagon_A2_minp,                           // llvm.hexagon.A2.minp
-    hexagon_A2_minu,                           // llvm.hexagon.A2.minu
-    hexagon_A2_minup,                          // llvm.hexagon.A2.minup
-    hexagon_A2_neg,                            // llvm.hexagon.A2.neg
-    hexagon_A2_negp,                           // llvm.hexagon.A2.negp
-    hexagon_A2_negsat,                         // llvm.hexagon.A2.negsat
-    hexagon_A2_not,                            // llvm.hexagon.A2.not
-    hexagon_A2_notp,                           // llvm.hexagon.A2.notp
-    hexagon_A2_or,                             // llvm.hexagon.A2.or
-    hexagon_A2_orir,                           // llvm.hexagon.A2.orir
-    hexagon_A2_orp,                            // llvm.hexagon.A2.orp
-    hexagon_A2_roundsat,                       // llvm.hexagon.A2.roundsat
-    hexagon_A2_sat,                            // llvm.hexagon.A2.sat
-    hexagon_A2_satb,                           // llvm.hexagon.A2.satb
-    hexagon_A2_sath,                           // llvm.hexagon.A2.sath
-    hexagon_A2_satub,                          // llvm.hexagon.A2.satub
-    hexagon_A2_satuh,                          // llvm.hexagon.A2.satuh
-    hexagon_A2_sub,                            // llvm.hexagon.A2.sub
-    hexagon_A2_subh_h16_hh,                    // llvm.hexagon.A2.subh.h16.hh
-    hexagon_A2_subh_h16_hl,                    // llvm.hexagon.A2.subh.h16.hl
-    hexagon_A2_subh_h16_lh,                    // llvm.hexagon.A2.subh.h16.lh
-    hexagon_A2_subh_h16_ll,                    // llvm.hexagon.A2.subh.h16.ll
-    hexagon_A2_subh_h16_sat_hh,                // llvm.hexagon.A2.subh.h16.sat.hh
-    hexagon_A2_subh_h16_sat_hl,                // llvm.hexagon.A2.subh.h16.sat.hl
-    hexagon_A2_subh_h16_sat_lh,                // llvm.hexagon.A2.subh.h16.sat.lh
-    hexagon_A2_subh_h16_sat_ll,                // llvm.hexagon.A2.subh.h16.sat.ll
-    hexagon_A2_subh_l16_hl,                    // llvm.hexagon.A2.subh.l16.hl
-    hexagon_A2_subh_l16_ll,                    // llvm.hexagon.A2.subh.l16.ll
-    hexagon_A2_subh_l16_sat_hl,                // llvm.hexagon.A2.subh.l16.sat.hl
-    hexagon_A2_subh_l16_sat_ll,                // llvm.hexagon.A2.subh.l16.sat.ll
-    hexagon_A2_subp,                           // llvm.hexagon.A2.subp
-    hexagon_A2_subri,                          // llvm.hexagon.A2.subri
-    hexagon_A2_subsat,                         // llvm.hexagon.A2.subsat
-    hexagon_A2_svaddh,                         // llvm.hexagon.A2.svaddh
-    hexagon_A2_svaddhs,                        // llvm.hexagon.A2.svaddhs
-    hexagon_A2_svadduhs,                       // llvm.hexagon.A2.svadduhs
-    hexagon_A2_svavgh,                         // llvm.hexagon.A2.svavgh
-    hexagon_A2_svavghs,                        // llvm.hexagon.A2.svavghs
-    hexagon_A2_svnavgh,                        // llvm.hexagon.A2.svnavgh
-    hexagon_A2_svsubh,                         // llvm.hexagon.A2.svsubh
-    hexagon_A2_svsubhs,                        // llvm.hexagon.A2.svsubhs
-    hexagon_A2_svsubuhs,                       // llvm.hexagon.A2.svsubuhs
-    hexagon_A2_swiz,                           // llvm.hexagon.A2.swiz
-    hexagon_A2_sxtb,                           // llvm.hexagon.A2.sxtb
-    hexagon_A2_sxth,                           // llvm.hexagon.A2.sxth
-    hexagon_A2_sxtw,                           // llvm.hexagon.A2.sxtw
-    hexagon_A2_tfr,                            // llvm.hexagon.A2.tfr
-    hexagon_A2_tfrih,                          // llvm.hexagon.A2.tfrih
-    hexagon_A2_tfril,                          // llvm.hexagon.A2.tfril
-    hexagon_A2_tfrp,                           // llvm.hexagon.A2.tfrp
-    hexagon_A2_tfrpi,                          // llvm.hexagon.A2.tfrpi
-    hexagon_A2_tfrsi,                          // llvm.hexagon.A2.tfrsi
-    hexagon_A2_vabsh,                          // llvm.hexagon.A2.vabsh
-    hexagon_A2_vabshsat,                       // llvm.hexagon.A2.vabshsat
-    hexagon_A2_vabsw,                          // llvm.hexagon.A2.vabsw
-    hexagon_A2_vabswsat,                       // llvm.hexagon.A2.vabswsat
-    hexagon_A2_vaddb_map,                      // llvm.hexagon.A2.vaddb.map
-    hexagon_A2_vaddh,                          // llvm.hexagon.A2.vaddh
-    hexagon_A2_vaddhs,                         // llvm.hexagon.A2.vaddhs
-    hexagon_A2_vaddub,                         // llvm.hexagon.A2.vaddub
-    hexagon_A2_vaddubs,                        // llvm.hexagon.A2.vaddubs
-    hexagon_A2_vadduhs,                        // llvm.hexagon.A2.vadduhs
-    hexagon_A2_vaddw,                          // llvm.hexagon.A2.vaddw
-    hexagon_A2_vaddws,                         // llvm.hexagon.A2.vaddws
-    hexagon_A2_vavgh,                          // llvm.hexagon.A2.vavgh
-    hexagon_A2_vavghcr,                        // llvm.hexagon.A2.vavghcr
-    hexagon_A2_vavghr,                         // llvm.hexagon.A2.vavghr
-    hexagon_A2_vavgub,                         // llvm.hexagon.A2.vavgub
-    hexagon_A2_vavgubr,                        // llvm.hexagon.A2.vavgubr
-    hexagon_A2_vavguh,                         // llvm.hexagon.A2.vavguh
-    hexagon_A2_vavguhr,                        // llvm.hexagon.A2.vavguhr
-    hexagon_A2_vavguw,                         // llvm.hexagon.A2.vavguw
-    hexagon_A2_vavguwr,                        // llvm.hexagon.A2.vavguwr
-    hexagon_A2_vavgw,                          // llvm.hexagon.A2.vavgw
-    hexagon_A2_vavgwcr,                        // llvm.hexagon.A2.vavgwcr
-    hexagon_A2_vavgwr,                         // llvm.hexagon.A2.vavgwr
-    hexagon_A2_vcmpbeq,                        // llvm.hexagon.A2.vcmpbeq
-    hexagon_A2_vcmpbgtu,                       // llvm.hexagon.A2.vcmpbgtu
-    hexagon_A2_vcmpheq,                        // llvm.hexagon.A2.vcmpheq
-    hexagon_A2_vcmphgt,                        // llvm.hexagon.A2.vcmphgt
-    hexagon_A2_vcmphgtu,                       // llvm.hexagon.A2.vcmphgtu
-    hexagon_A2_vcmpweq,                        // llvm.hexagon.A2.vcmpweq
-    hexagon_A2_vcmpwgt,                        // llvm.hexagon.A2.vcmpwgt
-    hexagon_A2_vcmpwgtu,                       // llvm.hexagon.A2.vcmpwgtu
-    hexagon_A2_vconj,                          // llvm.hexagon.A2.vconj
-    hexagon_A2_vmaxb,                          // llvm.hexagon.A2.vmaxb
-    hexagon_A2_vmaxh,                          // llvm.hexagon.A2.vmaxh
-    hexagon_A2_vmaxub,                         // llvm.hexagon.A2.vmaxub
-    hexagon_A2_vmaxuh,                         // llvm.hexagon.A2.vmaxuh
-    hexagon_A2_vmaxuw,                         // llvm.hexagon.A2.vmaxuw
-    hexagon_A2_vmaxw,                          // llvm.hexagon.A2.vmaxw
-    hexagon_A2_vminb,                          // llvm.hexagon.A2.vminb
-    hexagon_A2_vminh,                          // llvm.hexagon.A2.vminh
-    hexagon_A2_vminub,                         // llvm.hexagon.A2.vminub
-    hexagon_A2_vminuh,                         // llvm.hexagon.A2.vminuh
-    hexagon_A2_vminuw,                         // llvm.hexagon.A2.vminuw
-    hexagon_A2_vminw,                          // llvm.hexagon.A2.vminw
-    hexagon_A2_vnavgh,                         // llvm.hexagon.A2.vnavgh
-    hexagon_A2_vnavghcr,                       // llvm.hexagon.A2.vnavghcr
-    hexagon_A2_vnavghr,                        // llvm.hexagon.A2.vnavghr
-    hexagon_A2_vnavgw,                         // llvm.hexagon.A2.vnavgw
-    hexagon_A2_vnavgwcr,                       // llvm.hexagon.A2.vnavgwcr
-    hexagon_A2_vnavgwr,                        // llvm.hexagon.A2.vnavgwr
-    hexagon_A2_vraddub,                        // llvm.hexagon.A2.vraddub
-    hexagon_A2_vraddub_acc,                    // llvm.hexagon.A2.vraddub.acc
-    hexagon_A2_vrsadub,                        // llvm.hexagon.A2.vrsadub
-    hexagon_A2_vrsadub_acc,                    // llvm.hexagon.A2.vrsadub.acc
-    hexagon_A2_vsubb_map,                      // llvm.hexagon.A2.vsubb.map
-    hexagon_A2_vsubh,                          // llvm.hexagon.A2.vsubh
-    hexagon_A2_vsubhs,                         // llvm.hexagon.A2.vsubhs
-    hexagon_A2_vsubub,                         // llvm.hexagon.A2.vsubub
-    hexagon_A2_vsububs,                        // llvm.hexagon.A2.vsububs
-    hexagon_A2_vsubuhs,                        // llvm.hexagon.A2.vsubuhs
-    hexagon_A2_vsubw,                          // llvm.hexagon.A2.vsubw
-    hexagon_A2_vsubws,                         // llvm.hexagon.A2.vsubws
-    hexagon_A2_xor,                            // llvm.hexagon.A2.xor
-    hexagon_A2_xorp,                           // llvm.hexagon.A2.xorp
-    hexagon_A2_zxtb,                           // llvm.hexagon.A2.zxtb
-    hexagon_A2_zxth,                           // llvm.hexagon.A2.zxth
-    hexagon_A4_andn,                           // llvm.hexagon.A4.andn
-    hexagon_A4_andnp,                          // llvm.hexagon.A4.andnp
-    hexagon_A4_bitsplit,                       // llvm.hexagon.A4.bitsplit
-    hexagon_A4_bitspliti,                      // llvm.hexagon.A4.bitspliti
-    hexagon_A4_boundscheck,                    // llvm.hexagon.A4.boundscheck
-    hexagon_A4_cmpbeq,                         // llvm.hexagon.A4.cmpbeq
-    hexagon_A4_cmpbeqi,                        // llvm.hexagon.A4.cmpbeqi
-    hexagon_A4_cmpbgt,                         // llvm.hexagon.A4.cmpbgt
-    hexagon_A4_cmpbgti,                        // llvm.hexagon.A4.cmpbgti
-    hexagon_A4_cmpbgtu,                        // llvm.hexagon.A4.cmpbgtu
-    hexagon_A4_cmpbgtui,                       // llvm.hexagon.A4.cmpbgtui
-    hexagon_A4_cmpheq,                         // llvm.hexagon.A4.cmpheq
-    hexagon_A4_cmpheqi,                        // llvm.hexagon.A4.cmpheqi
-    hexagon_A4_cmphgt,                         // llvm.hexagon.A4.cmphgt
-    hexagon_A4_cmphgti,                        // llvm.hexagon.A4.cmphgti
-    hexagon_A4_cmphgtu,                        // llvm.hexagon.A4.cmphgtu
-    hexagon_A4_cmphgtui,                       // llvm.hexagon.A4.cmphgtui
-    hexagon_A4_combineir,                      // llvm.hexagon.A4.combineir
-    hexagon_A4_combineri,                      // llvm.hexagon.A4.combineri
-    hexagon_A4_cround_ri,                      // llvm.hexagon.A4.cround.ri
-    hexagon_A4_cround_rr,                      // llvm.hexagon.A4.cround.rr
-    hexagon_A4_modwrapu,                       // llvm.hexagon.A4.modwrapu
-    hexagon_A4_orn,                            // llvm.hexagon.A4.orn
-    hexagon_A4_ornp,                           // llvm.hexagon.A4.ornp
-    hexagon_A4_rcmpeq,                         // llvm.hexagon.A4.rcmpeq
-    hexagon_A4_rcmpeqi,                        // llvm.hexagon.A4.rcmpeqi
-    hexagon_A4_rcmpneq,                        // llvm.hexagon.A4.rcmpneq
-    hexagon_A4_rcmpneqi,                       // llvm.hexagon.A4.rcmpneqi
-    hexagon_A4_round_ri,                       // llvm.hexagon.A4.round.ri
-    hexagon_A4_round_ri_sat,                   // llvm.hexagon.A4.round.ri.sat
-    hexagon_A4_round_rr,                       // llvm.hexagon.A4.round.rr
-    hexagon_A4_round_rr_sat,                   // llvm.hexagon.A4.round.rr.sat
-    hexagon_A4_tlbmatch,                       // llvm.hexagon.A4.tlbmatch
-    hexagon_A4_vcmpbeq_any,                    // llvm.hexagon.A4.vcmpbeq.any
-    hexagon_A4_vcmpbeqi,                       // llvm.hexagon.A4.vcmpbeqi
-    hexagon_A4_vcmpbgt,                        // llvm.hexagon.A4.vcmpbgt
-    hexagon_A4_vcmpbgti,                       // llvm.hexagon.A4.vcmpbgti
-    hexagon_A4_vcmpbgtui,                      // llvm.hexagon.A4.vcmpbgtui
-    hexagon_A4_vcmpheqi,                       // llvm.hexagon.A4.vcmpheqi
-    hexagon_A4_vcmphgti,                       // llvm.hexagon.A4.vcmphgti
-    hexagon_A4_vcmphgtui,                      // llvm.hexagon.A4.vcmphgtui
-    hexagon_A4_vcmpweqi,                       // llvm.hexagon.A4.vcmpweqi
-    hexagon_A4_vcmpwgti,                       // llvm.hexagon.A4.vcmpwgti
-    hexagon_A4_vcmpwgtui,                      // llvm.hexagon.A4.vcmpwgtui
-    hexagon_A4_vrmaxh,                         // llvm.hexagon.A4.vrmaxh
-    hexagon_A4_vrmaxuh,                        // llvm.hexagon.A4.vrmaxuh
-    hexagon_A4_vrmaxuw,                        // llvm.hexagon.A4.vrmaxuw
-    hexagon_A4_vrmaxw,                         // llvm.hexagon.A4.vrmaxw
-    hexagon_A4_vrminh,                         // llvm.hexagon.A4.vrminh
-    hexagon_A4_vrminuh,                        // llvm.hexagon.A4.vrminuh
-    hexagon_A4_vrminuw,                        // llvm.hexagon.A4.vrminuw
-    hexagon_A4_vrminw,                         // llvm.hexagon.A4.vrminw
-    hexagon_A5_vaddhubs,                       // llvm.hexagon.A5.vaddhubs
-    hexagon_A6_vcmpbeq_notany,                 // llvm.hexagon.A6.vcmpbeq.notany
-    hexagon_A6_vcmpbeq_notany_128B,            // llvm.hexagon.A6.vcmpbeq.notany.128B
-    hexagon_C2_all8,                           // llvm.hexagon.C2.all8
-    hexagon_C2_and,                            // llvm.hexagon.C2.and
-    hexagon_C2_andn,                           // llvm.hexagon.C2.andn
-    hexagon_C2_any8,                           // llvm.hexagon.C2.any8
-    hexagon_C2_bitsclr,                        // llvm.hexagon.C2.bitsclr
-    hexagon_C2_bitsclri,                       // llvm.hexagon.C2.bitsclri
-    hexagon_C2_bitsset,                        // llvm.hexagon.C2.bitsset
-    hexagon_C2_cmpeq,                          // llvm.hexagon.C2.cmpeq
-    hexagon_C2_cmpeqi,                         // llvm.hexagon.C2.cmpeqi
-    hexagon_C2_cmpeqp,                         // llvm.hexagon.C2.cmpeqp
-    hexagon_C2_cmpgei,                         // llvm.hexagon.C2.cmpgei
-    hexagon_C2_cmpgeui,                        // llvm.hexagon.C2.cmpgeui
-    hexagon_C2_cmpgt,                          // llvm.hexagon.C2.cmpgt
-    hexagon_C2_cmpgti,                         // llvm.hexagon.C2.cmpgti
-    hexagon_C2_cmpgtp,                         // llvm.hexagon.C2.cmpgtp
-    hexagon_C2_cmpgtu,                         // llvm.hexagon.C2.cmpgtu
-    hexagon_C2_cmpgtui,                        // llvm.hexagon.C2.cmpgtui
-    hexagon_C2_cmpgtup,                        // llvm.hexagon.C2.cmpgtup
-    hexagon_C2_cmplt,                          // llvm.hexagon.C2.cmplt
-    hexagon_C2_cmpltu,                         // llvm.hexagon.C2.cmpltu
-    hexagon_C2_mask,                           // llvm.hexagon.C2.mask
-    hexagon_C2_mux,                            // llvm.hexagon.C2.mux
-    hexagon_C2_muxii,                          // llvm.hexagon.C2.muxii
-    hexagon_C2_muxir,                          // llvm.hexagon.C2.muxir
-    hexagon_C2_muxri,                          // llvm.hexagon.C2.muxri
-    hexagon_C2_not,                            // llvm.hexagon.C2.not
-    hexagon_C2_or,                             // llvm.hexagon.C2.or
-    hexagon_C2_orn,                            // llvm.hexagon.C2.orn
-    hexagon_C2_pxfer_map,                      // llvm.hexagon.C2.pxfer.map
-    hexagon_C2_tfrpr,                          // llvm.hexagon.C2.tfrpr
-    hexagon_C2_tfrrp,                          // llvm.hexagon.C2.tfrrp
-    hexagon_C2_vitpack,                        // llvm.hexagon.C2.vitpack
-    hexagon_C2_vmux,                           // llvm.hexagon.C2.vmux
-    hexagon_C2_xor,                            // llvm.hexagon.C2.xor
-    hexagon_C4_and_and,                        // llvm.hexagon.C4.and.and
-    hexagon_C4_and_andn,                       // llvm.hexagon.C4.and.andn
-    hexagon_C4_and_or,                         // llvm.hexagon.C4.and.or
-    hexagon_C4_and_orn,                        // llvm.hexagon.C4.and.orn
-    hexagon_C4_cmplte,                         // llvm.hexagon.C4.cmplte
-    hexagon_C4_cmpltei,                        // llvm.hexagon.C4.cmpltei
-    hexagon_C4_cmplteu,                        // llvm.hexagon.C4.cmplteu
-    hexagon_C4_cmplteui,                       // llvm.hexagon.C4.cmplteui
-    hexagon_C4_cmpneq,                         // llvm.hexagon.C4.cmpneq
-    hexagon_C4_cmpneqi,                        // llvm.hexagon.C4.cmpneqi
-    hexagon_C4_fastcorner9,                    // llvm.hexagon.C4.fastcorner9
-    hexagon_C4_fastcorner9_not,                // llvm.hexagon.C4.fastcorner9.not
-    hexagon_C4_nbitsclr,                       // llvm.hexagon.C4.nbitsclr
-    hexagon_C4_nbitsclri,                      // llvm.hexagon.C4.nbitsclri
-    hexagon_C4_nbitsset,                       // llvm.hexagon.C4.nbitsset
-    hexagon_C4_or_and,                         // llvm.hexagon.C4.or.and
-    hexagon_C4_or_andn,                        // llvm.hexagon.C4.or.andn
-    hexagon_C4_or_or,                          // llvm.hexagon.C4.or.or
-    hexagon_C4_or_orn,                         // llvm.hexagon.C4.or.orn
-    hexagon_F2_conv_d2df,                      // llvm.hexagon.F2.conv.d2df
-    hexagon_F2_conv_d2sf,                      // llvm.hexagon.F2.conv.d2sf
-    hexagon_F2_conv_df2d,                      // llvm.hexagon.F2.conv.df2d
-    hexagon_F2_conv_df2d_chop,                 // llvm.hexagon.F2.conv.df2d.chop
-    hexagon_F2_conv_df2sf,                     // llvm.hexagon.F2.conv.df2sf
-    hexagon_F2_conv_df2ud,                     // llvm.hexagon.F2.conv.df2ud
-    hexagon_F2_conv_df2ud_chop,                // llvm.hexagon.F2.conv.df2ud.chop
-    hexagon_F2_conv_df2uw,                     // llvm.hexagon.F2.conv.df2uw
-    hexagon_F2_conv_df2uw_chop,                // llvm.hexagon.F2.conv.df2uw.chop
-    hexagon_F2_conv_df2w,                      // llvm.hexagon.F2.conv.df2w
-    hexagon_F2_conv_df2w_chop,                 // llvm.hexagon.F2.conv.df2w.chop
-    hexagon_F2_conv_sf2d,                      // llvm.hexagon.F2.conv.sf2d
-    hexagon_F2_conv_sf2d_chop,                 // llvm.hexagon.F2.conv.sf2d.chop
-    hexagon_F2_conv_sf2df,                     // llvm.hexagon.F2.conv.sf2df
-    hexagon_F2_conv_sf2ud,                     // llvm.hexagon.F2.conv.sf2ud
-    hexagon_F2_conv_sf2ud_chop,                // llvm.hexagon.F2.conv.sf2ud.chop
-    hexagon_F2_conv_sf2uw,                     // llvm.hexagon.F2.conv.sf2uw
-    hexagon_F2_conv_sf2uw_chop,                // llvm.hexagon.F2.conv.sf2uw.chop
-    hexagon_F2_conv_sf2w,                      // llvm.hexagon.F2.conv.sf2w
-    hexagon_F2_conv_sf2w_chop,                 // llvm.hexagon.F2.conv.sf2w.chop
-    hexagon_F2_conv_ud2df,                     // llvm.hexagon.F2.conv.ud2df
-    hexagon_F2_conv_ud2sf,                     // llvm.hexagon.F2.conv.ud2sf
-    hexagon_F2_conv_uw2df,                     // llvm.hexagon.F2.conv.uw2df
-    hexagon_F2_conv_uw2sf,                     // llvm.hexagon.F2.conv.uw2sf
-    hexagon_F2_conv_w2df,                      // llvm.hexagon.F2.conv.w2df
-    hexagon_F2_conv_w2sf,                      // llvm.hexagon.F2.conv.w2sf
-    hexagon_F2_dfclass,                        // llvm.hexagon.F2.dfclass
-    hexagon_F2_dfcmpeq,                        // llvm.hexagon.F2.dfcmpeq
-    hexagon_F2_dfcmpge,                        // llvm.hexagon.F2.dfcmpge
-    hexagon_F2_dfcmpgt,                        // llvm.hexagon.F2.dfcmpgt
-    hexagon_F2_dfcmpuo,                        // llvm.hexagon.F2.dfcmpuo
-    hexagon_F2_dfimm_n,                        // llvm.hexagon.F2.dfimm.n
-    hexagon_F2_dfimm_p,                        // llvm.hexagon.F2.dfimm.p
-    hexagon_F2_sfadd,                          // llvm.hexagon.F2.sfadd
-    hexagon_F2_sfclass,                        // llvm.hexagon.F2.sfclass
-    hexagon_F2_sfcmpeq,                        // llvm.hexagon.F2.sfcmpeq
-    hexagon_F2_sfcmpge,                        // llvm.hexagon.F2.sfcmpge
-    hexagon_F2_sfcmpgt,                        // llvm.hexagon.F2.sfcmpgt
-    hexagon_F2_sfcmpuo,                        // llvm.hexagon.F2.sfcmpuo
-    hexagon_F2_sffixupd,                       // llvm.hexagon.F2.sffixupd
-    hexagon_F2_sffixupn,                       // llvm.hexagon.F2.sffixupn
-    hexagon_F2_sffixupr,                       // llvm.hexagon.F2.sffixupr
-    hexagon_F2_sffma,                          // llvm.hexagon.F2.sffma
-    hexagon_F2_sffma_lib,                      // llvm.hexagon.F2.sffma.lib
-    hexagon_F2_sffma_sc,                       // llvm.hexagon.F2.sffma.sc
-    hexagon_F2_sffms,                          // llvm.hexagon.F2.sffms
-    hexagon_F2_sffms_lib,                      // llvm.hexagon.F2.sffms.lib
-    hexagon_F2_sfimm_n,                        // llvm.hexagon.F2.sfimm.n
-    hexagon_F2_sfimm_p,                        // llvm.hexagon.F2.sfimm.p
-    hexagon_F2_sfmax,                          // llvm.hexagon.F2.sfmax
-    hexagon_F2_sfmin,                          // llvm.hexagon.F2.sfmin
-    hexagon_F2_sfmpy,                          // llvm.hexagon.F2.sfmpy
-    hexagon_F2_sfsub,                          // llvm.hexagon.F2.sfsub
-    hexagon_L2_loadrb_pbr,                     // llvm.hexagon.L2.loadrb.pbr
-    hexagon_L2_loadrb_pci,                     // llvm.hexagon.L2.loadrb.pci
-    hexagon_L2_loadrb_pcr,                     // llvm.hexagon.L2.loadrb.pcr
-    hexagon_L2_loadrd_pbr,                     // llvm.hexagon.L2.loadrd.pbr
-    hexagon_L2_loadrd_pci,                     // llvm.hexagon.L2.loadrd.pci
-    hexagon_L2_loadrd_pcr,                     // llvm.hexagon.L2.loadrd.pcr
-    hexagon_L2_loadrh_pbr,                     // llvm.hexagon.L2.loadrh.pbr
-    hexagon_L2_loadrh_pci,                     // llvm.hexagon.L2.loadrh.pci
-    hexagon_L2_loadrh_pcr,                     // llvm.hexagon.L2.loadrh.pcr
-    hexagon_L2_loadri_pbr,                     // llvm.hexagon.L2.loadri.pbr
-    hexagon_L2_loadri_pci,                     // llvm.hexagon.L2.loadri.pci
-    hexagon_L2_loadri_pcr,                     // llvm.hexagon.L2.loadri.pcr
-    hexagon_L2_loadrub_pbr,                    // llvm.hexagon.L2.loadrub.pbr
-    hexagon_L2_loadrub_pci,                    // llvm.hexagon.L2.loadrub.pci
-    hexagon_L2_loadrub_pcr,                    // llvm.hexagon.L2.loadrub.pcr
-    hexagon_L2_loadruh_pbr,                    // llvm.hexagon.L2.loadruh.pbr
-    hexagon_L2_loadruh_pci,                    // llvm.hexagon.L2.loadruh.pci
-    hexagon_L2_loadruh_pcr,                    // llvm.hexagon.L2.loadruh.pcr
-    hexagon_L2_loadw_locked,                   // llvm.hexagon.L2.loadw.locked
-    hexagon_L4_loadd_locked,                   // llvm.hexagon.L4.loadd.locked
-    hexagon_M2_acci,                           // llvm.hexagon.M2.acci
-    hexagon_M2_accii,                          // llvm.hexagon.M2.accii
-    hexagon_M2_cmaci_s0,                       // llvm.hexagon.M2.cmaci.s0
-    hexagon_M2_cmacr_s0,                       // llvm.hexagon.M2.cmacr.s0
-    hexagon_M2_cmacs_s0,                       // llvm.hexagon.M2.cmacs.s0
-    hexagon_M2_cmacs_s1,                       // llvm.hexagon.M2.cmacs.s1
-    hexagon_M2_cmacsc_s0,                      // llvm.hexagon.M2.cmacsc.s0
-    hexagon_M2_cmacsc_s1,                      // llvm.hexagon.M2.cmacsc.s1
-    hexagon_M2_cmpyi_s0,                       // llvm.hexagon.M2.cmpyi.s0
-    hexagon_M2_cmpyr_s0,                       // llvm.hexagon.M2.cmpyr.s0
-    hexagon_M2_cmpyrs_s0,                      // llvm.hexagon.M2.cmpyrs.s0
-    hexagon_M2_cmpyrs_s1,                      // llvm.hexagon.M2.cmpyrs.s1
-    hexagon_M2_cmpyrsc_s0,                     // llvm.hexagon.M2.cmpyrsc.s0
-    hexagon_M2_cmpyrsc_s1,                     // llvm.hexagon.M2.cmpyrsc.s1
-    hexagon_M2_cmpys_s0,                       // llvm.hexagon.M2.cmpys.s0
-    hexagon_M2_cmpys_s1,                       // llvm.hexagon.M2.cmpys.s1
-    hexagon_M2_cmpysc_s0,                      // llvm.hexagon.M2.cmpysc.s0
-    hexagon_M2_cmpysc_s1,                      // llvm.hexagon.M2.cmpysc.s1
-    hexagon_M2_cnacs_s0,                       // llvm.hexagon.M2.cnacs.s0
-    hexagon_M2_cnacs_s1,                       // llvm.hexagon.M2.cnacs.s1
-    hexagon_M2_cnacsc_s0,                      // llvm.hexagon.M2.cnacsc.s0
-    hexagon_M2_cnacsc_s1,                      // llvm.hexagon.M2.cnacsc.s1
-    hexagon_M2_dpmpyss_acc_s0,                 // llvm.hexagon.M2.dpmpyss.acc.s0
-    hexagon_M2_dpmpyss_nac_s0,                 // llvm.hexagon.M2.dpmpyss.nac.s0
-    hexagon_M2_dpmpyss_rnd_s0,                 // llvm.hexagon.M2.dpmpyss.rnd.s0
-    hexagon_M2_dpmpyss_s0,                     // llvm.hexagon.M2.dpmpyss.s0
-    hexagon_M2_dpmpyuu_acc_s0,                 // llvm.hexagon.M2.dpmpyuu.acc.s0
-    hexagon_M2_dpmpyuu_nac_s0,                 // llvm.hexagon.M2.dpmpyuu.nac.s0
-    hexagon_M2_dpmpyuu_s0,                     // llvm.hexagon.M2.dpmpyuu.s0
-    hexagon_M2_hmmpyh_rs1,                     // llvm.hexagon.M2.hmmpyh.rs1
-    hexagon_M2_hmmpyh_s1,                      // llvm.hexagon.M2.hmmpyh.s1
-    hexagon_M2_hmmpyl_rs1,                     // llvm.hexagon.M2.hmmpyl.rs1
-    hexagon_M2_hmmpyl_s1,                      // llvm.hexagon.M2.hmmpyl.s1
-    hexagon_M2_maci,                           // llvm.hexagon.M2.maci
-    hexagon_M2_macsin,                         // llvm.hexagon.M2.macsin
-    hexagon_M2_macsip,                         // llvm.hexagon.M2.macsip
-    hexagon_M2_mmachs_rs0,                     // llvm.hexagon.M2.mmachs.rs0
-    hexagon_M2_mmachs_rs1,                     // llvm.hexagon.M2.mmachs.rs1
-    hexagon_M2_mmachs_s0,                      // llvm.hexagon.M2.mmachs.s0
-    hexagon_M2_mmachs_s1,                      // llvm.hexagon.M2.mmachs.s1
-    hexagon_M2_mmacls_rs0,                     // llvm.hexagon.M2.mmacls.rs0
-    hexagon_M2_mmacls_rs1,                     // llvm.hexagon.M2.mmacls.rs1
-    hexagon_M2_mmacls_s0,                      // llvm.hexagon.M2.mmacls.s0
-    hexagon_M2_mmacls_s1,                      // llvm.hexagon.M2.mmacls.s1
-    hexagon_M2_mmacuhs_rs0,                    // llvm.hexagon.M2.mmacuhs.rs0
-    hexagon_M2_mmacuhs_rs1,                    // llvm.hexagon.M2.mmacuhs.rs1
-    hexagon_M2_mmacuhs_s0,                     // llvm.hexagon.M2.mmacuhs.s0
-    hexagon_M2_mmacuhs_s1,                     // llvm.hexagon.M2.mmacuhs.s1
-    hexagon_M2_mmaculs_rs0,                    // llvm.hexagon.M2.mmaculs.rs0
-    hexagon_M2_mmaculs_rs1,                    // llvm.hexagon.M2.mmaculs.rs1
-    hexagon_M2_mmaculs_s0,                     // llvm.hexagon.M2.mmaculs.s0
-    hexagon_M2_mmaculs_s1,                     // llvm.hexagon.M2.mmaculs.s1
-    hexagon_M2_mmpyh_rs0,                      // llvm.hexagon.M2.mmpyh.rs0
-    hexagon_M2_mmpyh_rs1,                      // llvm.hexagon.M2.mmpyh.rs1
-    hexagon_M2_mmpyh_s0,                       // llvm.hexagon.M2.mmpyh.s0
-    hexagon_M2_mmpyh_s1,                       // llvm.hexagon.M2.mmpyh.s1
-    hexagon_M2_mmpyl_rs0,                      // llvm.hexagon.M2.mmpyl.rs0
-    hexagon_M2_mmpyl_rs1,                      // llvm.hexagon.M2.mmpyl.rs1
-    hexagon_M2_mmpyl_s0,                       // llvm.hexagon.M2.mmpyl.s0
-    hexagon_M2_mmpyl_s1,                       // llvm.hexagon.M2.mmpyl.s1
-    hexagon_M2_mmpyuh_rs0,                     // llvm.hexagon.M2.mmpyuh.rs0
-    hexagon_M2_mmpyuh_rs1,                     // llvm.hexagon.M2.mmpyuh.rs1
-    hexagon_M2_mmpyuh_s0,                      // llvm.hexagon.M2.mmpyuh.s0
-    hexagon_M2_mmpyuh_s1,                      // llvm.hexagon.M2.mmpyuh.s1
-    hexagon_M2_mmpyul_rs0,                     // llvm.hexagon.M2.mmpyul.rs0
-    hexagon_M2_mmpyul_rs1,                     // llvm.hexagon.M2.mmpyul.rs1
-    hexagon_M2_mmpyul_s0,                      // llvm.hexagon.M2.mmpyul.s0
-    hexagon_M2_mmpyul_s1,                      // llvm.hexagon.M2.mmpyul.s1
-    hexagon_M2_mpy_acc_hh_s0,                  // llvm.hexagon.M2.mpy.acc.hh.s0
-    hexagon_M2_mpy_acc_hh_s1,                  // llvm.hexagon.M2.mpy.acc.hh.s1
-    hexagon_M2_mpy_acc_hl_s0,                  // llvm.hexagon.M2.mpy.acc.hl.s0
-    hexagon_M2_mpy_acc_hl_s1,                  // llvm.hexagon.M2.mpy.acc.hl.s1
-    hexagon_M2_mpy_acc_lh_s0,                  // llvm.hexagon.M2.mpy.acc.lh.s0
-    hexagon_M2_mpy_acc_lh_s1,                  // llvm.hexagon.M2.mpy.acc.lh.s1
-    hexagon_M2_mpy_acc_ll_s0,                  // llvm.hexagon.M2.mpy.acc.ll.s0
-    hexagon_M2_mpy_acc_ll_s1,                  // llvm.hexagon.M2.mpy.acc.ll.s1
-    hexagon_M2_mpy_acc_sat_hh_s0,              // llvm.hexagon.M2.mpy.acc.sat.hh.s0
-    hexagon_M2_mpy_acc_sat_hh_s1,              // llvm.hexagon.M2.mpy.acc.sat.hh.s1
-    hexagon_M2_mpy_acc_sat_hl_s0,              // llvm.hexagon.M2.mpy.acc.sat.hl.s0
-    hexagon_M2_mpy_acc_sat_hl_s1,              // llvm.hexagon.M2.mpy.acc.sat.hl.s1
-    hexagon_M2_mpy_acc_sat_lh_s0,              // llvm.hexagon.M2.mpy.acc.sat.lh.s0
-    hexagon_M2_mpy_acc_sat_lh_s1,              // llvm.hexagon.M2.mpy.acc.sat.lh.s1
-    hexagon_M2_mpy_acc_sat_ll_s0,              // llvm.hexagon.M2.mpy.acc.sat.ll.s0
-    hexagon_M2_mpy_acc_sat_ll_s1,              // llvm.hexagon.M2.mpy.acc.sat.ll.s1
-    hexagon_M2_mpy_hh_s0,                      // llvm.hexagon.M2.mpy.hh.s0
-    hexagon_M2_mpy_hh_s1,                      // llvm.hexagon.M2.mpy.hh.s1
-    hexagon_M2_mpy_hl_s0,                      // llvm.hexagon.M2.mpy.hl.s0
-    hexagon_M2_mpy_hl_s1,                      // llvm.hexagon.M2.mpy.hl.s1
-    hexagon_M2_mpy_lh_s0,                      // llvm.hexagon.M2.mpy.lh.s0
-    hexagon_M2_mpy_lh_s1,                      // llvm.hexagon.M2.mpy.lh.s1
-    hexagon_M2_mpy_ll_s0,                      // llvm.hexagon.M2.mpy.ll.s0
-    hexagon_M2_mpy_ll_s1,                      // llvm.hexagon.M2.mpy.ll.s1
-    hexagon_M2_mpy_nac_hh_s0,                  // llvm.hexagon.M2.mpy.nac.hh.s0
-    hexagon_M2_mpy_nac_hh_s1,                  // llvm.hexagon.M2.mpy.nac.hh.s1
-    hexagon_M2_mpy_nac_hl_s0,                  // llvm.hexagon.M2.mpy.nac.hl.s0
-    hexagon_M2_mpy_nac_hl_s1,                  // llvm.hexagon.M2.mpy.nac.hl.s1
-    hexagon_M2_mpy_nac_lh_s0,                  // llvm.hexagon.M2.mpy.nac.lh.s0
-    hexagon_M2_mpy_nac_lh_s1,                  // llvm.hexagon.M2.mpy.nac.lh.s1
-    hexagon_M2_mpy_nac_ll_s0,                  // llvm.hexagon.M2.mpy.nac.ll.s0
-    hexagon_M2_mpy_nac_ll_s1,                  // llvm.hexagon.M2.mpy.nac.ll.s1
-    hexagon_M2_mpy_nac_sat_hh_s0,              // llvm.hexagon.M2.mpy.nac.sat.hh.s0
-    hexagon_M2_mpy_nac_sat_hh_s1,              // llvm.hexagon.M2.mpy.nac.sat.hh.s1
-    hexagon_M2_mpy_nac_sat_hl_s0,              // llvm.hexagon.M2.mpy.nac.sat.hl.s0
-    hexagon_M2_mpy_nac_sat_hl_s1,              // llvm.hexagon.M2.mpy.nac.sat.hl.s1
-    hexagon_M2_mpy_nac_sat_lh_s0,              // llvm.hexagon.M2.mpy.nac.sat.lh.s0
-    hexagon_M2_mpy_nac_sat_lh_s1,              // llvm.hexagon.M2.mpy.nac.sat.lh.s1
-    hexagon_M2_mpy_nac_sat_ll_s0,              // llvm.hexagon.M2.mpy.nac.sat.ll.s0
-    hexagon_M2_mpy_nac_sat_ll_s1,              // llvm.hexagon.M2.mpy.nac.sat.ll.s1
-    hexagon_M2_mpy_rnd_hh_s0,                  // llvm.hexagon.M2.mpy.rnd.hh.s0
-    hexagon_M2_mpy_rnd_hh_s1,                  // llvm.hexagon.M2.mpy.rnd.hh.s1
-    hexagon_M2_mpy_rnd_hl_s0,                  // llvm.hexagon.M2.mpy.rnd.hl.s0
-    hexagon_M2_mpy_rnd_hl_s1,                  // llvm.hexagon.M2.mpy.rnd.hl.s1
-    hexagon_M2_mpy_rnd_lh_s0,                  // llvm.hexagon.M2.mpy.rnd.lh.s0
-    hexagon_M2_mpy_rnd_lh_s1,                  // llvm.hexagon.M2.mpy.rnd.lh.s1
-    hexagon_M2_mpy_rnd_ll_s0,                  // llvm.hexagon.M2.mpy.rnd.ll.s0
-    hexagon_M2_mpy_rnd_ll_s1,                  // llvm.hexagon.M2.mpy.rnd.ll.s1
-    hexagon_M2_mpy_sat_hh_s0,                  // llvm.hexagon.M2.mpy.sat.hh.s0
-    hexagon_M2_mpy_sat_hh_s1,                  // llvm.hexagon.M2.mpy.sat.hh.s1
-    hexagon_M2_mpy_sat_hl_s0,                  // llvm.hexagon.M2.mpy.sat.hl.s0
-    hexagon_M2_mpy_sat_hl_s1,                  // llvm.hexagon.M2.mpy.sat.hl.s1
-    hexagon_M2_mpy_sat_lh_s0,                  // llvm.hexagon.M2.mpy.sat.lh.s0
-    hexagon_M2_mpy_sat_lh_s1,                  // llvm.hexagon.M2.mpy.sat.lh.s1
-    hexagon_M2_mpy_sat_ll_s0,                  // llvm.hexagon.M2.mpy.sat.ll.s0
-    hexagon_M2_mpy_sat_ll_s1,                  // llvm.hexagon.M2.mpy.sat.ll.s1
-    hexagon_M2_mpy_sat_rnd_hh_s0,              // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
-    hexagon_M2_mpy_sat_rnd_hh_s1,              // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
-    hexagon_M2_mpy_sat_rnd_hl_s0,              // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
-    hexagon_M2_mpy_sat_rnd_hl_s1,              // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
-    hexagon_M2_mpy_sat_rnd_lh_s0,              // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
-    hexagon_M2_mpy_sat_rnd_lh_s1,              // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
-    hexagon_M2_mpy_sat_rnd_ll_s0,              // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
-    hexagon_M2_mpy_sat_rnd_ll_s1,              // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
-    hexagon_M2_mpy_up,                         // llvm.hexagon.M2.mpy.up
-    hexagon_M2_mpy_up_s1,                      // llvm.hexagon.M2.mpy.up.s1
-    hexagon_M2_mpy_up_s1_sat,                  // llvm.hexagon.M2.mpy.up.s1.sat
-    hexagon_M2_mpyd_acc_hh_s0,                 // llvm.hexagon.M2.mpyd.acc.hh.s0
-    hexagon_M2_mpyd_acc_hh_s1,                 // llvm.hexagon.M2.mpyd.acc.hh.s1
-    hexagon_M2_mpyd_acc_hl_s0,                 // llvm.hexagon.M2.mpyd.acc.hl.s0
-    hexagon_M2_mpyd_acc_hl_s1,                 // llvm.hexagon.M2.mpyd.acc.hl.s1
-    hexagon_M2_mpyd_acc_lh_s0,                 // llvm.hexagon.M2.mpyd.acc.lh.s0
-    hexagon_M2_mpyd_acc_lh_s1,                 // llvm.hexagon.M2.mpyd.acc.lh.s1
-    hexagon_M2_mpyd_acc_ll_s0,                 // llvm.hexagon.M2.mpyd.acc.ll.s0
-    hexagon_M2_mpyd_acc_ll_s1,                 // llvm.hexagon.M2.mpyd.acc.ll.s1
-    hexagon_M2_mpyd_hh_s0,                     // llvm.hexagon.M2.mpyd.hh.s0
-    hexagon_M2_mpyd_hh_s1,                     // llvm.hexagon.M2.mpyd.hh.s1
-    hexagon_M2_mpyd_hl_s0,                     // llvm.hexagon.M2.mpyd.hl.s0
-    hexagon_M2_mpyd_hl_s1,                     // llvm.hexagon.M2.mpyd.hl.s1
-    hexagon_M2_mpyd_lh_s0,                     // llvm.hexagon.M2.mpyd.lh.s0
-    hexagon_M2_mpyd_lh_s1,                     // llvm.hexagon.M2.mpyd.lh.s1
-    hexagon_M2_mpyd_ll_s0,                     // llvm.hexagon.M2.mpyd.ll.s0
-    hexagon_M2_mpyd_ll_s1,                     // llvm.hexagon.M2.mpyd.ll.s1
-    hexagon_M2_mpyd_nac_hh_s0,                 // llvm.hexagon.M2.mpyd.nac.hh.s0
-    hexagon_M2_mpyd_nac_hh_s1,                 // llvm.hexagon.M2.mpyd.nac.hh.s1
-    hexagon_M2_mpyd_nac_hl_s0,                 // llvm.hexagon.M2.mpyd.nac.hl.s0
-    hexagon_M2_mpyd_nac_hl_s1,                 // llvm.hexagon.M2.mpyd.nac.hl.s1
-    hexagon_M2_mpyd_nac_lh_s0,                 // llvm.hexagon.M2.mpyd.nac.lh.s0
-    hexagon_M2_mpyd_nac_lh_s1,                 // llvm.hexagon.M2.mpyd.nac.lh.s1
-    hexagon_M2_mpyd_nac_ll_s0,                 // llvm.hexagon.M2.mpyd.nac.ll.s0
-    hexagon_M2_mpyd_nac_ll_s1,                 // llvm.hexagon.M2.mpyd.nac.ll.s1
-    hexagon_M2_mpyd_rnd_hh_s0,                 // llvm.hexagon.M2.mpyd.rnd.hh.s0
-    hexagon_M2_mpyd_rnd_hh_s1,                 // llvm.hexagon.M2.mpyd.rnd.hh.s1
-    hexagon_M2_mpyd_rnd_hl_s0,                 // llvm.hexagon.M2.mpyd.rnd.hl.s0
-    hexagon_M2_mpyd_rnd_hl_s1,                 // llvm.hexagon.M2.mpyd.rnd.hl.s1
-    hexagon_M2_mpyd_rnd_lh_s0,                 // llvm.hexagon.M2.mpyd.rnd.lh.s0
-    hexagon_M2_mpyd_rnd_lh_s1,                 // llvm.hexagon.M2.mpyd.rnd.lh.s1
-    hexagon_M2_mpyd_rnd_ll_s0,                 // llvm.hexagon.M2.mpyd.rnd.ll.s0
-    hexagon_M2_mpyd_rnd_ll_s1,                 // llvm.hexagon.M2.mpyd.rnd.ll.s1
-    hexagon_M2_mpyi,                           // llvm.hexagon.M2.mpyi
-    hexagon_M2_mpysmi,                         // llvm.hexagon.M2.mpysmi
-    hexagon_M2_mpysu_up,                       // llvm.hexagon.M2.mpysu.up
-    hexagon_M2_mpyu_acc_hh_s0,                 // llvm.hexagon.M2.mpyu.acc.hh.s0
-    hexagon_M2_mpyu_acc_hh_s1,                 // llvm.hexagon.M2.mpyu.acc.hh.s1
-    hexagon_M2_mpyu_acc_hl_s0,                 // llvm.hexagon.M2.mpyu.acc.hl.s0
-    hexagon_M2_mpyu_acc_hl_s1,                 // llvm.hexagon.M2.mpyu.acc.hl.s1
-    hexagon_M2_mpyu_acc_lh_s0,                 // llvm.hexagon.M2.mpyu.acc.lh.s0
-    hexagon_M2_mpyu_acc_lh_s1,                 // llvm.hexagon.M2.mpyu.acc.lh.s1
-    hexagon_M2_mpyu_acc_ll_s0,                 // llvm.hexagon.M2.mpyu.acc.ll.s0
-    hexagon_M2_mpyu_acc_ll_s1,                 // llvm.hexagon.M2.mpyu.acc.ll.s1
-    hexagon_M2_mpyu_hh_s0,                     // llvm.hexagon.M2.mpyu.hh.s0
-    hexagon_M2_mpyu_hh_s1,                     // llvm.hexagon.M2.mpyu.hh.s1
-    hexagon_M2_mpyu_hl_s0,                     // llvm.hexagon.M2.mpyu.hl.s0
-    hexagon_M2_mpyu_hl_s1,                     // llvm.hexagon.M2.mpyu.hl.s1
-    hexagon_M2_mpyu_lh_s0,                     // llvm.hexagon.M2.mpyu.lh.s0
-    hexagon_M2_mpyu_lh_s1,                     // llvm.hexagon.M2.mpyu.lh.s1
-    hexagon_M2_mpyu_ll_s0,                     // llvm.hexagon.M2.mpyu.ll.s0
-    hexagon_M2_mpyu_ll_s1,                     // llvm.hexagon.M2.mpyu.ll.s1
-    hexagon_M2_mpyu_nac_hh_s0,                 // llvm.hexagon.M2.mpyu.nac.hh.s0
-    hexagon_M2_mpyu_nac_hh_s1,                 // llvm.hexagon.M2.mpyu.nac.hh.s1
-    hexagon_M2_mpyu_nac_hl_s0,                 // llvm.hexagon.M2.mpyu.nac.hl.s0
-    hexagon_M2_mpyu_nac_hl_s1,                 // llvm.hexagon.M2.mpyu.nac.hl.s1
-    hexagon_M2_mpyu_nac_lh_s0,                 // llvm.hexagon.M2.mpyu.nac.lh.s0
-    hexagon_M2_mpyu_nac_lh_s1,                 // llvm.hexagon.M2.mpyu.nac.lh.s1
-    hexagon_M2_mpyu_nac_ll_s0,                 // llvm.hexagon.M2.mpyu.nac.ll.s0
-    hexagon_M2_mpyu_nac_ll_s1,                 // llvm.hexagon.M2.mpyu.nac.ll.s1
-    hexagon_M2_mpyu_up,                        // llvm.hexagon.M2.mpyu.up
-    hexagon_M2_mpyud_acc_hh_s0,                // llvm.hexagon.M2.mpyud.acc.hh.s0
-    hexagon_M2_mpyud_acc_hh_s1,                // llvm.hexagon.M2.mpyud.acc.hh.s1
-    hexagon_M2_mpyud_acc_hl_s0,                // llvm.hexagon.M2.mpyud.acc.hl.s0
-    hexagon_M2_mpyud_acc_hl_s1,                // llvm.hexagon.M2.mpyud.acc.hl.s1
-    hexagon_M2_mpyud_acc_lh_s0,                // llvm.hexagon.M2.mpyud.acc.lh.s0
-    hexagon_M2_mpyud_acc_lh_s1,                // llvm.hexagon.M2.mpyud.acc.lh.s1
-    hexagon_M2_mpyud_acc_ll_s0,                // llvm.hexagon.M2.mpyud.acc.ll.s0
-    hexagon_M2_mpyud_acc_ll_s1,                // llvm.hexagon.M2.mpyud.acc.ll.s1
-    hexagon_M2_mpyud_hh_s0,                    // llvm.hexagon.M2.mpyud.hh.s0
-    hexagon_M2_mpyud_hh_s1,                    // llvm.hexagon.M2.mpyud.hh.s1
-    hexagon_M2_mpyud_hl_s0,                    // llvm.hexagon.M2.mpyud.hl.s0
-    hexagon_M2_mpyud_hl_s1,                    // llvm.hexagon.M2.mpyud.hl.s1
-    hexagon_M2_mpyud_lh_s0,                    // llvm.hexagon.M2.mpyud.lh.s0
-    hexagon_M2_mpyud_lh_s1,                    // llvm.hexagon.M2.mpyud.lh.s1
-    hexagon_M2_mpyud_ll_s0,                    // llvm.hexagon.M2.mpyud.ll.s0
-    hexagon_M2_mpyud_ll_s1,                    // llvm.hexagon.M2.mpyud.ll.s1
-    hexagon_M2_mpyud_nac_hh_s0,                // llvm.hexagon.M2.mpyud.nac.hh.s0
-    hexagon_M2_mpyud_nac_hh_s1,                // llvm.hexagon.M2.mpyud.nac.hh.s1
-    hexagon_M2_mpyud_nac_hl_s0,                // llvm.hexagon.M2.mpyud.nac.hl.s0
-    hexagon_M2_mpyud_nac_hl_s1,                // llvm.hexagon.M2.mpyud.nac.hl.s1
-    hexagon_M2_mpyud_nac_lh_s0,                // llvm.hexagon.M2.mpyud.nac.lh.s0
-    hexagon_M2_mpyud_nac_lh_s1,                // llvm.hexagon.M2.mpyud.nac.lh.s1
-    hexagon_M2_mpyud_nac_ll_s0,                // llvm.hexagon.M2.mpyud.nac.ll.s0
-    hexagon_M2_mpyud_nac_ll_s1,                // llvm.hexagon.M2.mpyud.nac.ll.s1
-    hexagon_M2_mpyui,                          // llvm.hexagon.M2.mpyui
-    hexagon_M2_nacci,                          // llvm.hexagon.M2.nacci
-    hexagon_M2_naccii,                         // llvm.hexagon.M2.naccii
-    hexagon_M2_subacc,                         // llvm.hexagon.M2.subacc
-    hexagon_M2_vabsdiffh,                      // llvm.hexagon.M2.vabsdiffh
-    hexagon_M2_vabsdiffw,                      // llvm.hexagon.M2.vabsdiffw
-    hexagon_M2_vcmac_s0_sat_i,                 // llvm.hexagon.M2.vcmac.s0.sat.i
-    hexagon_M2_vcmac_s0_sat_r,                 // llvm.hexagon.M2.vcmac.s0.sat.r
-    hexagon_M2_vcmpy_s0_sat_i,                 // llvm.hexagon.M2.vcmpy.s0.sat.i
-    hexagon_M2_vcmpy_s0_sat_r,                 // llvm.hexagon.M2.vcmpy.s0.sat.r
-    hexagon_M2_vcmpy_s1_sat_i,                 // llvm.hexagon.M2.vcmpy.s1.sat.i
-    hexagon_M2_vcmpy_s1_sat_r,                 // llvm.hexagon.M2.vcmpy.s1.sat.r
-    hexagon_M2_vdmacs_s0,                      // llvm.hexagon.M2.vdmacs.s0
-    hexagon_M2_vdmacs_s1,                      // llvm.hexagon.M2.vdmacs.s1
-    hexagon_M2_vdmpyrs_s0,                     // llvm.hexagon.M2.vdmpyrs.s0
-    hexagon_M2_vdmpyrs_s1,                     // llvm.hexagon.M2.vdmpyrs.s1
-    hexagon_M2_vdmpys_s0,                      // llvm.hexagon.M2.vdmpys.s0
-    hexagon_M2_vdmpys_s1,                      // llvm.hexagon.M2.vdmpys.s1
-    hexagon_M2_vmac2,                          // llvm.hexagon.M2.vmac2
-    hexagon_M2_vmac2es,                        // llvm.hexagon.M2.vmac2es
-    hexagon_M2_vmac2es_s0,                     // llvm.hexagon.M2.vmac2es.s0
-    hexagon_M2_vmac2es_s1,                     // llvm.hexagon.M2.vmac2es.s1
-    hexagon_M2_vmac2s_s0,                      // llvm.hexagon.M2.vmac2s.s0
-    hexagon_M2_vmac2s_s1,                      // llvm.hexagon.M2.vmac2s.s1
-    hexagon_M2_vmac2su_s0,                     // llvm.hexagon.M2.vmac2su.s0
-    hexagon_M2_vmac2su_s1,                     // llvm.hexagon.M2.vmac2su.s1
-    hexagon_M2_vmpy2es_s0,                     // llvm.hexagon.M2.vmpy2es.s0
-    hexagon_M2_vmpy2es_s1,                     // llvm.hexagon.M2.vmpy2es.s1
-    hexagon_M2_vmpy2s_s0,                      // llvm.hexagon.M2.vmpy2s.s0
-    hexagon_M2_vmpy2s_s0pack,                  // llvm.hexagon.M2.vmpy2s.s0pack
-    hexagon_M2_vmpy2s_s1,                      // llvm.hexagon.M2.vmpy2s.s1
-    hexagon_M2_vmpy2s_s1pack,                  // llvm.hexagon.M2.vmpy2s.s1pack
-    hexagon_M2_vmpy2su_s0,                     // llvm.hexagon.M2.vmpy2su.s0
-    hexagon_M2_vmpy2su_s1,                     // llvm.hexagon.M2.vmpy2su.s1
-    hexagon_M2_vraddh,                         // llvm.hexagon.M2.vraddh
-    hexagon_M2_vradduh,                        // llvm.hexagon.M2.vradduh
-    hexagon_M2_vrcmaci_s0,                     // llvm.hexagon.M2.vrcmaci.s0
-    hexagon_M2_vrcmaci_s0c,                    // llvm.hexagon.M2.vrcmaci.s0c
-    hexagon_M2_vrcmacr_s0,                     // llvm.hexagon.M2.vrcmacr.s0
-    hexagon_M2_vrcmacr_s0c,                    // llvm.hexagon.M2.vrcmacr.s0c
-    hexagon_M2_vrcmpyi_s0,                     // llvm.hexagon.M2.vrcmpyi.s0
-    hexagon_M2_vrcmpyi_s0c,                    // llvm.hexagon.M2.vrcmpyi.s0c
-    hexagon_M2_vrcmpyr_s0,                     // llvm.hexagon.M2.vrcmpyr.s0
-    hexagon_M2_vrcmpyr_s0c,                    // llvm.hexagon.M2.vrcmpyr.s0c
-    hexagon_M2_vrcmpys_acc_s1,                 // llvm.hexagon.M2.vrcmpys.acc.s1
-    hexagon_M2_vrcmpys_s1,                     // llvm.hexagon.M2.vrcmpys.s1
-    hexagon_M2_vrcmpys_s1rp,                   // llvm.hexagon.M2.vrcmpys.s1rp
-    hexagon_M2_vrmac_s0,                       // llvm.hexagon.M2.vrmac.s0
-    hexagon_M2_vrmpy_s0,                       // llvm.hexagon.M2.vrmpy.s0
-    hexagon_M2_xor_xacc,                       // llvm.hexagon.M2.xor.xacc
-    hexagon_M4_and_and,                        // llvm.hexagon.M4.and.and
-    hexagon_M4_and_andn,                       // llvm.hexagon.M4.and.andn
-    hexagon_M4_and_or,                         // llvm.hexagon.M4.and.or
-    hexagon_M4_and_xor,                        // llvm.hexagon.M4.and.xor
-    hexagon_M4_cmpyi_wh,                       // llvm.hexagon.M4.cmpyi.wh
-    hexagon_M4_cmpyi_whc,                      // llvm.hexagon.M4.cmpyi.whc
-    hexagon_M4_cmpyr_wh,                       // llvm.hexagon.M4.cmpyr.wh
-    hexagon_M4_cmpyr_whc,                      // llvm.hexagon.M4.cmpyr.whc
-    hexagon_M4_mac_up_s1_sat,                  // llvm.hexagon.M4.mac.up.s1.sat
-    hexagon_M4_mpyri_addi,                     // llvm.hexagon.M4.mpyri.addi
-    hexagon_M4_mpyri_addr,                     // llvm.hexagon.M4.mpyri.addr
-    hexagon_M4_mpyri_addr_u2,                  // llvm.hexagon.M4.mpyri.addr.u2
-    hexagon_M4_mpyrr_addi,                     // llvm.hexagon.M4.mpyrr.addi
-    hexagon_M4_mpyrr_addr,                     // llvm.hexagon.M4.mpyrr.addr
-    hexagon_M4_nac_up_s1_sat,                  // llvm.hexagon.M4.nac.up.s1.sat
-    hexagon_M4_or_and,                         // llvm.hexagon.M4.or.and
-    hexagon_M4_or_andn,                        // llvm.hexagon.M4.or.andn
-    hexagon_M4_or_or,                          // llvm.hexagon.M4.or.or
-    hexagon_M4_or_xor,                         // llvm.hexagon.M4.or.xor
-    hexagon_M4_pmpyw,                          // llvm.hexagon.M4.pmpyw
-    hexagon_M4_pmpyw_acc,                      // llvm.hexagon.M4.pmpyw.acc
-    hexagon_M4_vpmpyh,                         // llvm.hexagon.M4.vpmpyh
-    hexagon_M4_vpmpyh_acc,                     // llvm.hexagon.M4.vpmpyh.acc
-    hexagon_M4_vrmpyeh_acc_s0,                 // llvm.hexagon.M4.vrmpyeh.acc.s0
-    hexagon_M4_vrmpyeh_acc_s1,                 // llvm.hexagon.M4.vrmpyeh.acc.s1
-    hexagon_M4_vrmpyeh_s0,                     // llvm.hexagon.M4.vrmpyeh.s0
-    hexagon_M4_vrmpyeh_s1,                     // llvm.hexagon.M4.vrmpyeh.s1
-    hexagon_M4_vrmpyoh_acc_s0,                 // llvm.hexagon.M4.vrmpyoh.acc.s0
-    hexagon_M4_vrmpyoh_acc_s1,                 // llvm.hexagon.M4.vrmpyoh.acc.s1
-    hexagon_M4_vrmpyoh_s0,                     // llvm.hexagon.M4.vrmpyoh.s0
-    hexagon_M4_vrmpyoh_s1,                     // llvm.hexagon.M4.vrmpyoh.s1
-    hexagon_M4_xor_and,                        // llvm.hexagon.M4.xor.and
-    hexagon_M4_xor_andn,                       // llvm.hexagon.M4.xor.andn
-    hexagon_M4_xor_or,                         // llvm.hexagon.M4.xor.or
-    hexagon_M4_xor_xacc,                       // llvm.hexagon.M4.xor.xacc
-    hexagon_M5_vdmacbsu,                       // llvm.hexagon.M5.vdmacbsu
-    hexagon_M5_vdmpybsu,                       // llvm.hexagon.M5.vdmpybsu
-    hexagon_M5_vmacbsu,                        // llvm.hexagon.M5.vmacbsu
-    hexagon_M5_vmacbuu,                        // llvm.hexagon.M5.vmacbuu
-    hexagon_M5_vmpybsu,                        // llvm.hexagon.M5.vmpybsu
-    hexagon_M5_vmpybuu,                        // llvm.hexagon.M5.vmpybuu
-    hexagon_M5_vrmacbsu,                       // llvm.hexagon.M5.vrmacbsu
-    hexagon_M5_vrmacbuu,                       // llvm.hexagon.M5.vrmacbuu
-    hexagon_M5_vrmpybsu,                       // llvm.hexagon.M5.vrmpybsu
-    hexagon_M5_vrmpybuu,                       // llvm.hexagon.M5.vrmpybuu
-    hexagon_M6_vabsdiffb,                      // llvm.hexagon.M6.vabsdiffb
-    hexagon_M6_vabsdiffub,                     // llvm.hexagon.M6.vabsdiffub
-    hexagon_S2_addasl_rrri,                    // llvm.hexagon.S2.addasl.rrri
-    hexagon_S2_asl_i_p,                        // llvm.hexagon.S2.asl.i.p
-    hexagon_S2_asl_i_p_acc,                    // llvm.hexagon.S2.asl.i.p.acc
-    hexagon_S2_asl_i_p_and,                    // llvm.hexagon.S2.asl.i.p.and
-    hexagon_S2_asl_i_p_nac,                    // llvm.hexagon.S2.asl.i.p.nac
-    hexagon_S2_asl_i_p_or,                     // llvm.hexagon.S2.asl.i.p.or
-    hexagon_S2_asl_i_p_xacc,                   // llvm.hexagon.S2.asl.i.p.xacc
-    hexagon_S2_asl_i_r,                        // llvm.hexagon.S2.asl.i.r
-    hexagon_S2_asl_i_r_acc,                    // llvm.hexagon.S2.asl.i.r.acc
-    hexagon_S2_asl_i_r_and,                    // llvm.hexagon.S2.asl.i.r.and
-    hexagon_S2_asl_i_r_nac,                    // llvm.hexagon.S2.asl.i.r.nac
-    hexagon_S2_asl_i_r_or,                     // llvm.hexagon.S2.asl.i.r.or
-    hexagon_S2_asl_i_r_sat,                    // llvm.hexagon.S2.asl.i.r.sat
-    hexagon_S2_asl_i_r_xacc,                   // llvm.hexagon.S2.asl.i.r.xacc
-    hexagon_S2_asl_i_vh,                       // llvm.hexagon.S2.asl.i.vh
-    hexagon_S2_asl_i_vw,                       // llvm.hexagon.S2.asl.i.vw
-    hexagon_S2_asl_r_p,                        // llvm.hexagon.S2.asl.r.p
-    hexagon_S2_asl_r_p_acc,                    // llvm.hexagon.S2.asl.r.p.acc
-    hexagon_S2_asl_r_p_and,                    // llvm.hexagon.S2.asl.r.p.and
-    hexagon_S2_asl_r_p_nac,                    // llvm.hexagon.S2.asl.r.p.nac
-    hexagon_S2_asl_r_p_or,                     // llvm.hexagon.S2.asl.r.p.or
-    hexagon_S2_asl_r_p_xor,                    // llvm.hexagon.S2.asl.r.p.xor
-    hexagon_S2_asl_r_r,                        // llvm.hexagon.S2.asl.r.r
-    hexagon_S2_asl_r_r_acc,                    // llvm.hexagon.S2.asl.r.r.acc
-    hexagon_S2_asl_r_r_and,                    // llvm.hexagon.S2.asl.r.r.and
-    hexagon_S2_asl_r_r_nac,                    // llvm.hexagon.S2.asl.r.r.nac
-    hexagon_S2_asl_r_r_or,                     // llvm.hexagon.S2.asl.r.r.or
-    hexagon_S2_asl_r_r_sat,                    // llvm.hexagon.S2.asl.r.r.sat
-    hexagon_S2_asl_r_vh,                       // llvm.hexagon.S2.asl.r.vh
-    hexagon_S2_asl_r_vw,                       // llvm.hexagon.S2.asl.r.vw
-    hexagon_S2_asr_i_p,                        // llvm.hexagon.S2.asr.i.p
-    hexagon_S2_asr_i_p_acc,                    // llvm.hexagon.S2.asr.i.p.acc
-    hexagon_S2_asr_i_p_and,                    // llvm.hexagon.S2.asr.i.p.and
-    hexagon_S2_asr_i_p_nac,                    // llvm.hexagon.S2.asr.i.p.nac
-    hexagon_S2_asr_i_p_or,                     // llvm.hexagon.S2.asr.i.p.or
-    hexagon_S2_asr_i_p_rnd,                    // llvm.hexagon.S2.asr.i.p.rnd
-    hexagon_S2_asr_i_p_rnd_goodsyntax,         // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
-    hexagon_S2_asr_i_r,                        // llvm.hexagon.S2.asr.i.r
-    hexagon_S2_asr_i_r_acc,                    // llvm.hexagon.S2.asr.i.r.acc
-    hexagon_S2_asr_i_r_and,                    // llvm.hexagon.S2.asr.i.r.and
-    hexagon_S2_asr_i_r_nac,                    // llvm.hexagon.S2.asr.i.r.nac
-    hexagon_S2_asr_i_r_or,                     // llvm.hexagon.S2.asr.i.r.or
-    hexagon_S2_asr_i_r_rnd,                    // llvm.hexagon.S2.asr.i.r.rnd
-    hexagon_S2_asr_i_r_rnd_goodsyntax,         // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
-    hexagon_S2_asr_i_svw_trun,                 // llvm.hexagon.S2.asr.i.svw.trun
-    hexagon_S2_asr_i_vh,                       // llvm.hexagon.S2.asr.i.vh
-    hexagon_S2_asr_i_vw,                       // llvm.hexagon.S2.asr.i.vw
-    hexagon_S2_asr_r_p,                        // llvm.hexagon.S2.asr.r.p
-    hexagon_S2_asr_r_p_acc,                    // llvm.hexagon.S2.asr.r.p.acc
-    hexagon_S2_asr_r_p_and,                    // llvm.hexagon.S2.asr.r.p.and
-    hexagon_S2_asr_r_p_nac,                    // llvm.hexagon.S2.asr.r.p.nac
-    hexagon_S2_asr_r_p_or,                     // llvm.hexagon.S2.asr.r.p.or
-    hexagon_S2_asr_r_p_xor,                    // llvm.hexagon.S2.asr.r.p.xor
-    hexagon_S2_asr_r_r,                        // llvm.hexagon.S2.asr.r.r
-    hexagon_S2_asr_r_r_acc,                    // llvm.hexagon.S2.asr.r.r.acc
-    hexagon_S2_asr_r_r_and,                    // llvm.hexagon.S2.asr.r.r.and
-    hexagon_S2_asr_r_r_nac,                    // llvm.hexagon.S2.asr.r.r.nac
-    hexagon_S2_asr_r_r_or,                     // llvm.hexagon.S2.asr.r.r.or
-    hexagon_S2_asr_r_r_sat,                    // llvm.hexagon.S2.asr.r.r.sat
-    hexagon_S2_asr_r_svw_trun,                 // llvm.hexagon.S2.asr.r.svw.trun
-    hexagon_S2_asr_r_vh,                       // llvm.hexagon.S2.asr.r.vh
-    hexagon_S2_asr_r_vw,                       // llvm.hexagon.S2.asr.r.vw
-    hexagon_S2_brev,                           // llvm.hexagon.S2.brev
-    hexagon_S2_brevp,                          // llvm.hexagon.S2.brevp
-    hexagon_S2_cabacencbin,                    // llvm.hexagon.S2.cabacencbin
-    hexagon_S2_cl0,                            // llvm.hexagon.S2.cl0
-    hexagon_S2_cl0p,                           // llvm.hexagon.S2.cl0p
-    hexagon_S2_cl1,                            // llvm.hexagon.S2.cl1
-    hexagon_S2_cl1p,                           // llvm.hexagon.S2.cl1p
-    hexagon_S2_clb,                            // llvm.hexagon.S2.clb
-    hexagon_S2_clbnorm,                        // llvm.hexagon.S2.clbnorm
-    hexagon_S2_clbp,                           // llvm.hexagon.S2.clbp
-    hexagon_S2_clrbit_i,                       // llvm.hexagon.S2.clrbit.i
-    hexagon_S2_clrbit_r,                       // llvm.hexagon.S2.clrbit.r
-    hexagon_S2_ct0,                            // llvm.hexagon.S2.ct0
-    hexagon_S2_ct0p,                           // llvm.hexagon.S2.ct0p
-    hexagon_S2_ct1,                            // llvm.hexagon.S2.ct1
-    hexagon_S2_ct1p,                           // llvm.hexagon.S2.ct1p
-    hexagon_S2_deinterleave,                   // llvm.hexagon.S2.deinterleave
-    hexagon_S2_extractu,                       // llvm.hexagon.S2.extractu
-    hexagon_S2_extractu_rp,                    // llvm.hexagon.S2.extractu.rp
-    hexagon_S2_extractup,                      // llvm.hexagon.S2.extractup
-    hexagon_S2_extractup_rp,                   // llvm.hexagon.S2.extractup.rp
-    hexagon_S2_insert,                         // llvm.hexagon.S2.insert
-    hexagon_S2_insert_rp,                      // llvm.hexagon.S2.insert.rp
-    hexagon_S2_insertp,                        // llvm.hexagon.S2.insertp
-    hexagon_S2_insertp_rp,                     // llvm.hexagon.S2.insertp.rp
-    hexagon_S2_interleave,                     // llvm.hexagon.S2.interleave
-    hexagon_S2_lfsp,                           // llvm.hexagon.S2.lfsp
-    hexagon_S2_lsl_r_p,                        // llvm.hexagon.S2.lsl.r.p
-    hexagon_S2_lsl_r_p_acc,                    // llvm.hexagon.S2.lsl.r.p.acc
-    hexagon_S2_lsl_r_p_and,                    // llvm.hexagon.S2.lsl.r.p.and
-    hexagon_S2_lsl_r_p_nac,                    // llvm.hexagon.S2.lsl.r.p.nac
-    hexagon_S2_lsl_r_p_or,                     // llvm.hexagon.S2.lsl.r.p.or
-    hexagon_S2_lsl_r_p_xor,                    // llvm.hexagon.S2.lsl.r.p.xor
-    hexagon_S2_lsl_r_r,                        // llvm.hexagon.S2.lsl.r.r
-    hexagon_S2_lsl_r_r_acc,                    // llvm.hexagon.S2.lsl.r.r.acc
-    hexagon_S2_lsl_r_r_and,                    // llvm.hexagon.S2.lsl.r.r.and
-    hexagon_S2_lsl_r_r_nac,                    // llvm.hexagon.S2.lsl.r.r.nac
-    hexagon_S2_lsl_r_r_or,                     // llvm.hexagon.S2.lsl.r.r.or
-    hexagon_S2_lsl_r_vh,                       // llvm.hexagon.S2.lsl.r.vh
-    hexagon_S2_lsl_r_vw,                       // llvm.hexagon.S2.lsl.r.vw
-    hexagon_S2_lsr_i_p,                        // llvm.hexagon.S2.lsr.i.p
-    hexagon_S2_lsr_i_p_acc,                    // llvm.hexagon.S2.lsr.i.p.acc
-    hexagon_S2_lsr_i_p_and,                    // llvm.hexagon.S2.lsr.i.p.and
-    hexagon_S2_lsr_i_p_nac,                    // llvm.hexagon.S2.lsr.i.p.nac
-    hexagon_S2_lsr_i_p_or,                     // llvm.hexagon.S2.lsr.i.p.or
-    hexagon_S2_lsr_i_p_xacc,                   // llvm.hexagon.S2.lsr.i.p.xacc
-    hexagon_S2_lsr_i_r,                        // llvm.hexagon.S2.lsr.i.r
-    hexagon_S2_lsr_i_r_acc,                    // llvm.hexagon.S2.lsr.i.r.acc
-    hexagon_S2_lsr_i_r_and,                    // llvm.hexagon.S2.lsr.i.r.and
-    hexagon_S2_lsr_i_r_nac,                    // llvm.hexagon.S2.lsr.i.r.nac
-    hexagon_S2_lsr_i_r_or,                     // llvm.hexagon.S2.lsr.i.r.or
-    hexagon_S2_lsr_i_r_xacc,                   // llvm.hexagon.S2.lsr.i.r.xacc
-    hexagon_S2_lsr_i_vh,                       // llvm.hexagon.S2.lsr.i.vh
-    hexagon_S2_lsr_i_vw,                       // llvm.hexagon.S2.lsr.i.vw
-    hexagon_S2_lsr_r_p,                        // llvm.hexagon.S2.lsr.r.p
-    hexagon_S2_lsr_r_p_acc,                    // llvm.hexagon.S2.lsr.r.p.acc
-    hexagon_S2_lsr_r_p_and,                    // llvm.hexagon.S2.lsr.r.p.and
-    hexagon_S2_lsr_r_p_nac,                    // llvm.hexagon.S2.lsr.r.p.nac
-    hexagon_S2_lsr_r_p_or,                     // llvm.hexagon.S2.lsr.r.p.or
-    hexagon_S2_lsr_r_p_xor,                    // llvm.hexagon.S2.lsr.r.p.xor
-    hexagon_S2_lsr_r_r,                        // llvm.hexagon.S2.lsr.r.r
-    hexagon_S2_lsr_r_r_acc,                    // llvm.hexagon.S2.lsr.r.r.acc
-    hexagon_S2_lsr_r_r_and,                    // llvm.hexagon.S2.lsr.r.r.and
-    hexagon_S2_lsr_r_r_nac,                    // llvm.hexagon.S2.lsr.r.r.nac
-    hexagon_S2_lsr_r_r_or,                     // llvm.hexagon.S2.lsr.r.r.or
-    hexagon_S2_lsr_r_vh,                       // llvm.hexagon.S2.lsr.r.vh
-    hexagon_S2_lsr_r_vw,                       // llvm.hexagon.S2.lsr.r.vw
-    hexagon_S2_packhl,                         // llvm.hexagon.S2.packhl
-    hexagon_S2_parityp,                        // llvm.hexagon.S2.parityp
-    hexagon_S2_setbit_i,                       // llvm.hexagon.S2.setbit.i
-    hexagon_S2_setbit_r,                       // llvm.hexagon.S2.setbit.r
-    hexagon_S2_shuffeb,                        // llvm.hexagon.S2.shuffeb
-    hexagon_S2_shuffeh,                        // llvm.hexagon.S2.shuffeh
-    hexagon_S2_shuffob,                        // llvm.hexagon.S2.shuffob
-    hexagon_S2_shuffoh,                        // llvm.hexagon.S2.shuffoh
-    hexagon_S2_storerb_pbr,                    // llvm.hexagon.S2.storerb.pbr
-    hexagon_S2_storerb_pci,                    // llvm.hexagon.S2.storerb.pci
-    hexagon_S2_storerb_pcr,                    // llvm.hexagon.S2.storerb.pcr
-    hexagon_S2_storerd_pbr,                    // llvm.hexagon.S2.storerd.pbr
-    hexagon_S2_storerd_pci,                    // llvm.hexagon.S2.storerd.pci
-    hexagon_S2_storerd_pcr,                    // llvm.hexagon.S2.storerd.pcr
-    hexagon_S2_storerf_pbr,                    // llvm.hexagon.S2.storerf.pbr
-    hexagon_S2_storerf_pci,                    // llvm.hexagon.S2.storerf.pci
-    hexagon_S2_storerf_pcr,                    // llvm.hexagon.S2.storerf.pcr
-    hexagon_S2_storerh_pbr,                    // llvm.hexagon.S2.storerh.pbr
-    hexagon_S2_storerh_pci,                    // llvm.hexagon.S2.storerh.pci
-    hexagon_S2_storerh_pcr,                    // llvm.hexagon.S2.storerh.pcr
-    hexagon_S2_storeri_pbr,                    // llvm.hexagon.S2.storeri.pbr
-    hexagon_S2_storeri_pci,                    // llvm.hexagon.S2.storeri.pci
-    hexagon_S2_storeri_pcr,                    // llvm.hexagon.S2.storeri.pcr
-    hexagon_S2_storew_locked,                  // llvm.hexagon.S2.storew.locked
-    hexagon_S2_svsathb,                        // llvm.hexagon.S2.svsathb
-    hexagon_S2_svsathub,                       // llvm.hexagon.S2.svsathub
-    hexagon_S2_tableidxb_goodsyntax,           // llvm.hexagon.S2.tableidxb.goodsyntax
-    hexagon_S2_tableidxd_goodsyntax,           // llvm.hexagon.S2.tableidxd.goodsyntax
-    hexagon_S2_tableidxh_goodsyntax,           // llvm.hexagon.S2.tableidxh.goodsyntax
-    hexagon_S2_tableidxw_goodsyntax,           // llvm.hexagon.S2.tableidxw.goodsyntax
-    hexagon_S2_togglebit_i,                    // llvm.hexagon.S2.togglebit.i
-    hexagon_S2_togglebit_r,                    // llvm.hexagon.S2.togglebit.r
-    hexagon_S2_tstbit_i,                       // llvm.hexagon.S2.tstbit.i
-    hexagon_S2_tstbit_r,                       // llvm.hexagon.S2.tstbit.r
-    hexagon_S2_valignib,                       // llvm.hexagon.S2.valignib
-    hexagon_S2_valignrb,                       // llvm.hexagon.S2.valignrb
-    hexagon_S2_vcnegh,                         // llvm.hexagon.S2.vcnegh
-    hexagon_S2_vcrotate,                       // llvm.hexagon.S2.vcrotate
-    hexagon_S2_vrcnegh,                        // llvm.hexagon.S2.vrcnegh
-    hexagon_S2_vrndpackwh,                     // llvm.hexagon.S2.vrndpackwh
-    hexagon_S2_vrndpackwhs,                    // llvm.hexagon.S2.vrndpackwhs
-    hexagon_S2_vsathb,                         // llvm.hexagon.S2.vsathb
-    hexagon_S2_vsathb_nopack,                  // llvm.hexagon.S2.vsathb.nopack
-    hexagon_S2_vsathub,                        // llvm.hexagon.S2.vsathub
-    hexagon_S2_vsathub_nopack,                 // llvm.hexagon.S2.vsathub.nopack
-    hexagon_S2_vsatwh,                         // llvm.hexagon.S2.vsatwh
-    hexagon_S2_vsatwh_nopack,                  // llvm.hexagon.S2.vsatwh.nopack
-    hexagon_S2_vsatwuh,                        // llvm.hexagon.S2.vsatwuh
-    hexagon_S2_vsatwuh_nopack,                 // llvm.hexagon.S2.vsatwuh.nopack
-    hexagon_S2_vsplatrb,                       // llvm.hexagon.S2.vsplatrb
-    hexagon_S2_vsplatrh,                       // llvm.hexagon.S2.vsplatrh
-    hexagon_S2_vspliceib,                      // llvm.hexagon.S2.vspliceib
-    hexagon_S2_vsplicerb,                      // llvm.hexagon.S2.vsplicerb
-    hexagon_S2_vsxtbh,                         // llvm.hexagon.S2.vsxtbh
-    hexagon_S2_vsxthw,                         // llvm.hexagon.S2.vsxthw
-    hexagon_S2_vtrunehb,                       // llvm.hexagon.S2.vtrunehb
-    hexagon_S2_vtrunewh,                       // llvm.hexagon.S2.vtrunewh
-    hexagon_S2_vtrunohb,                       // llvm.hexagon.S2.vtrunohb
-    hexagon_S2_vtrunowh,                       // llvm.hexagon.S2.vtrunowh
-    hexagon_S2_vzxtbh,                         // llvm.hexagon.S2.vzxtbh
-    hexagon_S2_vzxthw,                         // llvm.hexagon.S2.vzxthw
-    hexagon_S4_addaddi,                        // llvm.hexagon.S4.addaddi
-    hexagon_S4_addi_asl_ri,                    // llvm.hexagon.S4.addi.asl.ri
-    hexagon_S4_addi_lsr_ri,                    // llvm.hexagon.S4.addi.lsr.ri
-    hexagon_S4_andi_asl_ri,                    // llvm.hexagon.S4.andi.asl.ri
-    hexagon_S4_andi_lsr_ri,                    // llvm.hexagon.S4.andi.lsr.ri
-    hexagon_S4_clbaddi,                        // llvm.hexagon.S4.clbaddi
-    hexagon_S4_clbpaddi,                       // llvm.hexagon.S4.clbpaddi
-    hexagon_S4_clbpnorm,                       // llvm.hexagon.S4.clbpnorm
-    hexagon_S4_extract,                        // llvm.hexagon.S4.extract
-    hexagon_S4_extract_rp,                     // llvm.hexagon.S4.extract.rp
-    hexagon_S4_extractp,                       // llvm.hexagon.S4.extractp
-    hexagon_S4_extractp_rp,                    // llvm.hexagon.S4.extractp.rp
-    hexagon_S4_lsli,                           // llvm.hexagon.S4.lsli
-    hexagon_S4_ntstbit_i,                      // llvm.hexagon.S4.ntstbit.i
-    hexagon_S4_ntstbit_r,                      // llvm.hexagon.S4.ntstbit.r
-    hexagon_S4_or_andi,                        // llvm.hexagon.S4.or.andi
-    hexagon_S4_or_andix,                       // llvm.hexagon.S4.or.andix
-    hexagon_S4_or_ori,                         // llvm.hexagon.S4.or.ori
-    hexagon_S4_ori_asl_ri,                     // llvm.hexagon.S4.ori.asl.ri
-    hexagon_S4_ori_lsr_ri,                     // llvm.hexagon.S4.ori.lsr.ri
-    hexagon_S4_parity,                         // llvm.hexagon.S4.parity
-    hexagon_S4_stored_locked,                  // llvm.hexagon.S4.stored.locked
-    hexagon_S4_subaddi,                        // llvm.hexagon.S4.subaddi
-    hexagon_S4_subi_asl_ri,                    // llvm.hexagon.S4.subi.asl.ri
-    hexagon_S4_subi_lsr_ri,                    // llvm.hexagon.S4.subi.lsr.ri
-    hexagon_S4_vrcrotate,                      // llvm.hexagon.S4.vrcrotate
-    hexagon_S4_vrcrotate_acc,                  // llvm.hexagon.S4.vrcrotate.acc
-    hexagon_S4_vxaddsubh,                      // llvm.hexagon.S4.vxaddsubh
-    hexagon_S4_vxaddsubhr,                     // llvm.hexagon.S4.vxaddsubhr
-    hexagon_S4_vxaddsubw,                      // llvm.hexagon.S4.vxaddsubw
-    hexagon_S4_vxsubaddh,                      // llvm.hexagon.S4.vxsubaddh
-    hexagon_S4_vxsubaddhr,                     // llvm.hexagon.S4.vxsubaddhr
-    hexagon_S4_vxsubaddw,                      // llvm.hexagon.S4.vxsubaddw
-    hexagon_S5_asrhub_rnd_sat_goodsyntax,      // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
-    hexagon_S5_asrhub_sat,                     // llvm.hexagon.S5.asrhub.sat
-    hexagon_S5_popcountp,                      // llvm.hexagon.S5.popcountp
-    hexagon_S5_vasrhrnd_goodsyntax,            // llvm.hexagon.S5.vasrhrnd.goodsyntax
-    hexagon_S6_rol_i_p,                        // llvm.hexagon.S6.rol.i.p
-    hexagon_S6_rol_i_p_acc,                    // llvm.hexagon.S6.rol.i.p.acc
-    hexagon_S6_rol_i_p_and,                    // llvm.hexagon.S6.rol.i.p.and
-    hexagon_S6_rol_i_p_nac,                    // llvm.hexagon.S6.rol.i.p.nac
-    hexagon_S6_rol_i_p_or,                     // llvm.hexagon.S6.rol.i.p.or
-    hexagon_S6_rol_i_p_xacc,                   // llvm.hexagon.S6.rol.i.p.xacc
-    hexagon_S6_rol_i_r,                        // llvm.hexagon.S6.rol.i.r
-    hexagon_S6_rol_i_r_acc,                    // llvm.hexagon.S6.rol.i.r.acc
-    hexagon_S6_rol_i_r_and,                    // llvm.hexagon.S6.rol.i.r.and
-    hexagon_S6_rol_i_r_nac,                    // llvm.hexagon.S6.rol.i.r.nac
-    hexagon_S6_rol_i_r_or,                     // llvm.hexagon.S6.rol.i.r.or
-    hexagon_S6_rol_i_r_xacc,                   // llvm.hexagon.S6.rol.i.r.xacc
-    hexagon_S6_vsplatrbp,                      // llvm.hexagon.S6.vsplatrbp
-    hexagon_S6_vtrunehb_ppp,                   // llvm.hexagon.S6.vtrunehb.ppp
-    hexagon_S6_vtrunohb_ppp,                   // llvm.hexagon.S6.vtrunohb.ppp
-    hexagon_V6_extractw,                       // llvm.hexagon.V6.extractw
-    hexagon_V6_extractw_128B,                  // llvm.hexagon.V6.extractw.128B
-    hexagon_V6_hi,                             // llvm.hexagon.V6.hi
-    hexagon_V6_hi_128B,                        // llvm.hexagon.V6.hi.128B
-    hexagon_V6_lo,                             // llvm.hexagon.V6.lo
-    hexagon_V6_lo_128B,                        // llvm.hexagon.V6.lo.128B
-    hexagon_V6_lvsplatb,                       // llvm.hexagon.V6.lvsplatb
-    hexagon_V6_lvsplatb_128B,                  // llvm.hexagon.V6.lvsplatb.128B
-    hexagon_V6_lvsplath,                       // llvm.hexagon.V6.lvsplath
-    hexagon_V6_lvsplath_128B,                  // llvm.hexagon.V6.lvsplath.128B
-    hexagon_V6_lvsplatw,                       // llvm.hexagon.V6.lvsplatw
-    hexagon_V6_lvsplatw_128B,                  // llvm.hexagon.V6.lvsplatw.128B
-    hexagon_V6_pred_and,                       // llvm.hexagon.V6.pred.and
-    hexagon_V6_pred_and_128B,                  // llvm.hexagon.V6.pred.and.128B
-    hexagon_V6_pred_and_n,                     // llvm.hexagon.V6.pred.and.n
-    hexagon_V6_pred_and_n_128B,                // llvm.hexagon.V6.pred.and.n.128B
-    hexagon_V6_pred_not,                       // llvm.hexagon.V6.pred.not
-    hexagon_V6_pred_not_128B,                  // llvm.hexagon.V6.pred.not.128B
-    hexagon_V6_pred_or,                        // llvm.hexagon.V6.pred.or
-    hexagon_V6_pred_or_128B,                   // llvm.hexagon.V6.pred.or.128B
-    hexagon_V6_pred_or_n,                      // llvm.hexagon.V6.pred.or.n
-    hexagon_V6_pred_or_n_128B,                 // llvm.hexagon.V6.pred.or.n.128B
-    hexagon_V6_pred_scalar2,                   // llvm.hexagon.V6.pred.scalar2
-    hexagon_V6_pred_scalar2_128B,              // llvm.hexagon.V6.pred.scalar2.128B
-    hexagon_V6_pred_scalar2v2,                 // llvm.hexagon.V6.pred.scalar2v2
-    hexagon_V6_pred_scalar2v2_128B,            // llvm.hexagon.V6.pred.scalar2v2.128B
-    hexagon_V6_pred_xor,                       // llvm.hexagon.V6.pred.xor
-    hexagon_V6_pred_xor_128B,                  // llvm.hexagon.V6.pred.xor.128B
-    hexagon_V6_shuffeqh,                       // llvm.hexagon.V6.shuffeqh
-    hexagon_V6_shuffeqh_128B,                  // llvm.hexagon.V6.shuffeqh.128B
-    hexagon_V6_shuffeqw,                       // llvm.hexagon.V6.shuffeqw
-    hexagon_V6_shuffeqw_128B,                  // llvm.hexagon.V6.shuffeqw.128B
-    hexagon_V6_vS32b_nqpred_ai,                // llvm.hexagon.V6.vS32b.nqpred.ai
-    hexagon_V6_vS32b_nqpred_ai_128B,           // llvm.hexagon.V6.vS32b.nqpred.ai.128B
-    hexagon_V6_vS32b_nt_nqpred_ai,             // llvm.hexagon.V6.vS32b.nt.nqpred.ai
-    hexagon_V6_vS32b_nt_nqpred_ai_128B,        // llvm.hexagon.V6.vS32b.nt.nqpred.ai.128B
-    hexagon_V6_vS32b_nt_qpred_ai,              // llvm.hexagon.V6.vS32b.nt.qpred.ai
-    hexagon_V6_vS32b_nt_qpred_ai_128B,         // llvm.hexagon.V6.vS32b.nt.qpred.ai.128B
-    hexagon_V6_vS32b_qpred_ai,                 // llvm.hexagon.V6.vS32b.qpred.ai
-    hexagon_V6_vS32b_qpred_ai_128B,            // llvm.hexagon.V6.vS32b.qpred.ai.128B
-    hexagon_V6_vabsb,                          // llvm.hexagon.V6.vabsb
-    hexagon_V6_vabsb_128B,                     // llvm.hexagon.V6.vabsb.128B
-    hexagon_V6_vabsb_sat,                      // llvm.hexagon.V6.vabsb.sat
-    hexagon_V6_vabsb_sat_128B,                 // llvm.hexagon.V6.vabsb.sat.128B
-    hexagon_V6_vabsdiffh,                      // llvm.hexagon.V6.vabsdiffh
-    hexagon_V6_vabsdiffh_128B,                 // llvm.hexagon.V6.vabsdiffh.128B
-    hexagon_V6_vabsdiffub,                     // llvm.hexagon.V6.vabsdiffub
-    hexagon_V6_vabsdiffub_128B,                // llvm.hexagon.V6.vabsdiffub.128B
-    hexagon_V6_vabsdiffuh,                     // llvm.hexagon.V6.vabsdiffuh
-    hexagon_V6_vabsdiffuh_128B,                // llvm.hexagon.V6.vabsdiffuh.128B
-    hexagon_V6_vabsdiffw,                      // llvm.hexagon.V6.vabsdiffw
-    hexagon_V6_vabsdiffw_128B,                 // llvm.hexagon.V6.vabsdiffw.128B
-    hexagon_V6_vabsh,                          // llvm.hexagon.V6.vabsh
-    hexagon_V6_vabsh_128B,                     // llvm.hexagon.V6.vabsh.128B
-    hexagon_V6_vabsh_sat,                      // llvm.hexagon.V6.vabsh.sat
-    hexagon_V6_vabsh_sat_128B,                 // llvm.hexagon.V6.vabsh.sat.128B
-    hexagon_V6_vabsw,                          // llvm.hexagon.V6.vabsw
-    hexagon_V6_vabsw_128B,                     // llvm.hexagon.V6.vabsw.128B
-    hexagon_V6_vabsw_sat,                      // llvm.hexagon.V6.vabsw.sat
-    hexagon_V6_vabsw_sat_128B,                 // llvm.hexagon.V6.vabsw.sat.128B
-    hexagon_V6_vaddb,                          // llvm.hexagon.V6.vaddb
-    hexagon_V6_vaddb_128B,                     // llvm.hexagon.V6.vaddb.128B
-    hexagon_V6_vaddb_dv,                       // llvm.hexagon.V6.vaddb.dv
-    hexagon_V6_vaddb_dv_128B,                  // llvm.hexagon.V6.vaddb.dv.128B
-    hexagon_V6_vaddbnq,                        // llvm.hexagon.V6.vaddbnq
-    hexagon_V6_vaddbnq_128B,                   // llvm.hexagon.V6.vaddbnq.128B
-    hexagon_V6_vaddbq,                         // llvm.hexagon.V6.vaddbq
-    hexagon_V6_vaddbq_128B,                    // llvm.hexagon.V6.vaddbq.128B
-    hexagon_V6_vaddbsat,                       // llvm.hexagon.V6.vaddbsat
-    hexagon_V6_vaddbsat_128B,                  // llvm.hexagon.V6.vaddbsat.128B
-    hexagon_V6_vaddbsat_dv,                    // llvm.hexagon.V6.vaddbsat.dv
-    hexagon_V6_vaddbsat_dv_128B,               // llvm.hexagon.V6.vaddbsat.dv.128B
-    hexagon_V6_vaddcarry,                      // llvm.hexagon.V6.vaddcarry
-    hexagon_V6_vaddcarry_128B,                 // llvm.hexagon.V6.vaddcarry.128B
-    hexagon_V6_vaddclbh,                       // llvm.hexagon.V6.vaddclbh
-    hexagon_V6_vaddclbh_128B,                  // llvm.hexagon.V6.vaddclbh.128B
-    hexagon_V6_vaddclbw,                       // llvm.hexagon.V6.vaddclbw
-    hexagon_V6_vaddclbw_128B,                  // llvm.hexagon.V6.vaddclbw.128B
-    hexagon_V6_vaddh,                          // llvm.hexagon.V6.vaddh
-    hexagon_V6_vaddh_128B,                     // llvm.hexagon.V6.vaddh.128B
-    hexagon_V6_vaddh_dv,                       // llvm.hexagon.V6.vaddh.dv
-    hexagon_V6_vaddh_dv_128B,                  // llvm.hexagon.V6.vaddh.dv.128B
-    hexagon_V6_vaddhnq,                        // llvm.hexagon.V6.vaddhnq
-    hexagon_V6_vaddhnq_128B,                   // llvm.hexagon.V6.vaddhnq.128B
-    hexagon_V6_vaddhq,                         // llvm.hexagon.V6.vaddhq
-    hexagon_V6_vaddhq_128B,                    // llvm.hexagon.V6.vaddhq.128B
-    hexagon_V6_vaddhsat,                       // llvm.hexagon.V6.vaddhsat
-    hexagon_V6_vaddhsat_128B,                  // llvm.hexagon.V6.vaddhsat.128B
-    hexagon_V6_vaddhsat_dv,                    // llvm.hexagon.V6.vaddhsat.dv
-    hexagon_V6_vaddhsat_dv_128B,               // llvm.hexagon.V6.vaddhsat.dv.128B
-    hexagon_V6_vaddhw,                         // llvm.hexagon.V6.vaddhw
-    hexagon_V6_vaddhw_128B,                    // llvm.hexagon.V6.vaddhw.128B
-    hexagon_V6_vaddhw_acc,                     // llvm.hexagon.V6.vaddhw.acc
-    hexagon_V6_vaddhw_acc_128B,                // llvm.hexagon.V6.vaddhw.acc.128B
-    hexagon_V6_vaddubh,                        // llvm.hexagon.V6.vaddubh
-    hexagon_V6_vaddubh_128B,                   // llvm.hexagon.V6.vaddubh.128B
-    hexagon_V6_vaddubh_acc,                    // llvm.hexagon.V6.vaddubh.acc
-    hexagon_V6_vaddubh_acc_128B,               // llvm.hexagon.V6.vaddubh.acc.128B
-    hexagon_V6_vaddubsat,                      // llvm.hexagon.V6.vaddubsat
-    hexagon_V6_vaddubsat_128B,                 // llvm.hexagon.V6.vaddubsat.128B
-    hexagon_V6_vaddubsat_dv,                   // llvm.hexagon.V6.vaddubsat.dv
-    hexagon_V6_vaddubsat_dv_128B,              // llvm.hexagon.V6.vaddubsat.dv.128B
-    hexagon_V6_vaddububb_sat,                  // llvm.hexagon.V6.vaddububb.sat
-    hexagon_V6_vaddububb_sat_128B,             // llvm.hexagon.V6.vaddububb.sat.128B
-    hexagon_V6_vadduhsat,                      // llvm.hexagon.V6.vadduhsat
-    hexagon_V6_vadduhsat_128B,                 // llvm.hexagon.V6.vadduhsat.128B
-    hexagon_V6_vadduhsat_dv,                   // llvm.hexagon.V6.vadduhsat.dv
-    hexagon_V6_vadduhsat_dv_128B,              // llvm.hexagon.V6.vadduhsat.dv.128B
-    hexagon_V6_vadduhw,                        // llvm.hexagon.V6.vadduhw
-    hexagon_V6_vadduhw_128B,                   // llvm.hexagon.V6.vadduhw.128B
-    hexagon_V6_vadduhw_acc,                    // llvm.hexagon.V6.vadduhw.acc
-    hexagon_V6_vadduhw_acc_128B,               // llvm.hexagon.V6.vadduhw.acc.128B
-    hexagon_V6_vadduwsat,                      // llvm.hexagon.V6.vadduwsat
-    hexagon_V6_vadduwsat_128B,                 // llvm.hexagon.V6.vadduwsat.128B
-    hexagon_V6_vadduwsat_dv,                   // llvm.hexagon.V6.vadduwsat.dv
-    hexagon_V6_vadduwsat_dv_128B,              // llvm.hexagon.V6.vadduwsat.dv.128B
-    hexagon_V6_vaddw,                          // llvm.hexagon.V6.vaddw
-    hexagon_V6_vaddw_128B,                     // llvm.hexagon.V6.vaddw.128B
-    hexagon_V6_vaddw_dv,                       // llvm.hexagon.V6.vaddw.dv
-    hexagon_V6_vaddw_dv_128B,                  // llvm.hexagon.V6.vaddw.dv.128B
-    hexagon_V6_vaddwnq,                        // llvm.hexagon.V6.vaddwnq
-    hexagon_V6_vaddwnq_128B,                   // llvm.hexagon.V6.vaddwnq.128B
-    hexagon_V6_vaddwq,                         // llvm.hexagon.V6.vaddwq
-    hexagon_V6_vaddwq_128B,                    // llvm.hexagon.V6.vaddwq.128B
-    hexagon_V6_vaddwsat,                       // llvm.hexagon.V6.vaddwsat
-    hexagon_V6_vaddwsat_128B,                  // llvm.hexagon.V6.vaddwsat.128B
-    hexagon_V6_vaddwsat_dv,                    // llvm.hexagon.V6.vaddwsat.dv
-    hexagon_V6_vaddwsat_dv_128B,               // llvm.hexagon.V6.vaddwsat.dv.128B
-    hexagon_V6_valignb,                        // llvm.hexagon.V6.valignb
-    hexagon_V6_valignb_128B,                   // llvm.hexagon.V6.valignb.128B
-    hexagon_V6_valignbi,                       // llvm.hexagon.V6.valignbi
-    hexagon_V6_valignbi_128B,                  // llvm.hexagon.V6.valignbi.128B
-    hexagon_V6_vand,                           // llvm.hexagon.V6.vand
-    hexagon_V6_vand_128B,                      // llvm.hexagon.V6.vand.128B
-    hexagon_V6_vandnqrt,                       // llvm.hexagon.V6.vandnqrt
-    hexagon_V6_vandnqrt_128B,                  // llvm.hexagon.V6.vandnqrt.128B
-    hexagon_V6_vandnqrt_acc,                   // llvm.hexagon.V6.vandnqrt.acc
-    hexagon_V6_vandnqrt_acc_128B,              // llvm.hexagon.V6.vandnqrt.acc.128B
-    hexagon_V6_vandqrt,                        // llvm.hexagon.V6.vandqrt
-    hexagon_V6_vandqrt_128B,                   // llvm.hexagon.V6.vandqrt.128B
-    hexagon_V6_vandqrt_acc,                    // llvm.hexagon.V6.vandqrt.acc
-    hexagon_V6_vandqrt_acc_128B,               // llvm.hexagon.V6.vandqrt.acc.128B
-    hexagon_V6_vandvnqv,                       // llvm.hexagon.V6.vandvnqv
-    hexagon_V6_vandvnqv_128B,                  // llvm.hexagon.V6.vandvnqv.128B
-    hexagon_V6_vandvqv,                        // llvm.hexagon.V6.vandvqv
-    hexagon_V6_vandvqv_128B,                   // llvm.hexagon.V6.vandvqv.128B
-    hexagon_V6_vandvrt,                        // llvm.hexagon.V6.vandvrt
-    hexagon_V6_vandvrt_128B,                   // llvm.hexagon.V6.vandvrt.128B
-    hexagon_V6_vandvrt_acc,                    // llvm.hexagon.V6.vandvrt.acc
-    hexagon_V6_vandvrt_acc_128B,               // llvm.hexagon.V6.vandvrt.acc.128B
-    hexagon_V6_vaslh,                          // llvm.hexagon.V6.vaslh
-    hexagon_V6_vaslh_128B,                     // llvm.hexagon.V6.vaslh.128B
-    hexagon_V6_vaslh_acc,                      // llvm.hexagon.V6.vaslh.acc
-    hexagon_V6_vaslh_acc_128B,                 // llvm.hexagon.V6.vaslh.acc.128B
-    hexagon_V6_vaslhv,                         // llvm.hexagon.V6.vaslhv
-    hexagon_V6_vaslhv_128B,                    // llvm.hexagon.V6.vaslhv.128B
-    hexagon_V6_vaslw,                          // llvm.hexagon.V6.vaslw
-    hexagon_V6_vaslw_128B,                     // llvm.hexagon.V6.vaslw.128B
-    hexagon_V6_vaslw_acc,                      // llvm.hexagon.V6.vaslw.acc
-    hexagon_V6_vaslw_acc_128B,                 // llvm.hexagon.V6.vaslw.acc.128B
-    hexagon_V6_vaslwv,                         // llvm.hexagon.V6.vaslwv
-    hexagon_V6_vaslwv_128B,                    // llvm.hexagon.V6.vaslwv.128B
-    hexagon_V6_vasrh,                          // llvm.hexagon.V6.vasrh
-    hexagon_V6_vasrh_128B,                     // llvm.hexagon.V6.vasrh.128B
-    hexagon_V6_vasrh_acc,                      // llvm.hexagon.V6.vasrh.acc
-    hexagon_V6_vasrh_acc_128B,                 // llvm.hexagon.V6.vasrh.acc.128B
-    hexagon_V6_vasrhbrndsat,                   // llvm.hexagon.V6.vasrhbrndsat
-    hexagon_V6_vasrhbrndsat_128B,              // llvm.hexagon.V6.vasrhbrndsat.128B
-    hexagon_V6_vasrhbsat,                      // llvm.hexagon.V6.vasrhbsat
-    hexagon_V6_vasrhbsat_128B,                 // llvm.hexagon.V6.vasrhbsat.128B
-    hexagon_V6_vasrhubrndsat,                  // llvm.hexagon.V6.vasrhubrndsat
-    hexagon_V6_vasrhubrndsat_128B,             // llvm.hexagon.V6.vasrhubrndsat.128B
-    hexagon_V6_vasrhubsat,                     // llvm.hexagon.V6.vasrhubsat
-    hexagon_V6_vasrhubsat_128B,                // llvm.hexagon.V6.vasrhubsat.128B
-    hexagon_V6_vasrhv,                         // llvm.hexagon.V6.vasrhv
-    hexagon_V6_vasrhv_128B,                    // llvm.hexagon.V6.vasrhv.128B
-    hexagon_V6_vasruhubrndsat,                 // llvm.hexagon.V6.vasruhubrndsat
-    hexagon_V6_vasruhubrndsat_128B,            // llvm.hexagon.V6.vasruhubrndsat.128B
-    hexagon_V6_vasruhubsat,                    // llvm.hexagon.V6.vasruhubsat
-    hexagon_V6_vasruhubsat_128B,               // llvm.hexagon.V6.vasruhubsat.128B
-    hexagon_V6_vasruwuhrndsat,                 // llvm.hexagon.V6.vasruwuhrndsat
-    hexagon_V6_vasruwuhrndsat_128B,            // llvm.hexagon.V6.vasruwuhrndsat.128B
-    hexagon_V6_vasruwuhsat,                    // llvm.hexagon.V6.vasruwuhsat
-    hexagon_V6_vasruwuhsat_128B,               // llvm.hexagon.V6.vasruwuhsat.128B
-    hexagon_V6_vasrw,                          // llvm.hexagon.V6.vasrw
-    hexagon_V6_vasrw_128B,                     // llvm.hexagon.V6.vasrw.128B
-    hexagon_V6_vasrw_acc,                      // llvm.hexagon.V6.vasrw.acc
-    hexagon_V6_vasrw_acc_128B,                 // llvm.hexagon.V6.vasrw.acc.128B
-    hexagon_V6_vasrwh,                         // llvm.hexagon.V6.vasrwh
-    hexagon_V6_vasrwh_128B,                    // llvm.hexagon.V6.vasrwh.128B
-    hexagon_V6_vasrwhrndsat,                   // llvm.hexagon.V6.vasrwhrndsat
-    hexagon_V6_vasrwhrndsat_128B,              // llvm.hexagon.V6.vasrwhrndsat.128B
-    hexagon_V6_vasrwhsat,                      // llvm.hexagon.V6.vasrwhsat
-    hexagon_V6_vasrwhsat_128B,                 // llvm.hexagon.V6.vasrwhsat.128B
-    hexagon_V6_vasrwuhrndsat,                  // llvm.hexagon.V6.vasrwuhrndsat
-    hexagon_V6_vasrwuhrndsat_128B,             // llvm.hexagon.V6.vasrwuhrndsat.128B
-    hexagon_V6_vasrwuhsat,                     // llvm.hexagon.V6.vasrwuhsat
-    hexagon_V6_vasrwuhsat_128B,                // llvm.hexagon.V6.vasrwuhsat.128B
-    hexagon_V6_vasrwv,                         // llvm.hexagon.V6.vasrwv
-    hexagon_V6_vasrwv_128B,                    // llvm.hexagon.V6.vasrwv.128B
-    hexagon_V6_vassign,                        // llvm.hexagon.V6.vassign
-    hexagon_V6_vassign_128B,                   // llvm.hexagon.V6.vassign.128B
-    hexagon_V6_vassignp,                       // llvm.hexagon.V6.vassignp
-    hexagon_V6_vassignp_128B,                  // llvm.hexagon.V6.vassignp.128B
-    hexagon_V6_vavgb,                          // llvm.hexagon.V6.vavgb
-    hexagon_V6_vavgb_128B,                     // llvm.hexagon.V6.vavgb.128B
-    hexagon_V6_vavgbrnd,                       // llvm.hexagon.V6.vavgbrnd
-    hexagon_V6_vavgbrnd_128B,                  // llvm.hexagon.V6.vavgbrnd.128B
-    hexagon_V6_vavgh,                          // llvm.hexagon.V6.vavgh
-    hexagon_V6_vavgh_128B,                     // llvm.hexagon.V6.vavgh.128B
-    hexagon_V6_vavghrnd,                       // llvm.hexagon.V6.vavghrnd
-    hexagon_V6_vavghrnd_128B,                  // llvm.hexagon.V6.vavghrnd.128B
-    hexagon_V6_vavgub,                         // llvm.hexagon.V6.vavgub
-    hexagon_V6_vavgub_128B,                    // llvm.hexagon.V6.vavgub.128B
-    hexagon_V6_vavgubrnd,                      // llvm.hexagon.V6.vavgubrnd
-    hexagon_V6_vavgubrnd_128B,                 // llvm.hexagon.V6.vavgubrnd.128B
-    hexagon_V6_vavguh,                         // llvm.hexagon.V6.vavguh
-    hexagon_V6_vavguh_128B,                    // llvm.hexagon.V6.vavguh.128B
-    hexagon_V6_vavguhrnd,                      // llvm.hexagon.V6.vavguhrnd
-    hexagon_V6_vavguhrnd_128B,                 // llvm.hexagon.V6.vavguhrnd.128B
-    hexagon_V6_vavguw,                         // llvm.hexagon.V6.vavguw
-    hexagon_V6_vavguw_128B,                    // llvm.hexagon.V6.vavguw.128B
-    hexagon_V6_vavguwrnd,                      // llvm.hexagon.V6.vavguwrnd
-    hexagon_V6_vavguwrnd_128B,                 // llvm.hexagon.V6.vavguwrnd.128B
-    hexagon_V6_vavgw,                          // llvm.hexagon.V6.vavgw
-    hexagon_V6_vavgw_128B,                     // llvm.hexagon.V6.vavgw.128B
-    hexagon_V6_vavgwrnd,                       // llvm.hexagon.V6.vavgwrnd
-    hexagon_V6_vavgwrnd_128B,                  // llvm.hexagon.V6.vavgwrnd.128B
-    hexagon_V6_vcl0h,                          // llvm.hexagon.V6.vcl0h
-    hexagon_V6_vcl0h_128B,                     // llvm.hexagon.V6.vcl0h.128B
-    hexagon_V6_vcl0w,                          // llvm.hexagon.V6.vcl0w
-    hexagon_V6_vcl0w_128B,                     // llvm.hexagon.V6.vcl0w.128B
-    hexagon_V6_vcombine,                       // llvm.hexagon.V6.vcombine
-    hexagon_V6_vcombine_128B,                  // llvm.hexagon.V6.vcombine.128B
-    hexagon_V6_vd0,                            // llvm.hexagon.V6.vd0
-    hexagon_V6_vd0_128B,                       // llvm.hexagon.V6.vd0.128B
-    hexagon_V6_vdd0,                           // llvm.hexagon.V6.vdd0
-    hexagon_V6_vdd0_128B,                      // llvm.hexagon.V6.vdd0.128B
-    hexagon_V6_vdealb,                         // llvm.hexagon.V6.vdealb
-    hexagon_V6_vdealb_128B,                    // llvm.hexagon.V6.vdealb.128B
-    hexagon_V6_vdealb4w,                       // llvm.hexagon.V6.vdealb4w
-    hexagon_V6_vdealb4w_128B,                  // llvm.hexagon.V6.vdealb4w.128B
-    hexagon_V6_vdealh,                         // llvm.hexagon.V6.vdealh
-    hexagon_V6_vdealh_128B,                    // llvm.hexagon.V6.vdealh.128B
-    hexagon_V6_vdealvdd,                       // llvm.hexagon.V6.vdealvdd
-    hexagon_V6_vdealvdd_128B,                  // llvm.hexagon.V6.vdealvdd.128B
-    hexagon_V6_vdelta,                         // llvm.hexagon.V6.vdelta
-    hexagon_V6_vdelta_128B,                    // llvm.hexagon.V6.vdelta.128B
-    hexagon_V6_vdmpybus,                       // llvm.hexagon.V6.vdmpybus
-    hexagon_V6_vdmpybus_128B,                  // llvm.hexagon.V6.vdmpybus.128B
-    hexagon_V6_vdmpybus_acc,                   // llvm.hexagon.V6.vdmpybus.acc
-    hexagon_V6_vdmpybus_acc_128B,              // llvm.hexagon.V6.vdmpybus.acc.128B
-    hexagon_V6_vdmpybus_dv,                    // llvm.hexagon.V6.vdmpybus.dv
-    hexagon_V6_vdmpybus_dv_128B,               // llvm.hexagon.V6.vdmpybus.dv.128B
-    hexagon_V6_vdmpybus_dv_acc,                // llvm.hexagon.V6.vdmpybus.dv.acc
-    hexagon_V6_vdmpybus_dv_acc_128B,           // llvm.hexagon.V6.vdmpybus.dv.acc.128B
-    hexagon_V6_vdmpyhb,                        // llvm.hexagon.V6.vdmpyhb
-    hexagon_V6_vdmpyhb_128B,                   // llvm.hexagon.V6.vdmpyhb.128B
-    hexagon_V6_vdmpyhb_acc,                    // llvm.hexagon.V6.vdmpyhb.acc
-    hexagon_V6_vdmpyhb_acc_128B,               // llvm.hexagon.V6.vdmpyhb.acc.128B
-    hexagon_V6_vdmpyhb_dv,                     // llvm.hexagon.V6.vdmpyhb.dv
-    hexagon_V6_vdmpyhb_dv_128B,                // llvm.hexagon.V6.vdmpyhb.dv.128B
-    hexagon_V6_vdmpyhb_dv_acc,                 // llvm.hexagon.V6.vdmpyhb.dv.acc
-    hexagon_V6_vdmpyhb_dv_acc_128B,            // llvm.hexagon.V6.vdmpyhb.dv.acc.128B
-    hexagon_V6_vdmpyhisat,                     // llvm.hexagon.V6.vdmpyhisat
-    hexagon_V6_vdmpyhisat_128B,                // llvm.hexagon.V6.vdmpyhisat.128B
-    hexagon_V6_vdmpyhisat_acc,                 // llvm.hexagon.V6.vdmpyhisat.acc
-    hexagon_V6_vdmpyhisat_acc_128B,            // llvm.hexagon.V6.vdmpyhisat.acc.128B
-    hexagon_V6_vdmpyhsat,                      // llvm.hexagon.V6.vdmpyhsat
-    hexagon_V6_vdmpyhsat_128B,                 // llvm.hexagon.V6.vdmpyhsat.128B
-    hexagon_V6_vdmpyhsat_acc,                  // llvm.hexagon.V6.vdmpyhsat.acc
-    hexagon_V6_vdmpyhsat_acc_128B,             // llvm.hexagon.V6.vdmpyhsat.acc.128B
-    hexagon_V6_vdmpyhsuisat,                   // llvm.hexagon.V6.vdmpyhsuisat
-    hexagon_V6_vdmpyhsuisat_128B,              // llvm.hexagon.V6.vdmpyhsuisat.128B
-    hexagon_V6_vdmpyhsuisat_acc,               // llvm.hexagon.V6.vdmpyhsuisat.acc
-    hexagon_V6_vdmpyhsuisat_acc_128B,          // llvm.hexagon.V6.vdmpyhsuisat.acc.128B
-    hexagon_V6_vdmpyhsusat,                    // llvm.hexagon.V6.vdmpyhsusat
-    hexagon_V6_vdmpyhsusat_128B,               // llvm.hexagon.V6.vdmpyhsusat.128B
-    hexagon_V6_vdmpyhsusat_acc,                // llvm.hexagon.V6.vdmpyhsusat.acc
-    hexagon_V6_vdmpyhsusat_acc_128B,           // llvm.hexagon.V6.vdmpyhsusat.acc.128B
-    hexagon_V6_vdmpyhvsat,                     // llvm.hexagon.V6.vdmpyhvsat
-    hexagon_V6_vdmpyhvsat_128B,                // llvm.hexagon.V6.vdmpyhvsat.128B
-    hexagon_V6_vdmpyhvsat_acc,                 // llvm.hexagon.V6.vdmpyhvsat.acc
-    hexagon_V6_vdmpyhvsat_acc_128B,            // llvm.hexagon.V6.vdmpyhvsat.acc.128B
-    hexagon_V6_vdsaduh,                        // llvm.hexagon.V6.vdsaduh
-    hexagon_V6_vdsaduh_128B,                   // llvm.hexagon.V6.vdsaduh.128B
-    hexagon_V6_vdsaduh_acc,                    // llvm.hexagon.V6.vdsaduh.acc
-    hexagon_V6_vdsaduh_acc_128B,               // llvm.hexagon.V6.vdsaduh.acc.128B
-    hexagon_V6_veqb,                           // llvm.hexagon.V6.veqb
-    hexagon_V6_veqb_128B,                      // llvm.hexagon.V6.veqb.128B
-    hexagon_V6_veqb_and,                       // llvm.hexagon.V6.veqb.and
-    hexagon_V6_veqb_and_128B,                  // llvm.hexagon.V6.veqb.and.128B
-    hexagon_V6_veqb_or,                        // llvm.hexagon.V6.veqb.or
-    hexagon_V6_veqb_or_128B,                   // llvm.hexagon.V6.veqb.or.128B
-    hexagon_V6_veqb_xor,                       // llvm.hexagon.V6.veqb.xor
-    hexagon_V6_veqb_xor_128B,                  // llvm.hexagon.V6.veqb.xor.128B
-    hexagon_V6_veqh,                           // llvm.hexagon.V6.veqh
-    hexagon_V6_veqh_128B,                      // llvm.hexagon.V6.veqh.128B
-    hexagon_V6_veqh_and,                       // llvm.hexagon.V6.veqh.and
-    hexagon_V6_veqh_and_128B,                  // llvm.hexagon.V6.veqh.and.128B
-    hexagon_V6_veqh_or,                        // llvm.hexagon.V6.veqh.or
-    hexagon_V6_veqh_or_128B,                   // llvm.hexagon.V6.veqh.or.128B
-    hexagon_V6_veqh_xor,                       // llvm.hexagon.V6.veqh.xor
-    hexagon_V6_veqh_xor_128B,                  // llvm.hexagon.V6.veqh.xor.128B
-    hexagon_V6_veqw,                           // llvm.hexagon.V6.veqw
-    hexagon_V6_veqw_128B,                      // llvm.hexagon.V6.veqw.128B
-    hexagon_V6_veqw_and,                       // llvm.hexagon.V6.veqw.and
-    hexagon_V6_veqw_and_128B,                  // llvm.hexagon.V6.veqw.and.128B
-    hexagon_V6_veqw_or,                        // llvm.hexagon.V6.veqw.or
-    hexagon_V6_veqw_or_128B,                   // llvm.hexagon.V6.veqw.or.128B
-    hexagon_V6_veqw_xor,                       // llvm.hexagon.V6.veqw.xor
-    hexagon_V6_veqw_xor_128B,                  // llvm.hexagon.V6.veqw.xor.128B
-    hexagon_V6_vgathermh,                      // llvm.hexagon.V6.vgathermh
-    hexagon_V6_vgathermh_128B,                 // llvm.hexagon.V6.vgathermh.128B
-    hexagon_V6_vgathermhq,                     // llvm.hexagon.V6.vgathermhq
-    hexagon_V6_vgathermhq_128B,                // llvm.hexagon.V6.vgathermhq.128B
-    hexagon_V6_vgathermhw,                     // llvm.hexagon.V6.vgathermhw
-    hexagon_V6_vgathermhw_128B,                // llvm.hexagon.V6.vgathermhw.128B
-    hexagon_V6_vgathermhwq,                    // llvm.hexagon.V6.vgathermhwq
-    hexagon_V6_vgathermhwq_128B,               // llvm.hexagon.V6.vgathermhwq.128B
-    hexagon_V6_vgathermw,                      // llvm.hexagon.V6.vgathermw
-    hexagon_V6_vgathermw_128B,                 // llvm.hexagon.V6.vgathermw.128B
-    hexagon_V6_vgathermwq,                     // llvm.hexagon.V6.vgathermwq
-    hexagon_V6_vgathermwq_128B,                // llvm.hexagon.V6.vgathermwq.128B
-    hexagon_V6_vgtb,                           // llvm.hexagon.V6.vgtb
-    hexagon_V6_vgtb_128B,                      // llvm.hexagon.V6.vgtb.128B
-    hexagon_V6_vgtb_and,                       // llvm.hexagon.V6.vgtb.and
-    hexagon_V6_vgtb_and_128B,                  // llvm.hexagon.V6.vgtb.and.128B
-    hexagon_V6_vgtb_or,                        // llvm.hexagon.V6.vgtb.or
-    hexagon_V6_vgtb_or_128B,                   // llvm.hexagon.V6.vgtb.or.128B
-    hexagon_V6_vgtb_xor,                       // llvm.hexagon.V6.vgtb.xor
-    hexagon_V6_vgtb_xor_128B,                  // llvm.hexagon.V6.vgtb.xor.128B
-    hexagon_V6_vgth,                           // llvm.hexagon.V6.vgth
-    hexagon_V6_vgth_128B,                      // llvm.hexagon.V6.vgth.128B
-    hexagon_V6_vgth_and,                       // llvm.hexagon.V6.vgth.and
-    hexagon_V6_vgth_and_128B,                  // llvm.hexagon.V6.vgth.and.128B
-    hexagon_V6_vgth_or,                        // llvm.hexagon.V6.vgth.or
-    hexagon_V6_vgth_or_128B,                   // llvm.hexagon.V6.vgth.or.128B
-    hexagon_V6_vgth_xor,                       // llvm.hexagon.V6.vgth.xor
-    hexagon_V6_vgth_xor_128B,                  // llvm.hexagon.V6.vgth.xor.128B
-    hexagon_V6_vgtub,                          // llvm.hexagon.V6.vgtub
-    hexagon_V6_vgtub_128B,                     // llvm.hexagon.V6.vgtub.128B
-    hexagon_V6_vgtub_and,                      // llvm.hexagon.V6.vgtub.and
-    hexagon_V6_vgtub_and_128B,                 // llvm.hexagon.V6.vgtub.and.128B
-    hexagon_V6_vgtub_or,                       // llvm.hexagon.V6.vgtub.or
-    hexagon_V6_vgtub_or_128B,                  // llvm.hexagon.V6.vgtub.or.128B
-    hexagon_V6_vgtub_xor,                      // llvm.hexagon.V6.vgtub.xor
-    hexagon_V6_vgtub_xor_128B,                 // llvm.hexagon.V6.vgtub.xor.128B
-    hexagon_V6_vgtuh,                          // llvm.hexagon.V6.vgtuh
-    hexagon_V6_vgtuh_128B,                     // llvm.hexagon.V6.vgtuh.128B
-    hexagon_V6_vgtuh_and,                      // llvm.hexagon.V6.vgtuh.and
-    hexagon_V6_vgtuh_and_128B,                 // llvm.hexagon.V6.vgtuh.and.128B
-    hexagon_V6_vgtuh_or,                       // llvm.hexagon.V6.vgtuh.or
-    hexagon_V6_vgtuh_or_128B,                  // llvm.hexagon.V6.vgtuh.or.128B
-    hexagon_V6_vgtuh_xor,                      // llvm.hexagon.V6.vgtuh.xor
-    hexagon_V6_vgtuh_xor_128B,                 // llvm.hexagon.V6.vgtuh.xor.128B
-    hexagon_V6_vgtuw,                          // llvm.hexagon.V6.vgtuw
-    hexagon_V6_vgtuw_128B,                     // llvm.hexagon.V6.vgtuw.128B
-    hexagon_V6_vgtuw_and,                      // llvm.hexagon.V6.vgtuw.and
-    hexagon_V6_vgtuw_and_128B,                 // llvm.hexagon.V6.vgtuw.and.128B
-    hexagon_V6_vgtuw_or,                       // llvm.hexagon.V6.vgtuw.or
-    hexagon_V6_vgtuw_or_128B,                  // llvm.hexagon.V6.vgtuw.or.128B
-    hexagon_V6_vgtuw_xor,                      // llvm.hexagon.V6.vgtuw.xor
-    hexagon_V6_vgtuw_xor_128B,                 // llvm.hexagon.V6.vgtuw.xor.128B
-    hexagon_V6_vgtw,                           // llvm.hexagon.V6.vgtw
-    hexagon_V6_vgtw_128B,                      // llvm.hexagon.V6.vgtw.128B
-    hexagon_V6_vgtw_and,                       // llvm.hexagon.V6.vgtw.and
-    hexagon_V6_vgtw_and_128B,                  // llvm.hexagon.V6.vgtw.and.128B
-    hexagon_V6_vgtw_or,                        // llvm.hexagon.V6.vgtw.or
-    hexagon_V6_vgtw_or_128B,                   // llvm.hexagon.V6.vgtw.or.128B
-    hexagon_V6_vgtw_xor,                       // llvm.hexagon.V6.vgtw.xor
-    hexagon_V6_vgtw_xor_128B,                  // llvm.hexagon.V6.vgtw.xor.128B
-    hexagon_V6_vinsertwr,                      // llvm.hexagon.V6.vinsertwr
-    hexagon_V6_vinsertwr_128B,                 // llvm.hexagon.V6.vinsertwr.128B
-    hexagon_V6_vlalignb,                       // llvm.hexagon.V6.vlalignb
-    hexagon_V6_vlalignb_128B,                  // llvm.hexagon.V6.vlalignb.128B
-    hexagon_V6_vlalignbi,                      // llvm.hexagon.V6.vlalignbi
-    hexagon_V6_vlalignbi_128B,                 // llvm.hexagon.V6.vlalignbi.128B
-    hexagon_V6_vlsrb,                          // llvm.hexagon.V6.vlsrb
-    hexagon_V6_vlsrb_128B,                     // llvm.hexagon.V6.vlsrb.128B
-    hexagon_V6_vlsrh,                          // llvm.hexagon.V6.vlsrh
-    hexagon_V6_vlsrh_128B,                     // llvm.hexagon.V6.vlsrh.128B
-    hexagon_V6_vlsrhv,                         // llvm.hexagon.V6.vlsrhv
-    hexagon_V6_vlsrhv_128B,                    // llvm.hexagon.V6.vlsrhv.128B
-    hexagon_V6_vlsrw,                          // llvm.hexagon.V6.vlsrw
-    hexagon_V6_vlsrw_128B,                     // llvm.hexagon.V6.vlsrw.128B
-    hexagon_V6_vlsrwv,                         // llvm.hexagon.V6.vlsrwv
-    hexagon_V6_vlsrwv_128B,                    // llvm.hexagon.V6.vlsrwv.128B
-    hexagon_V6_vlut4,                          // llvm.hexagon.V6.vlut4
-    hexagon_V6_vlut4_128B,                     // llvm.hexagon.V6.vlut4.128B
-    hexagon_V6_vlutvvb,                        // llvm.hexagon.V6.vlutvvb
-    hexagon_V6_vlutvvb_128B,                   // llvm.hexagon.V6.vlutvvb.128B
-    hexagon_V6_vlutvvb_nm,                     // llvm.hexagon.V6.vlutvvb.nm
-    hexagon_V6_vlutvvb_nm_128B,                // llvm.hexagon.V6.vlutvvb.nm.128B
-    hexagon_V6_vlutvvb_oracc,                  // llvm.hexagon.V6.vlutvvb.oracc
-    hexagon_V6_vlutvvb_oracc_128B,             // llvm.hexagon.V6.vlutvvb.oracc.128B
-    hexagon_V6_vlutvvb_oracci,                 // llvm.hexagon.V6.vlutvvb.oracci
-    hexagon_V6_vlutvvb_oracci_128B,            // llvm.hexagon.V6.vlutvvb.oracci.128B
-    hexagon_V6_vlutvvbi,                       // llvm.hexagon.V6.vlutvvbi
-    hexagon_V6_vlutvvbi_128B,                  // llvm.hexagon.V6.vlutvvbi.128B
-    hexagon_V6_vlutvwh,                        // llvm.hexagon.V6.vlutvwh
-    hexagon_V6_vlutvwh_128B,                   // llvm.hexagon.V6.vlutvwh.128B
-    hexagon_V6_vlutvwh_nm,                     // llvm.hexagon.V6.vlutvwh.nm
-    hexagon_V6_vlutvwh_nm_128B,                // llvm.hexagon.V6.vlutvwh.nm.128B
-    hexagon_V6_vlutvwh_oracc,                  // llvm.hexagon.V6.vlutvwh.oracc
-    hexagon_V6_vlutvwh_oracc_128B,             // llvm.hexagon.V6.vlutvwh.oracc.128B
-    hexagon_V6_vlutvwh_oracci,                 // llvm.hexagon.V6.vlutvwh.oracci
-    hexagon_V6_vlutvwh_oracci_128B,            // llvm.hexagon.V6.vlutvwh.oracci.128B
-    hexagon_V6_vlutvwhi,                       // llvm.hexagon.V6.vlutvwhi
-    hexagon_V6_vlutvwhi_128B,                  // llvm.hexagon.V6.vlutvwhi.128B
-    hexagon_V6_vmaskedstorenq,                 // llvm.hexagon.V6.vmaskedstorenq
-    hexagon_V6_vmaskedstorenq_128B,            // llvm.hexagon.V6.vmaskedstorenq.128B
-    hexagon_V6_vmaskedstorentnq,               // llvm.hexagon.V6.vmaskedstorentnq
-    hexagon_V6_vmaskedstorentnq_128B,          // llvm.hexagon.V6.vmaskedstorentnq.128B
-    hexagon_V6_vmaskedstorentq,                // llvm.hexagon.V6.vmaskedstorentq
-    hexagon_V6_vmaskedstorentq_128B,           // llvm.hexagon.V6.vmaskedstorentq.128B
-    hexagon_V6_vmaskedstoreq,                  // llvm.hexagon.V6.vmaskedstoreq
-    hexagon_V6_vmaskedstoreq_128B,             // llvm.hexagon.V6.vmaskedstoreq.128B
-    hexagon_V6_vmaxb,                          // llvm.hexagon.V6.vmaxb
-    hexagon_V6_vmaxb_128B,                     // llvm.hexagon.V6.vmaxb.128B
-    hexagon_V6_vmaxh,                          // llvm.hexagon.V6.vmaxh
-    hexagon_V6_vmaxh_128B,                     // llvm.hexagon.V6.vmaxh.128B
-    hexagon_V6_vmaxub,                         // llvm.hexagon.V6.vmaxub
-    hexagon_V6_vmaxub_128B,                    // llvm.hexagon.V6.vmaxub.128B
-    hexagon_V6_vmaxuh,                         // llvm.hexagon.V6.vmaxuh
-    hexagon_V6_vmaxuh_128B,                    // llvm.hexagon.V6.vmaxuh.128B
-    hexagon_V6_vmaxw,                          // llvm.hexagon.V6.vmaxw
-    hexagon_V6_vmaxw_128B,                     // llvm.hexagon.V6.vmaxw.128B
-    hexagon_V6_vminb,                          // llvm.hexagon.V6.vminb
-    hexagon_V6_vminb_128B,                     // llvm.hexagon.V6.vminb.128B
-    hexagon_V6_vminh,                          // llvm.hexagon.V6.vminh
-    hexagon_V6_vminh_128B,                     // llvm.hexagon.V6.vminh.128B
-    hexagon_V6_vminub,                         // llvm.hexagon.V6.vminub
-    hexagon_V6_vminub_128B,                    // llvm.hexagon.V6.vminub.128B
-    hexagon_V6_vminuh,                         // llvm.hexagon.V6.vminuh
-    hexagon_V6_vminuh_128B,                    // llvm.hexagon.V6.vminuh.128B
-    hexagon_V6_vminw,                          // llvm.hexagon.V6.vminw
-    hexagon_V6_vminw_128B,                     // llvm.hexagon.V6.vminw.128B
-    hexagon_V6_vmpabus,                        // llvm.hexagon.V6.vmpabus
-    hexagon_V6_vmpabus_128B,                   // llvm.hexagon.V6.vmpabus.128B
-    hexagon_V6_vmpabus_acc,                    // llvm.hexagon.V6.vmpabus.acc
-    hexagon_V6_vmpabus_acc_128B,               // llvm.hexagon.V6.vmpabus.acc.128B
-    hexagon_V6_vmpabusv,                       // llvm.hexagon.V6.vmpabusv
-    hexagon_V6_vmpabusv_128B,                  // llvm.hexagon.V6.vmpabusv.128B
-    hexagon_V6_vmpabuu,                        // llvm.hexagon.V6.vmpabuu
-    hexagon_V6_vmpabuu_128B,                   // llvm.hexagon.V6.vmpabuu.128B
-    hexagon_V6_vmpabuu_acc,                    // llvm.hexagon.V6.vmpabuu.acc
-    hexagon_V6_vmpabuu_acc_128B,               // llvm.hexagon.V6.vmpabuu.acc.128B
-    hexagon_V6_vmpabuuv,                       // llvm.hexagon.V6.vmpabuuv
-    hexagon_V6_vmpabuuv_128B,                  // llvm.hexagon.V6.vmpabuuv.128B
-    hexagon_V6_vmpahb,                         // llvm.hexagon.V6.vmpahb
-    hexagon_V6_vmpahb_128B,                    // llvm.hexagon.V6.vmpahb.128B
-    hexagon_V6_vmpahb_acc,                     // llvm.hexagon.V6.vmpahb.acc
-    hexagon_V6_vmpahb_acc_128B,                // llvm.hexagon.V6.vmpahb.acc.128B
-    hexagon_V6_vmpahhsat,                      // llvm.hexagon.V6.vmpahhsat
-    hexagon_V6_vmpahhsat_128B,                 // llvm.hexagon.V6.vmpahhsat.128B
-    hexagon_V6_vmpauhb,                        // llvm.hexagon.V6.vmpauhb
-    hexagon_V6_vmpauhb_128B,                   // llvm.hexagon.V6.vmpauhb.128B
-    hexagon_V6_vmpauhb_acc,                    // llvm.hexagon.V6.vmpauhb.acc
-    hexagon_V6_vmpauhb_acc_128B,               // llvm.hexagon.V6.vmpauhb.acc.128B
-    hexagon_V6_vmpauhuhsat,                    // llvm.hexagon.V6.vmpauhuhsat
-    hexagon_V6_vmpauhuhsat_128B,               // llvm.hexagon.V6.vmpauhuhsat.128B
-    hexagon_V6_vmpsuhuhsat,                    // llvm.hexagon.V6.vmpsuhuhsat
-    hexagon_V6_vmpsuhuhsat_128B,               // llvm.hexagon.V6.vmpsuhuhsat.128B
-    hexagon_V6_vmpybus,                        // llvm.hexagon.V6.vmpybus
-    hexagon_V6_vmpybus_128B,                   // llvm.hexagon.V6.vmpybus.128B
-    hexagon_V6_vmpybus_acc,                    // llvm.hexagon.V6.vmpybus.acc
-    hexagon_V6_vmpybus_acc_128B,               // llvm.hexagon.V6.vmpybus.acc.128B
-    hexagon_V6_vmpybusv,                       // llvm.hexagon.V6.vmpybusv
-    hexagon_V6_vmpybusv_128B,                  // llvm.hexagon.V6.vmpybusv.128B
-    hexagon_V6_vmpybusv_acc,                   // llvm.hexagon.V6.vmpybusv.acc
-    hexagon_V6_vmpybusv_acc_128B,              // llvm.hexagon.V6.vmpybusv.acc.128B
-    hexagon_V6_vmpybv,                         // llvm.hexagon.V6.vmpybv
-    hexagon_V6_vmpybv_128B,                    // llvm.hexagon.V6.vmpybv.128B
-    hexagon_V6_vmpybv_acc,                     // llvm.hexagon.V6.vmpybv.acc
-    hexagon_V6_vmpybv_acc_128B,                // llvm.hexagon.V6.vmpybv.acc.128B
-    hexagon_V6_vmpyewuh,                       // llvm.hexagon.V6.vmpyewuh
-    hexagon_V6_vmpyewuh_128B,                  // llvm.hexagon.V6.vmpyewuh.128B
-    hexagon_V6_vmpyewuh_64,                    // llvm.hexagon.V6.vmpyewuh.64
-    hexagon_V6_vmpyewuh_64_128B,               // llvm.hexagon.V6.vmpyewuh.64.128B
-    hexagon_V6_vmpyh,                          // llvm.hexagon.V6.vmpyh
-    hexagon_V6_vmpyh_128B,                     // llvm.hexagon.V6.vmpyh.128B
-    hexagon_V6_vmpyh_acc,                      // llvm.hexagon.V6.vmpyh.acc
-    hexagon_V6_vmpyh_acc_128B,                 // llvm.hexagon.V6.vmpyh.acc.128B
-    hexagon_V6_vmpyhsat_acc,                   // llvm.hexagon.V6.vmpyhsat.acc
-    hexagon_V6_vmpyhsat_acc_128B,              // llvm.hexagon.V6.vmpyhsat.acc.128B
-    hexagon_V6_vmpyhsrs,                       // llvm.hexagon.V6.vmpyhsrs
-    hexagon_V6_vmpyhsrs_128B,                  // llvm.hexagon.V6.vmpyhsrs.128B
-    hexagon_V6_vmpyhss,                        // llvm.hexagon.V6.vmpyhss
-    hexagon_V6_vmpyhss_128B,                   // llvm.hexagon.V6.vmpyhss.128B
-    hexagon_V6_vmpyhus,                        // llvm.hexagon.V6.vmpyhus
-    hexagon_V6_vmpyhus_128B,                   // llvm.hexagon.V6.vmpyhus.128B
-    hexagon_V6_vmpyhus_acc,                    // llvm.hexagon.V6.vmpyhus.acc
-    hexagon_V6_vmpyhus_acc_128B,               // llvm.hexagon.V6.vmpyhus.acc.128B
-    hexagon_V6_vmpyhv,                         // llvm.hexagon.V6.vmpyhv
-    hexagon_V6_vmpyhv_128B,                    // llvm.hexagon.V6.vmpyhv.128B
-    hexagon_V6_vmpyhv_acc,                     // llvm.hexagon.V6.vmpyhv.acc
-    hexagon_V6_vmpyhv_acc_128B,                // llvm.hexagon.V6.vmpyhv.acc.128B
-    hexagon_V6_vmpyhvsrs,                      // llvm.hexagon.V6.vmpyhvsrs
-    hexagon_V6_vmpyhvsrs_128B,                 // llvm.hexagon.V6.vmpyhvsrs.128B
-    hexagon_V6_vmpyieoh,                       // llvm.hexagon.V6.vmpyieoh
-    hexagon_V6_vmpyieoh_128B,                  // llvm.hexagon.V6.vmpyieoh.128B
-    hexagon_V6_vmpyiewh_acc,                   // llvm.hexagon.V6.vmpyiewh.acc
-    hexagon_V6_vmpyiewh_acc_128B,              // llvm.hexagon.V6.vmpyiewh.acc.128B
-    hexagon_V6_vmpyiewuh,                      // llvm.hexagon.V6.vmpyiewuh
-    hexagon_V6_vmpyiewuh_128B,                 // llvm.hexagon.V6.vmpyiewuh.128B
-    hexagon_V6_vmpyiewuh_acc,                  // llvm.hexagon.V6.vmpyiewuh.acc
-    hexagon_V6_vmpyiewuh_acc_128B,             // llvm.hexagon.V6.vmpyiewuh.acc.128B
-    hexagon_V6_vmpyih,                         // llvm.hexagon.V6.vmpyih
-    hexagon_V6_vmpyih_128B,                    // llvm.hexagon.V6.vmpyih.128B
-    hexagon_V6_vmpyih_acc,                     // llvm.hexagon.V6.vmpyih.acc
-    hexagon_V6_vmpyih_acc_128B,                // llvm.hexagon.V6.vmpyih.acc.128B
-    hexagon_V6_vmpyihb,                        // llvm.hexagon.V6.vmpyihb
-    hexagon_V6_vmpyihb_128B,                   // llvm.hexagon.V6.vmpyihb.128B
-    hexagon_V6_vmpyihb_acc,                    // llvm.hexagon.V6.vmpyihb.acc
-    hexagon_V6_vmpyihb_acc_128B,               // llvm.hexagon.V6.vmpyihb.acc.128B
-    hexagon_V6_vmpyiowh,                       // llvm.hexagon.V6.vmpyiowh
-    hexagon_V6_vmpyiowh_128B,                  // llvm.hexagon.V6.vmpyiowh.128B
-    hexagon_V6_vmpyiwb,                        // llvm.hexagon.V6.vmpyiwb
-    hexagon_V6_vmpyiwb_128B,                   // llvm.hexagon.V6.vmpyiwb.128B
-    hexagon_V6_vmpyiwb_acc,                    // llvm.hexagon.V6.vmpyiwb.acc
-    hexagon_V6_vmpyiwb_acc_128B,               // llvm.hexagon.V6.vmpyiwb.acc.128B
-    hexagon_V6_vmpyiwh,                        // llvm.hexagon.V6.vmpyiwh
-    hexagon_V6_vmpyiwh_128B,                   // llvm.hexagon.V6.vmpyiwh.128B
-    hexagon_V6_vmpyiwh_acc,                    // llvm.hexagon.V6.vmpyiwh.acc
-    hexagon_V6_vmpyiwh_acc_128B,               // llvm.hexagon.V6.vmpyiwh.acc.128B
-    hexagon_V6_vmpyiwub,                       // llvm.hexagon.V6.vmpyiwub
-    hexagon_V6_vmpyiwub_128B,                  // llvm.hexagon.V6.vmpyiwub.128B
-    hexagon_V6_vmpyiwub_acc,                   // llvm.hexagon.V6.vmpyiwub.acc
-    hexagon_V6_vmpyiwub_acc_128B,              // llvm.hexagon.V6.vmpyiwub.acc.128B
-    hexagon_V6_vmpyowh,                        // llvm.hexagon.V6.vmpyowh
-    hexagon_V6_vmpyowh_128B,                   // llvm.hexagon.V6.vmpyowh.128B
-    hexagon_V6_vmpyowh_64_acc,                 // llvm.hexagon.V6.vmpyowh.64.acc
-    hexagon_V6_vmpyowh_64_acc_128B,            // llvm.hexagon.V6.vmpyowh.64.acc.128B
-    hexagon_V6_vmpyowh_rnd,                    // llvm.hexagon.V6.vmpyowh.rnd
-    hexagon_V6_vmpyowh_rnd_128B,               // llvm.hexagon.V6.vmpyowh.rnd.128B
-    hexagon_V6_vmpyowh_rnd_sacc,               // llvm.hexagon.V6.vmpyowh.rnd.sacc
-    hexagon_V6_vmpyowh_rnd_sacc_128B,          // llvm.hexagon.V6.vmpyowh.rnd.sacc.128B
-    hexagon_V6_vmpyowh_sacc,                   // llvm.hexagon.V6.vmpyowh.sacc
-    hexagon_V6_vmpyowh_sacc_128B,              // llvm.hexagon.V6.vmpyowh.sacc.128B
-    hexagon_V6_vmpyub,                         // llvm.hexagon.V6.vmpyub
-    hexagon_V6_vmpyub_128B,                    // llvm.hexagon.V6.vmpyub.128B
-    hexagon_V6_vmpyub_acc,                     // llvm.hexagon.V6.vmpyub.acc
-    hexagon_V6_vmpyub_acc_128B,                // llvm.hexagon.V6.vmpyub.acc.128B
-    hexagon_V6_vmpyubv,                        // llvm.hexagon.V6.vmpyubv
-    hexagon_V6_vmpyubv_128B,                   // llvm.hexagon.V6.vmpyubv.128B
-    hexagon_V6_vmpyubv_acc,                    // llvm.hexagon.V6.vmpyubv.acc
-    hexagon_V6_vmpyubv_acc_128B,               // llvm.hexagon.V6.vmpyubv.acc.128B
-    hexagon_V6_vmpyuh,                         // llvm.hexagon.V6.vmpyuh
-    hexagon_V6_vmpyuh_128B,                    // llvm.hexagon.V6.vmpyuh.128B
-    hexagon_V6_vmpyuh_acc,                     // llvm.hexagon.V6.vmpyuh.acc
-    hexagon_V6_vmpyuh_acc_128B,                // llvm.hexagon.V6.vmpyuh.acc.128B
-    hexagon_V6_vmpyuhe,                        // llvm.hexagon.V6.vmpyuhe
-    hexagon_V6_vmpyuhe_128B,                   // llvm.hexagon.V6.vmpyuhe.128B
-    hexagon_V6_vmpyuhe_acc,                    // llvm.hexagon.V6.vmpyuhe.acc
-    hexagon_V6_vmpyuhe_acc_128B,               // llvm.hexagon.V6.vmpyuhe.acc.128B
-    hexagon_V6_vmpyuhv,                        // llvm.hexagon.V6.vmpyuhv
-    hexagon_V6_vmpyuhv_128B,                   // llvm.hexagon.V6.vmpyuhv.128B
-    hexagon_V6_vmpyuhv_acc,                    // llvm.hexagon.V6.vmpyuhv.acc
-    hexagon_V6_vmpyuhv_acc_128B,               // llvm.hexagon.V6.vmpyuhv.acc.128B
-    hexagon_V6_vmux,                           // llvm.hexagon.V6.vmux
-    hexagon_V6_vmux_128B,                      // llvm.hexagon.V6.vmux.128B
-    hexagon_V6_vnavgb,                         // llvm.hexagon.V6.vnavgb
-    hexagon_V6_vnavgb_128B,                    // llvm.hexagon.V6.vnavgb.128B
-    hexagon_V6_vnavgh,                         // llvm.hexagon.V6.vnavgh
-    hexagon_V6_vnavgh_128B,                    // llvm.hexagon.V6.vnavgh.128B
-    hexagon_V6_vnavgub,                        // llvm.hexagon.V6.vnavgub
-    hexagon_V6_vnavgub_128B,                   // llvm.hexagon.V6.vnavgub.128B
-    hexagon_V6_vnavgw,                         // llvm.hexagon.V6.vnavgw
-    hexagon_V6_vnavgw_128B,                    // llvm.hexagon.V6.vnavgw.128B
-    hexagon_V6_vnormamth,                      // llvm.hexagon.V6.vnormamth
-    hexagon_V6_vnormamth_128B,                 // llvm.hexagon.V6.vnormamth.128B
-    hexagon_V6_vnormamtw,                      // llvm.hexagon.V6.vnormamtw
-    hexagon_V6_vnormamtw_128B,                 // llvm.hexagon.V6.vnormamtw.128B
-    hexagon_V6_vnot,                           // llvm.hexagon.V6.vnot
-    hexagon_V6_vnot_128B,                      // llvm.hexagon.V6.vnot.128B
-    hexagon_V6_vor,                            // llvm.hexagon.V6.vor
-    hexagon_V6_vor_128B,                       // llvm.hexagon.V6.vor.128B
-    hexagon_V6_vpackeb,                        // llvm.hexagon.V6.vpackeb
-    hexagon_V6_vpackeb_128B,                   // llvm.hexagon.V6.vpackeb.128B
-    hexagon_V6_vpackeh,                        // llvm.hexagon.V6.vpackeh
-    hexagon_V6_vpackeh_128B,                   // llvm.hexagon.V6.vpackeh.128B
-    hexagon_V6_vpackhb_sat,                    // llvm.hexagon.V6.vpackhb.sat
-    hexagon_V6_vpackhb_sat_128B,               // llvm.hexagon.V6.vpackhb.sat.128B
-    hexagon_V6_vpackhub_sat,                   // llvm.hexagon.V6.vpackhub.sat
-    hexagon_V6_vpackhub_sat_128B,              // llvm.hexagon.V6.vpackhub.sat.128B
-    hexagon_V6_vpackob,                        // llvm.hexagon.V6.vpackob
-    hexagon_V6_vpackob_128B,                   // llvm.hexagon.V6.vpackob.128B
-    hexagon_V6_vpackoh,                        // llvm.hexagon.V6.vpackoh
-    hexagon_V6_vpackoh_128B,                   // llvm.hexagon.V6.vpackoh.128B
-    hexagon_V6_vpackwh_sat,                    // llvm.hexagon.V6.vpackwh.sat
-    hexagon_V6_vpackwh_sat_128B,               // llvm.hexagon.V6.vpackwh.sat.128B
-    hexagon_V6_vpackwuh_sat,                   // llvm.hexagon.V6.vpackwuh.sat
-    hexagon_V6_vpackwuh_sat_128B,              // llvm.hexagon.V6.vpackwuh.sat.128B
-    hexagon_V6_vpopcounth,                     // llvm.hexagon.V6.vpopcounth
-    hexagon_V6_vpopcounth_128B,                // llvm.hexagon.V6.vpopcounth.128B
-    hexagon_V6_vprefixqb,                      // llvm.hexagon.V6.vprefixqb
-    hexagon_V6_vprefixqb_128B,                 // llvm.hexagon.V6.vprefixqb.128B
-    hexagon_V6_vprefixqh,                      // llvm.hexagon.V6.vprefixqh
-    hexagon_V6_vprefixqh_128B,                 // llvm.hexagon.V6.vprefixqh.128B
-    hexagon_V6_vprefixqw,                      // llvm.hexagon.V6.vprefixqw
-    hexagon_V6_vprefixqw_128B,                 // llvm.hexagon.V6.vprefixqw.128B
-    hexagon_V6_vrdelta,                        // llvm.hexagon.V6.vrdelta
-    hexagon_V6_vrdelta_128B,                   // llvm.hexagon.V6.vrdelta.128B
-    hexagon_V6_vrmpybub_rtt,                   // llvm.hexagon.V6.vrmpybub.rtt
-    hexagon_V6_vrmpybub_rtt_128B,              // llvm.hexagon.V6.vrmpybub.rtt.128B
-    hexagon_V6_vrmpybub_rtt_acc,               // llvm.hexagon.V6.vrmpybub.rtt.acc
-    hexagon_V6_vrmpybub_rtt_acc_128B,          // llvm.hexagon.V6.vrmpybub.rtt.acc.128B
-    hexagon_V6_vrmpybus,                       // llvm.hexagon.V6.vrmpybus
-    hexagon_V6_vrmpybus_128B,                  // llvm.hexagon.V6.vrmpybus.128B
-    hexagon_V6_vrmpybus_acc,                   // llvm.hexagon.V6.vrmpybus.acc
-    hexagon_V6_vrmpybus_acc_128B,              // llvm.hexagon.V6.vrmpybus.acc.128B
-    hexagon_V6_vrmpybusi,                      // llvm.hexagon.V6.vrmpybusi
-    hexagon_V6_vrmpybusi_128B,                 // llvm.hexagon.V6.vrmpybusi.128B
-    hexagon_V6_vrmpybusi_acc,                  // llvm.hexagon.V6.vrmpybusi.acc
-    hexagon_V6_vrmpybusi_acc_128B,             // llvm.hexagon.V6.vrmpybusi.acc.128B
-    hexagon_V6_vrmpybusv,                      // llvm.hexagon.V6.vrmpybusv
-    hexagon_V6_vrmpybusv_128B,                 // llvm.hexagon.V6.vrmpybusv.128B
-    hexagon_V6_vrmpybusv_acc,                  // llvm.hexagon.V6.vrmpybusv.acc
-    hexagon_V6_vrmpybusv_acc_128B,             // llvm.hexagon.V6.vrmpybusv.acc.128B
-    hexagon_V6_vrmpybv,                        // llvm.hexagon.V6.vrmpybv
-    hexagon_V6_vrmpybv_128B,                   // llvm.hexagon.V6.vrmpybv.128B
-    hexagon_V6_vrmpybv_acc,                    // llvm.hexagon.V6.vrmpybv.acc
-    hexagon_V6_vrmpybv_acc_128B,               // llvm.hexagon.V6.vrmpybv.acc.128B
-    hexagon_V6_vrmpyub,                        // llvm.hexagon.V6.vrmpyub
-    hexagon_V6_vrmpyub_128B,                   // llvm.hexagon.V6.vrmpyub.128B
-    hexagon_V6_vrmpyub_acc,                    // llvm.hexagon.V6.vrmpyub.acc
-    hexagon_V6_vrmpyub_acc_128B,               // llvm.hexagon.V6.vrmpyub.acc.128B
-    hexagon_V6_vrmpyub_rtt,                    // llvm.hexagon.V6.vrmpyub.rtt
-    hexagon_V6_vrmpyub_rtt_128B,               // llvm.hexagon.V6.vrmpyub.rtt.128B
-    hexagon_V6_vrmpyub_rtt_acc,                // llvm.hexagon.V6.vrmpyub.rtt.acc
-    hexagon_V6_vrmpyub_rtt_acc_128B,           // llvm.hexagon.V6.vrmpyub.rtt.acc.128B
-    hexagon_V6_vrmpyubi,                       // llvm.hexagon.V6.vrmpyubi
-    hexagon_V6_vrmpyubi_128B,                  // llvm.hexagon.V6.vrmpyubi.128B
-    hexagon_V6_vrmpyubi_acc,                   // llvm.hexagon.V6.vrmpyubi.acc
-    hexagon_V6_vrmpyubi_acc_128B,              // llvm.hexagon.V6.vrmpyubi.acc.128B
-    hexagon_V6_vrmpyubv,                       // llvm.hexagon.V6.vrmpyubv
-    hexagon_V6_vrmpyubv_128B,                  // llvm.hexagon.V6.vrmpyubv.128B
-    hexagon_V6_vrmpyubv_acc,                   // llvm.hexagon.V6.vrmpyubv.acc
-    hexagon_V6_vrmpyubv_acc_128B,              // llvm.hexagon.V6.vrmpyubv.acc.128B
-    hexagon_V6_vror,                           // llvm.hexagon.V6.vror
-    hexagon_V6_vror_128B,                      // llvm.hexagon.V6.vror.128B
-    hexagon_V6_vroundhb,                       // llvm.hexagon.V6.vroundhb
-    hexagon_V6_vroundhb_128B,                  // llvm.hexagon.V6.vroundhb.128B
-    hexagon_V6_vroundhub,                      // llvm.hexagon.V6.vroundhub
-    hexagon_V6_vroundhub_128B,                 // llvm.hexagon.V6.vroundhub.128B
-    hexagon_V6_vrounduhub,                     // llvm.hexagon.V6.vrounduhub
-    hexagon_V6_vrounduhub_128B,                // llvm.hexagon.V6.vrounduhub.128B
-    hexagon_V6_vrounduwuh,                     // llvm.hexagon.V6.vrounduwuh
-    hexagon_V6_vrounduwuh_128B,                // llvm.hexagon.V6.vrounduwuh.128B
-    hexagon_V6_vroundwh,                       // llvm.hexagon.V6.vroundwh
-    hexagon_V6_vroundwh_128B,                  // llvm.hexagon.V6.vroundwh.128B
-    hexagon_V6_vroundwuh,                      // llvm.hexagon.V6.vroundwuh
-    hexagon_V6_vroundwuh_128B,                 // llvm.hexagon.V6.vroundwuh.128B
-    hexagon_V6_vrsadubi,                       // llvm.hexagon.V6.vrsadubi
-    hexagon_V6_vrsadubi_128B,                  // llvm.hexagon.V6.vrsadubi.128B
-    hexagon_V6_vrsadubi_acc,                   // llvm.hexagon.V6.vrsadubi.acc
-    hexagon_V6_vrsadubi_acc_128B,              // llvm.hexagon.V6.vrsadubi.acc.128B
-    hexagon_V6_vsathub,                        // llvm.hexagon.V6.vsathub
-    hexagon_V6_vsathub_128B,                   // llvm.hexagon.V6.vsathub.128B
-    hexagon_V6_vsatuwuh,                       // llvm.hexagon.V6.vsatuwuh
-    hexagon_V6_vsatuwuh_128B,                  // llvm.hexagon.V6.vsatuwuh.128B
-    hexagon_V6_vsatwh,                         // llvm.hexagon.V6.vsatwh
-    hexagon_V6_vsatwh_128B,                    // llvm.hexagon.V6.vsatwh.128B
-    hexagon_V6_vsb,                            // llvm.hexagon.V6.vsb
-    hexagon_V6_vsb_128B,                       // llvm.hexagon.V6.vsb.128B
-    hexagon_V6_vscattermh,                     // llvm.hexagon.V6.vscattermh
-    hexagon_V6_vscattermh_128B,                // llvm.hexagon.V6.vscattermh.128B
-    hexagon_V6_vscattermh_add,                 // llvm.hexagon.V6.vscattermh.add
-    hexagon_V6_vscattermh_add_128B,            // llvm.hexagon.V6.vscattermh.add.128B
-    hexagon_V6_vscattermhq,                    // llvm.hexagon.V6.vscattermhq
-    hexagon_V6_vscattermhq_128B,               // llvm.hexagon.V6.vscattermhq.128B
-    hexagon_V6_vscattermhw,                    // llvm.hexagon.V6.vscattermhw
-    hexagon_V6_vscattermhw_128B,               // llvm.hexagon.V6.vscattermhw.128B
-    hexagon_V6_vscattermhw_add,                // llvm.hexagon.V6.vscattermhw.add
-    hexagon_V6_vscattermhw_add_128B,           // llvm.hexagon.V6.vscattermhw.add.128B
-    hexagon_V6_vscattermhwq,                   // llvm.hexagon.V6.vscattermhwq
-    hexagon_V6_vscattermhwq_128B,              // llvm.hexagon.V6.vscattermhwq.128B
-    hexagon_V6_vscattermw,                     // llvm.hexagon.V6.vscattermw
-    hexagon_V6_vscattermw_128B,                // llvm.hexagon.V6.vscattermw.128B
-    hexagon_V6_vscattermw_add,                 // llvm.hexagon.V6.vscattermw.add
-    hexagon_V6_vscattermw_add_128B,            // llvm.hexagon.V6.vscattermw.add.128B
-    hexagon_V6_vscattermwq,                    // llvm.hexagon.V6.vscattermwq
-    hexagon_V6_vscattermwq_128B,               // llvm.hexagon.V6.vscattermwq.128B
-    hexagon_V6_vsh,                            // llvm.hexagon.V6.vsh
-    hexagon_V6_vsh_128B,                       // llvm.hexagon.V6.vsh.128B
-    hexagon_V6_vshufeh,                        // llvm.hexagon.V6.vshufeh
-    hexagon_V6_vshufeh_128B,                   // llvm.hexagon.V6.vshufeh.128B
-    hexagon_V6_vshuffb,                        // llvm.hexagon.V6.vshuffb
-    hexagon_V6_vshuffb_128B,                   // llvm.hexagon.V6.vshuffb.128B
-    hexagon_V6_vshuffeb,                       // llvm.hexagon.V6.vshuffeb
-    hexagon_V6_vshuffeb_128B,                  // llvm.hexagon.V6.vshuffeb.128B
-    hexagon_V6_vshuffh,                        // llvm.hexagon.V6.vshuffh
-    hexagon_V6_vshuffh_128B,                   // llvm.hexagon.V6.vshuffh.128B
-    hexagon_V6_vshuffob,                       // llvm.hexagon.V6.vshuffob
-    hexagon_V6_vshuffob_128B,                  // llvm.hexagon.V6.vshuffob.128B
-    hexagon_V6_vshuffvdd,                      // llvm.hexagon.V6.vshuffvdd
-    hexagon_V6_vshuffvdd_128B,                 // llvm.hexagon.V6.vshuffvdd.128B
-    hexagon_V6_vshufoeb,                       // llvm.hexagon.V6.vshufoeb
-    hexagon_V6_vshufoeb_128B,                  // llvm.hexagon.V6.vshufoeb.128B
-    hexagon_V6_vshufoeh,                       // llvm.hexagon.V6.vshufoeh
-    hexagon_V6_vshufoeh_128B,                  // llvm.hexagon.V6.vshufoeh.128B
-    hexagon_V6_vshufoh,                        // llvm.hexagon.V6.vshufoh
-    hexagon_V6_vshufoh_128B,                   // llvm.hexagon.V6.vshufoh.128B
-    hexagon_V6_vsubb,                          // llvm.hexagon.V6.vsubb
-    hexagon_V6_vsubb_128B,                     // llvm.hexagon.V6.vsubb.128B
-    hexagon_V6_vsubb_dv,                       // llvm.hexagon.V6.vsubb.dv
-    hexagon_V6_vsubb_dv_128B,                  // llvm.hexagon.V6.vsubb.dv.128B
-    hexagon_V6_vsubbnq,                        // llvm.hexagon.V6.vsubbnq
-    hexagon_V6_vsubbnq_128B,                   // llvm.hexagon.V6.vsubbnq.128B
-    hexagon_V6_vsubbq,                         // llvm.hexagon.V6.vsubbq
-    hexagon_V6_vsubbq_128B,                    // llvm.hexagon.V6.vsubbq.128B
-    hexagon_V6_vsubbsat,                       // llvm.hexagon.V6.vsubbsat
-    hexagon_V6_vsubbsat_128B,                  // llvm.hexagon.V6.vsubbsat.128B
-    hexagon_V6_vsubbsat_dv,                    // llvm.hexagon.V6.vsubbsat.dv
-    hexagon_V6_vsubbsat_dv_128B,               // llvm.hexagon.V6.vsubbsat.dv.128B
-    hexagon_V6_vsubcarry,                      // llvm.hexagon.V6.vsubcarry
-    hexagon_V6_vsubcarry_128B,                 // llvm.hexagon.V6.vsubcarry.128B
-    hexagon_V6_vsubh,                          // llvm.hexagon.V6.vsubh
-    hexagon_V6_vsubh_128B,                     // llvm.hexagon.V6.vsubh.128B
-    hexagon_V6_vsubh_dv,                       // llvm.hexagon.V6.vsubh.dv
-    hexagon_V6_vsubh_dv_128B,                  // llvm.hexagon.V6.vsubh.dv.128B
-    hexagon_V6_vsubhnq,                        // llvm.hexagon.V6.vsubhnq
-    hexagon_V6_vsubhnq_128B,                   // llvm.hexagon.V6.vsubhnq.128B
-    hexagon_V6_vsubhq,                         // llvm.hexagon.V6.vsubhq
-    hexagon_V6_vsubhq_128B,                    // llvm.hexagon.V6.vsubhq.128B
-    hexagon_V6_vsubhsat,                       // llvm.hexagon.V6.vsubhsat
-    hexagon_V6_vsubhsat_128B,                  // llvm.hexagon.V6.vsubhsat.128B
-    hexagon_V6_vsubhsat_dv,                    // llvm.hexagon.V6.vsubhsat.dv
-    hexagon_V6_vsubhsat_dv_128B,               // llvm.hexagon.V6.vsubhsat.dv.128B
-    hexagon_V6_vsubhw,                         // llvm.hexagon.V6.vsubhw
-    hexagon_V6_vsubhw_128B,                    // llvm.hexagon.V6.vsubhw.128B
-    hexagon_V6_vsububh,                        // llvm.hexagon.V6.vsububh
-    hexagon_V6_vsububh_128B,                   // llvm.hexagon.V6.vsububh.128B
-    hexagon_V6_vsububsat,                      // llvm.hexagon.V6.vsububsat
-    hexagon_V6_vsububsat_128B,                 // llvm.hexagon.V6.vsububsat.128B
-    hexagon_V6_vsububsat_dv,                   // llvm.hexagon.V6.vsububsat.dv
-    hexagon_V6_vsububsat_dv_128B,              // llvm.hexagon.V6.vsububsat.dv.128B
-    hexagon_V6_vsubububb_sat,                  // llvm.hexagon.V6.vsubububb.sat
-    hexagon_V6_vsubububb_sat_128B,             // llvm.hexagon.V6.vsubububb.sat.128B
-    hexagon_V6_vsubuhsat,                      // llvm.hexagon.V6.vsubuhsat
-    hexagon_V6_vsubuhsat_128B,                 // llvm.hexagon.V6.vsubuhsat.128B
-    hexagon_V6_vsubuhsat_dv,                   // llvm.hexagon.V6.vsubuhsat.dv
-    hexagon_V6_vsubuhsat_dv_128B,              // llvm.hexagon.V6.vsubuhsat.dv.128B
-    hexagon_V6_vsubuhw,                        // llvm.hexagon.V6.vsubuhw
-    hexagon_V6_vsubuhw_128B,                   // llvm.hexagon.V6.vsubuhw.128B
-    hexagon_V6_vsubuwsat,                      // llvm.hexagon.V6.vsubuwsat
-    hexagon_V6_vsubuwsat_128B,                 // llvm.hexagon.V6.vsubuwsat.128B
-    hexagon_V6_vsubuwsat_dv,                   // llvm.hexagon.V6.vsubuwsat.dv
-    hexagon_V6_vsubuwsat_dv_128B,              // llvm.hexagon.V6.vsubuwsat.dv.128B
-    hexagon_V6_vsubw,                          // llvm.hexagon.V6.vsubw
-    hexagon_V6_vsubw_128B,                     // llvm.hexagon.V6.vsubw.128B
-    hexagon_V6_vsubw_dv,                       // llvm.hexagon.V6.vsubw.dv
-    hexagon_V6_vsubw_dv_128B,                  // llvm.hexagon.V6.vsubw.dv.128B
-    hexagon_V6_vsubwnq,                        // llvm.hexagon.V6.vsubwnq
-    hexagon_V6_vsubwnq_128B,                   // llvm.hexagon.V6.vsubwnq.128B
-    hexagon_V6_vsubwq,                         // llvm.hexagon.V6.vsubwq
-    hexagon_V6_vsubwq_128B,                    // llvm.hexagon.V6.vsubwq.128B
-    hexagon_V6_vsubwsat,                       // llvm.hexagon.V6.vsubwsat
-    hexagon_V6_vsubwsat_128B,                  // llvm.hexagon.V6.vsubwsat.128B
-    hexagon_V6_vsubwsat_dv,                    // llvm.hexagon.V6.vsubwsat.dv
-    hexagon_V6_vsubwsat_dv_128B,               // llvm.hexagon.V6.vsubwsat.dv.128B
-    hexagon_V6_vswap,                          // llvm.hexagon.V6.vswap
-    hexagon_V6_vswap_128B,                     // llvm.hexagon.V6.vswap.128B
-    hexagon_V6_vtmpyb,                         // llvm.hexagon.V6.vtmpyb
-    hexagon_V6_vtmpyb_128B,                    // llvm.hexagon.V6.vtmpyb.128B
-    hexagon_V6_vtmpyb_acc,                     // llvm.hexagon.V6.vtmpyb.acc
-    hexagon_V6_vtmpyb_acc_128B,                // llvm.hexagon.V6.vtmpyb.acc.128B
-    hexagon_V6_vtmpybus,                       // llvm.hexagon.V6.vtmpybus
-    hexagon_V6_vtmpybus_128B,                  // llvm.hexagon.V6.vtmpybus.128B
-    hexagon_V6_vtmpybus_acc,                   // llvm.hexagon.V6.vtmpybus.acc
-    hexagon_V6_vtmpybus_acc_128B,              // llvm.hexagon.V6.vtmpybus.acc.128B
-    hexagon_V6_vtmpyhb,                        // llvm.hexagon.V6.vtmpyhb
-    hexagon_V6_vtmpyhb_128B,                   // llvm.hexagon.V6.vtmpyhb.128B
-    hexagon_V6_vtmpyhb_acc,                    // llvm.hexagon.V6.vtmpyhb.acc
-    hexagon_V6_vtmpyhb_acc_128B,               // llvm.hexagon.V6.vtmpyhb.acc.128B
-    hexagon_V6_vunpackb,                       // llvm.hexagon.V6.vunpackb
-    hexagon_V6_vunpackb_128B,                  // llvm.hexagon.V6.vunpackb.128B
-    hexagon_V6_vunpackh,                       // llvm.hexagon.V6.vunpackh
-    hexagon_V6_vunpackh_128B,                  // llvm.hexagon.V6.vunpackh.128B
-    hexagon_V6_vunpackob,                      // llvm.hexagon.V6.vunpackob
-    hexagon_V6_vunpackob_128B,                 // llvm.hexagon.V6.vunpackob.128B
-    hexagon_V6_vunpackoh,                      // llvm.hexagon.V6.vunpackoh
-    hexagon_V6_vunpackoh_128B,                 // llvm.hexagon.V6.vunpackoh.128B
-    hexagon_V6_vunpackub,                      // llvm.hexagon.V6.vunpackub
-    hexagon_V6_vunpackub_128B,                 // llvm.hexagon.V6.vunpackub.128B
-    hexagon_V6_vunpackuh,                      // llvm.hexagon.V6.vunpackuh
-    hexagon_V6_vunpackuh_128B,                 // llvm.hexagon.V6.vunpackuh.128B
-    hexagon_V6_vxor,                           // llvm.hexagon.V6.vxor
-    hexagon_V6_vxor_128B,                      // llvm.hexagon.V6.vxor.128B
-    hexagon_V6_vzb,                            // llvm.hexagon.V6.vzb
-    hexagon_V6_vzb_128B,                       // llvm.hexagon.V6.vzb.128B
-    hexagon_V6_vzh,                            // llvm.hexagon.V6.vzh
-    hexagon_V6_vzh_128B,                       // llvm.hexagon.V6.vzh.128B
-    hexagon_Y2_dccleana,                       // llvm.hexagon.Y2.dccleana
-    hexagon_Y2_dccleaninva,                    // llvm.hexagon.Y2.dccleaninva
-    hexagon_Y2_dcinva,                         // llvm.hexagon.Y2.dcinva
-    hexagon_Y2_dczeroa,                        // llvm.hexagon.Y2.dczeroa
-    hexagon_Y4_l2fetch,                        // llvm.hexagon.Y4.l2fetch
-    hexagon_Y5_l2fetch,                        // llvm.hexagon.Y5.l2fetch
-    hexagon_circ_ldb,                          // llvm.hexagon.circ.ldb
-    hexagon_circ_ldd,                          // llvm.hexagon.circ.ldd
-    hexagon_circ_ldh,                          // llvm.hexagon.circ.ldh
-    hexagon_circ_ldub,                         // llvm.hexagon.circ.ldub
-    hexagon_circ_lduh,                         // llvm.hexagon.circ.lduh
-    hexagon_circ_ldw,                          // llvm.hexagon.circ.ldw
-    hexagon_circ_stb,                          // llvm.hexagon.circ.stb
-    hexagon_circ_std,                          // llvm.hexagon.circ.std
-    hexagon_circ_sth,                          // llvm.hexagon.circ.sth
-    hexagon_circ_sthhi,                        // llvm.hexagon.circ.sthhi
-    hexagon_circ_stw,                          // llvm.hexagon.circ.stw
-    hexagon_mm256i_vaddw,                      // llvm.hexagon.mm256i.vaddw
-    hexagon_prefetch,                          // llvm.hexagon.prefetch
-    mips_absq_s_ph,                            // llvm.mips.absq.s.ph
-    mips_absq_s_qb,                            // llvm.mips.absq.s.qb
-    mips_absq_s_w,                             // llvm.mips.absq.s.w
-    mips_add_a_b,                              // llvm.mips.add.a.b
-    mips_add_a_d,                              // llvm.mips.add.a.d
-    mips_add_a_h,                              // llvm.mips.add.a.h
-    mips_add_a_w,                              // llvm.mips.add.a.w
-    mips_addq_ph,                              // llvm.mips.addq.ph
-    mips_addq_s_ph,                            // llvm.mips.addq.s.ph
-    mips_addq_s_w,                             // llvm.mips.addq.s.w
-    mips_addqh_ph,                             // llvm.mips.addqh.ph
-    mips_addqh_r_ph,                           // llvm.mips.addqh.r.ph
-    mips_addqh_r_w,                            // llvm.mips.addqh.r.w
-    mips_addqh_w,                              // llvm.mips.addqh.w
-    mips_adds_a_b,                             // llvm.mips.adds.a.b
-    mips_adds_a_d,                             // llvm.mips.adds.a.d
-    mips_adds_a_h,                             // llvm.mips.adds.a.h
-    mips_adds_a_w,                             // llvm.mips.adds.a.w
-    mips_adds_s_b,                             // llvm.mips.adds.s.b
-    mips_adds_s_d,                             // llvm.mips.adds.s.d
-    mips_adds_s_h,                             // llvm.mips.adds.s.h
-    mips_adds_s_w,                             // llvm.mips.adds.s.w
-    mips_adds_u_b,                             // llvm.mips.adds.u.b
-    mips_adds_u_d,                             // llvm.mips.adds.u.d
-    mips_adds_u_h,                             // llvm.mips.adds.u.h
-    mips_adds_u_w,                             // llvm.mips.adds.u.w
-    mips_addsc,                                // llvm.mips.addsc
-    mips_addu_ph,                              // llvm.mips.addu.ph
-    mips_addu_qb,                              // llvm.mips.addu.qb
-    mips_addu_s_ph,                            // llvm.mips.addu.s.ph
-    mips_addu_s_qb,                            // llvm.mips.addu.s.qb
-    mips_adduh_qb,                             // llvm.mips.adduh.qb
-    mips_adduh_r_qb,                           // llvm.mips.adduh.r.qb
-    mips_addv_b,                               // llvm.mips.addv.b
-    mips_addv_d,                               // llvm.mips.addv.d
-    mips_addv_h,                               // llvm.mips.addv.h
-    mips_addv_w,                               // llvm.mips.addv.w
-    mips_addvi_b,                              // llvm.mips.addvi.b
-    mips_addvi_d,                              // llvm.mips.addvi.d
-    mips_addvi_h,                              // llvm.mips.addvi.h
-    mips_addvi_w,                              // llvm.mips.addvi.w
-    mips_addwc,                                // llvm.mips.addwc
-    mips_and_v,                                // llvm.mips.and.v
-    mips_andi_b,                               // llvm.mips.andi.b
-    mips_append,                               // llvm.mips.append
-    mips_asub_s_b,                             // llvm.mips.asub.s.b
-    mips_asub_s_d,                             // llvm.mips.asub.s.d
-    mips_asub_s_h,                             // llvm.mips.asub.s.h
-    mips_asub_s_w,                             // llvm.mips.asub.s.w
-    mips_asub_u_b,                             // llvm.mips.asub.u.b
-    mips_asub_u_d,                             // llvm.mips.asub.u.d
-    mips_asub_u_h,                             // llvm.mips.asub.u.h
-    mips_asub_u_w,                             // llvm.mips.asub.u.w
-    mips_ave_s_b,                              // llvm.mips.ave.s.b
-    mips_ave_s_d,                              // llvm.mips.ave.s.d
-    mips_ave_s_h,                              // llvm.mips.ave.s.h
-    mips_ave_s_w,                              // llvm.mips.ave.s.w
-    mips_ave_u_b,                              // llvm.mips.ave.u.b
-    mips_ave_u_d,                              // llvm.mips.ave.u.d
-    mips_ave_u_h,                              // llvm.mips.ave.u.h
-    mips_ave_u_w,                              // llvm.mips.ave.u.w
-    mips_aver_s_b,                             // llvm.mips.aver.s.b
-    mips_aver_s_d,                             // llvm.mips.aver.s.d
-    mips_aver_s_h,                             // llvm.mips.aver.s.h
-    mips_aver_s_w,                             // llvm.mips.aver.s.w
-    mips_aver_u_b,                             // llvm.mips.aver.u.b
-    mips_aver_u_d,                             // llvm.mips.aver.u.d
-    mips_aver_u_h,                             // llvm.mips.aver.u.h
-    mips_aver_u_w,                             // llvm.mips.aver.u.w
-    mips_balign,                               // llvm.mips.balign
-    mips_bclr_b,                               // llvm.mips.bclr.b
-    mips_bclr_d,                               // llvm.mips.bclr.d
-    mips_bclr_h,                               // llvm.mips.bclr.h
-    mips_bclr_w,                               // llvm.mips.bclr.w
-    mips_bclri_b,                              // llvm.mips.bclri.b
-    mips_bclri_d,                              // llvm.mips.bclri.d
-    mips_bclri_h,                              // llvm.mips.bclri.h
-    mips_bclri_w,                              // llvm.mips.bclri.w
-    mips_binsl_b,                              // llvm.mips.binsl.b
-    mips_binsl_d,                              // llvm.mips.binsl.d
-    mips_binsl_h,                              // llvm.mips.binsl.h
-    mips_binsl_w,                              // llvm.mips.binsl.w
-    mips_binsli_b,                             // llvm.mips.binsli.b
-    mips_binsli_d,                             // llvm.mips.binsli.d
-    mips_binsli_h,                             // llvm.mips.binsli.h
-    mips_binsli_w,                             // llvm.mips.binsli.w
-    mips_binsr_b,                              // llvm.mips.binsr.b
-    mips_binsr_d,                              // llvm.mips.binsr.d
-    mips_binsr_h,                              // llvm.mips.binsr.h
-    mips_binsr_w,                              // llvm.mips.binsr.w
-    mips_binsri_b,                             // llvm.mips.binsri.b
-    mips_binsri_d,                             // llvm.mips.binsri.d
-    mips_binsri_h,                             // llvm.mips.binsri.h
-    mips_binsri_w,                             // llvm.mips.binsri.w
-    mips_bitrev,                               // llvm.mips.bitrev
-    mips_bmnz_v,                               // llvm.mips.bmnz.v
-    mips_bmnzi_b,                              // llvm.mips.bmnzi.b
-    mips_bmz_v,                                // llvm.mips.bmz.v
-    mips_bmzi_b,                               // llvm.mips.bmzi.b
-    mips_bneg_b,                               // llvm.mips.bneg.b
-    mips_bneg_d,                               // llvm.mips.bneg.d
-    mips_bneg_h,                               // llvm.mips.bneg.h
-    mips_bneg_w,                               // llvm.mips.bneg.w
-    mips_bnegi_b,                              // llvm.mips.bnegi.b
-    mips_bnegi_d,                              // llvm.mips.bnegi.d
-    mips_bnegi_h,                              // llvm.mips.bnegi.h
-    mips_bnegi_w,                              // llvm.mips.bnegi.w
-    mips_bnz_b,                                // llvm.mips.bnz.b
-    mips_bnz_d,                                // llvm.mips.bnz.d
-    mips_bnz_h,                                // llvm.mips.bnz.h
-    mips_bnz_v,                                // llvm.mips.bnz.v
-    mips_bnz_w,                                // llvm.mips.bnz.w
-    mips_bposge32,                             // llvm.mips.bposge32
-    mips_bsel_v,                               // llvm.mips.bsel.v
-    mips_bseli_b,                              // llvm.mips.bseli.b
-    mips_bset_b,                               // llvm.mips.bset.b
-    mips_bset_d,                               // llvm.mips.bset.d
-    mips_bset_h,                               // llvm.mips.bset.h
-    mips_bset_w,                               // llvm.mips.bset.w
-    mips_bseti_b,                              // llvm.mips.bseti.b
-    mips_bseti_d,                              // llvm.mips.bseti.d
-    mips_bseti_h,                              // llvm.mips.bseti.h
-    mips_bseti_w,                              // llvm.mips.bseti.w
-    mips_bz_b,                                 // llvm.mips.bz.b
-    mips_bz_d,                                 // llvm.mips.bz.d
-    mips_bz_h,                                 // llvm.mips.bz.h
-    mips_bz_v,                                 // llvm.mips.bz.v
-    mips_bz_w,                                 // llvm.mips.bz.w
-    mips_ceq_b,                                // llvm.mips.ceq.b
-    mips_ceq_d,                                // llvm.mips.ceq.d
-    mips_ceq_h,                                // llvm.mips.ceq.h
-    mips_ceq_w,                                // llvm.mips.ceq.w
-    mips_ceqi_b,                               // llvm.mips.ceqi.b
-    mips_ceqi_d,                               // llvm.mips.ceqi.d
-    mips_ceqi_h,                               // llvm.mips.ceqi.h
-    mips_ceqi_w,                               // llvm.mips.ceqi.w
-    mips_cfcmsa,                               // llvm.mips.cfcmsa
-    mips_cle_s_b,                              // llvm.mips.cle.s.b
-    mips_cle_s_d,                              // llvm.mips.cle.s.d
-    mips_cle_s_h,                              // llvm.mips.cle.s.h
-    mips_cle_s_w,                              // llvm.mips.cle.s.w
-    mips_cle_u_b,                              // llvm.mips.cle.u.b
-    mips_cle_u_d,                              // llvm.mips.cle.u.d
-    mips_cle_u_h,                              // llvm.mips.cle.u.h
-    mips_cle_u_w,                              // llvm.mips.cle.u.w
-    mips_clei_s_b,                             // llvm.mips.clei.s.b
-    mips_clei_s_d,                             // llvm.mips.clei.s.d
-    mips_clei_s_h,                             // llvm.mips.clei.s.h
-    mips_clei_s_w,                             // llvm.mips.clei.s.w
-    mips_clei_u_b,                             // llvm.mips.clei.u.b
-    mips_clei_u_d,                             // llvm.mips.clei.u.d
-    mips_clei_u_h,                             // llvm.mips.clei.u.h
-    mips_clei_u_w,                             // llvm.mips.clei.u.w
-    mips_clt_s_b,                              // llvm.mips.clt.s.b
-    mips_clt_s_d,                              // llvm.mips.clt.s.d
-    mips_clt_s_h,                              // llvm.mips.clt.s.h
-    mips_clt_s_w,                              // llvm.mips.clt.s.w
-    mips_clt_u_b,                              // llvm.mips.clt.u.b
-    mips_clt_u_d,                              // llvm.mips.clt.u.d
-    mips_clt_u_h,                              // llvm.mips.clt.u.h
-    mips_clt_u_w,                              // llvm.mips.clt.u.w
-    mips_clti_s_b,                             // llvm.mips.clti.s.b
-    mips_clti_s_d,                             // llvm.mips.clti.s.d
-    mips_clti_s_h,                             // llvm.mips.clti.s.h
-    mips_clti_s_w,                             // llvm.mips.clti.s.w
-    mips_clti_u_b,                             // llvm.mips.clti.u.b
-    mips_clti_u_d,                             // llvm.mips.clti.u.d
-    mips_clti_u_h,                             // llvm.mips.clti.u.h
-    mips_clti_u_w,                             // llvm.mips.clti.u.w
-    mips_cmp_eq_ph,                            // llvm.mips.cmp.eq.ph
-    mips_cmp_le_ph,                            // llvm.mips.cmp.le.ph
-    mips_cmp_lt_ph,                            // llvm.mips.cmp.lt.ph
-    mips_cmpgdu_eq_qb,                         // llvm.mips.cmpgdu.eq.qb
-    mips_cmpgdu_le_qb,                         // llvm.mips.cmpgdu.le.qb
-    mips_cmpgdu_lt_qb,                         // llvm.mips.cmpgdu.lt.qb
-    mips_cmpgu_eq_qb,                          // llvm.mips.cmpgu.eq.qb
-    mips_cmpgu_le_qb,                          // llvm.mips.cmpgu.le.qb
-    mips_cmpgu_lt_qb,                          // llvm.mips.cmpgu.lt.qb
-    mips_cmpu_eq_qb,                           // llvm.mips.cmpu.eq.qb
-    mips_cmpu_le_qb,                           // llvm.mips.cmpu.le.qb
-    mips_cmpu_lt_qb,                           // llvm.mips.cmpu.lt.qb
-    mips_copy_s_b,                             // llvm.mips.copy.s.b
-    mips_copy_s_d,                             // llvm.mips.copy.s.d
-    mips_copy_s_h,                             // llvm.mips.copy.s.h
-    mips_copy_s_w,                             // llvm.mips.copy.s.w
-    mips_copy_u_b,                             // llvm.mips.copy.u.b
-    mips_copy_u_d,                             // llvm.mips.copy.u.d
-    mips_copy_u_h,                             // llvm.mips.copy.u.h
-    mips_copy_u_w,                             // llvm.mips.copy.u.w
-    mips_ctcmsa,                               // llvm.mips.ctcmsa
-    mips_div_s_b,                              // llvm.mips.div.s.b
-    mips_div_s_d,                              // llvm.mips.div.s.d
-    mips_div_s_h,                              // llvm.mips.div.s.h
-    mips_div_s_w,                              // llvm.mips.div.s.w
-    mips_div_u_b,                              // llvm.mips.div.u.b
-    mips_div_u_d,                              // llvm.mips.div.u.d
-    mips_div_u_h,                              // llvm.mips.div.u.h
-    mips_div_u_w,                              // llvm.mips.div.u.w
-    mips_dlsa,                                 // llvm.mips.dlsa
-    mips_dotp_s_d,                             // llvm.mips.dotp.s.d
-    mips_dotp_s_h,                             // llvm.mips.dotp.s.h
-    mips_dotp_s_w,                             // llvm.mips.dotp.s.w
-    mips_dotp_u_d,                             // llvm.mips.dotp.u.d
-    mips_dotp_u_h,                             // llvm.mips.dotp.u.h
-    mips_dotp_u_w,                             // llvm.mips.dotp.u.w
-    mips_dpa_w_ph,                             // llvm.mips.dpa.w.ph
-    mips_dpadd_s_d,                            // llvm.mips.dpadd.s.d
-    mips_dpadd_s_h,                            // llvm.mips.dpadd.s.h
-    mips_dpadd_s_w,                            // llvm.mips.dpadd.s.w
-    mips_dpadd_u_d,                            // llvm.mips.dpadd.u.d
-    mips_dpadd_u_h,                            // llvm.mips.dpadd.u.h
-    mips_dpadd_u_w,                            // llvm.mips.dpadd.u.w
-    mips_dpaq_s_w_ph,                          // llvm.mips.dpaq.s.w.ph
-    mips_dpaq_sa_l_w,                          // llvm.mips.dpaq.sa.l.w
-    mips_dpaqx_s_w_ph,                         // llvm.mips.dpaqx.s.w.ph
-    mips_dpaqx_sa_w_ph,                        // llvm.mips.dpaqx.sa.w.ph
-    mips_dpau_h_qbl,                           // llvm.mips.dpau.h.qbl
-    mips_dpau_h_qbr,                           // llvm.mips.dpau.h.qbr
-    mips_dpax_w_ph,                            // llvm.mips.dpax.w.ph
-    mips_dps_w_ph,                             // llvm.mips.dps.w.ph
-    mips_dpsq_s_w_ph,                          // llvm.mips.dpsq.s.w.ph
-    mips_dpsq_sa_l_w,                          // llvm.mips.dpsq.sa.l.w
-    mips_dpsqx_s_w_ph,                         // llvm.mips.dpsqx.s.w.ph
-    mips_dpsqx_sa_w_ph,                        // llvm.mips.dpsqx.sa.w.ph
-    mips_dpsu_h_qbl,                           // llvm.mips.dpsu.h.qbl
-    mips_dpsu_h_qbr,                           // llvm.mips.dpsu.h.qbr
-    mips_dpsub_s_d,                            // llvm.mips.dpsub.s.d
-    mips_dpsub_s_h,                            // llvm.mips.dpsub.s.h
-    mips_dpsub_s_w,                            // llvm.mips.dpsub.s.w
-    mips_dpsub_u_d,                            // llvm.mips.dpsub.u.d
-    mips_dpsub_u_h,                            // llvm.mips.dpsub.u.h
-    mips_dpsub_u_w,                            // llvm.mips.dpsub.u.w
-    mips_dpsx_w_ph,                            // llvm.mips.dpsx.w.ph
-    mips_extp,                                 // llvm.mips.extp
-    mips_extpdp,                               // llvm.mips.extpdp
-    mips_extr_r_w,                             // llvm.mips.extr.r.w
-    mips_extr_rs_w,                            // llvm.mips.extr.rs.w
-    mips_extr_s_h,                             // llvm.mips.extr.s.h
-    mips_extr_w,                               // llvm.mips.extr.w
-    mips_fadd_d,                               // llvm.mips.fadd.d
-    mips_fadd_w,                               // llvm.mips.fadd.w
-    mips_fcaf_d,                               // llvm.mips.fcaf.d
-    mips_fcaf_w,                               // llvm.mips.fcaf.w
-    mips_fceq_d,                               // llvm.mips.fceq.d
-    mips_fceq_w,                               // llvm.mips.fceq.w
-    mips_fclass_d,                             // llvm.mips.fclass.d
-    mips_fclass_w,                             // llvm.mips.fclass.w
-    mips_fcle_d,                               // llvm.mips.fcle.d
-    mips_fcle_w,                               // llvm.mips.fcle.w
-    mips_fclt_d,                               // llvm.mips.fclt.d
-    mips_fclt_w,                               // llvm.mips.fclt.w
-    mips_fcne_d,                               // llvm.mips.fcne.d
-    mips_fcne_w,                               // llvm.mips.fcne.w
-    mips_fcor_d,                               // llvm.mips.fcor.d
-    mips_fcor_w,                               // llvm.mips.fcor.w
-    mips_fcueq_d,                              // llvm.mips.fcueq.d
-    mips_fcueq_w,                              // llvm.mips.fcueq.w
-    mips_fcule_d,                              // llvm.mips.fcule.d
-    mips_fcule_w,                              // llvm.mips.fcule.w
-    mips_fcult_d,                              // llvm.mips.fcult.d
-    mips_fcult_w,                              // llvm.mips.fcult.w
-    mips_fcun_d,                               // llvm.mips.fcun.d
-    mips_fcun_w,                               // llvm.mips.fcun.w
-    mips_fcune_d,                              // llvm.mips.fcune.d
-    mips_fcune_w,                              // llvm.mips.fcune.w
-    mips_fdiv_d,                               // llvm.mips.fdiv.d
-    mips_fdiv_w,                               // llvm.mips.fdiv.w
-    mips_fexdo_h,                              // llvm.mips.fexdo.h
-    mips_fexdo_w,                              // llvm.mips.fexdo.w
-    mips_fexp2_d,                              // llvm.mips.fexp2.d
-    mips_fexp2_w,                              // llvm.mips.fexp2.w
-    mips_fexupl_d,                             // llvm.mips.fexupl.d
-    mips_fexupl_w,                             // llvm.mips.fexupl.w
-    mips_fexupr_d,                             // llvm.mips.fexupr.d
-    mips_fexupr_w,                             // llvm.mips.fexupr.w
-    mips_ffint_s_d,                            // llvm.mips.ffint.s.d
-    mips_ffint_s_w,                            // llvm.mips.ffint.s.w
-    mips_ffint_u_d,                            // llvm.mips.ffint.u.d
-    mips_ffint_u_w,                            // llvm.mips.ffint.u.w
-    mips_ffql_d,                               // llvm.mips.ffql.d
-    mips_ffql_w,                               // llvm.mips.ffql.w
-    mips_ffqr_d,                               // llvm.mips.ffqr.d
-    mips_ffqr_w,                               // llvm.mips.ffqr.w
-    mips_fill_b,                               // llvm.mips.fill.b
-    mips_fill_d,                               // llvm.mips.fill.d
-    mips_fill_h,                               // llvm.mips.fill.h
-    mips_fill_w,                               // llvm.mips.fill.w
-    mips_flog2_d,                              // llvm.mips.flog2.d
-    mips_flog2_w,                              // llvm.mips.flog2.w
-    mips_fmadd_d,                              // llvm.mips.fmadd.d
-    mips_fmadd_w,                              // llvm.mips.fmadd.w
-    mips_fmax_a_d,                             // llvm.mips.fmax.a.d
-    mips_fmax_a_w,                             // llvm.mips.fmax.a.w
-    mips_fmax_d,                               // llvm.mips.fmax.d
-    mips_fmax_w,                               // llvm.mips.fmax.w
-    mips_fmin_a_d,                             // llvm.mips.fmin.a.d
-    mips_fmin_a_w,                             // llvm.mips.fmin.a.w
-    mips_fmin_d,                               // llvm.mips.fmin.d
-    mips_fmin_w,                               // llvm.mips.fmin.w
-    mips_fmsub_d,                              // llvm.mips.fmsub.d
-    mips_fmsub_w,                              // llvm.mips.fmsub.w
-    mips_fmul_d,                               // llvm.mips.fmul.d
-    mips_fmul_w,                               // llvm.mips.fmul.w
-    mips_frcp_d,                               // llvm.mips.frcp.d
-    mips_frcp_w,                               // llvm.mips.frcp.w
-    mips_frint_d,                              // llvm.mips.frint.d
-    mips_frint_w,                              // llvm.mips.frint.w
-    mips_frsqrt_d,                             // llvm.mips.frsqrt.d
-    mips_frsqrt_w,                             // llvm.mips.frsqrt.w
-    mips_fsaf_d,                               // llvm.mips.fsaf.d
-    mips_fsaf_w,                               // llvm.mips.fsaf.w
-    mips_fseq_d,                               // llvm.mips.fseq.d
-    mips_fseq_w,                               // llvm.mips.fseq.w
-    mips_fsle_d,                               // llvm.mips.fsle.d
-    mips_fsle_w,                               // llvm.mips.fsle.w
-    mips_fslt_d,                               // llvm.mips.fslt.d
-    mips_fslt_w,                               // llvm.mips.fslt.w
-    mips_fsne_d,                               // llvm.mips.fsne.d
-    mips_fsne_w,                               // llvm.mips.fsne.w
-    mips_fsor_d,                               // llvm.mips.fsor.d
-    mips_fsor_w,                               // llvm.mips.fsor.w
-    mips_fsqrt_d,                              // llvm.mips.fsqrt.d
-    mips_fsqrt_w,                              // llvm.mips.fsqrt.w
-    mips_fsub_d,                               // llvm.mips.fsub.d
-    mips_fsub_w,                               // llvm.mips.fsub.w
-    mips_fsueq_d,                              // llvm.mips.fsueq.d
-    mips_fsueq_w,                              // llvm.mips.fsueq.w
-    mips_fsule_d,                              // llvm.mips.fsule.d
-    mips_fsule_w,                              // llvm.mips.fsule.w
-    mips_fsult_d,                              // llvm.mips.fsult.d
-    mips_fsult_w,                              // llvm.mips.fsult.w
-    mips_fsun_d,                               // llvm.mips.fsun.d
-    mips_fsun_w,                               // llvm.mips.fsun.w
-    mips_fsune_d,                              // llvm.mips.fsune.d
-    mips_fsune_w,                              // llvm.mips.fsune.w
-    mips_ftint_s_d,                            // llvm.mips.ftint.s.d
-    mips_ftint_s_w,                            // llvm.mips.ftint.s.w
-    mips_ftint_u_d,                            // llvm.mips.ftint.u.d
-    mips_ftint_u_w,                            // llvm.mips.ftint.u.w
-    mips_ftq_h,                                // llvm.mips.ftq.h
-    mips_ftq_w,                                // llvm.mips.ftq.w
-    mips_ftrunc_s_d,                           // llvm.mips.ftrunc.s.d
-    mips_ftrunc_s_w,                           // llvm.mips.ftrunc.s.w
-    mips_ftrunc_u_d,                           // llvm.mips.ftrunc.u.d
-    mips_ftrunc_u_w,                           // llvm.mips.ftrunc.u.w
-    mips_hadd_s_d,                             // llvm.mips.hadd.s.d
-    mips_hadd_s_h,                             // llvm.mips.hadd.s.h
-    mips_hadd_s_w,                             // llvm.mips.hadd.s.w
-    mips_hadd_u_d,                             // llvm.mips.hadd.u.d
-    mips_hadd_u_h,                             // llvm.mips.hadd.u.h
-    mips_hadd_u_w,                             // llvm.mips.hadd.u.w
-    mips_hsub_s_d,                             // llvm.mips.hsub.s.d
-    mips_hsub_s_h,                             // llvm.mips.hsub.s.h
-    mips_hsub_s_w,                             // llvm.mips.hsub.s.w
-    mips_hsub_u_d,                             // llvm.mips.hsub.u.d
-    mips_hsub_u_h,                             // llvm.mips.hsub.u.h
-    mips_hsub_u_w,                             // llvm.mips.hsub.u.w
-    mips_ilvev_b,                              // llvm.mips.ilvev.b
-    mips_ilvev_d,                              // llvm.mips.ilvev.d
-    mips_ilvev_h,                              // llvm.mips.ilvev.h
-    mips_ilvev_w,                              // llvm.mips.ilvev.w
-    mips_ilvl_b,                               // llvm.mips.ilvl.b
-    mips_ilvl_d,                               // llvm.mips.ilvl.d
-    mips_ilvl_h,                               // llvm.mips.ilvl.h
-    mips_ilvl_w,                               // llvm.mips.ilvl.w
-    mips_ilvod_b,                              // llvm.mips.ilvod.b
-    mips_ilvod_d,                              // llvm.mips.ilvod.d
-    mips_ilvod_h,                              // llvm.mips.ilvod.h
-    mips_ilvod_w,                              // llvm.mips.ilvod.w
-    mips_ilvr_b,                               // llvm.mips.ilvr.b
-    mips_ilvr_d,                               // llvm.mips.ilvr.d
-    mips_ilvr_h,                               // llvm.mips.ilvr.h
-    mips_ilvr_w,                               // llvm.mips.ilvr.w
-    mips_insert_b,                             // llvm.mips.insert.b
-    mips_insert_d,                             // llvm.mips.insert.d
-    mips_insert_h,                             // llvm.mips.insert.h
-    mips_insert_w,                             // llvm.mips.insert.w
-    mips_insv,                                 // llvm.mips.insv
-    mips_insve_b,                              // llvm.mips.insve.b
-    mips_insve_d,                              // llvm.mips.insve.d
-    mips_insve_h,                              // llvm.mips.insve.h
-    mips_insve_w,                              // llvm.mips.insve.w
-    mips_lbux,                                 // llvm.mips.lbux
-    mips_ld_b,                                 // llvm.mips.ld.b
-    mips_ld_d,                                 // llvm.mips.ld.d
-    mips_ld_h,                                 // llvm.mips.ld.h
-    mips_ld_w,                                 // llvm.mips.ld.w
-    mips_ldi_b,                                // llvm.mips.ldi.b
-    mips_ldi_d,                                // llvm.mips.ldi.d
-    mips_ldi_h,                                // llvm.mips.ldi.h
-    mips_ldi_w,                                // llvm.mips.ldi.w
-    mips_lhx,                                  // llvm.mips.lhx
-    mips_lsa,                                  // llvm.mips.lsa
-    mips_lwx,                                  // llvm.mips.lwx
-    mips_madd,                                 // llvm.mips.madd
-    mips_madd_q_h,                             // llvm.mips.madd.q.h
-    mips_madd_q_w,                             // llvm.mips.madd.q.w
-    mips_maddr_q_h,                            // llvm.mips.maddr.q.h
-    mips_maddr_q_w,                            // llvm.mips.maddr.q.w
-    mips_maddu,                                // llvm.mips.maddu
-    mips_maddv_b,                              // llvm.mips.maddv.b
-    mips_maddv_d,                              // llvm.mips.maddv.d
-    mips_maddv_h,                              // llvm.mips.maddv.h
-    mips_maddv_w,                              // llvm.mips.maddv.w
-    mips_maq_s_w_phl,                          // llvm.mips.maq.s.w.phl
-    mips_maq_s_w_phr,                          // llvm.mips.maq.s.w.phr
-    mips_maq_sa_w_phl,                         // llvm.mips.maq.sa.w.phl
-    mips_maq_sa_w_phr,                         // llvm.mips.maq.sa.w.phr
-    mips_max_a_b,                              // llvm.mips.max.a.b
-    mips_max_a_d,                              // llvm.mips.max.a.d
-    mips_max_a_h,                              // llvm.mips.max.a.h
-    mips_max_a_w,                              // llvm.mips.max.a.w
-    mips_max_s_b,                              // llvm.mips.max.s.b
-    mips_max_s_d,                              // llvm.mips.max.s.d
-    mips_max_s_h,                              // llvm.mips.max.s.h
-    mips_max_s_w,                              // llvm.mips.max.s.w
-    mips_max_u_b,                              // llvm.mips.max.u.b
-    mips_max_u_d,                              // llvm.mips.max.u.d
-    mips_max_u_h,                              // llvm.mips.max.u.h
-    mips_max_u_w,                              // llvm.mips.max.u.w
-    mips_maxi_s_b,                             // llvm.mips.maxi.s.b
-    mips_maxi_s_d,                             // llvm.mips.maxi.s.d
-    mips_maxi_s_h,                             // llvm.mips.maxi.s.h
-    mips_maxi_s_w,                             // llvm.mips.maxi.s.w
-    mips_maxi_u_b,                             // llvm.mips.maxi.u.b
-    mips_maxi_u_d,                             // llvm.mips.maxi.u.d
-    mips_maxi_u_h,                             // llvm.mips.maxi.u.h
-    mips_maxi_u_w,                             // llvm.mips.maxi.u.w
-    mips_min_a_b,                              // llvm.mips.min.a.b
-    mips_min_a_d,                              // llvm.mips.min.a.d
-    mips_min_a_h,                              // llvm.mips.min.a.h
-    mips_min_a_w,                              // llvm.mips.min.a.w
-    mips_min_s_b,                              // llvm.mips.min.s.b
-    mips_min_s_d,                              // llvm.mips.min.s.d
-    mips_min_s_h,                              // llvm.mips.min.s.h
-    mips_min_s_w,                              // llvm.mips.min.s.w
-    mips_min_u_b,                              // llvm.mips.min.u.b
-    mips_min_u_d,                              // llvm.mips.min.u.d
-    mips_min_u_h,                              // llvm.mips.min.u.h
-    mips_min_u_w,                              // llvm.mips.min.u.w
-    mips_mini_s_b,                             // llvm.mips.mini.s.b
-    mips_mini_s_d,                             // llvm.mips.mini.s.d
-    mips_mini_s_h,                             // llvm.mips.mini.s.h
-    mips_mini_s_w,                             // llvm.mips.mini.s.w
-    mips_mini_u_b,                             // llvm.mips.mini.u.b
-    mips_mini_u_d,                             // llvm.mips.mini.u.d
-    mips_mini_u_h,                             // llvm.mips.mini.u.h
-    mips_mini_u_w,                             // llvm.mips.mini.u.w
-    mips_mod_s_b,                              // llvm.mips.mod.s.b
-    mips_mod_s_d,                              // llvm.mips.mod.s.d
-    mips_mod_s_h,                              // llvm.mips.mod.s.h
-    mips_mod_s_w,                              // llvm.mips.mod.s.w
-    mips_mod_u_b,                              // llvm.mips.mod.u.b
-    mips_mod_u_d,                              // llvm.mips.mod.u.d
-    mips_mod_u_h,                              // llvm.mips.mod.u.h
-    mips_mod_u_w,                              // llvm.mips.mod.u.w
-    mips_modsub,                               // llvm.mips.modsub
-    mips_move_v,                               // llvm.mips.move.v
-    mips_msub,                                 // llvm.mips.msub
-    mips_msub_q_h,                             // llvm.mips.msub.q.h
-    mips_msub_q_w,                             // llvm.mips.msub.q.w
-    mips_msubr_q_h,                            // llvm.mips.msubr.q.h
-    mips_msubr_q_w,                            // llvm.mips.msubr.q.w
-    mips_msubu,                                // llvm.mips.msubu
-    mips_msubv_b,                              // llvm.mips.msubv.b
-    mips_msubv_d,                              // llvm.mips.msubv.d
-    mips_msubv_h,                              // llvm.mips.msubv.h
-    mips_msubv_w,                              // llvm.mips.msubv.w
-    mips_mthlip,                               // llvm.mips.mthlip
-    mips_mul_ph,                               // llvm.mips.mul.ph
-    mips_mul_q_h,                              // llvm.mips.mul.q.h
-    mips_mul_q_w,                              // llvm.mips.mul.q.w
-    mips_mul_s_ph,                             // llvm.mips.mul.s.ph
-    mips_muleq_s_w_phl,                        // llvm.mips.muleq.s.w.phl
-    mips_muleq_s_w_phr,                        // llvm.mips.muleq.s.w.phr
-    mips_muleu_s_ph_qbl,                       // llvm.mips.muleu.s.ph.qbl
-    mips_muleu_s_ph_qbr,                       // llvm.mips.muleu.s.ph.qbr
-    mips_mulq_rs_ph,                           // llvm.mips.mulq.rs.ph
-    mips_mulq_rs_w,                            // llvm.mips.mulq.rs.w
-    mips_mulq_s_ph,                            // llvm.mips.mulq.s.ph
-    mips_mulq_s_w,                             // llvm.mips.mulq.s.w
-    mips_mulr_q_h,                             // llvm.mips.mulr.q.h
-    mips_mulr_q_w,                             // llvm.mips.mulr.q.w
-    mips_mulsa_w_ph,                           // llvm.mips.mulsa.w.ph
-    mips_mulsaq_s_w_ph,                        // llvm.mips.mulsaq.s.w.ph
-    mips_mult,                                 // llvm.mips.mult
-    mips_multu,                                // llvm.mips.multu
-    mips_mulv_b,                               // llvm.mips.mulv.b
-    mips_mulv_d,                               // llvm.mips.mulv.d
-    mips_mulv_h,                               // llvm.mips.mulv.h
-    mips_mulv_w,                               // llvm.mips.mulv.w
-    mips_nloc_b,                               // llvm.mips.nloc.b
-    mips_nloc_d,                               // llvm.mips.nloc.d
-    mips_nloc_h,                               // llvm.mips.nloc.h
-    mips_nloc_w,                               // llvm.mips.nloc.w
-    mips_nlzc_b,                               // llvm.mips.nlzc.b
-    mips_nlzc_d,                               // llvm.mips.nlzc.d
-    mips_nlzc_h,                               // llvm.mips.nlzc.h
-    mips_nlzc_w,                               // llvm.mips.nlzc.w
-    mips_nor_v,                                // llvm.mips.nor.v
-    mips_nori_b,                               // llvm.mips.nori.b
-    mips_or_v,                                 // llvm.mips.or.v
-    mips_ori_b,                                // llvm.mips.ori.b
-    mips_packrl_ph,                            // llvm.mips.packrl.ph
-    mips_pckev_b,                              // llvm.mips.pckev.b
-    mips_pckev_d,                              // llvm.mips.pckev.d
-    mips_pckev_h,                              // llvm.mips.pckev.h
-    mips_pckev_w,                              // llvm.mips.pckev.w
-    mips_pckod_b,                              // llvm.mips.pckod.b
-    mips_pckod_d,                              // llvm.mips.pckod.d
-    mips_pckod_h,                              // llvm.mips.pckod.h
-    mips_pckod_w,                              // llvm.mips.pckod.w
-    mips_pcnt_b,                               // llvm.mips.pcnt.b
-    mips_pcnt_d,                               // llvm.mips.pcnt.d
-    mips_pcnt_h,                               // llvm.mips.pcnt.h
-    mips_pcnt_w,                               // llvm.mips.pcnt.w
-    mips_pick_ph,                              // llvm.mips.pick.ph
-    mips_pick_qb,                              // llvm.mips.pick.qb
-    mips_preceq_w_phl,                         // llvm.mips.preceq.w.phl
-    mips_preceq_w_phr,                         // llvm.mips.preceq.w.phr
-    mips_precequ_ph_qbl,                       // llvm.mips.precequ.ph.qbl
-    mips_precequ_ph_qbla,                      // llvm.mips.precequ.ph.qbla
-    mips_precequ_ph_qbr,                       // llvm.mips.precequ.ph.qbr
-    mips_precequ_ph_qbra,                      // llvm.mips.precequ.ph.qbra
-    mips_preceu_ph_qbl,                        // llvm.mips.preceu.ph.qbl
-    mips_preceu_ph_qbla,                       // llvm.mips.preceu.ph.qbla
-    mips_preceu_ph_qbr,                        // llvm.mips.preceu.ph.qbr
-    mips_preceu_ph_qbra,                       // llvm.mips.preceu.ph.qbra
-    mips_precr_qb_ph,                          // llvm.mips.precr.qb.ph
-    mips_precr_sra_ph_w,                       // llvm.mips.precr.sra.ph.w
-    mips_precr_sra_r_ph_w,                     // llvm.mips.precr.sra.r.ph.w
-    mips_precrq_ph_w,                          // llvm.mips.precrq.ph.w
-    mips_precrq_qb_ph,                         // llvm.mips.precrq.qb.ph
-    mips_precrq_rs_ph_w,                       // llvm.mips.precrq.rs.ph.w
-    mips_precrqu_s_qb_ph,                      // llvm.mips.precrqu.s.qb.ph
-    mips_prepend,                              // llvm.mips.prepend
-    mips_raddu_w_qb,                           // llvm.mips.raddu.w.qb
-    mips_rddsp,                                // llvm.mips.rddsp
-    mips_repl_ph,                              // llvm.mips.repl.ph
-    mips_repl_qb,                              // llvm.mips.repl.qb
-    mips_sat_s_b,                              // llvm.mips.sat.s.b
-    mips_sat_s_d,                              // llvm.mips.sat.s.d
-    mips_sat_s_h,                              // llvm.mips.sat.s.h
-    mips_sat_s_w,                              // llvm.mips.sat.s.w
-    mips_sat_u_b,                              // llvm.mips.sat.u.b
-    mips_sat_u_d,                              // llvm.mips.sat.u.d
-    mips_sat_u_h,                              // llvm.mips.sat.u.h
-    mips_sat_u_w,                              // llvm.mips.sat.u.w
-    mips_shf_b,                                // llvm.mips.shf.b
-    mips_shf_h,                                // llvm.mips.shf.h
-    mips_shf_w,                                // llvm.mips.shf.w
-    mips_shilo,                                // llvm.mips.shilo
-    mips_shll_ph,                              // llvm.mips.shll.ph
-    mips_shll_qb,                              // llvm.mips.shll.qb
-    mips_shll_s_ph,                            // llvm.mips.shll.s.ph
-    mips_shll_s_w,                             // llvm.mips.shll.s.w
-    mips_shra_ph,                              // llvm.mips.shra.ph
-    mips_shra_qb,                              // llvm.mips.shra.qb
-    mips_shra_r_ph,                            // llvm.mips.shra.r.ph
-    mips_shra_r_qb,                            // llvm.mips.shra.r.qb
-    mips_shra_r_w,                             // llvm.mips.shra.r.w
-    mips_shrl_ph,                              // llvm.mips.shrl.ph
-    mips_shrl_qb,                              // llvm.mips.shrl.qb
-    mips_sld_b,                                // llvm.mips.sld.b
-    mips_sld_d,                                // llvm.mips.sld.d
-    mips_sld_h,                                // llvm.mips.sld.h
-    mips_sld_w,                                // llvm.mips.sld.w
-    mips_sldi_b,                               // llvm.mips.sldi.b
-    mips_sldi_d,                               // llvm.mips.sldi.d
-    mips_sldi_h,                               // llvm.mips.sldi.h
-    mips_sldi_w,                               // llvm.mips.sldi.w
-    mips_sll_b,                                // llvm.mips.sll.b
-    mips_sll_d,                                // llvm.mips.sll.d
-    mips_sll_h,                                // llvm.mips.sll.h
-    mips_sll_w,                                // llvm.mips.sll.w
-    mips_slli_b,                               // llvm.mips.slli.b
-    mips_slli_d,                               // llvm.mips.slli.d
-    mips_slli_h,                               // llvm.mips.slli.h
-    mips_slli_w,                               // llvm.mips.slli.w
-    mips_splat_b,                              // llvm.mips.splat.b
-    mips_splat_d,                              // llvm.mips.splat.d
-    mips_splat_h,                              // llvm.mips.splat.h
-    mips_splat_w,                              // llvm.mips.splat.w
-    mips_splati_b,                             // llvm.mips.splati.b
-    mips_splati_d,                             // llvm.mips.splati.d
-    mips_splati_h,                             // llvm.mips.splati.h
-    mips_splati_w,                             // llvm.mips.splati.w
-    mips_sra_b,                                // llvm.mips.sra.b
-    mips_sra_d,                                // llvm.mips.sra.d
-    mips_sra_h,                                // llvm.mips.sra.h
-    mips_sra_w,                                // llvm.mips.sra.w
-    mips_srai_b,                               // llvm.mips.srai.b
-    mips_srai_d,                               // llvm.mips.srai.d
-    mips_srai_h,                               // llvm.mips.srai.h
-    mips_srai_w,                               // llvm.mips.srai.w
-    mips_srar_b,                               // llvm.mips.srar.b
-    mips_srar_d,                               // llvm.mips.srar.d
-    mips_srar_h,                               // llvm.mips.srar.h
-    mips_srar_w,                               // llvm.mips.srar.w
-    mips_srari_b,                              // llvm.mips.srari.b
-    mips_srari_d,                              // llvm.mips.srari.d
-    mips_srari_h,                              // llvm.mips.srari.h
-    mips_srari_w,                              // llvm.mips.srari.w
-    mips_srl_b,                                // llvm.mips.srl.b
-    mips_srl_d,                                // llvm.mips.srl.d
-    mips_srl_h,                                // llvm.mips.srl.h
-    mips_srl_w,                                // llvm.mips.srl.w
-    mips_srli_b,                               // llvm.mips.srli.b
-    mips_srli_d,                               // llvm.mips.srli.d
-    mips_srli_h,                               // llvm.mips.srli.h
-    mips_srli_w,                               // llvm.mips.srli.w
-    mips_srlr_b,                               // llvm.mips.srlr.b
-    mips_srlr_d,                               // llvm.mips.srlr.d
-    mips_srlr_h,                               // llvm.mips.srlr.h
-    mips_srlr_w,                               // llvm.mips.srlr.w
-    mips_srlri_b,                              // llvm.mips.srlri.b
-    mips_srlri_d,                              // llvm.mips.srlri.d
-    mips_srlri_h,                              // llvm.mips.srlri.h
-    mips_srlri_w,                              // llvm.mips.srlri.w
-    mips_st_b,                                 // llvm.mips.st.b
-    mips_st_d,                                 // llvm.mips.st.d
-    mips_st_h,                                 // llvm.mips.st.h
-    mips_st_w,                                 // llvm.mips.st.w
-    mips_subq_ph,                              // llvm.mips.subq.ph
-    mips_subq_s_ph,                            // llvm.mips.subq.s.ph
-    mips_subq_s_w,                             // llvm.mips.subq.s.w
-    mips_subqh_ph,                             // llvm.mips.subqh.ph
-    mips_subqh_r_ph,                           // llvm.mips.subqh.r.ph
-    mips_subqh_r_w,                            // llvm.mips.subqh.r.w
-    mips_subqh_w,                              // llvm.mips.subqh.w
-    mips_subs_s_b,                             // llvm.mips.subs.s.b
-    mips_subs_s_d,                             // llvm.mips.subs.s.d
-    mips_subs_s_h,                             // llvm.mips.subs.s.h
-    mips_subs_s_w,                             // llvm.mips.subs.s.w
-    mips_subs_u_b,                             // llvm.mips.subs.u.b
-    mips_subs_u_d,                             // llvm.mips.subs.u.d
-    mips_subs_u_h,                             // llvm.mips.subs.u.h
-    mips_subs_u_w,                             // llvm.mips.subs.u.w
-    mips_subsus_u_b,                           // llvm.mips.subsus.u.b
-    mips_subsus_u_d,                           // llvm.mips.subsus.u.d
-    mips_subsus_u_h,                           // llvm.mips.subsus.u.h
-    mips_subsus_u_w,                           // llvm.mips.subsus.u.w
-    mips_subsuu_s_b,                           // llvm.mips.subsuu.s.b
-    mips_subsuu_s_d,                           // llvm.mips.subsuu.s.d
-    mips_subsuu_s_h,                           // llvm.mips.subsuu.s.h
-    mips_subsuu_s_w,                           // llvm.mips.subsuu.s.w
-    mips_subu_ph,                              // llvm.mips.subu.ph
-    mips_subu_qb,                              // llvm.mips.subu.qb
-    mips_subu_s_ph,                            // llvm.mips.subu.s.ph
-    mips_subu_s_qb,                            // llvm.mips.subu.s.qb
-    mips_subuh_qb,                             // llvm.mips.subuh.qb
-    mips_subuh_r_qb,                           // llvm.mips.subuh.r.qb
-    mips_subv_b,                               // llvm.mips.subv.b
-    mips_subv_d,                               // llvm.mips.subv.d
-    mips_subv_h,                               // llvm.mips.subv.h
-    mips_subv_w,                               // llvm.mips.subv.w
-    mips_subvi_b,                              // llvm.mips.subvi.b
-    mips_subvi_d,                              // llvm.mips.subvi.d
-    mips_subvi_h,                              // llvm.mips.subvi.h
-    mips_subvi_w,                              // llvm.mips.subvi.w
-    mips_vshf_b,                               // llvm.mips.vshf.b
-    mips_vshf_d,                               // llvm.mips.vshf.d
-    mips_vshf_h,                               // llvm.mips.vshf.h
-    mips_vshf_w,                               // llvm.mips.vshf.w
-    mips_wrdsp,                                // llvm.mips.wrdsp
-    mips_xor_v,                                // llvm.mips.xor.v
-    mips_xori_b,                               // llvm.mips.xori.b
-    nvvm_add_rm_d,                             // llvm.nvvm.add.rm.d
-    nvvm_add_rm_f,                             // llvm.nvvm.add.rm.f
-    nvvm_add_rm_ftz_f,                         // llvm.nvvm.add.rm.ftz.f
-    nvvm_add_rn_d,                             // llvm.nvvm.add.rn.d
-    nvvm_add_rn_f,                             // llvm.nvvm.add.rn.f
-    nvvm_add_rn_ftz_f,                         // llvm.nvvm.add.rn.ftz.f
-    nvvm_add_rp_d,                             // llvm.nvvm.add.rp.d
-    nvvm_add_rp_f,                             // llvm.nvvm.add.rp.f
-    nvvm_add_rp_ftz_f,                         // llvm.nvvm.add.rp.ftz.f
-    nvvm_add_rz_d,                             // llvm.nvvm.add.rz.d
-    nvvm_add_rz_f,                             // llvm.nvvm.add.rz.f
-    nvvm_add_rz_ftz_f,                         // llvm.nvvm.add.rz.ftz.f
-    nvvm_atomic_add_gen_f_cta,                 // llvm.nvvm.atomic.add.gen.f.cta
-    nvvm_atomic_add_gen_f_sys,                 // llvm.nvvm.atomic.add.gen.f.sys
-    nvvm_atomic_add_gen_i_cta,                 // llvm.nvvm.atomic.add.gen.i.cta
-    nvvm_atomic_add_gen_i_sys,                 // llvm.nvvm.atomic.add.gen.i.sys
-    nvvm_atomic_and_gen_i_cta,                 // llvm.nvvm.atomic.and.gen.i.cta
-    nvvm_atomic_and_gen_i_sys,                 // llvm.nvvm.atomic.and.gen.i.sys
-    nvvm_atomic_cas_gen_i_cta,                 // llvm.nvvm.atomic.cas.gen.i.cta
-    nvvm_atomic_cas_gen_i_sys,                 // llvm.nvvm.atomic.cas.gen.i.sys
-    nvvm_atomic_dec_gen_i_cta,                 // llvm.nvvm.atomic.dec.gen.i.cta
-    nvvm_atomic_dec_gen_i_sys,                 // llvm.nvvm.atomic.dec.gen.i.sys
-    nvvm_atomic_exch_gen_i_cta,                // llvm.nvvm.atomic.exch.gen.i.cta
-    nvvm_atomic_exch_gen_i_sys,                // llvm.nvvm.atomic.exch.gen.i.sys
-    nvvm_atomic_inc_gen_i_cta,                 // llvm.nvvm.atomic.inc.gen.i.cta
-    nvvm_atomic_inc_gen_i_sys,                 // llvm.nvvm.atomic.inc.gen.i.sys
-    nvvm_atomic_load_add_f32,                  // llvm.nvvm.atomic.load.add.f32
-    nvvm_atomic_load_add_f64,                  // llvm.nvvm.atomic.load.add.f64
-    nvvm_atomic_load_dec_32,                   // llvm.nvvm.atomic.load.dec.32
-    nvvm_atomic_load_inc_32,                   // llvm.nvvm.atomic.load.inc.32
-    nvvm_atomic_max_gen_i_cta,                 // llvm.nvvm.atomic.max.gen.i.cta
-    nvvm_atomic_max_gen_i_sys,                 // llvm.nvvm.atomic.max.gen.i.sys
-    nvvm_atomic_min_gen_i_cta,                 // llvm.nvvm.atomic.min.gen.i.cta
-    nvvm_atomic_min_gen_i_sys,                 // llvm.nvvm.atomic.min.gen.i.sys
-    nvvm_atomic_or_gen_i_cta,                  // llvm.nvvm.atomic.or.gen.i.cta
-    nvvm_atomic_or_gen_i_sys,                  // llvm.nvvm.atomic.or.gen.i.sys
-    nvvm_atomic_xor_gen_i_cta,                 // llvm.nvvm.atomic.xor.gen.i.cta
-    nvvm_atomic_xor_gen_i_sys,                 // llvm.nvvm.atomic.xor.gen.i.sys
-    nvvm_bar_sync,                             // llvm.nvvm.bar.sync
-    nvvm_bar_warp_sync,                        // llvm.nvvm.bar.warp.sync
-    nvvm_barrier,                              // llvm.nvvm.barrier
-    nvvm_barrier_n,                            // llvm.nvvm.barrier.n
-    nvvm_barrier_sync,                         // llvm.nvvm.barrier.sync
-    nvvm_barrier_sync_cnt,                     // llvm.nvvm.barrier.sync.cnt
-    nvvm_barrier0,                             // llvm.nvvm.barrier0
-    nvvm_barrier0_and,                         // llvm.nvvm.barrier0.and
-    nvvm_barrier0_or,                          // llvm.nvvm.barrier0.or
-    nvvm_barrier0_popc,                        // llvm.nvvm.barrier0.popc
-    nvvm_bitcast_d2ll,                         // llvm.nvvm.bitcast.d2ll
-    nvvm_bitcast_f2i,                          // llvm.nvvm.bitcast.f2i
-    nvvm_bitcast_i2f,                          // llvm.nvvm.bitcast.i2f
-    nvvm_bitcast_ll2d,                         // llvm.nvvm.bitcast.ll2d
-    nvvm_ceil_d,                               // llvm.nvvm.ceil.d
-    nvvm_ceil_f,                               // llvm.nvvm.ceil.f
-    nvvm_ceil_ftz_f,                           // llvm.nvvm.ceil.ftz.f
-    nvvm_compiler_error,                       // llvm.nvvm.compiler.error
-    nvvm_compiler_warn,                        // llvm.nvvm.compiler.warn
-    nvvm_cos_approx_f,                         // llvm.nvvm.cos.approx.f
-    nvvm_cos_approx_ftz_f,                     // llvm.nvvm.cos.approx.ftz.f
-    nvvm_d2f_rm,                               // llvm.nvvm.d2f.rm
-    nvvm_d2f_rm_ftz,                           // llvm.nvvm.d2f.rm.ftz
-    nvvm_d2f_rn,                               // llvm.nvvm.d2f.rn
-    nvvm_d2f_rn_ftz,                           // llvm.nvvm.d2f.rn.ftz
-    nvvm_d2f_rp,                               // llvm.nvvm.d2f.rp
-    nvvm_d2f_rp_ftz,                           // llvm.nvvm.d2f.rp.ftz
-    nvvm_d2f_rz,                               // llvm.nvvm.d2f.rz
-    nvvm_d2f_rz_ftz,                           // llvm.nvvm.d2f.rz.ftz
-    nvvm_d2i_hi,                               // llvm.nvvm.d2i.hi
-    nvvm_d2i_lo,                               // llvm.nvvm.d2i.lo
-    nvvm_d2i_rm,                               // llvm.nvvm.d2i.rm
-    nvvm_d2i_rn,                               // llvm.nvvm.d2i.rn
-    nvvm_d2i_rp,                               // llvm.nvvm.d2i.rp
-    nvvm_d2i_rz,                               // llvm.nvvm.d2i.rz
-    nvvm_d2ll_rm,                              // llvm.nvvm.d2ll.rm
-    nvvm_d2ll_rn,                              // llvm.nvvm.d2ll.rn
-    nvvm_d2ll_rp,                              // llvm.nvvm.d2ll.rp
-    nvvm_d2ll_rz,                              // llvm.nvvm.d2ll.rz
-    nvvm_d2ui_rm,                              // llvm.nvvm.d2ui.rm
-    nvvm_d2ui_rn,                              // llvm.nvvm.d2ui.rn
-    nvvm_d2ui_rp,                              // llvm.nvvm.d2ui.rp
-    nvvm_d2ui_rz,                              // llvm.nvvm.d2ui.rz
-    nvvm_d2ull_rm,                             // llvm.nvvm.d2ull.rm
-    nvvm_d2ull_rn,                             // llvm.nvvm.d2ull.rn
-    nvvm_d2ull_rp,                             // llvm.nvvm.d2ull.rp
-    nvvm_d2ull_rz,                             // llvm.nvvm.d2ull.rz
-    nvvm_div_approx_f,                         // llvm.nvvm.div.approx.f
-    nvvm_div_approx_ftz_f,                     // llvm.nvvm.div.approx.ftz.f
-    nvvm_div_rm_d,                             // llvm.nvvm.div.rm.d
-    nvvm_div_rm_f,                             // llvm.nvvm.div.rm.f
-    nvvm_div_rm_ftz_f,                         // llvm.nvvm.div.rm.ftz.f
-    nvvm_div_rn_d,                             // llvm.nvvm.div.rn.d
-    nvvm_div_rn_f,                             // llvm.nvvm.div.rn.f
-    nvvm_div_rn_ftz_f,                         // llvm.nvvm.div.rn.ftz.f
-    nvvm_div_rp_d,                             // llvm.nvvm.div.rp.d
-    nvvm_div_rp_f,                             // llvm.nvvm.div.rp.f
-    nvvm_div_rp_ftz_f,                         // llvm.nvvm.div.rp.ftz.f
-    nvvm_div_rz_d,                             // llvm.nvvm.div.rz.d
-    nvvm_div_rz_f,                             // llvm.nvvm.div.rz.f
-    nvvm_div_rz_ftz_f,                         // llvm.nvvm.div.rz.ftz.f
-    nvvm_ex2_approx_d,                         // llvm.nvvm.ex2.approx.d
-    nvvm_ex2_approx_f,                         // llvm.nvvm.ex2.approx.f
-    nvvm_ex2_approx_ftz_f,                     // llvm.nvvm.ex2.approx.ftz.f
-    nvvm_f2h_rn,                               // llvm.nvvm.f2h.rn
-    nvvm_f2h_rn_ftz,                           // llvm.nvvm.f2h.rn.ftz
-    nvvm_f2i_rm,                               // llvm.nvvm.f2i.rm
-    nvvm_f2i_rm_ftz,                           // llvm.nvvm.f2i.rm.ftz
-    nvvm_f2i_rn,                               // llvm.nvvm.f2i.rn
-    nvvm_f2i_rn_ftz,                           // llvm.nvvm.f2i.rn.ftz
-    nvvm_f2i_rp,                               // llvm.nvvm.f2i.rp
-    nvvm_f2i_rp_ftz,                           // llvm.nvvm.f2i.rp.ftz
-    nvvm_f2i_rz,                               // llvm.nvvm.f2i.rz
-    nvvm_f2i_rz_ftz,                           // llvm.nvvm.f2i.rz.ftz
-    nvvm_f2ll_rm,                              // llvm.nvvm.f2ll.rm
-    nvvm_f2ll_rm_ftz,                          // llvm.nvvm.f2ll.rm.ftz
-    nvvm_f2ll_rn,                              // llvm.nvvm.f2ll.rn
-    nvvm_f2ll_rn_ftz,                          // llvm.nvvm.f2ll.rn.ftz
-    nvvm_f2ll_rp,                              // llvm.nvvm.f2ll.rp
-    nvvm_f2ll_rp_ftz,                          // llvm.nvvm.f2ll.rp.ftz
-    nvvm_f2ll_rz,                              // llvm.nvvm.f2ll.rz
-    nvvm_f2ll_rz_ftz,                          // llvm.nvvm.f2ll.rz.ftz
-    nvvm_f2ui_rm,                              // llvm.nvvm.f2ui.rm
-    nvvm_f2ui_rm_ftz,                          // llvm.nvvm.f2ui.rm.ftz
-    nvvm_f2ui_rn,                              // llvm.nvvm.f2ui.rn
-    nvvm_f2ui_rn_ftz,                          // llvm.nvvm.f2ui.rn.ftz
-    nvvm_f2ui_rp,                              // llvm.nvvm.f2ui.rp
-    nvvm_f2ui_rp_ftz,                          // llvm.nvvm.f2ui.rp.ftz
-    nvvm_f2ui_rz,                              // llvm.nvvm.f2ui.rz
-    nvvm_f2ui_rz_ftz,                          // llvm.nvvm.f2ui.rz.ftz
-    nvvm_f2ull_rm,                             // llvm.nvvm.f2ull.rm
-    nvvm_f2ull_rm_ftz,                         // llvm.nvvm.f2ull.rm.ftz
-    nvvm_f2ull_rn,                             // llvm.nvvm.f2ull.rn
-    nvvm_f2ull_rn_ftz,                         // llvm.nvvm.f2ull.rn.ftz
-    nvvm_f2ull_rp,                             // llvm.nvvm.f2ull.rp
-    nvvm_f2ull_rp_ftz,                         // llvm.nvvm.f2ull.rp.ftz
-    nvvm_f2ull_rz,                             // llvm.nvvm.f2ull.rz
-    nvvm_f2ull_rz_ftz,                         // llvm.nvvm.f2ull.rz.ftz
-    nvvm_fabs_d,                               // llvm.nvvm.fabs.d
-    nvvm_fabs_f,                               // llvm.nvvm.fabs.f
-    nvvm_fabs_ftz_f,                           // llvm.nvvm.fabs.ftz.f
-    nvvm_floor_d,                              // llvm.nvvm.floor.d
-    nvvm_floor_f,                              // llvm.nvvm.floor.f
-    nvvm_floor_ftz_f,                          // llvm.nvvm.floor.ftz.f
-    nvvm_fma_rm_d,                             // llvm.nvvm.fma.rm.d
-    nvvm_fma_rm_f,                             // llvm.nvvm.fma.rm.f
-    nvvm_fma_rm_ftz_f,                         // llvm.nvvm.fma.rm.ftz.f
-    nvvm_fma_rn_d,                             // llvm.nvvm.fma.rn.d
-    nvvm_fma_rn_f,                             // llvm.nvvm.fma.rn.f
-    nvvm_fma_rn_ftz_f,                         // llvm.nvvm.fma.rn.ftz.f
-    nvvm_fma_rp_d,                             // llvm.nvvm.fma.rp.d
-    nvvm_fma_rp_f,                             // llvm.nvvm.fma.rp.f
-    nvvm_fma_rp_ftz_f,                         // llvm.nvvm.fma.rp.ftz.f
-    nvvm_fma_rz_d,                             // llvm.nvvm.fma.rz.d
-    nvvm_fma_rz_f,                             // llvm.nvvm.fma.rz.f
-    nvvm_fma_rz_ftz_f,                         // llvm.nvvm.fma.rz.ftz.f
-    nvvm_fmax_d,                               // llvm.nvvm.fmax.d
-    nvvm_fmax_f,                               // llvm.nvvm.fmax.f
-    nvvm_fmax_ftz_f,                           // llvm.nvvm.fmax.ftz.f
-    nvvm_fmin_d,                               // llvm.nvvm.fmin.d
-    nvvm_fmin_f,                               // llvm.nvvm.fmin.f
-    nvvm_fmin_ftz_f,                           // llvm.nvvm.fmin.ftz.f
-    nvvm_fns,                                  // llvm.nvvm.fns
-    nvvm_i2d_rm,                               // llvm.nvvm.i2d.rm
-    nvvm_i2d_rn,                               // llvm.nvvm.i2d.rn
-    nvvm_i2d_rp,                               // llvm.nvvm.i2d.rp
-    nvvm_i2d_rz,                               // llvm.nvvm.i2d.rz
-    nvvm_i2f_rm,                               // llvm.nvvm.i2f.rm
-    nvvm_i2f_rn,                               // llvm.nvvm.i2f.rn
-    nvvm_i2f_rp,                               // llvm.nvvm.i2f.rp
-    nvvm_i2f_rz,                               // llvm.nvvm.i2f.rz
-    nvvm_isspacep_const,                       // llvm.nvvm.isspacep.const
-    nvvm_isspacep_global,                      // llvm.nvvm.isspacep.global
-    nvvm_isspacep_local,                       // llvm.nvvm.isspacep.local
-    nvvm_isspacep_shared,                      // llvm.nvvm.isspacep.shared
-    nvvm_istypep_sampler,                      // llvm.nvvm.istypep.sampler
-    nvvm_istypep_surface,                      // llvm.nvvm.istypep.surface
-    nvvm_istypep_texture,                      // llvm.nvvm.istypep.texture
-    nvvm_ldg_global_f,                         // llvm.nvvm.ldg.global.f
-    nvvm_ldg_global_i,                         // llvm.nvvm.ldg.global.i
-    nvvm_ldg_global_p,                         // llvm.nvvm.ldg.global.p
-    nvvm_ldu_global_f,                         // llvm.nvvm.ldu.global.f
-    nvvm_ldu_global_i,                         // llvm.nvvm.ldu.global.i
-    nvvm_ldu_global_p,                         // llvm.nvvm.ldu.global.p
-    nvvm_lg2_approx_d,                         // llvm.nvvm.lg2.approx.d
-    nvvm_lg2_approx_f,                         // llvm.nvvm.lg2.approx.f
-    nvvm_lg2_approx_ftz_f,                     // llvm.nvvm.lg2.approx.ftz.f
-    nvvm_ll2d_rm,                              // llvm.nvvm.ll2d.rm
-    nvvm_ll2d_rn,                              // llvm.nvvm.ll2d.rn
-    nvvm_ll2d_rp,                              // llvm.nvvm.ll2d.rp
-    nvvm_ll2d_rz,                              // llvm.nvvm.ll2d.rz
-    nvvm_ll2f_rm,                              // llvm.nvvm.ll2f.rm
-    nvvm_ll2f_rn,                              // llvm.nvvm.ll2f.rn
-    nvvm_ll2f_rp,                              // llvm.nvvm.ll2f.rp
-    nvvm_ll2f_rz,                              // llvm.nvvm.ll2f.rz
-    nvvm_lohi_i2d,                             // llvm.nvvm.lohi.i2d
-    nvvm_match_all_sync_i32p,                  // llvm.nvvm.match.all.sync.i32p
-    nvvm_match_all_sync_i64p,                  // llvm.nvvm.match.all.sync.i64p
-    nvvm_match_any_sync_i32,                   // llvm.nvvm.match.any.sync.i32
-    nvvm_match_any_sync_i64,                   // llvm.nvvm.match.any.sync.i64
-    nvvm_membar_cta,                           // llvm.nvvm.membar.cta
-    nvvm_membar_gl,                            // llvm.nvvm.membar.gl
-    nvvm_membar_sys,                           // llvm.nvvm.membar.sys
-    nvvm_move_double,                          // llvm.nvvm.move.double
-    nvvm_move_float,                           // llvm.nvvm.move.float
-    nvvm_move_i16,                             // llvm.nvvm.move.i16
-    nvvm_move_i32,                             // llvm.nvvm.move.i32
-    nvvm_move_i64,                             // llvm.nvvm.move.i64
-    nvvm_move_ptr,                             // llvm.nvvm.move.ptr
-    nvvm_mul_rm_d,                             // llvm.nvvm.mul.rm.d
-    nvvm_mul_rm_f,                             // llvm.nvvm.mul.rm.f
-    nvvm_mul_rm_ftz_f,                         // llvm.nvvm.mul.rm.ftz.f
-    nvvm_mul_rn_d,                             // llvm.nvvm.mul.rn.d
-    nvvm_mul_rn_f,                             // llvm.nvvm.mul.rn.f
-    nvvm_mul_rn_ftz_f,                         // llvm.nvvm.mul.rn.ftz.f
-    nvvm_mul_rp_d,                             // llvm.nvvm.mul.rp.d
-    nvvm_mul_rp_f,                             // llvm.nvvm.mul.rp.f
-    nvvm_mul_rp_ftz_f,                         // llvm.nvvm.mul.rp.ftz.f
-    nvvm_mul_rz_d,                             // llvm.nvvm.mul.rz.d
-    nvvm_mul_rz_f,                             // llvm.nvvm.mul.rz.f
-    nvvm_mul_rz_ftz_f,                         // llvm.nvvm.mul.rz.ftz.f
-    nvvm_mul24_i,                              // llvm.nvvm.mul24.i
-    nvvm_mul24_ui,                             // llvm.nvvm.mul24.ui
-    nvvm_mulhi_i,                              // llvm.nvvm.mulhi.i
-    nvvm_mulhi_ll,                             // llvm.nvvm.mulhi.ll
-    nvvm_mulhi_ui,                             // llvm.nvvm.mulhi.ui
-    nvvm_mulhi_ull,                            // llvm.nvvm.mulhi.ull
-    nvvm_prmt,                                 // llvm.nvvm.prmt
-    nvvm_ptr_constant_to_gen,                  // llvm.nvvm.ptr.constant.to.gen
-    nvvm_ptr_gen_to_constant,                  // llvm.nvvm.ptr.gen.to.constant
-    nvvm_ptr_gen_to_global,                    // llvm.nvvm.ptr.gen.to.global
-    nvvm_ptr_gen_to_local,                     // llvm.nvvm.ptr.gen.to.local
-    nvvm_ptr_gen_to_param,                     // llvm.nvvm.ptr.gen.to.param
-    nvvm_ptr_gen_to_shared,                    // llvm.nvvm.ptr.gen.to.shared
-    nvvm_ptr_global_to_gen,                    // llvm.nvvm.ptr.global.to.gen
-    nvvm_ptr_local_to_gen,                     // llvm.nvvm.ptr.local.to.gen
-    nvvm_ptr_shared_to_gen,                    // llvm.nvvm.ptr.shared.to.gen
-    nvvm_rcp_approx_ftz_d,                     // llvm.nvvm.rcp.approx.ftz.d
-    nvvm_rcp_rm_d,                             // llvm.nvvm.rcp.rm.d
-    nvvm_rcp_rm_f,                             // llvm.nvvm.rcp.rm.f
-    nvvm_rcp_rm_ftz_f,                         // llvm.nvvm.rcp.rm.ftz.f
-    nvvm_rcp_rn_d,                             // llvm.nvvm.rcp.rn.d
-    nvvm_rcp_rn_f,                             // llvm.nvvm.rcp.rn.f
-    nvvm_rcp_rn_ftz_f,                         // llvm.nvvm.rcp.rn.ftz.f
-    nvvm_rcp_rp_d,                             // llvm.nvvm.rcp.rp.d
-    nvvm_rcp_rp_f,                             // llvm.nvvm.rcp.rp.f
-    nvvm_rcp_rp_ftz_f,                         // llvm.nvvm.rcp.rp.ftz.f
-    nvvm_rcp_rz_d,                             // llvm.nvvm.rcp.rz.d
-    nvvm_rcp_rz_f,                             // llvm.nvvm.rcp.rz.f
-    nvvm_rcp_rz_ftz_f,                         // llvm.nvvm.rcp.rz.ftz.f
-    nvvm_read_ptx_sreg_clock,                  // llvm.nvvm.read.ptx.sreg.clock
-    nvvm_read_ptx_sreg_clock64,                // llvm.nvvm.read.ptx.sreg.clock64
-    nvvm_read_ptx_sreg_ctaid_w,                // llvm.nvvm.read.ptx.sreg.ctaid.w
-    nvvm_read_ptx_sreg_ctaid_x,                // llvm.nvvm.read.ptx.sreg.ctaid.x
-    nvvm_read_ptx_sreg_ctaid_y,                // llvm.nvvm.read.ptx.sreg.ctaid.y
-    nvvm_read_ptx_sreg_ctaid_z,                // llvm.nvvm.read.ptx.sreg.ctaid.z
-    nvvm_read_ptx_sreg_envreg0,                // llvm.nvvm.read.ptx.sreg.envreg0
-    nvvm_read_ptx_sreg_envreg1,                // llvm.nvvm.read.ptx.sreg.envreg1
-    nvvm_read_ptx_sreg_envreg10,               // llvm.nvvm.read.ptx.sreg.envreg10
-    nvvm_read_ptx_sreg_envreg11,               // llvm.nvvm.read.ptx.sreg.envreg11
-    nvvm_read_ptx_sreg_envreg12,               // llvm.nvvm.read.ptx.sreg.envreg12
-    nvvm_read_ptx_sreg_envreg13,               // llvm.nvvm.read.ptx.sreg.envreg13
-    nvvm_read_ptx_sreg_envreg14,               // llvm.nvvm.read.ptx.sreg.envreg14
-    nvvm_read_ptx_sreg_envreg15,               // llvm.nvvm.read.ptx.sreg.envreg15
-    nvvm_read_ptx_sreg_envreg16,               // llvm.nvvm.read.ptx.sreg.envreg16
-    nvvm_read_ptx_sreg_envreg17,               // llvm.nvvm.read.ptx.sreg.envreg17
-    nvvm_read_ptx_sreg_envreg18,               // llvm.nvvm.read.ptx.sreg.envreg18
-    nvvm_read_ptx_sreg_envreg19,               // llvm.nvvm.read.ptx.sreg.envreg19
-    nvvm_read_ptx_sreg_envreg2,                // llvm.nvvm.read.ptx.sreg.envreg2
-    nvvm_read_ptx_sreg_envreg20,               // llvm.nvvm.read.ptx.sreg.envreg20
-    nvvm_read_ptx_sreg_envreg21,               // llvm.nvvm.read.ptx.sreg.envreg21
-    nvvm_read_ptx_sreg_envreg22,               // llvm.nvvm.read.ptx.sreg.envreg22
-    nvvm_read_ptx_sreg_envreg23,               // llvm.nvvm.read.ptx.sreg.envreg23
-    nvvm_read_ptx_sreg_envreg24,               // llvm.nvvm.read.ptx.sreg.envreg24
-    nvvm_read_ptx_sreg_envreg25,               // llvm.nvvm.read.ptx.sreg.envreg25
-    nvvm_read_ptx_sreg_envreg26,               // llvm.nvvm.read.ptx.sreg.envreg26
-    nvvm_read_ptx_sreg_envreg27,               // llvm.nvvm.read.ptx.sreg.envreg27
-    nvvm_read_ptx_sreg_envreg28,               // llvm.nvvm.read.ptx.sreg.envreg28
-    nvvm_read_ptx_sreg_envreg29,               // llvm.nvvm.read.ptx.sreg.envreg29
-    nvvm_read_ptx_sreg_envreg3,                // llvm.nvvm.read.ptx.sreg.envreg3
-    nvvm_read_ptx_sreg_envreg30,               // llvm.nvvm.read.ptx.sreg.envreg30
-    nvvm_read_ptx_sreg_envreg31,               // llvm.nvvm.read.ptx.sreg.envreg31
-    nvvm_read_ptx_sreg_envreg4,                // llvm.nvvm.read.ptx.sreg.envreg4
-    nvvm_read_ptx_sreg_envreg5,                // llvm.nvvm.read.ptx.sreg.envreg5
-    nvvm_read_ptx_sreg_envreg6,                // llvm.nvvm.read.ptx.sreg.envreg6
-    nvvm_read_ptx_sreg_envreg7,                // llvm.nvvm.read.ptx.sreg.envreg7
-    nvvm_read_ptx_sreg_envreg8,                // llvm.nvvm.read.ptx.sreg.envreg8
-    nvvm_read_ptx_sreg_envreg9,                // llvm.nvvm.read.ptx.sreg.envreg9
-    nvvm_read_ptx_sreg_gridid,                 // llvm.nvvm.read.ptx.sreg.gridid
-    nvvm_read_ptx_sreg_laneid,                 // llvm.nvvm.read.ptx.sreg.laneid
-    nvvm_read_ptx_sreg_lanemask_eq,            // llvm.nvvm.read.ptx.sreg.lanemask.eq
-    nvvm_read_ptx_sreg_lanemask_ge,            // llvm.nvvm.read.ptx.sreg.lanemask.ge
-    nvvm_read_ptx_sreg_lanemask_gt,            // llvm.nvvm.read.ptx.sreg.lanemask.gt
-    nvvm_read_ptx_sreg_lanemask_le,            // llvm.nvvm.read.ptx.sreg.lanemask.le
-    nvvm_read_ptx_sreg_lanemask_lt,            // llvm.nvvm.read.ptx.sreg.lanemask.lt
-    nvvm_read_ptx_sreg_nctaid_w,               // llvm.nvvm.read.ptx.sreg.nctaid.w
-    nvvm_read_ptx_sreg_nctaid_x,               // llvm.nvvm.read.ptx.sreg.nctaid.x
-    nvvm_read_ptx_sreg_nctaid_y,               // llvm.nvvm.read.ptx.sreg.nctaid.y
-    nvvm_read_ptx_sreg_nctaid_z,               // llvm.nvvm.read.ptx.sreg.nctaid.z
-    nvvm_read_ptx_sreg_nsmid,                  // llvm.nvvm.read.ptx.sreg.nsmid
-    nvvm_read_ptx_sreg_ntid_w,                 // llvm.nvvm.read.ptx.sreg.ntid.w
-    nvvm_read_ptx_sreg_ntid_x,                 // llvm.nvvm.read.ptx.sreg.ntid.x
-    nvvm_read_ptx_sreg_ntid_y,                 // llvm.nvvm.read.ptx.sreg.ntid.y
-    nvvm_read_ptx_sreg_ntid_z,                 // llvm.nvvm.read.ptx.sreg.ntid.z
-    nvvm_read_ptx_sreg_nwarpid,                // llvm.nvvm.read.ptx.sreg.nwarpid
-    nvvm_read_ptx_sreg_pm0,                    // llvm.nvvm.read.ptx.sreg.pm0
-    nvvm_read_ptx_sreg_pm1,                    // llvm.nvvm.read.ptx.sreg.pm1
-    nvvm_read_ptx_sreg_pm2,                    // llvm.nvvm.read.ptx.sreg.pm2
-    nvvm_read_ptx_sreg_pm3,                    // llvm.nvvm.read.ptx.sreg.pm3
-    nvvm_read_ptx_sreg_smid,                   // llvm.nvvm.read.ptx.sreg.smid
-    nvvm_read_ptx_sreg_tid_w,                  // llvm.nvvm.read.ptx.sreg.tid.w
-    nvvm_read_ptx_sreg_tid_x,                  // llvm.nvvm.read.ptx.sreg.tid.x
-    nvvm_read_ptx_sreg_tid_y,                  // llvm.nvvm.read.ptx.sreg.tid.y
-    nvvm_read_ptx_sreg_tid_z,                  // llvm.nvvm.read.ptx.sreg.tid.z
-    nvvm_read_ptx_sreg_warpid,                 // llvm.nvvm.read.ptx.sreg.warpid
-    nvvm_read_ptx_sreg_warpsize,               // llvm.nvvm.read.ptx.sreg.warpsize
-    nvvm_reflect,                              // llvm.nvvm.reflect
-    nvvm_rotate_b32,                           // llvm.nvvm.rotate.b32
-    nvvm_rotate_b64,                           // llvm.nvvm.rotate.b64
-    nvvm_rotate_right_b64,                     // llvm.nvvm.rotate.right.b64
-    nvvm_round_d,                              // llvm.nvvm.round.d
-    nvvm_round_f,                              // llvm.nvvm.round.f
-    nvvm_round_ftz_f,                          // llvm.nvvm.round.ftz.f
-    nvvm_rsqrt_approx_d,                       // llvm.nvvm.rsqrt.approx.d
-    nvvm_rsqrt_approx_f,                       // llvm.nvvm.rsqrt.approx.f
-    nvvm_rsqrt_approx_ftz_f,                   // llvm.nvvm.rsqrt.approx.ftz.f
-    nvvm_sad_i,                                // llvm.nvvm.sad.i
-    nvvm_sad_ui,                               // llvm.nvvm.sad.ui
-    nvvm_saturate_d,                           // llvm.nvvm.saturate.d
-    nvvm_saturate_f,                           // llvm.nvvm.saturate.f
-    nvvm_saturate_ftz_f,                       // llvm.nvvm.saturate.ftz.f
-    nvvm_shfl_bfly_f32,                        // llvm.nvvm.shfl.bfly.f32
-    nvvm_shfl_bfly_i32,                        // llvm.nvvm.shfl.bfly.i32
-    nvvm_shfl_down_f32,                        // llvm.nvvm.shfl.down.f32
-    nvvm_shfl_down_i32,                        // llvm.nvvm.shfl.down.i32
-    nvvm_shfl_idx_f32,                         // llvm.nvvm.shfl.idx.f32
-    nvvm_shfl_idx_i32,                         // llvm.nvvm.shfl.idx.i32
-    nvvm_shfl_sync_bfly_f32,                   // llvm.nvvm.shfl.sync.bfly.f32
-    nvvm_shfl_sync_bfly_i32,                   // llvm.nvvm.shfl.sync.bfly.i32
-    nvvm_shfl_sync_down_f32,                   // llvm.nvvm.shfl.sync.down.f32
-    nvvm_shfl_sync_down_i32,                   // llvm.nvvm.shfl.sync.down.i32
-    nvvm_shfl_sync_idx_f32,                    // llvm.nvvm.shfl.sync.idx.f32
-    nvvm_shfl_sync_idx_i32,                    // llvm.nvvm.shfl.sync.idx.i32
-    nvvm_shfl_sync_up_f32,                     // llvm.nvvm.shfl.sync.up.f32
-    nvvm_shfl_sync_up_i32,                     // llvm.nvvm.shfl.sync.up.i32
-    nvvm_shfl_up_f32,                          // llvm.nvvm.shfl.up.f32
-    nvvm_shfl_up_i32,                          // llvm.nvvm.shfl.up.i32
-    nvvm_sin_approx_f,                         // llvm.nvvm.sin.approx.f
-    nvvm_sin_approx_ftz_f,                     // llvm.nvvm.sin.approx.ftz.f
-    nvvm_sqrt_approx_f,                        // llvm.nvvm.sqrt.approx.f
-    nvvm_sqrt_approx_ftz_f,                    // llvm.nvvm.sqrt.approx.ftz.f
-    nvvm_sqrt_f,                               // llvm.nvvm.sqrt.f
-    nvvm_sqrt_rm_d,                            // llvm.nvvm.sqrt.rm.d
-    nvvm_sqrt_rm_f,                            // llvm.nvvm.sqrt.rm.f
-    nvvm_sqrt_rm_ftz_f,                        // llvm.nvvm.sqrt.rm.ftz.f
-    nvvm_sqrt_rn_d,                            // llvm.nvvm.sqrt.rn.d
-    nvvm_sqrt_rn_f,                            // llvm.nvvm.sqrt.rn.f
-    nvvm_sqrt_rn_ftz_f,                        // llvm.nvvm.sqrt.rn.ftz.f
-    nvvm_sqrt_rp_d,                            // llvm.nvvm.sqrt.rp.d
-    nvvm_sqrt_rp_f,                            // llvm.nvvm.sqrt.rp.f
-    nvvm_sqrt_rp_ftz_f,                        // llvm.nvvm.sqrt.rp.ftz.f
-    nvvm_sqrt_rz_d,                            // llvm.nvvm.sqrt.rz.d
-    nvvm_sqrt_rz_f,                            // llvm.nvvm.sqrt.rz.f
-    nvvm_sqrt_rz_ftz_f,                        // llvm.nvvm.sqrt.rz.ftz.f
-    nvvm_suld_1d_array_i16_clamp,              // llvm.nvvm.suld.1d.array.i16.clamp
-    nvvm_suld_1d_array_i16_trap,               // llvm.nvvm.suld.1d.array.i16.trap
-    nvvm_suld_1d_array_i16_zero,               // llvm.nvvm.suld.1d.array.i16.zero
-    nvvm_suld_1d_array_i32_clamp,              // llvm.nvvm.suld.1d.array.i32.clamp
-    nvvm_suld_1d_array_i32_trap,               // llvm.nvvm.suld.1d.array.i32.trap
-    nvvm_suld_1d_array_i32_zero,               // llvm.nvvm.suld.1d.array.i32.zero
-    nvvm_suld_1d_array_i64_clamp,              // llvm.nvvm.suld.1d.array.i64.clamp
-    nvvm_suld_1d_array_i64_trap,               // llvm.nvvm.suld.1d.array.i64.trap
-    nvvm_suld_1d_array_i64_zero,               // llvm.nvvm.suld.1d.array.i64.zero
-    nvvm_suld_1d_array_i8_clamp,               // llvm.nvvm.suld.1d.array.i8.clamp
-    nvvm_suld_1d_array_i8_trap,                // llvm.nvvm.suld.1d.array.i8.trap
-    nvvm_suld_1d_array_i8_zero,                // llvm.nvvm.suld.1d.array.i8.zero
-    nvvm_suld_1d_array_v2i16_clamp,            // llvm.nvvm.suld.1d.array.v2i16.clamp
-    nvvm_suld_1d_array_v2i16_trap,             // llvm.nvvm.suld.1d.array.v2i16.trap
-    nvvm_suld_1d_array_v2i16_zero,             // llvm.nvvm.suld.1d.array.v2i16.zero
-    nvvm_suld_1d_array_v2i32_clamp,            // llvm.nvvm.suld.1d.array.v2i32.clamp
-    nvvm_suld_1d_array_v2i32_trap,             // llvm.nvvm.suld.1d.array.v2i32.trap
-    nvvm_suld_1d_array_v2i32_zero,             // llvm.nvvm.suld.1d.array.v2i32.zero
-    nvvm_suld_1d_array_v2i64_clamp,            // llvm.nvvm.suld.1d.array.v2i64.clamp
-    nvvm_suld_1d_array_v2i64_trap,             // llvm.nvvm.suld.1d.array.v2i64.trap
-    nvvm_suld_1d_array_v2i64_zero,             // llvm.nvvm.suld.1d.array.v2i64.zero
-    nvvm_suld_1d_array_v2i8_clamp,             // llvm.nvvm.suld.1d.array.v2i8.clamp
-    nvvm_suld_1d_array_v2i8_trap,              // llvm.nvvm.suld.1d.array.v2i8.trap
-    nvvm_suld_1d_array_v2i8_zero,              // llvm.nvvm.suld.1d.array.v2i8.zero
-    nvvm_suld_1d_array_v4i16_clamp,            // llvm.nvvm.suld.1d.array.v4i16.clamp
-    nvvm_suld_1d_array_v4i16_trap,             // llvm.nvvm.suld.1d.array.v4i16.trap
-    nvvm_suld_1d_array_v4i16_zero,             // llvm.nvvm.suld.1d.array.v4i16.zero
-    nvvm_suld_1d_array_v4i32_clamp,            // llvm.nvvm.suld.1d.array.v4i32.clamp
-    nvvm_suld_1d_array_v4i32_trap,             // llvm.nvvm.suld.1d.array.v4i32.trap
-    nvvm_suld_1d_array_v4i32_zero,             // llvm.nvvm.suld.1d.array.v4i32.zero
-    nvvm_suld_1d_array_v4i8_clamp,             // llvm.nvvm.suld.1d.array.v4i8.clamp
-    nvvm_suld_1d_array_v4i8_trap,              // llvm.nvvm.suld.1d.array.v4i8.trap
-    nvvm_suld_1d_array_v4i8_zero,              // llvm.nvvm.suld.1d.array.v4i8.zero
-    nvvm_suld_1d_i16_clamp,                    // llvm.nvvm.suld.1d.i16.clamp
-    nvvm_suld_1d_i16_trap,                     // llvm.nvvm.suld.1d.i16.trap
-    nvvm_suld_1d_i16_zero,                     // llvm.nvvm.suld.1d.i16.zero
-    nvvm_suld_1d_i32_clamp,                    // llvm.nvvm.suld.1d.i32.clamp
-    nvvm_suld_1d_i32_trap,                     // llvm.nvvm.suld.1d.i32.trap
-    nvvm_suld_1d_i32_zero,                     // llvm.nvvm.suld.1d.i32.zero
-    nvvm_suld_1d_i64_clamp,                    // llvm.nvvm.suld.1d.i64.clamp
-    nvvm_suld_1d_i64_trap,                     // llvm.nvvm.suld.1d.i64.trap
-    nvvm_suld_1d_i64_zero,                     // llvm.nvvm.suld.1d.i64.zero
-    nvvm_suld_1d_i8_clamp,                     // llvm.nvvm.suld.1d.i8.clamp
-    nvvm_suld_1d_i8_trap,                      // llvm.nvvm.suld.1d.i8.trap
-    nvvm_suld_1d_i8_zero,                      // llvm.nvvm.suld.1d.i8.zero
-    nvvm_suld_1d_v2i16_clamp,                  // llvm.nvvm.suld.1d.v2i16.clamp
-    nvvm_suld_1d_v2i16_trap,                   // llvm.nvvm.suld.1d.v2i16.trap
-    nvvm_suld_1d_v2i16_zero,                   // llvm.nvvm.suld.1d.v2i16.zero
-    nvvm_suld_1d_v2i32_clamp,                  // llvm.nvvm.suld.1d.v2i32.clamp
-    nvvm_suld_1d_v2i32_trap,                   // llvm.nvvm.suld.1d.v2i32.trap
-    nvvm_suld_1d_v2i32_zero,                   // llvm.nvvm.suld.1d.v2i32.zero
-    nvvm_suld_1d_v2i64_clamp,                  // llvm.nvvm.suld.1d.v2i64.clamp
-    nvvm_suld_1d_v2i64_trap,                   // llvm.nvvm.suld.1d.v2i64.trap
-    nvvm_suld_1d_v2i64_zero,                   // llvm.nvvm.suld.1d.v2i64.zero
-    nvvm_suld_1d_v2i8_clamp,                   // llvm.nvvm.suld.1d.v2i8.clamp
-    nvvm_suld_1d_v2i8_trap,                    // llvm.nvvm.suld.1d.v2i8.trap
-    nvvm_suld_1d_v2i8_zero,                    // llvm.nvvm.suld.1d.v2i8.zero
-    nvvm_suld_1d_v4i16_clamp,                  // llvm.nvvm.suld.1d.v4i16.clamp
-    nvvm_suld_1d_v4i16_trap,                   // llvm.nvvm.suld.1d.v4i16.trap
-    nvvm_suld_1d_v4i16_zero,                   // llvm.nvvm.suld.1d.v4i16.zero
-    nvvm_suld_1d_v4i32_clamp,                  // llvm.nvvm.suld.1d.v4i32.clamp
-    nvvm_suld_1d_v4i32_trap,                   // llvm.nvvm.suld.1d.v4i32.trap
-    nvvm_suld_1d_v4i32_zero,                   // llvm.nvvm.suld.1d.v4i32.zero
-    nvvm_suld_1d_v4i8_clamp,                   // llvm.nvvm.suld.1d.v4i8.clamp
-    nvvm_suld_1d_v4i8_trap,                    // llvm.nvvm.suld.1d.v4i8.trap
-    nvvm_suld_1d_v4i8_zero,                    // llvm.nvvm.suld.1d.v4i8.zero
-    nvvm_suld_2d_array_i16_clamp,              // llvm.nvvm.suld.2d.array.i16.clamp
-    nvvm_suld_2d_array_i16_trap,               // llvm.nvvm.suld.2d.array.i16.trap
-    nvvm_suld_2d_array_i16_zero,               // llvm.nvvm.suld.2d.array.i16.zero
-    nvvm_suld_2d_array_i32_clamp,              // llvm.nvvm.suld.2d.array.i32.clamp
-    nvvm_suld_2d_array_i32_trap,               // llvm.nvvm.suld.2d.array.i32.trap
-    nvvm_suld_2d_array_i32_zero,               // llvm.nvvm.suld.2d.array.i32.zero
-    nvvm_suld_2d_array_i64_clamp,              // llvm.nvvm.suld.2d.array.i64.clamp
-    nvvm_suld_2d_array_i64_trap,               // llvm.nvvm.suld.2d.array.i64.trap
-    nvvm_suld_2d_array_i64_zero,               // llvm.nvvm.suld.2d.array.i64.zero
-    nvvm_suld_2d_array_i8_clamp,               // llvm.nvvm.suld.2d.array.i8.clamp
-    nvvm_suld_2d_array_i8_trap,                // llvm.nvvm.suld.2d.array.i8.trap
-    nvvm_suld_2d_array_i8_zero,                // llvm.nvvm.suld.2d.array.i8.zero
-    nvvm_suld_2d_array_v2i16_clamp,            // llvm.nvvm.suld.2d.array.v2i16.clamp
-    nvvm_suld_2d_array_v2i16_trap,             // llvm.nvvm.suld.2d.array.v2i16.trap
-    nvvm_suld_2d_array_v2i16_zero,             // llvm.nvvm.suld.2d.array.v2i16.zero
-    nvvm_suld_2d_array_v2i32_clamp,            // llvm.nvvm.suld.2d.array.v2i32.clamp
-    nvvm_suld_2d_array_v2i32_trap,             // llvm.nvvm.suld.2d.array.v2i32.trap
-    nvvm_suld_2d_array_v2i32_zero,             // llvm.nvvm.suld.2d.array.v2i32.zero
-    nvvm_suld_2d_array_v2i64_clamp,            // llvm.nvvm.suld.2d.array.v2i64.clamp
-    nvvm_suld_2d_array_v2i64_trap,             // llvm.nvvm.suld.2d.array.v2i64.trap
-    nvvm_suld_2d_array_v2i64_zero,             // llvm.nvvm.suld.2d.array.v2i64.zero
-    nvvm_suld_2d_array_v2i8_clamp,             // llvm.nvvm.suld.2d.array.v2i8.clamp
-    nvvm_suld_2d_array_v2i8_trap,              // llvm.nvvm.suld.2d.array.v2i8.trap
-    nvvm_suld_2d_array_v2i8_zero,              // llvm.nvvm.suld.2d.array.v2i8.zero
-    nvvm_suld_2d_array_v4i16_clamp,            // llvm.nvvm.suld.2d.array.v4i16.clamp
-    nvvm_suld_2d_array_v4i16_trap,             // llvm.nvvm.suld.2d.array.v4i16.trap
-    nvvm_suld_2d_array_v4i16_zero,             // llvm.nvvm.suld.2d.array.v4i16.zero
-    nvvm_suld_2d_array_v4i32_clamp,            // llvm.nvvm.suld.2d.array.v4i32.clamp
-    nvvm_suld_2d_array_v4i32_trap,             // llvm.nvvm.suld.2d.array.v4i32.trap
-    nvvm_suld_2d_array_v4i32_zero,             // llvm.nvvm.suld.2d.array.v4i32.zero
-    nvvm_suld_2d_array_v4i8_clamp,             // llvm.nvvm.suld.2d.array.v4i8.clamp
-    nvvm_suld_2d_array_v4i8_trap,              // llvm.nvvm.suld.2d.array.v4i8.trap
-    nvvm_suld_2d_array_v4i8_zero,              // llvm.nvvm.suld.2d.array.v4i8.zero
-    nvvm_suld_2d_i16_clamp,                    // llvm.nvvm.suld.2d.i16.clamp
-    nvvm_suld_2d_i16_trap,                     // llvm.nvvm.suld.2d.i16.trap
-    nvvm_suld_2d_i16_zero,                     // llvm.nvvm.suld.2d.i16.zero
-    nvvm_suld_2d_i32_clamp,                    // llvm.nvvm.suld.2d.i32.clamp
-    nvvm_suld_2d_i32_trap,                     // llvm.nvvm.suld.2d.i32.trap
-    nvvm_suld_2d_i32_zero,                     // llvm.nvvm.suld.2d.i32.zero
-    nvvm_suld_2d_i64_clamp,                    // llvm.nvvm.suld.2d.i64.clamp
-    nvvm_suld_2d_i64_trap,                     // llvm.nvvm.suld.2d.i64.trap
-    nvvm_suld_2d_i64_zero,                     // llvm.nvvm.suld.2d.i64.zero
-    nvvm_suld_2d_i8_clamp,                     // llvm.nvvm.suld.2d.i8.clamp
-    nvvm_suld_2d_i8_trap,                      // llvm.nvvm.suld.2d.i8.trap
-    nvvm_suld_2d_i8_zero,                      // llvm.nvvm.suld.2d.i8.zero
-    nvvm_suld_2d_v2i16_clamp,                  // llvm.nvvm.suld.2d.v2i16.clamp
-    nvvm_suld_2d_v2i16_trap,                   // llvm.nvvm.suld.2d.v2i16.trap
-    nvvm_suld_2d_v2i16_zero,                   // llvm.nvvm.suld.2d.v2i16.zero
-    nvvm_suld_2d_v2i32_clamp,                  // llvm.nvvm.suld.2d.v2i32.clamp
-    nvvm_suld_2d_v2i32_trap,                   // llvm.nvvm.suld.2d.v2i32.trap
-    nvvm_suld_2d_v2i32_zero,                   // llvm.nvvm.suld.2d.v2i32.zero
-    nvvm_suld_2d_v2i64_clamp,                  // llvm.nvvm.suld.2d.v2i64.clamp
-    nvvm_suld_2d_v2i64_trap,                   // llvm.nvvm.suld.2d.v2i64.trap
-    nvvm_suld_2d_v2i64_zero,                   // llvm.nvvm.suld.2d.v2i64.zero
-    nvvm_suld_2d_v2i8_clamp,                   // llvm.nvvm.suld.2d.v2i8.clamp
-    nvvm_suld_2d_v2i8_trap,                    // llvm.nvvm.suld.2d.v2i8.trap
-    nvvm_suld_2d_v2i8_zero,                    // llvm.nvvm.suld.2d.v2i8.zero
-    nvvm_suld_2d_v4i16_clamp,                  // llvm.nvvm.suld.2d.v4i16.clamp
-    nvvm_suld_2d_v4i16_trap,                   // llvm.nvvm.suld.2d.v4i16.trap
-    nvvm_suld_2d_v4i16_zero,                   // llvm.nvvm.suld.2d.v4i16.zero
-    nvvm_suld_2d_v4i32_clamp,                  // llvm.nvvm.suld.2d.v4i32.clamp
-    nvvm_suld_2d_v4i32_trap,                   // llvm.nvvm.suld.2d.v4i32.trap
-    nvvm_suld_2d_v4i32_zero,                   // llvm.nvvm.suld.2d.v4i32.zero
-    nvvm_suld_2d_v4i8_clamp,                   // llvm.nvvm.suld.2d.v4i8.clamp
-    nvvm_suld_2d_v4i8_trap,                    // llvm.nvvm.suld.2d.v4i8.trap
-    nvvm_suld_2d_v4i8_zero,                    // llvm.nvvm.suld.2d.v4i8.zero
-    nvvm_suld_3d_i16_clamp,                    // llvm.nvvm.suld.3d.i16.clamp
-    nvvm_suld_3d_i16_trap,                     // llvm.nvvm.suld.3d.i16.trap
-    nvvm_suld_3d_i16_zero,                     // llvm.nvvm.suld.3d.i16.zero
-    nvvm_suld_3d_i32_clamp,                    // llvm.nvvm.suld.3d.i32.clamp
-    nvvm_suld_3d_i32_trap,                     // llvm.nvvm.suld.3d.i32.trap
-    nvvm_suld_3d_i32_zero,                     // llvm.nvvm.suld.3d.i32.zero
-    nvvm_suld_3d_i64_clamp,                    // llvm.nvvm.suld.3d.i64.clamp
-    nvvm_suld_3d_i64_trap,                     // llvm.nvvm.suld.3d.i64.trap
-    nvvm_suld_3d_i64_zero,                     // llvm.nvvm.suld.3d.i64.zero
-    nvvm_suld_3d_i8_clamp,                     // llvm.nvvm.suld.3d.i8.clamp
-    nvvm_suld_3d_i8_trap,                      // llvm.nvvm.suld.3d.i8.trap
-    nvvm_suld_3d_i8_zero,                      // llvm.nvvm.suld.3d.i8.zero
-    nvvm_suld_3d_v2i16_clamp,                  // llvm.nvvm.suld.3d.v2i16.clamp
-    nvvm_suld_3d_v2i16_trap,                   // llvm.nvvm.suld.3d.v2i16.trap
-    nvvm_suld_3d_v2i16_zero,                   // llvm.nvvm.suld.3d.v2i16.zero
-    nvvm_suld_3d_v2i32_clamp,                  // llvm.nvvm.suld.3d.v2i32.clamp
-    nvvm_suld_3d_v2i32_trap,                   // llvm.nvvm.suld.3d.v2i32.trap
-    nvvm_suld_3d_v2i32_zero,                   // llvm.nvvm.suld.3d.v2i32.zero
-    nvvm_suld_3d_v2i64_clamp,                  // llvm.nvvm.suld.3d.v2i64.clamp
-    nvvm_suld_3d_v2i64_trap,                   // llvm.nvvm.suld.3d.v2i64.trap
-    nvvm_suld_3d_v2i64_zero,                   // llvm.nvvm.suld.3d.v2i64.zero
-    nvvm_suld_3d_v2i8_clamp,                   // llvm.nvvm.suld.3d.v2i8.clamp
-    nvvm_suld_3d_v2i8_trap,                    // llvm.nvvm.suld.3d.v2i8.trap
-    nvvm_suld_3d_v2i8_zero,                    // llvm.nvvm.suld.3d.v2i8.zero
-    nvvm_suld_3d_v4i16_clamp,                  // llvm.nvvm.suld.3d.v4i16.clamp
-    nvvm_suld_3d_v4i16_trap,                   // llvm.nvvm.suld.3d.v4i16.trap
-    nvvm_suld_3d_v4i16_zero,                   // llvm.nvvm.suld.3d.v4i16.zero
-    nvvm_suld_3d_v4i32_clamp,                  // llvm.nvvm.suld.3d.v4i32.clamp
-    nvvm_suld_3d_v4i32_trap,                   // llvm.nvvm.suld.3d.v4i32.trap
-    nvvm_suld_3d_v4i32_zero,                   // llvm.nvvm.suld.3d.v4i32.zero
-    nvvm_suld_3d_v4i8_clamp,                   // llvm.nvvm.suld.3d.v4i8.clamp
-    nvvm_suld_3d_v4i8_trap,                    // llvm.nvvm.suld.3d.v4i8.trap
-    nvvm_suld_3d_v4i8_zero,                    // llvm.nvvm.suld.3d.v4i8.zero
-    nvvm_suq_array_size,                       // llvm.nvvm.suq.array.size
-    nvvm_suq_channel_data_type,                // llvm.nvvm.suq.channel.data.type
-    nvvm_suq_channel_order,                    // llvm.nvvm.suq.channel.order
-    nvvm_suq_depth,                            // llvm.nvvm.suq.depth
-    nvvm_suq_height,                           // llvm.nvvm.suq.height
-    nvvm_suq_width,                            // llvm.nvvm.suq.width
-    nvvm_sust_b_1d_array_i16_clamp,            // llvm.nvvm.sust.b.1d.array.i16.clamp
-    nvvm_sust_b_1d_array_i16_trap,             // llvm.nvvm.sust.b.1d.array.i16.trap
-    nvvm_sust_b_1d_array_i16_zero,             // llvm.nvvm.sust.b.1d.array.i16.zero
-    nvvm_sust_b_1d_array_i32_clamp,            // llvm.nvvm.sust.b.1d.array.i32.clamp
-    nvvm_sust_b_1d_array_i32_trap,             // llvm.nvvm.sust.b.1d.array.i32.trap
-    nvvm_sust_b_1d_array_i32_zero,             // llvm.nvvm.sust.b.1d.array.i32.zero
-    nvvm_sust_b_1d_array_i64_clamp,            // llvm.nvvm.sust.b.1d.array.i64.clamp
-    nvvm_sust_b_1d_array_i64_trap,             // llvm.nvvm.sust.b.1d.array.i64.trap
-    nvvm_sust_b_1d_array_i64_zero,             // llvm.nvvm.sust.b.1d.array.i64.zero
-    nvvm_sust_b_1d_array_i8_clamp,             // llvm.nvvm.sust.b.1d.array.i8.clamp
-    nvvm_sust_b_1d_array_i8_trap,              // llvm.nvvm.sust.b.1d.array.i8.trap
-    nvvm_sust_b_1d_array_i8_zero,              // llvm.nvvm.sust.b.1d.array.i8.zero
-    nvvm_sust_b_1d_array_v2i16_clamp,          // llvm.nvvm.sust.b.1d.array.v2i16.clamp
-    nvvm_sust_b_1d_array_v2i16_trap,           // llvm.nvvm.sust.b.1d.array.v2i16.trap
-    nvvm_sust_b_1d_array_v2i16_zero,           // llvm.nvvm.sust.b.1d.array.v2i16.zero
-    nvvm_sust_b_1d_array_v2i32_clamp,          // llvm.nvvm.sust.b.1d.array.v2i32.clamp
-    nvvm_sust_b_1d_array_v2i32_trap,           // llvm.nvvm.sust.b.1d.array.v2i32.trap
-    nvvm_sust_b_1d_array_v2i32_zero,           // llvm.nvvm.sust.b.1d.array.v2i32.zero
-    nvvm_sust_b_1d_array_v2i64_clamp,          // llvm.nvvm.sust.b.1d.array.v2i64.clamp
-    nvvm_sust_b_1d_array_v2i64_trap,           // llvm.nvvm.sust.b.1d.array.v2i64.trap
-    nvvm_sust_b_1d_array_v2i64_zero,           // llvm.nvvm.sust.b.1d.array.v2i64.zero
-    nvvm_sust_b_1d_array_v2i8_clamp,           // llvm.nvvm.sust.b.1d.array.v2i8.clamp
-    nvvm_sust_b_1d_array_v2i8_trap,            // llvm.nvvm.sust.b.1d.array.v2i8.trap
-    nvvm_sust_b_1d_array_v2i8_zero,            // llvm.nvvm.sust.b.1d.array.v2i8.zero
-    nvvm_sust_b_1d_array_v4i16_clamp,          // llvm.nvvm.sust.b.1d.array.v4i16.clamp
-    nvvm_sust_b_1d_array_v4i16_trap,           // llvm.nvvm.sust.b.1d.array.v4i16.trap
-    nvvm_sust_b_1d_array_v4i16_zero,           // llvm.nvvm.sust.b.1d.array.v4i16.zero
-    nvvm_sust_b_1d_array_v4i32_clamp,          // llvm.nvvm.sust.b.1d.array.v4i32.clamp
-    nvvm_sust_b_1d_array_v4i32_trap,           // llvm.nvvm.sust.b.1d.array.v4i32.trap
-    nvvm_sust_b_1d_array_v4i32_zero,           // llvm.nvvm.sust.b.1d.array.v4i32.zero
-    nvvm_sust_b_1d_array_v4i8_clamp,           // llvm.nvvm.sust.b.1d.array.v4i8.clamp
-    nvvm_sust_b_1d_array_v4i8_trap,            // llvm.nvvm.sust.b.1d.array.v4i8.trap
-    nvvm_sust_b_1d_array_v4i8_zero,            // llvm.nvvm.sust.b.1d.array.v4i8.zero
-    nvvm_sust_b_1d_i16_clamp,                  // llvm.nvvm.sust.b.1d.i16.clamp
-    nvvm_sust_b_1d_i16_trap,                   // llvm.nvvm.sust.b.1d.i16.trap
-    nvvm_sust_b_1d_i16_zero,                   // llvm.nvvm.sust.b.1d.i16.zero
-    nvvm_sust_b_1d_i32_clamp,                  // llvm.nvvm.sust.b.1d.i32.clamp
-    nvvm_sust_b_1d_i32_trap,                   // llvm.nvvm.sust.b.1d.i32.trap
-    nvvm_sust_b_1d_i32_zero,                   // llvm.nvvm.sust.b.1d.i32.zero
-    nvvm_sust_b_1d_i64_clamp,                  // llvm.nvvm.sust.b.1d.i64.clamp
-    nvvm_sust_b_1d_i64_trap,                   // llvm.nvvm.sust.b.1d.i64.trap
-    nvvm_sust_b_1d_i64_zero,                   // llvm.nvvm.sust.b.1d.i64.zero
-    nvvm_sust_b_1d_i8_clamp,                   // llvm.nvvm.sust.b.1d.i8.clamp
-    nvvm_sust_b_1d_i8_trap,                    // llvm.nvvm.sust.b.1d.i8.trap
-    nvvm_sust_b_1d_i8_zero,                    // llvm.nvvm.sust.b.1d.i8.zero
-    nvvm_sust_b_1d_v2i16_clamp,                // llvm.nvvm.sust.b.1d.v2i16.clamp
-    nvvm_sust_b_1d_v2i16_trap,                 // llvm.nvvm.sust.b.1d.v2i16.trap
-    nvvm_sust_b_1d_v2i16_zero,                 // llvm.nvvm.sust.b.1d.v2i16.zero
-    nvvm_sust_b_1d_v2i32_clamp,                // llvm.nvvm.sust.b.1d.v2i32.clamp
-    nvvm_sust_b_1d_v2i32_trap,                 // llvm.nvvm.sust.b.1d.v2i32.trap
-    nvvm_sust_b_1d_v2i32_zero,                 // llvm.nvvm.sust.b.1d.v2i32.zero
-    nvvm_sust_b_1d_v2i64_clamp,                // llvm.nvvm.sust.b.1d.v2i64.clamp
-    nvvm_sust_b_1d_v2i64_trap,                 // llvm.nvvm.sust.b.1d.v2i64.trap
-    nvvm_sust_b_1d_v2i64_zero,                 // llvm.nvvm.sust.b.1d.v2i64.zero
-    nvvm_sust_b_1d_v2i8_clamp,                 // llvm.nvvm.sust.b.1d.v2i8.clamp
-    nvvm_sust_b_1d_v2i8_trap,                  // llvm.nvvm.sust.b.1d.v2i8.trap
-    nvvm_sust_b_1d_v2i8_zero,                  // llvm.nvvm.sust.b.1d.v2i8.zero
-    nvvm_sust_b_1d_v4i16_clamp,                // llvm.nvvm.sust.b.1d.v4i16.clamp
-    nvvm_sust_b_1d_v4i16_trap,                 // llvm.nvvm.sust.b.1d.v4i16.trap
-    nvvm_sust_b_1d_v4i16_zero,                 // llvm.nvvm.sust.b.1d.v4i16.zero
-    nvvm_sust_b_1d_v4i32_clamp,                // llvm.nvvm.sust.b.1d.v4i32.clamp
-    nvvm_sust_b_1d_v4i32_trap,                 // llvm.nvvm.sust.b.1d.v4i32.trap
-    nvvm_sust_b_1d_v4i32_zero,                 // llvm.nvvm.sust.b.1d.v4i32.zero
-    nvvm_sust_b_1d_v4i8_clamp,                 // llvm.nvvm.sust.b.1d.v4i8.clamp
-    nvvm_sust_b_1d_v4i8_trap,                  // llvm.nvvm.sust.b.1d.v4i8.trap
-    nvvm_sust_b_1d_v4i8_zero,                  // llvm.nvvm.sust.b.1d.v4i8.zero
-    nvvm_sust_b_2d_array_i16_clamp,            // llvm.nvvm.sust.b.2d.array.i16.clamp
-    nvvm_sust_b_2d_array_i16_trap,             // llvm.nvvm.sust.b.2d.array.i16.trap
-    nvvm_sust_b_2d_array_i16_zero,             // llvm.nvvm.sust.b.2d.array.i16.zero
-    nvvm_sust_b_2d_array_i32_clamp,            // llvm.nvvm.sust.b.2d.array.i32.clamp
-    nvvm_sust_b_2d_array_i32_trap,             // llvm.nvvm.sust.b.2d.array.i32.trap
-    nvvm_sust_b_2d_array_i32_zero,             // llvm.nvvm.sust.b.2d.array.i32.zero
-    nvvm_sust_b_2d_array_i64_clamp,            // llvm.nvvm.sust.b.2d.array.i64.clamp
-    nvvm_sust_b_2d_array_i64_trap,             // llvm.nvvm.sust.b.2d.array.i64.trap
-    nvvm_sust_b_2d_array_i64_zero,             // llvm.nvvm.sust.b.2d.array.i64.zero
-    nvvm_sust_b_2d_array_i8_clamp,             // llvm.nvvm.sust.b.2d.array.i8.clamp
-    nvvm_sust_b_2d_array_i8_trap,              // llvm.nvvm.sust.b.2d.array.i8.trap
-    nvvm_sust_b_2d_array_i8_zero,              // llvm.nvvm.sust.b.2d.array.i8.zero
-    nvvm_sust_b_2d_array_v2i16_clamp,          // llvm.nvvm.sust.b.2d.array.v2i16.clamp
-    nvvm_sust_b_2d_array_v2i16_trap,           // llvm.nvvm.sust.b.2d.array.v2i16.trap
-    nvvm_sust_b_2d_array_v2i16_zero,           // llvm.nvvm.sust.b.2d.array.v2i16.zero
-    nvvm_sust_b_2d_array_v2i32_clamp,          // llvm.nvvm.sust.b.2d.array.v2i32.clamp
-    nvvm_sust_b_2d_array_v2i32_trap,           // llvm.nvvm.sust.b.2d.array.v2i32.trap
-    nvvm_sust_b_2d_array_v2i32_zero,           // llvm.nvvm.sust.b.2d.array.v2i32.zero
-    nvvm_sust_b_2d_array_v2i64_clamp,          // llvm.nvvm.sust.b.2d.array.v2i64.clamp
-    nvvm_sust_b_2d_array_v2i64_trap,           // llvm.nvvm.sust.b.2d.array.v2i64.trap
-    nvvm_sust_b_2d_array_v2i64_zero,           // llvm.nvvm.sust.b.2d.array.v2i64.zero
-    nvvm_sust_b_2d_array_v2i8_clamp,           // llvm.nvvm.sust.b.2d.array.v2i8.clamp
-    nvvm_sust_b_2d_array_v2i8_trap,            // llvm.nvvm.sust.b.2d.array.v2i8.trap
-    nvvm_sust_b_2d_array_v2i8_zero,            // llvm.nvvm.sust.b.2d.array.v2i8.zero
-    nvvm_sust_b_2d_array_v4i16_clamp,          // llvm.nvvm.sust.b.2d.array.v4i16.clamp
-    nvvm_sust_b_2d_array_v4i16_trap,           // llvm.nvvm.sust.b.2d.array.v4i16.trap
-    nvvm_sust_b_2d_array_v4i16_zero,           // llvm.nvvm.sust.b.2d.array.v4i16.zero
-    nvvm_sust_b_2d_array_v4i32_clamp,          // llvm.nvvm.sust.b.2d.array.v4i32.clamp
-    nvvm_sust_b_2d_array_v4i32_trap,           // llvm.nvvm.sust.b.2d.array.v4i32.trap
-    nvvm_sust_b_2d_array_v4i32_zero,           // llvm.nvvm.sust.b.2d.array.v4i32.zero
-    nvvm_sust_b_2d_array_v4i8_clamp,           // llvm.nvvm.sust.b.2d.array.v4i8.clamp
-    nvvm_sust_b_2d_array_v4i8_trap,            // llvm.nvvm.sust.b.2d.array.v4i8.trap
-    nvvm_sust_b_2d_array_v4i8_zero,            // llvm.nvvm.sust.b.2d.array.v4i8.zero
-    nvvm_sust_b_2d_i16_clamp,                  // llvm.nvvm.sust.b.2d.i16.clamp
-    nvvm_sust_b_2d_i16_trap,                   // llvm.nvvm.sust.b.2d.i16.trap
-    nvvm_sust_b_2d_i16_zero,                   // llvm.nvvm.sust.b.2d.i16.zero
-    nvvm_sust_b_2d_i32_clamp,                  // llvm.nvvm.sust.b.2d.i32.clamp
-    nvvm_sust_b_2d_i32_trap,                   // llvm.nvvm.sust.b.2d.i32.trap
-    nvvm_sust_b_2d_i32_zero,                   // llvm.nvvm.sust.b.2d.i32.zero
-    nvvm_sust_b_2d_i64_clamp,                  // llvm.nvvm.sust.b.2d.i64.clamp
-    nvvm_sust_b_2d_i64_trap,                   // llvm.nvvm.sust.b.2d.i64.trap
-    nvvm_sust_b_2d_i64_zero,                   // llvm.nvvm.sust.b.2d.i64.zero
-    nvvm_sust_b_2d_i8_clamp,                   // llvm.nvvm.sust.b.2d.i8.clamp
-    nvvm_sust_b_2d_i8_trap,                    // llvm.nvvm.sust.b.2d.i8.trap
-    nvvm_sust_b_2d_i8_zero,                    // llvm.nvvm.sust.b.2d.i8.zero
-    nvvm_sust_b_2d_v2i16_clamp,                // llvm.nvvm.sust.b.2d.v2i16.clamp
-    nvvm_sust_b_2d_v2i16_trap,                 // llvm.nvvm.sust.b.2d.v2i16.trap
-    nvvm_sust_b_2d_v2i16_zero,                 // llvm.nvvm.sust.b.2d.v2i16.zero
-    nvvm_sust_b_2d_v2i32_clamp,                // llvm.nvvm.sust.b.2d.v2i32.clamp
-    nvvm_sust_b_2d_v2i32_trap,                 // llvm.nvvm.sust.b.2d.v2i32.trap
-    nvvm_sust_b_2d_v2i32_zero,                 // llvm.nvvm.sust.b.2d.v2i32.zero
-    nvvm_sust_b_2d_v2i64_clamp,                // llvm.nvvm.sust.b.2d.v2i64.clamp
-    nvvm_sust_b_2d_v2i64_trap,                 // llvm.nvvm.sust.b.2d.v2i64.trap
-    nvvm_sust_b_2d_v2i64_zero,                 // llvm.nvvm.sust.b.2d.v2i64.zero
-    nvvm_sust_b_2d_v2i8_clamp,                 // llvm.nvvm.sust.b.2d.v2i8.clamp
-    nvvm_sust_b_2d_v2i8_trap,                  // llvm.nvvm.sust.b.2d.v2i8.trap
-    nvvm_sust_b_2d_v2i8_zero,                  // llvm.nvvm.sust.b.2d.v2i8.zero
-    nvvm_sust_b_2d_v4i16_clamp,                // llvm.nvvm.sust.b.2d.v4i16.clamp
-    nvvm_sust_b_2d_v4i16_trap,                 // llvm.nvvm.sust.b.2d.v4i16.trap
-    nvvm_sust_b_2d_v4i16_zero,                 // llvm.nvvm.sust.b.2d.v4i16.zero
-    nvvm_sust_b_2d_v4i32_clamp,                // llvm.nvvm.sust.b.2d.v4i32.clamp
-    nvvm_sust_b_2d_v4i32_trap,                 // llvm.nvvm.sust.b.2d.v4i32.trap
-    nvvm_sust_b_2d_v4i32_zero,                 // llvm.nvvm.sust.b.2d.v4i32.zero
-    nvvm_sust_b_2d_v4i8_clamp,                 // llvm.nvvm.sust.b.2d.v4i8.clamp
-    nvvm_sust_b_2d_v4i8_trap,                  // llvm.nvvm.sust.b.2d.v4i8.trap
-    nvvm_sust_b_2d_v4i8_zero,                  // llvm.nvvm.sust.b.2d.v4i8.zero
-    nvvm_sust_b_3d_i16_clamp,                  // llvm.nvvm.sust.b.3d.i16.clamp
-    nvvm_sust_b_3d_i16_trap,                   // llvm.nvvm.sust.b.3d.i16.trap
-    nvvm_sust_b_3d_i16_zero,                   // llvm.nvvm.sust.b.3d.i16.zero
-    nvvm_sust_b_3d_i32_clamp,                  // llvm.nvvm.sust.b.3d.i32.clamp
-    nvvm_sust_b_3d_i32_trap,                   // llvm.nvvm.sust.b.3d.i32.trap
-    nvvm_sust_b_3d_i32_zero,                   // llvm.nvvm.sust.b.3d.i32.zero
-    nvvm_sust_b_3d_i64_clamp,                  // llvm.nvvm.sust.b.3d.i64.clamp
-    nvvm_sust_b_3d_i64_trap,                   // llvm.nvvm.sust.b.3d.i64.trap
-    nvvm_sust_b_3d_i64_zero,                   // llvm.nvvm.sust.b.3d.i64.zero
-    nvvm_sust_b_3d_i8_clamp,                   // llvm.nvvm.sust.b.3d.i8.clamp
-    nvvm_sust_b_3d_i8_trap,                    // llvm.nvvm.sust.b.3d.i8.trap
-    nvvm_sust_b_3d_i8_zero,                    // llvm.nvvm.sust.b.3d.i8.zero
-    nvvm_sust_b_3d_v2i16_clamp,                // llvm.nvvm.sust.b.3d.v2i16.clamp
-    nvvm_sust_b_3d_v2i16_trap,                 // llvm.nvvm.sust.b.3d.v2i16.trap
-    nvvm_sust_b_3d_v2i16_zero,                 // llvm.nvvm.sust.b.3d.v2i16.zero
-    nvvm_sust_b_3d_v2i32_clamp,                // llvm.nvvm.sust.b.3d.v2i32.clamp
-    nvvm_sust_b_3d_v2i32_trap,                 // llvm.nvvm.sust.b.3d.v2i32.trap
-    nvvm_sust_b_3d_v2i32_zero,                 // llvm.nvvm.sust.b.3d.v2i32.zero
-    nvvm_sust_b_3d_v2i64_clamp,                // llvm.nvvm.sust.b.3d.v2i64.clamp
-    nvvm_sust_b_3d_v2i64_trap,                 // llvm.nvvm.sust.b.3d.v2i64.trap
-    nvvm_sust_b_3d_v2i64_zero,                 // llvm.nvvm.sust.b.3d.v2i64.zero
-    nvvm_sust_b_3d_v2i8_clamp,                 // llvm.nvvm.sust.b.3d.v2i8.clamp
-    nvvm_sust_b_3d_v2i8_trap,                  // llvm.nvvm.sust.b.3d.v2i8.trap
-    nvvm_sust_b_3d_v2i8_zero,                  // llvm.nvvm.sust.b.3d.v2i8.zero
-    nvvm_sust_b_3d_v4i16_clamp,                // llvm.nvvm.sust.b.3d.v4i16.clamp
-    nvvm_sust_b_3d_v4i16_trap,                 // llvm.nvvm.sust.b.3d.v4i16.trap
-    nvvm_sust_b_3d_v4i16_zero,                 // llvm.nvvm.sust.b.3d.v4i16.zero
-    nvvm_sust_b_3d_v4i32_clamp,                // llvm.nvvm.sust.b.3d.v4i32.clamp
-    nvvm_sust_b_3d_v4i32_trap,                 // llvm.nvvm.sust.b.3d.v4i32.trap
-    nvvm_sust_b_3d_v4i32_zero,                 // llvm.nvvm.sust.b.3d.v4i32.zero
-    nvvm_sust_b_3d_v4i8_clamp,                 // llvm.nvvm.sust.b.3d.v4i8.clamp
-    nvvm_sust_b_3d_v4i8_trap,                  // llvm.nvvm.sust.b.3d.v4i8.trap
-    nvvm_sust_b_3d_v4i8_zero,                  // llvm.nvvm.sust.b.3d.v4i8.zero
-    nvvm_sust_p_1d_array_i16_trap,             // llvm.nvvm.sust.p.1d.array.i16.trap
-    nvvm_sust_p_1d_array_i32_trap,             // llvm.nvvm.sust.p.1d.array.i32.trap
-    nvvm_sust_p_1d_array_i8_trap,              // llvm.nvvm.sust.p.1d.array.i8.trap
-    nvvm_sust_p_1d_array_v2i16_trap,           // llvm.nvvm.sust.p.1d.array.v2i16.trap
-    nvvm_sust_p_1d_array_v2i32_trap,           // llvm.nvvm.sust.p.1d.array.v2i32.trap
-    nvvm_sust_p_1d_array_v2i8_trap,            // llvm.nvvm.sust.p.1d.array.v2i8.trap
-    nvvm_sust_p_1d_array_v4i16_trap,           // llvm.nvvm.sust.p.1d.array.v4i16.trap
-    nvvm_sust_p_1d_array_v4i32_trap,           // llvm.nvvm.sust.p.1d.array.v4i32.trap
-    nvvm_sust_p_1d_array_v4i8_trap,            // llvm.nvvm.sust.p.1d.array.v4i8.trap
-    nvvm_sust_p_1d_i16_trap,                   // llvm.nvvm.sust.p.1d.i16.trap
-    nvvm_sust_p_1d_i32_trap,                   // llvm.nvvm.sust.p.1d.i32.trap
-    nvvm_sust_p_1d_i8_trap,                    // llvm.nvvm.sust.p.1d.i8.trap
-    nvvm_sust_p_1d_v2i16_trap,                 // llvm.nvvm.sust.p.1d.v2i16.trap
-    nvvm_sust_p_1d_v2i32_trap,                 // llvm.nvvm.sust.p.1d.v2i32.trap
-    nvvm_sust_p_1d_v2i8_trap,                  // llvm.nvvm.sust.p.1d.v2i8.trap
-    nvvm_sust_p_1d_v4i16_trap,                 // llvm.nvvm.sust.p.1d.v4i16.trap
-    nvvm_sust_p_1d_v4i32_trap,                 // llvm.nvvm.sust.p.1d.v4i32.trap
-    nvvm_sust_p_1d_v4i8_trap,                  // llvm.nvvm.sust.p.1d.v4i8.trap
-    nvvm_sust_p_2d_array_i16_trap,             // llvm.nvvm.sust.p.2d.array.i16.trap
-    nvvm_sust_p_2d_array_i32_trap,             // llvm.nvvm.sust.p.2d.array.i32.trap
-    nvvm_sust_p_2d_array_i8_trap,              // llvm.nvvm.sust.p.2d.array.i8.trap
-    nvvm_sust_p_2d_array_v2i16_trap,           // llvm.nvvm.sust.p.2d.array.v2i16.trap
-    nvvm_sust_p_2d_array_v2i32_trap,           // llvm.nvvm.sust.p.2d.array.v2i32.trap
-    nvvm_sust_p_2d_array_v2i8_trap,            // llvm.nvvm.sust.p.2d.array.v2i8.trap
-    nvvm_sust_p_2d_array_v4i16_trap,           // llvm.nvvm.sust.p.2d.array.v4i16.trap
-    nvvm_sust_p_2d_array_v4i32_trap,           // llvm.nvvm.sust.p.2d.array.v4i32.trap
-    nvvm_sust_p_2d_array_v4i8_trap,            // llvm.nvvm.sust.p.2d.array.v4i8.trap
-    nvvm_sust_p_2d_i16_trap,                   // llvm.nvvm.sust.p.2d.i16.trap
-    nvvm_sust_p_2d_i32_trap,                   // llvm.nvvm.sust.p.2d.i32.trap
-    nvvm_sust_p_2d_i8_trap,                    // llvm.nvvm.sust.p.2d.i8.trap
-    nvvm_sust_p_2d_v2i16_trap,                 // llvm.nvvm.sust.p.2d.v2i16.trap
-    nvvm_sust_p_2d_v2i32_trap,                 // llvm.nvvm.sust.p.2d.v2i32.trap
-    nvvm_sust_p_2d_v2i8_trap,                  // llvm.nvvm.sust.p.2d.v2i8.trap
-    nvvm_sust_p_2d_v4i16_trap,                 // llvm.nvvm.sust.p.2d.v4i16.trap
-    nvvm_sust_p_2d_v4i32_trap,                 // llvm.nvvm.sust.p.2d.v4i32.trap
-    nvvm_sust_p_2d_v4i8_trap,                  // llvm.nvvm.sust.p.2d.v4i8.trap
-    nvvm_sust_p_3d_i16_trap,                   // llvm.nvvm.sust.p.3d.i16.trap
-    nvvm_sust_p_3d_i32_trap,                   // llvm.nvvm.sust.p.3d.i32.trap
-    nvvm_sust_p_3d_i8_trap,                    // llvm.nvvm.sust.p.3d.i8.trap
-    nvvm_sust_p_3d_v2i16_trap,                 // llvm.nvvm.sust.p.3d.v2i16.trap
-    nvvm_sust_p_3d_v2i32_trap,                 // llvm.nvvm.sust.p.3d.v2i32.trap
-    nvvm_sust_p_3d_v2i8_trap,                  // llvm.nvvm.sust.p.3d.v2i8.trap
-    nvvm_sust_p_3d_v4i16_trap,                 // llvm.nvvm.sust.p.3d.v4i16.trap
-    nvvm_sust_p_3d_v4i32_trap,                 // llvm.nvvm.sust.p.3d.v4i32.trap
-    nvvm_sust_p_3d_v4i8_trap,                  // llvm.nvvm.sust.p.3d.v4i8.trap
-    nvvm_swap_lo_hi_b64,                       // llvm.nvvm.swap.lo.hi.b64
-    nvvm_tex_1d_array_grad_v4f32_f32,          // llvm.nvvm.tex.1d.array.grad.v4f32.f32
-    nvvm_tex_1d_array_grad_v4s32_f32,          // llvm.nvvm.tex.1d.array.grad.v4s32.f32
-    nvvm_tex_1d_array_grad_v4u32_f32,          // llvm.nvvm.tex.1d.array.grad.v4u32.f32
-    nvvm_tex_1d_array_level_v4f32_f32,         // llvm.nvvm.tex.1d.array.level.v4f32.f32
-    nvvm_tex_1d_array_level_v4s32_f32,         // llvm.nvvm.tex.1d.array.level.v4s32.f32
-    nvvm_tex_1d_array_level_v4u32_f32,         // llvm.nvvm.tex.1d.array.level.v4u32.f32
-    nvvm_tex_1d_array_v4f32_f32,               // llvm.nvvm.tex.1d.array.v4f32.f32
-    nvvm_tex_1d_array_v4f32_s32,               // llvm.nvvm.tex.1d.array.v4f32.s32
-    nvvm_tex_1d_array_v4s32_f32,               // llvm.nvvm.tex.1d.array.v4s32.f32
-    nvvm_tex_1d_array_v4s32_s32,               // llvm.nvvm.tex.1d.array.v4s32.s32
-    nvvm_tex_1d_array_v4u32_f32,               // llvm.nvvm.tex.1d.array.v4u32.f32
-    nvvm_tex_1d_array_v4u32_s32,               // llvm.nvvm.tex.1d.array.v4u32.s32
-    nvvm_tex_1d_grad_v4f32_f32,                // llvm.nvvm.tex.1d.grad.v4f32.f32
-    nvvm_tex_1d_grad_v4s32_f32,                // llvm.nvvm.tex.1d.grad.v4s32.f32
-    nvvm_tex_1d_grad_v4u32_f32,                // llvm.nvvm.tex.1d.grad.v4u32.f32
-    nvvm_tex_1d_level_v4f32_f32,               // llvm.nvvm.tex.1d.level.v4f32.f32
-    nvvm_tex_1d_level_v4s32_f32,               // llvm.nvvm.tex.1d.level.v4s32.f32
-    nvvm_tex_1d_level_v4u32_f32,               // llvm.nvvm.tex.1d.level.v4u32.f32
-    nvvm_tex_1d_v4f32_f32,                     // llvm.nvvm.tex.1d.v4f32.f32
-    nvvm_tex_1d_v4f32_s32,                     // llvm.nvvm.tex.1d.v4f32.s32
-    nvvm_tex_1d_v4s32_f32,                     // llvm.nvvm.tex.1d.v4s32.f32
-    nvvm_tex_1d_v4s32_s32,                     // llvm.nvvm.tex.1d.v4s32.s32
-    nvvm_tex_1d_v4u32_f32,                     // llvm.nvvm.tex.1d.v4u32.f32
-    nvvm_tex_1d_v4u32_s32,                     // llvm.nvvm.tex.1d.v4u32.s32
-    nvvm_tex_2d_array_grad_v4f32_f32,          // llvm.nvvm.tex.2d.array.grad.v4f32.f32
-    nvvm_tex_2d_array_grad_v4s32_f32,          // llvm.nvvm.tex.2d.array.grad.v4s32.f32
-    nvvm_tex_2d_array_grad_v4u32_f32,          // llvm.nvvm.tex.2d.array.grad.v4u32.f32
-    nvvm_tex_2d_array_level_v4f32_f32,         // llvm.nvvm.tex.2d.array.level.v4f32.f32
-    nvvm_tex_2d_array_level_v4s32_f32,         // llvm.nvvm.tex.2d.array.level.v4s32.f32
-    nvvm_tex_2d_array_level_v4u32_f32,         // llvm.nvvm.tex.2d.array.level.v4u32.f32
-    nvvm_tex_2d_array_v4f32_f32,               // llvm.nvvm.tex.2d.array.v4f32.f32
-    nvvm_tex_2d_array_v4f32_s32,               // llvm.nvvm.tex.2d.array.v4f32.s32
-    nvvm_tex_2d_array_v4s32_f32,               // llvm.nvvm.tex.2d.array.v4s32.f32
-    nvvm_tex_2d_array_v4s32_s32,               // llvm.nvvm.tex.2d.array.v4s32.s32
-    nvvm_tex_2d_array_v4u32_f32,               // llvm.nvvm.tex.2d.array.v4u32.f32
-    nvvm_tex_2d_array_v4u32_s32,               // llvm.nvvm.tex.2d.array.v4u32.s32
-    nvvm_tex_2d_grad_v4f32_f32,                // llvm.nvvm.tex.2d.grad.v4f32.f32
-    nvvm_tex_2d_grad_v4s32_f32,                // llvm.nvvm.tex.2d.grad.v4s32.f32
-    nvvm_tex_2d_grad_v4u32_f32,                // llvm.nvvm.tex.2d.grad.v4u32.f32
-    nvvm_tex_2d_level_v4f32_f32,               // llvm.nvvm.tex.2d.level.v4f32.f32
-    nvvm_tex_2d_level_v4s32_f32,               // llvm.nvvm.tex.2d.level.v4s32.f32
-    nvvm_tex_2d_level_v4u32_f32,               // llvm.nvvm.tex.2d.level.v4u32.f32
-    nvvm_tex_2d_v4f32_f32,                     // llvm.nvvm.tex.2d.v4f32.f32
-    nvvm_tex_2d_v4f32_s32,                     // llvm.nvvm.tex.2d.v4f32.s32
-    nvvm_tex_2d_v4s32_f32,                     // llvm.nvvm.tex.2d.v4s32.f32
-    nvvm_tex_2d_v4s32_s32,                     // llvm.nvvm.tex.2d.v4s32.s32
-    nvvm_tex_2d_v4u32_f32,                     // llvm.nvvm.tex.2d.v4u32.f32
-    nvvm_tex_2d_v4u32_s32,                     // llvm.nvvm.tex.2d.v4u32.s32
-    nvvm_tex_3d_grad_v4f32_f32,                // llvm.nvvm.tex.3d.grad.v4f32.f32
-    nvvm_tex_3d_grad_v4s32_f32,                // llvm.nvvm.tex.3d.grad.v4s32.f32
-    nvvm_tex_3d_grad_v4u32_f32,                // llvm.nvvm.tex.3d.grad.v4u32.f32
-    nvvm_tex_3d_level_v4f32_f32,               // llvm.nvvm.tex.3d.level.v4f32.f32
-    nvvm_tex_3d_level_v4s32_f32,               // llvm.nvvm.tex.3d.level.v4s32.f32
-    nvvm_tex_3d_level_v4u32_f32,               // llvm.nvvm.tex.3d.level.v4u32.f32
-    nvvm_tex_3d_v4f32_f32,                     // llvm.nvvm.tex.3d.v4f32.f32
-    nvvm_tex_3d_v4f32_s32,                     // llvm.nvvm.tex.3d.v4f32.s32
-    nvvm_tex_3d_v4s32_f32,                     // llvm.nvvm.tex.3d.v4s32.f32
-    nvvm_tex_3d_v4s32_s32,                     // llvm.nvvm.tex.3d.v4s32.s32
-    nvvm_tex_3d_v4u32_f32,                     // llvm.nvvm.tex.3d.v4u32.f32
-    nvvm_tex_3d_v4u32_s32,                     // llvm.nvvm.tex.3d.v4u32.s32
-    nvvm_tex_cube_array_level_v4f32_f32,       // llvm.nvvm.tex.cube.array.level.v4f32.f32
-    nvvm_tex_cube_array_level_v4s32_f32,       // llvm.nvvm.tex.cube.array.level.v4s32.f32
-    nvvm_tex_cube_array_level_v4u32_f32,       // llvm.nvvm.tex.cube.array.level.v4u32.f32
-    nvvm_tex_cube_array_v4f32_f32,             // llvm.nvvm.tex.cube.array.v4f32.f32
-    nvvm_tex_cube_array_v4s32_f32,             // llvm.nvvm.tex.cube.array.v4s32.f32
-    nvvm_tex_cube_array_v4u32_f32,             // llvm.nvvm.tex.cube.array.v4u32.f32
-    nvvm_tex_cube_level_v4f32_f32,             // llvm.nvvm.tex.cube.level.v4f32.f32
-    nvvm_tex_cube_level_v4s32_f32,             // llvm.nvvm.tex.cube.level.v4s32.f32
-    nvvm_tex_cube_level_v4u32_f32,             // llvm.nvvm.tex.cube.level.v4u32.f32
-    nvvm_tex_cube_v4f32_f32,                   // llvm.nvvm.tex.cube.v4f32.f32
-    nvvm_tex_cube_v4s32_f32,                   // llvm.nvvm.tex.cube.v4s32.f32
-    nvvm_tex_cube_v4u32_f32,                   // llvm.nvvm.tex.cube.v4u32.f32
-    nvvm_tex_unified_1d_array_grad_v4f32_f32,  // llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32
-    nvvm_tex_unified_1d_array_grad_v4s32_f32,  // llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32
-    nvvm_tex_unified_1d_array_grad_v4u32_f32,  // llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32
-    nvvm_tex_unified_1d_array_level_v4f32_f32,  // llvm.nvvm.tex.unified.1d.array.level.v4f32.f32
-    nvvm_tex_unified_1d_array_level_v4s32_f32,  // llvm.nvvm.tex.unified.1d.array.level.v4s32.f32
-    nvvm_tex_unified_1d_array_level_v4u32_f32,  // llvm.nvvm.tex.unified.1d.array.level.v4u32.f32
-    nvvm_tex_unified_1d_array_v4f32_f32,       // llvm.nvvm.tex.unified.1d.array.v4f32.f32
-    nvvm_tex_unified_1d_array_v4f32_s32,       // llvm.nvvm.tex.unified.1d.array.v4f32.s32
-    nvvm_tex_unified_1d_array_v4s32_f32,       // llvm.nvvm.tex.unified.1d.array.v4s32.f32
-    nvvm_tex_unified_1d_array_v4s32_s32,       // llvm.nvvm.tex.unified.1d.array.v4s32.s32
-    nvvm_tex_unified_1d_array_v4u32_f32,       // llvm.nvvm.tex.unified.1d.array.v4u32.f32
-    nvvm_tex_unified_1d_array_v4u32_s32,       // llvm.nvvm.tex.unified.1d.array.v4u32.s32
-    nvvm_tex_unified_1d_grad_v4f32_f32,        // llvm.nvvm.tex.unified.1d.grad.v4f32.f32
-    nvvm_tex_unified_1d_grad_v4s32_f32,        // llvm.nvvm.tex.unified.1d.grad.v4s32.f32
-    nvvm_tex_unified_1d_grad_v4u32_f32,        // llvm.nvvm.tex.unified.1d.grad.v4u32.f32
-    nvvm_tex_unified_1d_level_v4f32_f32,       // llvm.nvvm.tex.unified.1d.level.v4f32.f32
-    nvvm_tex_unified_1d_level_v4s32_f32,       // llvm.nvvm.tex.unified.1d.level.v4s32.f32
-    nvvm_tex_unified_1d_level_v4u32_f32,       // llvm.nvvm.tex.unified.1d.level.v4u32.f32
-    nvvm_tex_unified_1d_v4f32_f32,             // llvm.nvvm.tex.unified.1d.v4f32.f32
-    nvvm_tex_unified_1d_v4f32_s32,             // llvm.nvvm.tex.unified.1d.v4f32.s32
-    nvvm_tex_unified_1d_v4s32_f32,             // llvm.nvvm.tex.unified.1d.v4s32.f32
-    nvvm_tex_unified_1d_v4s32_s32,             // llvm.nvvm.tex.unified.1d.v4s32.s32
-    nvvm_tex_unified_1d_v4u32_f32,             // llvm.nvvm.tex.unified.1d.v4u32.f32
-    nvvm_tex_unified_1d_v4u32_s32,             // llvm.nvvm.tex.unified.1d.v4u32.s32
-    nvvm_tex_unified_2d_array_grad_v4f32_f32,  // llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32
-    nvvm_tex_unified_2d_array_grad_v4s32_f32,  // llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32
-    nvvm_tex_unified_2d_array_grad_v4u32_f32,  // llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32
-    nvvm_tex_unified_2d_array_level_v4f32_f32,  // llvm.nvvm.tex.unified.2d.array.level.v4f32.f32
-    nvvm_tex_unified_2d_array_level_v4s32_f32,  // llvm.nvvm.tex.unified.2d.array.level.v4s32.f32
-    nvvm_tex_unified_2d_array_level_v4u32_f32,  // llvm.nvvm.tex.unified.2d.array.level.v4u32.f32
-    nvvm_tex_unified_2d_array_v4f32_f32,       // llvm.nvvm.tex.unified.2d.array.v4f32.f32
-    nvvm_tex_unified_2d_array_v4f32_s32,       // llvm.nvvm.tex.unified.2d.array.v4f32.s32
-    nvvm_tex_unified_2d_array_v4s32_f32,       // llvm.nvvm.tex.unified.2d.array.v4s32.f32
-    nvvm_tex_unified_2d_array_v4s32_s32,       // llvm.nvvm.tex.unified.2d.array.v4s32.s32
-    nvvm_tex_unified_2d_array_v4u32_f32,       // llvm.nvvm.tex.unified.2d.array.v4u32.f32
-    nvvm_tex_unified_2d_array_v4u32_s32,       // llvm.nvvm.tex.unified.2d.array.v4u32.s32
-    nvvm_tex_unified_2d_grad_v4f32_f32,        // llvm.nvvm.tex.unified.2d.grad.v4f32.f32
-    nvvm_tex_unified_2d_grad_v4s32_f32,        // llvm.nvvm.tex.unified.2d.grad.v4s32.f32
-    nvvm_tex_unified_2d_grad_v4u32_f32,        // llvm.nvvm.tex.unified.2d.grad.v4u32.f32
-    nvvm_tex_unified_2d_level_v4f32_f32,       // llvm.nvvm.tex.unified.2d.level.v4f32.f32
-    nvvm_tex_unified_2d_level_v4s32_f32,       // llvm.nvvm.tex.unified.2d.level.v4s32.f32
-    nvvm_tex_unified_2d_level_v4u32_f32,       // llvm.nvvm.tex.unified.2d.level.v4u32.f32
-    nvvm_tex_unified_2d_v4f32_f32,             // llvm.nvvm.tex.unified.2d.v4f32.f32
-    nvvm_tex_unified_2d_v4f32_s32,             // llvm.nvvm.tex.unified.2d.v4f32.s32
-    nvvm_tex_unified_2d_v4s32_f32,             // llvm.nvvm.tex.unified.2d.v4s32.f32
-    nvvm_tex_unified_2d_v4s32_s32,             // llvm.nvvm.tex.unified.2d.v4s32.s32
-    nvvm_tex_unified_2d_v4u32_f32,             // llvm.nvvm.tex.unified.2d.v4u32.f32
-    nvvm_tex_unified_2d_v4u32_s32,             // llvm.nvvm.tex.unified.2d.v4u32.s32
-    nvvm_tex_unified_3d_grad_v4f32_f32,        // llvm.nvvm.tex.unified.3d.grad.v4f32.f32
-    nvvm_tex_unified_3d_grad_v4s32_f32,        // llvm.nvvm.tex.unified.3d.grad.v4s32.f32
-    nvvm_tex_unified_3d_grad_v4u32_f32,        // llvm.nvvm.tex.unified.3d.grad.v4u32.f32
-    nvvm_tex_unified_3d_level_v4f32_f32,       // llvm.nvvm.tex.unified.3d.level.v4f32.f32
-    nvvm_tex_unified_3d_level_v4s32_f32,       // llvm.nvvm.tex.unified.3d.level.v4s32.f32
-    nvvm_tex_unified_3d_level_v4u32_f32,       // llvm.nvvm.tex.unified.3d.level.v4u32.f32
-    nvvm_tex_unified_3d_v4f32_f32,             // llvm.nvvm.tex.unified.3d.v4f32.f32
-    nvvm_tex_unified_3d_v4f32_s32,             // llvm.nvvm.tex.unified.3d.v4f32.s32
-    nvvm_tex_unified_3d_v4s32_f32,             // llvm.nvvm.tex.unified.3d.v4s32.f32
-    nvvm_tex_unified_3d_v4s32_s32,             // llvm.nvvm.tex.unified.3d.v4s32.s32
-    nvvm_tex_unified_3d_v4u32_f32,             // llvm.nvvm.tex.unified.3d.v4u32.f32
-    nvvm_tex_unified_3d_v4u32_s32,             // llvm.nvvm.tex.unified.3d.v4u32.s32
-    nvvm_tex_unified_cube_array_level_v4f32_f32,  // llvm.nvvm.tex.unified.cube.array.level.v4f32.f32
-    nvvm_tex_unified_cube_array_level_v4s32_f32,  // llvm.nvvm.tex.unified.cube.array.level.v4s32.f32
-    nvvm_tex_unified_cube_array_level_v4u32_f32,  // llvm.nvvm.tex.unified.cube.array.level.v4u32.f32
-    nvvm_tex_unified_cube_array_v4f32_f32,     // llvm.nvvm.tex.unified.cube.array.v4f32.f32
-    nvvm_tex_unified_cube_array_v4s32_f32,     // llvm.nvvm.tex.unified.cube.array.v4s32.f32
-    nvvm_tex_unified_cube_array_v4u32_f32,     // llvm.nvvm.tex.unified.cube.array.v4u32.f32
-    nvvm_tex_unified_cube_level_v4f32_f32,     // llvm.nvvm.tex.unified.cube.level.v4f32.f32
-    nvvm_tex_unified_cube_level_v4s32_f32,     // llvm.nvvm.tex.unified.cube.level.v4s32.f32
-    nvvm_tex_unified_cube_level_v4u32_f32,     // llvm.nvvm.tex.unified.cube.level.v4u32.f32
-    nvvm_tex_unified_cube_v4f32_f32,           // llvm.nvvm.tex.unified.cube.v4f32.f32
-    nvvm_tex_unified_cube_v4s32_f32,           // llvm.nvvm.tex.unified.cube.v4s32.f32
-    nvvm_tex_unified_cube_v4u32_f32,           // llvm.nvvm.tex.unified.cube.v4u32.f32
-    nvvm_texsurf_handle,                       // llvm.nvvm.texsurf.handle
-    nvvm_texsurf_handle_internal,              // llvm.nvvm.texsurf.handle.internal
-    nvvm_tld4_a_2d_v4f32_f32,                  // llvm.nvvm.tld4.a.2d.v4f32.f32
-    nvvm_tld4_a_2d_v4s32_f32,                  // llvm.nvvm.tld4.a.2d.v4s32.f32
-    nvvm_tld4_a_2d_v4u32_f32,                  // llvm.nvvm.tld4.a.2d.v4u32.f32
-    nvvm_tld4_b_2d_v4f32_f32,                  // llvm.nvvm.tld4.b.2d.v4f32.f32
-    nvvm_tld4_b_2d_v4s32_f32,                  // llvm.nvvm.tld4.b.2d.v4s32.f32
-    nvvm_tld4_b_2d_v4u32_f32,                  // llvm.nvvm.tld4.b.2d.v4u32.f32
-    nvvm_tld4_g_2d_v4f32_f32,                  // llvm.nvvm.tld4.g.2d.v4f32.f32
-    nvvm_tld4_g_2d_v4s32_f32,                  // llvm.nvvm.tld4.g.2d.v4s32.f32
-    nvvm_tld4_g_2d_v4u32_f32,                  // llvm.nvvm.tld4.g.2d.v4u32.f32
-    nvvm_tld4_r_2d_v4f32_f32,                  // llvm.nvvm.tld4.r.2d.v4f32.f32
-    nvvm_tld4_r_2d_v4s32_f32,                  // llvm.nvvm.tld4.r.2d.v4s32.f32
-    nvvm_tld4_r_2d_v4u32_f32,                  // llvm.nvvm.tld4.r.2d.v4u32.f32
-    nvvm_tld4_unified_a_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.a.2d.v4f32.f32
-    nvvm_tld4_unified_a_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.a.2d.v4s32.f32
-    nvvm_tld4_unified_a_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.a.2d.v4u32.f32
-    nvvm_tld4_unified_b_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.b.2d.v4f32.f32
-    nvvm_tld4_unified_b_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.b.2d.v4s32.f32
-    nvvm_tld4_unified_b_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.b.2d.v4u32.f32
-    nvvm_tld4_unified_g_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.g.2d.v4f32.f32
-    nvvm_tld4_unified_g_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.g.2d.v4s32.f32
-    nvvm_tld4_unified_g_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.g.2d.v4u32.f32
-    nvvm_tld4_unified_r_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.r.2d.v4f32.f32
-    nvvm_tld4_unified_r_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.r.2d.v4s32.f32
-    nvvm_tld4_unified_r_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.r.2d.v4u32.f32
-    nvvm_trunc_d,                              // llvm.nvvm.trunc.d
-    nvvm_trunc_f,                              // llvm.nvvm.trunc.f
-    nvvm_trunc_ftz_f,                          // llvm.nvvm.trunc.ftz.f
-    nvvm_txq_array_size,                       // llvm.nvvm.txq.array.size
-    nvvm_txq_channel_data_type,                // llvm.nvvm.txq.channel.data.type
-    nvvm_txq_channel_order,                    // llvm.nvvm.txq.channel.order
-    nvvm_txq_depth,                            // llvm.nvvm.txq.depth
-    nvvm_txq_height,                           // llvm.nvvm.txq.height
-    nvvm_txq_num_mipmap_levels,                // llvm.nvvm.txq.num.mipmap.levels
-    nvvm_txq_num_samples,                      // llvm.nvvm.txq.num.samples
-    nvvm_txq_width,                            // llvm.nvvm.txq.width
-    nvvm_ui2d_rm,                              // llvm.nvvm.ui2d.rm
-    nvvm_ui2d_rn,                              // llvm.nvvm.ui2d.rn
-    nvvm_ui2d_rp,                              // llvm.nvvm.ui2d.rp
-    nvvm_ui2d_rz,                              // llvm.nvvm.ui2d.rz
-    nvvm_ui2f_rm,                              // llvm.nvvm.ui2f.rm
-    nvvm_ui2f_rn,                              // llvm.nvvm.ui2f.rn
-    nvvm_ui2f_rp,                              // llvm.nvvm.ui2f.rp
-    nvvm_ui2f_rz,                              // llvm.nvvm.ui2f.rz
-    nvvm_ull2d_rm,                             // llvm.nvvm.ull2d.rm
-    nvvm_ull2d_rn,                             // llvm.nvvm.ull2d.rn
-    nvvm_ull2d_rp,                             // llvm.nvvm.ull2d.rp
-    nvvm_ull2d_rz,                             // llvm.nvvm.ull2d.rz
-    nvvm_ull2f_rm,                             // llvm.nvvm.ull2f.rm
-    nvvm_ull2f_rn,                             // llvm.nvvm.ull2f.rn
-    nvvm_ull2f_rp,                             // llvm.nvvm.ull2f.rp
-    nvvm_ull2f_rz,                             // llvm.nvvm.ull2f.rz
-    nvvm_vote_all,                             // llvm.nvvm.vote.all
-    nvvm_vote_all_sync,                        // llvm.nvvm.vote.all.sync
-    nvvm_vote_any,                             // llvm.nvvm.vote.any
-    nvvm_vote_any_sync,                        // llvm.nvvm.vote.any.sync
-    nvvm_vote_ballot,                          // llvm.nvvm.vote.ballot
-    nvvm_vote_ballot_sync,                     // llvm.nvvm.vote.ballot.sync
-    nvvm_vote_uni,                             // llvm.nvvm.vote.uni
-    nvvm_vote_uni_sync,                        // llvm.nvvm.vote.uni.sync
-    nvvm_wmma_m16n16k16_load_a_f16_col,        // llvm.nvvm.wmma.m16n16k16.load.a.col.f16
-    nvvm_wmma_m16n16k16_load_a_f16_col_stride,  // llvm.nvvm.wmma.m16n16k16.load.a.col.stride.f16
-    nvvm_wmma_m16n16k16_load_a_f16_row,        // llvm.nvvm.wmma.m16n16k16.load.a.row.f16
-    nvvm_wmma_m16n16k16_load_a_f16_row_stride,  // llvm.nvvm.wmma.m16n16k16.load.a.row.stride.f16
-    nvvm_wmma_m16n16k16_load_b_f16_col,        // llvm.nvvm.wmma.m16n16k16.load.b.col.f16
-    nvvm_wmma_m16n16k16_load_b_f16_col_stride,  // llvm.nvvm.wmma.m16n16k16.load.b.col.stride.f16
-    nvvm_wmma_m16n16k16_load_b_f16_row,        // llvm.nvvm.wmma.m16n16k16.load.b.row.f16
-    nvvm_wmma_m16n16k16_load_b_f16_row_stride,  // llvm.nvvm.wmma.m16n16k16.load.b.row.stride.f16
-    nvvm_wmma_m16n16k16_load_c_f16_col,        // llvm.nvvm.wmma.m16n16k16.load.c.col.f16
-    nvvm_wmma_m16n16k16_load_c_f32_col,        // llvm.nvvm.wmma.m16n16k16.load.c.col.f32
-    nvvm_wmma_m16n16k16_load_c_f16_col_stride,  // llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f16
-    nvvm_wmma_m16n16k16_load_c_f32_col_stride,  // llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f32
-    nvvm_wmma_m16n16k16_load_c_f16_row,        // llvm.nvvm.wmma.m16n16k16.load.c.row.f16
-    nvvm_wmma_m16n16k16_load_c_f32_row,        // llvm.nvvm.wmma.m16n16k16.load.c.row.f32
-    nvvm_wmma_m16n16k16_load_c_f16_row_stride,  // llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f16
-    nvvm_wmma_m16n16k16_load_c_f32_row_stride,  // llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f32
-    nvvm_wmma_m16n16k16_mma_col_col_f16_f16,   // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16
-    nvvm_wmma_m16n16k16_mma_col_col_f16_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16.satfinite
-    nvvm_wmma_m16n16k16_mma_col_col_f16_f32,   // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32
-    nvvm_wmma_m16n16k16_mma_col_col_f16_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32.satfinite
-    nvvm_wmma_m16n16k16_mma_col_col_f32_f16,   // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16
-    nvvm_wmma_m16n16k16_mma_col_col_f32_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16.satfinite
-    nvvm_wmma_m16n16k16_mma_col_col_f32_f32,   // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32
-    nvvm_wmma_m16n16k16_mma_col_col_f32_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32.satfinite
-    nvvm_wmma_m16n16k16_mma_col_row_f16_f16,   // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16
-    nvvm_wmma_m16n16k16_mma_col_row_f16_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16.satfinite
-    nvvm_wmma_m16n16k16_mma_col_row_f16_f32,   // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32
-    nvvm_wmma_m16n16k16_mma_col_row_f16_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32.satfinite
-    nvvm_wmma_m16n16k16_mma_col_row_f32_f16,   // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16
-    nvvm_wmma_m16n16k16_mma_col_row_f32_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16.satfinite
-    nvvm_wmma_m16n16k16_mma_col_row_f32_f32,   // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32
-    nvvm_wmma_m16n16k16_mma_col_row_f32_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32.satfinite
-    nvvm_wmma_m16n16k16_mma_row_col_f16_f16,   // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16
-    nvvm_wmma_m16n16k16_mma_row_col_f16_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16.satfinite
-    nvvm_wmma_m16n16k16_mma_row_col_f16_f32,   // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32
-    nvvm_wmma_m16n16k16_mma_row_col_f16_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32.satfinite
-    nvvm_wmma_m16n16k16_mma_row_col_f32_f16,   // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16
-    nvvm_wmma_m16n16k16_mma_row_col_f32_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16.satfinite
-    nvvm_wmma_m16n16k16_mma_row_col_f32_f32,   // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32
-    nvvm_wmma_m16n16k16_mma_row_col_f32_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32.satfinite
-    nvvm_wmma_m16n16k16_mma_row_row_f16_f16,   // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16
-    nvvm_wmma_m16n16k16_mma_row_row_f16_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16.satfinite
-    nvvm_wmma_m16n16k16_mma_row_row_f16_f32,   // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32
-    nvvm_wmma_m16n16k16_mma_row_row_f16_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32.satfinite
-    nvvm_wmma_m16n16k16_mma_row_row_f32_f16,   // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16
-    nvvm_wmma_m16n16k16_mma_row_row_f32_f16_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16.satfinite
-    nvvm_wmma_m16n16k16_mma_row_row_f32_f32,   // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32
-    nvvm_wmma_m16n16k16_mma_row_row_f32_f32_satfinite,  // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32.satfinite
-    nvvm_wmma_m16n16k16_store_d_f16_col,       // llvm.nvvm.wmma.m16n16k16.store.d.col.f16
-    nvvm_wmma_m16n16k16_store_d_f32_col,       // llvm.nvvm.wmma.m16n16k16.store.d.col.f32
-    nvvm_wmma_m16n16k16_store_d_f16_col_stride,  // llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f16
-    nvvm_wmma_m16n16k16_store_d_f32_col_stride,  // llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f32
-    nvvm_wmma_m16n16k16_store_d_f16_row,       // llvm.nvvm.wmma.m16n16k16.store.d.row.f16
-    nvvm_wmma_m16n16k16_store_d_f32_row,       // llvm.nvvm.wmma.m16n16k16.store.d.row.f32
-    nvvm_wmma_m16n16k16_store_d_f16_row_stride,  // llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f16
-    nvvm_wmma_m16n16k16_store_d_f32_row_stride,  // llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f32
-    ppc_altivec_crypto_vcipher,                // llvm.ppc.altivec.crypto.vcipher
-    ppc_altivec_crypto_vcipherlast,            // llvm.ppc.altivec.crypto.vcipherlast
-    ppc_altivec_crypto_vncipher,               // llvm.ppc.altivec.crypto.vncipher
-    ppc_altivec_crypto_vncipherlast,           // llvm.ppc.altivec.crypto.vncipherlast
-    ppc_altivec_crypto_vpermxor,               // llvm.ppc.altivec.crypto.vpermxor
-    ppc_altivec_crypto_vpmsumb,                // llvm.ppc.altivec.crypto.vpmsumb
-    ppc_altivec_crypto_vpmsumd,                // llvm.ppc.altivec.crypto.vpmsumd
-    ppc_altivec_crypto_vpmsumh,                // llvm.ppc.altivec.crypto.vpmsumh
-    ppc_altivec_crypto_vpmsumw,                // llvm.ppc.altivec.crypto.vpmsumw
-    ppc_altivec_crypto_vsbox,                  // llvm.ppc.altivec.crypto.vsbox
-    ppc_altivec_crypto_vshasigmad,             // llvm.ppc.altivec.crypto.vshasigmad
-    ppc_altivec_crypto_vshasigmaw,             // llvm.ppc.altivec.crypto.vshasigmaw
-    ppc_altivec_dss,                           // llvm.ppc.altivec.dss
-    ppc_altivec_dssall,                        // llvm.ppc.altivec.dssall
-    ppc_altivec_dst,                           // llvm.ppc.altivec.dst
-    ppc_altivec_dstst,                         // llvm.ppc.altivec.dstst
-    ppc_altivec_dststt,                        // llvm.ppc.altivec.dststt
-    ppc_altivec_dstt,                          // llvm.ppc.altivec.dstt
-    ppc_altivec_lvebx,                         // llvm.ppc.altivec.lvebx
-    ppc_altivec_lvehx,                         // llvm.ppc.altivec.lvehx
-    ppc_altivec_lvewx,                         // llvm.ppc.altivec.lvewx
-    ppc_altivec_lvsl,                          // llvm.ppc.altivec.lvsl
-    ppc_altivec_lvsr,                          // llvm.ppc.altivec.lvsr
-    ppc_altivec_lvx,                           // llvm.ppc.altivec.lvx
-    ppc_altivec_lvxl,                          // llvm.ppc.altivec.lvxl
-    ppc_altivec_mfvscr,                        // llvm.ppc.altivec.mfvscr
-    ppc_altivec_mtvscr,                        // llvm.ppc.altivec.mtvscr
-    ppc_altivec_stvebx,                        // llvm.ppc.altivec.stvebx
-    ppc_altivec_stvehx,                        // llvm.ppc.altivec.stvehx
-    ppc_altivec_stvewx,                        // llvm.ppc.altivec.stvewx
-    ppc_altivec_stvx,                          // llvm.ppc.altivec.stvx
-    ppc_altivec_stvxl,                         // llvm.ppc.altivec.stvxl
-    ppc_altivec_vabsdub,                       // llvm.ppc.altivec.vabsdub
-    ppc_altivec_vabsduh,                       // llvm.ppc.altivec.vabsduh
-    ppc_altivec_vabsduw,                       // llvm.ppc.altivec.vabsduw
-    ppc_altivec_vaddcuq,                       // llvm.ppc.altivec.vaddcuq
-    ppc_altivec_vaddcuw,                       // llvm.ppc.altivec.vaddcuw
-    ppc_altivec_vaddecuq,                      // llvm.ppc.altivec.vaddecuq
-    ppc_altivec_vaddeuqm,                      // llvm.ppc.altivec.vaddeuqm
-    ppc_altivec_vaddsbs,                       // llvm.ppc.altivec.vaddsbs
-    ppc_altivec_vaddshs,                       // llvm.ppc.altivec.vaddshs
-    ppc_altivec_vaddsws,                       // llvm.ppc.altivec.vaddsws
-    ppc_altivec_vaddubs,                       // llvm.ppc.altivec.vaddubs
-    ppc_altivec_vadduhs,                       // llvm.ppc.altivec.vadduhs
-    ppc_altivec_vadduws,                       // llvm.ppc.altivec.vadduws
-    ppc_altivec_vavgsb,                        // llvm.ppc.altivec.vavgsb
-    ppc_altivec_vavgsh,                        // llvm.ppc.altivec.vavgsh
-    ppc_altivec_vavgsw,                        // llvm.ppc.altivec.vavgsw
-    ppc_altivec_vavgub,                        // llvm.ppc.altivec.vavgub
-    ppc_altivec_vavguh,                        // llvm.ppc.altivec.vavguh
-    ppc_altivec_vavguw,                        // llvm.ppc.altivec.vavguw
-    ppc_altivec_vbpermq,                       // llvm.ppc.altivec.vbpermq
-    ppc_altivec_vcfsx,                         // llvm.ppc.altivec.vcfsx
-    ppc_altivec_vcfux,                         // llvm.ppc.altivec.vcfux
-    ppc_altivec_vclzlsbb,                      // llvm.ppc.altivec.vclzlsbb
-    ppc_altivec_vcmpbfp,                       // llvm.ppc.altivec.vcmpbfp
-    ppc_altivec_vcmpbfp_p,                     // llvm.ppc.altivec.vcmpbfp.p
-    ppc_altivec_vcmpeqfp,                      // llvm.ppc.altivec.vcmpeqfp
-    ppc_altivec_vcmpeqfp_p,                    // llvm.ppc.altivec.vcmpeqfp.p
-    ppc_altivec_vcmpequb,                      // llvm.ppc.altivec.vcmpequb
-    ppc_altivec_vcmpequb_p,                    // llvm.ppc.altivec.vcmpequb.p
-    ppc_altivec_vcmpequd,                      // llvm.ppc.altivec.vcmpequd
-    ppc_altivec_vcmpequd_p,                    // llvm.ppc.altivec.vcmpequd.p
-    ppc_altivec_vcmpequh,                      // llvm.ppc.altivec.vcmpequh
-    ppc_altivec_vcmpequh_p,                    // llvm.ppc.altivec.vcmpequh.p
-    ppc_altivec_vcmpequw,                      // llvm.ppc.altivec.vcmpequw
-    ppc_altivec_vcmpequw_p,                    // llvm.ppc.altivec.vcmpequw.p
-    ppc_altivec_vcmpgefp,                      // llvm.ppc.altivec.vcmpgefp
-    ppc_altivec_vcmpgefp_p,                    // llvm.ppc.altivec.vcmpgefp.p
-    ppc_altivec_vcmpgtfp,                      // llvm.ppc.altivec.vcmpgtfp
-    ppc_altivec_vcmpgtfp_p,                    // llvm.ppc.altivec.vcmpgtfp.p
-    ppc_altivec_vcmpgtsb,                      // llvm.ppc.altivec.vcmpgtsb
-    ppc_altivec_vcmpgtsb_p,                    // llvm.ppc.altivec.vcmpgtsb.p
-    ppc_altivec_vcmpgtsd,                      // llvm.ppc.altivec.vcmpgtsd
-    ppc_altivec_vcmpgtsd_p,                    // llvm.ppc.altivec.vcmpgtsd.p
-    ppc_altivec_vcmpgtsh,                      // llvm.ppc.altivec.vcmpgtsh
-    ppc_altivec_vcmpgtsh_p,                    // llvm.ppc.altivec.vcmpgtsh.p
-    ppc_altivec_vcmpgtsw,                      // llvm.ppc.altivec.vcmpgtsw
-    ppc_altivec_vcmpgtsw_p,                    // llvm.ppc.altivec.vcmpgtsw.p
-    ppc_altivec_vcmpgtub,                      // llvm.ppc.altivec.vcmpgtub
-    ppc_altivec_vcmpgtub_p,                    // llvm.ppc.altivec.vcmpgtub.p
-    ppc_altivec_vcmpgtud,                      // llvm.ppc.altivec.vcmpgtud
-    ppc_altivec_vcmpgtud_p,                    // llvm.ppc.altivec.vcmpgtud.p
-    ppc_altivec_vcmpgtuh,                      // llvm.ppc.altivec.vcmpgtuh
-    ppc_altivec_vcmpgtuh_p,                    // llvm.ppc.altivec.vcmpgtuh.p
-    ppc_altivec_vcmpgtuw,                      // llvm.ppc.altivec.vcmpgtuw
-    ppc_altivec_vcmpgtuw_p,                    // llvm.ppc.altivec.vcmpgtuw.p
-    ppc_altivec_vcmpneb,                       // llvm.ppc.altivec.vcmpneb
-    ppc_altivec_vcmpneb_p,                     // llvm.ppc.altivec.vcmpneb.p
-    ppc_altivec_vcmpneh,                       // llvm.ppc.altivec.vcmpneh
-    ppc_altivec_vcmpneh_p,                     // llvm.ppc.altivec.vcmpneh.p
-    ppc_altivec_vcmpnew,                       // llvm.ppc.altivec.vcmpnew
-    ppc_altivec_vcmpnew_p,                     // llvm.ppc.altivec.vcmpnew.p
-    ppc_altivec_vcmpnezb,                      // llvm.ppc.altivec.vcmpnezb
-    ppc_altivec_vcmpnezb_p,                    // llvm.ppc.altivec.vcmpnezb.p
-    ppc_altivec_vcmpnezh,                      // llvm.ppc.altivec.vcmpnezh
-    ppc_altivec_vcmpnezh_p,                    // llvm.ppc.altivec.vcmpnezh.p
-    ppc_altivec_vcmpnezw,                      // llvm.ppc.altivec.vcmpnezw
-    ppc_altivec_vcmpnezw_p,                    // llvm.ppc.altivec.vcmpnezw.p
-    ppc_altivec_vctsxs,                        // llvm.ppc.altivec.vctsxs
-    ppc_altivec_vctuxs,                        // llvm.ppc.altivec.vctuxs
-    ppc_altivec_vctzlsbb,                      // llvm.ppc.altivec.vctzlsbb
-    ppc_altivec_vexptefp,                      // llvm.ppc.altivec.vexptefp
-    ppc_altivec_vgbbd,                         // llvm.ppc.altivec.vgbbd
-    ppc_altivec_vlogefp,                       // llvm.ppc.altivec.vlogefp
-    ppc_altivec_vmaddfp,                       // llvm.ppc.altivec.vmaddfp
-    ppc_altivec_vmaxfp,                        // llvm.ppc.altivec.vmaxfp
-    ppc_altivec_vmaxsb,                        // llvm.ppc.altivec.vmaxsb
-    ppc_altivec_vmaxsd,                        // llvm.ppc.altivec.vmaxsd
-    ppc_altivec_vmaxsh,                        // llvm.ppc.altivec.vmaxsh
-    ppc_altivec_vmaxsw,                        // llvm.ppc.altivec.vmaxsw
-    ppc_altivec_vmaxub,                        // llvm.ppc.altivec.vmaxub
-    ppc_altivec_vmaxud,                        // llvm.ppc.altivec.vmaxud
-    ppc_altivec_vmaxuh,                        // llvm.ppc.altivec.vmaxuh
-    ppc_altivec_vmaxuw,                        // llvm.ppc.altivec.vmaxuw
-    ppc_altivec_vmhaddshs,                     // llvm.ppc.altivec.vmhaddshs
-    ppc_altivec_vmhraddshs,                    // llvm.ppc.altivec.vmhraddshs
-    ppc_altivec_vminfp,                        // llvm.ppc.altivec.vminfp
-    ppc_altivec_vminsb,                        // llvm.ppc.altivec.vminsb
-    ppc_altivec_vminsd,                        // llvm.ppc.altivec.vminsd
-    ppc_altivec_vminsh,                        // llvm.ppc.altivec.vminsh
-    ppc_altivec_vminsw,                        // llvm.ppc.altivec.vminsw
-    ppc_altivec_vminub,                        // llvm.ppc.altivec.vminub
-    ppc_altivec_vminud,                        // llvm.ppc.altivec.vminud
-    ppc_altivec_vminuh,                        // llvm.ppc.altivec.vminuh
-    ppc_altivec_vminuw,                        // llvm.ppc.altivec.vminuw
-    ppc_altivec_vmladduhm,                     // llvm.ppc.altivec.vmladduhm
-    ppc_altivec_vmsummbm,                      // llvm.ppc.altivec.vmsummbm
-    ppc_altivec_vmsumshm,                      // llvm.ppc.altivec.vmsumshm
-    ppc_altivec_vmsumshs,                      // llvm.ppc.altivec.vmsumshs
-    ppc_altivec_vmsumubm,                      // llvm.ppc.altivec.vmsumubm
-    ppc_altivec_vmsumuhm,                      // llvm.ppc.altivec.vmsumuhm
-    ppc_altivec_vmsumuhs,                      // llvm.ppc.altivec.vmsumuhs
-    ppc_altivec_vmulesb,                       // llvm.ppc.altivec.vmulesb
-    ppc_altivec_vmulesh,                       // llvm.ppc.altivec.vmulesh
-    ppc_altivec_vmulesw,                       // llvm.ppc.altivec.vmulesw
-    ppc_altivec_vmuleub,                       // llvm.ppc.altivec.vmuleub
-    ppc_altivec_vmuleuh,                       // llvm.ppc.altivec.vmuleuh
-    ppc_altivec_vmuleuw,                       // llvm.ppc.altivec.vmuleuw
-    ppc_altivec_vmulosb,                       // llvm.ppc.altivec.vmulosb
-    ppc_altivec_vmulosh,                       // llvm.ppc.altivec.vmulosh
-    ppc_altivec_vmulosw,                       // llvm.ppc.altivec.vmulosw
-    ppc_altivec_vmuloub,                       // llvm.ppc.altivec.vmuloub
-    ppc_altivec_vmulouh,                       // llvm.ppc.altivec.vmulouh
-    ppc_altivec_vmulouw,                       // llvm.ppc.altivec.vmulouw
-    ppc_altivec_vnmsubfp,                      // llvm.ppc.altivec.vnmsubfp
-    ppc_altivec_vperm,                         // llvm.ppc.altivec.vperm
-    ppc_altivec_vpkpx,                         // llvm.ppc.altivec.vpkpx
-    ppc_altivec_vpksdss,                       // llvm.ppc.altivec.vpksdss
-    ppc_altivec_vpksdus,                       // llvm.ppc.altivec.vpksdus
-    ppc_altivec_vpkshss,                       // llvm.ppc.altivec.vpkshss
-    ppc_altivec_vpkshus,                       // llvm.ppc.altivec.vpkshus
-    ppc_altivec_vpkswss,                       // llvm.ppc.altivec.vpkswss
-    ppc_altivec_vpkswus,                       // llvm.ppc.altivec.vpkswus
-    ppc_altivec_vpkudus,                       // llvm.ppc.altivec.vpkudus
-    ppc_altivec_vpkuhus,                       // llvm.ppc.altivec.vpkuhus
-    ppc_altivec_vpkuwus,                       // llvm.ppc.altivec.vpkuwus
-    ppc_altivec_vprtybd,                       // llvm.ppc.altivec.vprtybd
-    ppc_altivec_vprtybq,                       // llvm.ppc.altivec.vprtybq
-    ppc_altivec_vprtybw,                       // llvm.ppc.altivec.vprtybw
-    ppc_altivec_vrefp,                         // llvm.ppc.altivec.vrefp
-    ppc_altivec_vrfim,                         // llvm.ppc.altivec.vrfim
-    ppc_altivec_vrfin,                         // llvm.ppc.altivec.vrfin
-    ppc_altivec_vrfip,                         // llvm.ppc.altivec.vrfip
-    ppc_altivec_vrfiz,                         // llvm.ppc.altivec.vrfiz
-    ppc_altivec_vrlb,                          // llvm.ppc.altivec.vrlb
-    ppc_altivec_vrld,                          // llvm.ppc.altivec.vrld
-    ppc_altivec_vrldmi,                        // llvm.ppc.altivec.vrldmi
-    ppc_altivec_vrldnm,                        // llvm.ppc.altivec.vrldnm
-    ppc_altivec_vrlh,                          // llvm.ppc.altivec.vrlh
-    ppc_altivec_vrlw,                          // llvm.ppc.altivec.vrlw
-    ppc_altivec_vrlwmi,                        // llvm.ppc.altivec.vrlwmi
-    ppc_altivec_vrlwnm,                        // llvm.ppc.altivec.vrlwnm
-    ppc_altivec_vrsqrtefp,                     // llvm.ppc.altivec.vrsqrtefp
-    ppc_altivec_vsel,                          // llvm.ppc.altivec.vsel
-    ppc_altivec_vsl,                           // llvm.ppc.altivec.vsl
-    ppc_altivec_vslb,                          // llvm.ppc.altivec.vslb
-    ppc_altivec_vslh,                          // llvm.ppc.altivec.vslh
-    ppc_altivec_vslo,                          // llvm.ppc.altivec.vslo
-    ppc_altivec_vslv,                          // llvm.ppc.altivec.vslv
-    ppc_altivec_vslw,                          // llvm.ppc.altivec.vslw
-    ppc_altivec_vsr,                           // llvm.ppc.altivec.vsr
-    ppc_altivec_vsrab,                         // llvm.ppc.altivec.vsrab
-    ppc_altivec_vsrah,                         // llvm.ppc.altivec.vsrah
-    ppc_altivec_vsraw,                         // llvm.ppc.altivec.vsraw
-    ppc_altivec_vsrb,                          // llvm.ppc.altivec.vsrb
-    ppc_altivec_vsrh,                          // llvm.ppc.altivec.vsrh
-    ppc_altivec_vsro,                          // llvm.ppc.altivec.vsro
-    ppc_altivec_vsrv,                          // llvm.ppc.altivec.vsrv
-    ppc_altivec_vsrw,                          // llvm.ppc.altivec.vsrw
-    ppc_altivec_vsubcuq,                       // llvm.ppc.altivec.vsubcuq
-    ppc_altivec_vsubcuw,                       // llvm.ppc.altivec.vsubcuw
-    ppc_altivec_vsubecuq,                      // llvm.ppc.altivec.vsubecuq
-    ppc_altivec_vsubeuqm,                      // llvm.ppc.altivec.vsubeuqm
-    ppc_altivec_vsubsbs,                       // llvm.ppc.altivec.vsubsbs
-    ppc_altivec_vsubshs,                       // llvm.ppc.altivec.vsubshs
-    ppc_altivec_vsubsws,                       // llvm.ppc.altivec.vsubsws
-    ppc_altivec_vsububs,                       // llvm.ppc.altivec.vsububs
-    ppc_altivec_vsubuhs,                       // llvm.ppc.altivec.vsubuhs
-    ppc_altivec_vsubuws,                       // llvm.ppc.altivec.vsubuws
-    ppc_altivec_vsum2sws,                      // llvm.ppc.altivec.vsum2sws
-    ppc_altivec_vsum4sbs,                      // llvm.ppc.altivec.vsum4sbs
-    ppc_altivec_vsum4shs,                      // llvm.ppc.altivec.vsum4shs
-    ppc_altivec_vsum4ubs,                      // llvm.ppc.altivec.vsum4ubs
-    ppc_altivec_vsumsws,                       // llvm.ppc.altivec.vsumsws
-    ppc_altivec_vupkhpx,                       // llvm.ppc.altivec.vupkhpx
-    ppc_altivec_vupkhsb,                       // llvm.ppc.altivec.vupkhsb
-    ppc_altivec_vupkhsh,                       // llvm.ppc.altivec.vupkhsh
-    ppc_altivec_vupkhsw,                       // llvm.ppc.altivec.vupkhsw
-    ppc_altivec_vupklpx,                       // llvm.ppc.altivec.vupklpx
-    ppc_altivec_vupklsb,                       // llvm.ppc.altivec.vupklsb
-    ppc_altivec_vupklsh,                       // llvm.ppc.altivec.vupklsh
-    ppc_altivec_vupklsw,                       // llvm.ppc.altivec.vupklsw
-    ppc_bpermd,                                // llvm.ppc.bpermd
-    ppc_cfence,                                // llvm.ppc.cfence
-    ppc_dcba,                                  // llvm.ppc.dcba
-    ppc_dcbf,                                  // llvm.ppc.dcbf
-    ppc_dcbi,                                  // llvm.ppc.dcbi
-    ppc_dcbst,                                 // llvm.ppc.dcbst
-    ppc_dcbt,                                  // llvm.ppc.dcbt
-    ppc_dcbtst,                                // llvm.ppc.dcbtst
-    ppc_dcbz,                                  // llvm.ppc.dcbz
-    ppc_dcbzl,                                 // llvm.ppc.dcbzl
-    ppc_divde,                                 // llvm.ppc.divde
-    ppc_divdeu,                                // llvm.ppc.divdeu
-    ppc_divwe,                                 // llvm.ppc.divwe
-    ppc_divweu,                                // llvm.ppc.divweu
-    ppc_get_texasr,                            // llvm.ppc.get.texasr
-    ppc_get_texasru,                           // llvm.ppc.get.texasru
-    ppc_get_tfhar,                             // llvm.ppc.get.tfhar
-    ppc_get_tfiar,                             // llvm.ppc.get.tfiar
-    ppc_is_decremented_ctr_nonzero,            // llvm.ppc.is.decremented.ctr.nonzero
-    ppc_lwsync,                                // llvm.ppc.lwsync
-    ppc_mtctr,                                 // llvm.ppc.mtctr
-    ppc_qpx_qvfabs,                            // llvm.ppc.qpx.qvfabs
-    ppc_qpx_qvfadd,                            // llvm.ppc.qpx.qvfadd
-    ppc_qpx_qvfadds,                           // llvm.ppc.qpx.qvfadds
-    ppc_qpx_qvfcfid,                           // llvm.ppc.qpx.qvfcfid
-    ppc_qpx_qvfcfids,                          // llvm.ppc.qpx.qvfcfids
-    ppc_qpx_qvfcfidu,                          // llvm.ppc.qpx.qvfcfidu
-    ppc_qpx_qvfcfidus,                         // llvm.ppc.qpx.qvfcfidus
-    ppc_qpx_qvfcmpeq,                          // llvm.ppc.qpx.qvfcmpeq
-    ppc_qpx_qvfcmpgt,                          // llvm.ppc.qpx.qvfcmpgt
-    ppc_qpx_qvfcmplt,                          // llvm.ppc.qpx.qvfcmplt
-    ppc_qpx_qvfcpsgn,                          // llvm.ppc.qpx.qvfcpsgn
-    ppc_qpx_qvfctid,                           // llvm.ppc.qpx.qvfctid
-    ppc_qpx_qvfctidu,                          // llvm.ppc.qpx.qvfctidu
-    ppc_qpx_qvfctiduz,                         // llvm.ppc.qpx.qvfctiduz
-    ppc_qpx_qvfctidz,                          // llvm.ppc.qpx.qvfctidz
-    ppc_qpx_qvfctiw,                           // llvm.ppc.qpx.qvfctiw
-    ppc_qpx_qvfctiwu,                          // llvm.ppc.qpx.qvfctiwu
-    ppc_qpx_qvfctiwuz,                         // llvm.ppc.qpx.qvfctiwuz
-    ppc_qpx_qvfctiwz,                          // llvm.ppc.qpx.qvfctiwz
-    ppc_qpx_qvflogical,                        // llvm.ppc.qpx.qvflogical
-    ppc_qpx_qvfmadd,                           // llvm.ppc.qpx.qvfmadd
-    ppc_qpx_qvfmadds,                          // llvm.ppc.qpx.qvfmadds
-    ppc_qpx_qvfmsub,                           // llvm.ppc.qpx.qvfmsub
-    ppc_qpx_qvfmsubs,                          // llvm.ppc.qpx.qvfmsubs
-    ppc_qpx_qvfmul,                            // llvm.ppc.qpx.qvfmul
-    ppc_qpx_qvfmuls,                           // llvm.ppc.qpx.qvfmuls
-    ppc_qpx_qvfnabs,                           // llvm.ppc.qpx.qvfnabs
-    ppc_qpx_qvfneg,                            // llvm.ppc.qpx.qvfneg
-    ppc_qpx_qvfnmadd,                          // llvm.ppc.qpx.qvfnmadd
-    ppc_qpx_qvfnmadds,                         // llvm.ppc.qpx.qvfnmadds
-    ppc_qpx_qvfnmsub,                          // llvm.ppc.qpx.qvfnmsub
-    ppc_qpx_qvfnmsubs,                         // llvm.ppc.qpx.qvfnmsubs
-    ppc_qpx_qvfperm,                           // llvm.ppc.qpx.qvfperm
-    ppc_qpx_qvfre,                             // llvm.ppc.qpx.qvfre
-    ppc_qpx_qvfres,                            // llvm.ppc.qpx.qvfres
-    ppc_qpx_qvfrim,                            // llvm.ppc.qpx.qvfrim
-    ppc_qpx_qvfrin,                            // llvm.ppc.qpx.qvfrin
-    ppc_qpx_qvfrip,                            // llvm.ppc.qpx.qvfrip
-    ppc_qpx_qvfriz,                            // llvm.ppc.qpx.qvfriz
-    ppc_qpx_qvfrsp,                            // llvm.ppc.qpx.qvfrsp
-    ppc_qpx_qvfrsqrte,                         // llvm.ppc.qpx.qvfrsqrte
-    ppc_qpx_qvfrsqrtes,                        // llvm.ppc.qpx.qvfrsqrtes
-    ppc_qpx_qvfsel,                            // llvm.ppc.qpx.qvfsel
-    ppc_qpx_qvfsub,                            // llvm.ppc.qpx.qvfsub
-    ppc_qpx_qvfsubs,                           // llvm.ppc.qpx.qvfsubs
-    ppc_qpx_qvftstnan,                         // llvm.ppc.qpx.qvftstnan
-    ppc_qpx_qvfxmadd,                          // llvm.ppc.qpx.qvfxmadd
-    ppc_qpx_qvfxmadds,                         // llvm.ppc.qpx.qvfxmadds
-    ppc_qpx_qvfxmul,                           // llvm.ppc.qpx.qvfxmul
-    ppc_qpx_qvfxmuls,                          // llvm.ppc.qpx.qvfxmuls
-    ppc_qpx_qvfxxcpnmadd,                      // llvm.ppc.qpx.qvfxxcpnmadd
-    ppc_qpx_qvfxxcpnmadds,                     // llvm.ppc.qpx.qvfxxcpnmadds
-    ppc_qpx_qvfxxmadd,                         // llvm.ppc.qpx.qvfxxmadd
-    ppc_qpx_qvfxxmadds,                        // llvm.ppc.qpx.qvfxxmadds
-    ppc_qpx_qvfxxnpmadd,                       // llvm.ppc.qpx.qvfxxnpmadd
-    ppc_qpx_qvfxxnpmadds,                      // llvm.ppc.qpx.qvfxxnpmadds
-    ppc_qpx_qvgpci,                            // llvm.ppc.qpx.qvgpci
-    ppc_qpx_qvlfcd,                            // llvm.ppc.qpx.qvlfcd
-    ppc_qpx_qvlfcda,                           // llvm.ppc.qpx.qvlfcda
-    ppc_qpx_qvlfcs,                            // llvm.ppc.qpx.qvlfcs
-    ppc_qpx_qvlfcsa,                           // llvm.ppc.qpx.qvlfcsa
-    ppc_qpx_qvlfd,                             // llvm.ppc.qpx.qvlfd
-    ppc_qpx_qvlfda,                            // llvm.ppc.qpx.qvlfda
-    ppc_qpx_qvlfiwa,                           // llvm.ppc.qpx.qvlfiwa
-    ppc_qpx_qvlfiwaa,                          // llvm.ppc.qpx.qvlfiwaa
-    ppc_qpx_qvlfiwz,                           // llvm.ppc.qpx.qvlfiwz
-    ppc_qpx_qvlfiwza,                          // llvm.ppc.qpx.qvlfiwza
-    ppc_qpx_qvlfs,                             // llvm.ppc.qpx.qvlfs
-    ppc_qpx_qvlfsa,                            // llvm.ppc.qpx.qvlfsa
-    ppc_qpx_qvlpcld,                           // llvm.ppc.qpx.qvlpcld
-    ppc_qpx_qvlpcls,                           // llvm.ppc.qpx.qvlpcls
-    ppc_qpx_qvlpcrd,                           // llvm.ppc.qpx.qvlpcrd
-    ppc_qpx_qvlpcrs,                           // llvm.ppc.qpx.qvlpcrs
-    ppc_qpx_qvstfcd,                           // llvm.ppc.qpx.qvstfcd
-    ppc_qpx_qvstfcda,                          // llvm.ppc.qpx.qvstfcda
-    ppc_qpx_qvstfcs,                           // llvm.ppc.qpx.qvstfcs
-    ppc_qpx_qvstfcsa,                          // llvm.ppc.qpx.qvstfcsa
-    ppc_qpx_qvstfd,                            // llvm.ppc.qpx.qvstfd
-    ppc_qpx_qvstfda,                           // llvm.ppc.qpx.qvstfda
-    ppc_qpx_qvstfiw,                           // llvm.ppc.qpx.qvstfiw
-    ppc_qpx_qvstfiwa,                          // llvm.ppc.qpx.qvstfiwa
-    ppc_qpx_qvstfs,                            // llvm.ppc.qpx.qvstfs
-    ppc_qpx_qvstfsa,                           // llvm.ppc.qpx.qvstfsa
-    ppc_set_texasr,                            // llvm.ppc.set.texasr
-    ppc_set_texasru,                           // llvm.ppc.set.texasru
-    ppc_set_tfhar,                             // llvm.ppc.set.tfhar
-    ppc_set_tfiar,                             // llvm.ppc.set.tfiar
-    ppc_sync,                                  // llvm.ppc.sync
-    ppc_tabort,                                // llvm.ppc.tabort
-    ppc_tabortdc,                              // llvm.ppc.tabortdc
-    ppc_tabortdci,                             // llvm.ppc.tabortdci
-    ppc_tabortwc,                              // llvm.ppc.tabortwc
-    ppc_tabortwci,                             // llvm.ppc.tabortwci
-    ppc_tbegin,                                // llvm.ppc.tbegin
-    ppc_tcheck,                                // llvm.ppc.tcheck
-    ppc_tend,                                  // llvm.ppc.tend
-    ppc_tendall,                               // llvm.ppc.tendall
-    ppc_trechkpt,                              // llvm.ppc.trechkpt
-    ppc_treclaim,                              // llvm.ppc.treclaim
-    ppc_tresume,                               // llvm.ppc.tresume
-    ppc_tsr,                                   // llvm.ppc.tsr
-    ppc_tsuspend,                              // llvm.ppc.tsuspend
-    ppc_ttest,                                 // llvm.ppc.ttest
-    ppc_vsx_lxvd2x,                            // llvm.ppc.vsx.lxvd2x
-    ppc_vsx_lxvd2x_be,                         // llvm.ppc.vsx.lxvd2x.be
-    ppc_vsx_lxvl,                              // llvm.ppc.vsx.lxvl
-    ppc_vsx_lxvll,                             // llvm.ppc.vsx.lxvll
-    ppc_vsx_lxvw4x,                            // llvm.ppc.vsx.lxvw4x
-    ppc_vsx_lxvw4x_be,                         // llvm.ppc.vsx.lxvw4x.be
-    ppc_vsx_stxvd2x,                           // llvm.ppc.vsx.stxvd2x
-    ppc_vsx_stxvd2x_be,                        // llvm.ppc.vsx.stxvd2x.be
-    ppc_vsx_stxvl,                             // llvm.ppc.vsx.stxvl
-    ppc_vsx_stxvll,                            // llvm.ppc.vsx.stxvll
-    ppc_vsx_stxvw4x,                           // llvm.ppc.vsx.stxvw4x
-    ppc_vsx_stxvw4x_be,                        // llvm.ppc.vsx.stxvw4x.be
-    ppc_vsx_xsmaxdp,                           // llvm.ppc.vsx.xsmaxdp
-    ppc_vsx_xsmindp,                           // llvm.ppc.vsx.xsmindp
-    ppc_vsx_xvcmpeqdp,                         // llvm.ppc.vsx.xvcmpeqdp
-    ppc_vsx_xvcmpeqdp_p,                       // llvm.ppc.vsx.xvcmpeqdp.p
-    ppc_vsx_xvcmpeqsp,                         // llvm.ppc.vsx.xvcmpeqsp
-    ppc_vsx_xvcmpeqsp_p,                       // llvm.ppc.vsx.xvcmpeqsp.p
-    ppc_vsx_xvcmpgedp,                         // llvm.ppc.vsx.xvcmpgedp
-    ppc_vsx_xvcmpgedp_p,                       // llvm.ppc.vsx.xvcmpgedp.p
-    ppc_vsx_xvcmpgesp,                         // llvm.ppc.vsx.xvcmpgesp
-    ppc_vsx_xvcmpgesp_p,                       // llvm.ppc.vsx.xvcmpgesp.p
-    ppc_vsx_xvcmpgtdp,                         // llvm.ppc.vsx.xvcmpgtdp
-    ppc_vsx_xvcmpgtdp_p,                       // llvm.ppc.vsx.xvcmpgtdp.p
-    ppc_vsx_xvcmpgtsp,                         // llvm.ppc.vsx.xvcmpgtsp
-    ppc_vsx_xvcmpgtsp_p,                       // llvm.ppc.vsx.xvcmpgtsp.p
-    ppc_vsx_xvcvdpsp,                          // llvm.ppc.vsx.xvcvdpsp
-    ppc_vsx_xvcvdpsxws,                        // llvm.ppc.vsx.xvcvdpsxws
-    ppc_vsx_xvcvdpuxws,                        // llvm.ppc.vsx.xvcvdpuxws
-    ppc_vsx_xvcvhpsp,                          // llvm.ppc.vsx.xvcvhpsp
-    ppc_vsx_xvcvspdp,                          // llvm.ppc.vsx.xvcvspdp
-    ppc_vsx_xvcvsphp,                          // llvm.ppc.vsx.xvcvsphp
-    ppc_vsx_xvcvsxdsp,                         // llvm.ppc.vsx.xvcvsxdsp
-    ppc_vsx_xvcvsxwdp,                         // llvm.ppc.vsx.xvcvsxwdp
-    ppc_vsx_xvcvuxdsp,                         // llvm.ppc.vsx.xvcvuxdsp
-    ppc_vsx_xvcvuxwdp,                         // llvm.ppc.vsx.xvcvuxwdp
-    ppc_vsx_xvdivdp,                           // llvm.ppc.vsx.xvdivdp
-    ppc_vsx_xvdivsp,                           // llvm.ppc.vsx.xvdivsp
-    ppc_vsx_xviexpdp,                          // llvm.ppc.vsx.xviexpdp
-    ppc_vsx_xviexpsp,                          // llvm.ppc.vsx.xviexpsp
-    ppc_vsx_xvmaxdp,                           // llvm.ppc.vsx.xvmaxdp
-    ppc_vsx_xvmaxsp,                           // llvm.ppc.vsx.xvmaxsp
-    ppc_vsx_xvmindp,                           // llvm.ppc.vsx.xvmindp
-    ppc_vsx_xvminsp,                           // llvm.ppc.vsx.xvminsp
-    ppc_vsx_xvrdpip,                           // llvm.ppc.vsx.xvrdpip
-    ppc_vsx_xvredp,                            // llvm.ppc.vsx.xvredp
-    ppc_vsx_xvresp,                            // llvm.ppc.vsx.xvresp
-    ppc_vsx_xvrspip,                           // llvm.ppc.vsx.xvrspip
-    ppc_vsx_xvrsqrtedp,                        // llvm.ppc.vsx.xvrsqrtedp
-    ppc_vsx_xvrsqrtesp,                        // llvm.ppc.vsx.xvrsqrtesp
-    ppc_vsx_xvtstdcdp,                         // llvm.ppc.vsx.xvtstdcdp
-    ppc_vsx_xvtstdcsp,                         // llvm.ppc.vsx.xvtstdcsp
-    ppc_vsx_xvxexpdp,                          // llvm.ppc.vsx.xvxexpdp
-    ppc_vsx_xvxexpsp,                          // llvm.ppc.vsx.xvxexpsp
-    ppc_vsx_xvxsigdp,                          // llvm.ppc.vsx.xvxsigdp
-    ppc_vsx_xvxsigsp,                          // llvm.ppc.vsx.xvxsigsp
-    ppc_vsx_xxextractuw,                       // llvm.ppc.vsx.xxextractuw
-    ppc_vsx_xxinsertw,                         // llvm.ppc.vsx.xxinsertw
-    ppc_vsx_xxleqv,                            // llvm.ppc.vsx.xxleqv
-    r600_cube,                                 // llvm.r600.cube
-    r600_group_barrier,                        // llvm.r600.group.barrier
-    r600_implicitarg_ptr,                      // llvm.r600.implicitarg.ptr
-    r600_rat_store_typed,                      // llvm.r600.rat.store.typed
-    r600_read_global_size_x,                   // llvm.r600.read.global.size.x
-    r600_read_global_size_y,                   // llvm.r600.read.global.size.y
-    r600_read_global_size_z,                   // llvm.r600.read.global.size.z
-    r600_read_local_size_x,                    // llvm.r600.read.local.size.x
-    r600_read_local_size_y,                    // llvm.r600.read.local.size.y
-    r600_read_local_size_z,                    // llvm.r600.read.local.size.z
-    r600_read_ngroups_x,                       // llvm.r600.read.ngroups.x
-    r600_read_ngroups_y,                       // llvm.r600.read.ngroups.y
-    r600_read_ngroups_z,                       // llvm.r600.read.ngroups.z
-    r600_read_tgid_x,                          // llvm.r600.read.tgid.x
-    r600_read_tgid_y,                          // llvm.r600.read.tgid.y
-    r600_read_tgid_z,                          // llvm.r600.read.tgid.z
-    r600_read_tidig_x,                         // llvm.r600.read.tidig.x
-    r600_read_tidig_y,                         // llvm.r600.read.tidig.y
-    r600_read_tidig_z,                         // llvm.r600.read.tidig.z
-    r600_recipsqrt_clamped,                    // llvm.r600.recipsqrt.clamped
-    r600_recipsqrt_ieee,                       // llvm.r600.recipsqrt.ieee
-    s390_efpc,                                 // llvm.s390.efpc
-    s390_etnd,                                 // llvm.s390.etnd
-    s390_lcbb,                                 // llvm.s390.lcbb
-    s390_ntstg,                                // llvm.s390.ntstg
-    s390_ppa_txassist,                         // llvm.s390.ppa.txassist
-    s390_sfpc,                                 // llvm.s390.sfpc
-    s390_tabort,                               // llvm.s390.tabort
-    s390_tbegin,                               // llvm.s390.tbegin
-    s390_tbegin_nofloat,                       // llvm.s390.tbegin.nofloat
-    s390_tbeginc,                              // llvm.s390.tbeginc
-    s390_tdc,                                  // llvm.s390.tdc
-    s390_tend,                                 // llvm.s390.tend
-    s390_vaccb,                                // llvm.s390.vaccb
-    s390_vacccq,                               // llvm.s390.vacccq
-    s390_vaccf,                                // llvm.s390.vaccf
-    s390_vaccg,                                // llvm.s390.vaccg
-    s390_vacch,                                // llvm.s390.vacch
-    s390_vaccq,                                // llvm.s390.vaccq
-    s390_vacq,                                 // llvm.s390.vacq
-    s390_vaq,                                  // llvm.s390.vaq
-    s390_vavgb,                                // llvm.s390.vavgb
-    s390_vavgf,                                // llvm.s390.vavgf
-    s390_vavgg,                                // llvm.s390.vavgg
-    s390_vavgh,                                // llvm.s390.vavgh
-    s390_vavglb,                               // llvm.s390.vavglb
-    s390_vavglf,                               // llvm.s390.vavglf
-    s390_vavglg,                               // llvm.s390.vavglg
-    s390_vavglh,                               // llvm.s390.vavglh
-    s390_vbperm,                               // llvm.s390.vbperm
-    s390_vceqbs,                               // llvm.s390.vceqbs
-    s390_vceqfs,                               // llvm.s390.vceqfs
-    s390_vceqgs,                               // llvm.s390.vceqgs
-    s390_vceqhs,                               // llvm.s390.vceqhs
-    s390_vchbs,                                // llvm.s390.vchbs
-    s390_vchfs,                                // llvm.s390.vchfs
-    s390_vchgs,                                // llvm.s390.vchgs
-    s390_vchhs,                                // llvm.s390.vchhs
-    s390_vchlbs,                               // llvm.s390.vchlbs
-    s390_vchlfs,                               // llvm.s390.vchlfs
-    s390_vchlgs,                               // llvm.s390.vchlgs
-    s390_vchlhs,                               // llvm.s390.vchlhs
-    s390_vcksm,                                // llvm.s390.vcksm
-    s390_verimb,                               // llvm.s390.verimb
-    s390_verimf,                               // llvm.s390.verimf
-    s390_verimg,                               // llvm.s390.verimg
-    s390_verimh,                               // llvm.s390.verimh
-    s390_verllb,                               // llvm.s390.verllb
-    s390_verllf,                               // llvm.s390.verllf
-    s390_verllg,                               // llvm.s390.verllg
-    s390_verllh,                               // llvm.s390.verllh
-    s390_verllvb,                              // llvm.s390.verllvb
-    s390_verllvf,                              // llvm.s390.verllvf
-    s390_verllvg,                              // llvm.s390.verllvg
-    s390_verllvh,                              // llvm.s390.verllvh
-    s390_vfaeb,                                // llvm.s390.vfaeb
-    s390_vfaebs,                               // llvm.s390.vfaebs
-    s390_vfaef,                                // llvm.s390.vfaef
-    s390_vfaefs,                               // llvm.s390.vfaefs
-    s390_vfaeh,                                // llvm.s390.vfaeh
-    s390_vfaehs,                               // llvm.s390.vfaehs
-    s390_vfaezb,                               // llvm.s390.vfaezb
-    s390_vfaezbs,                              // llvm.s390.vfaezbs
-    s390_vfaezf,                               // llvm.s390.vfaezf
-    s390_vfaezfs,                              // llvm.s390.vfaezfs
-    s390_vfaezh,                               // llvm.s390.vfaezh
-    s390_vfaezhs,                              // llvm.s390.vfaezhs
-    s390_vfcedbs,                              // llvm.s390.vfcedbs
-    s390_vfcesbs,                              // llvm.s390.vfcesbs
-    s390_vfchdbs,                              // llvm.s390.vfchdbs
-    s390_vfchedbs,                             // llvm.s390.vfchedbs
-    s390_vfchesbs,                             // llvm.s390.vfchesbs
-    s390_vfchsbs,                              // llvm.s390.vfchsbs
-    s390_vfeeb,                                // llvm.s390.vfeeb
-    s390_vfeebs,                               // llvm.s390.vfeebs
-    s390_vfeef,                                // llvm.s390.vfeef
-    s390_vfeefs,                               // llvm.s390.vfeefs
-    s390_vfeeh,                                // llvm.s390.vfeeh
-    s390_vfeehs,                               // llvm.s390.vfeehs
-    s390_vfeezb,                               // llvm.s390.vfeezb
-    s390_vfeezbs,                              // llvm.s390.vfeezbs
-    s390_vfeezf,                               // llvm.s390.vfeezf
-    s390_vfeezfs,                              // llvm.s390.vfeezfs
-    s390_vfeezh,                               // llvm.s390.vfeezh
-    s390_vfeezhs,                              // llvm.s390.vfeezhs
-    s390_vfeneb,                               // llvm.s390.vfeneb
-    s390_vfenebs,                              // llvm.s390.vfenebs
-    s390_vfenef,                               // llvm.s390.vfenef
-    s390_vfenefs,                              // llvm.s390.vfenefs
-    s390_vfeneh,                               // llvm.s390.vfeneh
-    s390_vfenehs,                              // llvm.s390.vfenehs
-    s390_vfenezb,                              // llvm.s390.vfenezb
-    s390_vfenezbs,                             // llvm.s390.vfenezbs
-    s390_vfenezf,                              // llvm.s390.vfenezf
-    s390_vfenezfs,                             // llvm.s390.vfenezfs
-    s390_vfenezh,                              // llvm.s390.vfenezh
-    s390_vfenezhs,                             // llvm.s390.vfenezhs
-    s390_vfidb,                                // llvm.s390.vfidb
-    s390_vfisb,                                // llvm.s390.vfisb
-    s390_vfmaxdb,                              // llvm.s390.vfmaxdb
-    s390_vfmaxsb,                              // llvm.s390.vfmaxsb
-    s390_vfmindb,                              // llvm.s390.vfmindb
-    s390_vfminsb,                              // llvm.s390.vfminsb
-    s390_vftcidb,                              // llvm.s390.vftcidb
-    s390_vftcisb,                              // llvm.s390.vftcisb
-    s390_vgfmab,                               // llvm.s390.vgfmab
-    s390_vgfmaf,                               // llvm.s390.vgfmaf
-    s390_vgfmag,                               // llvm.s390.vgfmag
-    s390_vgfmah,                               // llvm.s390.vgfmah
-    s390_vgfmb,                                // llvm.s390.vgfmb
-    s390_vgfmf,                                // llvm.s390.vgfmf
-    s390_vgfmg,                                // llvm.s390.vgfmg
-    s390_vgfmh,                                // llvm.s390.vgfmh
-    s390_vistrb,                               // llvm.s390.vistrb
-    s390_vistrbs,                              // llvm.s390.vistrbs
-    s390_vistrf,                               // llvm.s390.vistrf
-    s390_vistrfs,                              // llvm.s390.vistrfs
-    s390_vistrh,                               // llvm.s390.vistrh
-    s390_vistrhs,                              // llvm.s390.vistrhs
-    s390_vlbb,                                 // llvm.s390.vlbb
-    s390_vll,                                  // llvm.s390.vll
-    s390_vlrl,                                 // llvm.s390.vlrl
-    s390_vmaeb,                                // llvm.s390.vmaeb
-    s390_vmaef,                                // llvm.s390.vmaef
-    s390_vmaeh,                                // llvm.s390.vmaeh
-    s390_vmahb,                                // llvm.s390.vmahb
-    s390_vmahf,                                // llvm.s390.vmahf
-    s390_vmahh,                                // llvm.s390.vmahh
-    s390_vmaleb,                               // llvm.s390.vmaleb
-    s390_vmalef,                               // llvm.s390.vmalef
-    s390_vmaleh,                               // llvm.s390.vmaleh
-    s390_vmalhb,                               // llvm.s390.vmalhb
-    s390_vmalhf,                               // llvm.s390.vmalhf
-    s390_vmalhh,                               // llvm.s390.vmalhh
-    s390_vmalob,                               // llvm.s390.vmalob
-    s390_vmalof,                               // llvm.s390.vmalof
-    s390_vmaloh,                               // llvm.s390.vmaloh
-    s390_vmaob,                                // llvm.s390.vmaob
-    s390_vmaof,                                // llvm.s390.vmaof
-    s390_vmaoh,                                // llvm.s390.vmaoh
-    s390_vmeb,                                 // llvm.s390.vmeb
-    s390_vmef,                                 // llvm.s390.vmef
-    s390_vmeh,                                 // llvm.s390.vmeh
-    s390_vmhb,                                 // llvm.s390.vmhb
-    s390_vmhf,                                 // llvm.s390.vmhf
-    s390_vmhh,                                 // llvm.s390.vmhh
-    s390_vmleb,                                // llvm.s390.vmleb
-    s390_vmlef,                                // llvm.s390.vmlef
-    s390_vmleh,                                // llvm.s390.vmleh
-    s390_vmlhb,                                // llvm.s390.vmlhb
-    s390_vmlhf,                                // llvm.s390.vmlhf
-    s390_vmlhh,                                // llvm.s390.vmlhh
-    s390_vmlob,                                // llvm.s390.vmlob
-    s390_vmlof,                                // llvm.s390.vmlof
-    s390_vmloh,                                // llvm.s390.vmloh
-    s390_vmob,                                 // llvm.s390.vmob
-    s390_vmof,                                 // llvm.s390.vmof
-    s390_vmoh,                                 // llvm.s390.vmoh
-    s390_vmslg,                                // llvm.s390.vmslg
-    s390_vpdi,                                 // llvm.s390.vpdi
-    s390_vperm,                                // llvm.s390.vperm
-    s390_vpklsf,                               // llvm.s390.vpklsf
-    s390_vpklsfs,                              // llvm.s390.vpklsfs
-    s390_vpklsg,                               // llvm.s390.vpklsg
-    s390_vpklsgs,                              // llvm.s390.vpklsgs
-    s390_vpklsh,                               // llvm.s390.vpklsh
-    s390_vpklshs,                              // llvm.s390.vpklshs
-    s390_vpksf,                                // llvm.s390.vpksf
-    s390_vpksfs,                               // llvm.s390.vpksfs
-    s390_vpksg,                                // llvm.s390.vpksg
-    s390_vpksgs,                               // llvm.s390.vpksgs
-    s390_vpksh,                                // llvm.s390.vpksh
-    s390_vpkshs,                               // llvm.s390.vpkshs
-    s390_vsbcbiq,                              // llvm.s390.vsbcbiq
-    s390_vsbiq,                                // llvm.s390.vsbiq
-    s390_vscbib,                               // llvm.s390.vscbib
-    s390_vscbif,                               // llvm.s390.vscbif
-    s390_vscbig,                               // llvm.s390.vscbig
-    s390_vscbih,                               // llvm.s390.vscbih
-    s390_vscbiq,                               // llvm.s390.vscbiq
-    s390_vsl,                                  // llvm.s390.vsl
-    s390_vslb,                                 // llvm.s390.vslb
-    s390_vsldb,                                // llvm.s390.vsldb
-    s390_vsq,                                  // llvm.s390.vsq
-    s390_vsra,                                 // llvm.s390.vsra
-    s390_vsrab,                                // llvm.s390.vsrab
-    s390_vsrl,                                 // llvm.s390.vsrl
-    s390_vsrlb,                                // llvm.s390.vsrlb
-    s390_vstl,                                 // llvm.s390.vstl
-    s390_vstrcb,                               // llvm.s390.vstrcb
-    s390_vstrcbs,                              // llvm.s390.vstrcbs
-    s390_vstrcf,                               // llvm.s390.vstrcf
-    s390_vstrcfs,                              // llvm.s390.vstrcfs
-    s390_vstrch,                               // llvm.s390.vstrch
-    s390_vstrchs,                              // llvm.s390.vstrchs
-    s390_vstrczb,                              // llvm.s390.vstrczb
-    s390_vstrczbs,                             // llvm.s390.vstrczbs
-    s390_vstrczf,                              // llvm.s390.vstrczf
-    s390_vstrczfs,                             // llvm.s390.vstrczfs
-    s390_vstrczh,                              // llvm.s390.vstrczh
-    s390_vstrczhs,                             // llvm.s390.vstrczhs
-    s390_vstrl,                                // llvm.s390.vstrl
-    s390_vsumb,                                // llvm.s390.vsumb
-    s390_vsumgf,                               // llvm.s390.vsumgf
-    s390_vsumgh,                               // llvm.s390.vsumgh
-    s390_vsumh,                                // llvm.s390.vsumh
-    s390_vsumqf,                               // llvm.s390.vsumqf
-    s390_vsumqg,                               // llvm.s390.vsumqg
-    s390_vtm,                                  // llvm.s390.vtm
-    s390_vuphb,                                // llvm.s390.vuphb
-    s390_vuphf,                                // llvm.s390.vuphf
-    s390_vuphh,                                // llvm.s390.vuphh
-    s390_vuplb,                                // llvm.s390.vuplb
-    s390_vuplf,                                // llvm.s390.vuplf
-    s390_vuplhb,                               // llvm.s390.vuplhb
-    s390_vuplhf,                               // llvm.s390.vuplhf
-    s390_vuplhh,                               // llvm.s390.vuplhh
-    s390_vuplhw,                               // llvm.s390.vuplhw
-    s390_vupllb,                               // llvm.s390.vupllb
-    s390_vupllf,                               // llvm.s390.vupllf
-    s390_vupllh,                               // llvm.s390.vupllh
-    wasm_current_memory,                       // llvm.wasm.current.memory
-    wasm_get_ehselector,                       // llvm.wasm.get.ehselector
-    wasm_get_exception,                        // llvm.wasm.get.exception
-    wasm_grow_memory,                          // llvm.wasm.grow.memory
-    wasm_mem_grow,                             // llvm.wasm.mem.grow
-    wasm_mem_size,                             // llvm.wasm.mem.size
-    wasm_rethrow,                              // llvm.wasm.rethrow
-    wasm_throw,                                // llvm.wasm.throw
-    x86_3dnow_pavgusb,                         // llvm.x86.3dnow.pavgusb
-    x86_3dnow_pf2id,                           // llvm.x86.3dnow.pf2id
-    x86_3dnow_pfacc,                           // llvm.x86.3dnow.pfacc
-    x86_3dnow_pfadd,                           // llvm.x86.3dnow.pfadd
-    x86_3dnow_pfcmpeq,                         // llvm.x86.3dnow.pfcmpeq
-    x86_3dnow_pfcmpge,                         // llvm.x86.3dnow.pfcmpge
-    x86_3dnow_pfcmpgt,                         // llvm.x86.3dnow.pfcmpgt
-    x86_3dnow_pfmax,                           // llvm.x86.3dnow.pfmax
-    x86_3dnow_pfmin,                           // llvm.x86.3dnow.pfmin
-    x86_3dnow_pfmul,                           // llvm.x86.3dnow.pfmul
-    x86_3dnow_pfrcp,                           // llvm.x86.3dnow.pfrcp
-    x86_3dnow_pfrcpit1,                        // llvm.x86.3dnow.pfrcpit1
-    x86_3dnow_pfrcpit2,                        // llvm.x86.3dnow.pfrcpit2
-    x86_3dnow_pfrsqit1,                        // llvm.x86.3dnow.pfrsqit1
-    x86_3dnow_pfrsqrt,                         // llvm.x86.3dnow.pfrsqrt
-    x86_3dnow_pfsub,                           // llvm.x86.3dnow.pfsub
-    x86_3dnow_pfsubr,                          // llvm.x86.3dnow.pfsubr
-    x86_3dnow_pi2fd,                           // llvm.x86.3dnow.pi2fd
-    x86_3dnow_pmulhrw,                         // llvm.x86.3dnow.pmulhrw
-    x86_3dnowa_pf2iw,                          // llvm.x86.3dnowa.pf2iw
-    x86_3dnowa_pfnacc,                         // llvm.x86.3dnowa.pfnacc
-    x86_3dnowa_pfpnacc,                        // llvm.x86.3dnowa.pfpnacc
-    x86_3dnowa_pi2fw,                          // llvm.x86.3dnowa.pi2fw
-    x86_3dnowa_pswapd,                         // llvm.x86.3dnowa.pswapd
-    x86_addcarry_u32,                          // llvm.x86.addcarry.u32
-    x86_addcarry_u64,                          // llvm.x86.addcarry.u64
-    x86_addcarryx_u32,                         // llvm.x86.addcarryx.u32
-    x86_addcarryx_u64,                         // llvm.x86.addcarryx.u64
-    x86_aesni_aesdec,                          // llvm.x86.aesni.aesdec
-    x86_aesni_aesdec_256,                      // llvm.x86.aesni.aesdec.256
-    x86_aesni_aesdec_512,                      // llvm.x86.aesni.aesdec.512
-    x86_aesni_aesdeclast,                      // llvm.x86.aesni.aesdeclast
-    x86_aesni_aesdeclast_256,                  // llvm.x86.aesni.aesdeclast.256
-    x86_aesni_aesdeclast_512,                  // llvm.x86.aesni.aesdeclast.512
-    x86_aesni_aesenc,                          // llvm.x86.aesni.aesenc
-    x86_aesni_aesenc_256,                      // llvm.x86.aesni.aesenc.256
-    x86_aesni_aesenc_512,                      // llvm.x86.aesni.aesenc.512
-    x86_aesni_aesenclast,                      // llvm.x86.aesni.aesenclast
-    x86_aesni_aesenclast_256,                  // llvm.x86.aesni.aesenclast.256
-    x86_aesni_aesenclast_512,                  // llvm.x86.aesni.aesenclast.512
-    x86_aesni_aesimc,                          // llvm.x86.aesni.aesimc
-    x86_aesni_aeskeygenassist,                 // llvm.x86.aesni.aeskeygenassist
-    x86_avx_addsub_pd_256,                     // llvm.x86.avx.addsub.pd.256
-    x86_avx_addsub_ps_256,                     // llvm.x86.avx.addsub.ps.256
-    x86_avx_blendv_pd_256,                     // llvm.x86.avx.blendv.pd.256
-    x86_avx_blendv_ps_256,                     // llvm.x86.avx.blendv.ps.256
-    x86_avx_cmp_pd_256,                        // llvm.x86.avx.cmp.pd.256
-    x86_avx_cmp_ps_256,                        // llvm.x86.avx.cmp.ps.256
-    x86_avx_cvt_pd2_ps_256,                    // llvm.x86.avx.cvt.pd2.ps.256
-    x86_avx_cvt_pd2dq_256,                     // llvm.x86.avx.cvt.pd2dq.256
-    x86_avx_cvt_ps2dq_256,                     // llvm.x86.avx.cvt.ps2dq.256
-    x86_avx_cvtdq2_ps_256,                     // llvm.x86.avx.cvtdq2.ps.256
-    x86_avx_cvtt_pd2dq_256,                    // llvm.x86.avx.cvtt.pd2dq.256
-    x86_avx_cvtt_ps2dq_256,                    // llvm.x86.avx.cvtt.ps2dq.256
-    x86_avx_dp_ps_256,                         // llvm.x86.avx.dp.ps.256
-    x86_avx_hadd_pd_256,                       // llvm.x86.avx.hadd.pd.256
-    x86_avx_hadd_ps_256,                       // llvm.x86.avx.hadd.ps.256
-    x86_avx_hsub_pd_256,                       // llvm.x86.avx.hsub.pd.256
-    x86_avx_hsub_ps_256,                       // llvm.x86.avx.hsub.ps.256
-    x86_avx_ldu_dq_256,                        // llvm.x86.avx.ldu.dq.256
-    x86_avx_maskload_pd,                       // llvm.x86.avx.maskload.pd
-    x86_avx_maskload_pd_256,                   // llvm.x86.avx.maskload.pd.256
-    x86_avx_maskload_ps,                       // llvm.x86.avx.maskload.ps
-    x86_avx_maskload_ps_256,                   // llvm.x86.avx.maskload.ps.256
-    x86_avx_maskstore_pd,                      // llvm.x86.avx.maskstore.pd
-    x86_avx_maskstore_pd_256,                  // llvm.x86.avx.maskstore.pd.256
-    x86_avx_maskstore_ps,                      // llvm.x86.avx.maskstore.ps
-    x86_avx_maskstore_ps_256,                  // llvm.x86.avx.maskstore.ps.256
-    x86_avx_max_pd_256,                        // llvm.x86.avx.max.pd.256
-    x86_avx_max_ps_256,                        // llvm.x86.avx.max.ps.256
-    x86_avx_min_pd_256,                        // llvm.x86.avx.min.pd.256
-    x86_avx_min_ps_256,                        // llvm.x86.avx.min.ps.256
-    x86_avx_movmsk_pd_256,                     // llvm.x86.avx.movmsk.pd.256
-    x86_avx_movmsk_ps_256,                     // llvm.x86.avx.movmsk.ps.256
-    x86_avx_ptestc_256,                        // llvm.x86.avx.ptestc.256
-    x86_avx_ptestnzc_256,                      // llvm.x86.avx.ptestnzc.256
-    x86_avx_ptestz_256,                        // llvm.x86.avx.ptestz.256
-    x86_avx_rcp_ps_256,                        // llvm.x86.avx.rcp.ps.256
-    x86_avx_round_pd_256,                      // llvm.x86.avx.round.pd.256
-    x86_avx_round_ps_256,                      // llvm.x86.avx.round.ps.256
-    x86_avx_rsqrt_ps_256,                      // llvm.x86.avx.rsqrt.ps.256
-    x86_avx_sqrt_pd_256,                       // llvm.x86.avx.sqrt.pd.256
-    x86_avx_sqrt_ps_256,                       // llvm.x86.avx.sqrt.ps.256
-    x86_avx_vpermilvar_pd,                     // llvm.x86.avx.vpermilvar.pd
-    x86_avx_vpermilvar_pd_256,                 // llvm.x86.avx.vpermilvar.pd.256
-    x86_avx_vpermilvar_ps,                     // llvm.x86.avx.vpermilvar.ps
-    x86_avx_vpermilvar_ps_256,                 // llvm.x86.avx.vpermilvar.ps.256
-    x86_avx_vtestc_pd,                         // llvm.x86.avx.vtestc.pd
-    x86_avx_vtestc_pd_256,                     // llvm.x86.avx.vtestc.pd.256
-    x86_avx_vtestc_ps,                         // llvm.x86.avx.vtestc.ps
-    x86_avx_vtestc_ps_256,                     // llvm.x86.avx.vtestc.ps.256
-    x86_avx_vtestnzc_pd,                       // llvm.x86.avx.vtestnzc.pd
-    x86_avx_vtestnzc_pd_256,                   // llvm.x86.avx.vtestnzc.pd.256
-    x86_avx_vtestnzc_ps,                       // llvm.x86.avx.vtestnzc.ps
-    x86_avx_vtestnzc_ps_256,                   // llvm.x86.avx.vtestnzc.ps.256
-    x86_avx_vtestz_pd,                         // llvm.x86.avx.vtestz.pd
-    x86_avx_vtestz_pd_256,                     // llvm.x86.avx.vtestz.pd.256
-    x86_avx_vtestz_ps,                         // llvm.x86.avx.vtestz.ps
-    x86_avx_vtestz_ps_256,                     // llvm.x86.avx.vtestz.ps.256
-    x86_avx_vzeroall,                          // llvm.x86.avx.vzeroall
-    x86_avx_vzeroupper,                        // llvm.x86.avx.vzeroupper
-    x86_avx2_gather_d_d,                       // llvm.x86.avx2.gather.d.d
-    x86_avx2_gather_d_d_256,                   // llvm.x86.avx2.gather.d.d.256
-    x86_avx2_gather_d_pd,                      // llvm.x86.avx2.gather.d.pd
-    x86_avx2_gather_d_pd_256,                  // llvm.x86.avx2.gather.d.pd.256
-    x86_avx2_gather_d_ps,                      // llvm.x86.avx2.gather.d.ps
-    x86_avx2_gather_d_ps_256,                  // llvm.x86.avx2.gather.d.ps.256
-    x86_avx2_gather_d_q,                       // llvm.x86.avx2.gather.d.q
-    x86_avx2_gather_d_q_256,                   // llvm.x86.avx2.gather.d.q.256
-    x86_avx2_gather_q_d,                       // llvm.x86.avx2.gather.q.d
-    x86_avx2_gather_q_d_256,                   // llvm.x86.avx2.gather.q.d.256
-    x86_avx2_gather_q_pd,                      // llvm.x86.avx2.gather.q.pd
-    x86_avx2_gather_q_pd_256,                  // llvm.x86.avx2.gather.q.pd.256
-    x86_avx2_gather_q_ps,                      // llvm.x86.avx2.gather.q.ps
-    x86_avx2_gather_q_ps_256,                  // llvm.x86.avx2.gather.q.ps.256
-    x86_avx2_gather_q_q,                       // llvm.x86.avx2.gather.q.q
-    x86_avx2_gather_q_q_256,                   // llvm.x86.avx2.gather.q.q.256
-    x86_avx2_maskload_d,                       // llvm.x86.avx2.maskload.d
-    x86_avx2_maskload_d_256,                   // llvm.x86.avx2.maskload.d.256
-    x86_avx2_maskload_q,                       // llvm.x86.avx2.maskload.q
-    x86_avx2_maskload_q_256,                   // llvm.x86.avx2.maskload.q.256
-    x86_avx2_maskstore_d,                      // llvm.x86.avx2.maskstore.d
-    x86_avx2_maskstore_d_256,                  // llvm.x86.avx2.maskstore.d.256
-    x86_avx2_maskstore_q,                      // llvm.x86.avx2.maskstore.q
-    x86_avx2_maskstore_q_256,                  // llvm.x86.avx2.maskstore.q.256
-    x86_avx2_mpsadbw,                          // llvm.x86.avx2.mpsadbw
-    x86_avx2_packssdw,                         // llvm.x86.avx2.packssdw
-    x86_avx2_packsswb,                         // llvm.x86.avx2.packsswb
-    x86_avx2_packusdw,                         // llvm.x86.avx2.packusdw
-    x86_avx2_packuswb,                         // llvm.x86.avx2.packuswb
-    x86_avx2_padds_b,                          // llvm.x86.avx2.padds.b
-    x86_avx2_padds_w,                          // llvm.x86.avx2.padds.w
-    x86_avx2_paddus_b,                         // llvm.x86.avx2.paddus.b
-    x86_avx2_paddus_w,                         // llvm.x86.avx2.paddus.w
-    x86_avx2_pblendvb,                         // llvm.x86.avx2.pblendvb
-    x86_avx2_permd,                            // llvm.x86.avx2.permd
-    x86_avx2_permps,                           // llvm.x86.avx2.permps
-    x86_avx2_phadd_d,                          // llvm.x86.avx2.phadd.d
-    x86_avx2_phadd_sw,                         // llvm.x86.avx2.phadd.sw
-    x86_avx2_phadd_w,                          // llvm.x86.avx2.phadd.w
-    x86_avx2_phsub_d,                          // llvm.x86.avx2.phsub.d
-    x86_avx2_phsub_sw,                         // llvm.x86.avx2.phsub.sw
-    x86_avx2_phsub_w,                          // llvm.x86.avx2.phsub.w
-    x86_avx2_pmadd_ub_sw,                      // llvm.x86.avx2.pmadd.ub.sw
-    x86_avx2_pmadd_wd,                         // llvm.x86.avx2.pmadd.wd
-    x86_avx2_pmovmskb,                         // llvm.x86.avx2.pmovmskb
-    x86_avx2_pmul_dq,                          // llvm.x86.avx2.pmul.dq
-    x86_avx2_pmul_hr_sw,                       // llvm.x86.avx2.pmul.hr.sw
-    x86_avx2_pmulh_w,                          // llvm.x86.avx2.pmulh.w
-    x86_avx2_pmulhu_w,                         // llvm.x86.avx2.pmulhu.w
-    x86_avx2_pmulu_dq,                         // llvm.x86.avx2.pmulu.dq
-    x86_avx2_psad_bw,                          // llvm.x86.avx2.psad.bw
-    x86_avx2_pshuf_b,                          // llvm.x86.avx2.pshuf.b
-    x86_avx2_psign_b,                          // llvm.x86.avx2.psign.b
-    x86_avx2_psign_d,                          // llvm.x86.avx2.psign.d
-    x86_avx2_psign_w,                          // llvm.x86.avx2.psign.w
-    x86_avx2_psll_d,                           // llvm.x86.avx2.psll.d
-    x86_avx2_psll_q,                           // llvm.x86.avx2.psll.q
-    x86_avx2_psll_w,                           // llvm.x86.avx2.psll.w
-    x86_avx2_pslli_d,                          // llvm.x86.avx2.pslli.d
-    x86_avx2_pslli_q,                          // llvm.x86.avx2.pslli.q
-    x86_avx2_pslli_w,                          // llvm.x86.avx2.pslli.w
-    x86_avx2_psllv_d,                          // llvm.x86.avx2.psllv.d
-    x86_avx2_psllv_d_256,                      // llvm.x86.avx2.psllv.d.256
-    x86_avx2_psllv_q,                          // llvm.x86.avx2.psllv.q
-    x86_avx2_psllv_q_256,                      // llvm.x86.avx2.psllv.q.256
-    x86_avx2_psra_d,                           // llvm.x86.avx2.psra.d
-    x86_avx2_psra_w,                           // llvm.x86.avx2.psra.w
-    x86_avx2_psrai_d,                          // llvm.x86.avx2.psrai.d
-    x86_avx2_psrai_w,                          // llvm.x86.avx2.psrai.w
-    x86_avx2_psrav_d,                          // llvm.x86.avx2.psrav.d
-    x86_avx2_psrav_d_256,                      // llvm.x86.avx2.psrav.d.256
-    x86_avx2_psrl_d,                           // llvm.x86.avx2.psrl.d
-    x86_avx2_psrl_q,                           // llvm.x86.avx2.psrl.q
-    x86_avx2_psrl_w,                           // llvm.x86.avx2.psrl.w
-    x86_avx2_psrli_d,                          // llvm.x86.avx2.psrli.d
-    x86_avx2_psrli_q,                          // llvm.x86.avx2.psrli.q
-    x86_avx2_psrli_w,                          // llvm.x86.avx2.psrli.w
-    x86_avx2_psrlv_d,                          // llvm.x86.avx2.psrlv.d
-    x86_avx2_psrlv_d_256,                      // llvm.x86.avx2.psrlv.d.256
-    x86_avx2_psrlv_q,                          // llvm.x86.avx2.psrlv.q
-    x86_avx2_psrlv_q_256,                      // llvm.x86.avx2.psrlv.q.256
-    x86_avx2_psubs_b,                          // llvm.x86.avx2.psubs.b
-    x86_avx2_psubs_w,                          // llvm.x86.avx2.psubs.w
-    x86_avx2_psubus_b,                         // llvm.x86.avx2.psubus.b
-    x86_avx2_psubus_w,                         // llvm.x86.avx2.psubus.w
-    x86_avx512_broadcastmb_128,                // llvm.x86.avx512.broadcastmb.128
-    x86_avx512_broadcastmb_256,                // llvm.x86.avx512.broadcastmb.256
-    x86_avx512_broadcastmb_512,                // llvm.x86.avx512.broadcastmb.512
-    x86_avx512_broadcastmw_128,                // llvm.x86.avx512.broadcastmw.128
-    x86_avx512_broadcastmw_256,                // llvm.x86.avx512.broadcastmw.256
-    x86_avx512_broadcastmw_512,                // llvm.x86.avx512.broadcastmw.512
-    x86_avx512_cvtsi2sd64,                     // llvm.x86.avx512.cvtsi2sd64
-    x86_avx512_cvtsi2ss32,                     // llvm.x86.avx512.cvtsi2ss32
-    x86_avx512_cvtsi2ss64,                     // llvm.x86.avx512.cvtsi2ss64
-    x86_avx512_cvttsd2si,                      // llvm.x86.avx512.cvttsd2si
-    x86_avx512_cvttsd2si64,                    // llvm.x86.avx512.cvttsd2si64
-    x86_avx512_cvttsd2usi,                     // llvm.x86.avx512.cvttsd2usi
-    x86_avx512_cvttsd2usi64,                   // llvm.x86.avx512.cvttsd2usi64
-    x86_avx512_cvttss2si,                      // llvm.x86.avx512.cvttss2si
-    x86_avx512_cvttss2si64,                    // llvm.x86.avx512.cvttss2si64
-    x86_avx512_cvttss2usi,                     // llvm.x86.avx512.cvttss2usi
-    x86_avx512_cvttss2usi64,                   // llvm.x86.avx512.cvttss2usi64
-    x86_avx512_cvtusi2sd,                      // llvm.x86.avx512.cvtusi2sd
-    x86_avx512_cvtusi2ss,                      // llvm.x86.avx512.cvtusi2ss
-    x86_avx512_cvtusi642sd,                    // llvm.x86.avx512.cvtusi642sd
-    x86_avx512_cvtusi642ss,                    // llvm.x86.avx512.cvtusi642ss
-    x86_avx512_exp2_pd,                        // llvm.x86.avx512.exp2.pd
-    x86_avx512_exp2_ps,                        // llvm.x86.avx512.exp2.ps
-    x86_avx512_gather_dpd_512,                 // llvm.x86.avx512.gather.dpd.512
-    x86_avx512_gather_dpi_512,                 // llvm.x86.avx512.gather.dpi.512
-    x86_avx512_gather_dpq_512,                 // llvm.x86.avx512.gather.dpq.512
-    x86_avx512_gather_dps_512,                 // llvm.x86.avx512.gather.dps.512
-    x86_avx512_gather_qpd_512,                 // llvm.x86.avx512.gather.qpd.512
-    x86_avx512_gather_qpi_512,                 // llvm.x86.avx512.gather.qpi.512
-    x86_avx512_gather_qpq_512,                 // llvm.x86.avx512.gather.qpq.512
-    x86_avx512_gather_qps_512,                 // llvm.x86.avx512.gather.qps.512
-    x86_avx512_gather3div2_df,                 // llvm.x86.avx512.gather3div2.df
-    x86_avx512_gather3div2_di,                 // llvm.x86.avx512.gather3div2.di
-    x86_avx512_gather3div4_df,                 // llvm.x86.avx512.gather3div4.df
-    x86_avx512_gather3div4_di,                 // llvm.x86.avx512.gather3div4.di
-    x86_avx512_gather3div4_sf,                 // llvm.x86.avx512.gather3div4.sf
-    x86_avx512_gather3div4_si,                 // llvm.x86.avx512.gather3div4.si
-    x86_avx512_gather3div8_sf,                 // llvm.x86.avx512.gather3div8.sf
-    x86_avx512_gather3div8_si,                 // llvm.x86.avx512.gather3div8.si
-    x86_avx512_gather3siv2_df,                 // llvm.x86.avx512.gather3siv2.df
-    x86_avx512_gather3siv2_di,                 // llvm.x86.avx512.gather3siv2.di
-    x86_avx512_gather3siv4_df,                 // llvm.x86.avx512.gather3siv4.df
-    x86_avx512_gather3siv4_di,                 // llvm.x86.avx512.gather3siv4.di
-    x86_avx512_gather3siv4_sf,                 // llvm.x86.avx512.gather3siv4.sf
-    x86_avx512_gather3siv4_si,                 // llvm.x86.avx512.gather3siv4.si
-    x86_avx512_gather3siv8_sf,                 // llvm.x86.avx512.gather3siv8.sf
-    x86_avx512_gather3siv8_si,                 // llvm.x86.avx512.gather3siv8.si
-    x86_avx512_gatherpf_dpd_512,               // llvm.x86.avx512.gatherpf.dpd.512
-    x86_avx512_gatherpf_dps_512,               // llvm.x86.avx512.gatherpf.dps.512
-    x86_avx512_gatherpf_qpd_512,               // llvm.x86.avx512.gatherpf.qpd.512
-    x86_avx512_gatherpf_qps_512,               // llvm.x86.avx512.gatherpf.qps.512
-    x86_avx512_mask_add_pd_512,                // llvm.x86.avx512.mask.add.pd.512
-    x86_avx512_mask_add_ps_512,                // llvm.x86.avx512.mask.add.ps.512
-    x86_avx512_mask_add_sd_round,              // llvm.x86.avx512.mask.add.sd.round
-    x86_avx512_mask_add_ss_round,              // llvm.x86.avx512.mask.add.ss.round
-    x86_avx512_mask_cmp_pd_128,                // llvm.x86.avx512.mask.cmp.pd.128
-    x86_avx512_mask_cmp_pd_256,                // llvm.x86.avx512.mask.cmp.pd.256
-    x86_avx512_mask_cmp_pd_512,                // llvm.x86.avx512.mask.cmp.pd.512
-    x86_avx512_mask_cmp_ps_128,                // llvm.x86.avx512.mask.cmp.ps.128
-    x86_avx512_mask_cmp_ps_256,                // llvm.x86.avx512.mask.cmp.ps.256
-    x86_avx512_mask_cmp_ps_512,                // llvm.x86.avx512.mask.cmp.ps.512
-    x86_avx512_mask_cmp_sd,                    // llvm.x86.avx512.mask.cmp.sd
-    x86_avx512_mask_cmp_ss,                    // llvm.x86.avx512.mask.cmp.ss
-    x86_avx512_mask_compress_b_128,            // llvm.x86.avx512.mask.compress.b.128
-    x86_avx512_mask_compress_b_256,            // llvm.x86.avx512.mask.compress.b.256
-    x86_avx512_mask_compress_b_512,            // llvm.x86.avx512.mask.compress.b.512
-    x86_avx512_mask_compress_d_128,            // llvm.x86.avx512.mask.compress.d.128
-    x86_avx512_mask_compress_d_256,            // llvm.x86.avx512.mask.compress.d.256
-    x86_avx512_mask_compress_d_512,            // llvm.x86.avx512.mask.compress.d.512
-    x86_avx512_mask_compress_pd_128,           // llvm.x86.avx512.mask.compress.pd.128
-    x86_avx512_mask_compress_pd_256,           // llvm.x86.avx512.mask.compress.pd.256
-    x86_avx512_mask_compress_pd_512,           // llvm.x86.avx512.mask.compress.pd.512
-    x86_avx512_mask_compress_ps_128,           // llvm.x86.avx512.mask.compress.ps.128
-    x86_avx512_mask_compress_ps_256,           // llvm.x86.avx512.mask.compress.ps.256
-    x86_avx512_mask_compress_ps_512,           // llvm.x86.avx512.mask.compress.ps.512
-    x86_avx512_mask_compress_q_128,            // llvm.x86.avx512.mask.compress.q.128
-    x86_avx512_mask_compress_q_256,            // llvm.x86.avx512.mask.compress.q.256
-    x86_avx512_mask_compress_q_512,            // llvm.x86.avx512.mask.compress.q.512
-    x86_avx512_mask_compress_store_b_128,      // llvm.x86.avx512.mask.compress.store.b.128
-    x86_avx512_mask_compress_store_b_256,      // llvm.x86.avx512.mask.compress.store.b.256
-    x86_avx512_mask_compress_store_b_512,      // llvm.x86.avx512.mask.compress.store.b.512
-    x86_avx512_mask_compress_store_d_128,      // llvm.x86.avx512.mask.compress.store.d.128
-    x86_avx512_mask_compress_store_d_256,      // llvm.x86.avx512.mask.compress.store.d.256
-    x86_avx512_mask_compress_store_d_512,      // llvm.x86.avx512.mask.compress.store.d.512
-    x86_avx512_mask_compress_store_pd_128,     // llvm.x86.avx512.mask.compress.store.pd.128
-    x86_avx512_mask_compress_store_pd_256,     // llvm.x86.avx512.mask.compress.store.pd.256
-    x86_avx512_mask_compress_store_pd_512,     // llvm.x86.avx512.mask.compress.store.pd.512
-    x86_avx512_mask_compress_store_ps_128,     // llvm.x86.avx512.mask.compress.store.ps.128
-    x86_avx512_mask_compress_store_ps_256,     // llvm.x86.avx512.mask.compress.store.ps.256
-    x86_avx512_mask_compress_store_ps_512,     // llvm.x86.avx512.mask.compress.store.ps.512
-    x86_avx512_mask_compress_store_q_128,      // llvm.x86.avx512.mask.compress.store.q.128
-    x86_avx512_mask_compress_store_q_256,      // llvm.x86.avx512.mask.compress.store.q.256
-    x86_avx512_mask_compress_store_q_512,      // llvm.x86.avx512.mask.compress.store.q.512
-    x86_avx512_mask_compress_store_w_128,      // llvm.x86.avx512.mask.compress.store.w.128
-    x86_avx512_mask_compress_store_w_256,      // llvm.x86.avx512.mask.compress.store.w.256
-    x86_avx512_mask_compress_store_w_512,      // llvm.x86.avx512.mask.compress.store.w.512
-    x86_avx512_mask_compress_w_128,            // llvm.x86.avx512.mask.compress.w.128
-    x86_avx512_mask_compress_w_256,            // llvm.x86.avx512.mask.compress.w.256
-    x86_avx512_mask_compress_w_512,            // llvm.x86.avx512.mask.compress.w.512
-    x86_avx512_mask_conflict_d_128,            // llvm.x86.avx512.mask.conflict.d.128
-    x86_avx512_mask_conflict_d_256,            // llvm.x86.avx512.mask.conflict.d.256
-    x86_avx512_mask_conflict_d_512,            // llvm.x86.avx512.mask.conflict.d.512
-    x86_avx512_mask_conflict_q_128,            // llvm.x86.avx512.mask.conflict.q.128
-    x86_avx512_mask_conflict_q_256,            // llvm.x86.avx512.mask.conflict.q.256
-    x86_avx512_mask_conflict_q_512,            // llvm.x86.avx512.mask.conflict.q.512
-    x86_avx512_mask_cvtdq2ps_128,              // llvm.x86.avx512.mask.cvtdq2ps.128
-    x86_avx512_mask_cvtdq2ps_256,              // llvm.x86.avx512.mask.cvtdq2ps.256
-    x86_avx512_mask_cvtdq2ps_512,              // llvm.x86.avx512.mask.cvtdq2ps.512
-    x86_avx512_mask_cvtpd2dq_128,              // llvm.x86.avx512.mask.cvtpd2dq.128
-    x86_avx512_mask_cvtpd2dq_256,              // llvm.x86.avx512.mask.cvtpd2dq.256
-    x86_avx512_mask_cvtpd2dq_512,              // llvm.x86.avx512.mask.cvtpd2dq.512
-    x86_avx512_mask_cvtpd2ps,                  // llvm.x86.avx512.mask.cvtpd2ps
-    x86_avx512_mask_cvtpd2ps_256,              // llvm.x86.avx512.mask.cvtpd2ps.256
-    x86_avx512_mask_cvtpd2ps_512,              // llvm.x86.avx512.mask.cvtpd2ps.512
-    x86_avx512_mask_cvtpd2qq_128,              // llvm.x86.avx512.mask.cvtpd2qq.128
-    x86_avx512_mask_cvtpd2qq_256,              // llvm.x86.avx512.mask.cvtpd2qq.256
-    x86_avx512_mask_cvtpd2qq_512,              // llvm.x86.avx512.mask.cvtpd2qq.512
-    x86_avx512_mask_cvtpd2udq_128,             // llvm.x86.avx512.mask.cvtpd2udq.128
-    x86_avx512_mask_cvtpd2udq_256,             // llvm.x86.avx512.mask.cvtpd2udq.256
-    x86_avx512_mask_cvtpd2udq_512,             // llvm.x86.avx512.mask.cvtpd2udq.512
-    x86_avx512_mask_cvtpd2uqq_128,             // llvm.x86.avx512.mask.cvtpd2uqq.128
-    x86_avx512_mask_cvtpd2uqq_256,             // llvm.x86.avx512.mask.cvtpd2uqq.256
-    x86_avx512_mask_cvtpd2uqq_512,             // llvm.x86.avx512.mask.cvtpd2uqq.512
-    x86_avx512_mask_cvtps2dq_128,              // llvm.x86.avx512.mask.cvtps2dq.128
-    x86_avx512_mask_cvtps2dq_256,              // llvm.x86.avx512.mask.cvtps2dq.256
-    x86_avx512_mask_cvtps2dq_512,              // llvm.x86.avx512.mask.cvtps2dq.512
-    x86_avx512_mask_cvtps2pd_128,              // llvm.x86.avx512.mask.cvtps2pd.128
-    x86_avx512_mask_cvtps2pd_256,              // llvm.x86.avx512.mask.cvtps2pd.256
-    x86_avx512_mask_cvtps2pd_512,              // llvm.x86.avx512.mask.cvtps2pd.512
-    x86_avx512_mask_cvtps2qq_128,              // llvm.x86.avx512.mask.cvtps2qq.128
-    x86_avx512_mask_cvtps2qq_256,              // llvm.x86.avx512.mask.cvtps2qq.256
-    x86_avx512_mask_cvtps2qq_512,              // llvm.x86.avx512.mask.cvtps2qq.512
-    x86_avx512_mask_cvtps2udq_128,             // llvm.x86.avx512.mask.cvtps2udq.128
-    x86_avx512_mask_cvtps2udq_256,             // llvm.x86.avx512.mask.cvtps2udq.256
-    x86_avx512_mask_cvtps2udq_512,             // llvm.x86.avx512.mask.cvtps2udq.512
-    x86_avx512_mask_cvtps2uqq_128,             // llvm.x86.avx512.mask.cvtps2uqq.128
-    x86_avx512_mask_cvtps2uqq_256,             // llvm.x86.avx512.mask.cvtps2uqq.256
-    x86_avx512_mask_cvtps2uqq_512,             // llvm.x86.avx512.mask.cvtps2uqq.512
-    x86_avx512_mask_cvtqq2pd_128,              // llvm.x86.avx512.mask.cvtqq2pd.128
-    x86_avx512_mask_cvtqq2pd_256,              // llvm.x86.avx512.mask.cvtqq2pd.256
-    x86_avx512_mask_cvtqq2pd_512,              // llvm.x86.avx512.mask.cvtqq2pd.512
-    x86_avx512_mask_cvtqq2ps_128,              // llvm.x86.avx512.mask.cvtqq2ps.128
-    x86_avx512_mask_cvtqq2ps_256,              // llvm.x86.avx512.mask.cvtqq2ps.256
-    x86_avx512_mask_cvtqq2ps_512,              // llvm.x86.avx512.mask.cvtqq2ps.512
-    x86_avx512_mask_cvtsd2ss_round,            // llvm.x86.avx512.mask.cvtsd2ss.round
-    x86_avx512_mask_cvtss2sd_round,            // llvm.x86.avx512.mask.cvtss2sd.round
-    x86_avx512_mask_cvttpd2dq_128,             // llvm.x86.avx512.mask.cvttpd2dq.128
-    x86_avx512_mask_cvttpd2dq_256,             // llvm.x86.avx512.mask.cvttpd2dq.256
-    x86_avx512_mask_cvttpd2dq_512,             // llvm.x86.avx512.mask.cvttpd2dq.512
-    x86_avx512_mask_cvttpd2qq_128,             // llvm.x86.avx512.mask.cvttpd2qq.128
-    x86_avx512_mask_cvttpd2qq_256,             // llvm.x86.avx512.mask.cvttpd2qq.256
-    x86_avx512_mask_cvttpd2qq_512,             // llvm.x86.avx512.mask.cvttpd2qq.512
-    x86_avx512_mask_cvttpd2udq_128,            // llvm.x86.avx512.mask.cvttpd2udq.128
-    x86_avx512_mask_cvttpd2udq_256,            // llvm.x86.avx512.mask.cvttpd2udq.256
-    x86_avx512_mask_cvttpd2udq_512,            // llvm.x86.avx512.mask.cvttpd2udq.512
-    x86_avx512_mask_cvttpd2uqq_128,            // llvm.x86.avx512.mask.cvttpd2uqq.128
-    x86_avx512_mask_cvttpd2uqq_256,            // llvm.x86.avx512.mask.cvttpd2uqq.256
-    x86_avx512_mask_cvttpd2uqq_512,            // llvm.x86.avx512.mask.cvttpd2uqq.512
-    x86_avx512_mask_cvttps2dq_128,             // llvm.x86.avx512.mask.cvttps2dq.128
-    x86_avx512_mask_cvttps2dq_256,             // llvm.x86.avx512.mask.cvttps2dq.256
-    x86_avx512_mask_cvttps2dq_512,             // llvm.x86.avx512.mask.cvttps2dq.512
-    x86_avx512_mask_cvttps2qq_128,             // llvm.x86.avx512.mask.cvttps2qq.128
-    x86_avx512_mask_cvttps2qq_256,             // llvm.x86.avx512.mask.cvttps2qq.256
-    x86_avx512_mask_cvttps2qq_512,             // llvm.x86.avx512.mask.cvttps2qq.512
-    x86_avx512_mask_cvttps2udq_128,            // llvm.x86.avx512.mask.cvttps2udq.128
-    x86_avx512_mask_cvttps2udq_256,            // llvm.x86.avx512.mask.cvttps2udq.256
-    x86_avx512_mask_cvttps2udq_512,            // llvm.x86.avx512.mask.cvttps2udq.512
-    x86_avx512_mask_cvttps2uqq_128,            // llvm.x86.avx512.mask.cvttps2uqq.128
-    x86_avx512_mask_cvttps2uqq_256,            // llvm.x86.avx512.mask.cvttps2uqq.256
-    x86_avx512_mask_cvttps2uqq_512,            // llvm.x86.avx512.mask.cvttps2uqq.512
-    x86_avx512_mask_cvtudq2ps_128,             // llvm.x86.avx512.mask.cvtudq2ps.128
-    x86_avx512_mask_cvtudq2ps_256,             // llvm.x86.avx512.mask.cvtudq2ps.256
-    x86_avx512_mask_cvtudq2ps_512,             // llvm.x86.avx512.mask.cvtudq2ps.512
-    x86_avx512_mask_cvtuqq2pd_128,             // llvm.x86.avx512.mask.cvtuqq2pd.128
-    x86_avx512_mask_cvtuqq2pd_256,             // llvm.x86.avx512.mask.cvtuqq2pd.256
-    x86_avx512_mask_cvtuqq2pd_512,             // llvm.x86.avx512.mask.cvtuqq2pd.512
-    x86_avx512_mask_cvtuqq2ps_128,             // llvm.x86.avx512.mask.cvtuqq2ps.128
-    x86_avx512_mask_cvtuqq2ps_256,             // llvm.x86.avx512.mask.cvtuqq2ps.256
-    x86_avx512_mask_cvtuqq2ps_512,             // llvm.x86.avx512.mask.cvtuqq2ps.512
-    x86_avx512_mask_dbpsadbw_128,              // llvm.x86.avx512.mask.dbpsadbw.128
-    x86_avx512_mask_dbpsadbw_256,              // llvm.x86.avx512.mask.dbpsadbw.256
-    x86_avx512_mask_dbpsadbw_512,              // llvm.x86.avx512.mask.dbpsadbw.512
-    x86_avx512_mask_div_pd_512,                // llvm.x86.avx512.mask.div.pd.512
-    x86_avx512_mask_div_ps_512,                // llvm.x86.avx512.mask.div.ps.512
-    x86_avx512_mask_div_sd_round,              // llvm.x86.avx512.mask.div.sd.round
-    x86_avx512_mask_div_ss_round,              // llvm.x86.avx512.mask.div.ss.round
-    x86_avx512_mask_expand_b_128,              // llvm.x86.avx512.mask.expand.b.128
-    x86_avx512_mask_expand_b_256,              // llvm.x86.avx512.mask.expand.b.256
-    x86_avx512_mask_expand_b_512,              // llvm.x86.avx512.mask.expand.b.512
-    x86_avx512_mask_expand_d_128,              // llvm.x86.avx512.mask.expand.d.128
-    x86_avx512_mask_expand_d_256,              // llvm.x86.avx512.mask.expand.d.256
-    x86_avx512_mask_expand_d_512,              // llvm.x86.avx512.mask.expand.d.512
-    x86_avx512_mask_expand_load_b_128,         // llvm.x86.avx512.mask.expand.load.b.128
-    x86_avx512_mask_expand_load_b_256,         // llvm.x86.avx512.mask.expand.load.b.256
-    x86_avx512_mask_expand_load_b_512,         // llvm.x86.avx512.mask.expand.load.b.512
-    x86_avx512_mask_expand_load_d_128,         // llvm.x86.avx512.mask.expand.load.d.128
-    x86_avx512_mask_expand_load_d_256,         // llvm.x86.avx512.mask.expand.load.d.256
-    x86_avx512_mask_expand_load_d_512,         // llvm.x86.avx512.mask.expand.load.d.512
-    x86_avx512_mask_expand_load_pd_128,        // llvm.x86.avx512.mask.expand.load.pd.128
-    x86_avx512_mask_expand_load_pd_256,        // llvm.x86.avx512.mask.expand.load.pd.256
-    x86_avx512_mask_expand_load_pd_512,        // llvm.x86.avx512.mask.expand.load.pd.512
-    x86_avx512_mask_expand_load_ps_128,        // llvm.x86.avx512.mask.expand.load.ps.128
-    x86_avx512_mask_expand_load_ps_256,        // llvm.x86.avx512.mask.expand.load.ps.256
-    x86_avx512_mask_expand_load_ps_512,        // llvm.x86.avx512.mask.expand.load.ps.512
-    x86_avx512_mask_expand_load_q_128,         // llvm.x86.avx512.mask.expand.load.q.128
-    x86_avx512_mask_expand_load_q_256,         // llvm.x86.avx512.mask.expand.load.q.256
-    x86_avx512_mask_expand_load_q_512,         // llvm.x86.avx512.mask.expand.load.q.512
-    x86_avx512_mask_expand_load_w_128,         // llvm.x86.avx512.mask.expand.load.w.128
-    x86_avx512_mask_expand_load_w_256,         // llvm.x86.avx512.mask.expand.load.w.256
-    x86_avx512_mask_expand_load_w_512,         // llvm.x86.avx512.mask.expand.load.w.512
-    x86_avx512_mask_expand_pd_128,             // llvm.x86.avx512.mask.expand.pd.128
-    x86_avx512_mask_expand_pd_256,             // llvm.x86.avx512.mask.expand.pd.256
-    x86_avx512_mask_expand_pd_512,             // llvm.x86.avx512.mask.expand.pd.512
-    x86_avx512_mask_expand_ps_128,             // llvm.x86.avx512.mask.expand.ps.128
-    x86_avx512_mask_expand_ps_256,             // llvm.x86.avx512.mask.expand.ps.256
-    x86_avx512_mask_expand_ps_512,             // llvm.x86.avx512.mask.expand.ps.512
-    x86_avx512_mask_expand_q_128,              // llvm.x86.avx512.mask.expand.q.128
-    x86_avx512_mask_expand_q_256,              // llvm.x86.avx512.mask.expand.q.256
-    x86_avx512_mask_expand_q_512,              // llvm.x86.avx512.mask.expand.q.512
-    x86_avx512_mask_expand_w_128,              // llvm.x86.avx512.mask.expand.w.128
-    x86_avx512_mask_expand_w_256,              // llvm.x86.avx512.mask.expand.w.256
-    x86_avx512_mask_expand_w_512,              // llvm.x86.avx512.mask.expand.w.512
-    x86_avx512_mask_fixupimm_pd_128,           // llvm.x86.avx512.mask.fixupimm.pd.128
-    x86_avx512_mask_fixupimm_pd_256,           // llvm.x86.avx512.mask.fixupimm.pd.256
-    x86_avx512_mask_fixupimm_pd_512,           // llvm.x86.avx512.mask.fixupimm.pd.512
-    x86_avx512_mask_fixupimm_ps_128,           // llvm.x86.avx512.mask.fixupimm.ps.128
-    x86_avx512_mask_fixupimm_ps_256,           // llvm.x86.avx512.mask.fixupimm.ps.256
-    x86_avx512_mask_fixupimm_ps_512,           // llvm.x86.avx512.mask.fixupimm.ps.512
-    x86_avx512_mask_fixupimm_sd,               // llvm.x86.avx512.mask.fixupimm.sd
-    x86_avx512_mask_fixupimm_ss,               // llvm.x86.avx512.mask.fixupimm.ss
-    x86_avx512_mask_fpclass_pd_128,            // llvm.x86.avx512.mask.fpclass.pd.128
-    x86_avx512_mask_fpclass_pd_256,            // llvm.x86.avx512.mask.fpclass.pd.256
-    x86_avx512_mask_fpclass_pd_512,            // llvm.x86.avx512.mask.fpclass.pd.512
-    x86_avx512_mask_fpclass_ps_128,            // llvm.x86.avx512.mask.fpclass.ps.128
-    x86_avx512_mask_fpclass_ps_256,            // llvm.x86.avx512.mask.fpclass.ps.256
-    x86_avx512_mask_fpclass_ps_512,            // llvm.x86.avx512.mask.fpclass.ps.512
-    x86_avx512_mask_fpclass_sd,                // llvm.x86.avx512.mask.fpclass.sd
-    x86_avx512_mask_fpclass_ss,                // llvm.x86.avx512.mask.fpclass.ss
-    x86_avx512_mask_getexp_pd_128,             // llvm.x86.avx512.mask.getexp.pd.128
-    x86_avx512_mask_getexp_pd_256,             // llvm.x86.avx512.mask.getexp.pd.256
-    x86_avx512_mask_getexp_pd_512,             // llvm.x86.avx512.mask.getexp.pd.512
-    x86_avx512_mask_getexp_ps_128,             // llvm.x86.avx512.mask.getexp.ps.128
-    x86_avx512_mask_getexp_ps_256,             // llvm.x86.avx512.mask.getexp.ps.256
-    x86_avx512_mask_getexp_ps_512,             // llvm.x86.avx512.mask.getexp.ps.512
-    x86_avx512_mask_getexp_sd,                 // llvm.x86.avx512.mask.getexp.sd
-    x86_avx512_mask_getexp_ss,                 // llvm.x86.avx512.mask.getexp.ss
-    x86_avx512_mask_getmant_pd_128,            // llvm.x86.avx512.mask.getmant.pd.128
-    x86_avx512_mask_getmant_pd_256,            // llvm.x86.avx512.mask.getmant.pd.256
-    x86_avx512_mask_getmant_pd_512,            // llvm.x86.avx512.mask.getmant.pd.512
-    x86_avx512_mask_getmant_ps_128,            // llvm.x86.avx512.mask.getmant.ps.128
-    x86_avx512_mask_getmant_ps_256,            // llvm.x86.avx512.mask.getmant.ps.256
-    x86_avx512_mask_getmant_ps_512,            // llvm.x86.avx512.mask.getmant.ps.512
-    x86_avx512_mask_getmant_sd,                // llvm.x86.avx512.mask.getmant.sd
-    x86_avx512_mask_getmant_ss,                // llvm.x86.avx512.mask.getmant.ss
-    x86_avx512_mask_max_pd_512,                // llvm.x86.avx512.mask.max.pd.512
-    x86_avx512_mask_max_ps_512,                // llvm.x86.avx512.mask.max.ps.512
-    x86_avx512_mask_max_sd_round,              // llvm.x86.avx512.mask.max.sd.round
-    x86_avx512_mask_max_ss_round,              // llvm.x86.avx512.mask.max.ss.round
-    x86_avx512_mask_min_pd_512,                // llvm.x86.avx512.mask.min.pd.512
-    x86_avx512_mask_min_ps_512,                // llvm.x86.avx512.mask.min.ps.512
-    x86_avx512_mask_min_sd_round,              // llvm.x86.avx512.mask.min.sd.round
-    x86_avx512_mask_min_ss_round,              // llvm.x86.avx512.mask.min.ss.round
-    x86_avx512_mask_mul_pd_512,                // llvm.x86.avx512.mask.mul.pd.512
-    x86_avx512_mask_mul_ps_512,                // llvm.x86.avx512.mask.mul.ps.512
-    x86_avx512_mask_mul_sd_round,              // llvm.x86.avx512.mask.mul.sd.round
-    x86_avx512_mask_mul_ss_round,              // llvm.x86.avx512.mask.mul.ss.round
-    x86_avx512_mask_padds_b_128,               // llvm.x86.avx512.mask.padds.b.128
-    x86_avx512_mask_padds_b_256,               // llvm.x86.avx512.mask.padds.b.256
-    x86_avx512_mask_padds_b_512,               // llvm.x86.avx512.mask.padds.b.512
-    x86_avx512_mask_padds_w_128,               // llvm.x86.avx512.mask.padds.w.128
-    x86_avx512_mask_padds_w_256,               // llvm.x86.avx512.mask.padds.w.256
-    x86_avx512_mask_padds_w_512,               // llvm.x86.avx512.mask.padds.w.512
-    x86_avx512_mask_paddus_b_128,              // llvm.x86.avx512.mask.paddus.b.128
-    x86_avx512_mask_paddus_b_256,              // llvm.x86.avx512.mask.paddus.b.256
-    x86_avx512_mask_paddus_b_512,              // llvm.x86.avx512.mask.paddus.b.512
-    x86_avx512_mask_paddus_w_128,              // llvm.x86.avx512.mask.paddus.w.128
-    x86_avx512_mask_paddus_w_256,              // llvm.x86.avx512.mask.paddus.w.256
-    x86_avx512_mask_paddus_w_512,              // llvm.x86.avx512.mask.paddus.w.512
-    x86_avx512_mask_permvar_df_256,            // llvm.x86.avx512.mask.permvar.df.256
-    x86_avx512_mask_permvar_df_512,            // llvm.x86.avx512.mask.permvar.df.512
-    x86_avx512_mask_permvar_di_256,            // llvm.x86.avx512.mask.permvar.di.256
-    x86_avx512_mask_permvar_di_512,            // llvm.x86.avx512.mask.permvar.di.512
-    x86_avx512_mask_permvar_hi_128,            // llvm.x86.avx512.mask.permvar.hi.128
-    x86_avx512_mask_permvar_hi_256,            // llvm.x86.avx512.mask.permvar.hi.256
-    x86_avx512_mask_permvar_hi_512,            // llvm.x86.avx512.mask.permvar.hi.512
-    x86_avx512_mask_permvar_qi_128,            // llvm.x86.avx512.mask.permvar.qi.128
-    x86_avx512_mask_permvar_qi_256,            // llvm.x86.avx512.mask.permvar.qi.256
-    x86_avx512_mask_permvar_qi_512,            // llvm.x86.avx512.mask.permvar.qi.512
-    x86_avx512_mask_permvar_sf_256,            // llvm.x86.avx512.mask.permvar.sf.256
-    x86_avx512_mask_permvar_sf_512,            // llvm.x86.avx512.mask.permvar.sf.512
-    x86_avx512_mask_permvar_si_256,            // llvm.x86.avx512.mask.permvar.si.256
-    x86_avx512_mask_permvar_si_512,            // llvm.x86.avx512.mask.permvar.si.512
-    x86_avx512_mask_pmaddubs_w_128,            // llvm.x86.avx512.mask.pmaddubs.w.128
-    x86_avx512_mask_pmaddubs_w_256,            // llvm.x86.avx512.mask.pmaddubs.w.256
-    x86_avx512_mask_pmaddubs_w_512,            // llvm.x86.avx512.mask.pmaddubs.w.512
-    x86_avx512_mask_pmaddw_d_128,              // llvm.x86.avx512.mask.pmaddw.d.128
-    x86_avx512_mask_pmaddw_d_256,              // llvm.x86.avx512.mask.pmaddw.d.256
-    x86_avx512_mask_pmaddw_d_512,              // llvm.x86.avx512.mask.pmaddw.d.512
-    x86_avx512_mask_pmov_db_128,               // llvm.x86.avx512.mask.pmov.db.128
-    x86_avx512_mask_pmov_db_256,               // llvm.x86.avx512.mask.pmov.db.256
-    x86_avx512_mask_pmov_db_512,               // llvm.x86.avx512.mask.pmov.db.512
-    x86_avx512_mask_pmov_db_mem_128,           // llvm.x86.avx512.mask.pmov.db.mem.128
-    x86_avx512_mask_pmov_db_mem_256,           // llvm.x86.avx512.mask.pmov.db.mem.256
-    x86_avx512_mask_pmov_db_mem_512,           // llvm.x86.avx512.mask.pmov.db.mem.512
-    x86_avx512_mask_pmov_dw_128,               // llvm.x86.avx512.mask.pmov.dw.128
-    x86_avx512_mask_pmov_dw_256,               // llvm.x86.avx512.mask.pmov.dw.256
-    x86_avx512_mask_pmov_dw_512,               // llvm.x86.avx512.mask.pmov.dw.512
-    x86_avx512_mask_pmov_dw_mem_128,           // llvm.x86.avx512.mask.pmov.dw.mem.128
-    x86_avx512_mask_pmov_dw_mem_256,           // llvm.x86.avx512.mask.pmov.dw.mem.256
-    x86_avx512_mask_pmov_dw_mem_512,           // llvm.x86.avx512.mask.pmov.dw.mem.512
-    x86_avx512_mask_pmov_qb_128,               // llvm.x86.avx512.mask.pmov.qb.128
-    x86_avx512_mask_pmov_qb_256,               // llvm.x86.avx512.mask.pmov.qb.256
-    x86_avx512_mask_pmov_qb_512,               // llvm.x86.avx512.mask.pmov.qb.512
-    x86_avx512_mask_pmov_qb_mem_128,           // llvm.x86.avx512.mask.pmov.qb.mem.128
-    x86_avx512_mask_pmov_qb_mem_256,           // llvm.x86.avx512.mask.pmov.qb.mem.256
-    x86_avx512_mask_pmov_qb_mem_512,           // llvm.x86.avx512.mask.pmov.qb.mem.512
-    x86_avx512_mask_pmov_qd_128,               // llvm.x86.avx512.mask.pmov.qd.128
-    x86_avx512_mask_pmov_qd_256,               // llvm.x86.avx512.mask.pmov.qd.256
-    x86_avx512_mask_pmov_qd_512,               // llvm.x86.avx512.mask.pmov.qd.512
-    x86_avx512_mask_pmov_qd_mem_128,           // llvm.x86.avx512.mask.pmov.qd.mem.128
-    x86_avx512_mask_pmov_qd_mem_256,           // llvm.x86.avx512.mask.pmov.qd.mem.256
-    x86_avx512_mask_pmov_qd_mem_512,           // llvm.x86.avx512.mask.pmov.qd.mem.512
-    x86_avx512_mask_pmov_qw_128,               // llvm.x86.avx512.mask.pmov.qw.128
-    x86_avx512_mask_pmov_qw_256,               // llvm.x86.avx512.mask.pmov.qw.256
-    x86_avx512_mask_pmov_qw_512,               // llvm.x86.avx512.mask.pmov.qw.512
-    x86_avx512_mask_pmov_qw_mem_128,           // llvm.x86.avx512.mask.pmov.qw.mem.128
-    x86_avx512_mask_pmov_qw_mem_256,           // llvm.x86.avx512.mask.pmov.qw.mem.256
-    x86_avx512_mask_pmov_qw_mem_512,           // llvm.x86.avx512.mask.pmov.qw.mem.512
-    x86_avx512_mask_pmov_wb_128,               // llvm.x86.avx512.mask.pmov.wb.128
-    x86_avx512_mask_pmov_wb_256,               // llvm.x86.avx512.mask.pmov.wb.256
-    x86_avx512_mask_pmov_wb_512,               // llvm.x86.avx512.mask.pmov.wb.512
-    x86_avx512_mask_pmov_wb_mem_128,           // llvm.x86.avx512.mask.pmov.wb.mem.128
-    x86_avx512_mask_pmov_wb_mem_256,           // llvm.x86.avx512.mask.pmov.wb.mem.256
-    x86_avx512_mask_pmov_wb_mem_512,           // llvm.x86.avx512.mask.pmov.wb.mem.512
-    x86_avx512_mask_pmovs_db_128,              // llvm.x86.avx512.mask.pmovs.db.128
-    x86_avx512_mask_pmovs_db_256,              // llvm.x86.avx512.mask.pmovs.db.256
-    x86_avx512_mask_pmovs_db_512,              // llvm.x86.avx512.mask.pmovs.db.512
-    x86_avx512_mask_pmovs_db_mem_128,          // llvm.x86.avx512.mask.pmovs.db.mem.128
-    x86_avx512_mask_pmovs_db_mem_256,          // llvm.x86.avx512.mask.pmovs.db.mem.256
-    x86_avx512_mask_pmovs_db_mem_512,          // llvm.x86.avx512.mask.pmovs.db.mem.512
-    x86_avx512_mask_pmovs_dw_128,              // llvm.x86.avx512.mask.pmovs.dw.128
-    x86_avx512_mask_pmovs_dw_256,              // llvm.x86.avx512.mask.pmovs.dw.256
-    x86_avx512_mask_pmovs_dw_512,              // llvm.x86.avx512.mask.pmovs.dw.512
-    x86_avx512_mask_pmovs_dw_mem_128,          // llvm.x86.avx512.mask.pmovs.dw.mem.128
-    x86_avx512_mask_pmovs_dw_mem_256,          // llvm.x86.avx512.mask.pmovs.dw.mem.256
-    x86_avx512_mask_pmovs_dw_mem_512,          // llvm.x86.avx512.mask.pmovs.dw.mem.512
-    x86_avx512_mask_pmovs_qb_128,              // llvm.x86.avx512.mask.pmovs.qb.128
-    x86_avx512_mask_pmovs_qb_256,              // llvm.x86.avx512.mask.pmovs.qb.256
-    x86_avx512_mask_pmovs_qb_512,              // llvm.x86.avx512.mask.pmovs.qb.512
-    x86_avx512_mask_pmovs_qb_mem_128,          // llvm.x86.avx512.mask.pmovs.qb.mem.128
-    x86_avx512_mask_pmovs_qb_mem_256,          // llvm.x86.avx512.mask.pmovs.qb.mem.256
-    x86_avx512_mask_pmovs_qb_mem_512,          // llvm.x86.avx512.mask.pmovs.qb.mem.512
-    x86_avx512_mask_pmovs_qd_128,              // llvm.x86.avx512.mask.pmovs.qd.128
-    x86_avx512_mask_pmovs_qd_256,              // llvm.x86.avx512.mask.pmovs.qd.256
-    x86_avx512_mask_pmovs_qd_512,              // llvm.x86.avx512.mask.pmovs.qd.512
-    x86_avx512_mask_pmovs_qd_mem_128,          // llvm.x86.avx512.mask.pmovs.qd.mem.128
-    x86_avx512_mask_pmovs_qd_mem_256,          // llvm.x86.avx512.mask.pmovs.qd.mem.256
-    x86_avx512_mask_pmovs_qd_mem_512,          // llvm.x86.avx512.mask.pmovs.qd.mem.512
-    x86_avx512_mask_pmovs_qw_128,              // llvm.x86.avx512.mask.pmovs.qw.128
-    x86_avx512_mask_pmovs_qw_256,              // llvm.x86.avx512.mask.pmovs.qw.256
-    x86_avx512_mask_pmovs_qw_512,              // llvm.x86.avx512.mask.pmovs.qw.512
-    x86_avx512_mask_pmovs_qw_mem_128,          // llvm.x86.avx512.mask.pmovs.qw.mem.128
-    x86_avx512_mask_pmovs_qw_mem_256,          // llvm.x86.avx512.mask.pmovs.qw.mem.256
-    x86_avx512_mask_pmovs_qw_mem_512,          // llvm.x86.avx512.mask.pmovs.qw.mem.512
-    x86_avx512_mask_pmovs_wb_128,              // llvm.x86.avx512.mask.pmovs.wb.128
-    x86_avx512_mask_pmovs_wb_256,              // llvm.x86.avx512.mask.pmovs.wb.256
-    x86_avx512_mask_pmovs_wb_512,              // llvm.x86.avx512.mask.pmovs.wb.512
-    x86_avx512_mask_pmovs_wb_mem_128,          // llvm.x86.avx512.mask.pmovs.wb.mem.128
-    x86_avx512_mask_pmovs_wb_mem_256,          // llvm.x86.avx512.mask.pmovs.wb.mem.256
-    x86_avx512_mask_pmovs_wb_mem_512,          // llvm.x86.avx512.mask.pmovs.wb.mem.512
-    x86_avx512_mask_pmovus_db_128,             // llvm.x86.avx512.mask.pmovus.db.128
-    x86_avx512_mask_pmovus_db_256,             // llvm.x86.avx512.mask.pmovus.db.256
-    x86_avx512_mask_pmovus_db_512,             // llvm.x86.avx512.mask.pmovus.db.512
-    x86_avx512_mask_pmovus_db_mem_128,         // llvm.x86.avx512.mask.pmovus.db.mem.128
-    x86_avx512_mask_pmovus_db_mem_256,         // llvm.x86.avx512.mask.pmovus.db.mem.256
-    x86_avx512_mask_pmovus_db_mem_512,         // llvm.x86.avx512.mask.pmovus.db.mem.512
-    x86_avx512_mask_pmovus_dw_128,             // llvm.x86.avx512.mask.pmovus.dw.128
-    x86_avx512_mask_pmovus_dw_256,             // llvm.x86.avx512.mask.pmovus.dw.256
-    x86_avx512_mask_pmovus_dw_512,             // llvm.x86.avx512.mask.pmovus.dw.512
-    x86_avx512_mask_pmovus_dw_mem_128,         // llvm.x86.avx512.mask.pmovus.dw.mem.128
-    x86_avx512_mask_pmovus_dw_mem_256,         // llvm.x86.avx512.mask.pmovus.dw.mem.256
-    x86_avx512_mask_pmovus_dw_mem_512,         // llvm.x86.avx512.mask.pmovus.dw.mem.512
-    x86_avx512_mask_pmovus_qb_128,             // llvm.x86.avx512.mask.pmovus.qb.128
-    x86_avx512_mask_pmovus_qb_256,             // llvm.x86.avx512.mask.pmovus.qb.256
-    x86_avx512_mask_pmovus_qb_512,             // llvm.x86.avx512.mask.pmovus.qb.512
-    x86_avx512_mask_pmovus_qb_mem_128,         // llvm.x86.avx512.mask.pmovus.qb.mem.128
-    x86_avx512_mask_pmovus_qb_mem_256,         // llvm.x86.avx512.mask.pmovus.qb.mem.256
-    x86_avx512_mask_pmovus_qb_mem_512,         // llvm.x86.avx512.mask.pmovus.qb.mem.512
-    x86_avx512_mask_pmovus_qd_128,             // llvm.x86.avx512.mask.pmovus.qd.128
-    x86_avx512_mask_pmovus_qd_256,             // llvm.x86.avx512.mask.pmovus.qd.256
-    x86_avx512_mask_pmovus_qd_512,             // llvm.x86.avx512.mask.pmovus.qd.512
-    x86_avx512_mask_pmovus_qd_mem_128,         // llvm.x86.avx512.mask.pmovus.qd.mem.128
-    x86_avx512_mask_pmovus_qd_mem_256,         // llvm.x86.avx512.mask.pmovus.qd.mem.256
-    x86_avx512_mask_pmovus_qd_mem_512,         // llvm.x86.avx512.mask.pmovus.qd.mem.512
-    x86_avx512_mask_pmovus_qw_128,             // llvm.x86.avx512.mask.pmovus.qw.128
-    x86_avx512_mask_pmovus_qw_256,             // llvm.x86.avx512.mask.pmovus.qw.256
-    x86_avx512_mask_pmovus_qw_512,             // llvm.x86.avx512.mask.pmovus.qw.512
-    x86_avx512_mask_pmovus_qw_mem_128,         // llvm.x86.avx512.mask.pmovus.qw.mem.128
-    x86_avx512_mask_pmovus_qw_mem_256,         // llvm.x86.avx512.mask.pmovus.qw.mem.256
-    x86_avx512_mask_pmovus_qw_mem_512,         // llvm.x86.avx512.mask.pmovus.qw.mem.512
-    x86_avx512_mask_pmovus_wb_128,             // llvm.x86.avx512.mask.pmovus.wb.128
-    x86_avx512_mask_pmovus_wb_256,             // llvm.x86.avx512.mask.pmovus.wb.256
-    x86_avx512_mask_pmovus_wb_512,             // llvm.x86.avx512.mask.pmovus.wb.512
-    x86_avx512_mask_pmovus_wb_mem_128,         // llvm.x86.avx512.mask.pmovus.wb.mem.128
-    x86_avx512_mask_pmovus_wb_mem_256,         // llvm.x86.avx512.mask.pmovus.wb.mem.256
-    x86_avx512_mask_pmovus_wb_mem_512,         // llvm.x86.avx512.mask.pmovus.wb.mem.512
-    x86_avx512_mask_pmultishift_qb_128,        // llvm.x86.avx512.mask.pmultishift.qb.128
-    x86_avx512_mask_pmultishift_qb_256,        // llvm.x86.avx512.mask.pmultishift.qb.256
-    x86_avx512_mask_pmultishift_qb_512,        // llvm.x86.avx512.mask.pmultishift.qb.512
-    x86_avx512_mask_prol_d_128,                // llvm.x86.avx512.mask.prol.d.128
-    x86_avx512_mask_prol_d_256,                // llvm.x86.avx512.mask.prol.d.256
-    x86_avx512_mask_prol_d_512,                // llvm.x86.avx512.mask.prol.d.512
-    x86_avx512_mask_prol_q_128,                // llvm.x86.avx512.mask.prol.q.128
-    x86_avx512_mask_prol_q_256,                // llvm.x86.avx512.mask.prol.q.256
-    x86_avx512_mask_prol_q_512,                // llvm.x86.avx512.mask.prol.q.512
-    x86_avx512_mask_prolv_d_128,               // llvm.x86.avx512.mask.prolv.d.128
-    x86_avx512_mask_prolv_d_256,               // llvm.x86.avx512.mask.prolv.d.256
-    x86_avx512_mask_prolv_d_512,               // llvm.x86.avx512.mask.prolv.d.512
-    x86_avx512_mask_prolv_q_128,               // llvm.x86.avx512.mask.prolv.q.128
-    x86_avx512_mask_prolv_q_256,               // llvm.x86.avx512.mask.prolv.q.256
-    x86_avx512_mask_prolv_q_512,               // llvm.x86.avx512.mask.prolv.q.512
-    x86_avx512_mask_pror_d_128,                // llvm.x86.avx512.mask.pror.d.128
-    x86_avx512_mask_pror_d_256,                // llvm.x86.avx512.mask.pror.d.256
-    x86_avx512_mask_pror_d_512,                // llvm.x86.avx512.mask.pror.d.512
-    x86_avx512_mask_pror_q_128,                // llvm.x86.avx512.mask.pror.q.128
-    x86_avx512_mask_pror_q_256,                // llvm.x86.avx512.mask.pror.q.256
-    x86_avx512_mask_pror_q_512,                // llvm.x86.avx512.mask.pror.q.512
-    x86_avx512_mask_prorv_d_128,               // llvm.x86.avx512.mask.prorv.d.128
-    x86_avx512_mask_prorv_d_256,               // llvm.x86.avx512.mask.prorv.d.256
-    x86_avx512_mask_prorv_d_512,               // llvm.x86.avx512.mask.prorv.d.512
-    x86_avx512_mask_prorv_q_128,               // llvm.x86.avx512.mask.prorv.q.128
-    x86_avx512_mask_prorv_q_256,               // llvm.x86.avx512.mask.prorv.q.256
-    x86_avx512_mask_prorv_q_512,               // llvm.x86.avx512.mask.prorv.q.512
-    x86_avx512_mask_psubs_b_128,               // llvm.x86.avx512.mask.psubs.b.128
-    x86_avx512_mask_psubs_b_256,               // llvm.x86.avx512.mask.psubs.b.256
-    x86_avx512_mask_psubs_b_512,               // llvm.x86.avx512.mask.psubs.b.512
-    x86_avx512_mask_psubs_w_128,               // llvm.x86.avx512.mask.psubs.w.128
-    x86_avx512_mask_psubs_w_256,               // llvm.x86.avx512.mask.psubs.w.256
-    x86_avx512_mask_psubs_w_512,               // llvm.x86.avx512.mask.psubs.w.512
-    x86_avx512_mask_psubus_b_128,              // llvm.x86.avx512.mask.psubus.b.128
-    x86_avx512_mask_psubus_b_256,              // llvm.x86.avx512.mask.psubus.b.256
-    x86_avx512_mask_psubus_b_512,              // llvm.x86.avx512.mask.psubus.b.512
-    x86_avx512_mask_psubus_w_128,              // llvm.x86.avx512.mask.psubus.w.128
-    x86_avx512_mask_psubus_w_256,              // llvm.x86.avx512.mask.psubus.w.256
-    x86_avx512_mask_psubus_w_512,              // llvm.x86.avx512.mask.psubus.w.512
-    x86_avx512_mask_pternlog_d_128,            // llvm.x86.avx512.mask.pternlog.d.128
-    x86_avx512_mask_pternlog_d_256,            // llvm.x86.avx512.mask.pternlog.d.256
-    x86_avx512_mask_pternlog_d_512,            // llvm.x86.avx512.mask.pternlog.d.512
-    x86_avx512_mask_pternlog_q_128,            // llvm.x86.avx512.mask.pternlog.q.128
-    x86_avx512_mask_pternlog_q_256,            // llvm.x86.avx512.mask.pternlog.q.256
-    x86_avx512_mask_pternlog_q_512,            // llvm.x86.avx512.mask.pternlog.q.512
-    x86_avx512_mask_range_pd_128,              // llvm.x86.avx512.mask.range.pd.128
-    x86_avx512_mask_range_pd_256,              // llvm.x86.avx512.mask.range.pd.256
-    x86_avx512_mask_range_pd_512,              // llvm.x86.avx512.mask.range.pd.512
-    x86_avx512_mask_range_ps_128,              // llvm.x86.avx512.mask.range.ps.128
-    x86_avx512_mask_range_ps_256,              // llvm.x86.avx512.mask.range.ps.256
-    x86_avx512_mask_range_ps_512,              // llvm.x86.avx512.mask.range.ps.512
-    x86_avx512_mask_range_sd,                  // llvm.x86.avx512.mask.range.sd
-    x86_avx512_mask_range_ss,                  // llvm.x86.avx512.mask.range.ss
-    x86_avx512_mask_reduce_pd_128,             // llvm.x86.avx512.mask.reduce.pd.128
-    x86_avx512_mask_reduce_pd_256,             // llvm.x86.avx512.mask.reduce.pd.256
-    x86_avx512_mask_reduce_pd_512,             // llvm.x86.avx512.mask.reduce.pd.512
-    x86_avx512_mask_reduce_ps_128,             // llvm.x86.avx512.mask.reduce.ps.128
-    x86_avx512_mask_reduce_ps_256,             // llvm.x86.avx512.mask.reduce.ps.256
-    x86_avx512_mask_reduce_ps_512,             // llvm.x86.avx512.mask.reduce.ps.512
-    x86_avx512_mask_reduce_sd,                 // llvm.x86.avx512.mask.reduce.sd
-    x86_avx512_mask_reduce_ss,                 // llvm.x86.avx512.mask.reduce.ss
-    x86_avx512_mask_rndscale_pd_128,           // llvm.x86.avx512.mask.rndscale.pd.128
-    x86_avx512_mask_rndscale_pd_256,           // llvm.x86.avx512.mask.rndscale.pd.256
-    x86_avx512_mask_rndscale_pd_512,           // llvm.x86.avx512.mask.rndscale.pd.512
-    x86_avx512_mask_rndscale_ps_128,           // llvm.x86.avx512.mask.rndscale.ps.128
-    x86_avx512_mask_rndscale_ps_256,           // llvm.x86.avx512.mask.rndscale.ps.256
-    x86_avx512_mask_rndscale_ps_512,           // llvm.x86.avx512.mask.rndscale.ps.512
-    x86_avx512_mask_rndscale_sd,               // llvm.x86.avx512.mask.rndscale.sd
-    x86_avx512_mask_rndscale_ss,               // llvm.x86.avx512.mask.rndscale.ss
-    x86_avx512_mask_scalef_pd_128,             // llvm.x86.avx512.mask.scalef.pd.128
-    x86_avx512_mask_scalef_pd_256,             // llvm.x86.avx512.mask.scalef.pd.256
-    x86_avx512_mask_scalef_pd_512,             // llvm.x86.avx512.mask.scalef.pd.512
-    x86_avx512_mask_scalef_ps_128,             // llvm.x86.avx512.mask.scalef.ps.128
-    x86_avx512_mask_scalef_ps_256,             // llvm.x86.avx512.mask.scalef.ps.256
-    x86_avx512_mask_scalef_ps_512,             // llvm.x86.avx512.mask.scalef.ps.512
-    x86_avx512_mask_scalef_sd,                 // llvm.x86.avx512.mask.scalef.sd
-    x86_avx512_mask_scalef_ss,                 // llvm.x86.avx512.mask.scalef.ss
-    x86_avx512_mask_sqrt_pd_128,               // llvm.x86.avx512.mask.sqrt.pd.128
-    x86_avx512_mask_sqrt_pd_256,               // llvm.x86.avx512.mask.sqrt.pd.256
-    x86_avx512_mask_sqrt_pd_512,               // llvm.x86.avx512.mask.sqrt.pd.512
-    x86_avx512_mask_sqrt_ps_128,               // llvm.x86.avx512.mask.sqrt.ps.128
-    x86_avx512_mask_sqrt_ps_256,               // llvm.x86.avx512.mask.sqrt.ps.256
-    x86_avx512_mask_sqrt_ps_512,               // llvm.x86.avx512.mask.sqrt.ps.512
-    x86_avx512_mask_sqrt_sd,                   // llvm.x86.avx512.mask.sqrt.sd
-    x86_avx512_mask_sqrt_ss,                   // llvm.x86.avx512.mask.sqrt.ss
-    x86_avx512_mask_store_ss,                  // llvm.x86.avx512.mask.store.ss
-    x86_avx512_mask_sub_pd_512,                // llvm.x86.avx512.mask.sub.pd.512
-    x86_avx512_mask_sub_ps_512,                // llvm.x86.avx512.mask.sub.ps.512
-    x86_avx512_mask_sub_sd_round,              // llvm.x86.avx512.mask.sub.sd.round
-    x86_avx512_mask_sub_ss_round,              // llvm.x86.avx512.mask.sub.ss.round
-    x86_avx512_mask_vcvtph2ps_128,             // llvm.x86.avx512.mask.vcvtph2ps.128
-    x86_avx512_mask_vcvtph2ps_256,             // llvm.x86.avx512.mask.vcvtph2ps.256
-    x86_avx512_mask_vcvtph2ps_512,             // llvm.x86.avx512.mask.vcvtph2ps.512
-    x86_avx512_mask_vcvtps2ph_128,             // llvm.x86.avx512.mask.vcvtps2ph.128
-    x86_avx512_mask_vcvtps2ph_256,             // llvm.x86.avx512.mask.vcvtps2ph.256
-    x86_avx512_mask_vcvtps2ph_512,             // llvm.x86.avx512.mask.vcvtps2ph.512
-    x86_avx512_mask_vfmadd_pd_128,             // llvm.x86.avx512.mask.vfmadd.pd.128
-    x86_avx512_mask_vfmadd_pd_256,             // llvm.x86.avx512.mask.vfmadd.pd.256
-    x86_avx512_mask_vfmadd_pd_512,             // llvm.x86.avx512.mask.vfmadd.pd.512
-    x86_avx512_mask_vfmadd_ps_128,             // llvm.x86.avx512.mask.vfmadd.ps.128
-    x86_avx512_mask_vfmadd_ps_256,             // llvm.x86.avx512.mask.vfmadd.ps.256
-    x86_avx512_mask_vfmadd_ps_512,             // llvm.x86.avx512.mask.vfmadd.ps.512
-    x86_avx512_mask_vfmadd_sd,                 // llvm.x86.avx512.mask.vfmadd.sd
-    x86_avx512_mask_vfmadd_ss,                 // llvm.x86.avx512.mask.vfmadd.ss
-    x86_avx512_mask_vfmaddsub_pd_128,          // llvm.x86.avx512.mask.vfmaddsub.pd.128
-    x86_avx512_mask_vfmaddsub_pd_256,          // llvm.x86.avx512.mask.vfmaddsub.pd.256
-    x86_avx512_mask_vfmaddsub_pd_512,          // llvm.x86.avx512.mask.vfmaddsub.pd.512
-    x86_avx512_mask_vfmaddsub_ps_128,          // llvm.x86.avx512.mask.vfmaddsub.ps.128
-    x86_avx512_mask_vfmaddsub_ps_256,          // llvm.x86.avx512.mask.vfmaddsub.ps.256
-    x86_avx512_mask_vfmaddsub_ps_512,          // llvm.x86.avx512.mask.vfmaddsub.ps.512
-    x86_avx512_mask_vfnmadd_pd_128,            // llvm.x86.avx512.mask.vfnmadd.pd.128
-    x86_avx512_mask_vfnmadd_pd_256,            // llvm.x86.avx512.mask.vfnmadd.pd.256
-    x86_avx512_mask_vfnmadd_pd_512,            // llvm.x86.avx512.mask.vfnmadd.pd.512
-    x86_avx512_mask_vfnmadd_ps_128,            // llvm.x86.avx512.mask.vfnmadd.ps.128
-    x86_avx512_mask_vfnmadd_ps_256,            // llvm.x86.avx512.mask.vfnmadd.ps.256
-    x86_avx512_mask_vfnmadd_ps_512,            // llvm.x86.avx512.mask.vfnmadd.ps.512
-    x86_avx512_mask_vfnmsub_pd_128,            // llvm.x86.avx512.mask.vfnmsub.pd.128
-    x86_avx512_mask_vfnmsub_pd_256,            // llvm.x86.avx512.mask.vfnmsub.pd.256
-    x86_avx512_mask_vfnmsub_pd_512,            // llvm.x86.avx512.mask.vfnmsub.pd.512
-    x86_avx512_mask_vfnmsub_ps_128,            // llvm.x86.avx512.mask.vfnmsub.ps.128
-    x86_avx512_mask_vfnmsub_ps_256,            // llvm.x86.avx512.mask.vfnmsub.ps.256
-    x86_avx512_mask_vfnmsub_ps_512,            // llvm.x86.avx512.mask.vfnmsub.ps.512
-    x86_avx512_mask_vpdpbusd_128,              // llvm.x86.avx512.mask.vpdpbusd.128
-    x86_avx512_mask_vpdpbusd_256,              // llvm.x86.avx512.mask.vpdpbusd.256
-    x86_avx512_mask_vpdpbusd_512,              // llvm.x86.avx512.mask.vpdpbusd.512
-    x86_avx512_mask_vpdpbusds_128,             // llvm.x86.avx512.mask.vpdpbusds.128
-    x86_avx512_mask_vpdpbusds_256,             // llvm.x86.avx512.mask.vpdpbusds.256
-    x86_avx512_mask_vpdpbusds_512,             // llvm.x86.avx512.mask.vpdpbusds.512
-    x86_avx512_mask_vpdpwssd_128,              // llvm.x86.avx512.mask.vpdpwssd.128
-    x86_avx512_mask_vpdpwssd_256,              // llvm.x86.avx512.mask.vpdpwssd.256
-    x86_avx512_mask_vpdpwssd_512,              // llvm.x86.avx512.mask.vpdpwssd.512
-    x86_avx512_mask_vpdpwssds_128,             // llvm.x86.avx512.mask.vpdpwssds.128
-    x86_avx512_mask_vpdpwssds_256,             // llvm.x86.avx512.mask.vpdpwssds.256
-    x86_avx512_mask_vpdpwssds_512,             // llvm.x86.avx512.mask.vpdpwssds.512
-    x86_avx512_mask_vpermi2var_d_128,          // llvm.x86.avx512.mask.vpermi2var.d.128
-    x86_avx512_mask_vpermi2var_d_256,          // llvm.x86.avx512.mask.vpermi2var.d.256
-    x86_avx512_mask_vpermi2var_d_512,          // llvm.x86.avx512.mask.vpermi2var.d.512
-    x86_avx512_mask_vpermi2var_hi_128,         // llvm.x86.avx512.mask.vpermi2var.hi.128
-    x86_avx512_mask_vpermi2var_hi_256,         // llvm.x86.avx512.mask.vpermi2var.hi.256
-    x86_avx512_mask_vpermi2var_hi_512,         // llvm.x86.avx512.mask.vpermi2var.hi.512
-    x86_avx512_mask_vpermi2var_pd_128,         // llvm.x86.avx512.mask.vpermi2var.pd.128
-    x86_avx512_mask_vpermi2var_pd_256,         // llvm.x86.avx512.mask.vpermi2var.pd.256
-    x86_avx512_mask_vpermi2var_pd_512,         // llvm.x86.avx512.mask.vpermi2var.pd.512
-    x86_avx512_mask_vpermi2var_ps_128,         // llvm.x86.avx512.mask.vpermi2var.ps.128
-    x86_avx512_mask_vpermi2var_ps_256,         // llvm.x86.avx512.mask.vpermi2var.ps.256
-    x86_avx512_mask_vpermi2var_ps_512,         // llvm.x86.avx512.mask.vpermi2var.ps.512
-    x86_avx512_mask_vpermi2var_q_128,          // llvm.x86.avx512.mask.vpermi2var.q.128
-    x86_avx512_mask_vpermi2var_q_256,          // llvm.x86.avx512.mask.vpermi2var.q.256
-    x86_avx512_mask_vpermi2var_q_512,          // llvm.x86.avx512.mask.vpermi2var.q.512
-    x86_avx512_mask_vpermi2var_qi_128,         // llvm.x86.avx512.mask.vpermi2var.qi.128
-    x86_avx512_mask_vpermi2var_qi_256,         // llvm.x86.avx512.mask.vpermi2var.qi.256
-    x86_avx512_mask_vpermi2var_qi_512,         // llvm.x86.avx512.mask.vpermi2var.qi.512
-    x86_avx512_mask_vpermt2var_d_128,          // llvm.x86.avx512.mask.vpermt2var.d.128
-    x86_avx512_mask_vpermt2var_d_256,          // llvm.x86.avx512.mask.vpermt2var.d.256
-    x86_avx512_mask_vpermt2var_d_512,          // llvm.x86.avx512.mask.vpermt2var.d.512
-    x86_avx512_mask_vpermt2var_hi_128,         // llvm.x86.avx512.mask.vpermt2var.hi.128
-    x86_avx512_mask_vpermt2var_hi_256,         // llvm.x86.avx512.mask.vpermt2var.hi.256
-    x86_avx512_mask_vpermt2var_hi_512,         // llvm.x86.avx512.mask.vpermt2var.hi.512
-    x86_avx512_mask_vpermt2var_pd_128,         // llvm.x86.avx512.mask.vpermt2var.pd.128
-    x86_avx512_mask_vpermt2var_pd_256,         // llvm.x86.avx512.mask.vpermt2var.pd.256
-    x86_avx512_mask_vpermt2var_pd_512,         // llvm.x86.avx512.mask.vpermt2var.pd.512
-    x86_avx512_mask_vpermt2var_ps_128,         // llvm.x86.avx512.mask.vpermt2var.ps.128
-    x86_avx512_mask_vpermt2var_ps_256,         // llvm.x86.avx512.mask.vpermt2var.ps.256
-    x86_avx512_mask_vpermt2var_ps_512,         // llvm.x86.avx512.mask.vpermt2var.ps.512
-    x86_avx512_mask_vpermt2var_q_128,          // llvm.x86.avx512.mask.vpermt2var.q.128
-    x86_avx512_mask_vpermt2var_q_256,          // llvm.x86.avx512.mask.vpermt2var.q.256
-    x86_avx512_mask_vpermt2var_q_512,          // llvm.x86.avx512.mask.vpermt2var.q.512
-    x86_avx512_mask_vpermt2var_qi_128,         // llvm.x86.avx512.mask.vpermt2var.qi.128
-    x86_avx512_mask_vpermt2var_qi_256,         // llvm.x86.avx512.mask.vpermt2var.qi.256
-    x86_avx512_mask_vpermt2var_qi_512,         // llvm.x86.avx512.mask.vpermt2var.qi.512
-    x86_avx512_mask_vpmadd52h_uq_128,          // llvm.x86.avx512.mask.vpmadd52h.uq.128
-    x86_avx512_mask_vpmadd52h_uq_256,          // llvm.x86.avx512.mask.vpmadd52h.uq.256
-    x86_avx512_mask_vpmadd52h_uq_512,          // llvm.x86.avx512.mask.vpmadd52h.uq.512
-    x86_avx512_mask_vpmadd52l_uq_128,          // llvm.x86.avx512.mask.vpmadd52l.uq.128
-    x86_avx512_mask_vpmadd52l_uq_256,          // llvm.x86.avx512.mask.vpmadd52l.uq.256
-    x86_avx512_mask_vpmadd52l_uq_512,          // llvm.x86.avx512.mask.vpmadd52l.uq.512
-    x86_avx512_mask_vpshld_d_128,              // llvm.x86.avx512.mask.vpshld.d.128
-    x86_avx512_mask_vpshld_d_256,              // llvm.x86.avx512.mask.vpshld.d.256
-    x86_avx512_mask_vpshld_d_512,              // llvm.x86.avx512.mask.vpshld.d.512
-    x86_avx512_mask_vpshld_q_128,              // llvm.x86.avx512.mask.vpshld.q.128
-    x86_avx512_mask_vpshld_q_256,              // llvm.x86.avx512.mask.vpshld.q.256
-    x86_avx512_mask_vpshld_q_512,              // llvm.x86.avx512.mask.vpshld.q.512
-    x86_avx512_mask_vpshld_w_128,              // llvm.x86.avx512.mask.vpshld.w.128
-    x86_avx512_mask_vpshld_w_256,              // llvm.x86.avx512.mask.vpshld.w.256
-    x86_avx512_mask_vpshld_w_512,              // llvm.x86.avx512.mask.vpshld.w.512
-    x86_avx512_mask_vpshldv_d_128,             // llvm.x86.avx512.mask.vpshldv.d.128
-    x86_avx512_mask_vpshldv_d_256,             // llvm.x86.avx512.mask.vpshldv.d.256
-    x86_avx512_mask_vpshldv_d_512,             // llvm.x86.avx512.mask.vpshldv.d.512
-    x86_avx512_mask_vpshldv_q_128,             // llvm.x86.avx512.mask.vpshldv.q.128
-    x86_avx512_mask_vpshldv_q_256,             // llvm.x86.avx512.mask.vpshldv.q.256
-    x86_avx512_mask_vpshldv_q_512,             // llvm.x86.avx512.mask.vpshldv.q.512
-    x86_avx512_mask_vpshldv_w_128,             // llvm.x86.avx512.mask.vpshldv.w.128
-    x86_avx512_mask_vpshldv_w_256,             // llvm.x86.avx512.mask.vpshldv.w.256
-    x86_avx512_mask_vpshldv_w_512,             // llvm.x86.avx512.mask.vpshldv.w.512
-    x86_avx512_mask_vpshrd_d_128,              // llvm.x86.avx512.mask.vpshrd.d.128
-    x86_avx512_mask_vpshrd_d_256,              // llvm.x86.avx512.mask.vpshrd.d.256
-    x86_avx512_mask_vpshrd_d_512,              // llvm.x86.avx512.mask.vpshrd.d.512
-    x86_avx512_mask_vpshrd_q_128,              // llvm.x86.avx512.mask.vpshrd.q.128
-    x86_avx512_mask_vpshrd_q_256,              // llvm.x86.avx512.mask.vpshrd.q.256
-    x86_avx512_mask_vpshrd_q_512,              // llvm.x86.avx512.mask.vpshrd.q.512
-    x86_avx512_mask_vpshrd_w_128,              // llvm.x86.avx512.mask.vpshrd.w.128
-    x86_avx512_mask_vpshrd_w_256,              // llvm.x86.avx512.mask.vpshrd.w.256
-    x86_avx512_mask_vpshrd_w_512,              // llvm.x86.avx512.mask.vpshrd.w.512
-    x86_avx512_mask_vpshrdv_d_128,             // llvm.x86.avx512.mask.vpshrdv.d.128
-    x86_avx512_mask_vpshrdv_d_256,             // llvm.x86.avx512.mask.vpshrdv.d.256
-    x86_avx512_mask_vpshrdv_d_512,             // llvm.x86.avx512.mask.vpshrdv.d.512
-    x86_avx512_mask_vpshrdv_q_128,             // llvm.x86.avx512.mask.vpshrdv.q.128
-    x86_avx512_mask_vpshrdv_q_256,             // llvm.x86.avx512.mask.vpshrdv.q.256
-    x86_avx512_mask_vpshrdv_q_512,             // llvm.x86.avx512.mask.vpshrdv.q.512
-    x86_avx512_mask_vpshrdv_w_128,             // llvm.x86.avx512.mask.vpshrdv.w.128
-    x86_avx512_mask_vpshrdv_w_256,             // llvm.x86.avx512.mask.vpshrdv.w.256
-    x86_avx512_mask_vpshrdv_w_512,             // llvm.x86.avx512.mask.vpshrdv.w.512
-    x86_avx512_mask_vpshufbitqmb_128,          // llvm.x86.avx512.mask.vpshufbitqmb.128
-    x86_avx512_mask_vpshufbitqmb_256,          // llvm.x86.avx512.mask.vpshufbitqmb.256
-    x86_avx512_mask_vpshufbitqmb_512,          // llvm.x86.avx512.mask.vpshufbitqmb.512
-    x86_avx512_mask3_vfmadd_pd_128,            // llvm.x86.avx512.mask3.vfmadd.pd.128
-    x86_avx512_mask3_vfmadd_pd_256,            // llvm.x86.avx512.mask3.vfmadd.pd.256
-    x86_avx512_mask3_vfmadd_pd_512,            // llvm.x86.avx512.mask3.vfmadd.pd.512
-    x86_avx512_mask3_vfmadd_ps_128,            // llvm.x86.avx512.mask3.vfmadd.ps.128
-    x86_avx512_mask3_vfmadd_ps_256,            // llvm.x86.avx512.mask3.vfmadd.ps.256
-    x86_avx512_mask3_vfmadd_ps_512,            // llvm.x86.avx512.mask3.vfmadd.ps.512
-    x86_avx512_mask3_vfmadd_sd,                // llvm.x86.avx512.mask3.vfmadd.sd
-    x86_avx512_mask3_vfmadd_ss,                // llvm.x86.avx512.mask3.vfmadd.ss
-    x86_avx512_mask3_vfmaddsub_pd_128,         // llvm.x86.avx512.mask3.vfmaddsub.pd.128
-    x86_avx512_mask3_vfmaddsub_pd_256,         // llvm.x86.avx512.mask3.vfmaddsub.pd.256
-    x86_avx512_mask3_vfmaddsub_pd_512,         // llvm.x86.avx512.mask3.vfmaddsub.pd.512
-    x86_avx512_mask3_vfmaddsub_ps_128,         // llvm.x86.avx512.mask3.vfmaddsub.ps.128
-    x86_avx512_mask3_vfmaddsub_ps_256,         // llvm.x86.avx512.mask3.vfmaddsub.ps.256
-    x86_avx512_mask3_vfmaddsub_ps_512,         // llvm.x86.avx512.mask3.vfmaddsub.ps.512
-    x86_avx512_mask3_vfmsub_pd_128,            // llvm.x86.avx512.mask3.vfmsub.pd.128
-    x86_avx512_mask3_vfmsub_pd_256,            // llvm.x86.avx512.mask3.vfmsub.pd.256
-    x86_avx512_mask3_vfmsub_pd_512,            // llvm.x86.avx512.mask3.vfmsub.pd.512
-    x86_avx512_mask3_vfmsub_ps_128,            // llvm.x86.avx512.mask3.vfmsub.ps.128
-    x86_avx512_mask3_vfmsub_ps_256,            // llvm.x86.avx512.mask3.vfmsub.ps.256
-    x86_avx512_mask3_vfmsub_ps_512,            // llvm.x86.avx512.mask3.vfmsub.ps.512
-    x86_avx512_mask3_vfmsub_sd,                // llvm.x86.avx512.mask3.vfmsub.sd
-    x86_avx512_mask3_vfmsub_ss,                // llvm.x86.avx512.mask3.vfmsub.ss
-    x86_avx512_mask3_vfmsubadd_pd_128,         // llvm.x86.avx512.mask3.vfmsubadd.pd.128
-    x86_avx512_mask3_vfmsubadd_pd_256,         // llvm.x86.avx512.mask3.vfmsubadd.pd.256
-    x86_avx512_mask3_vfmsubadd_pd_512,         // llvm.x86.avx512.mask3.vfmsubadd.pd.512
-    x86_avx512_mask3_vfmsubadd_ps_128,         // llvm.x86.avx512.mask3.vfmsubadd.ps.128
-    x86_avx512_mask3_vfmsubadd_ps_256,         // llvm.x86.avx512.mask3.vfmsubadd.ps.256
-    x86_avx512_mask3_vfmsubadd_ps_512,         // llvm.x86.avx512.mask3.vfmsubadd.ps.512
-    x86_avx512_mask3_vfnmsub_pd_128,           // llvm.x86.avx512.mask3.vfnmsub.pd.128
-    x86_avx512_mask3_vfnmsub_pd_256,           // llvm.x86.avx512.mask3.vfnmsub.pd.256
-    x86_avx512_mask3_vfnmsub_pd_512,           // llvm.x86.avx512.mask3.vfnmsub.pd.512
-    x86_avx512_mask3_vfnmsub_ps_128,           // llvm.x86.avx512.mask3.vfnmsub.ps.128
-    x86_avx512_mask3_vfnmsub_ps_256,           // llvm.x86.avx512.mask3.vfnmsub.ps.256
-    x86_avx512_mask3_vfnmsub_ps_512,           // llvm.x86.avx512.mask3.vfnmsub.ps.512
-    x86_avx512_mask3_vfnmsub_sd,               // llvm.x86.avx512.mask3.vfnmsub.sd
-    x86_avx512_mask3_vfnmsub_ss,               // llvm.x86.avx512.mask3.vfnmsub.ss
-    x86_avx512_maskz_fixupimm_pd_128,          // llvm.x86.avx512.maskz.fixupimm.pd.128
-    x86_avx512_maskz_fixupimm_pd_256,          // llvm.x86.avx512.maskz.fixupimm.pd.256
-    x86_avx512_maskz_fixupimm_pd_512,          // llvm.x86.avx512.maskz.fixupimm.pd.512
-    x86_avx512_maskz_fixupimm_ps_128,          // llvm.x86.avx512.maskz.fixupimm.ps.128
-    x86_avx512_maskz_fixupimm_ps_256,          // llvm.x86.avx512.maskz.fixupimm.ps.256
-    x86_avx512_maskz_fixupimm_ps_512,          // llvm.x86.avx512.maskz.fixupimm.ps.512
-    x86_avx512_maskz_fixupimm_sd,              // llvm.x86.avx512.maskz.fixupimm.sd
-    x86_avx512_maskz_fixupimm_ss,              // llvm.x86.avx512.maskz.fixupimm.ss
-    x86_avx512_maskz_pternlog_d_128,           // llvm.x86.avx512.maskz.pternlog.d.128
-    x86_avx512_maskz_pternlog_d_256,           // llvm.x86.avx512.maskz.pternlog.d.256
-    x86_avx512_maskz_pternlog_d_512,           // llvm.x86.avx512.maskz.pternlog.d.512
-    x86_avx512_maskz_pternlog_q_128,           // llvm.x86.avx512.maskz.pternlog.q.128
-    x86_avx512_maskz_pternlog_q_256,           // llvm.x86.avx512.maskz.pternlog.q.256
-    x86_avx512_maskz_pternlog_q_512,           // llvm.x86.avx512.maskz.pternlog.q.512
-    x86_avx512_maskz_vfmadd_pd_128,            // llvm.x86.avx512.maskz.vfmadd.pd.128
-    x86_avx512_maskz_vfmadd_pd_256,            // llvm.x86.avx512.maskz.vfmadd.pd.256
-    x86_avx512_maskz_vfmadd_pd_512,            // llvm.x86.avx512.maskz.vfmadd.pd.512
-    x86_avx512_maskz_vfmadd_ps_128,            // llvm.x86.avx512.maskz.vfmadd.ps.128
-    x86_avx512_maskz_vfmadd_ps_256,            // llvm.x86.avx512.maskz.vfmadd.ps.256
-    x86_avx512_maskz_vfmadd_ps_512,            // llvm.x86.avx512.maskz.vfmadd.ps.512
-    x86_avx512_maskz_vfmadd_sd,                // llvm.x86.avx512.maskz.vfmadd.sd
-    x86_avx512_maskz_vfmadd_ss,                // llvm.x86.avx512.maskz.vfmadd.ss
-    x86_avx512_maskz_vfmaddsub_pd_128,         // llvm.x86.avx512.maskz.vfmaddsub.pd.128
-    x86_avx512_maskz_vfmaddsub_pd_256,         // llvm.x86.avx512.maskz.vfmaddsub.pd.256
-    x86_avx512_maskz_vfmaddsub_pd_512,         // llvm.x86.avx512.maskz.vfmaddsub.pd.512
-    x86_avx512_maskz_vfmaddsub_ps_128,         // llvm.x86.avx512.maskz.vfmaddsub.ps.128
-    x86_avx512_maskz_vfmaddsub_ps_256,         // llvm.x86.avx512.maskz.vfmaddsub.ps.256
-    x86_avx512_maskz_vfmaddsub_ps_512,         // llvm.x86.avx512.maskz.vfmaddsub.ps.512
-    x86_avx512_maskz_vpdpbusd_128,             // llvm.x86.avx512.maskz.vpdpbusd.128
-    x86_avx512_maskz_vpdpbusd_256,             // llvm.x86.avx512.maskz.vpdpbusd.256
-    x86_avx512_maskz_vpdpbusd_512,             // llvm.x86.avx512.maskz.vpdpbusd.512
-    x86_avx512_maskz_vpdpbusds_128,            // llvm.x86.avx512.maskz.vpdpbusds.128
-    x86_avx512_maskz_vpdpbusds_256,            // llvm.x86.avx512.maskz.vpdpbusds.256
-    x86_avx512_maskz_vpdpbusds_512,            // llvm.x86.avx512.maskz.vpdpbusds.512
-    x86_avx512_maskz_vpdpwssd_128,             // llvm.x86.avx512.maskz.vpdpwssd.128
-    x86_avx512_maskz_vpdpwssd_256,             // llvm.x86.avx512.maskz.vpdpwssd.256
-    x86_avx512_maskz_vpdpwssd_512,             // llvm.x86.avx512.maskz.vpdpwssd.512
-    x86_avx512_maskz_vpdpwssds_128,            // llvm.x86.avx512.maskz.vpdpwssds.128
-    x86_avx512_maskz_vpdpwssds_256,            // llvm.x86.avx512.maskz.vpdpwssds.256
-    x86_avx512_maskz_vpdpwssds_512,            // llvm.x86.avx512.maskz.vpdpwssds.512
-    x86_avx512_maskz_vpermt2var_d_128,         // llvm.x86.avx512.maskz.vpermt2var.d.128
-    x86_avx512_maskz_vpermt2var_d_256,         // llvm.x86.avx512.maskz.vpermt2var.d.256
-    x86_avx512_maskz_vpermt2var_d_512,         // llvm.x86.avx512.maskz.vpermt2var.d.512
-    x86_avx512_maskz_vpermt2var_hi_128,        // llvm.x86.avx512.maskz.vpermt2var.hi.128
-    x86_avx512_maskz_vpermt2var_hi_256,        // llvm.x86.avx512.maskz.vpermt2var.hi.256
-    x86_avx512_maskz_vpermt2var_hi_512,        // llvm.x86.avx512.maskz.vpermt2var.hi.512
-    x86_avx512_maskz_vpermt2var_pd_128,        // llvm.x86.avx512.maskz.vpermt2var.pd.128
-    x86_avx512_maskz_vpermt2var_pd_256,        // llvm.x86.avx512.maskz.vpermt2var.pd.256
-    x86_avx512_maskz_vpermt2var_pd_512,        // llvm.x86.avx512.maskz.vpermt2var.pd.512
-    x86_avx512_maskz_vpermt2var_ps_128,        // llvm.x86.avx512.maskz.vpermt2var.ps.128
-    x86_avx512_maskz_vpermt2var_ps_256,        // llvm.x86.avx512.maskz.vpermt2var.ps.256
-    x86_avx512_maskz_vpermt2var_ps_512,        // llvm.x86.avx512.maskz.vpermt2var.ps.512
-    x86_avx512_maskz_vpermt2var_q_128,         // llvm.x86.avx512.maskz.vpermt2var.q.128
-    x86_avx512_maskz_vpermt2var_q_256,         // llvm.x86.avx512.maskz.vpermt2var.q.256
-    x86_avx512_maskz_vpermt2var_q_512,         // llvm.x86.avx512.maskz.vpermt2var.q.512
-    x86_avx512_maskz_vpermt2var_qi_128,        // llvm.x86.avx512.maskz.vpermt2var.qi.128
-    x86_avx512_maskz_vpermt2var_qi_256,        // llvm.x86.avx512.maskz.vpermt2var.qi.256
-    x86_avx512_maskz_vpermt2var_qi_512,        // llvm.x86.avx512.maskz.vpermt2var.qi.512
-    x86_avx512_maskz_vpmadd52h_uq_128,         // llvm.x86.avx512.maskz.vpmadd52h.uq.128
-    x86_avx512_maskz_vpmadd52h_uq_256,         // llvm.x86.avx512.maskz.vpmadd52h.uq.256
-    x86_avx512_maskz_vpmadd52h_uq_512,         // llvm.x86.avx512.maskz.vpmadd52h.uq.512
-    x86_avx512_maskz_vpmadd52l_uq_128,         // llvm.x86.avx512.maskz.vpmadd52l.uq.128
-    x86_avx512_maskz_vpmadd52l_uq_256,         // llvm.x86.avx512.maskz.vpmadd52l.uq.256
-    x86_avx512_maskz_vpmadd52l_uq_512,         // llvm.x86.avx512.maskz.vpmadd52l.uq.512
-    x86_avx512_maskz_vpshldv_d_128,            // llvm.x86.avx512.maskz.vpshldv.d.128
-    x86_avx512_maskz_vpshldv_d_256,            // llvm.x86.avx512.maskz.vpshldv.d.256
-    x86_avx512_maskz_vpshldv_d_512,            // llvm.x86.avx512.maskz.vpshldv.d.512
-    x86_avx512_maskz_vpshldv_q_128,            // llvm.x86.avx512.maskz.vpshldv.q.128
-    x86_avx512_maskz_vpshldv_q_256,            // llvm.x86.avx512.maskz.vpshldv.q.256
-    x86_avx512_maskz_vpshldv_q_512,            // llvm.x86.avx512.maskz.vpshldv.q.512
-    x86_avx512_maskz_vpshldv_w_128,            // llvm.x86.avx512.maskz.vpshldv.w.128
-    x86_avx512_maskz_vpshldv_w_256,            // llvm.x86.avx512.maskz.vpshldv.w.256
-    x86_avx512_maskz_vpshldv_w_512,            // llvm.x86.avx512.maskz.vpshldv.w.512
-    x86_avx512_maskz_vpshrdv_d_128,            // llvm.x86.avx512.maskz.vpshrdv.d.128
-    x86_avx512_maskz_vpshrdv_d_256,            // llvm.x86.avx512.maskz.vpshrdv.d.256
-    x86_avx512_maskz_vpshrdv_d_512,            // llvm.x86.avx512.maskz.vpshrdv.d.512
-    x86_avx512_maskz_vpshrdv_q_128,            // llvm.x86.avx512.maskz.vpshrdv.q.128
-    x86_avx512_maskz_vpshrdv_q_256,            // llvm.x86.avx512.maskz.vpshrdv.q.256
-    x86_avx512_maskz_vpshrdv_q_512,            // llvm.x86.avx512.maskz.vpshrdv.q.512
-    x86_avx512_maskz_vpshrdv_w_128,            // llvm.x86.avx512.maskz.vpshrdv.w.128
-    x86_avx512_maskz_vpshrdv_w_256,            // llvm.x86.avx512.maskz.vpshrdv.w.256
-    x86_avx512_maskz_vpshrdv_w_512,            // llvm.x86.avx512.maskz.vpshrdv.w.512
-    x86_avx512_packssdw_512,                   // llvm.x86.avx512.packssdw.512
-    x86_avx512_packsswb_512,                   // llvm.x86.avx512.packsswb.512
-    x86_avx512_packusdw_512,                   // llvm.x86.avx512.packusdw.512
-    x86_avx512_packuswb_512,                   // llvm.x86.avx512.packuswb.512
-    x86_avx512_pmul_dq_512,                    // llvm.x86.avx512.pmul.dq.512
-    x86_avx512_pmul_hr_sw_512,                 // llvm.x86.avx512.pmul.hr.sw.512
-    x86_avx512_pmulh_w_512,                    // llvm.x86.avx512.pmulh.w.512
-    x86_avx512_pmulhu_w_512,                   // llvm.x86.avx512.pmulhu.w.512
-    x86_avx512_pmulu_dq_512,                   // llvm.x86.avx512.pmulu.dq.512
-    x86_avx512_psad_bw_512,                    // llvm.x86.avx512.psad.bw.512
-    x86_avx512_pshuf_b_512,                    // llvm.x86.avx512.pshuf.b.512
-    x86_avx512_psll_d_512,                     // llvm.x86.avx512.psll.d.512
-    x86_avx512_psll_q_512,                     // llvm.x86.avx512.psll.q.512
-    x86_avx512_psll_w_512,                     // llvm.x86.avx512.psll.w.512
-    x86_avx512_pslli_d_512,                    // llvm.x86.avx512.pslli.d.512
-    x86_avx512_pslli_q_512,                    // llvm.x86.avx512.pslli.q.512
-    x86_avx512_pslli_w_512,                    // llvm.x86.avx512.pslli.w.512
-    x86_avx512_psllv_d_512,                    // llvm.x86.avx512.psllv.d.512
-    x86_avx512_psllv_q_512,                    // llvm.x86.avx512.psllv.q.512
-    x86_avx512_psllv_w_128,                    // llvm.x86.avx512.psllv.w.128
-    x86_avx512_psllv_w_256,                    // llvm.x86.avx512.psllv.w.256
-    x86_avx512_psllv_w_512,                    // llvm.x86.avx512.psllv.w.512
-    x86_avx512_psra_d_512,                     // llvm.x86.avx512.psra.d.512
-    x86_avx512_psra_q_128,                     // llvm.x86.avx512.psra.q.128
-    x86_avx512_psra_q_256,                     // llvm.x86.avx512.psra.q.256
-    x86_avx512_psra_q_512,                     // llvm.x86.avx512.psra.q.512
-    x86_avx512_psra_w_512,                     // llvm.x86.avx512.psra.w.512
-    x86_avx512_psrai_d_512,                    // llvm.x86.avx512.psrai.d.512
-    x86_avx512_psrai_q_128,                    // llvm.x86.avx512.psrai.q.128
-    x86_avx512_psrai_q_256,                    // llvm.x86.avx512.psrai.q.256
-    x86_avx512_psrai_q_512,                    // llvm.x86.avx512.psrai.q.512
-    x86_avx512_psrai_w_512,                    // llvm.x86.avx512.psrai.w.512
-    x86_avx512_psrav_d_512,                    // llvm.x86.avx512.psrav.d.512
-    x86_avx512_psrav_q_128,                    // llvm.x86.avx512.psrav.q.128
-    x86_avx512_psrav_q_256,                    // llvm.x86.avx512.psrav.q.256
-    x86_avx512_psrav_q_512,                    // llvm.x86.avx512.psrav.q.512
-    x86_avx512_psrav_w_128,                    // llvm.x86.avx512.psrav.w.128
-    x86_avx512_psrav_w_256,                    // llvm.x86.avx512.psrav.w.256
-    x86_avx512_psrav_w_512,                    // llvm.x86.avx512.psrav.w.512
-    x86_avx512_psrl_d_512,                     // llvm.x86.avx512.psrl.d.512
-    x86_avx512_psrl_q_512,                     // llvm.x86.avx512.psrl.q.512
-    x86_avx512_psrl_w_512,                     // llvm.x86.avx512.psrl.w.512
-    x86_avx512_psrli_d_512,                    // llvm.x86.avx512.psrli.d.512
-    x86_avx512_psrli_q_512,                    // llvm.x86.avx512.psrli.q.512
-    x86_avx512_psrli_w_512,                    // llvm.x86.avx512.psrli.w.512
-    x86_avx512_psrlv_d_512,                    // llvm.x86.avx512.psrlv.d.512
-    x86_avx512_psrlv_q_512,                    // llvm.x86.avx512.psrlv.q.512
-    x86_avx512_psrlv_w_128,                    // llvm.x86.avx512.psrlv.w.128
-    x86_avx512_psrlv_w_256,                    // llvm.x86.avx512.psrlv.w.256
-    x86_avx512_psrlv_w_512,                    // llvm.x86.avx512.psrlv.w.512
-    x86_avx512_rcp14_pd_128,                   // llvm.x86.avx512.rcp14.pd.128
-    x86_avx512_rcp14_pd_256,                   // llvm.x86.avx512.rcp14.pd.256
-    x86_avx512_rcp14_pd_512,                   // llvm.x86.avx512.rcp14.pd.512
-    x86_avx512_rcp14_ps_128,                   // llvm.x86.avx512.rcp14.ps.128
-    x86_avx512_rcp14_ps_256,                   // llvm.x86.avx512.rcp14.ps.256
-    x86_avx512_rcp14_ps_512,                   // llvm.x86.avx512.rcp14.ps.512
-    x86_avx512_rcp14_sd,                       // llvm.x86.avx512.rcp14.sd
-    x86_avx512_rcp14_ss,                       // llvm.x86.avx512.rcp14.ss
-    x86_avx512_rcp28_pd,                       // llvm.x86.avx512.rcp28.pd
-    x86_avx512_rcp28_ps,                       // llvm.x86.avx512.rcp28.ps
-    x86_avx512_rcp28_sd,                       // llvm.x86.avx512.rcp28.sd
-    x86_avx512_rcp28_ss,                       // llvm.x86.avx512.rcp28.ss
-    x86_avx512_rsqrt14_pd_128,                 // llvm.x86.avx512.rsqrt14.pd.128
-    x86_avx512_rsqrt14_pd_256,                 // llvm.x86.avx512.rsqrt14.pd.256
-    x86_avx512_rsqrt14_pd_512,                 // llvm.x86.avx512.rsqrt14.pd.512
-    x86_avx512_rsqrt14_ps_128,                 // llvm.x86.avx512.rsqrt14.ps.128
-    x86_avx512_rsqrt14_ps_256,                 // llvm.x86.avx512.rsqrt14.ps.256
-    x86_avx512_rsqrt14_ps_512,                 // llvm.x86.avx512.rsqrt14.ps.512
-    x86_avx512_rsqrt14_sd,                     // llvm.x86.avx512.rsqrt14.sd
-    x86_avx512_rsqrt14_ss,                     // llvm.x86.avx512.rsqrt14.ss
-    x86_avx512_rsqrt28_pd,                     // llvm.x86.avx512.rsqrt28.pd
-    x86_avx512_rsqrt28_ps,                     // llvm.x86.avx512.rsqrt28.ps
-    x86_avx512_rsqrt28_sd,                     // llvm.x86.avx512.rsqrt28.sd
-    x86_avx512_rsqrt28_ss,                     // llvm.x86.avx512.rsqrt28.ss
-    x86_avx512_scatter_dpd_512,                // llvm.x86.avx512.scatter.dpd.512
-    x86_avx512_scatter_dpi_512,                // llvm.x86.avx512.scatter.dpi.512
-    x86_avx512_scatter_dpq_512,                // llvm.x86.avx512.scatter.dpq.512
-    x86_avx512_scatter_dps_512,                // llvm.x86.avx512.scatter.dps.512
-    x86_avx512_scatter_qpd_512,                // llvm.x86.avx512.scatter.qpd.512
-    x86_avx512_scatter_qpi_512,                // llvm.x86.avx512.scatter.qpi.512
-    x86_avx512_scatter_qpq_512,                // llvm.x86.avx512.scatter.qpq.512
-    x86_avx512_scatter_qps_512,                // llvm.x86.avx512.scatter.qps.512
-    x86_avx512_scatterdiv2_df,                 // llvm.x86.avx512.scatterdiv2.df
-    x86_avx512_scatterdiv2_di,                 // llvm.x86.avx512.scatterdiv2.di
-    x86_avx512_scatterdiv4_df,                 // llvm.x86.avx512.scatterdiv4.df
-    x86_avx512_scatterdiv4_di,                 // llvm.x86.avx512.scatterdiv4.di
-    x86_avx512_scatterdiv4_sf,                 // llvm.x86.avx512.scatterdiv4.sf
-    x86_avx512_scatterdiv4_si,                 // llvm.x86.avx512.scatterdiv4.si
-    x86_avx512_scatterdiv8_sf,                 // llvm.x86.avx512.scatterdiv8.sf
-    x86_avx512_scatterdiv8_si,                 // llvm.x86.avx512.scatterdiv8.si
-    x86_avx512_scatterpf_dpd_512,              // llvm.x86.avx512.scatterpf.dpd.512
-    x86_avx512_scatterpf_dps_512,              // llvm.x86.avx512.scatterpf.dps.512
-    x86_avx512_scatterpf_qpd_512,              // llvm.x86.avx512.scatterpf.qpd.512
-    x86_avx512_scatterpf_qps_512,              // llvm.x86.avx512.scatterpf.qps.512
-    x86_avx512_scattersiv2_df,                 // llvm.x86.avx512.scattersiv2.df
-    x86_avx512_scattersiv2_di,                 // llvm.x86.avx512.scattersiv2.di
-    x86_avx512_scattersiv4_df,                 // llvm.x86.avx512.scattersiv4.df
-    x86_avx512_scattersiv4_di,                 // llvm.x86.avx512.scattersiv4.di
-    x86_avx512_scattersiv4_sf,                 // llvm.x86.avx512.scattersiv4.sf
-    x86_avx512_scattersiv4_si,                 // llvm.x86.avx512.scattersiv4.si
-    x86_avx512_scattersiv8_sf,                 // llvm.x86.avx512.scattersiv8.sf
-    x86_avx512_scattersiv8_si,                 // llvm.x86.avx512.scattersiv8.si
-    x86_avx512_vbroadcast_sd_512,              // llvm.x86.avx512.vbroadcast.sd.512
-    x86_avx512_vbroadcast_ss_512,              // llvm.x86.avx512.vbroadcast.ss.512
-    x86_avx512_vcomi_sd,                       // llvm.x86.avx512.vcomi.sd
-    x86_avx512_vcomi_ss,                       // llvm.x86.avx512.vcomi.ss
-    x86_avx512_vcvtsd2si32,                    // llvm.x86.avx512.vcvtsd2si32
-    x86_avx512_vcvtsd2si64,                    // llvm.x86.avx512.vcvtsd2si64
-    x86_avx512_vcvtsd2usi32,                   // llvm.x86.avx512.vcvtsd2usi32
-    x86_avx512_vcvtsd2usi64,                   // llvm.x86.avx512.vcvtsd2usi64
-    x86_avx512_vcvtss2si32,                    // llvm.x86.avx512.vcvtss2si32
-    x86_avx512_vcvtss2si64,                    // llvm.x86.avx512.vcvtss2si64
-    x86_avx512_vcvtss2usi32,                   // llvm.x86.avx512.vcvtss2usi32
-    x86_avx512_vcvtss2usi64,                   // llvm.x86.avx512.vcvtss2usi64
-    x86_avx512_vpermilvar_pd_512,              // llvm.x86.avx512.vpermilvar.pd.512
-    x86_avx512_vpermilvar_ps_512,              // llvm.x86.avx512.vpermilvar.ps.512
-    x86_bmi_bextr_32,                          // llvm.x86.bmi.bextr.32
-    x86_bmi_bextr_64,                          // llvm.x86.bmi.bextr.64
-    x86_bmi_bzhi_32,                           // llvm.x86.bmi.bzhi.32
-    x86_bmi_bzhi_64,                           // llvm.x86.bmi.bzhi.64
-    x86_bmi_pdep_32,                           // llvm.x86.bmi.pdep.32
-    x86_bmi_pdep_64,                           // llvm.x86.bmi.pdep.64
-    x86_bmi_pext_32,                           // llvm.x86.bmi.pext.32
-    x86_bmi_pext_64,                           // llvm.x86.bmi.pext.64
-    x86_clflushopt,                            // llvm.x86.clflushopt
-    x86_clrssbsy,                              // llvm.x86.clrssbsy
-    x86_clwb,                                  // llvm.x86.clwb
-    x86_clzero,                                // llvm.x86.clzero
-    x86_flags_read_u32,                        // llvm.x86.flags.read.u32
-    x86_flags_read_u64,                        // llvm.x86.flags.read.u64
-    x86_flags_write_u32,                       // llvm.x86.flags.write.u32
-    x86_flags_write_u64,                       // llvm.x86.flags.write.u64
-    x86_fma_vfmadd_pd,                         // llvm.x86.fma.vfmadd.pd
-    x86_fma_vfmadd_pd_256,                     // llvm.x86.fma.vfmadd.pd.256
-    x86_fma_vfmadd_ps,                         // llvm.x86.fma.vfmadd.ps
-    x86_fma_vfmadd_ps_256,                     // llvm.x86.fma.vfmadd.ps.256
-    x86_fma_vfmadd_sd,                         // llvm.x86.fma.vfmadd.sd
-    x86_fma_vfmadd_ss,                         // llvm.x86.fma.vfmadd.ss
-    x86_fma_vfmaddsub_pd,                      // llvm.x86.fma.vfmaddsub.pd
-    x86_fma_vfmaddsub_pd_256,                  // llvm.x86.fma.vfmaddsub.pd.256
-    x86_fma_vfmaddsub_ps,                      // llvm.x86.fma.vfmaddsub.ps
-    x86_fma_vfmaddsub_ps_256,                  // llvm.x86.fma.vfmaddsub.ps.256
-    x86_fma_vfmsub_pd,                         // llvm.x86.fma.vfmsub.pd
-    x86_fma_vfmsub_pd_256,                     // llvm.x86.fma.vfmsub.pd.256
-    x86_fma_vfmsub_ps,                         // llvm.x86.fma.vfmsub.ps
-    x86_fma_vfmsub_ps_256,                     // llvm.x86.fma.vfmsub.ps.256
-    x86_fma_vfmsub_sd,                         // llvm.x86.fma.vfmsub.sd
-    x86_fma_vfmsub_ss,                         // llvm.x86.fma.vfmsub.ss
-    x86_fma_vfmsubadd_pd,                      // llvm.x86.fma.vfmsubadd.pd
-    x86_fma_vfmsubadd_pd_256,                  // llvm.x86.fma.vfmsubadd.pd.256
-    x86_fma_vfmsubadd_ps,                      // llvm.x86.fma.vfmsubadd.ps
-    x86_fma_vfmsubadd_ps_256,                  // llvm.x86.fma.vfmsubadd.ps.256
-    x86_fma_vfnmadd_pd,                        // llvm.x86.fma.vfnmadd.pd
-    x86_fma_vfnmadd_pd_256,                    // llvm.x86.fma.vfnmadd.pd.256
-    x86_fma_vfnmadd_ps,                        // llvm.x86.fma.vfnmadd.ps
-    x86_fma_vfnmadd_ps_256,                    // llvm.x86.fma.vfnmadd.ps.256
-    x86_fma_vfnmadd_sd,                        // llvm.x86.fma.vfnmadd.sd
-    x86_fma_vfnmadd_ss,                        // llvm.x86.fma.vfnmadd.ss
-    x86_fma_vfnmsub_pd,                        // llvm.x86.fma.vfnmsub.pd
-    x86_fma_vfnmsub_pd_256,                    // llvm.x86.fma.vfnmsub.pd.256
-    x86_fma_vfnmsub_ps,                        // llvm.x86.fma.vfnmsub.ps
-    x86_fma_vfnmsub_ps_256,                    // llvm.x86.fma.vfnmsub.ps.256
-    x86_fma_vfnmsub_sd,                        // llvm.x86.fma.vfnmsub.sd
-    x86_fma_vfnmsub_ss,                        // llvm.x86.fma.vfnmsub.ss
-    x86_fma4_vfmadd_sd,                        // llvm.x86.fma4.vfmadd.sd
-    x86_fma4_vfmadd_ss,                        // llvm.x86.fma4.vfmadd.ss
-    x86_fxrstor,                               // llvm.x86.fxrstor
-    x86_fxrstor64,                             // llvm.x86.fxrstor64
-    x86_fxsave,                                // llvm.x86.fxsave
-    x86_fxsave64,                              // llvm.x86.fxsave64
-    x86_incsspd,                               // llvm.x86.incsspd
-    x86_incsspq,                               // llvm.x86.incsspq
-    x86_int,                                   // llvm.x86.int
-    x86_llwpcb,                                // llvm.x86.llwpcb
-    x86_lwpins32,                              // llvm.x86.lwpins32
-    x86_lwpins64,                              // llvm.x86.lwpins64
-    x86_lwpval32,                              // llvm.x86.lwpval32
-    x86_lwpval64,                              // llvm.x86.lwpval64
-    x86_mmx_emms,                              // llvm.x86.mmx.emms
-    x86_mmx_femms,                             // llvm.x86.mmx.femms
-    x86_mmx_maskmovq,                          // llvm.x86.mmx.maskmovq
-    x86_mmx_movnt_dq,                          // llvm.x86.mmx.movnt.dq
-    x86_mmx_packssdw,                          // llvm.x86.mmx.packssdw
-    x86_mmx_packsswb,                          // llvm.x86.mmx.packsswb
-    x86_mmx_packuswb,                          // llvm.x86.mmx.packuswb
-    x86_mmx_padd_b,                            // llvm.x86.mmx.padd.b
-    x86_mmx_padd_d,                            // llvm.x86.mmx.padd.d
-    x86_mmx_padd_q,                            // llvm.x86.mmx.padd.q
-    x86_mmx_padd_w,                            // llvm.x86.mmx.padd.w
-    x86_mmx_padds_b,                           // llvm.x86.mmx.padds.b
-    x86_mmx_padds_w,                           // llvm.x86.mmx.padds.w
-    x86_mmx_paddus_b,                          // llvm.x86.mmx.paddus.b
-    x86_mmx_paddus_w,                          // llvm.x86.mmx.paddus.w
-    x86_mmx_palignr_b,                         // llvm.x86.mmx.palignr.b
-    x86_mmx_pand,                              // llvm.x86.mmx.pand
-    x86_mmx_pandn,                             // llvm.x86.mmx.pandn
-    x86_mmx_pavg_b,                            // llvm.x86.mmx.pavg.b
-    x86_mmx_pavg_w,                            // llvm.x86.mmx.pavg.w
-    x86_mmx_pcmpeq_b,                          // llvm.x86.mmx.pcmpeq.b
-    x86_mmx_pcmpeq_d,                          // llvm.x86.mmx.pcmpeq.d
-    x86_mmx_pcmpeq_w,                          // llvm.x86.mmx.pcmpeq.w
-    x86_mmx_pcmpgt_b,                          // llvm.x86.mmx.pcmpgt.b
-    x86_mmx_pcmpgt_d,                          // llvm.x86.mmx.pcmpgt.d
-    x86_mmx_pcmpgt_w,                          // llvm.x86.mmx.pcmpgt.w
-    x86_mmx_pextr_w,                           // llvm.x86.mmx.pextr.w
-    x86_mmx_pinsr_w,                           // llvm.x86.mmx.pinsr.w
-    x86_mmx_pmadd_wd,                          // llvm.x86.mmx.pmadd.wd
-    x86_mmx_pmaxs_w,                           // llvm.x86.mmx.pmaxs.w
-    x86_mmx_pmaxu_b,                           // llvm.x86.mmx.pmaxu.b
-    x86_mmx_pmins_w,                           // llvm.x86.mmx.pmins.w
-    x86_mmx_pminu_b,                           // llvm.x86.mmx.pminu.b
-    x86_mmx_pmovmskb,                          // llvm.x86.mmx.pmovmskb
-    x86_mmx_pmulh_w,                           // llvm.x86.mmx.pmulh.w
-    x86_mmx_pmulhu_w,                          // llvm.x86.mmx.pmulhu.w
-    x86_mmx_pmull_w,                           // llvm.x86.mmx.pmull.w
-    x86_mmx_pmulu_dq,                          // llvm.x86.mmx.pmulu.dq
-    x86_mmx_por,                               // llvm.x86.mmx.por
-    x86_mmx_psad_bw,                           // llvm.x86.mmx.psad.bw
-    x86_mmx_psll_d,                            // llvm.x86.mmx.psll.d
-    x86_mmx_psll_q,                            // llvm.x86.mmx.psll.q
-    x86_mmx_psll_w,                            // llvm.x86.mmx.psll.w
-    x86_mmx_pslli_d,                           // llvm.x86.mmx.pslli.d
-    x86_mmx_pslli_q,                           // llvm.x86.mmx.pslli.q
-    x86_mmx_pslli_w,                           // llvm.x86.mmx.pslli.w
-    x86_mmx_psra_d,                            // llvm.x86.mmx.psra.d
-    x86_mmx_psra_w,                            // llvm.x86.mmx.psra.w
-    x86_mmx_psrai_d,                           // llvm.x86.mmx.psrai.d
-    x86_mmx_psrai_w,                           // llvm.x86.mmx.psrai.w
-    x86_mmx_psrl_d,                            // llvm.x86.mmx.psrl.d
-    x86_mmx_psrl_q,                            // llvm.x86.mmx.psrl.q
-    x86_mmx_psrl_w,                            // llvm.x86.mmx.psrl.w
-    x86_mmx_psrli_d,                           // llvm.x86.mmx.psrli.d
-    x86_mmx_psrli_q,                           // llvm.x86.mmx.psrli.q
-    x86_mmx_psrli_w,                           // llvm.x86.mmx.psrli.w
-    x86_mmx_psub_b,                            // llvm.x86.mmx.psub.b
-    x86_mmx_psub_d,                            // llvm.x86.mmx.psub.d
-    x86_mmx_psub_q,                            // llvm.x86.mmx.psub.q
-    x86_mmx_psub_w,                            // llvm.x86.mmx.psub.w
-    x86_mmx_psubs_b,                           // llvm.x86.mmx.psubs.b
-    x86_mmx_psubs_w,                           // llvm.x86.mmx.psubs.w
-    x86_mmx_psubus_b,                          // llvm.x86.mmx.psubus.b
-    x86_mmx_psubus_w,                          // llvm.x86.mmx.psubus.w
-    x86_mmx_punpckhbw,                         // llvm.x86.mmx.punpckhbw
-    x86_mmx_punpckhdq,                         // llvm.x86.mmx.punpckhdq
-    x86_mmx_punpckhwd,                         // llvm.x86.mmx.punpckhwd
-    x86_mmx_punpcklbw,                         // llvm.x86.mmx.punpcklbw
-    x86_mmx_punpckldq,                         // llvm.x86.mmx.punpckldq
-    x86_mmx_punpcklwd,                         // llvm.x86.mmx.punpcklwd
-    x86_mmx_pxor,                              // llvm.x86.mmx.pxor
-    x86_monitorx,                              // llvm.x86.monitorx
-    x86_mwaitx,                                // llvm.x86.mwaitx
-    x86_pclmulqdq,                             // llvm.x86.pclmulqdq
-    x86_pclmulqdq_256,                         // llvm.x86.pclmulqdq.256
-    x86_pclmulqdq_512,                         // llvm.x86.pclmulqdq.512
-    x86_rdfsbase_32,                           // llvm.x86.rdfsbase.32
-    x86_rdfsbase_64,                           // llvm.x86.rdfsbase.64
-    x86_rdgsbase_32,                           // llvm.x86.rdgsbase.32
-    x86_rdgsbase_64,                           // llvm.x86.rdgsbase.64
-    x86_rdpid,                                 // llvm.x86.rdpid
-    x86_rdpkru,                                // llvm.x86.rdpkru
-    x86_rdpmc,                                 // llvm.x86.rdpmc
-    x86_rdrand_16,                             // llvm.x86.rdrand.16
-    x86_rdrand_32,                             // llvm.x86.rdrand.32
-    x86_rdrand_64,                             // llvm.x86.rdrand.64
-    x86_rdseed_16,                             // llvm.x86.rdseed.16
-    x86_rdseed_32,                             // llvm.x86.rdseed.32
-    x86_rdseed_64,                             // llvm.x86.rdseed.64
-    x86_rdsspd,                                // llvm.x86.rdsspd
-    x86_rdsspq,                                // llvm.x86.rdsspq
-    x86_rdtsc,                                 // llvm.x86.rdtsc
-    x86_rdtscp,                                // llvm.x86.rdtscp
-    x86_rstorssp,                              // llvm.x86.rstorssp
-    x86_saveprevssp,                           // llvm.x86.saveprevssp
-    x86_seh_ehguard,                           // llvm.x86.seh.ehguard
-    x86_seh_ehregnode,                         // llvm.x86.seh.ehregnode
-    x86_seh_lsda,                              // llvm.x86.seh.lsda
-    x86_seh_recoverfp,                         // llvm.x86.seh.recoverfp
-    x86_setssbsy,                              // llvm.x86.setssbsy
-    x86_sha1msg1,                              // llvm.x86.sha1msg1
-    x86_sha1msg2,                              // llvm.x86.sha1msg2
-    x86_sha1nexte,                             // llvm.x86.sha1nexte
-    x86_sha1rnds4,                             // llvm.x86.sha1rnds4
-    x86_sha256msg1,                            // llvm.x86.sha256msg1
-    x86_sha256msg2,                            // llvm.x86.sha256msg2
-    x86_sha256rnds2,                           // llvm.x86.sha256rnds2
-    x86_slwpcb,                                // llvm.x86.slwpcb
-    x86_sse_cmp_ps,                            // llvm.x86.sse.cmp.ps
-    x86_sse_cmp_ss,                            // llvm.x86.sse.cmp.ss
-    x86_sse_comieq_ss,                         // llvm.x86.sse.comieq.ss
-    x86_sse_comige_ss,                         // llvm.x86.sse.comige.ss
-    x86_sse_comigt_ss,                         // llvm.x86.sse.comigt.ss
-    x86_sse_comile_ss,                         // llvm.x86.sse.comile.ss
-    x86_sse_comilt_ss,                         // llvm.x86.sse.comilt.ss
-    x86_sse_comineq_ss,                        // llvm.x86.sse.comineq.ss
-    x86_sse_cvtpd2pi,                          // llvm.x86.sse.cvtpd2pi
-    x86_sse_cvtpi2pd,                          // llvm.x86.sse.cvtpi2pd
-    x86_sse_cvtpi2ps,                          // llvm.x86.sse.cvtpi2ps
-    x86_sse_cvtps2pi,                          // llvm.x86.sse.cvtps2pi
-    x86_sse_cvtsi2ss,                          // llvm.x86.sse.cvtsi2ss
-    x86_sse_cvtsi642ss,                        // llvm.x86.sse.cvtsi642ss
-    x86_sse_cvtss2si,                          // llvm.x86.sse.cvtss2si
-    x86_sse_cvtss2si64,                        // llvm.x86.sse.cvtss2si64
-    x86_sse_cvttpd2pi,                         // llvm.x86.sse.cvttpd2pi
-    x86_sse_cvttps2pi,                         // llvm.x86.sse.cvttps2pi
-    x86_sse_cvttss2si,                         // llvm.x86.sse.cvttss2si
-    x86_sse_cvttss2si64,                       // llvm.x86.sse.cvttss2si64
-    x86_sse_ldmxcsr,                           // llvm.x86.sse.ldmxcsr
-    x86_sse_max_ps,                            // llvm.x86.sse.max.ps
-    x86_sse_max_ss,                            // llvm.x86.sse.max.ss
-    x86_sse_min_ps,                            // llvm.x86.sse.min.ps
-    x86_sse_min_ss,                            // llvm.x86.sse.min.ss
-    x86_sse_movmsk_ps,                         // llvm.x86.sse.movmsk.ps
-    x86_sse_pshuf_w,                           // llvm.x86.sse.pshuf.w
-    x86_sse_rcp_ps,                            // llvm.x86.sse.rcp.ps
-    x86_sse_rcp_ss,                            // llvm.x86.sse.rcp.ss
-    x86_sse_rsqrt_ps,                          // llvm.x86.sse.rsqrt.ps
-    x86_sse_rsqrt_ss,                          // llvm.x86.sse.rsqrt.ss
-    x86_sse_sfence,                            // llvm.x86.sse.sfence
-    x86_sse_sqrt_ps,                           // llvm.x86.sse.sqrt.ps
-    x86_sse_sqrt_ss,                           // llvm.x86.sse.sqrt.ss
-    x86_sse_stmxcsr,                           // llvm.x86.sse.stmxcsr
-    x86_sse_ucomieq_ss,                        // llvm.x86.sse.ucomieq.ss
-    x86_sse_ucomige_ss,                        // llvm.x86.sse.ucomige.ss
-    x86_sse_ucomigt_ss,                        // llvm.x86.sse.ucomigt.ss
-    x86_sse_ucomile_ss,                        // llvm.x86.sse.ucomile.ss
-    x86_sse_ucomilt_ss,                        // llvm.x86.sse.ucomilt.ss
-    x86_sse_ucomineq_ss,                       // llvm.x86.sse.ucomineq.ss
-    x86_sse2_clflush,                          // llvm.x86.sse2.clflush
-    x86_sse2_cmp_pd,                           // llvm.x86.sse2.cmp.pd
-    x86_sse2_cmp_sd,                           // llvm.x86.sse2.cmp.sd
-    x86_sse2_comieq_sd,                        // llvm.x86.sse2.comieq.sd
-    x86_sse2_comige_sd,                        // llvm.x86.sse2.comige.sd
-    x86_sse2_comigt_sd,                        // llvm.x86.sse2.comigt.sd
-    x86_sse2_comile_sd,                        // llvm.x86.sse2.comile.sd
-    x86_sse2_comilt_sd,                        // llvm.x86.sse2.comilt.sd
-    x86_sse2_comineq_sd,                       // llvm.x86.sse2.comineq.sd
-    x86_sse2_cvtdq2ps,                         // llvm.x86.sse2.cvtdq2ps
-    x86_sse2_cvtpd2dq,                         // llvm.x86.sse2.cvtpd2dq
-    x86_sse2_cvtpd2ps,                         // llvm.x86.sse2.cvtpd2ps
-    x86_sse2_cvtps2dq,                         // llvm.x86.sse2.cvtps2dq
-    x86_sse2_cvtsd2si,                         // llvm.x86.sse2.cvtsd2si
-    x86_sse2_cvtsd2si64,                       // llvm.x86.sse2.cvtsd2si64
-    x86_sse2_cvtsd2ss,                         // llvm.x86.sse2.cvtsd2ss
-    x86_sse2_cvtsi2sd,                         // llvm.x86.sse2.cvtsi2sd
-    x86_sse2_cvtsi642sd,                       // llvm.x86.sse2.cvtsi642sd
-    x86_sse2_cvtss2sd,                         // llvm.x86.sse2.cvtss2sd
-    x86_sse2_cvttpd2dq,                        // llvm.x86.sse2.cvttpd2dq
-    x86_sse2_cvttps2dq,                        // llvm.x86.sse2.cvttps2dq
-    x86_sse2_cvttsd2si,                        // llvm.x86.sse2.cvttsd2si
-    x86_sse2_cvttsd2si64,                      // llvm.x86.sse2.cvttsd2si64
-    x86_sse2_lfence,                           // llvm.x86.sse2.lfence
-    x86_sse2_maskmov_dqu,                      // llvm.x86.sse2.maskmov.dqu
-    x86_sse2_max_pd,                           // llvm.x86.sse2.max.pd
-    x86_sse2_max_sd,                           // llvm.x86.sse2.max.sd
-    x86_sse2_mfence,                           // llvm.x86.sse2.mfence
-    x86_sse2_min_pd,                           // llvm.x86.sse2.min.pd
-    x86_sse2_min_sd,                           // llvm.x86.sse2.min.sd
-    x86_sse2_movmsk_pd,                        // llvm.x86.sse2.movmsk.pd
-    x86_sse2_packssdw_128,                     // llvm.x86.sse2.packssdw.128
-    x86_sse2_packsswb_128,                     // llvm.x86.sse2.packsswb.128
-    x86_sse2_packuswb_128,                     // llvm.x86.sse2.packuswb.128
-    x86_sse2_padds_b,                          // llvm.x86.sse2.padds.b
-    x86_sse2_padds_w,                          // llvm.x86.sse2.padds.w
-    x86_sse2_paddus_b,                         // llvm.x86.sse2.paddus.b
-    x86_sse2_paddus_w,                         // llvm.x86.sse2.paddus.w
-    x86_sse2_pause,                            // llvm.x86.sse2.pause
-    x86_sse2_pmadd_wd,                         // llvm.x86.sse2.pmadd.wd
-    x86_sse2_pmovmskb_128,                     // llvm.x86.sse2.pmovmskb.128
-    x86_sse2_pmulh_w,                          // llvm.x86.sse2.pmulh.w
-    x86_sse2_pmulhu_w,                         // llvm.x86.sse2.pmulhu.w
-    x86_sse2_pmulu_dq,                         // llvm.x86.sse2.pmulu.dq
-    x86_sse2_psad_bw,                          // llvm.x86.sse2.psad.bw
-    x86_sse2_psll_d,                           // llvm.x86.sse2.psll.d
-    x86_sse2_psll_q,                           // llvm.x86.sse2.psll.q
-    x86_sse2_psll_w,                           // llvm.x86.sse2.psll.w
-    x86_sse2_pslli_d,                          // llvm.x86.sse2.pslli.d
-    x86_sse2_pslli_q,                          // llvm.x86.sse2.pslli.q
-    x86_sse2_pslli_w,                          // llvm.x86.sse2.pslli.w
-    x86_sse2_psra_d,                           // llvm.x86.sse2.psra.d
-    x86_sse2_psra_w,                           // llvm.x86.sse2.psra.w
-    x86_sse2_psrai_d,                          // llvm.x86.sse2.psrai.d
-    x86_sse2_psrai_w,                          // llvm.x86.sse2.psrai.w
-    x86_sse2_psrl_d,                           // llvm.x86.sse2.psrl.d
-    x86_sse2_psrl_q,                           // llvm.x86.sse2.psrl.q
-    x86_sse2_psrl_w,                           // llvm.x86.sse2.psrl.w
-    x86_sse2_psrli_d,                          // llvm.x86.sse2.psrli.d
-    x86_sse2_psrli_q,                          // llvm.x86.sse2.psrli.q
-    x86_sse2_psrli_w,                          // llvm.x86.sse2.psrli.w
-    x86_sse2_psubs_b,                          // llvm.x86.sse2.psubs.b
-    x86_sse2_psubs_w,                          // llvm.x86.sse2.psubs.w
-    x86_sse2_psubus_b,                         // llvm.x86.sse2.psubus.b
-    x86_sse2_psubus_w,                         // llvm.x86.sse2.psubus.w
-    x86_sse2_sqrt_pd,                          // llvm.x86.sse2.sqrt.pd
-    x86_sse2_sqrt_sd,                          // llvm.x86.sse2.sqrt.sd
-    x86_sse2_ucomieq_sd,                       // llvm.x86.sse2.ucomieq.sd
-    x86_sse2_ucomige_sd,                       // llvm.x86.sse2.ucomige.sd
-    x86_sse2_ucomigt_sd,                       // llvm.x86.sse2.ucomigt.sd
-    x86_sse2_ucomile_sd,                       // llvm.x86.sse2.ucomile.sd
-    x86_sse2_ucomilt_sd,                       // llvm.x86.sse2.ucomilt.sd
-    x86_sse2_ucomineq_sd,                      // llvm.x86.sse2.ucomineq.sd
-    x86_sse3_addsub_pd,                        // llvm.x86.sse3.addsub.pd
-    x86_sse3_addsub_ps,                        // llvm.x86.sse3.addsub.ps
-    x86_sse3_hadd_pd,                          // llvm.x86.sse3.hadd.pd
-    x86_sse3_hadd_ps,                          // llvm.x86.sse3.hadd.ps
-    x86_sse3_hsub_pd,                          // llvm.x86.sse3.hsub.pd
-    x86_sse3_hsub_ps,                          // llvm.x86.sse3.hsub.ps
-    x86_sse3_ldu_dq,                           // llvm.x86.sse3.ldu.dq
-    x86_sse3_monitor,                          // llvm.x86.sse3.monitor
-    x86_sse3_mwait,                            // llvm.x86.sse3.mwait
-    x86_sse41_blendvpd,                        // llvm.x86.sse41.blendvpd
-    x86_sse41_blendvps,                        // llvm.x86.sse41.blendvps
-    x86_sse41_dppd,                            // llvm.x86.sse41.dppd
-    x86_sse41_dpps,                            // llvm.x86.sse41.dpps
-    x86_sse41_insertps,                        // llvm.x86.sse41.insertps
-    x86_sse41_mpsadbw,                         // llvm.x86.sse41.mpsadbw
-    x86_sse41_packusdw,                        // llvm.x86.sse41.packusdw
-    x86_sse41_pblendvb,                        // llvm.x86.sse41.pblendvb
-    x86_sse41_phminposuw,                      // llvm.x86.sse41.phminposuw
-    x86_sse41_pmuldq,                          // llvm.x86.sse41.pmuldq
-    x86_sse41_ptestc,                          // llvm.x86.sse41.ptestc
-    x86_sse41_ptestnzc,                        // llvm.x86.sse41.ptestnzc
-    x86_sse41_ptestz,                          // llvm.x86.sse41.ptestz
-    x86_sse41_round_pd,                        // llvm.x86.sse41.round.pd
-    x86_sse41_round_ps,                        // llvm.x86.sse41.round.ps
-    x86_sse41_round_sd,                        // llvm.x86.sse41.round.sd
-    x86_sse41_round_ss,                        // llvm.x86.sse41.round.ss
-    x86_sse42_crc32_32_16,                     // llvm.x86.sse42.crc32.32.16
-    x86_sse42_crc32_32_32,                     // llvm.x86.sse42.crc32.32.32
-    x86_sse42_crc32_32_8,                      // llvm.x86.sse42.crc32.32.8
-    x86_sse42_crc32_64_64,                     // llvm.x86.sse42.crc32.64.64
-    x86_sse42_pcmpestri128,                    // llvm.x86.sse42.pcmpestri128
-    x86_sse42_pcmpestria128,                   // llvm.x86.sse42.pcmpestria128
-    x86_sse42_pcmpestric128,                   // llvm.x86.sse42.pcmpestric128
-    x86_sse42_pcmpestrio128,                   // llvm.x86.sse42.pcmpestrio128
-    x86_sse42_pcmpestris128,                   // llvm.x86.sse42.pcmpestris128
-    x86_sse42_pcmpestriz128,                   // llvm.x86.sse42.pcmpestriz128
-    x86_sse42_pcmpestrm128,                    // llvm.x86.sse42.pcmpestrm128
-    x86_sse42_pcmpistri128,                    // llvm.x86.sse42.pcmpistri128
-    x86_sse42_pcmpistria128,                   // llvm.x86.sse42.pcmpistria128
-    x86_sse42_pcmpistric128,                   // llvm.x86.sse42.pcmpistric128
-    x86_sse42_pcmpistrio128,                   // llvm.x86.sse42.pcmpistrio128
-    x86_sse42_pcmpistris128,                   // llvm.x86.sse42.pcmpistris128
-    x86_sse42_pcmpistriz128,                   // llvm.x86.sse42.pcmpistriz128
-    x86_sse42_pcmpistrm128,                    // llvm.x86.sse42.pcmpistrm128
-    x86_sse4a_extrq,                           // llvm.x86.sse4a.extrq
-    x86_sse4a_extrqi,                          // llvm.x86.sse4a.extrqi
-    x86_sse4a_insertq,                         // llvm.x86.sse4a.insertq
-    x86_sse4a_insertqi,                        // llvm.x86.sse4a.insertqi
-    x86_ssse3_pabs_b,                          // llvm.x86.ssse3.pabs.b
-    x86_ssse3_pabs_d,                          // llvm.x86.ssse3.pabs.d
-    x86_ssse3_pabs_w,                          // llvm.x86.ssse3.pabs.w
-    x86_ssse3_phadd_d,                         // llvm.x86.ssse3.phadd.d
-    x86_ssse3_phadd_d_128,                     // llvm.x86.ssse3.phadd.d.128
-    x86_ssse3_phadd_sw,                        // llvm.x86.ssse3.phadd.sw
-    x86_ssse3_phadd_sw_128,                    // llvm.x86.ssse3.phadd.sw.128
-    x86_ssse3_phadd_w,                         // llvm.x86.ssse3.phadd.w
-    x86_ssse3_phadd_w_128,                     // llvm.x86.ssse3.phadd.w.128
-    x86_ssse3_phsub_d,                         // llvm.x86.ssse3.phsub.d
-    x86_ssse3_phsub_d_128,                     // llvm.x86.ssse3.phsub.d.128
-    x86_ssse3_phsub_sw,                        // llvm.x86.ssse3.phsub.sw
-    x86_ssse3_phsub_sw_128,                    // llvm.x86.ssse3.phsub.sw.128
-    x86_ssse3_phsub_w,                         // llvm.x86.ssse3.phsub.w
-    x86_ssse3_phsub_w_128,                     // llvm.x86.ssse3.phsub.w.128
-    x86_ssse3_pmadd_ub_sw,                     // llvm.x86.ssse3.pmadd.ub.sw
-    x86_ssse3_pmadd_ub_sw_128,                 // llvm.x86.ssse3.pmadd.ub.sw.128
-    x86_ssse3_pmul_hr_sw,                      // llvm.x86.ssse3.pmul.hr.sw
-    x86_ssse3_pmul_hr_sw_128,                  // llvm.x86.ssse3.pmul.hr.sw.128
-    x86_ssse3_pshuf_b,                         // llvm.x86.ssse3.pshuf.b
-    x86_ssse3_pshuf_b_128,                     // llvm.x86.ssse3.pshuf.b.128
-    x86_ssse3_psign_b,                         // llvm.x86.ssse3.psign.b
-    x86_ssse3_psign_b_128,                     // llvm.x86.ssse3.psign.b.128
-    x86_ssse3_psign_d,                         // llvm.x86.ssse3.psign.d
-    x86_ssse3_psign_d_128,                     // llvm.x86.ssse3.psign.d.128
-    x86_ssse3_psign_w,                         // llvm.x86.ssse3.psign.w
-    x86_ssse3_psign_w_128,                     // llvm.x86.ssse3.psign.w.128
-    x86_subborrow_u32,                         // llvm.x86.subborrow.u32
-    x86_subborrow_u64,                         // llvm.x86.subborrow.u64
-    x86_tbm_bextri_u32,                        // llvm.x86.tbm.bextri.u32
-    x86_tbm_bextri_u64,                        // llvm.x86.tbm.bextri.u64
-    x86_vcvtph2ps_128,                         // llvm.x86.vcvtph2ps.128
-    x86_vcvtph2ps_256,                         // llvm.x86.vcvtph2ps.256
-    x86_vcvtps2ph_128,                         // llvm.x86.vcvtps2ph.128
-    x86_vcvtps2ph_256,                         // llvm.x86.vcvtps2ph.256
-    x86_vgf2p8affineinvqb_128,                 // llvm.x86.vgf2p8affineinvqb.128
-    x86_vgf2p8affineinvqb_256,                 // llvm.x86.vgf2p8affineinvqb.256
-    x86_vgf2p8affineinvqb_512,                 // llvm.x86.vgf2p8affineinvqb.512
-    x86_vgf2p8affineqb_128,                    // llvm.x86.vgf2p8affineqb.128
-    x86_vgf2p8affineqb_256,                    // llvm.x86.vgf2p8affineqb.256
-    x86_vgf2p8affineqb_512,                    // llvm.x86.vgf2p8affineqb.512
-    x86_vgf2p8mulb_128,                        // llvm.x86.vgf2p8mulb.128
-    x86_vgf2p8mulb_256,                        // llvm.x86.vgf2p8mulb.256
-    x86_vgf2p8mulb_512,                        // llvm.x86.vgf2p8mulb.512
-    x86_wrfsbase_32,                           // llvm.x86.wrfsbase.32
-    x86_wrfsbase_64,                           // llvm.x86.wrfsbase.64
-    x86_wrgsbase_32,                           // llvm.x86.wrgsbase.32
-    x86_wrgsbase_64,                           // llvm.x86.wrgsbase.64
-    x86_wrpkru,                                // llvm.x86.wrpkru
-    x86_wrssd,                                 // llvm.x86.wrssd
-    x86_wrssq,                                 // llvm.x86.wrssq
-    x86_wrussd,                                // llvm.x86.wrussd
-    x86_wrussq,                                // llvm.x86.wrussq
-    x86_xabort,                                // llvm.x86.xabort
-    x86_xbegin,                                // llvm.x86.xbegin
-    x86_xend,                                  // llvm.x86.xend
-    x86_xgetbv,                                // llvm.x86.xgetbv
-    x86_xop_vfrcz_pd,                          // llvm.x86.xop.vfrcz.pd
-    x86_xop_vfrcz_pd_256,                      // llvm.x86.xop.vfrcz.pd.256
-    x86_xop_vfrcz_ps,                          // llvm.x86.xop.vfrcz.ps
-    x86_xop_vfrcz_ps_256,                      // llvm.x86.xop.vfrcz.ps.256
-    x86_xop_vfrcz_sd,                          // llvm.x86.xop.vfrcz.sd
-    x86_xop_vfrcz_ss,                          // llvm.x86.xop.vfrcz.ss
-    x86_xop_vpcomb,                            // llvm.x86.xop.vpcomb
-    x86_xop_vpcomd,                            // llvm.x86.xop.vpcomd
-    x86_xop_vpcomq,                            // llvm.x86.xop.vpcomq
-    x86_xop_vpcomub,                           // llvm.x86.xop.vpcomub
-    x86_xop_vpcomud,                           // llvm.x86.xop.vpcomud
-    x86_xop_vpcomuq,                           // llvm.x86.xop.vpcomuq
-    x86_xop_vpcomuw,                           // llvm.x86.xop.vpcomuw
-    x86_xop_vpcomw,                            // llvm.x86.xop.vpcomw
-    x86_xop_vpermil2pd,                        // llvm.x86.xop.vpermil2pd
-    x86_xop_vpermil2pd_256,                    // llvm.x86.xop.vpermil2pd.256
-    x86_xop_vpermil2ps,                        // llvm.x86.xop.vpermil2ps
-    x86_xop_vpermil2ps_256,                    // llvm.x86.xop.vpermil2ps.256
-    x86_xop_vphaddbd,                          // llvm.x86.xop.vphaddbd
-    x86_xop_vphaddbq,                          // llvm.x86.xop.vphaddbq
-    x86_xop_vphaddbw,                          // llvm.x86.xop.vphaddbw
-    x86_xop_vphadddq,                          // llvm.x86.xop.vphadddq
-    x86_xop_vphaddubd,                         // llvm.x86.xop.vphaddubd
-    x86_xop_vphaddubq,                         // llvm.x86.xop.vphaddubq
-    x86_xop_vphaddubw,                         // llvm.x86.xop.vphaddubw
-    x86_xop_vphaddudq,                         // llvm.x86.xop.vphaddudq
-    x86_xop_vphadduwd,                         // llvm.x86.xop.vphadduwd
-    x86_xop_vphadduwq,                         // llvm.x86.xop.vphadduwq
-    x86_xop_vphaddwd,                          // llvm.x86.xop.vphaddwd
-    x86_xop_vphaddwq,                          // llvm.x86.xop.vphaddwq
-    x86_xop_vphsubbw,                          // llvm.x86.xop.vphsubbw
-    x86_xop_vphsubdq,                          // llvm.x86.xop.vphsubdq
-    x86_xop_vphsubwd,                          // llvm.x86.xop.vphsubwd
-    x86_xop_vpmacsdd,                          // llvm.x86.xop.vpmacsdd
-    x86_xop_vpmacsdqh,                         // llvm.x86.xop.vpmacsdqh
-    x86_xop_vpmacsdql,                         // llvm.x86.xop.vpmacsdql
-    x86_xop_vpmacssdd,                         // llvm.x86.xop.vpmacssdd
-    x86_xop_vpmacssdqh,                        // llvm.x86.xop.vpmacssdqh
-    x86_xop_vpmacssdql,                        // llvm.x86.xop.vpmacssdql
-    x86_xop_vpmacsswd,                         // llvm.x86.xop.vpmacsswd
-    x86_xop_vpmacssww,                         // llvm.x86.xop.vpmacssww
-    x86_xop_vpmacswd,                          // llvm.x86.xop.vpmacswd
-    x86_xop_vpmacsww,                          // llvm.x86.xop.vpmacsww
-    x86_xop_vpmadcsswd,                        // llvm.x86.xop.vpmadcsswd
-    x86_xop_vpmadcswd,                         // llvm.x86.xop.vpmadcswd
-    x86_xop_vpperm,                            // llvm.x86.xop.vpperm
-    x86_xop_vprotb,                            // llvm.x86.xop.vprotb
-    x86_xop_vprotbi,                           // llvm.x86.xop.vprotbi
-    x86_xop_vprotd,                            // llvm.x86.xop.vprotd
-    x86_xop_vprotdi,                           // llvm.x86.xop.vprotdi
-    x86_xop_vprotq,                            // llvm.x86.xop.vprotq
-    x86_xop_vprotqi,                           // llvm.x86.xop.vprotqi
-    x86_xop_vprotw,                            // llvm.x86.xop.vprotw
-    x86_xop_vprotwi,                           // llvm.x86.xop.vprotwi
-    x86_xop_vpshab,                            // llvm.x86.xop.vpshab
-    x86_xop_vpshad,                            // llvm.x86.xop.vpshad
-    x86_xop_vpshaq,                            // llvm.x86.xop.vpshaq
-    x86_xop_vpshaw,                            // llvm.x86.xop.vpshaw
-    x86_xop_vpshlb,                            // llvm.x86.xop.vpshlb
-    x86_xop_vpshld,                            // llvm.x86.xop.vpshld
-    x86_xop_vpshlq,                            // llvm.x86.xop.vpshlq
-    x86_xop_vpshlw,                            // llvm.x86.xop.vpshlw
-    x86_xrstor,                                // llvm.x86.xrstor
-    x86_xrstor64,                              // llvm.x86.xrstor64
-    x86_xrstors,                               // llvm.x86.xrstors
-    x86_xrstors64,                             // llvm.x86.xrstors64
-    x86_xsave,                                 // llvm.x86.xsave
-    x86_xsave64,                               // llvm.x86.xsave64
-    x86_xsavec,                                // llvm.x86.xsavec
-    x86_xsavec64,                              // llvm.x86.xsavec64
-    x86_xsaveopt,                              // llvm.x86.xsaveopt
-    x86_xsaveopt64,                            // llvm.x86.xsaveopt64
-    x86_xsaves,                                // llvm.x86.xsaves
-    x86_xsaves64,                              // llvm.x86.xsaves64
-    x86_xsetbv,                                // llvm.x86.xsetbv
-    x86_xtest,                                 // llvm.x86.xtest
-    xcore_bitrev,                              // llvm.xcore.bitrev
-    xcore_checkevent,                          // llvm.xcore.checkevent
-    xcore_chkct,                               // llvm.xcore.chkct
-    xcore_clre,                                // llvm.xcore.clre
-    xcore_clrpt,                               // llvm.xcore.clrpt
-    xcore_clrsr,                               // llvm.xcore.clrsr
-    xcore_crc32,                               // llvm.xcore.crc32
-    xcore_crc8,                                // llvm.xcore.crc8
-    xcore_edu,                                 // llvm.xcore.edu
-    xcore_eeu,                                 // llvm.xcore.eeu
-    xcore_endin,                               // llvm.xcore.endin
-    xcore_freer,                               // llvm.xcore.freer
-    xcore_geted,                               // llvm.xcore.geted
-    xcore_getet,                               // llvm.xcore.getet
-    xcore_getid,                               // llvm.xcore.getid
-    xcore_getps,                               // llvm.xcore.getps
-    xcore_getr,                                // llvm.xcore.getr
-    xcore_getst,                               // llvm.xcore.getst
-    xcore_getts,                               // llvm.xcore.getts
-    xcore_in,                                  // llvm.xcore.in
-    xcore_inct,                                // llvm.xcore.inct
-    xcore_initcp,                              // llvm.xcore.initcp
-    xcore_initdp,                              // llvm.xcore.initdp
-    xcore_initlr,                              // llvm.xcore.initlr
-    xcore_initpc,                              // llvm.xcore.initpc
-    xcore_initsp,                              // llvm.xcore.initsp
-    xcore_inshr,                               // llvm.xcore.inshr
-    xcore_int,                                 // llvm.xcore.int
-    xcore_mjoin,                               // llvm.xcore.mjoin
-    xcore_msync,                               // llvm.xcore.msync
-    xcore_out,                                 // llvm.xcore.out
-    xcore_outct,                               // llvm.xcore.outct
-    xcore_outshr,                              // llvm.xcore.outshr
-    xcore_outt,                                // llvm.xcore.outt
-    xcore_peek,                                // llvm.xcore.peek
-    xcore_setc,                                // llvm.xcore.setc
-    xcore_setclk,                              // llvm.xcore.setclk
-    xcore_setd,                                // llvm.xcore.setd
-    xcore_setev,                               // llvm.xcore.setev
-    xcore_setps,                               // llvm.xcore.setps
-    xcore_setpsc,                              // llvm.xcore.setpsc
-    xcore_setpt,                               // llvm.xcore.setpt
-    xcore_setrdy,                              // llvm.xcore.setrdy
-    xcore_setsr,                               // llvm.xcore.setsr
-    xcore_settw,                               // llvm.xcore.settw
-    xcore_setv,                                // llvm.xcore.setv
-    xcore_sext,                                // llvm.xcore.sext
-    xcore_ssync,                               // llvm.xcore.ssync
-    xcore_syncr,                               // llvm.xcore.syncr
-    xcore_testct,                              // llvm.xcore.testct
-    xcore_testwct,                             // llvm.xcore.testwct
-    xcore_waitevent,                           // llvm.xcore.waitevent
-    xcore_zext                                 // llvm.xcore.zext
-#endif
-
-// Target mapping
-#ifdef GET_INTRINSIC_TARGET_DATA
-struct IntrinsicTargetInfo {
-  llvm::StringLiteral Name;
-  size_t Offset;
-  size_t Count;
-};
-static constexpr IntrinsicTargetInfo TargetInfos[] = {
-  {llvm::StringLiteral(""), 0, 174},
-  {llvm::StringLiteral("aarch64"), 174, 189},
-  {llvm::StringLiteral("amdgcn"), 363, 213},
-  {llvm::StringLiteral("arm"), 576, 240},
-  {llvm::StringLiteral("bpf"), 816, 4},
-  {llvm::StringLiteral("hexagon"), 820, 1708},
-  {llvm::StringLiteral("mips"), 2528, 667},
-  {llvm::StringLiteral("nvvm"), 3195, 1005},
-  {llvm::StringLiteral("ppc"), 4200, 396},
-  {llvm::StringLiteral("r600"), 4596, 21},
-  {llvm::StringLiteral("s390"), 4617, 220},
-  {llvm::StringLiteral("wasm"), 4837, 8},
-  {llvm::StringLiteral("x86"), 4845, 1506},
-  {llvm::StringLiteral("xcore"), 6351, 53},
-};
-#endif
-
-// Intrinsic ID to name table
-#ifdef GET_INTRINSIC_NAME_TABLE
-  // Note that entry #0 is the invalid intrinsic!
-  "llvm.addressofreturnaddress",
-  "llvm.adjust.trampoline",
-  "llvm.annotation",
-  "llvm.assume",
-  "llvm.bitreverse",
-  "llvm.bswap",
-  "llvm.canonicalize",
-  "llvm.ceil",
-  "llvm.clear_cache",
-  "llvm.codeview.annotation",
-  "llvm.convert.from.fp16",
-  "llvm.convert.to.fp16",
-  "llvm.copysign",
-  "llvm.coro.alloc",
-  "llvm.coro.begin",
-  "llvm.coro.destroy",
-  "llvm.coro.done",
-  "llvm.coro.end",
-  "llvm.coro.frame",
-  "llvm.coro.free",
-  "llvm.coro.id",
-  "llvm.coro.param",
-  "llvm.coro.promise",
-  "llvm.coro.resume",
-  "llvm.coro.save",
-  "llvm.coro.size",
-  "llvm.coro.subfn.addr",
-  "llvm.coro.suspend",
-  "llvm.cos",
-  "llvm.ctlz",
-  "llvm.ctpop",
-  "llvm.cttz",
-  "llvm.dbg.addr",
-  "llvm.dbg.declare",
-  "llvm.dbg.value",
-  "llvm.debugtrap",
-  "llvm.donothing",
-  "llvm.eh.dwarf.cfa",
-  "llvm.eh.exceptioncode",
-  "llvm.eh.exceptionpointer",
-  "llvm.eh.return.i32",
-  "llvm.eh.return.i64",
-  "llvm.eh.sjlj.callsite",
-  "llvm.eh.sjlj.functioncontext",
-  "llvm.eh.sjlj.longjmp",
-  "llvm.eh.sjlj.lsda",
-  "llvm.eh.sjlj.setjmp",
-  "llvm.eh.sjlj.setup.dispatch",
-  "llvm.eh.typeid.for",
-  "llvm.eh.unwind.init",
-  "llvm.exp",
-  "llvm.exp2",
-  "llvm.expect",
-  "llvm.experimental.constrained.cos",
-  "llvm.experimental.constrained.exp",
-  "llvm.experimental.constrained.exp2",
-  "llvm.experimental.constrained.fadd",
-  "llvm.experimental.constrained.fdiv",
-  "llvm.experimental.constrained.fma",
-  "llvm.experimental.constrained.fmul",
-  "llvm.experimental.constrained.frem",
-  "llvm.experimental.constrained.fsub",
-  "llvm.experimental.constrained.log",
-  "llvm.experimental.constrained.log10",
-  "llvm.experimental.constrained.log2",
-  "llvm.experimental.constrained.nearbyint",
-  "llvm.experimental.constrained.pow",
-  "llvm.experimental.constrained.powi",
-  "llvm.experimental.constrained.rint",
-  "llvm.experimental.constrained.sin",
-  "llvm.experimental.constrained.sqrt",
-  "llvm.experimental.deoptimize",
-  "llvm.experimental.gc.relocate",
-  "llvm.experimental.gc.result",
-  "llvm.experimental.gc.statepoint",
-  "llvm.experimental.guard",
-  "llvm.experimental.patchpoint.i64",
-  "llvm.experimental.patchpoint.void",
-  "llvm.experimental.stackmap",
-  "llvm.experimental.vector.reduce.add",
-  "llvm.experimental.vector.reduce.and",
-  "llvm.experimental.vector.reduce.fadd",
-  "llvm.experimental.vector.reduce.fmax",
-  "llvm.experimental.vector.reduce.fmin",
-  "llvm.experimental.vector.reduce.fmul",
-  "llvm.experimental.vector.reduce.mul",
-  "llvm.experimental.vector.reduce.or",
-  "llvm.experimental.vector.reduce.smax",
-  "llvm.experimental.vector.reduce.smin",
-  "llvm.experimental.vector.reduce.umax",
-  "llvm.experimental.vector.reduce.umin",
-  "llvm.experimental.vector.reduce.xor",
-  "llvm.fabs",
-  "llvm.floor",
-  "llvm.flt.rounds",
-  "llvm.fma",
-  "llvm.fmuladd",
-  "llvm.frameaddress",
-  "llvm.gcread",
-  "llvm.gcroot",
-  "llvm.gcwrite",
-  "llvm.get.dynamic.area.offset",
-  "llvm.icall.branch.funnel",
-  "llvm.init.trampoline",
-  "llvm.instrprof.increment",
-  "llvm.instrprof.increment.step",
-  "llvm.instrprof.value.profile",
-  "llvm.invariant.end",
-  "llvm.invariant.group.barrier",
-  "llvm.invariant.start",
-  "llvm.lifetime.end",
-  "llvm.lifetime.start",
-  "llvm.load.relative",
-  "llvm.localaddress",
-  "llvm.localescape",
-  "llvm.localrecover",
-  "llvm.log",
-  "llvm.log10",
-  "llvm.log2",
-  "llvm.longjmp",
-  "llvm.masked.compressstore",
-  "llvm.masked.expandload",
-  "llvm.masked.gather",
-  "llvm.masked.load",
-  "llvm.masked.scatter",
-  "llvm.masked.store",
-  "llvm.maxnum",
-  "llvm.memcpy",
-  "llvm.memcpy.element.unordered.atomic",
-  "llvm.memmove",
-  "llvm.memmove.element.unordered.atomic",
-  "llvm.memset",
-  "llvm.memset.element.unordered.atomic",
-  "llvm.minnum",
-  "llvm.nearbyint",
-  "llvm.objectsize",
-  "llvm.pcmarker",
-  "llvm.pow",
-  "llvm.powi",
-  "llvm.prefetch",
-  "llvm.ptr.annotation",
-  "llvm.read_register",
-  "llvm.readcyclecounter",
-  "llvm.returnaddress",
-  "llvm.rint",
-  "llvm.round",
-  "llvm.sadd.with.overflow",
-  "llvm.setjmp",
-  "llvm.sideeffect",
-  "llvm.siglongjmp",
-  "llvm.sigsetjmp",
-  "llvm.sin",
-  "llvm.smul.with.overflow",
-  "llvm.sqrt",
-  "llvm.ssa.copy",
-  "llvm.ssub.with.overflow",
-  "llvm.stackguard",
-  "llvm.stackprotector",
-  "llvm.stackrestore",
-  "llvm.stacksave",
-  "llvm.thread.pointer",
-  "llvm.trap",
-  "llvm.trunc",
-  "llvm.type.checked.load",
-  "llvm.type.test",
-  "llvm.uadd.with.overflow",
-  "llvm.umul.with.overflow",
-  "llvm.usub.with.overflow",
-  "llvm.va_copy",
-  "llvm.va_end",
-  "llvm.va_start",
-  "llvm.var.annotation",
-  "llvm.write_register",
-  "llvm.xray.customevent",
-  "llvm.aarch64.clrex",
-  "llvm.aarch64.crc32b",
-  "llvm.aarch64.crc32cb",
-  "llvm.aarch64.crc32ch",
-  "llvm.aarch64.crc32cw",
-  "llvm.aarch64.crc32cx",
-  "llvm.aarch64.crc32h",
-  "llvm.aarch64.crc32w",
-  "llvm.aarch64.crc32x",
-  "llvm.aarch64.crypto.aesd",
-  "llvm.aarch64.crypto.aese",
-  "llvm.aarch64.crypto.aesimc",
-  "llvm.aarch64.crypto.aesmc",
-  "llvm.aarch64.crypto.sha1c",
-  "llvm.aarch64.crypto.sha1h",
-  "llvm.aarch64.crypto.sha1m",
-  "llvm.aarch64.crypto.sha1p",
-  "llvm.aarch64.crypto.sha1su0",
-  "llvm.aarch64.crypto.sha1su1",
-  "llvm.aarch64.crypto.sha256h",
-  "llvm.aarch64.crypto.sha256h2",
-  "llvm.aarch64.crypto.sha256su0",
-  "llvm.aarch64.crypto.sha256su1",
-  "llvm.aarch64.dmb",
-  "llvm.aarch64.dsb",
-  "llvm.aarch64.hint",
-  "llvm.aarch64.isb",
-  "llvm.aarch64.ldaxp",
-  "llvm.aarch64.ldaxr",
-  "llvm.aarch64.ldxp",
-  "llvm.aarch64.ldxr",
-  "llvm.aarch64.neon.abs",
-  "llvm.aarch64.neon.addhn",
-  "llvm.aarch64.neon.addp",
-  "llvm.aarch64.neon.cls",
-  "llvm.aarch64.neon.fabd",
-  "llvm.aarch64.neon.facge",
-  "llvm.aarch64.neon.facgt",
-  "llvm.aarch64.neon.faddv",
-  "llvm.aarch64.neon.fcvtas",
-  "llvm.aarch64.neon.fcvtau",
-  "llvm.aarch64.neon.fcvtms",
-  "llvm.aarch64.neon.fcvtmu",
-  "llvm.aarch64.neon.fcvtns",
-  "llvm.aarch64.neon.fcvtnu",
-  "llvm.aarch64.neon.fcvtps",
-  "llvm.aarch64.neon.fcvtpu",
-  "llvm.aarch64.neon.fcvtxn",
-  "llvm.aarch64.neon.fcvtzs",
-  "llvm.aarch64.neon.fcvtzu",
-  "llvm.aarch64.neon.fmax",
-  "llvm.aarch64.neon.fmaxnm",
-  "llvm.aarch64.neon.fmaxnmp",
-  "llvm.aarch64.neon.fmaxnmv",
-  "llvm.aarch64.neon.fmaxp",
-  "llvm.aarch64.neon.fmaxv",
-  "llvm.aarch64.neon.fmin",
-  "llvm.aarch64.neon.fminnm",
-  "llvm.aarch64.neon.fminnmp",
-  "llvm.aarch64.neon.fminnmv",
-  "llvm.aarch64.neon.fminp",
-  "llvm.aarch64.neon.fminv",
-  "llvm.aarch64.neon.fmulx",
-  "llvm.aarch64.neon.frecpe",
-  "llvm.aarch64.neon.frecps",
-  "llvm.aarch64.neon.frecpx",
-  "llvm.aarch64.neon.frintn",
-  "llvm.aarch64.neon.frsqrte",
-  "llvm.aarch64.neon.frsqrts",
-  "llvm.aarch64.neon.ld1x2",
-  "llvm.aarch64.neon.ld1x3",
-  "llvm.aarch64.neon.ld1x4",
-  "llvm.aarch64.neon.ld2",
-  "llvm.aarch64.neon.ld2lane",
-  "llvm.aarch64.neon.ld2r",
-  "llvm.aarch64.neon.ld3",
-  "llvm.aarch64.neon.ld3lane",
-  "llvm.aarch64.neon.ld3r",
-  "llvm.aarch64.neon.ld4",
-  "llvm.aarch64.neon.ld4lane",
-  "llvm.aarch64.neon.ld4r",
-  "llvm.aarch64.neon.pmul",
-  "llvm.aarch64.neon.pmull",
-  "llvm.aarch64.neon.pmull64",
-  "llvm.aarch64.neon.raddhn",
-  "llvm.aarch64.neon.rbit",
-  "llvm.aarch64.neon.rshrn",
-  "llvm.aarch64.neon.rsubhn",
-  "llvm.aarch64.neon.sabd",
-  "llvm.aarch64.neon.saddlp",
-  "llvm.aarch64.neon.saddlv",
-  "llvm.aarch64.neon.saddv",
-  "llvm.aarch64.neon.scalar.sqxtn",
-  "llvm.aarch64.neon.scalar.sqxtun",
-  "llvm.aarch64.neon.scalar.uqxtn",
-  "llvm.aarch64.neon.shadd",
-  "llvm.aarch64.neon.shll",
-  "llvm.aarch64.neon.shsub",
-  "llvm.aarch64.neon.smax",
-  "llvm.aarch64.neon.smaxp",
-  "llvm.aarch64.neon.smaxv",
-  "llvm.aarch64.neon.smin",
-  "llvm.aarch64.neon.sminp",
-  "llvm.aarch64.neon.sminv",
-  "llvm.aarch64.neon.smull",
-  "llvm.aarch64.neon.sqabs",
-  "llvm.aarch64.neon.sqadd",
-  "llvm.aarch64.neon.sqdmulh",
-  "llvm.aarch64.neon.sqdmull",
-  "llvm.aarch64.neon.sqdmulls.scalar",
-  "llvm.aarch64.neon.sqneg",
-  "llvm.aarch64.neon.sqrdmulh",
-  "llvm.aarch64.neon.sqrshl",
-  "llvm.aarch64.neon.sqrshrn",
-  "llvm.aarch64.neon.sqrshrun",
-  "llvm.aarch64.neon.sqshl",
-  "llvm.aarch64.neon.sqshlu",
-  "llvm.aarch64.neon.sqshrn",
-  "llvm.aarch64.neon.sqshrun",
-  "llvm.aarch64.neon.sqsub",
-  "llvm.aarch64.neon.sqxtn",
-  "llvm.aarch64.neon.sqxtun",
-  "llvm.aarch64.neon.srhadd",
-  "llvm.aarch64.neon.srshl",
-  "llvm.aarch64.neon.sshl",
-  "llvm.aarch64.neon.sshll",
-  "llvm.aarch64.neon.st1x2",
-  "llvm.aarch64.neon.st1x3",
-  "llvm.aarch64.neon.st1x4",
-  "llvm.aarch64.neon.st2",
-  "llvm.aarch64.neon.st2lane",
-  "llvm.aarch64.neon.st3",
-  "llvm.aarch64.neon.st3lane",
-  "llvm.aarch64.neon.st4",
-  "llvm.aarch64.neon.st4lane",
-  "llvm.aarch64.neon.subhn",
-  "llvm.aarch64.neon.suqadd",
-  "llvm.aarch64.neon.tbl1",
-  "llvm.aarch64.neon.tbl2",
-  "llvm.aarch64.neon.tbl3",
-  "llvm.aarch64.neon.tbl4",
-  "llvm.aarch64.neon.tbx1",
-  "llvm.aarch64.neon.tbx2",
-  "llvm.aarch64.neon.tbx3",
-  "llvm.aarch64.neon.tbx4",
-  "llvm.aarch64.neon.uabd",
-  "llvm.aarch64.neon.uaddlp",
-  "llvm.aarch64.neon.uaddlv",
-  "llvm.aarch64.neon.uaddv",
-  "llvm.aarch64.neon.uhadd",
-  "llvm.aarch64.neon.uhsub",
-  "llvm.aarch64.neon.umax",
-  "llvm.aarch64.neon.umaxp",
-  "llvm.aarch64.neon.umaxv",
-  "llvm.aarch64.neon.umin",
-  "llvm.aarch64.neon.uminp",
-  "llvm.aarch64.neon.uminv",
-  "llvm.aarch64.neon.umull",
-  "llvm.aarch64.neon.uqadd",
-  "llvm.aarch64.neon.uqrshl",
-  "llvm.aarch64.neon.uqrshrn",
-  "llvm.aarch64.neon.uqshl",
-  "llvm.aarch64.neon.uqshrn",
-  "llvm.aarch64.neon.uqsub",
-  "llvm.aarch64.neon.uqxtn",
-  "llvm.aarch64.neon.urecpe",
-  "llvm.aarch64.neon.urhadd",
-  "llvm.aarch64.neon.urshl",
-  "llvm.aarch64.neon.ursqrte",
-  "llvm.aarch64.neon.ushl",
-  "llvm.aarch64.neon.ushll",
-  "llvm.aarch64.neon.usqadd",
-  "llvm.aarch64.neon.vcopy.lane",
-  "llvm.aarch64.neon.vcvtfp2fxs",
-  "llvm.aarch64.neon.vcvtfp2fxu",
-  "llvm.aarch64.neon.vcvtfp2hf",
-  "llvm.aarch64.neon.vcvtfxs2fp",
-  "llvm.aarch64.neon.vcvtfxu2fp",
-  "llvm.aarch64.neon.vcvthf2fp",
-  "llvm.aarch64.neon.vsli",
-  "llvm.aarch64.neon.vsri",
-  "llvm.aarch64.sdiv",
-  "llvm.aarch64.sisd.fabd",
-  "llvm.aarch64.sisd.fcvtxn",
-  "llvm.aarch64.stlxp",
-  "llvm.aarch64.stlxr",
-  "llvm.aarch64.stxp",
-  "llvm.aarch64.stxr",
-  "llvm.aarch64.udiv",
-  "llvm.amdgcn.alignbit",
-  "llvm.amdgcn.alignbyte",
-  "llvm.amdgcn.atomic.dec",
-  "llvm.amdgcn.atomic.inc",
-  "llvm.amdgcn.break",
-  "llvm.amdgcn.buffer.atomic.add",
-  "llvm.amdgcn.buffer.atomic.and",
-  "llvm.amdgcn.buffer.atomic.cmpswap",
-  "llvm.amdgcn.buffer.atomic.or",
-  "llvm.amdgcn.buffer.atomic.smax",
-  "llvm.amdgcn.buffer.atomic.smin",
-  "llvm.amdgcn.buffer.atomic.sub",
-  "llvm.amdgcn.buffer.atomic.swap",
-  "llvm.amdgcn.buffer.atomic.umax",
-  "llvm.amdgcn.buffer.atomic.umin",
-  "llvm.amdgcn.buffer.atomic.xor",
-  "llvm.amdgcn.buffer.load",
-  "llvm.amdgcn.buffer.load.format",
-  "llvm.amdgcn.buffer.store",
-  "llvm.amdgcn.buffer.store.format",
-  "llvm.amdgcn.buffer.wbinvl1",
-  "llvm.amdgcn.buffer.wbinvl1.sc",
-  "llvm.amdgcn.buffer.wbinvl1.vol",
-  "llvm.amdgcn.class",
-  "llvm.amdgcn.cos",
-  "llvm.amdgcn.cubeid",
-  "llvm.amdgcn.cubema",
-  "llvm.amdgcn.cubesc",
-  "llvm.amdgcn.cubetc",
-  "llvm.amdgcn.cvt.pk.i16",
-  "llvm.amdgcn.cvt.pk.u16",
-  "llvm.amdgcn.cvt.pk.u8.f32",
-  "llvm.amdgcn.cvt.pknorm.i16",
-  "llvm.amdgcn.cvt.pknorm.u16",
-  "llvm.amdgcn.cvt.pkrtz",
-  "llvm.amdgcn.dispatch.id",
-  "llvm.amdgcn.dispatch.ptr",
-  "llvm.amdgcn.div.fixup",
-  "llvm.amdgcn.div.fmas",
-  "llvm.amdgcn.div.scale",
-  "llvm.amdgcn.ds.bpermute",
-  "llvm.amdgcn.ds.fadd",
-  "llvm.amdgcn.ds.fmax",
-  "llvm.amdgcn.ds.fmin",
-  "llvm.amdgcn.ds.permute",
-  "llvm.amdgcn.ds.swizzle",
-  "llvm.amdgcn.else",
-  "llvm.amdgcn.else.break",
-  "llvm.amdgcn.end.cf",
-  "llvm.amdgcn.exp",
-  "llvm.amdgcn.exp.compr",
-  "llvm.amdgcn.fcmp",
-  "llvm.amdgcn.fdiv.fast",
-  "llvm.amdgcn.fmed3",
-  "llvm.amdgcn.fmul.legacy",
-  "llvm.amdgcn.fract",
-  "llvm.amdgcn.frexp.exp",
-  "llvm.amdgcn.frexp.mant",
-  "llvm.amdgcn.groupstaticsize",
-  "llvm.amdgcn.icmp",
-  "llvm.amdgcn.if",
-  "llvm.amdgcn.if.break",
-  "llvm.amdgcn.image.atomic.add",
-  "llvm.amdgcn.image.atomic.and",
-  "llvm.amdgcn.image.atomic.cmpswap",
-  "llvm.amdgcn.image.atomic.dec",
-  "llvm.amdgcn.image.atomic.inc",
-  "llvm.amdgcn.image.atomic.or",
-  "llvm.amdgcn.image.atomic.smax",
-  "llvm.amdgcn.image.atomic.smin",
-  "llvm.amdgcn.image.atomic.sub",
-  "llvm.amdgcn.image.atomic.swap",
-  "llvm.amdgcn.image.atomic.umax",
-  "llvm.amdgcn.image.atomic.umin",
-  "llvm.amdgcn.image.atomic.xor",
-  "llvm.amdgcn.image.gather4",
-  "llvm.amdgcn.image.gather4.b",
-  "llvm.amdgcn.image.gather4.b.cl",
-  "llvm.amdgcn.image.gather4.b.cl.o",
-  "llvm.amdgcn.image.gather4.b.o",
-  "llvm.amdgcn.image.gather4.c",
-  "llvm.amdgcn.image.gather4.c.b",
-  "llvm.amdgcn.image.gather4.c.b.cl",
-  "llvm.amdgcn.image.gather4.c.b.cl.o",
-  "llvm.amdgcn.image.gather4.c.b.o",
-  "llvm.amdgcn.image.gather4.c.cl",
-  "llvm.amdgcn.image.gather4.c.cl.o",
-  "llvm.amdgcn.image.gather4.c.l",
-  "llvm.amdgcn.image.gather4.c.l.o",
-  "llvm.amdgcn.image.gather4.c.lz",
-  "llvm.amdgcn.image.gather4.c.lz.o",
-  "llvm.amdgcn.image.gather4.c.o",
-  "llvm.amdgcn.image.gather4.cl",
-  "llvm.amdgcn.image.gather4.cl.o",
-  "llvm.amdgcn.image.gather4.l",
-  "llvm.amdgcn.image.gather4.l.o",
-  "llvm.amdgcn.image.gather4.lz",
-  "llvm.amdgcn.image.gather4.lz.o",
-  "llvm.amdgcn.image.gather4.o",
-  "llvm.amdgcn.image.getlod",
-  "llvm.amdgcn.image.getresinfo",
-  "llvm.amdgcn.image.load",
-  "llvm.amdgcn.image.load.mip",
-  "llvm.amdgcn.image.sample",
-  "llvm.amdgcn.image.sample.b",
-  "llvm.amdgcn.image.sample.b.cl",
-  "llvm.amdgcn.image.sample.b.cl.o",
-  "llvm.amdgcn.image.sample.b.o",
-  "llvm.amdgcn.image.sample.c",
-  "llvm.amdgcn.image.sample.c.b",
-  "llvm.amdgcn.image.sample.c.b.cl",
-  "llvm.amdgcn.image.sample.c.b.cl.o",
-  "llvm.amdgcn.image.sample.c.b.o",
-  "llvm.amdgcn.image.sample.c.cd",
-  "llvm.amdgcn.image.sample.c.cd.cl",
-  "llvm.amdgcn.image.sample.c.cd.cl.o",
-  "llvm.amdgcn.image.sample.c.cd.o",
-  "llvm.amdgcn.image.sample.c.cl",
-  "llvm.amdgcn.image.sample.c.cl.o",
-  "llvm.amdgcn.image.sample.c.d",
-  "llvm.amdgcn.image.sample.c.d.cl",
-  "llvm.amdgcn.image.sample.c.d.cl.o",
-  "llvm.amdgcn.image.sample.c.d.o",
-  "llvm.amdgcn.image.sample.c.l",
-  "llvm.amdgcn.image.sample.c.l.o",
-  "llvm.amdgcn.image.sample.c.lz",
-  "llvm.amdgcn.image.sample.c.lz.o",
-  "llvm.amdgcn.image.sample.c.o",
-  "llvm.amdgcn.image.sample.cd",
-  "llvm.amdgcn.image.sample.cd.cl",
-  "llvm.amdgcn.image.sample.cd.cl.o",
-  "llvm.amdgcn.image.sample.cd.o",
-  "llvm.amdgcn.image.sample.cl",
-  "llvm.amdgcn.image.sample.cl.o",
-  "llvm.amdgcn.image.sample.d",
-  "llvm.amdgcn.image.sample.d.cl",
-  "llvm.amdgcn.image.sample.d.cl.o",
-  "llvm.amdgcn.image.sample.d.o",
-  "llvm.amdgcn.image.sample.l",
-  "llvm.amdgcn.image.sample.l.o",
-  "llvm.amdgcn.image.sample.lz",
-  "llvm.amdgcn.image.sample.lz.o",
-  "llvm.amdgcn.image.sample.o",
-  "llvm.amdgcn.image.store",
-  "llvm.amdgcn.image.store.mip",
-  "llvm.amdgcn.implicit.buffer.ptr",
-  "llvm.amdgcn.implicitarg.ptr",
-  "llvm.amdgcn.init.exec",
-  "llvm.amdgcn.init.exec.from.input",
-  "llvm.amdgcn.interp.mov",
-  "llvm.amdgcn.interp.p1",
-  "llvm.amdgcn.interp.p2",
-  "llvm.amdgcn.kernarg.segment.ptr",
-  "llvm.amdgcn.kill",
-  "llvm.amdgcn.ldexp",
-  "llvm.amdgcn.lerp",
-  "llvm.amdgcn.log.clamp",
-  "llvm.amdgcn.loop",
-  "llvm.amdgcn.mbcnt.hi",
-  "llvm.amdgcn.mbcnt.lo",
-  "llvm.amdgcn.mov.dpp",
-  "llvm.amdgcn.mqsad.pk.u16.u8",
-  "llvm.amdgcn.mqsad.u32.u8",
-  "llvm.amdgcn.msad.u8",
-  "llvm.amdgcn.ps.live",
-  "llvm.amdgcn.qsad.pk.u16.u8",
-  "llvm.amdgcn.queue.ptr",
-  "llvm.amdgcn.rcp",
-  "llvm.amdgcn.rcp.legacy",
-  "llvm.amdgcn.readfirstlane",
-  "llvm.amdgcn.readlane",
-  "llvm.amdgcn.rsq",
-  "llvm.amdgcn.rsq.clamp",
-  "llvm.amdgcn.rsq.legacy",
-  "llvm.amdgcn.s.barrier",
-  "llvm.amdgcn.s.dcache.inv",
-  "llvm.amdgcn.s.dcache.inv.vol",
-  "llvm.amdgcn.s.dcache.wb",
-  "llvm.amdgcn.s.dcache.wb.vol",
-  "llvm.amdgcn.s.decperflevel",
-  "llvm.amdgcn.s.getpc",
-  "llvm.amdgcn.s.getreg",
-  "llvm.amdgcn.s.incperflevel",
-  "llvm.amdgcn.s.memrealtime",
-  "llvm.amdgcn.s.memtime",
-  "llvm.amdgcn.s.sendmsg",
-  "llvm.amdgcn.s.sendmsghalt",
-  "llvm.amdgcn.s.sleep",
-  "llvm.amdgcn.s.waitcnt",
-  "llvm.amdgcn.sad.hi.u8",
-  "llvm.amdgcn.sad.u16",
-  "llvm.amdgcn.sad.u8",
-  "llvm.amdgcn.sbfe",
-  "llvm.amdgcn.set.inactive",
-  "llvm.amdgcn.sffbh",
-  "llvm.amdgcn.sin",
-  "llvm.amdgcn.tbuffer.load",
-  "llvm.amdgcn.tbuffer.store",
-  "llvm.amdgcn.trig.preop",
-  "llvm.amdgcn.ubfe",
-  "llvm.amdgcn.unreachable",
-  "llvm.amdgcn.update.dpp",
-  "llvm.amdgcn.wave.barrier",
-  "llvm.amdgcn.workgroup.id.x",
-  "llvm.amdgcn.workgroup.id.y",
-  "llvm.amdgcn.workgroup.id.z",
-  "llvm.amdgcn.workitem.id.x",
-  "llvm.amdgcn.workitem.id.y",
-  "llvm.amdgcn.workitem.id.z",
-  "llvm.amdgcn.wqm",
-  "llvm.amdgcn.wqm.vote",
-  "llvm.amdgcn.writelane",
-  "llvm.amdgcn.wwm",
-  "llvm.arm.cdp",
-  "llvm.arm.cdp2",
-  "llvm.arm.clrex",
-  "llvm.arm.crc32b",
-  "llvm.arm.crc32cb",
-  "llvm.arm.crc32ch",
-  "llvm.arm.crc32cw",
-  "llvm.arm.crc32h",
-  "llvm.arm.crc32w",
-  "llvm.arm.dbg",
-  "llvm.arm.dmb",
-  "llvm.arm.dsb",
-  "llvm.arm.get.fpscr",
-  "llvm.arm.hint",
-  "llvm.arm.isb",
-  "llvm.arm.ldaex",
-  "llvm.arm.ldaexd",
-  "llvm.arm.ldc",
-  "llvm.arm.ldc2",
-  "llvm.arm.ldc2l",
-  "llvm.arm.ldcl",
-  "llvm.arm.ldrex",
-  "llvm.arm.ldrexd",
-  "llvm.arm.mcr",
-  "llvm.arm.mcr2",
-  "llvm.arm.mcrr",
-  "llvm.arm.mcrr2",
-  "llvm.arm.mrc",
-  "llvm.arm.mrc2",
-  "llvm.arm.mrrc",
-  "llvm.arm.mrrc2",
-  "llvm.arm.neon.aesd",
-  "llvm.arm.neon.aese",
-  "llvm.arm.neon.aesimc",
-  "llvm.arm.neon.aesmc",
-  "llvm.arm.neon.sha1c",
-  "llvm.arm.neon.sha1h",
-  "llvm.arm.neon.sha1m",
-  "llvm.arm.neon.sha1p",
-  "llvm.arm.neon.sha1su0",
-  "llvm.arm.neon.sha1su1",
-  "llvm.arm.neon.sha256h",
-  "llvm.arm.neon.sha256h2",
-  "llvm.arm.neon.sha256su0",
-  "llvm.arm.neon.sha256su1",
-  "llvm.arm.neon.vabds",
-  "llvm.arm.neon.vabdu",
-  "llvm.arm.neon.vabs",
-  "llvm.arm.neon.vacge",
-  "llvm.arm.neon.vacgt",
-  "llvm.arm.neon.vbsl",
-  "llvm.arm.neon.vcls",
-  "llvm.arm.neon.vcvtas",
-  "llvm.arm.neon.vcvtau",
-  "llvm.arm.neon.vcvtfp2fxs",
-  "llvm.arm.neon.vcvtfp2fxu",
-  "llvm.arm.neon.vcvtfp2hf",
-  "llvm.arm.neon.vcvtfxs2fp",
-  "llvm.arm.neon.vcvtfxu2fp",
-  "llvm.arm.neon.vcvthf2fp",
-  "llvm.arm.neon.vcvtms",
-  "llvm.arm.neon.vcvtmu",
-  "llvm.arm.neon.vcvtns",
-  "llvm.arm.neon.vcvtnu",
-  "llvm.arm.neon.vcvtps",
-  "llvm.arm.neon.vcvtpu",
-  "llvm.arm.neon.vhadds",
-  "llvm.arm.neon.vhaddu",
-  "llvm.arm.neon.vhsubs",
-  "llvm.arm.neon.vhsubu",
-  "llvm.arm.neon.vld1",
-  "llvm.arm.neon.vld2",
-  "llvm.arm.neon.vld2lane",
-  "llvm.arm.neon.vld3",
-  "llvm.arm.neon.vld3lane",
-  "llvm.arm.neon.vld4",
-  "llvm.arm.neon.vld4lane",
-  "llvm.arm.neon.vmaxnm",
-  "llvm.arm.neon.vmaxs",
-  "llvm.arm.neon.vmaxu",
-  "llvm.arm.neon.vminnm",
-  "llvm.arm.neon.vmins",
-  "llvm.arm.neon.vminu",
-  "llvm.arm.neon.vmullp",
-  "llvm.arm.neon.vmulls",
-  "llvm.arm.neon.vmullu",
-  "llvm.arm.neon.vmulp",
-  "llvm.arm.neon.vpadals",
-  "llvm.arm.neon.vpadalu",
-  "llvm.arm.neon.vpadd",
-  "llvm.arm.neon.vpaddls",
-  "llvm.arm.neon.vpaddlu",
-  "llvm.arm.neon.vpmaxs",
-  "llvm.arm.neon.vpmaxu",
-  "llvm.arm.neon.vpmins",
-  "llvm.arm.neon.vpminu",
-  "llvm.arm.neon.vqabs",
-  "llvm.arm.neon.vqadds",
-  "llvm.arm.neon.vqaddu",
-  "llvm.arm.neon.vqdmulh",
-  "llvm.arm.neon.vqdmull",
-  "llvm.arm.neon.vqmovns",
-  "llvm.arm.neon.vqmovnsu",
-  "llvm.arm.neon.vqmovnu",
-  "llvm.arm.neon.vqneg",
-  "llvm.arm.neon.vqrdmulh",
-  "llvm.arm.neon.vqrshiftns",
-  "llvm.arm.neon.vqrshiftnsu",
-  "llvm.arm.neon.vqrshiftnu",
-  "llvm.arm.neon.vqrshifts",
-  "llvm.arm.neon.vqrshiftu",
-  "llvm.arm.neon.vqshiftns",
-  "llvm.arm.neon.vqshiftnsu",
-  "llvm.arm.neon.vqshiftnu",
-  "llvm.arm.neon.vqshifts",
-  "llvm.arm.neon.vqshiftsu",
-  "llvm.arm.neon.vqshiftu",
-  "llvm.arm.neon.vqsubs",
-  "llvm.arm.neon.vqsubu",
-  "llvm.arm.neon.vraddhn",
-  "llvm.arm.neon.vrecpe",
-  "llvm.arm.neon.vrecps",
-  "llvm.arm.neon.vrhadds",
-  "llvm.arm.neon.vrhaddu",
-  "llvm.arm.neon.vrinta",
-  "llvm.arm.neon.vrintm",
-  "llvm.arm.neon.vrintn",
-  "llvm.arm.neon.vrintp",
-  "llvm.arm.neon.vrintx",
-  "llvm.arm.neon.vrintz",
-  "llvm.arm.neon.vrshiftn",
-  "llvm.arm.neon.vrshifts",
-  "llvm.arm.neon.vrshiftu",
-  "llvm.arm.neon.vrsqrte",
-  "llvm.arm.neon.vrsqrts",
-  "llvm.arm.neon.vrsubhn",
-  "llvm.arm.neon.vshiftins",
-  "llvm.arm.neon.vshifts",
-  "llvm.arm.neon.vshiftu",
-  "llvm.arm.neon.vst1",
-  "llvm.arm.neon.vst2",
-  "llvm.arm.neon.vst2lane",
-  "llvm.arm.neon.vst3",
-  "llvm.arm.neon.vst3lane",
-  "llvm.arm.neon.vst4",
-  "llvm.arm.neon.vst4lane",
-  "llvm.arm.neon.vtbl1",
-  "llvm.arm.neon.vtbl2",
-  "llvm.arm.neon.vtbl3",
-  "llvm.arm.neon.vtbl4",
-  "llvm.arm.neon.vtbx1",
-  "llvm.arm.neon.vtbx2",
-  "llvm.arm.neon.vtbx3",
-  "llvm.arm.neon.vtbx4",
-  "llvm.arm.qadd",
-  "llvm.arm.qadd16",
-  "llvm.arm.qadd8",
-  "llvm.arm.qasx",
-  "llvm.arm.qsax",
-  "llvm.arm.qsub",
-  "llvm.arm.qsub16",
-  "llvm.arm.qsub8",
-  "llvm.arm.sadd16",
-  "llvm.arm.sadd8",
-  "llvm.arm.sasx",
-  "llvm.arm.sel",
-  "llvm.arm.set.fpscr",
-  "llvm.arm.shadd16",
-  "llvm.arm.shadd8",
-  "llvm.arm.shasx",
-  "llvm.arm.shsax",
-  "llvm.arm.shsub16",
-  "llvm.arm.shsub8",
-  "llvm.arm.smlabb",
-  "llvm.arm.smlabt",
-  "llvm.arm.smlad",
-  "llvm.arm.smladx",
-  "llvm.arm.smlald",
-  "llvm.arm.smlaldx",
-  "llvm.arm.smlatb",
-  "llvm.arm.smlatt",
-  "llvm.arm.smlawb",
-  "llvm.arm.smlawt",
-  "llvm.arm.smlsd",
-  "llvm.arm.smlsdx",
-  "llvm.arm.smlsld",
-  "llvm.arm.smlsldx",
-  "llvm.arm.smuad",
-  "llvm.arm.smuadx",
-  "llvm.arm.smulbb",
-  "llvm.arm.smulbt",
-  "llvm.arm.smultb",
-  "llvm.arm.smultt",
-  "llvm.arm.smulwb",
-  "llvm.arm.smulwt",
-  "llvm.arm.smusd",
-  "llvm.arm.smusdx",
-  "llvm.arm.space",
-  "llvm.arm.ssat",
-  "llvm.arm.ssat16",
-  "llvm.arm.ssax",
-  "llvm.arm.ssub16",
-  "llvm.arm.ssub8",
-  "llvm.arm.stc",
-  "llvm.arm.stc2",
-  "llvm.arm.stc2l",
-  "llvm.arm.stcl",
-  "llvm.arm.stlex",
-  "llvm.arm.stlexd",
-  "llvm.arm.strex",
-  "llvm.arm.strexd",
-  "llvm.arm.sxtab16",
-  "llvm.arm.sxtb16",
-  "llvm.arm.uadd16",
-  "llvm.arm.uadd8",
-  "llvm.arm.uasx",
-  "llvm.arm.uhadd16",
-  "llvm.arm.uhadd8",
-  "llvm.arm.uhasx",
-  "llvm.arm.uhsax",
-  "llvm.arm.uhsub16",
-  "llvm.arm.uhsub8",
-  "llvm.arm.undefined",
-  "llvm.arm.uqadd16",
-  "llvm.arm.uqadd8",
-  "llvm.arm.uqasx",
-  "llvm.arm.uqsax",
-  "llvm.arm.uqsub16",
-  "llvm.arm.uqsub8",
-  "llvm.arm.usad8",
-  "llvm.arm.usada8",
-  "llvm.arm.usat",
-  "llvm.arm.usat16",
-  "llvm.arm.usax",
-  "llvm.arm.usub16",
-  "llvm.arm.usub8",
-  "llvm.arm.uxtab16",
-  "llvm.arm.uxtb16",
-  "llvm.arm.vcvtr",
-  "llvm.arm.vcvtru",
-  "llvm.bpf.load.byte",
-  "llvm.bpf.load.half",
-  "llvm.bpf.load.word",
-  "llvm.bpf.pseudo",
-  "llvm.hexagon.A2.abs",
-  "llvm.hexagon.A2.absp",
-  "llvm.hexagon.A2.abssat",
-  "llvm.hexagon.A2.add",
-  "llvm.hexagon.A2.addh.h16.hh",
-  "llvm.hexagon.A2.addh.h16.hl",
-  "llvm.hexagon.A2.addh.h16.lh",
-  "llvm.hexagon.A2.addh.h16.ll",
-  "llvm.hexagon.A2.addh.h16.sat.hh",
-  "llvm.hexagon.A2.addh.h16.sat.hl",
-  "llvm.hexagon.A2.addh.h16.sat.lh",
-  "llvm.hexagon.A2.addh.h16.sat.ll",
-  "llvm.hexagon.A2.addh.l16.hl",
-  "llvm.hexagon.A2.addh.l16.ll",
-  "llvm.hexagon.A2.addh.l16.sat.hl",
-  "llvm.hexagon.A2.addh.l16.sat.ll",
-  "llvm.hexagon.A2.addi",
-  "llvm.hexagon.A2.addp",
-  "llvm.hexagon.A2.addpsat",
-  "llvm.hexagon.A2.addsat",
-  "llvm.hexagon.A2.addsp",
-  "llvm.hexagon.A2.and",
-  "llvm.hexagon.A2.andir",
-  "llvm.hexagon.A2.andp",
-  "llvm.hexagon.A2.aslh",
-  "llvm.hexagon.A2.asrh",
-  "llvm.hexagon.A2.combine.hh",
-  "llvm.hexagon.A2.combine.hl",
-  "llvm.hexagon.A2.combine.lh",
-  "llvm.hexagon.A2.combine.ll",
-  "llvm.hexagon.A2.combineii",
-  "llvm.hexagon.A2.combinew",
-  "llvm.hexagon.A2.max",
-  "llvm.hexagon.A2.maxp",
-  "llvm.hexagon.A2.maxu",
-  "llvm.hexagon.A2.maxup",
-  "llvm.hexagon.A2.min",
-  "llvm.hexagon.A2.minp",
-  "llvm.hexagon.A2.minu",
-  "llvm.hexagon.A2.minup",
-  "llvm.hexagon.A2.neg",
-  "llvm.hexagon.A2.negp",
-  "llvm.hexagon.A2.negsat",
-  "llvm.hexagon.A2.not",
-  "llvm.hexagon.A2.notp",
-  "llvm.hexagon.A2.or",
-  "llvm.hexagon.A2.orir",
-  "llvm.hexagon.A2.orp",
-  "llvm.hexagon.A2.roundsat",
-  "llvm.hexagon.A2.sat",
-  "llvm.hexagon.A2.satb",
-  "llvm.hexagon.A2.sath",
-  "llvm.hexagon.A2.satub",
-  "llvm.hexagon.A2.satuh",
-  "llvm.hexagon.A2.sub",
-  "llvm.hexagon.A2.subh.h16.hh",
-  "llvm.hexagon.A2.subh.h16.hl",
-  "llvm.hexagon.A2.subh.h16.lh",
-  "llvm.hexagon.A2.subh.h16.ll",
-  "llvm.hexagon.A2.subh.h16.sat.hh",
-  "llvm.hexagon.A2.subh.h16.sat.hl",
-  "llvm.hexagon.A2.subh.h16.sat.lh",
-  "llvm.hexagon.A2.subh.h16.sat.ll",
-  "llvm.hexagon.A2.subh.l16.hl",
-  "llvm.hexagon.A2.subh.l16.ll",
-  "llvm.hexagon.A2.subh.l16.sat.hl",
-  "llvm.hexagon.A2.subh.l16.sat.ll",
-  "llvm.hexagon.A2.subp",
-  "llvm.hexagon.A2.subri",
-  "llvm.hexagon.A2.subsat",
-  "llvm.hexagon.A2.svaddh",
-  "llvm.hexagon.A2.svaddhs",
-  "llvm.hexagon.A2.svadduhs",
-  "llvm.hexagon.A2.svavgh",
-  "llvm.hexagon.A2.svavghs",
-  "llvm.hexagon.A2.svnavgh",
-  "llvm.hexagon.A2.svsubh",
-  "llvm.hexagon.A2.svsubhs",
-  "llvm.hexagon.A2.svsubuhs",
-  "llvm.hexagon.A2.swiz",
-  "llvm.hexagon.A2.sxtb",
-  "llvm.hexagon.A2.sxth",
-  "llvm.hexagon.A2.sxtw",
-  "llvm.hexagon.A2.tfr",
-  "llvm.hexagon.A2.tfrih",
-  "llvm.hexagon.A2.tfril",
-  "llvm.hexagon.A2.tfrp",
-  "llvm.hexagon.A2.tfrpi",
-  "llvm.hexagon.A2.tfrsi",
-  "llvm.hexagon.A2.vabsh",
-  "llvm.hexagon.A2.vabshsat",
-  "llvm.hexagon.A2.vabsw",
-  "llvm.hexagon.A2.vabswsat",
-  "llvm.hexagon.A2.vaddb.map",
-  "llvm.hexagon.A2.vaddh",
-  "llvm.hexagon.A2.vaddhs",
-  "llvm.hexagon.A2.vaddub",
-  "llvm.hexagon.A2.vaddubs",
-  "llvm.hexagon.A2.vadduhs",
-  "llvm.hexagon.A2.vaddw",
-  "llvm.hexagon.A2.vaddws",
-  "llvm.hexagon.A2.vavgh",
-  "llvm.hexagon.A2.vavghcr",
-  "llvm.hexagon.A2.vavghr",
-  "llvm.hexagon.A2.vavgub",
-  "llvm.hexagon.A2.vavgubr",
-  "llvm.hexagon.A2.vavguh",
-  "llvm.hexagon.A2.vavguhr",
-  "llvm.hexagon.A2.vavguw",
-  "llvm.hexagon.A2.vavguwr",
-  "llvm.hexagon.A2.vavgw",
-  "llvm.hexagon.A2.vavgwcr",
-  "llvm.hexagon.A2.vavgwr",
-  "llvm.hexagon.A2.vcmpbeq",
-  "llvm.hexagon.A2.vcmpbgtu",
-  "llvm.hexagon.A2.vcmpheq",
-  "llvm.hexagon.A2.vcmphgt",
-  "llvm.hexagon.A2.vcmphgtu",
-  "llvm.hexagon.A2.vcmpweq",
-  "llvm.hexagon.A2.vcmpwgt",
-  "llvm.hexagon.A2.vcmpwgtu",
-  "llvm.hexagon.A2.vconj",
-  "llvm.hexagon.A2.vmaxb",
-  "llvm.hexagon.A2.vmaxh",
-  "llvm.hexagon.A2.vmaxub",
-  "llvm.hexagon.A2.vmaxuh",
-  "llvm.hexagon.A2.vmaxuw",
-  "llvm.hexagon.A2.vmaxw",
-  "llvm.hexagon.A2.vminb",
-  "llvm.hexagon.A2.vminh",
-  "llvm.hexagon.A2.vminub",
-  "llvm.hexagon.A2.vminuh",
-  "llvm.hexagon.A2.vminuw",
-  "llvm.hexagon.A2.vminw",
-  "llvm.hexagon.A2.vnavgh",
-  "llvm.hexagon.A2.vnavghcr",
-  "llvm.hexagon.A2.vnavghr",
-  "llvm.hexagon.A2.vnavgw",
-  "llvm.hexagon.A2.vnavgwcr",
-  "llvm.hexagon.A2.vnavgwr",
-  "llvm.hexagon.A2.vraddub",
-  "llvm.hexagon.A2.vraddub.acc",
-  "llvm.hexagon.A2.vrsadub",
-  "llvm.hexagon.A2.vrsadub.acc",
-  "llvm.hexagon.A2.vsubb.map",
-  "llvm.hexagon.A2.vsubh",
-  "llvm.hexagon.A2.vsubhs",
-  "llvm.hexagon.A2.vsubub",
-  "llvm.hexagon.A2.vsububs",
-  "llvm.hexagon.A2.vsubuhs",
-  "llvm.hexagon.A2.vsubw",
-  "llvm.hexagon.A2.vsubws",
-  "llvm.hexagon.A2.xor",
-  "llvm.hexagon.A2.xorp",
-  "llvm.hexagon.A2.zxtb",
-  "llvm.hexagon.A2.zxth",
-  "llvm.hexagon.A4.andn",
-  "llvm.hexagon.A4.andnp",
-  "llvm.hexagon.A4.bitsplit",
-  "llvm.hexagon.A4.bitspliti",
-  "llvm.hexagon.A4.boundscheck",
-  "llvm.hexagon.A4.cmpbeq",
-  "llvm.hexagon.A4.cmpbeqi",
-  "llvm.hexagon.A4.cmpbgt",
-  "llvm.hexagon.A4.cmpbgti",
-  "llvm.hexagon.A4.cmpbgtu",
-  "llvm.hexagon.A4.cmpbgtui",
-  "llvm.hexagon.A4.cmpheq",
-  "llvm.hexagon.A4.cmpheqi",
-  "llvm.hexagon.A4.cmphgt",
-  "llvm.hexagon.A4.cmphgti",
-  "llvm.hexagon.A4.cmphgtu",
-  "llvm.hexagon.A4.cmphgtui",
-  "llvm.hexagon.A4.combineir",
-  "llvm.hexagon.A4.combineri",
-  "llvm.hexagon.A4.cround.ri",
-  "llvm.hexagon.A4.cround.rr",
-  "llvm.hexagon.A4.modwrapu",
-  "llvm.hexagon.A4.orn",
-  "llvm.hexagon.A4.ornp",
-  "llvm.hexagon.A4.rcmpeq",
-  "llvm.hexagon.A4.rcmpeqi",
-  "llvm.hexagon.A4.rcmpneq",
-  "llvm.hexagon.A4.rcmpneqi",
-  "llvm.hexagon.A4.round.ri",
-  "llvm.hexagon.A4.round.ri.sat",
-  "llvm.hexagon.A4.round.rr",
-  "llvm.hexagon.A4.round.rr.sat",
-  "llvm.hexagon.A4.tlbmatch",
-  "llvm.hexagon.A4.vcmpbeq.any",
-  "llvm.hexagon.A4.vcmpbeqi",
-  "llvm.hexagon.A4.vcmpbgt",
-  "llvm.hexagon.A4.vcmpbgti",
-  "llvm.hexagon.A4.vcmpbgtui",
-  "llvm.hexagon.A4.vcmpheqi",
-  "llvm.hexagon.A4.vcmphgti",
-  "llvm.hexagon.A4.vcmphgtui",
-  "llvm.hexagon.A4.vcmpweqi",
-  "llvm.hexagon.A4.vcmpwgti",
-  "llvm.hexagon.A4.vcmpwgtui",
-  "llvm.hexagon.A4.vrmaxh",
-  "llvm.hexagon.A4.vrmaxuh",
-  "llvm.hexagon.A4.vrmaxuw",
-  "llvm.hexagon.A4.vrmaxw",
-  "llvm.hexagon.A4.vrminh",
-  "llvm.hexagon.A4.vrminuh",
-  "llvm.hexagon.A4.vrminuw",
-  "llvm.hexagon.A4.vrminw",
-  "llvm.hexagon.A5.vaddhubs",
-  "llvm.hexagon.A6.vcmpbeq.notany",
-  "llvm.hexagon.A6.vcmpbeq.notany.128B",
-  "llvm.hexagon.C2.all8",
-  "llvm.hexagon.C2.and",
-  "llvm.hexagon.C2.andn",
-  "llvm.hexagon.C2.any8",
-  "llvm.hexagon.C2.bitsclr",
-  "llvm.hexagon.C2.bitsclri",
-  "llvm.hexagon.C2.bitsset",
-  "llvm.hexagon.C2.cmpeq",
-  "llvm.hexagon.C2.cmpeqi",
-  "llvm.hexagon.C2.cmpeqp",
-  "llvm.hexagon.C2.cmpgei",
-  "llvm.hexagon.C2.cmpgeui",
-  "llvm.hexagon.C2.cmpgt",
-  "llvm.hexagon.C2.cmpgti",
-  "llvm.hexagon.C2.cmpgtp",
-  "llvm.hexagon.C2.cmpgtu",
-  "llvm.hexagon.C2.cmpgtui",
-  "llvm.hexagon.C2.cmpgtup",
-  "llvm.hexagon.C2.cmplt",
-  "llvm.hexagon.C2.cmpltu",
-  "llvm.hexagon.C2.mask",
-  "llvm.hexagon.C2.mux",
-  "llvm.hexagon.C2.muxii",
-  "llvm.hexagon.C2.muxir",
-  "llvm.hexagon.C2.muxri",
-  "llvm.hexagon.C2.not",
-  "llvm.hexagon.C2.or",
-  "llvm.hexagon.C2.orn",
-  "llvm.hexagon.C2.pxfer.map",
-  "llvm.hexagon.C2.tfrpr",
-  "llvm.hexagon.C2.tfrrp",
-  "llvm.hexagon.C2.vitpack",
-  "llvm.hexagon.C2.vmux",
-  "llvm.hexagon.C2.xor",
-  "llvm.hexagon.C4.and.and",
-  "llvm.hexagon.C4.and.andn",
-  "llvm.hexagon.C4.and.or",
-  "llvm.hexagon.C4.and.orn",
-  "llvm.hexagon.C4.cmplte",
-  "llvm.hexagon.C4.cmpltei",
-  "llvm.hexagon.C4.cmplteu",
-  "llvm.hexagon.C4.cmplteui",
-  "llvm.hexagon.C4.cmpneq",
-  "llvm.hexagon.C4.cmpneqi",
-  "llvm.hexagon.C4.fastcorner9",
-  "llvm.hexagon.C4.fastcorner9.not",
-  "llvm.hexagon.C4.nbitsclr",
-  "llvm.hexagon.C4.nbitsclri",
-  "llvm.hexagon.C4.nbitsset",
-  "llvm.hexagon.C4.or.and",
-  "llvm.hexagon.C4.or.andn",
-  "llvm.hexagon.C4.or.or",
-  "llvm.hexagon.C4.or.orn",
-  "llvm.hexagon.F2.conv.d2df",
-  "llvm.hexagon.F2.conv.d2sf",
-  "llvm.hexagon.F2.conv.df2d",
-  "llvm.hexagon.F2.conv.df2d.chop",
-  "llvm.hexagon.F2.conv.df2sf",
-  "llvm.hexagon.F2.conv.df2ud",
-  "llvm.hexagon.F2.conv.df2ud.chop",
-  "llvm.hexagon.F2.conv.df2uw",
-  "llvm.hexagon.F2.conv.df2uw.chop",
-  "llvm.hexagon.F2.conv.df2w",
-  "llvm.hexagon.F2.conv.df2w.chop",
-  "llvm.hexagon.F2.conv.sf2d",
-  "llvm.hexagon.F2.conv.sf2d.chop",
-  "llvm.hexagon.F2.conv.sf2df",
-  "llvm.hexagon.F2.conv.sf2ud",
-  "llvm.hexagon.F2.conv.sf2ud.chop",
-  "llvm.hexagon.F2.conv.sf2uw",
-  "llvm.hexagon.F2.conv.sf2uw.chop",
-  "llvm.hexagon.F2.conv.sf2w",
-  "llvm.hexagon.F2.conv.sf2w.chop",
-  "llvm.hexagon.F2.conv.ud2df",
-  "llvm.hexagon.F2.conv.ud2sf",
-  "llvm.hexagon.F2.conv.uw2df",
-  "llvm.hexagon.F2.conv.uw2sf",
-  "llvm.hexagon.F2.conv.w2df",
-  "llvm.hexagon.F2.conv.w2sf",
-  "llvm.hexagon.F2.dfclass",
-  "llvm.hexagon.F2.dfcmpeq",
-  "llvm.hexagon.F2.dfcmpge",
-  "llvm.hexagon.F2.dfcmpgt",
-  "llvm.hexagon.F2.dfcmpuo",
-  "llvm.hexagon.F2.dfimm.n",
-  "llvm.hexagon.F2.dfimm.p",
-  "llvm.hexagon.F2.sfadd",
-  "llvm.hexagon.F2.sfclass",
-  "llvm.hexagon.F2.sfcmpeq",
-  "llvm.hexagon.F2.sfcmpge",
-  "llvm.hexagon.F2.sfcmpgt",
-  "llvm.hexagon.F2.sfcmpuo",
-  "llvm.hexagon.F2.sffixupd",
-  "llvm.hexagon.F2.sffixupn",
-  "llvm.hexagon.F2.sffixupr",
-  "llvm.hexagon.F2.sffma",
-  "llvm.hexagon.F2.sffma.lib",
-  "llvm.hexagon.F2.sffma.sc",
-  "llvm.hexagon.F2.sffms",
-  "llvm.hexagon.F2.sffms.lib",
-  "llvm.hexagon.F2.sfimm.n",
-  "llvm.hexagon.F2.sfimm.p",
-  "llvm.hexagon.F2.sfmax",
-  "llvm.hexagon.F2.sfmin",
-  "llvm.hexagon.F2.sfmpy",
-  "llvm.hexagon.F2.sfsub",
-  "llvm.hexagon.L2.loadrb.pbr",
-  "llvm.hexagon.L2.loadrb.pci",
-  "llvm.hexagon.L2.loadrb.pcr",
-  "llvm.hexagon.L2.loadrd.pbr",
-  "llvm.hexagon.L2.loadrd.pci",
-  "llvm.hexagon.L2.loadrd.pcr",
-  "llvm.hexagon.L2.loadrh.pbr",
-  "llvm.hexagon.L2.loadrh.pci",
-  "llvm.hexagon.L2.loadrh.pcr",
-  "llvm.hexagon.L2.loadri.pbr",
-  "llvm.hexagon.L2.loadri.pci",
-  "llvm.hexagon.L2.loadri.pcr",
-  "llvm.hexagon.L2.loadrub.pbr",
-  "llvm.hexagon.L2.loadrub.pci",
-  "llvm.hexagon.L2.loadrub.pcr",
-  "llvm.hexagon.L2.loadruh.pbr",
-  "llvm.hexagon.L2.loadruh.pci",
-  "llvm.hexagon.L2.loadruh.pcr",
-  "llvm.hexagon.L2.loadw.locked",
-  "llvm.hexagon.L4.loadd.locked",
-  "llvm.hexagon.M2.acci",
-  "llvm.hexagon.M2.accii",
-  "llvm.hexagon.M2.cmaci.s0",
-  "llvm.hexagon.M2.cmacr.s0",
-  "llvm.hexagon.M2.cmacs.s0",
-  "llvm.hexagon.M2.cmacs.s1",
-  "llvm.hexagon.M2.cmacsc.s0",
-  "llvm.hexagon.M2.cmacsc.s1",
-  "llvm.hexagon.M2.cmpyi.s0",
-  "llvm.hexagon.M2.cmpyr.s0",
-  "llvm.hexagon.M2.cmpyrs.s0",
-  "llvm.hexagon.M2.cmpyrs.s1",
-  "llvm.hexagon.M2.cmpyrsc.s0",
-  "llvm.hexagon.M2.cmpyrsc.s1",
-  "llvm.hexagon.M2.cmpys.s0",
-  "llvm.hexagon.M2.cmpys.s1",
-  "llvm.hexagon.M2.cmpysc.s0",
-  "llvm.hexagon.M2.cmpysc.s1",
-  "llvm.hexagon.M2.cnacs.s0",
-  "llvm.hexagon.M2.cnacs.s1",
-  "llvm.hexagon.M2.cnacsc.s0",
-  "llvm.hexagon.M2.cnacsc.s1",
-  "llvm.hexagon.M2.dpmpyss.acc.s0",
-  "llvm.hexagon.M2.dpmpyss.nac.s0",
-  "llvm.hexagon.M2.dpmpyss.rnd.s0",
-  "llvm.hexagon.M2.dpmpyss.s0",
-  "llvm.hexagon.M2.dpmpyuu.acc.s0",
-  "llvm.hexagon.M2.dpmpyuu.nac.s0",
-  "llvm.hexagon.M2.dpmpyuu.s0",
-  "llvm.hexagon.M2.hmmpyh.rs1",
-  "llvm.hexagon.M2.hmmpyh.s1",
-  "llvm.hexagon.M2.hmmpyl.rs1",
-  "llvm.hexagon.M2.hmmpyl.s1",
-  "llvm.hexagon.M2.maci",
-  "llvm.hexagon.M2.macsin",
-  "llvm.hexagon.M2.macsip",
-  "llvm.hexagon.M2.mmachs.rs0",
-  "llvm.hexagon.M2.mmachs.rs1",
-  "llvm.hexagon.M2.mmachs.s0",
-  "llvm.hexagon.M2.mmachs.s1",
-  "llvm.hexagon.M2.mmacls.rs0",
-  "llvm.hexagon.M2.mmacls.rs1",
-  "llvm.hexagon.M2.mmacls.s0",
-  "llvm.hexagon.M2.mmacls.s1",
-  "llvm.hexagon.M2.mmacuhs.rs0",
-  "llvm.hexagon.M2.mmacuhs.rs1",
-  "llvm.hexagon.M2.mmacuhs.s0",
-  "llvm.hexagon.M2.mmacuhs.s1",
-  "llvm.hexagon.M2.mmaculs.rs0",
-  "llvm.hexagon.M2.mmaculs.rs1",
-  "llvm.hexagon.M2.mmaculs.s0",
-  "llvm.hexagon.M2.mmaculs.s1",
-  "llvm.hexagon.M2.mmpyh.rs0",
-  "llvm.hexagon.M2.mmpyh.rs1",
-  "llvm.hexagon.M2.mmpyh.s0",
-  "llvm.hexagon.M2.mmpyh.s1",
-  "llvm.hexagon.M2.mmpyl.rs0",
-  "llvm.hexagon.M2.mmpyl.rs1",
-  "llvm.hexagon.M2.mmpyl.s0",
-  "llvm.hexagon.M2.mmpyl.s1",
-  "llvm.hexagon.M2.mmpyuh.rs0",
-  "llvm.hexagon.M2.mmpyuh.rs1",
-  "llvm.hexagon.M2.mmpyuh.s0",
-  "llvm.hexagon.M2.mmpyuh.s1",
-  "llvm.hexagon.M2.mmpyul.rs0",
-  "llvm.hexagon.M2.mmpyul.rs1",
-  "llvm.hexagon.M2.mmpyul.s0",
-  "llvm.hexagon.M2.mmpyul.s1",
-  "llvm.hexagon.M2.mpy.acc.hh.s0",
-  "llvm.hexagon.M2.mpy.acc.hh.s1",
-  "llvm.hexagon.M2.mpy.acc.hl.s0",
-  "llvm.hexagon.M2.mpy.acc.hl.s1",
-  "llvm.hexagon.M2.mpy.acc.lh.s0",
-  "llvm.hexagon.M2.mpy.acc.lh.s1",
-  "llvm.hexagon.M2.mpy.acc.ll.s0",
-  "llvm.hexagon.M2.mpy.acc.ll.s1",
-  "llvm.hexagon.M2.mpy.acc.sat.hh.s0",
-  "llvm.hexagon.M2.mpy.acc.sat.hh.s1",
-  "llvm.hexagon.M2.mpy.acc.sat.hl.s0",
-  "llvm.hexagon.M2.mpy.acc.sat.hl.s1",
-  "llvm.hexagon.M2.mpy.acc.sat.lh.s0",
-  "llvm.hexagon.M2.mpy.acc.sat.lh.s1",
-  "llvm.hexagon.M2.mpy.acc.sat.ll.s0",
-  "llvm.hexagon.M2.mpy.acc.sat.ll.s1",
-  "llvm.hexagon.M2.mpy.hh.s0",
-  "llvm.hexagon.M2.mpy.hh.s1",
-  "llvm.hexagon.M2.mpy.hl.s0",
-  "llvm.hexagon.M2.mpy.hl.s1",
-  "llvm.hexagon.M2.mpy.lh.s0",
-  "llvm.hexagon.M2.mpy.lh.s1",
-  "llvm.hexagon.M2.mpy.ll.s0",
-  "llvm.hexagon.M2.mpy.ll.s1",
-  "llvm.hexagon.M2.mpy.nac.hh.s0",
-  "llvm.hexagon.M2.mpy.nac.hh.s1",
-  "llvm.hexagon.M2.mpy.nac.hl.s0",
-  "llvm.hexagon.M2.mpy.nac.hl.s1",
-  "llvm.hexagon.M2.mpy.nac.lh.s0",
-  "llvm.hexagon.M2.mpy.nac.lh.s1",
-  "llvm.hexagon.M2.mpy.nac.ll.s0",
-  "llvm.hexagon.M2.mpy.nac.ll.s1",
-  "llvm.hexagon.M2.mpy.nac.sat.hh.s0",
-  "llvm.hexagon.M2.mpy.nac.sat.hh.s1",
-  "llvm.hexagon.M2.mpy.nac.sat.hl.s0",
-  "llvm.hexagon.M2.mpy.nac.sat.hl.s1",
-  "llvm.hexagon.M2.mpy.nac.sat.lh.s0",
-  "llvm.hexagon.M2.mpy.nac.sat.lh.s1",
-  "llvm.hexagon.M2.mpy.nac.sat.ll.s0",
-  "llvm.hexagon.M2.mpy.nac.sat.ll.s1",
-  "llvm.hexagon.M2.mpy.rnd.hh.s0",
-  "llvm.hexagon.M2.mpy.rnd.hh.s1",
-  "llvm.hexagon.M2.mpy.rnd.hl.s0",
-  "llvm.hexagon.M2.mpy.rnd.hl.s1",
-  "llvm.hexagon.M2.mpy.rnd.lh.s0",
-  "llvm.hexagon.M2.mpy.rnd.lh.s1",
-  "llvm.hexagon.M2.mpy.rnd.ll.s0",
-  "llvm.hexagon.M2.mpy.rnd.ll.s1",
-  "llvm.hexagon.M2.mpy.sat.hh.s0",
-  "llvm.hexagon.M2.mpy.sat.hh.s1",
-  "llvm.hexagon.M2.mpy.sat.hl.s0",
-  "llvm.hexagon.M2.mpy.sat.hl.s1",
-  "llvm.hexagon.M2.mpy.sat.lh.s0",
-  "llvm.hexagon.M2.mpy.sat.lh.s1",
-  "llvm.hexagon.M2.mpy.sat.ll.s0",
-  "llvm.hexagon.M2.mpy.sat.ll.s1",
-  "llvm.hexagon.M2.mpy.sat.rnd.hh.s0",
-  "llvm.hexagon.M2.mpy.sat.rnd.hh.s1",
-  "llvm.hexagon.M2.mpy.sat.rnd.hl.s0",
-  "llvm.hexagon.M2.mpy.sat.rnd.hl.s1",
-  "llvm.hexagon.M2.mpy.sat.rnd.lh.s0",
-  "llvm.hexagon.M2.mpy.sat.rnd.lh.s1",
-  "llvm.hexagon.M2.mpy.sat.rnd.ll.s0",
-  "llvm.hexagon.M2.mpy.sat.rnd.ll.s1",
-  "llvm.hexagon.M2.mpy.up",
-  "llvm.hexagon.M2.mpy.up.s1",
-  "llvm.hexagon.M2.mpy.up.s1.sat",
-  "llvm.hexagon.M2.mpyd.acc.hh.s0",
-  "llvm.hexagon.M2.mpyd.acc.hh.s1",
-  "llvm.hexagon.M2.mpyd.acc.hl.s0",
-  "llvm.hexagon.M2.mpyd.acc.hl.s1",
-  "llvm.hexagon.M2.mpyd.acc.lh.s0",
-  "llvm.hexagon.M2.mpyd.acc.lh.s1",
-  "llvm.hexagon.M2.mpyd.acc.ll.s0",
-  "llvm.hexagon.M2.mpyd.acc.ll.s1",
-  "llvm.hexagon.M2.mpyd.hh.s0",
-  "llvm.hexagon.M2.mpyd.hh.s1",
-  "llvm.hexagon.M2.mpyd.hl.s0",
-  "llvm.hexagon.M2.mpyd.hl.s1",
-  "llvm.hexagon.M2.mpyd.lh.s0",
-  "llvm.hexagon.M2.mpyd.lh.s1",
-  "llvm.hexagon.M2.mpyd.ll.s0",
-  "llvm.hexagon.M2.mpyd.ll.s1",
-  "llvm.hexagon.M2.mpyd.nac.hh.s0",
-  "llvm.hexagon.M2.mpyd.nac.hh.s1",
-  "llvm.hexagon.M2.mpyd.nac.hl.s0",
-  "llvm.hexagon.M2.mpyd.nac.hl.s1",
-  "llvm.hexagon.M2.mpyd.nac.lh.s0",
-  "llvm.hexagon.M2.mpyd.nac.lh.s1",
-  "llvm.hexagon.M2.mpyd.nac.ll.s0",
-  "llvm.hexagon.M2.mpyd.nac.ll.s1",
-  "llvm.hexagon.M2.mpyd.rnd.hh.s0",
-  "llvm.hexagon.M2.mpyd.rnd.hh.s1",
-  "llvm.hexagon.M2.mpyd.rnd.hl.s0",
-  "llvm.hexagon.M2.mpyd.rnd.hl.s1",
-  "llvm.hexagon.M2.mpyd.rnd.lh.s0",
-  "llvm.hexagon.M2.mpyd.rnd.lh.s1",
-  "llvm.hexagon.M2.mpyd.rnd.ll.s0",
-  "llvm.hexagon.M2.mpyd.rnd.ll.s1",
-  "llvm.hexagon.M2.mpyi",
-  "llvm.hexagon.M2.mpysmi",
-  "llvm.hexagon.M2.mpysu.up",
-  "llvm.hexagon.M2.mpyu.acc.hh.s0",
-  "llvm.hexagon.M2.mpyu.acc.hh.s1",
-  "llvm.hexagon.M2.mpyu.acc.hl.s0",
-  "llvm.hexagon.M2.mpyu.acc.hl.s1",
-  "llvm.hexagon.M2.mpyu.acc.lh.s0",
-  "llvm.hexagon.M2.mpyu.acc.lh.s1",
-  "llvm.hexagon.M2.mpyu.acc.ll.s0",
-  "llvm.hexagon.M2.mpyu.acc.ll.s1",
-  "llvm.hexagon.M2.mpyu.hh.s0",
-  "llvm.hexagon.M2.mpyu.hh.s1",
-  "llvm.hexagon.M2.mpyu.hl.s0",
-  "llvm.hexagon.M2.mpyu.hl.s1",
-  "llvm.hexagon.M2.mpyu.lh.s0",
-  "llvm.hexagon.M2.mpyu.lh.s1",
-  "llvm.hexagon.M2.mpyu.ll.s0",
-  "llvm.hexagon.M2.mpyu.ll.s1",
-  "llvm.hexagon.M2.mpyu.nac.hh.s0",
-  "llvm.hexagon.M2.mpyu.nac.hh.s1",
-  "llvm.hexagon.M2.mpyu.nac.hl.s0",
-  "llvm.hexagon.M2.mpyu.nac.hl.s1",
-  "llvm.hexagon.M2.mpyu.nac.lh.s0",
-  "llvm.hexagon.M2.mpyu.nac.lh.s1",
-  "llvm.hexagon.M2.mpyu.nac.ll.s0",
-  "llvm.hexagon.M2.mpyu.nac.ll.s1",
-  "llvm.hexagon.M2.mpyu.up",
-  "llvm.hexagon.M2.mpyud.acc.hh.s0",
-  "llvm.hexagon.M2.mpyud.acc.hh.s1",
-  "llvm.hexagon.M2.mpyud.acc.hl.s0",
-  "llvm.hexagon.M2.mpyud.acc.hl.s1",
-  "llvm.hexagon.M2.mpyud.acc.lh.s0",
-  "llvm.hexagon.M2.mpyud.acc.lh.s1",
-  "llvm.hexagon.M2.mpyud.acc.ll.s0",
-  "llvm.hexagon.M2.mpyud.acc.ll.s1",
-  "llvm.hexagon.M2.mpyud.hh.s0",
-  "llvm.hexagon.M2.mpyud.hh.s1",
-  "llvm.hexagon.M2.mpyud.hl.s0",
-  "llvm.hexagon.M2.mpyud.hl.s1",
-  "llvm.hexagon.M2.mpyud.lh.s0",
-  "llvm.hexagon.M2.mpyud.lh.s1",
-  "llvm.hexagon.M2.mpyud.ll.s0",
-  "llvm.hexagon.M2.mpyud.ll.s1",
-  "llvm.hexagon.M2.mpyud.nac.hh.s0",
-  "llvm.hexagon.M2.mpyud.nac.hh.s1",
-  "llvm.hexagon.M2.mpyud.nac.hl.s0",
-  "llvm.hexagon.M2.mpyud.nac.hl.s1",
-  "llvm.hexagon.M2.mpyud.nac.lh.s0",
-  "llvm.hexagon.M2.mpyud.nac.lh.s1",
-  "llvm.hexagon.M2.mpyud.nac.ll.s0",
-  "llvm.hexagon.M2.mpyud.nac.ll.s1",
-  "llvm.hexagon.M2.mpyui",
-  "llvm.hexagon.M2.nacci",
-  "llvm.hexagon.M2.naccii",
-  "llvm.hexagon.M2.subacc",
-  "llvm.hexagon.M2.vabsdiffh",
-  "llvm.hexagon.M2.vabsdiffw",
-  "llvm.hexagon.M2.vcmac.s0.sat.i",
-  "llvm.hexagon.M2.vcmac.s0.sat.r",
-  "llvm.hexagon.M2.vcmpy.s0.sat.i",
-  "llvm.hexagon.M2.vcmpy.s0.sat.r",
-  "llvm.hexagon.M2.vcmpy.s1.sat.i",
-  "llvm.hexagon.M2.vcmpy.s1.sat.r",
-  "llvm.hexagon.M2.vdmacs.s0",
-  "llvm.hexagon.M2.vdmacs.s1",
-  "llvm.hexagon.M2.vdmpyrs.s0",
-  "llvm.hexagon.M2.vdmpyrs.s1",
-  "llvm.hexagon.M2.vdmpys.s0",
-  "llvm.hexagon.M2.vdmpys.s1",
-  "llvm.hexagon.M2.vmac2",
-  "llvm.hexagon.M2.vmac2es",
-  "llvm.hexagon.M2.vmac2es.s0",
-  "llvm.hexagon.M2.vmac2es.s1",
-  "llvm.hexagon.M2.vmac2s.s0",
-  "llvm.hexagon.M2.vmac2s.s1",
-  "llvm.hexagon.M2.vmac2su.s0",
-  "llvm.hexagon.M2.vmac2su.s1",
-  "llvm.hexagon.M2.vmpy2es.s0",
-  "llvm.hexagon.M2.vmpy2es.s1",
-  "llvm.hexagon.M2.vmpy2s.s0",
-  "llvm.hexagon.M2.vmpy2s.s0pack",
-  "llvm.hexagon.M2.vmpy2s.s1",
-  "llvm.hexagon.M2.vmpy2s.s1pack",
-  "llvm.hexagon.M2.vmpy2su.s0",
-  "llvm.hexagon.M2.vmpy2su.s1",
-  "llvm.hexagon.M2.vraddh",
-  "llvm.hexagon.M2.vradduh",
-  "llvm.hexagon.M2.vrcmaci.s0",
-  "llvm.hexagon.M2.vrcmaci.s0c",
-  "llvm.hexagon.M2.vrcmacr.s0",
-  "llvm.hexagon.M2.vrcmacr.s0c",
-  "llvm.hexagon.M2.vrcmpyi.s0",
-  "llvm.hexagon.M2.vrcmpyi.s0c",
-  "llvm.hexagon.M2.vrcmpyr.s0",
-  "llvm.hexagon.M2.vrcmpyr.s0c",
-  "llvm.hexagon.M2.vrcmpys.acc.s1",
-  "llvm.hexagon.M2.vrcmpys.s1",
-  "llvm.hexagon.M2.vrcmpys.s1rp",
-  "llvm.hexagon.M2.vrmac.s0",
-  "llvm.hexagon.M2.vrmpy.s0",
-  "llvm.hexagon.M2.xor.xacc",
-  "llvm.hexagon.M4.and.and",
-  "llvm.hexagon.M4.and.andn",
-  "llvm.hexagon.M4.and.or",
-  "llvm.hexagon.M4.and.xor",
-  "llvm.hexagon.M4.cmpyi.wh",
-  "llvm.hexagon.M4.cmpyi.whc",
-  "llvm.hexagon.M4.cmpyr.wh",
-  "llvm.hexagon.M4.cmpyr.whc",
-  "llvm.hexagon.M4.mac.up.s1.sat",
-  "llvm.hexagon.M4.mpyri.addi",
-  "llvm.hexagon.M4.mpyri.addr",
-  "llvm.hexagon.M4.mpyri.addr.u2",
-  "llvm.hexagon.M4.mpyrr.addi",
-  "llvm.hexagon.M4.mpyrr.addr",
-  "llvm.hexagon.M4.nac.up.s1.sat",
-  "llvm.hexagon.M4.or.and",
-  "llvm.hexagon.M4.or.andn",
-  "llvm.hexagon.M4.or.or",
-  "llvm.hexagon.M4.or.xor",
-  "llvm.hexagon.M4.pmpyw",
-  "llvm.hexagon.M4.pmpyw.acc",
-  "llvm.hexagon.M4.vpmpyh",
-  "llvm.hexagon.M4.vpmpyh.acc",
-  "llvm.hexagon.M4.vrmpyeh.acc.s0",
-  "llvm.hexagon.M4.vrmpyeh.acc.s1",
-  "llvm.hexagon.M4.vrmpyeh.s0",
-  "llvm.hexagon.M4.vrmpyeh.s1",
-  "llvm.hexagon.M4.vrmpyoh.acc.s0",
-  "llvm.hexagon.M4.vrmpyoh.acc.s1",
-  "llvm.hexagon.M4.vrmpyoh.s0",
-  "llvm.hexagon.M4.vrmpyoh.s1",
-  "llvm.hexagon.M4.xor.and",
-  "llvm.hexagon.M4.xor.andn",
-  "llvm.hexagon.M4.xor.or",
-  "llvm.hexagon.M4.xor.xacc",
-  "llvm.hexagon.M5.vdmacbsu",
-  "llvm.hexagon.M5.vdmpybsu",
-  "llvm.hexagon.M5.vmacbsu",
-  "llvm.hexagon.M5.vmacbuu",
-  "llvm.hexagon.M5.vmpybsu",
-  "llvm.hexagon.M5.vmpybuu",
-  "llvm.hexagon.M5.vrmacbsu",
-  "llvm.hexagon.M5.vrmacbuu",
-  "llvm.hexagon.M5.vrmpybsu",
-  "llvm.hexagon.M5.vrmpybuu",
-  "llvm.hexagon.M6.vabsdiffb",
-  "llvm.hexagon.M6.vabsdiffub",
-  "llvm.hexagon.S2.addasl.rrri",
-  "llvm.hexagon.S2.asl.i.p",
-  "llvm.hexagon.S2.asl.i.p.acc",
-  "llvm.hexagon.S2.asl.i.p.and",
-  "llvm.hexagon.S2.asl.i.p.nac",
-  "llvm.hexagon.S2.asl.i.p.or",
-  "llvm.hexagon.S2.asl.i.p.xacc",
-  "llvm.hexagon.S2.asl.i.r",
-  "llvm.hexagon.S2.asl.i.r.acc",
-  "llvm.hexagon.S2.asl.i.r.and",
-  "llvm.hexagon.S2.asl.i.r.nac",
-  "llvm.hexagon.S2.asl.i.r.or",
-  "llvm.hexagon.S2.asl.i.r.sat",
-  "llvm.hexagon.S2.asl.i.r.xacc",
-  "llvm.hexagon.S2.asl.i.vh",
-  "llvm.hexagon.S2.asl.i.vw",
-  "llvm.hexagon.S2.asl.r.p",
-  "llvm.hexagon.S2.asl.r.p.acc",
-  "llvm.hexagon.S2.asl.r.p.and",
-  "llvm.hexagon.S2.asl.r.p.nac",
-  "llvm.hexagon.S2.asl.r.p.or",
-  "llvm.hexagon.S2.asl.r.p.xor",
-  "llvm.hexagon.S2.asl.r.r",
-  "llvm.hexagon.S2.asl.r.r.acc",
-  "llvm.hexagon.S2.asl.r.r.and",
-  "llvm.hexagon.S2.asl.r.r.nac",
-  "llvm.hexagon.S2.asl.r.r.or",
-  "llvm.hexagon.S2.asl.r.r.sat",
-  "llvm.hexagon.S2.asl.r.vh",
-  "llvm.hexagon.S2.asl.r.vw",
-  "llvm.hexagon.S2.asr.i.p",
-  "llvm.hexagon.S2.asr.i.p.acc",
-  "llvm.hexagon.S2.asr.i.p.and",
-  "llvm.hexagon.S2.asr.i.p.nac",
-  "llvm.hexagon.S2.asr.i.p.or",
-  "llvm.hexagon.S2.asr.i.p.rnd",
-  "llvm.hexagon.S2.asr.i.p.rnd.goodsyntax",
-  "llvm.hexagon.S2.asr.i.r",
-  "llvm.hexagon.S2.asr.i.r.acc",
-  "llvm.hexagon.S2.asr.i.r.and",
-  "llvm.hexagon.S2.asr.i.r.nac",
-  "llvm.hexagon.S2.asr.i.r.or",
-  "llvm.hexagon.S2.asr.i.r.rnd",
-  "llvm.hexagon.S2.asr.i.r.rnd.goodsyntax",
-  "llvm.hexagon.S2.asr.i.svw.trun",
-  "llvm.hexagon.S2.asr.i.vh",
-  "llvm.hexagon.S2.asr.i.vw",
-  "llvm.hexagon.S2.asr.r.p",
-  "llvm.hexagon.S2.asr.r.p.acc",
-  "llvm.hexagon.S2.asr.r.p.and",
-  "llvm.hexagon.S2.asr.r.p.nac",
-  "llvm.hexagon.S2.asr.r.p.or",
-  "llvm.hexagon.S2.asr.r.p.xor",
-  "llvm.hexagon.S2.asr.r.r",
-  "llvm.hexagon.S2.asr.r.r.acc",
-  "llvm.hexagon.S2.asr.r.r.and",
-  "llvm.hexagon.S2.asr.r.r.nac",
-  "llvm.hexagon.S2.asr.r.r.or",
-  "llvm.hexagon.S2.asr.r.r.sat",
-  "llvm.hexagon.S2.asr.r.svw.trun",
-  "llvm.hexagon.S2.asr.r.vh",
-  "llvm.hexagon.S2.asr.r.vw",
-  "llvm.hexagon.S2.brev",
-  "llvm.hexagon.S2.brevp",
-  "llvm.hexagon.S2.cabacencbin",
-  "llvm.hexagon.S2.cl0",
-  "llvm.hexagon.S2.cl0p",
-  "llvm.hexagon.S2.cl1",
-  "llvm.hexagon.S2.cl1p",
-  "llvm.hexagon.S2.clb",
-  "llvm.hexagon.S2.clbnorm",
-  "llvm.hexagon.S2.clbp",
-  "llvm.hexagon.S2.clrbit.i",
-  "llvm.hexagon.S2.clrbit.r",
-  "llvm.hexagon.S2.ct0",
-  "llvm.hexagon.S2.ct0p",
-  "llvm.hexagon.S2.ct1",
-  "llvm.hexagon.S2.ct1p",
-  "llvm.hexagon.S2.deinterleave",
-  "llvm.hexagon.S2.extractu",
-  "llvm.hexagon.S2.extractu.rp",
-  "llvm.hexagon.S2.extractup",
-  "llvm.hexagon.S2.extractup.rp",
-  "llvm.hexagon.S2.insert",
-  "llvm.hexagon.S2.insert.rp",
-  "llvm.hexagon.S2.insertp",
-  "llvm.hexagon.S2.insertp.rp",
-  "llvm.hexagon.S2.interleave",
-  "llvm.hexagon.S2.lfsp",
-  "llvm.hexagon.S2.lsl.r.p",
-  "llvm.hexagon.S2.lsl.r.p.acc",
-  "llvm.hexagon.S2.lsl.r.p.and",
-  "llvm.hexagon.S2.lsl.r.p.nac",
-  "llvm.hexagon.S2.lsl.r.p.or",
-  "llvm.hexagon.S2.lsl.r.p.xor",
-  "llvm.hexagon.S2.lsl.r.r",
-  "llvm.hexagon.S2.lsl.r.r.acc",
-  "llvm.hexagon.S2.lsl.r.r.and",
-  "llvm.hexagon.S2.lsl.r.r.nac",
-  "llvm.hexagon.S2.lsl.r.r.or",
-  "llvm.hexagon.S2.lsl.r.vh",
-  "llvm.hexagon.S2.lsl.r.vw",
-  "llvm.hexagon.S2.lsr.i.p",
-  "llvm.hexagon.S2.lsr.i.p.acc",
-  "llvm.hexagon.S2.lsr.i.p.and",
-  "llvm.hexagon.S2.lsr.i.p.nac",
-  "llvm.hexagon.S2.lsr.i.p.or",
-  "llvm.hexagon.S2.lsr.i.p.xacc",
-  "llvm.hexagon.S2.lsr.i.r",
-  "llvm.hexagon.S2.lsr.i.r.acc",
-  "llvm.hexagon.S2.lsr.i.r.and",
-  "llvm.hexagon.S2.lsr.i.r.nac",
-  "llvm.hexagon.S2.lsr.i.r.or",
-  "llvm.hexagon.S2.lsr.i.r.xacc",
-  "llvm.hexagon.S2.lsr.i.vh",
-  "llvm.hexagon.S2.lsr.i.vw",
-  "llvm.hexagon.S2.lsr.r.p",
-  "llvm.hexagon.S2.lsr.r.p.acc",
-  "llvm.hexagon.S2.lsr.r.p.and",
-  "llvm.hexagon.S2.lsr.r.p.nac",
-  "llvm.hexagon.S2.lsr.r.p.or",
-  "llvm.hexagon.S2.lsr.r.p.xor",
-  "llvm.hexagon.S2.lsr.r.r",
-  "llvm.hexagon.S2.lsr.r.r.acc",
-  "llvm.hexagon.S2.lsr.r.r.and",
-  "llvm.hexagon.S2.lsr.r.r.nac",
-  "llvm.hexagon.S2.lsr.r.r.or",
-  "llvm.hexagon.S2.lsr.r.vh",
-  "llvm.hexagon.S2.lsr.r.vw",
-  "llvm.hexagon.S2.packhl",
-  "llvm.hexagon.S2.parityp",
-  "llvm.hexagon.S2.setbit.i",
-  "llvm.hexagon.S2.setbit.r",
-  "llvm.hexagon.S2.shuffeb",
-  "llvm.hexagon.S2.shuffeh",
-  "llvm.hexagon.S2.shuffob",
-  "llvm.hexagon.S2.shuffoh",
-  "llvm.hexagon.S2.storerb.pbr",
-  "llvm.hexagon.S2.storerb.pci",
-  "llvm.hexagon.S2.storerb.pcr",
-  "llvm.hexagon.S2.storerd.pbr",
-  "llvm.hexagon.S2.storerd.pci",
-  "llvm.hexagon.S2.storerd.pcr",
-  "llvm.hexagon.S2.storerf.pbr",
-  "llvm.hexagon.S2.storerf.pci",
-  "llvm.hexagon.S2.storerf.pcr",
-  "llvm.hexagon.S2.storerh.pbr",
-  "llvm.hexagon.S2.storerh.pci",
-  "llvm.hexagon.S2.storerh.pcr",
-  "llvm.hexagon.S2.storeri.pbr",
-  "llvm.hexagon.S2.storeri.pci",
-  "llvm.hexagon.S2.storeri.pcr",
-  "llvm.hexagon.S2.storew.locked",
-  "llvm.hexagon.S2.svsathb",
-  "llvm.hexagon.S2.svsathub",
-  "llvm.hexagon.S2.tableidxb.goodsyntax",
-  "llvm.hexagon.S2.tableidxd.goodsyntax",
-  "llvm.hexagon.S2.tableidxh.goodsyntax",
-  "llvm.hexagon.S2.tableidxw.goodsyntax",
-  "llvm.hexagon.S2.togglebit.i",
-  "llvm.hexagon.S2.togglebit.r",
-  "llvm.hexagon.S2.tstbit.i",
-  "llvm.hexagon.S2.tstbit.r",
-  "llvm.hexagon.S2.valignib",
-  "llvm.hexagon.S2.valignrb",
-  "llvm.hexagon.S2.vcnegh",
-  "llvm.hexagon.S2.vcrotate",
-  "llvm.hexagon.S2.vrcnegh",
-  "llvm.hexagon.S2.vrndpackwh",
-  "llvm.hexagon.S2.vrndpackwhs",
-  "llvm.hexagon.S2.vsathb",
-  "llvm.hexagon.S2.vsathb.nopack",
-  "llvm.hexagon.S2.vsathub",
-  "llvm.hexagon.S2.vsathub.nopack",
-  "llvm.hexagon.S2.vsatwh",
-  "llvm.hexagon.S2.vsatwh.nopack",
-  "llvm.hexagon.S2.vsatwuh",
-  "llvm.hexagon.S2.vsatwuh.nopack",
-  "llvm.hexagon.S2.vsplatrb",
-  "llvm.hexagon.S2.vsplatrh",
-  "llvm.hexagon.S2.vspliceib",
-  "llvm.hexagon.S2.vsplicerb",
-  "llvm.hexagon.S2.vsxtbh",
-  "llvm.hexagon.S2.vsxthw",
-  "llvm.hexagon.S2.vtrunehb",
-  "llvm.hexagon.S2.vtrunewh",
-  "llvm.hexagon.S2.vtrunohb",
-  "llvm.hexagon.S2.vtrunowh",
-  "llvm.hexagon.S2.vzxtbh",
-  "llvm.hexagon.S2.vzxthw",
-  "llvm.hexagon.S4.addaddi",
-  "llvm.hexagon.S4.addi.asl.ri",
-  "llvm.hexagon.S4.addi.lsr.ri",
-  "llvm.hexagon.S4.andi.asl.ri",
-  "llvm.hexagon.S4.andi.lsr.ri",
-  "llvm.hexagon.S4.clbaddi",
-  "llvm.hexagon.S4.clbpaddi",
-  "llvm.hexagon.S4.clbpnorm",
-  "llvm.hexagon.S4.extract",
-  "llvm.hexagon.S4.extract.rp",
-  "llvm.hexagon.S4.extractp",
-  "llvm.hexagon.S4.extractp.rp",
-  "llvm.hexagon.S4.lsli",
-  "llvm.hexagon.S4.ntstbit.i",
-  "llvm.hexagon.S4.ntstbit.r",
-  "llvm.hexagon.S4.or.andi",
-  "llvm.hexagon.S4.or.andix",
-  "llvm.hexagon.S4.or.ori",
-  "llvm.hexagon.S4.ori.asl.ri",
-  "llvm.hexagon.S4.ori.lsr.ri",
-  "llvm.hexagon.S4.parity",
-  "llvm.hexagon.S4.stored.locked",
-  "llvm.hexagon.S4.subaddi",
-  "llvm.hexagon.S4.subi.asl.ri",
-  "llvm.hexagon.S4.subi.lsr.ri",
-  "llvm.hexagon.S4.vrcrotate",
-  "llvm.hexagon.S4.vrcrotate.acc",
-  "llvm.hexagon.S4.vxaddsubh",
-  "llvm.hexagon.S4.vxaddsubhr",
-  "llvm.hexagon.S4.vxaddsubw",
-  "llvm.hexagon.S4.vxsubaddh",
-  "llvm.hexagon.S4.vxsubaddhr",
-  "llvm.hexagon.S4.vxsubaddw",
-  "llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax",
-  "llvm.hexagon.S5.asrhub.sat",
-  "llvm.hexagon.S5.popcountp",
-  "llvm.hexagon.S5.vasrhrnd.goodsyntax",
-  "llvm.hexagon.S6.rol.i.p",
-  "llvm.hexagon.S6.rol.i.p.acc",
-  "llvm.hexagon.S6.rol.i.p.and",
-  "llvm.hexagon.S6.rol.i.p.nac",
-  "llvm.hexagon.S6.rol.i.p.or",
-  "llvm.hexagon.S6.rol.i.p.xacc",
-  "llvm.hexagon.S6.rol.i.r",
-  "llvm.hexagon.S6.rol.i.r.acc",
-  "llvm.hexagon.S6.rol.i.r.and",
-  "llvm.hexagon.S6.rol.i.r.nac",
-  "llvm.hexagon.S6.rol.i.r.or",
-  "llvm.hexagon.S6.rol.i.r.xacc",
-  "llvm.hexagon.S6.vsplatrbp",
-  "llvm.hexagon.S6.vtrunehb.ppp",
-  "llvm.hexagon.S6.vtrunohb.ppp",
-  "llvm.hexagon.V6.extractw",
-  "llvm.hexagon.V6.extractw.128B",
-  "llvm.hexagon.V6.hi",
-  "llvm.hexagon.V6.hi.128B",
-  "llvm.hexagon.V6.lo",
-  "llvm.hexagon.V6.lo.128B",
-  "llvm.hexagon.V6.lvsplatb",
-  "llvm.hexagon.V6.lvsplatb.128B",
-  "llvm.hexagon.V6.lvsplath",
-  "llvm.hexagon.V6.lvsplath.128B",
-  "llvm.hexagon.V6.lvsplatw",
-  "llvm.hexagon.V6.lvsplatw.128B",
-  "llvm.hexagon.V6.pred.and",
-  "llvm.hexagon.V6.pred.and.128B",
-  "llvm.hexagon.V6.pred.and.n",
-  "llvm.hexagon.V6.pred.and.n.128B",
-  "llvm.hexagon.V6.pred.not",
-  "llvm.hexagon.V6.pred.not.128B",
-  "llvm.hexagon.V6.pred.or",
-  "llvm.hexagon.V6.pred.or.128B",
-  "llvm.hexagon.V6.pred.or.n",
-  "llvm.hexagon.V6.pred.or.n.128B",
-  "llvm.hexagon.V6.pred.scalar2",
-  "llvm.hexagon.V6.pred.scalar2.128B",
-  "llvm.hexagon.V6.pred.scalar2v2",
-  "llvm.hexagon.V6.pred.scalar2v2.128B",
-  "llvm.hexagon.V6.pred.xor",
-  "llvm.hexagon.V6.pred.xor.128B",
-  "llvm.hexagon.V6.shuffeqh",
-  "llvm.hexagon.V6.shuffeqh.128B",
-  "llvm.hexagon.V6.shuffeqw",
-  "llvm.hexagon.V6.shuffeqw.128B",
-  "llvm.hexagon.V6.vS32b.nqpred.ai",
-  "llvm.hexagon.V6.vS32b.nqpred.ai.128B",
-  "llvm.hexagon.V6.vS32b.nt.nqpred.ai",
-  "llvm.hexagon.V6.vS32b.nt.nqpred.ai.128B",
-  "llvm.hexagon.V6.vS32b.nt.qpred.ai",
-  "llvm.hexagon.V6.vS32b.nt.qpred.ai.128B",
-  "llvm.hexagon.V6.vS32b.qpred.ai",
-  "llvm.hexagon.V6.vS32b.qpred.ai.128B",
-  "llvm.hexagon.V6.vabsb",
-  "llvm.hexagon.V6.vabsb.128B",
-  "llvm.hexagon.V6.vabsb.sat",
-  "llvm.hexagon.V6.vabsb.sat.128B",
-  "llvm.hexagon.V6.vabsdiffh",
-  "llvm.hexagon.V6.vabsdiffh.128B",
-  "llvm.hexagon.V6.vabsdiffub",
-  "llvm.hexagon.V6.vabsdiffub.128B",
-  "llvm.hexagon.V6.vabsdiffuh",
-  "llvm.hexagon.V6.vabsdiffuh.128B",
-  "llvm.hexagon.V6.vabsdiffw",
-  "llvm.hexagon.V6.vabsdiffw.128B",
-  "llvm.hexagon.V6.vabsh",
-  "llvm.hexagon.V6.vabsh.128B",
-  "llvm.hexagon.V6.vabsh.sat",
-  "llvm.hexagon.V6.vabsh.sat.128B",
-  "llvm.hexagon.V6.vabsw",
-  "llvm.hexagon.V6.vabsw.128B",
-  "llvm.hexagon.V6.vabsw.sat",
-  "llvm.hexagon.V6.vabsw.sat.128B",
-  "llvm.hexagon.V6.vaddb",
-  "llvm.hexagon.V6.vaddb.128B",
-  "llvm.hexagon.V6.vaddb.dv",
-  "llvm.hexagon.V6.vaddb.dv.128B",
-  "llvm.hexagon.V6.vaddbnq",
-  "llvm.hexagon.V6.vaddbnq.128B",
-  "llvm.hexagon.V6.vaddbq",
-  "llvm.hexagon.V6.vaddbq.128B",
-  "llvm.hexagon.V6.vaddbsat",
-  "llvm.hexagon.V6.vaddbsat.128B",
-  "llvm.hexagon.V6.vaddbsat.dv",
-  "llvm.hexagon.V6.vaddbsat.dv.128B",
-  "llvm.hexagon.V6.vaddcarry",
-  "llvm.hexagon.V6.vaddcarry.128B",
-  "llvm.hexagon.V6.vaddclbh",
-  "llvm.hexagon.V6.vaddclbh.128B",
-  "llvm.hexagon.V6.vaddclbw",
-  "llvm.hexagon.V6.vaddclbw.128B",
-  "llvm.hexagon.V6.vaddh",
-  "llvm.hexagon.V6.vaddh.128B",
-  "llvm.hexagon.V6.vaddh.dv",
-  "llvm.hexagon.V6.vaddh.dv.128B",
-  "llvm.hexagon.V6.vaddhnq",
-  "llvm.hexagon.V6.vaddhnq.128B",
-  "llvm.hexagon.V6.vaddhq",
-  "llvm.hexagon.V6.vaddhq.128B",
-  "llvm.hexagon.V6.vaddhsat",
-  "llvm.hexagon.V6.vaddhsat.128B",
-  "llvm.hexagon.V6.vaddhsat.dv",
-  "llvm.hexagon.V6.vaddhsat.dv.128B",
-  "llvm.hexagon.V6.vaddhw",
-  "llvm.hexagon.V6.vaddhw.128B",
-  "llvm.hexagon.V6.vaddhw.acc",
-  "llvm.hexagon.V6.vaddhw.acc.128B",
-  "llvm.hexagon.V6.vaddubh",
-  "llvm.hexagon.V6.vaddubh.128B",
-  "llvm.hexagon.V6.vaddubh.acc",
-  "llvm.hexagon.V6.vaddubh.acc.128B",
-  "llvm.hexagon.V6.vaddubsat",
-  "llvm.hexagon.V6.vaddubsat.128B",
-  "llvm.hexagon.V6.vaddubsat.dv",
-  "llvm.hexagon.V6.vaddubsat.dv.128B",
-  "llvm.hexagon.V6.vaddububb.sat",
-  "llvm.hexagon.V6.vaddububb.sat.128B",
-  "llvm.hexagon.V6.vadduhsat",
-  "llvm.hexagon.V6.vadduhsat.128B",
-  "llvm.hexagon.V6.vadduhsat.dv",
-  "llvm.hexagon.V6.vadduhsat.dv.128B",
-  "llvm.hexagon.V6.vadduhw",
-  "llvm.hexagon.V6.vadduhw.128B",
-  "llvm.hexagon.V6.vadduhw.acc",
-  "llvm.hexagon.V6.vadduhw.acc.128B",
-  "llvm.hexagon.V6.vadduwsat",
-  "llvm.hexagon.V6.vadduwsat.128B",
-  "llvm.hexagon.V6.vadduwsat.dv",
-  "llvm.hexagon.V6.vadduwsat.dv.128B",
-  "llvm.hexagon.V6.vaddw",
-  "llvm.hexagon.V6.vaddw.128B",
-  "llvm.hexagon.V6.vaddw.dv",
-  "llvm.hexagon.V6.vaddw.dv.128B",
-  "llvm.hexagon.V6.vaddwnq",
-  "llvm.hexagon.V6.vaddwnq.128B",
-  "llvm.hexagon.V6.vaddwq",
-  "llvm.hexagon.V6.vaddwq.128B",
-  "llvm.hexagon.V6.vaddwsat",
-  "llvm.hexagon.V6.vaddwsat.128B",
-  "llvm.hexagon.V6.vaddwsat.dv",
-  "llvm.hexagon.V6.vaddwsat.dv.128B",
-  "llvm.hexagon.V6.valignb",
-  "llvm.hexagon.V6.valignb.128B",
-  "llvm.hexagon.V6.valignbi",
-  "llvm.hexagon.V6.valignbi.128B",
-  "llvm.hexagon.V6.vand",
-  "llvm.hexagon.V6.vand.128B",
-  "llvm.hexagon.V6.vandnqrt",
-  "llvm.hexagon.V6.vandnqrt.128B",
-  "llvm.hexagon.V6.vandnqrt.acc",
-  "llvm.hexagon.V6.vandnqrt.acc.128B",
-  "llvm.hexagon.V6.vandqrt",
-  "llvm.hexagon.V6.vandqrt.128B",
-  "llvm.hexagon.V6.vandqrt.acc",
-  "llvm.hexagon.V6.vandqrt.acc.128B",
-  "llvm.hexagon.V6.vandvnqv",
-  "llvm.hexagon.V6.vandvnqv.128B",
-  "llvm.hexagon.V6.vandvqv",
-  "llvm.hexagon.V6.vandvqv.128B",
-  "llvm.hexagon.V6.vandvrt",
-  "llvm.hexagon.V6.vandvrt.128B",
-  "llvm.hexagon.V6.vandvrt.acc",
-  "llvm.hexagon.V6.vandvrt.acc.128B",
-  "llvm.hexagon.V6.vaslh",
-  "llvm.hexagon.V6.vaslh.128B",
-  "llvm.hexagon.V6.vaslh.acc",
-  "llvm.hexagon.V6.vaslh.acc.128B",
-  "llvm.hexagon.V6.vaslhv",
-  "llvm.hexagon.V6.vaslhv.128B",
-  "llvm.hexagon.V6.vaslw",
-  "llvm.hexagon.V6.vaslw.128B",
-  "llvm.hexagon.V6.vaslw.acc",
-  "llvm.hexagon.V6.vaslw.acc.128B",
-  "llvm.hexagon.V6.vaslwv",
-  "llvm.hexagon.V6.vaslwv.128B",
-  "llvm.hexagon.V6.vasrh",
-  "llvm.hexagon.V6.vasrh.128B",
-  "llvm.hexagon.V6.vasrh.acc",
-  "llvm.hexagon.V6.vasrh.acc.128B",
-  "llvm.hexagon.V6.vasrhbrndsat",
-  "llvm.hexagon.V6.vasrhbrndsat.128B",
-  "llvm.hexagon.V6.vasrhbsat",
-  "llvm.hexagon.V6.vasrhbsat.128B",
-  "llvm.hexagon.V6.vasrhubrndsat",
-  "llvm.hexagon.V6.vasrhubrndsat.128B",
-  "llvm.hexagon.V6.vasrhubsat",
-  "llvm.hexagon.V6.vasrhubsat.128B",
-  "llvm.hexagon.V6.vasrhv",
-  "llvm.hexagon.V6.vasrhv.128B",
-  "llvm.hexagon.V6.vasruhubrndsat",
-  "llvm.hexagon.V6.vasruhubrndsat.128B",
-  "llvm.hexagon.V6.vasruhubsat",
-  "llvm.hexagon.V6.vasruhubsat.128B",
-  "llvm.hexagon.V6.vasruwuhrndsat",
-  "llvm.hexagon.V6.vasruwuhrndsat.128B",
-  "llvm.hexagon.V6.vasruwuhsat",
-  "llvm.hexagon.V6.vasruwuhsat.128B",
-  "llvm.hexagon.V6.vasrw",
-  "llvm.hexagon.V6.vasrw.128B",
-  "llvm.hexagon.V6.vasrw.acc",
-  "llvm.hexagon.V6.vasrw.acc.128B",
-  "llvm.hexagon.V6.vasrwh",
-  "llvm.hexagon.V6.vasrwh.128B",
-  "llvm.hexagon.V6.vasrwhrndsat",
-  "llvm.hexagon.V6.vasrwhrndsat.128B",
-  "llvm.hexagon.V6.vasrwhsat",
-  "llvm.hexagon.V6.vasrwhsat.128B",
-  "llvm.hexagon.V6.vasrwuhrndsat",
-  "llvm.hexagon.V6.vasrwuhrndsat.128B",
-  "llvm.hexagon.V6.vasrwuhsat",
-  "llvm.hexagon.V6.vasrwuhsat.128B",
-  "llvm.hexagon.V6.vasrwv",
-  "llvm.hexagon.V6.vasrwv.128B",
-  "llvm.hexagon.V6.vassign",
-  "llvm.hexagon.V6.vassign.128B",
-  "llvm.hexagon.V6.vassignp",
-  "llvm.hexagon.V6.vassignp.128B",
-  "llvm.hexagon.V6.vavgb",
-  "llvm.hexagon.V6.vavgb.128B",
-  "llvm.hexagon.V6.vavgbrnd",
-  "llvm.hexagon.V6.vavgbrnd.128B",
-  "llvm.hexagon.V6.vavgh",
-  "llvm.hexagon.V6.vavgh.128B",
-  "llvm.hexagon.V6.vavghrnd",
-  "llvm.hexagon.V6.vavghrnd.128B",
-  "llvm.hexagon.V6.vavgub",
-  "llvm.hexagon.V6.vavgub.128B",
-  "llvm.hexagon.V6.vavgubrnd",
-  "llvm.hexagon.V6.vavgubrnd.128B",
-  "llvm.hexagon.V6.vavguh",
-  "llvm.hexagon.V6.vavguh.128B",
-  "llvm.hexagon.V6.vavguhrnd",
-  "llvm.hexagon.V6.vavguhrnd.128B",
-  "llvm.hexagon.V6.vavguw",
-  "llvm.hexagon.V6.vavguw.128B",
-  "llvm.hexagon.V6.vavguwrnd",
-  "llvm.hexagon.V6.vavguwrnd.128B",
-  "llvm.hexagon.V6.vavgw",
-  "llvm.hexagon.V6.vavgw.128B",
-  "llvm.hexagon.V6.vavgwrnd",
-  "llvm.hexagon.V6.vavgwrnd.128B",
-  "llvm.hexagon.V6.vcl0h",
-  "llvm.hexagon.V6.vcl0h.128B",
-  "llvm.hexagon.V6.vcl0w",
-  "llvm.hexagon.V6.vcl0w.128B",
-  "llvm.hexagon.V6.vcombine",
-  "llvm.hexagon.V6.vcombine.128B",
-  "llvm.hexagon.V6.vd0",
-  "llvm.hexagon.V6.vd0.128B",
-  "llvm.hexagon.V6.vdd0",
-  "llvm.hexagon.V6.vdd0.128B",
-  "llvm.hexagon.V6.vdealb",
-  "llvm.hexagon.V6.vdealb.128B",
-  "llvm.hexagon.V6.vdealb4w",
-  "llvm.hexagon.V6.vdealb4w.128B",
-  "llvm.hexagon.V6.vdealh",
-  "llvm.hexagon.V6.vdealh.128B",
-  "llvm.hexagon.V6.vdealvdd",
-  "llvm.hexagon.V6.vdealvdd.128B",
-  "llvm.hexagon.V6.vdelta",
-  "llvm.hexagon.V6.vdelta.128B",
-  "llvm.hexagon.V6.vdmpybus",
-  "llvm.hexagon.V6.vdmpybus.128B",
-  "llvm.hexagon.V6.vdmpybus.acc",
-  "llvm.hexagon.V6.vdmpybus.acc.128B",
-  "llvm.hexagon.V6.vdmpybus.dv",
-  "llvm.hexagon.V6.vdmpybus.dv.128B",
-  "llvm.hexagon.V6.vdmpybus.dv.acc",
-  "llvm.hexagon.V6.vdmpybus.dv.acc.128B",
-  "llvm.hexagon.V6.vdmpyhb",
-  "llvm.hexagon.V6.vdmpyhb.128B",
-  "llvm.hexagon.V6.vdmpyhb.acc",
-  "llvm.hexagon.V6.vdmpyhb.acc.128B",
-  "llvm.hexagon.V6.vdmpyhb.dv",
-  "llvm.hexagon.V6.vdmpyhb.dv.128B",
-  "llvm.hexagon.V6.vdmpyhb.dv.acc",
-  "llvm.hexagon.V6.vdmpyhb.dv.acc.128B",
-  "llvm.hexagon.V6.vdmpyhisat",
-  "llvm.hexagon.V6.vdmpyhisat.128B",
-  "llvm.hexagon.V6.vdmpyhisat.acc",
-  "llvm.hexagon.V6.vdmpyhisat.acc.128B",
-  "llvm.hexagon.V6.vdmpyhsat",
-  "llvm.hexagon.V6.vdmpyhsat.128B",
-  "llvm.hexagon.V6.vdmpyhsat.acc",
-  "llvm.hexagon.V6.vdmpyhsat.acc.128B",
-  "llvm.hexagon.V6.vdmpyhsuisat",
-  "llvm.hexagon.V6.vdmpyhsuisat.128B",
-  "llvm.hexagon.V6.vdmpyhsuisat.acc",
-  "llvm.hexagon.V6.vdmpyhsuisat.acc.128B",
-  "llvm.hexagon.V6.vdmpyhsusat",
-  "llvm.hexagon.V6.vdmpyhsusat.128B",
-  "llvm.hexagon.V6.vdmpyhsusat.acc",
-  "llvm.hexagon.V6.vdmpyhsusat.acc.128B",
-  "llvm.hexagon.V6.vdmpyhvsat",
-  "llvm.hexagon.V6.vdmpyhvsat.128B",
-  "llvm.hexagon.V6.vdmpyhvsat.acc",
-  "llvm.hexagon.V6.vdmpyhvsat.acc.128B",
-  "llvm.hexagon.V6.vdsaduh",
-  "llvm.hexagon.V6.vdsaduh.128B",
-  "llvm.hexagon.V6.vdsaduh.acc",
-  "llvm.hexagon.V6.vdsaduh.acc.128B",
-  "llvm.hexagon.V6.veqb",
-  "llvm.hexagon.V6.veqb.128B",
-  "llvm.hexagon.V6.veqb.and",
-  "llvm.hexagon.V6.veqb.and.128B",
-  "llvm.hexagon.V6.veqb.or",
-  "llvm.hexagon.V6.veqb.or.128B",
-  "llvm.hexagon.V6.veqb.xor",
-  "llvm.hexagon.V6.veqb.xor.128B",
-  "llvm.hexagon.V6.veqh",
-  "llvm.hexagon.V6.veqh.128B",
-  "llvm.hexagon.V6.veqh.and",
-  "llvm.hexagon.V6.veqh.and.128B",
-  "llvm.hexagon.V6.veqh.or",
-  "llvm.hexagon.V6.veqh.or.128B",
-  "llvm.hexagon.V6.veqh.xor",
-  "llvm.hexagon.V6.veqh.xor.128B",
-  "llvm.hexagon.V6.veqw",
-  "llvm.hexagon.V6.veqw.128B",
-  "llvm.hexagon.V6.veqw.and",
-  "llvm.hexagon.V6.veqw.and.128B",
-  "llvm.hexagon.V6.veqw.or",
-  "llvm.hexagon.V6.veqw.or.128B",
-  "llvm.hexagon.V6.veqw.xor",
-  "llvm.hexagon.V6.veqw.xor.128B",
-  "llvm.hexagon.V6.vgathermh",
-  "llvm.hexagon.V6.vgathermh.128B",
-  "llvm.hexagon.V6.vgathermhq",
-  "llvm.hexagon.V6.vgathermhq.128B",
-  "llvm.hexagon.V6.vgathermhw",
-  "llvm.hexagon.V6.vgathermhw.128B",
-  "llvm.hexagon.V6.vgathermhwq",
-  "llvm.hexagon.V6.vgathermhwq.128B",
-  "llvm.hexagon.V6.vgathermw",
-  "llvm.hexagon.V6.vgathermw.128B",
-  "llvm.hexagon.V6.vgathermwq",
-  "llvm.hexagon.V6.vgathermwq.128B",
-  "llvm.hexagon.V6.vgtb",
-  "llvm.hexagon.V6.vgtb.128B",
-  "llvm.hexagon.V6.vgtb.and",
-  "llvm.hexagon.V6.vgtb.and.128B",
-  "llvm.hexagon.V6.vgtb.or",
-  "llvm.hexagon.V6.vgtb.or.128B",
-  "llvm.hexagon.V6.vgtb.xor",
-  "llvm.hexagon.V6.vgtb.xor.128B",
-  "llvm.hexagon.V6.vgth",
-  "llvm.hexagon.V6.vgth.128B",
-  "llvm.hexagon.V6.vgth.and",
-  "llvm.hexagon.V6.vgth.and.128B",
-  "llvm.hexagon.V6.vgth.or",
-  "llvm.hexagon.V6.vgth.or.128B",
-  "llvm.hexagon.V6.vgth.xor",
-  "llvm.hexagon.V6.vgth.xor.128B",
-  "llvm.hexagon.V6.vgtub",
-  "llvm.hexagon.V6.vgtub.128B",
-  "llvm.hexagon.V6.vgtub.and",
-  "llvm.hexagon.V6.vgtub.and.128B",
-  "llvm.hexagon.V6.vgtub.or",
-  "llvm.hexagon.V6.vgtub.or.128B",
-  "llvm.hexagon.V6.vgtub.xor",
-  "llvm.hexagon.V6.vgtub.xor.128B",
-  "llvm.hexagon.V6.vgtuh",
-  "llvm.hexagon.V6.vgtuh.128B",
-  "llvm.hexagon.V6.vgtuh.and",
-  "llvm.hexagon.V6.vgtuh.and.128B",
-  "llvm.hexagon.V6.vgtuh.or",
-  "llvm.hexagon.V6.vgtuh.or.128B",
-  "llvm.hexagon.V6.vgtuh.xor",
-  "llvm.hexagon.V6.vgtuh.xor.128B",
-  "llvm.hexagon.V6.vgtuw",
-  "llvm.hexagon.V6.vgtuw.128B",
-  "llvm.hexagon.V6.vgtuw.and",
-  "llvm.hexagon.V6.vgtuw.and.128B",
-  "llvm.hexagon.V6.vgtuw.or",
-  "llvm.hexagon.V6.vgtuw.or.128B",
-  "llvm.hexagon.V6.vgtuw.xor",
-  "llvm.hexagon.V6.vgtuw.xor.128B",
-  "llvm.hexagon.V6.vgtw",
-  "llvm.hexagon.V6.vgtw.128B",
-  "llvm.hexagon.V6.vgtw.and",
-  "llvm.hexagon.V6.vgtw.and.128B",
-  "llvm.hexagon.V6.vgtw.or",
-  "llvm.hexagon.V6.vgtw.or.128B",
-  "llvm.hexagon.V6.vgtw.xor",
-  "llvm.hexagon.V6.vgtw.xor.128B",
-  "llvm.hexagon.V6.vinsertwr",
-  "llvm.hexagon.V6.vinsertwr.128B",
-  "llvm.hexagon.V6.vlalignb",
-  "llvm.hexagon.V6.vlalignb.128B",
-  "llvm.hexagon.V6.vlalignbi",
-  "llvm.hexagon.V6.vlalignbi.128B",
-  "llvm.hexagon.V6.vlsrb",
-  "llvm.hexagon.V6.vlsrb.128B",
-  "llvm.hexagon.V6.vlsrh",
-  "llvm.hexagon.V6.vlsrh.128B",
-  "llvm.hexagon.V6.vlsrhv",
-  "llvm.hexagon.V6.vlsrhv.128B",
-  "llvm.hexagon.V6.vlsrw",
-  "llvm.hexagon.V6.vlsrw.128B",
-  "llvm.hexagon.V6.vlsrwv",
-  "llvm.hexagon.V6.vlsrwv.128B",
-  "llvm.hexagon.V6.vlut4",
-  "llvm.hexagon.V6.vlut4.128B",
-  "llvm.hexagon.V6.vlutvvb",
-  "llvm.hexagon.V6.vlutvvb.128B",
-  "llvm.hexagon.V6.vlutvvb.nm",
-  "llvm.hexagon.V6.vlutvvb.nm.128B",
-  "llvm.hexagon.V6.vlutvvb.oracc",
-  "llvm.hexagon.V6.vlutvvb.oracc.128B",
-  "llvm.hexagon.V6.vlutvvb.oracci",
-  "llvm.hexagon.V6.vlutvvb.oracci.128B",
-  "llvm.hexagon.V6.vlutvvbi",
-  "llvm.hexagon.V6.vlutvvbi.128B",
-  "llvm.hexagon.V6.vlutvwh",
-  "llvm.hexagon.V6.vlutvwh.128B",
-  "llvm.hexagon.V6.vlutvwh.nm",
-  "llvm.hexagon.V6.vlutvwh.nm.128B",
-  "llvm.hexagon.V6.vlutvwh.oracc",
-  "llvm.hexagon.V6.vlutvwh.oracc.128B",
-  "llvm.hexagon.V6.vlutvwh.oracci",
-  "llvm.hexagon.V6.vlutvwh.oracci.128B",
-  "llvm.hexagon.V6.vlutvwhi",
-  "llvm.hexagon.V6.vlutvwhi.128B",
-  "llvm.hexagon.V6.vmaskedstorenq",
-  "llvm.hexagon.V6.vmaskedstorenq.128B",
-  "llvm.hexagon.V6.vmaskedstorentnq",
-  "llvm.hexagon.V6.vmaskedstorentnq.128B",
-  "llvm.hexagon.V6.vmaskedstorentq",
-  "llvm.hexagon.V6.vmaskedstorentq.128B",
-  "llvm.hexagon.V6.vmaskedstoreq",
-  "llvm.hexagon.V6.vmaskedstoreq.128B",
-  "llvm.hexagon.V6.vmaxb",
-  "llvm.hexagon.V6.vmaxb.128B",
-  "llvm.hexagon.V6.vmaxh",
-  "llvm.hexagon.V6.vmaxh.128B",
-  "llvm.hexagon.V6.vmaxub",
-  "llvm.hexagon.V6.vmaxub.128B",
-  "llvm.hexagon.V6.vmaxuh",
-  "llvm.hexagon.V6.vmaxuh.128B",
-  "llvm.hexagon.V6.vmaxw",
-  "llvm.hexagon.V6.vmaxw.128B",
-  "llvm.hexagon.V6.vminb",
-  "llvm.hexagon.V6.vminb.128B",
-  "llvm.hexagon.V6.vminh",
-  "llvm.hexagon.V6.vminh.128B",
-  "llvm.hexagon.V6.vminub",
-  "llvm.hexagon.V6.vminub.128B",
-  "llvm.hexagon.V6.vminuh",
-  "llvm.hexagon.V6.vminuh.128B",
-  "llvm.hexagon.V6.vminw",
-  "llvm.hexagon.V6.vminw.128B",
-  "llvm.hexagon.V6.vmpabus",
-  "llvm.hexagon.V6.vmpabus.128B",
-  "llvm.hexagon.V6.vmpabus.acc",
-  "llvm.hexagon.V6.vmpabus.acc.128B",
-  "llvm.hexagon.V6.vmpabusv",
-  "llvm.hexagon.V6.vmpabusv.128B",
-  "llvm.hexagon.V6.vmpabuu",
-  "llvm.hexagon.V6.vmpabuu.128B",
-  "llvm.hexagon.V6.vmpabuu.acc",
-  "llvm.hexagon.V6.vmpabuu.acc.128B",
-  "llvm.hexagon.V6.vmpabuuv",
-  "llvm.hexagon.V6.vmpabuuv.128B",
-  "llvm.hexagon.V6.vmpahb",
-  "llvm.hexagon.V6.vmpahb.128B",
-  "llvm.hexagon.V6.vmpahb.acc",
-  "llvm.hexagon.V6.vmpahb.acc.128B",
-  "llvm.hexagon.V6.vmpahhsat",
-  "llvm.hexagon.V6.vmpahhsat.128B",
-  "llvm.hexagon.V6.vmpauhb",
-  "llvm.hexagon.V6.vmpauhb.128B",
-  "llvm.hexagon.V6.vmpauhb.acc",
-  "llvm.hexagon.V6.vmpauhb.acc.128B",
-  "llvm.hexagon.V6.vmpauhuhsat",
-  "llvm.hexagon.V6.vmpauhuhsat.128B",
-  "llvm.hexagon.V6.vmpsuhuhsat",
-  "llvm.hexagon.V6.vmpsuhuhsat.128B",
-  "llvm.hexagon.V6.vmpybus",
-  "llvm.hexagon.V6.vmpybus.128B",
-  "llvm.hexagon.V6.vmpybus.acc",
-  "llvm.hexagon.V6.vmpybus.acc.128B",
-  "llvm.hexagon.V6.vmpybusv",
-  "llvm.hexagon.V6.vmpybusv.128B",
-  "llvm.hexagon.V6.vmpybusv.acc",
-  "llvm.hexagon.V6.vmpybusv.acc.128B",
-  "llvm.hexagon.V6.vmpybv",
-  "llvm.hexagon.V6.vmpybv.128B",
-  "llvm.hexagon.V6.vmpybv.acc",
-  "llvm.hexagon.V6.vmpybv.acc.128B",
-  "llvm.hexagon.V6.vmpyewuh",
-  "llvm.hexagon.V6.vmpyewuh.128B",
-  "llvm.hexagon.V6.vmpyewuh.64",
-  "llvm.hexagon.V6.vmpyewuh.64.128B",
-  "llvm.hexagon.V6.vmpyh",
-  "llvm.hexagon.V6.vmpyh.128B",
-  "llvm.hexagon.V6.vmpyh.acc",
-  "llvm.hexagon.V6.vmpyh.acc.128B",
-  "llvm.hexagon.V6.vmpyhsat.acc",
-  "llvm.hexagon.V6.vmpyhsat.acc.128B",
-  "llvm.hexagon.V6.vmpyhsrs",
-  "llvm.hexagon.V6.vmpyhsrs.128B",
-  "llvm.hexagon.V6.vmpyhss",
-  "llvm.hexagon.V6.vmpyhss.128B",
-  "llvm.hexagon.V6.vmpyhus",
-  "llvm.hexagon.V6.vmpyhus.128B",
-  "llvm.hexagon.V6.vmpyhus.acc",
-  "llvm.hexagon.V6.vmpyhus.acc.128B",
-  "llvm.hexagon.V6.vmpyhv",
-  "llvm.hexagon.V6.vmpyhv.128B",
-  "llvm.hexagon.V6.vmpyhv.acc",
-  "llvm.hexagon.V6.vmpyhv.acc.128B",
-  "llvm.hexagon.V6.vmpyhvsrs",
-  "llvm.hexagon.V6.vmpyhvsrs.128B",
-  "llvm.hexagon.V6.vmpyieoh",
-  "llvm.hexagon.V6.vmpyieoh.128B",
-  "llvm.hexagon.V6.vmpyiewh.acc",
-  "llvm.hexagon.V6.vmpyiewh.acc.128B",
-  "llvm.hexagon.V6.vmpyiewuh",
-  "llvm.hexagon.V6.vmpyiewuh.128B",
-  "llvm.hexagon.V6.vmpyiewuh.acc",
-  "llvm.hexagon.V6.vmpyiewuh.acc.128B",
-  "llvm.hexagon.V6.vmpyih",
-  "llvm.hexagon.V6.vmpyih.128B",
-  "llvm.hexagon.V6.vmpyih.acc",
-  "llvm.hexagon.V6.vmpyih.acc.128B",
-  "llvm.hexagon.V6.vmpyihb",
-  "llvm.hexagon.V6.vmpyihb.128B",
-  "llvm.hexagon.V6.vmpyihb.acc",
-  "llvm.hexagon.V6.vmpyihb.acc.128B",
-  "llvm.hexagon.V6.vmpyiowh",
-  "llvm.hexagon.V6.vmpyiowh.128B",
-  "llvm.hexagon.V6.vmpyiwb",
-  "llvm.hexagon.V6.vmpyiwb.128B",
-  "llvm.hexagon.V6.vmpyiwb.acc",
-  "llvm.hexagon.V6.vmpyiwb.acc.128B",
-  "llvm.hexagon.V6.vmpyiwh",
-  "llvm.hexagon.V6.vmpyiwh.128B",
-  "llvm.hexagon.V6.vmpyiwh.acc",
-  "llvm.hexagon.V6.vmpyiwh.acc.128B",
-  "llvm.hexagon.V6.vmpyiwub",
-  "llvm.hexagon.V6.vmpyiwub.128B",
-  "llvm.hexagon.V6.vmpyiwub.acc",
-  "llvm.hexagon.V6.vmpyiwub.acc.128B",
-  "llvm.hexagon.V6.vmpyowh",
-  "llvm.hexagon.V6.vmpyowh.128B",
-  "llvm.hexagon.V6.vmpyowh.64.acc",
-  "llvm.hexagon.V6.vmpyowh.64.acc.128B",
-  "llvm.hexagon.V6.vmpyowh.rnd",
-  "llvm.hexagon.V6.vmpyowh.rnd.128B",
-  "llvm.hexagon.V6.vmpyowh.rnd.sacc",
-  "llvm.hexagon.V6.vmpyowh.rnd.sacc.128B",
-  "llvm.hexagon.V6.vmpyowh.sacc",
-  "llvm.hexagon.V6.vmpyowh.sacc.128B",
-  "llvm.hexagon.V6.vmpyub",
-  "llvm.hexagon.V6.vmpyub.128B",
-  "llvm.hexagon.V6.vmpyub.acc",
-  "llvm.hexagon.V6.vmpyub.acc.128B",
-  "llvm.hexagon.V6.vmpyubv",
-  "llvm.hexagon.V6.vmpyubv.128B",
-  "llvm.hexagon.V6.vmpyubv.acc",
-  "llvm.hexagon.V6.vmpyubv.acc.128B",
-  "llvm.hexagon.V6.vmpyuh",
-  "llvm.hexagon.V6.vmpyuh.128B",
-  "llvm.hexagon.V6.vmpyuh.acc",
-  "llvm.hexagon.V6.vmpyuh.acc.128B",
-  "llvm.hexagon.V6.vmpyuhe",
-  "llvm.hexagon.V6.vmpyuhe.128B",
-  "llvm.hexagon.V6.vmpyuhe.acc",
-  "llvm.hexagon.V6.vmpyuhe.acc.128B",
-  "llvm.hexagon.V6.vmpyuhv",
-  "llvm.hexagon.V6.vmpyuhv.128B",
-  "llvm.hexagon.V6.vmpyuhv.acc",
-  "llvm.hexagon.V6.vmpyuhv.acc.128B",
-  "llvm.hexagon.V6.vmux",
-  "llvm.hexagon.V6.vmux.128B",
-  "llvm.hexagon.V6.vnavgb",
-  "llvm.hexagon.V6.vnavgb.128B",
-  "llvm.hexagon.V6.vnavgh",
-  "llvm.hexagon.V6.vnavgh.128B",
-  "llvm.hexagon.V6.vnavgub",
-  "llvm.hexagon.V6.vnavgub.128B",
-  "llvm.hexagon.V6.vnavgw",
-  "llvm.hexagon.V6.vnavgw.128B",
-  "llvm.hexagon.V6.vnormamth",
-  "llvm.hexagon.V6.vnormamth.128B",
-  "llvm.hexagon.V6.vnormamtw",
-  "llvm.hexagon.V6.vnormamtw.128B",
-  "llvm.hexagon.V6.vnot",
-  "llvm.hexagon.V6.vnot.128B",
-  "llvm.hexagon.V6.vor",
-  "llvm.hexagon.V6.vor.128B",
-  "llvm.hexagon.V6.vpackeb",
-  "llvm.hexagon.V6.vpackeb.128B",
-  "llvm.hexagon.V6.vpackeh",
-  "llvm.hexagon.V6.vpackeh.128B",
-  "llvm.hexagon.V6.vpackhb.sat",
-  "llvm.hexagon.V6.vpackhb.sat.128B",
-  "llvm.hexagon.V6.vpackhub.sat",
-  "llvm.hexagon.V6.vpackhub.sat.128B",
-  "llvm.hexagon.V6.vpackob",
-  "llvm.hexagon.V6.vpackob.128B",
-  "llvm.hexagon.V6.vpackoh",
-  "llvm.hexagon.V6.vpackoh.128B",
-  "llvm.hexagon.V6.vpackwh.sat",
-  "llvm.hexagon.V6.vpackwh.sat.128B",
-  "llvm.hexagon.V6.vpackwuh.sat",
-  "llvm.hexagon.V6.vpackwuh.sat.128B",
-  "llvm.hexagon.V6.vpopcounth",
-  "llvm.hexagon.V6.vpopcounth.128B",
-  "llvm.hexagon.V6.vprefixqb",
-  "llvm.hexagon.V6.vprefixqb.128B",
-  "llvm.hexagon.V6.vprefixqh",
-  "llvm.hexagon.V6.vprefixqh.128B",
-  "llvm.hexagon.V6.vprefixqw",
-  "llvm.hexagon.V6.vprefixqw.128B",
-  "llvm.hexagon.V6.vrdelta",
-  "llvm.hexagon.V6.vrdelta.128B",
-  "llvm.hexagon.V6.vrmpybub.rtt",
-  "llvm.hexagon.V6.vrmpybub.rtt.128B",
-  "llvm.hexagon.V6.vrmpybub.rtt.acc",
-  "llvm.hexagon.V6.vrmpybub.rtt.acc.128B",
-  "llvm.hexagon.V6.vrmpybus",
-  "llvm.hexagon.V6.vrmpybus.128B",
-  "llvm.hexagon.V6.vrmpybus.acc",
-  "llvm.hexagon.V6.vrmpybus.acc.128B",
-  "llvm.hexagon.V6.vrmpybusi",
-  "llvm.hexagon.V6.vrmpybusi.128B",
-  "llvm.hexagon.V6.vrmpybusi.acc",
-  "llvm.hexagon.V6.vrmpybusi.acc.128B",
-  "llvm.hexagon.V6.vrmpybusv",
-  "llvm.hexagon.V6.vrmpybusv.128B",
-  "llvm.hexagon.V6.vrmpybusv.acc",
-  "llvm.hexagon.V6.vrmpybusv.acc.128B",
-  "llvm.hexagon.V6.vrmpybv",
-  "llvm.hexagon.V6.vrmpybv.128B",
-  "llvm.hexagon.V6.vrmpybv.acc",
-  "llvm.hexagon.V6.vrmpybv.acc.128B",
-  "llvm.hexagon.V6.vrmpyub",
-  "llvm.hexagon.V6.vrmpyub.128B",
-  "llvm.hexagon.V6.vrmpyub.acc",
-  "llvm.hexagon.V6.vrmpyub.acc.128B",
-  "llvm.hexagon.V6.vrmpyub.rtt",
-  "llvm.hexagon.V6.vrmpyub.rtt.128B",
-  "llvm.hexagon.V6.vrmpyub.rtt.acc",
-  "llvm.hexagon.V6.vrmpyub.rtt.acc.128B",
-  "llvm.hexagon.V6.vrmpyubi",
-  "llvm.hexagon.V6.vrmpyubi.128B",
-  "llvm.hexagon.V6.vrmpyubi.acc",
-  "llvm.hexagon.V6.vrmpyubi.acc.128B",
-  "llvm.hexagon.V6.vrmpyubv",
-  "llvm.hexagon.V6.vrmpyubv.128B",
-  "llvm.hexagon.V6.vrmpyubv.acc",
-  "llvm.hexagon.V6.vrmpyubv.acc.128B",
-  "llvm.hexagon.V6.vror",
-  "llvm.hexagon.V6.vror.128B",
-  "llvm.hexagon.V6.vroundhb",
-  "llvm.hexagon.V6.vroundhb.128B",
-  "llvm.hexagon.V6.vroundhub",
-  "llvm.hexagon.V6.vroundhub.128B",
-  "llvm.hexagon.V6.vrounduhub",
-  "llvm.hexagon.V6.vrounduhub.128B",
-  "llvm.hexagon.V6.vrounduwuh",
-  "llvm.hexagon.V6.vrounduwuh.128B",
-  "llvm.hexagon.V6.vroundwh",
-  "llvm.hexagon.V6.vroundwh.128B",
-  "llvm.hexagon.V6.vroundwuh",
-  "llvm.hexagon.V6.vroundwuh.128B",
-  "llvm.hexagon.V6.vrsadubi",
-  "llvm.hexagon.V6.vrsadubi.128B",
-  "llvm.hexagon.V6.vrsadubi.acc",
-  "llvm.hexagon.V6.vrsadubi.acc.128B",
-  "llvm.hexagon.V6.vsathub",
-  "llvm.hexagon.V6.vsathub.128B",
-  "llvm.hexagon.V6.vsatuwuh",
-  "llvm.hexagon.V6.vsatuwuh.128B",
-  "llvm.hexagon.V6.vsatwh",
-  "llvm.hexagon.V6.vsatwh.128B",
-  "llvm.hexagon.V6.vsb",
-  "llvm.hexagon.V6.vsb.128B",
-  "llvm.hexagon.V6.vscattermh",
-  "llvm.hexagon.V6.vscattermh.128B",
-  "llvm.hexagon.V6.vscattermh.add",
-  "llvm.hexagon.V6.vscattermh.add.128B",
-  "llvm.hexagon.V6.vscattermhq",
-  "llvm.hexagon.V6.vscattermhq.128B",
-  "llvm.hexagon.V6.vscattermhw",
-  "llvm.hexagon.V6.vscattermhw.128B",
-  "llvm.hexagon.V6.vscattermhw.add",
-  "llvm.hexagon.V6.vscattermhw.add.128B",
-  "llvm.hexagon.V6.vscattermhwq",
-  "llvm.hexagon.V6.vscattermhwq.128B",
-  "llvm.hexagon.V6.vscattermw",
-  "llvm.hexagon.V6.vscattermw.128B",
-  "llvm.hexagon.V6.vscattermw.add",
-  "llvm.hexagon.V6.vscattermw.add.128B",
-  "llvm.hexagon.V6.vscattermwq",
-  "llvm.hexagon.V6.vscattermwq.128B",
-  "llvm.hexagon.V6.vsh",
-  "llvm.hexagon.V6.vsh.128B",
-  "llvm.hexagon.V6.vshufeh",
-  "llvm.hexagon.V6.vshufeh.128B",
-  "llvm.hexagon.V6.vshuffb",
-  "llvm.hexagon.V6.vshuffb.128B",
-  "llvm.hexagon.V6.vshuffeb",
-  "llvm.hexagon.V6.vshuffeb.128B",
-  "llvm.hexagon.V6.vshuffh",
-  "llvm.hexagon.V6.vshuffh.128B",
-  "llvm.hexagon.V6.vshuffob",
-  "llvm.hexagon.V6.vshuffob.128B",
-  "llvm.hexagon.V6.vshuffvdd",
-  "llvm.hexagon.V6.vshuffvdd.128B",
-  "llvm.hexagon.V6.vshufoeb",
-  "llvm.hexagon.V6.vshufoeb.128B",
-  "llvm.hexagon.V6.vshufoeh",
-  "llvm.hexagon.V6.vshufoeh.128B",
-  "llvm.hexagon.V6.vshufoh",
-  "llvm.hexagon.V6.vshufoh.128B",
-  "llvm.hexagon.V6.vsubb",
-  "llvm.hexagon.V6.vsubb.128B",
-  "llvm.hexagon.V6.vsubb.dv",
-  "llvm.hexagon.V6.vsubb.dv.128B",
-  "llvm.hexagon.V6.vsubbnq",
-  "llvm.hexagon.V6.vsubbnq.128B",
-  "llvm.hexagon.V6.vsubbq",
-  "llvm.hexagon.V6.vsubbq.128B",
-  "llvm.hexagon.V6.vsubbsat",
-  "llvm.hexagon.V6.vsubbsat.128B",
-  "llvm.hexagon.V6.vsubbsat.dv",
-  "llvm.hexagon.V6.vsubbsat.dv.128B",
-  "llvm.hexagon.V6.vsubcarry",
-  "llvm.hexagon.V6.vsubcarry.128B",
-  "llvm.hexagon.V6.vsubh",
-  "llvm.hexagon.V6.vsubh.128B",
-  "llvm.hexagon.V6.vsubh.dv",
-  "llvm.hexagon.V6.vsubh.dv.128B",
-  "llvm.hexagon.V6.vsubhnq",
-  "llvm.hexagon.V6.vsubhnq.128B",
-  "llvm.hexagon.V6.vsubhq",
-  "llvm.hexagon.V6.vsubhq.128B",
-  "llvm.hexagon.V6.vsubhsat",
-  "llvm.hexagon.V6.vsubhsat.128B",
-  "llvm.hexagon.V6.vsubhsat.dv",
-  "llvm.hexagon.V6.vsubhsat.dv.128B",
-  "llvm.hexagon.V6.vsubhw",
-  "llvm.hexagon.V6.vsubhw.128B",
-  "llvm.hexagon.V6.vsububh",
-  "llvm.hexagon.V6.vsububh.128B",
-  "llvm.hexagon.V6.vsububsat",
-  "llvm.hexagon.V6.vsububsat.128B",
-  "llvm.hexagon.V6.vsububsat.dv",
-  "llvm.hexagon.V6.vsububsat.dv.128B",
-  "llvm.hexagon.V6.vsubububb.sat",
-  "llvm.hexagon.V6.vsubububb.sat.128B",
-  "llvm.hexagon.V6.vsubuhsat",
-  "llvm.hexagon.V6.vsubuhsat.128B",
-  "llvm.hexagon.V6.vsubuhsat.dv",
-  "llvm.hexagon.V6.vsubuhsat.dv.128B",
-  "llvm.hexagon.V6.vsubuhw",
-  "llvm.hexagon.V6.vsubuhw.128B",
-  "llvm.hexagon.V6.vsubuwsat",
-  "llvm.hexagon.V6.vsubuwsat.128B",
-  "llvm.hexagon.V6.vsubuwsat.dv",
-  "llvm.hexagon.V6.vsubuwsat.dv.128B",
-  "llvm.hexagon.V6.vsubw",
-  "llvm.hexagon.V6.vsubw.128B",
-  "llvm.hexagon.V6.vsubw.dv",
-  "llvm.hexagon.V6.vsubw.dv.128B",
-  "llvm.hexagon.V6.vsubwnq",
-  "llvm.hexagon.V6.vsubwnq.128B",
-  "llvm.hexagon.V6.vsubwq",
-  "llvm.hexagon.V6.vsubwq.128B",
-  "llvm.hexagon.V6.vsubwsat",
-  "llvm.hexagon.V6.vsubwsat.128B",
-  "llvm.hexagon.V6.vsubwsat.dv",
-  "llvm.hexagon.V6.vsubwsat.dv.128B",
-  "llvm.hexagon.V6.vswap",
-  "llvm.hexagon.V6.vswap.128B",
-  "llvm.hexagon.V6.vtmpyb",
-  "llvm.hexagon.V6.vtmpyb.128B",
-  "llvm.hexagon.V6.vtmpyb.acc",
-  "llvm.hexagon.V6.vtmpyb.acc.128B",
-  "llvm.hexagon.V6.vtmpybus",
-  "llvm.hexagon.V6.vtmpybus.128B",
-  "llvm.hexagon.V6.vtmpybus.acc",
-  "llvm.hexagon.V6.vtmpybus.acc.128B",
-  "llvm.hexagon.V6.vtmpyhb",
-  "llvm.hexagon.V6.vtmpyhb.128B",
-  "llvm.hexagon.V6.vtmpyhb.acc",
-  "llvm.hexagon.V6.vtmpyhb.acc.128B",
-  "llvm.hexagon.V6.vunpackb",
-  "llvm.hexagon.V6.vunpackb.128B",
-  "llvm.hexagon.V6.vunpackh",
-  "llvm.hexagon.V6.vunpackh.128B",
-  "llvm.hexagon.V6.vunpackob",
-  "llvm.hexagon.V6.vunpackob.128B",
-  "llvm.hexagon.V6.vunpackoh",
-  "llvm.hexagon.V6.vunpackoh.128B",
-  "llvm.hexagon.V6.vunpackub",
-  "llvm.hexagon.V6.vunpackub.128B",
-  "llvm.hexagon.V6.vunpackuh",
-  "llvm.hexagon.V6.vunpackuh.128B",
-  "llvm.hexagon.V6.vxor",
-  "llvm.hexagon.V6.vxor.128B",
-  "llvm.hexagon.V6.vzb",
-  "llvm.hexagon.V6.vzb.128B",
-  "llvm.hexagon.V6.vzh",
-  "llvm.hexagon.V6.vzh.128B",
-  "llvm.hexagon.Y2.dccleana",
-  "llvm.hexagon.Y2.dccleaninva",
-  "llvm.hexagon.Y2.dcinva",
-  "llvm.hexagon.Y2.dczeroa",
-  "llvm.hexagon.Y4.l2fetch",
-  "llvm.hexagon.Y5.l2fetch",
-  "llvm.hexagon.circ.ldb",
-  "llvm.hexagon.circ.ldd",
-  "llvm.hexagon.circ.ldh",
-  "llvm.hexagon.circ.ldub",
-  "llvm.hexagon.circ.lduh",
-  "llvm.hexagon.circ.ldw",
-  "llvm.hexagon.circ.stb",
-  "llvm.hexagon.circ.std",
-  "llvm.hexagon.circ.sth",
-  "llvm.hexagon.circ.sthhi",
-  "llvm.hexagon.circ.stw",
-  "llvm.hexagon.mm256i.vaddw",
-  "llvm.hexagon.prefetch",
-  "llvm.mips.absq.s.ph",
-  "llvm.mips.absq.s.qb",
-  "llvm.mips.absq.s.w",
-  "llvm.mips.add.a.b",
-  "llvm.mips.add.a.d",
-  "llvm.mips.add.a.h",
-  "llvm.mips.add.a.w",
-  "llvm.mips.addq.ph",
-  "llvm.mips.addq.s.ph",
-  "llvm.mips.addq.s.w",
-  "llvm.mips.addqh.ph",
-  "llvm.mips.addqh.r.ph",
-  "llvm.mips.addqh.r.w",
-  "llvm.mips.addqh.w",
-  "llvm.mips.adds.a.b",
-  "llvm.mips.adds.a.d",
-  "llvm.mips.adds.a.h",
-  "llvm.mips.adds.a.w",
-  "llvm.mips.adds.s.b",
-  "llvm.mips.adds.s.d",
-  "llvm.mips.adds.s.h",
-  "llvm.mips.adds.s.w",
-  "llvm.mips.adds.u.b",
-  "llvm.mips.adds.u.d",
-  "llvm.mips.adds.u.h",
-  "llvm.mips.adds.u.w",
-  "llvm.mips.addsc",
-  "llvm.mips.addu.ph",
-  "llvm.mips.addu.qb",
-  "llvm.mips.addu.s.ph",
-  "llvm.mips.addu.s.qb",
-  "llvm.mips.adduh.qb",
-  "llvm.mips.adduh.r.qb",
-  "llvm.mips.addv.b",
-  "llvm.mips.addv.d",
-  "llvm.mips.addv.h",
-  "llvm.mips.addv.w",
-  "llvm.mips.addvi.b",
-  "llvm.mips.addvi.d",
-  "llvm.mips.addvi.h",
-  "llvm.mips.addvi.w",
-  "llvm.mips.addwc",
-  "llvm.mips.and.v",
-  "llvm.mips.andi.b",
-  "llvm.mips.append",
-  "llvm.mips.asub.s.b",
-  "llvm.mips.asub.s.d",
-  "llvm.mips.asub.s.h",
-  "llvm.mips.asub.s.w",
-  "llvm.mips.asub.u.b",
-  "llvm.mips.asub.u.d",
-  "llvm.mips.asub.u.h",
-  "llvm.mips.asub.u.w",
-  "llvm.mips.ave.s.b",
-  "llvm.mips.ave.s.d",
-  "llvm.mips.ave.s.h",
-  "llvm.mips.ave.s.w",
-  "llvm.mips.ave.u.b",
-  "llvm.mips.ave.u.d",
-  "llvm.mips.ave.u.h",
-  "llvm.mips.ave.u.w",
-  "llvm.mips.aver.s.b",
-  "llvm.mips.aver.s.d",
-  "llvm.mips.aver.s.h",
-  "llvm.mips.aver.s.w",
-  "llvm.mips.aver.u.b",
-  "llvm.mips.aver.u.d",
-  "llvm.mips.aver.u.h",
-  "llvm.mips.aver.u.w",
-  "llvm.mips.balign",
-  "llvm.mips.bclr.b",
-  "llvm.mips.bclr.d",
-  "llvm.mips.bclr.h",
-  "llvm.mips.bclr.w",
-  "llvm.mips.bclri.b",
-  "llvm.mips.bclri.d",
-  "llvm.mips.bclri.h",
-  "llvm.mips.bclri.w",
-  "llvm.mips.binsl.b",
-  "llvm.mips.binsl.d",
-  "llvm.mips.binsl.h",
-  "llvm.mips.binsl.w",
-  "llvm.mips.binsli.b",
-  "llvm.mips.binsli.d",
-  "llvm.mips.binsli.h",
-  "llvm.mips.binsli.w",
-  "llvm.mips.binsr.b",
-  "llvm.mips.binsr.d",
-  "llvm.mips.binsr.h",
-  "llvm.mips.binsr.w",
-  "llvm.mips.binsri.b",
-  "llvm.mips.binsri.d",
-  "llvm.mips.binsri.h",
-  "llvm.mips.binsri.w",
-  "llvm.mips.bitrev",
-  "llvm.mips.bmnz.v",
-  "llvm.mips.bmnzi.b",
-  "llvm.mips.bmz.v",
-  "llvm.mips.bmzi.b",
-  "llvm.mips.bneg.b",
-  "llvm.mips.bneg.d",
-  "llvm.mips.bneg.h",
-  "llvm.mips.bneg.w",
-  "llvm.mips.bnegi.b",
-  "llvm.mips.bnegi.d",
-  "llvm.mips.bnegi.h",
-  "llvm.mips.bnegi.w",
-  "llvm.mips.bnz.b",
-  "llvm.mips.bnz.d",
-  "llvm.mips.bnz.h",
-  "llvm.mips.bnz.v",
-  "llvm.mips.bnz.w",
-  "llvm.mips.bposge32",
-  "llvm.mips.bsel.v",
-  "llvm.mips.bseli.b",
-  "llvm.mips.bset.b",
-  "llvm.mips.bset.d",
-  "llvm.mips.bset.h",
-  "llvm.mips.bset.w",
-  "llvm.mips.bseti.b",
-  "llvm.mips.bseti.d",
-  "llvm.mips.bseti.h",
-  "llvm.mips.bseti.w",
-  "llvm.mips.bz.b",
-  "llvm.mips.bz.d",
-  "llvm.mips.bz.h",
-  "llvm.mips.bz.v",
-  "llvm.mips.bz.w",
-  "llvm.mips.ceq.b",
-  "llvm.mips.ceq.d",
-  "llvm.mips.ceq.h",
-  "llvm.mips.ceq.w",
-  "llvm.mips.ceqi.b",
-  "llvm.mips.ceqi.d",
-  "llvm.mips.ceqi.h",
-  "llvm.mips.ceqi.w",
-  "llvm.mips.cfcmsa",
-  "llvm.mips.cle.s.b",
-  "llvm.mips.cle.s.d",
-  "llvm.mips.cle.s.h",
-  "llvm.mips.cle.s.w",
-  "llvm.mips.cle.u.b",
-  "llvm.mips.cle.u.d",
-  "llvm.mips.cle.u.h",
-  "llvm.mips.cle.u.w",
-  "llvm.mips.clei.s.b",
-  "llvm.mips.clei.s.d",
-  "llvm.mips.clei.s.h",
-  "llvm.mips.clei.s.w",
-  "llvm.mips.clei.u.b",
-  "llvm.mips.clei.u.d",
-  "llvm.mips.clei.u.h",
-  "llvm.mips.clei.u.w",
-  "llvm.mips.clt.s.b",
-  "llvm.mips.clt.s.d",
-  "llvm.mips.clt.s.h",
-  "llvm.mips.clt.s.w",
-  "llvm.mips.clt.u.b",
-  "llvm.mips.clt.u.d",
-  "llvm.mips.clt.u.h",
-  "llvm.mips.clt.u.w",
-  "llvm.mips.clti.s.b",
-  "llvm.mips.clti.s.d",
-  "llvm.mips.clti.s.h",
-  "llvm.mips.clti.s.w",
-  "llvm.mips.clti.u.b",
-  "llvm.mips.clti.u.d",
-  "llvm.mips.clti.u.h",
-  "llvm.mips.clti.u.w",
-  "llvm.mips.cmp.eq.ph",
-  "llvm.mips.cmp.le.ph",
-  "llvm.mips.cmp.lt.ph",
-  "llvm.mips.cmpgdu.eq.qb",
-  "llvm.mips.cmpgdu.le.qb",
-  "llvm.mips.cmpgdu.lt.qb",
-  "llvm.mips.cmpgu.eq.qb",
-  "llvm.mips.cmpgu.le.qb",
-  "llvm.mips.cmpgu.lt.qb",
-  "llvm.mips.cmpu.eq.qb",
-  "llvm.mips.cmpu.le.qb",
-  "llvm.mips.cmpu.lt.qb",
-  "llvm.mips.copy.s.b",
-  "llvm.mips.copy.s.d",
-  "llvm.mips.copy.s.h",
-  "llvm.mips.copy.s.w",
-  "llvm.mips.copy.u.b",
-  "llvm.mips.copy.u.d",
-  "llvm.mips.copy.u.h",
-  "llvm.mips.copy.u.w",
-  "llvm.mips.ctcmsa",
-  "llvm.mips.div.s.b",
-  "llvm.mips.div.s.d",
-  "llvm.mips.div.s.h",
-  "llvm.mips.div.s.w",
-  "llvm.mips.div.u.b",
-  "llvm.mips.div.u.d",
-  "llvm.mips.div.u.h",
-  "llvm.mips.div.u.w",
-  "llvm.mips.dlsa",
-  "llvm.mips.dotp.s.d",
-  "llvm.mips.dotp.s.h",
-  "llvm.mips.dotp.s.w",
-  "llvm.mips.dotp.u.d",
-  "llvm.mips.dotp.u.h",
-  "llvm.mips.dotp.u.w",
-  "llvm.mips.dpa.w.ph",
-  "llvm.mips.dpadd.s.d",
-  "llvm.mips.dpadd.s.h",
-  "llvm.mips.dpadd.s.w",
-  "llvm.mips.dpadd.u.d",
-  "llvm.mips.dpadd.u.h",
-  "llvm.mips.dpadd.u.w",
-  "llvm.mips.dpaq.s.w.ph",
-  "llvm.mips.dpaq.sa.l.w",
-  "llvm.mips.dpaqx.s.w.ph",
-  "llvm.mips.dpaqx.sa.w.ph",
-  "llvm.mips.dpau.h.qbl",
-  "llvm.mips.dpau.h.qbr",
-  "llvm.mips.dpax.w.ph",
-  "llvm.mips.dps.w.ph",
-  "llvm.mips.dpsq.s.w.ph",
-  "llvm.mips.dpsq.sa.l.w",
-  "llvm.mips.dpsqx.s.w.ph",
-  "llvm.mips.dpsqx.sa.w.ph",
-  "llvm.mips.dpsu.h.qbl",
-  "llvm.mips.dpsu.h.qbr",
-  "llvm.mips.dpsub.s.d",
-  "llvm.mips.dpsub.s.h",
-  "llvm.mips.dpsub.s.w",
-  "llvm.mips.dpsub.u.d",
-  "llvm.mips.dpsub.u.h",
-  "llvm.mips.dpsub.u.w",
-  "llvm.mips.dpsx.w.ph",
-  "llvm.mips.extp",
-  "llvm.mips.extpdp",
-  "llvm.mips.extr.r.w",
-  "llvm.mips.extr.rs.w",
-  "llvm.mips.extr.s.h",
-  "llvm.mips.extr.w",
-  "llvm.mips.fadd.d",
-  "llvm.mips.fadd.w",
-  "llvm.mips.fcaf.d",
-  "llvm.mips.fcaf.w",
-  "llvm.mips.fceq.d",
-  "llvm.mips.fceq.w",
-  "llvm.mips.fclass.d",
-  "llvm.mips.fclass.w",
-  "llvm.mips.fcle.d",
-  "llvm.mips.fcle.w",
-  "llvm.mips.fclt.d",
-  "llvm.mips.fclt.w",
-  "llvm.mips.fcne.d",
-  "llvm.mips.fcne.w",
-  "llvm.mips.fcor.d",
-  "llvm.mips.fcor.w",
-  "llvm.mips.fcueq.d",
-  "llvm.mips.fcueq.w",
-  "llvm.mips.fcule.d",
-  "llvm.mips.fcule.w",
-  "llvm.mips.fcult.d",
-  "llvm.mips.fcult.w",
-  "llvm.mips.fcun.d",
-  "llvm.mips.fcun.w",
-  "llvm.mips.fcune.d",
-  "llvm.mips.fcune.w",
-  "llvm.mips.fdiv.d",
-  "llvm.mips.fdiv.w",
-  "llvm.mips.fexdo.h",
-  "llvm.mips.fexdo.w",
-  "llvm.mips.fexp2.d",
-  "llvm.mips.fexp2.w",
-  "llvm.mips.fexupl.d",
-  "llvm.mips.fexupl.w",
-  "llvm.mips.fexupr.d",
-  "llvm.mips.fexupr.w",
-  "llvm.mips.ffint.s.d",
-  "llvm.mips.ffint.s.w",
-  "llvm.mips.ffint.u.d",
-  "llvm.mips.ffint.u.w",
-  "llvm.mips.ffql.d",
-  "llvm.mips.ffql.w",
-  "llvm.mips.ffqr.d",
-  "llvm.mips.ffqr.w",
-  "llvm.mips.fill.b",
-  "llvm.mips.fill.d",
-  "llvm.mips.fill.h",
-  "llvm.mips.fill.w",
-  "llvm.mips.flog2.d",
-  "llvm.mips.flog2.w",
-  "llvm.mips.fmadd.d",
-  "llvm.mips.fmadd.w",
-  "llvm.mips.fmax.a.d",
-  "llvm.mips.fmax.a.w",
-  "llvm.mips.fmax.d",
-  "llvm.mips.fmax.w",
-  "llvm.mips.fmin.a.d",
-  "llvm.mips.fmin.a.w",
-  "llvm.mips.fmin.d",
-  "llvm.mips.fmin.w",
-  "llvm.mips.fmsub.d",
-  "llvm.mips.fmsub.w",
-  "llvm.mips.fmul.d",
-  "llvm.mips.fmul.w",
-  "llvm.mips.frcp.d",
-  "llvm.mips.frcp.w",
-  "llvm.mips.frint.d",
-  "llvm.mips.frint.w",
-  "llvm.mips.frsqrt.d",
-  "llvm.mips.frsqrt.w",
-  "llvm.mips.fsaf.d",
-  "llvm.mips.fsaf.w",
-  "llvm.mips.fseq.d",
-  "llvm.mips.fseq.w",
-  "llvm.mips.fsle.d",
-  "llvm.mips.fsle.w",
-  "llvm.mips.fslt.d",
-  "llvm.mips.fslt.w",
-  "llvm.mips.fsne.d",
-  "llvm.mips.fsne.w",
-  "llvm.mips.fsor.d",
-  "llvm.mips.fsor.w",
-  "llvm.mips.fsqrt.d",
-  "llvm.mips.fsqrt.w",
-  "llvm.mips.fsub.d",
-  "llvm.mips.fsub.w",
-  "llvm.mips.fsueq.d",
-  "llvm.mips.fsueq.w",
-  "llvm.mips.fsule.d",
-  "llvm.mips.fsule.w",
-  "llvm.mips.fsult.d",
-  "llvm.mips.fsult.w",
-  "llvm.mips.fsun.d",
-  "llvm.mips.fsun.w",
-  "llvm.mips.fsune.d",
-  "llvm.mips.fsune.w",
-  "llvm.mips.ftint.s.d",
-  "llvm.mips.ftint.s.w",
-  "llvm.mips.ftint.u.d",
-  "llvm.mips.ftint.u.w",
-  "llvm.mips.ftq.h",
-  "llvm.mips.ftq.w",
-  "llvm.mips.ftrunc.s.d",
-  "llvm.mips.ftrunc.s.w",
-  "llvm.mips.ftrunc.u.d",
-  "llvm.mips.ftrunc.u.w",
-  "llvm.mips.hadd.s.d",
-  "llvm.mips.hadd.s.h",
-  "llvm.mips.hadd.s.w",
-  "llvm.mips.hadd.u.d",
-  "llvm.mips.hadd.u.h",
-  "llvm.mips.hadd.u.w",
-  "llvm.mips.hsub.s.d",
-  "llvm.mips.hsub.s.h",
-  "llvm.mips.hsub.s.w",
-  "llvm.mips.hsub.u.d",
-  "llvm.mips.hsub.u.h",
-  "llvm.mips.hsub.u.w",
-  "llvm.mips.ilvev.b",
-  "llvm.mips.ilvev.d",
-  "llvm.mips.ilvev.h",
-  "llvm.mips.ilvev.w",
-  "llvm.mips.ilvl.b",
-  "llvm.mips.ilvl.d",
-  "llvm.mips.ilvl.h",
-  "llvm.mips.ilvl.w",
-  "llvm.mips.ilvod.b",
-  "llvm.mips.ilvod.d",
-  "llvm.mips.ilvod.h",
-  "llvm.mips.ilvod.w",
-  "llvm.mips.ilvr.b",
-  "llvm.mips.ilvr.d",
-  "llvm.mips.ilvr.h",
-  "llvm.mips.ilvr.w",
-  "llvm.mips.insert.b",
-  "llvm.mips.insert.d",
-  "llvm.mips.insert.h",
-  "llvm.mips.insert.w",
-  "llvm.mips.insv",
-  "llvm.mips.insve.b",
-  "llvm.mips.insve.d",
-  "llvm.mips.insve.h",
-  "llvm.mips.insve.w",
-  "llvm.mips.lbux",
-  "llvm.mips.ld.b",
-  "llvm.mips.ld.d",
-  "llvm.mips.ld.h",
-  "llvm.mips.ld.w",
-  "llvm.mips.ldi.b",
-  "llvm.mips.ldi.d",
-  "llvm.mips.ldi.h",
-  "llvm.mips.ldi.w",
-  "llvm.mips.lhx",
-  "llvm.mips.lsa",
-  "llvm.mips.lwx",
-  "llvm.mips.madd",
-  "llvm.mips.madd.q.h",
-  "llvm.mips.madd.q.w",
-  "llvm.mips.maddr.q.h",
-  "llvm.mips.maddr.q.w",
-  "llvm.mips.maddu",
-  "llvm.mips.maddv.b",
-  "llvm.mips.maddv.d",
-  "llvm.mips.maddv.h",
-  "llvm.mips.maddv.w",
-  "llvm.mips.maq.s.w.phl",
-  "llvm.mips.maq.s.w.phr",
-  "llvm.mips.maq.sa.w.phl",
-  "llvm.mips.maq.sa.w.phr",
-  "llvm.mips.max.a.b",
-  "llvm.mips.max.a.d",
-  "llvm.mips.max.a.h",
-  "llvm.mips.max.a.w",
-  "llvm.mips.max.s.b",
-  "llvm.mips.max.s.d",
-  "llvm.mips.max.s.h",
-  "llvm.mips.max.s.w",
-  "llvm.mips.max.u.b",
-  "llvm.mips.max.u.d",
-  "llvm.mips.max.u.h",
-  "llvm.mips.max.u.w",
-  "llvm.mips.maxi.s.b",
-  "llvm.mips.maxi.s.d",
-  "llvm.mips.maxi.s.h",
-  "llvm.mips.maxi.s.w",
-  "llvm.mips.maxi.u.b",
-  "llvm.mips.maxi.u.d",
-  "llvm.mips.maxi.u.h",
-  "llvm.mips.maxi.u.w",
-  "llvm.mips.min.a.b",
-  "llvm.mips.min.a.d",
-  "llvm.mips.min.a.h",
-  "llvm.mips.min.a.w",
-  "llvm.mips.min.s.b",
-  "llvm.mips.min.s.d",
-  "llvm.mips.min.s.h",
-  "llvm.mips.min.s.w",
-  "llvm.mips.min.u.b",
-  "llvm.mips.min.u.d",
-  "llvm.mips.min.u.h",
-  "llvm.mips.min.u.w",
-  "llvm.mips.mini.s.b",
-  "llvm.mips.mini.s.d",
-  "llvm.mips.mini.s.h",
-  "llvm.mips.mini.s.w",
-  "llvm.mips.mini.u.b",
-  "llvm.mips.mini.u.d",
-  "llvm.mips.mini.u.h",
-  "llvm.mips.mini.u.w",
-  "llvm.mips.mod.s.b",
-  "llvm.mips.mod.s.d",
-  "llvm.mips.mod.s.h",
-  "llvm.mips.mod.s.w",
-  "llvm.mips.mod.u.b",
-  "llvm.mips.mod.u.d",
-  "llvm.mips.mod.u.h",
-  "llvm.mips.mod.u.w",
-  "llvm.mips.modsub",
-  "llvm.mips.move.v",
-  "llvm.mips.msub",
-  "llvm.mips.msub.q.h",
-  "llvm.mips.msub.q.w",
-  "llvm.mips.msubr.q.h",
-  "llvm.mips.msubr.q.w",
-  "llvm.mips.msubu",
-  "llvm.mips.msubv.b",
-  "llvm.mips.msubv.d",
-  "llvm.mips.msubv.h",
-  "llvm.mips.msubv.w",
-  "llvm.mips.mthlip",
-  "llvm.mips.mul.ph",
-  "llvm.mips.mul.q.h",
-  "llvm.mips.mul.q.w",
-  "llvm.mips.mul.s.ph",
-  "llvm.mips.muleq.s.w.phl",
-  "llvm.mips.muleq.s.w.phr",
-  "llvm.mips.muleu.s.ph.qbl",
-  "llvm.mips.muleu.s.ph.qbr",
-  "llvm.mips.mulq.rs.ph",
-  "llvm.mips.mulq.rs.w",
-  "llvm.mips.mulq.s.ph",
-  "llvm.mips.mulq.s.w",
-  "llvm.mips.mulr.q.h",
-  "llvm.mips.mulr.q.w",
-  "llvm.mips.mulsa.w.ph",
-  "llvm.mips.mulsaq.s.w.ph",
-  "llvm.mips.mult",
-  "llvm.mips.multu",
-  "llvm.mips.mulv.b",
-  "llvm.mips.mulv.d",
-  "llvm.mips.mulv.h",
-  "llvm.mips.mulv.w",
-  "llvm.mips.nloc.b",
-  "llvm.mips.nloc.d",
-  "llvm.mips.nloc.h",
-  "llvm.mips.nloc.w",
-  "llvm.mips.nlzc.b",
-  "llvm.mips.nlzc.d",
-  "llvm.mips.nlzc.h",
-  "llvm.mips.nlzc.w",
-  "llvm.mips.nor.v",
-  "llvm.mips.nori.b",
-  "llvm.mips.or.v",
-  "llvm.mips.ori.b",
-  "llvm.mips.packrl.ph",
-  "llvm.mips.pckev.b",
-  "llvm.mips.pckev.d",
-  "llvm.mips.pckev.h",
-  "llvm.mips.pckev.w",
-  "llvm.mips.pckod.b",
-  "llvm.mips.pckod.d",
-  "llvm.mips.pckod.h",
-  "llvm.mips.pckod.w",
-  "llvm.mips.pcnt.b",
-  "llvm.mips.pcnt.d",
-  "llvm.mips.pcnt.h",
-  "llvm.mips.pcnt.w",
-  "llvm.mips.pick.ph",
-  "llvm.mips.pick.qb",
-  "llvm.mips.preceq.w.phl",
-  "llvm.mips.preceq.w.phr",
-  "llvm.mips.precequ.ph.qbl",
-  "llvm.mips.precequ.ph.qbla",
-  "llvm.mips.precequ.ph.qbr",
-  "llvm.mips.precequ.ph.qbra",
-  "llvm.mips.preceu.ph.qbl",
-  "llvm.mips.preceu.ph.qbla",
-  "llvm.mips.preceu.ph.qbr",
-  "llvm.mips.preceu.ph.qbra",
-  "llvm.mips.precr.qb.ph",
-  "llvm.mips.precr.sra.ph.w",
-  "llvm.mips.precr.sra.r.ph.w",
-  "llvm.mips.precrq.ph.w",
-  "llvm.mips.precrq.qb.ph",
-  "llvm.mips.precrq.rs.ph.w",
-  "llvm.mips.precrqu.s.qb.ph",
-  "llvm.mips.prepend",
-  "llvm.mips.raddu.w.qb",
-  "llvm.mips.rddsp",
-  "llvm.mips.repl.ph",
-  "llvm.mips.repl.qb",
-  "llvm.mips.sat.s.b",
-  "llvm.mips.sat.s.d",
-  "llvm.mips.sat.s.h",
-  "llvm.mips.sat.s.w",
-  "llvm.mips.sat.u.b",
-  "llvm.mips.sat.u.d",
-  "llvm.mips.sat.u.h",
-  "llvm.mips.sat.u.w",
-  "llvm.mips.shf.b",
-  "llvm.mips.shf.h",
-  "llvm.mips.shf.w",
-  "llvm.mips.shilo",
-  "llvm.mips.shll.ph",
-  "llvm.mips.shll.qb",
-  "llvm.mips.shll.s.ph",
-  "llvm.mips.shll.s.w",
-  "llvm.mips.shra.ph",
-  "llvm.mips.shra.qb",
-  "llvm.mips.shra.r.ph",
-  "llvm.mips.shra.r.qb",
-  "llvm.mips.shra.r.w",
-  "llvm.mips.shrl.ph",
-  "llvm.mips.shrl.qb",
-  "llvm.mips.sld.b",
-  "llvm.mips.sld.d",
-  "llvm.mips.sld.h",
-  "llvm.mips.sld.w",
-  "llvm.mips.sldi.b",
-  "llvm.mips.sldi.d",
-  "llvm.mips.sldi.h",
-  "llvm.mips.sldi.w",
-  "llvm.mips.sll.b",
-  "llvm.mips.sll.d",
-  "llvm.mips.sll.h",
-  "llvm.mips.sll.w",
-  "llvm.mips.slli.b",
-  "llvm.mips.slli.d",
-  "llvm.mips.slli.h",
-  "llvm.mips.slli.w",
-  "llvm.mips.splat.b",
-  "llvm.mips.splat.d",
-  "llvm.mips.splat.h",
-  "llvm.mips.splat.w",
-  "llvm.mips.splati.b",
-  "llvm.mips.splati.d",
-  "llvm.mips.splati.h",
-  "llvm.mips.splati.w",
-  "llvm.mips.sra.b",
-  "llvm.mips.sra.d",
-  "llvm.mips.sra.h",
-  "llvm.mips.sra.w",
-  "llvm.mips.srai.b",
-  "llvm.mips.srai.d",
-  "llvm.mips.srai.h",
-  "llvm.mips.srai.w",
-  "llvm.mips.srar.b",
-  "llvm.mips.srar.d",
-  "llvm.mips.srar.h",
-  "llvm.mips.srar.w",
-  "llvm.mips.srari.b",
-  "llvm.mips.srari.d",
-  "llvm.mips.srari.h",
-  "llvm.mips.srari.w",
-  "llvm.mips.srl.b",
-  "llvm.mips.srl.d",
-  "llvm.mips.srl.h",
-  "llvm.mips.srl.w",
-  "llvm.mips.srli.b",
-  "llvm.mips.srli.d",
-  "llvm.mips.srli.h",
-  "llvm.mips.srli.w",
-  "llvm.mips.srlr.b",
-  "llvm.mips.srlr.d",
-  "llvm.mips.srlr.h",
-  "llvm.mips.srlr.w",
-  "llvm.mips.srlri.b",
-  "llvm.mips.srlri.d",
-  "llvm.mips.srlri.h",
-  "llvm.mips.srlri.w",
-  "llvm.mips.st.b",
-  "llvm.mips.st.d",
-  "llvm.mips.st.h",
-  "llvm.mips.st.w",
-  "llvm.mips.subq.ph",
-  "llvm.mips.subq.s.ph",
-  "llvm.mips.subq.s.w",
-  "llvm.mips.subqh.ph",
-  "llvm.mips.subqh.r.ph",
-  "llvm.mips.subqh.r.w",
-  "llvm.mips.subqh.w",
-  "llvm.mips.subs.s.b",
-  "llvm.mips.subs.s.d",
-  "llvm.mips.subs.s.h",
-  "llvm.mips.subs.s.w",
-  "llvm.mips.subs.u.b",
-  "llvm.mips.subs.u.d",
-  "llvm.mips.subs.u.h",
-  "llvm.mips.subs.u.w",
-  "llvm.mips.subsus.u.b",
-  "llvm.mips.subsus.u.d",
-  "llvm.mips.subsus.u.h",
-  "llvm.mips.subsus.u.w",
-  "llvm.mips.subsuu.s.b",
-  "llvm.mips.subsuu.s.d",
-  "llvm.mips.subsuu.s.h",
-  "llvm.mips.subsuu.s.w",
-  "llvm.mips.subu.ph",
-  "llvm.mips.subu.qb",
-  "llvm.mips.subu.s.ph",
-  "llvm.mips.subu.s.qb",
-  "llvm.mips.subuh.qb",
-  "llvm.mips.subuh.r.qb",
-  "llvm.mips.subv.b",
-  "llvm.mips.subv.d",
-  "llvm.mips.subv.h",
-  "llvm.mips.subv.w",
-  "llvm.mips.subvi.b",
-  "llvm.mips.subvi.d",
-  "llvm.mips.subvi.h",
-  "llvm.mips.subvi.w",
-  "llvm.mips.vshf.b",
-  "llvm.mips.vshf.d",
-  "llvm.mips.vshf.h",
-  "llvm.mips.vshf.w",
-  "llvm.mips.wrdsp",
-  "llvm.mips.xor.v",
-  "llvm.mips.xori.b",
-  "llvm.nvvm.add.rm.d",
-  "llvm.nvvm.add.rm.f",
-  "llvm.nvvm.add.rm.ftz.f",
-  "llvm.nvvm.add.rn.d",
-  "llvm.nvvm.add.rn.f",
-  "llvm.nvvm.add.rn.ftz.f",
-  "llvm.nvvm.add.rp.d",
-  "llvm.nvvm.add.rp.f",
-  "llvm.nvvm.add.rp.ftz.f",
-  "llvm.nvvm.add.rz.d",
-  "llvm.nvvm.add.rz.f",
-  "llvm.nvvm.add.rz.ftz.f",
-  "llvm.nvvm.atomic.add.gen.f.cta",
-  "llvm.nvvm.atomic.add.gen.f.sys",
-  "llvm.nvvm.atomic.add.gen.i.cta",
-  "llvm.nvvm.atomic.add.gen.i.sys",
-  "llvm.nvvm.atomic.and.gen.i.cta",
-  "llvm.nvvm.atomic.and.gen.i.sys",
-  "llvm.nvvm.atomic.cas.gen.i.cta",
-  "llvm.nvvm.atomic.cas.gen.i.sys",
-  "llvm.nvvm.atomic.dec.gen.i.cta",
-  "llvm.nvvm.atomic.dec.gen.i.sys",
-  "llvm.nvvm.atomic.exch.gen.i.cta",
-  "llvm.nvvm.atomic.exch.gen.i.sys",
-  "llvm.nvvm.atomic.inc.gen.i.cta",
-  "llvm.nvvm.atomic.inc.gen.i.sys",
-  "llvm.nvvm.atomic.load.add.f32",
-  "llvm.nvvm.atomic.load.add.f64",
-  "llvm.nvvm.atomic.load.dec.32",
-  "llvm.nvvm.atomic.load.inc.32",
-  "llvm.nvvm.atomic.max.gen.i.cta",
-  "llvm.nvvm.atomic.max.gen.i.sys",
-  "llvm.nvvm.atomic.min.gen.i.cta",
-  "llvm.nvvm.atomic.min.gen.i.sys",
-  "llvm.nvvm.atomic.or.gen.i.cta",
-  "llvm.nvvm.atomic.or.gen.i.sys",
-  "llvm.nvvm.atomic.xor.gen.i.cta",
-  "llvm.nvvm.atomic.xor.gen.i.sys",
-  "llvm.nvvm.bar.sync",
-  "llvm.nvvm.bar.warp.sync",
-  "llvm.nvvm.barrier",
-  "llvm.nvvm.barrier.n",
-  "llvm.nvvm.barrier.sync",
-  "llvm.nvvm.barrier.sync.cnt",
-  "llvm.nvvm.barrier0",
-  "llvm.nvvm.barrier0.and",
-  "llvm.nvvm.barrier0.or",
-  "llvm.nvvm.barrier0.popc",
-  "llvm.nvvm.bitcast.d2ll",
-  "llvm.nvvm.bitcast.f2i",
-  "llvm.nvvm.bitcast.i2f",
-  "llvm.nvvm.bitcast.ll2d",
-  "llvm.nvvm.ceil.d",
-  "llvm.nvvm.ceil.f",
-  "llvm.nvvm.ceil.ftz.f",
-  "llvm.nvvm.compiler.error",
-  "llvm.nvvm.compiler.warn",
-  "llvm.nvvm.cos.approx.f",
-  "llvm.nvvm.cos.approx.ftz.f",
-  "llvm.nvvm.d2f.rm",
-  "llvm.nvvm.d2f.rm.ftz",
-  "llvm.nvvm.d2f.rn",
-  "llvm.nvvm.d2f.rn.ftz",
-  "llvm.nvvm.d2f.rp",
-  "llvm.nvvm.d2f.rp.ftz",
-  "llvm.nvvm.d2f.rz",
-  "llvm.nvvm.d2f.rz.ftz",
-  "llvm.nvvm.d2i.hi",
-  "llvm.nvvm.d2i.lo",
-  "llvm.nvvm.d2i.rm",
-  "llvm.nvvm.d2i.rn",
-  "llvm.nvvm.d2i.rp",
-  "llvm.nvvm.d2i.rz",
-  "llvm.nvvm.d2ll.rm",
-  "llvm.nvvm.d2ll.rn",
-  "llvm.nvvm.d2ll.rp",
-  "llvm.nvvm.d2ll.rz",
-  "llvm.nvvm.d2ui.rm",
-  "llvm.nvvm.d2ui.rn",
-  "llvm.nvvm.d2ui.rp",
-  "llvm.nvvm.d2ui.rz",
-  "llvm.nvvm.d2ull.rm",
-  "llvm.nvvm.d2ull.rn",
-  "llvm.nvvm.d2ull.rp",
-  "llvm.nvvm.d2ull.rz",
-  "llvm.nvvm.div.approx.f",
-  "llvm.nvvm.div.approx.ftz.f",
-  "llvm.nvvm.div.rm.d",
-  "llvm.nvvm.div.rm.f",
-  "llvm.nvvm.div.rm.ftz.f",
-  "llvm.nvvm.div.rn.d",
-  "llvm.nvvm.div.rn.f",
-  "llvm.nvvm.div.rn.ftz.f",
-  "llvm.nvvm.div.rp.d",
-  "llvm.nvvm.div.rp.f",
-  "llvm.nvvm.div.rp.ftz.f",
-  "llvm.nvvm.div.rz.d",
-  "llvm.nvvm.div.rz.f",
-  "llvm.nvvm.div.rz.ftz.f",
-  "llvm.nvvm.ex2.approx.d",
-  "llvm.nvvm.ex2.approx.f",
-  "llvm.nvvm.ex2.approx.ftz.f",
-  "llvm.nvvm.f2h.rn",
-  "llvm.nvvm.f2h.rn.ftz",
-  "llvm.nvvm.f2i.rm",
-  "llvm.nvvm.f2i.rm.ftz",
-  "llvm.nvvm.f2i.rn",
-  "llvm.nvvm.f2i.rn.ftz",
-  "llvm.nvvm.f2i.rp",
-  "llvm.nvvm.f2i.rp.ftz",
-  "llvm.nvvm.f2i.rz",
-  "llvm.nvvm.f2i.rz.ftz",
-  "llvm.nvvm.f2ll.rm",
-  "llvm.nvvm.f2ll.rm.ftz",
-  "llvm.nvvm.f2ll.rn",
-  "llvm.nvvm.f2ll.rn.ftz",
-  "llvm.nvvm.f2ll.rp",
-  "llvm.nvvm.f2ll.rp.ftz",
-  "llvm.nvvm.f2ll.rz",
-  "llvm.nvvm.f2ll.rz.ftz",
-  "llvm.nvvm.f2ui.rm",
-  "llvm.nvvm.f2ui.rm.ftz",
-  "llvm.nvvm.f2ui.rn",
-  "llvm.nvvm.f2ui.rn.ftz",
-  "llvm.nvvm.f2ui.rp",
-  "llvm.nvvm.f2ui.rp.ftz",
-  "llvm.nvvm.f2ui.rz",
-  "llvm.nvvm.f2ui.rz.ftz",
-  "llvm.nvvm.f2ull.rm",
-  "llvm.nvvm.f2ull.rm.ftz",
-  "llvm.nvvm.f2ull.rn",
-  "llvm.nvvm.f2ull.rn.ftz",
-  "llvm.nvvm.f2ull.rp",
-  "llvm.nvvm.f2ull.rp.ftz",
-  "llvm.nvvm.f2ull.rz",
-  "llvm.nvvm.f2ull.rz.ftz",
-  "llvm.nvvm.fabs.d",
-  "llvm.nvvm.fabs.f",
-  "llvm.nvvm.fabs.ftz.f",
-  "llvm.nvvm.floor.d",
-  "llvm.nvvm.floor.f",
-  "llvm.nvvm.floor.ftz.f",
-  "llvm.nvvm.fma.rm.d",
-  "llvm.nvvm.fma.rm.f",
-  "llvm.nvvm.fma.rm.ftz.f",
-  "llvm.nvvm.fma.rn.d",
-  "llvm.nvvm.fma.rn.f",
-  "llvm.nvvm.fma.rn.ftz.f",
-  "llvm.nvvm.fma.rp.d",
-  "llvm.nvvm.fma.rp.f",
-  "llvm.nvvm.fma.rp.ftz.f",
-  "llvm.nvvm.fma.rz.d",
-  "llvm.nvvm.fma.rz.f",
-  "llvm.nvvm.fma.rz.ftz.f",
-  "llvm.nvvm.fmax.d",
-  "llvm.nvvm.fmax.f",
-  "llvm.nvvm.fmax.ftz.f",
-  "llvm.nvvm.fmin.d",
-  "llvm.nvvm.fmin.f",
-  "llvm.nvvm.fmin.ftz.f",
-  "llvm.nvvm.fns",
-  "llvm.nvvm.i2d.rm",
-  "llvm.nvvm.i2d.rn",
-  "llvm.nvvm.i2d.rp",
-  "llvm.nvvm.i2d.rz",
-  "llvm.nvvm.i2f.rm",
-  "llvm.nvvm.i2f.rn",
-  "llvm.nvvm.i2f.rp",
-  "llvm.nvvm.i2f.rz",
-  "llvm.nvvm.isspacep.const",
-  "llvm.nvvm.isspacep.global",
-  "llvm.nvvm.isspacep.local",
-  "llvm.nvvm.isspacep.shared",
-  "llvm.nvvm.istypep.sampler",
-  "llvm.nvvm.istypep.surface",
-  "llvm.nvvm.istypep.texture",
-  "llvm.nvvm.ldg.global.f",
-  "llvm.nvvm.ldg.global.i",
-  "llvm.nvvm.ldg.global.p",
-  "llvm.nvvm.ldu.global.f",
-  "llvm.nvvm.ldu.global.i",
-  "llvm.nvvm.ldu.global.p",
-  "llvm.nvvm.lg2.approx.d",
-  "llvm.nvvm.lg2.approx.f",
-  "llvm.nvvm.lg2.approx.ftz.f",
-  "llvm.nvvm.ll2d.rm",
-  "llvm.nvvm.ll2d.rn",
-  "llvm.nvvm.ll2d.rp",
-  "llvm.nvvm.ll2d.rz",
-  "llvm.nvvm.ll2f.rm",
-  "llvm.nvvm.ll2f.rn",
-  "llvm.nvvm.ll2f.rp",
-  "llvm.nvvm.ll2f.rz",
-  "llvm.nvvm.lohi.i2d",
-  "llvm.nvvm.match.all.sync.i32p",
-  "llvm.nvvm.match.all.sync.i64p",
-  "llvm.nvvm.match.any.sync.i32",
-  "llvm.nvvm.match.any.sync.i64",
-  "llvm.nvvm.membar.cta",
-  "llvm.nvvm.membar.gl",
-  "llvm.nvvm.membar.sys",
-  "llvm.nvvm.move.double",
-  "llvm.nvvm.move.float",
-  "llvm.nvvm.move.i16",
-  "llvm.nvvm.move.i32",
-  "llvm.nvvm.move.i64",
-  "llvm.nvvm.move.ptr",
-  "llvm.nvvm.mul.rm.d",
-  "llvm.nvvm.mul.rm.f",
-  "llvm.nvvm.mul.rm.ftz.f",
-  "llvm.nvvm.mul.rn.d",
-  "llvm.nvvm.mul.rn.f",
-  "llvm.nvvm.mul.rn.ftz.f",
-  "llvm.nvvm.mul.rp.d",
-  "llvm.nvvm.mul.rp.f",
-  "llvm.nvvm.mul.rp.ftz.f",
-  "llvm.nvvm.mul.rz.d",
-  "llvm.nvvm.mul.rz.f",
-  "llvm.nvvm.mul.rz.ftz.f",
-  "llvm.nvvm.mul24.i",
-  "llvm.nvvm.mul24.ui",
-  "llvm.nvvm.mulhi.i",
-  "llvm.nvvm.mulhi.ll",
-  "llvm.nvvm.mulhi.ui",
-  "llvm.nvvm.mulhi.ull",
-  "llvm.nvvm.prmt",
-  "llvm.nvvm.ptr.constant.to.gen",
-  "llvm.nvvm.ptr.gen.to.constant",
-  "llvm.nvvm.ptr.gen.to.global",
-  "llvm.nvvm.ptr.gen.to.local",
-  "llvm.nvvm.ptr.gen.to.param",
-  "llvm.nvvm.ptr.gen.to.shared",
-  "llvm.nvvm.ptr.global.to.gen",
-  "llvm.nvvm.ptr.local.to.gen",
-  "llvm.nvvm.ptr.shared.to.gen",
-  "llvm.nvvm.rcp.approx.ftz.d",
-  "llvm.nvvm.rcp.rm.d",
-  "llvm.nvvm.rcp.rm.f",
-  "llvm.nvvm.rcp.rm.ftz.f",
-  "llvm.nvvm.rcp.rn.d",
-  "llvm.nvvm.rcp.rn.f",
-  "llvm.nvvm.rcp.rn.ftz.f",
-  "llvm.nvvm.rcp.rp.d",
-  "llvm.nvvm.rcp.rp.f",
-  "llvm.nvvm.rcp.rp.ftz.f",
-  "llvm.nvvm.rcp.rz.d",
-  "llvm.nvvm.rcp.rz.f",
-  "llvm.nvvm.rcp.rz.ftz.f",
-  "llvm.nvvm.read.ptx.sreg.clock",
-  "llvm.nvvm.read.ptx.sreg.clock64",
-  "llvm.nvvm.read.ptx.sreg.ctaid.w",
-  "llvm.nvvm.read.ptx.sreg.ctaid.x",
-  "llvm.nvvm.read.ptx.sreg.ctaid.y",
-  "llvm.nvvm.read.ptx.sreg.ctaid.z",
-  "llvm.nvvm.read.ptx.sreg.envreg0",
-  "llvm.nvvm.read.ptx.sreg.envreg1",
-  "llvm.nvvm.read.ptx.sreg.envreg10",
-  "llvm.nvvm.read.ptx.sreg.envreg11",
-  "llvm.nvvm.read.ptx.sreg.envreg12",
-  "llvm.nvvm.read.ptx.sreg.envreg13",
-  "llvm.nvvm.read.ptx.sreg.envreg14",
-  "llvm.nvvm.read.ptx.sreg.envreg15",
-  "llvm.nvvm.read.ptx.sreg.envreg16",
-  "llvm.nvvm.read.ptx.sreg.envreg17",
-  "llvm.nvvm.read.ptx.sreg.envreg18",
-  "llvm.nvvm.read.ptx.sreg.envreg19",
-  "llvm.nvvm.read.ptx.sreg.envreg2",
-  "llvm.nvvm.read.ptx.sreg.envreg20",
-  "llvm.nvvm.read.ptx.sreg.envreg21",
-  "llvm.nvvm.read.ptx.sreg.envreg22",
-  "llvm.nvvm.read.ptx.sreg.envreg23",
-  "llvm.nvvm.read.ptx.sreg.envreg24",
-  "llvm.nvvm.read.ptx.sreg.envreg25",
-  "llvm.nvvm.read.ptx.sreg.envreg26",
-  "llvm.nvvm.read.ptx.sreg.envreg27",
-  "llvm.nvvm.read.ptx.sreg.envreg28",
-  "llvm.nvvm.read.ptx.sreg.envreg29",
-  "llvm.nvvm.read.ptx.sreg.envreg3",
-  "llvm.nvvm.read.ptx.sreg.envreg30",
-  "llvm.nvvm.read.ptx.sreg.envreg31",
-  "llvm.nvvm.read.ptx.sreg.envreg4",
-  "llvm.nvvm.read.ptx.sreg.envreg5",
-  "llvm.nvvm.read.ptx.sreg.envreg6",
-  "llvm.nvvm.read.ptx.sreg.envreg7",
-  "llvm.nvvm.read.ptx.sreg.envreg8",
-  "llvm.nvvm.read.ptx.sreg.envreg9",
-  "llvm.nvvm.read.ptx.sreg.gridid",
-  "llvm.nvvm.read.ptx.sreg.laneid",
-  "llvm.nvvm.read.ptx.sreg.lanemask.eq",
-  "llvm.nvvm.read.ptx.sreg.lanemask.ge",
-  "llvm.nvvm.read.ptx.sreg.lanemask.gt",
-  "llvm.nvvm.read.ptx.sreg.lanemask.le",
-  "llvm.nvvm.read.ptx.sreg.lanemask.lt",
-  "llvm.nvvm.read.ptx.sreg.nctaid.w",
-  "llvm.nvvm.read.ptx.sreg.nctaid.x",
-  "llvm.nvvm.read.ptx.sreg.nctaid.y",
-  "llvm.nvvm.read.ptx.sreg.nctaid.z",
-  "llvm.nvvm.read.ptx.sreg.nsmid",
-  "llvm.nvvm.read.ptx.sreg.ntid.w",
-  "llvm.nvvm.read.ptx.sreg.ntid.x",
-  "llvm.nvvm.read.ptx.sreg.ntid.y",
-  "llvm.nvvm.read.ptx.sreg.ntid.z",
-  "llvm.nvvm.read.ptx.sreg.nwarpid",
-  "llvm.nvvm.read.ptx.sreg.pm0",
-  "llvm.nvvm.read.ptx.sreg.pm1",
-  "llvm.nvvm.read.ptx.sreg.pm2",
-  "llvm.nvvm.read.ptx.sreg.pm3",
-  "llvm.nvvm.read.ptx.sreg.smid",
-  "llvm.nvvm.read.ptx.sreg.tid.w",
-  "llvm.nvvm.read.ptx.sreg.tid.x",
-  "llvm.nvvm.read.ptx.sreg.tid.y",
-  "llvm.nvvm.read.ptx.sreg.tid.z",
-  "llvm.nvvm.read.ptx.sreg.warpid",
-  "llvm.nvvm.read.ptx.sreg.warpsize",
-  "llvm.nvvm.reflect",
-  "llvm.nvvm.rotate.b32",
-  "llvm.nvvm.rotate.b64",
-  "llvm.nvvm.rotate.right.b64",
-  "llvm.nvvm.round.d",
-  "llvm.nvvm.round.f",
-  "llvm.nvvm.round.ftz.f",
-  "llvm.nvvm.rsqrt.approx.d",
-  "llvm.nvvm.rsqrt.approx.f",
-  "llvm.nvvm.rsqrt.approx.ftz.f",
-  "llvm.nvvm.sad.i",
-  "llvm.nvvm.sad.ui",
-  "llvm.nvvm.saturate.d",
-  "llvm.nvvm.saturate.f",
-  "llvm.nvvm.saturate.ftz.f",
-  "llvm.nvvm.shfl.bfly.f32",
-  "llvm.nvvm.shfl.bfly.i32",
-  "llvm.nvvm.shfl.down.f32",
-  "llvm.nvvm.shfl.down.i32",
-  "llvm.nvvm.shfl.idx.f32",
-  "llvm.nvvm.shfl.idx.i32",
-  "llvm.nvvm.shfl.sync.bfly.f32",
-  "llvm.nvvm.shfl.sync.bfly.i32",
-  "llvm.nvvm.shfl.sync.down.f32",
-  "llvm.nvvm.shfl.sync.down.i32",
-  "llvm.nvvm.shfl.sync.idx.f32",
-  "llvm.nvvm.shfl.sync.idx.i32",
-  "llvm.nvvm.shfl.sync.up.f32",
-  "llvm.nvvm.shfl.sync.up.i32",
-  "llvm.nvvm.shfl.up.f32",
-  "llvm.nvvm.shfl.up.i32",
-  "llvm.nvvm.sin.approx.f",
-  "llvm.nvvm.sin.approx.ftz.f",
-  "llvm.nvvm.sqrt.approx.f",
-  "llvm.nvvm.sqrt.approx.ftz.f",
-  "llvm.nvvm.sqrt.f",
-  "llvm.nvvm.sqrt.rm.d",
-  "llvm.nvvm.sqrt.rm.f",
-  "llvm.nvvm.sqrt.rm.ftz.f",
-  "llvm.nvvm.sqrt.rn.d",
-  "llvm.nvvm.sqrt.rn.f",
-  "llvm.nvvm.sqrt.rn.ftz.f",
-  "llvm.nvvm.sqrt.rp.d",
-  "llvm.nvvm.sqrt.rp.f",
-  "llvm.nvvm.sqrt.rp.ftz.f",
-  "llvm.nvvm.sqrt.rz.d",
-  "llvm.nvvm.sqrt.rz.f",
-  "llvm.nvvm.sqrt.rz.ftz.f",
-  "llvm.nvvm.suld.1d.array.i16.clamp",
-  "llvm.nvvm.suld.1d.array.i16.trap",
-  "llvm.nvvm.suld.1d.array.i16.zero",
-  "llvm.nvvm.suld.1d.array.i32.clamp",
-  "llvm.nvvm.suld.1d.array.i32.trap",
-  "llvm.nvvm.suld.1d.array.i32.zero",
-  "llvm.nvvm.suld.1d.array.i64.clamp",
-  "llvm.nvvm.suld.1d.array.i64.trap",
-  "llvm.nvvm.suld.1d.array.i64.zero",
-  "llvm.nvvm.suld.1d.array.i8.clamp",
-  "llvm.nvvm.suld.1d.array.i8.trap",
-  "llvm.nvvm.suld.1d.array.i8.zero",
-  "llvm.nvvm.suld.1d.array.v2i16.clamp",
-  "llvm.nvvm.suld.1d.array.v2i16.trap",
-  "llvm.nvvm.suld.1d.array.v2i16.zero",
-  "llvm.nvvm.suld.1d.array.v2i32.clamp",
-  "llvm.nvvm.suld.1d.array.v2i32.trap",
-  "llvm.nvvm.suld.1d.array.v2i32.zero",
-  "llvm.nvvm.suld.1d.array.v2i64.clamp",
-  "llvm.nvvm.suld.1d.array.v2i64.trap",
-  "llvm.nvvm.suld.1d.array.v2i64.zero",
-  "llvm.nvvm.suld.1d.array.v2i8.clamp",
-  "llvm.nvvm.suld.1d.array.v2i8.trap",
-  "llvm.nvvm.suld.1d.array.v2i8.zero",
-  "llvm.nvvm.suld.1d.array.v4i16.clamp",
-  "llvm.nvvm.suld.1d.array.v4i16.trap",
-  "llvm.nvvm.suld.1d.array.v4i16.zero",
-  "llvm.nvvm.suld.1d.array.v4i32.clamp",
-  "llvm.nvvm.suld.1d.array.v4i32.trap",
-  "llvm.nvvm.suld.1d.array.v4i32.zero",
-  "llvm.nvvm.suld.1d.array.v4i8.clamp",
-  "llvm.nvvm.suld.1d.array.v4i8.trap",
-  "llvm.nvvm.suld.1d.array.v4i8.zero",
-  "llvm.nvvm.suld.1d.i16.clamp",
-  "llvm.nvvm.suld.1d.i16.trap",
-  "llvm.nvvm.suld.1d.i16.zero",
-  "llvm.nvvm.suld.1d.i32.clamp",
-  "llvm.nvvm.suld.1d.i32.trap",
-  "llvm.nvvm.suld.1d.i32.zero",
-  "llvm.nvvm.suld.1d.i64.clamp",
-  "llvm.nvvm.suld.1d.i64.trap",
-  "llvm.nvvm.suld.1d.i64.zero",
-  "llvm.nvvm.suld.1d.i8.clamp",
-  "llvm.nvvm.suld.1d.i8.trap",
-  "llvm.nvvm.suld.1d.i8.zero",
-  "llvm.nvvm.suld.1d.v2i16.clamp",
-  "llvm.nvvm.suld.1d.v2i16.trap",
-  "llvm.nvvm.suld.1d.v2i16.zero",
-  "llvm.nvvm.suld.1d.v2i32.clamp",
-  "llvm.nvvm.suld.1d.v2i32.trap",
-  "llvm.nvvm.suld.1d.v2i32.zero",
-  "llvm.nvvm.suld.1d.v2i64.clamp",
-  "llvm.nvvm.suld.1d.v2i64.trap",
-  "llvm.nvvm.suld.1d.v2i64.zero",
-  "llvm.nvvm.suld.1d.v2i8.clamp",
-  "llvm.nvvm.suld.1d.v2i8.trap",
-  "llvm.nvvm.suld.1d.v2i8.zero",
-  "llvm.nvvm.suld.1d.v4i16.clamp",
-  "llvm.nvvm.suld.1d.v4i16.trap",
-  "llvm.nvvm.suld.1d.v4i16.zero",
-  "llvm.nvvm.suld.1d.v4i32.clamp",
-  "llvm.nvvm.suld.1d.v4i32.trap",
-  "llvm.nvvm.suld.1d.v4i32.zero",
-  "llvm.nvvm.suld.1d.v4i8.clamp",
-  "llvm.nvvm.suld.1d.v4i8.trap",
-  "llvm.nvvm.suld.1d.v4i8.zero",
-  "llvm.nvvm.suld.2d.array.i16.clamp",
-  "llvm.nvvm.suld.2d.array.i16.trap",
-  "llvm.nvvm.suld.2d.array.i16.zero",
-  "llvm.nvvm.suld.2d.array.i32.clamp",
-  "llvm.nvvm.suld.2d.array.i32.trap",
-  "llvm.nvvm.suld.2d.array.i32.zero",
-  "llvm.nvvm.suld.2d.array.i64.clamp",
-  "llvm.nvvm.suld.2d.array.i64.trap",
-  "llvm.nvvm.suld.2d.array.i64.zero",
-  "llvm.nvvm.suld.2d.array.i8.clamp",
-  "llvm.nvvm.suld.2d.array.i8.trap",
-  "llvm.nvvm.suld.2d.array.i8.zero",
-  "llvm.nvvm.suld.2d.array.v2i16.clamp",
-  "llvm.nvvm.suld.2d.array.v2i16.trap",
-  "llvm.nvvm.suld.2d.array.v2i16.zero",
-  "llvm.nvvm.suld.2d.array.v2i32.clamp",
-  "llvm.nvvm.suld.2d.array.v2i32.trap",
-  "llvm.nvvm.suld.2d.array.v2i32.zero",
-  "llvm.nvvm.suld.2d.array.v2i64.clamp",
-  "llvm.nvvm.suld.2d.array.v2i64.trap",
-  "llvm.nvvm.suld.2d.array.v2i64.zero",
-  "llvm.nvvm.suld.2d.array.v2i8.clamp",
-  "llvm.nvvm.suld.2d.array.v2i8.trap",
-  "llvm.nvvm.suld.2d.array.v2i8.zero",
-  "llvm.nvvm.suld.2d.array.v4i16.clamp",
-  "llvm.nvvm.suld.2d.array.v4i16.trap",
-  "llvm.nvvm.suld.2d.array.v4i16.zero",
-  "llvm.nvvm.suld.2d.array.v4i32.clamp",
-  "llvm.nvvm.suld.2d.array.v4i32.trap",
-  "llvm.nvvm.suld.2d.array.v4i32.zero",
-  "llvm.nvvm.suld.2d.array.v4i8.clamp",
-  "llvm.nvvm.suld.2d.array.v4i8.trap",
-  "llvm.nvvm.suld.2d.array.v4i8.zero",
-  "llvm.nvvm.suld.2d.i16.clamp",
-  "llvm.nvvm.suld.2d.i16.trap",
-  "llvm.nvvm.suld.2d.i16.zero",
-  "llvm.nvvm.suld.2d.i32.clamp",
-  "llvm.nvvm.suld.2d.i32.trap",
-  "llvm.nvvm.suld.2d.i32.zero",
-  "llvm.nvvm.suld.2d.i64.clamp",
-  "llvm.nvvm.suld.2d.i64.trap",
-  "llvm.nvvm.suld.2d.i64.zero",
-  "llvm.nvvm.suld.2d.i8.clamp",
-  "llvm.nvvm.suld.2d.i8.trap",
-  "llvm.nvvm.suld.2d.i8.zero",
-  "llvm.nvvm.suld.2d.v2i16.clamp",
-  "llvm.nvvm.suld.2d.v2i16.trap",
-  "llvm.nvvm.suld.2d.v2i16.zero",
-  "llvm.nvvm.suld.2d.v2i32.clamp",
-  "llvm.nvvm.suld.2d.v2i32.trap",
-  "llvm.nvvm.suld.2d.v2i32.zero",
-  "llvm.nvvm.suld.2d.v2i64.clamp",
-  "llvm.nvvm.suld.2d.v2i64.trap",
-  "llvm.nvvm.suld.2d.v2i64.zero",
-  "llvm.nvvm.suld.2d.v2i8.clamp",
-  "llvm.nvvm.suld.2d.v2i8.trap",
-  "llvm.nvvm.suld.2d.v2i8.zero",
-  "llvm.nvvm.suld.2d.v4i16.clamp",
-  "llvm.nvvm.suld.2d.v4i16.trap",
-  "llvm.nvvm.suld.2d.v4i16.zero",
-  "llvm.nvvm.suld.2d.v4i32.clamp",
-  "llvm.nvvm.suld.2d.v4i32.trap",
-  "llvm.nvvm.suld.2d.v4i32.zero",
-  "llvm.nvvm.suld.2d.v4i8.clamp",
-  "llvm.nvvm.suld.2d.v4i8.trap",
-  "llvm.nvvm.suld.2d.v4i8.zero",
-  "llvm.nvvm.suld.3d.i16.clamp",
-  "llvm.nvvm.suld.3d.i16.trap",
-  "llvm.nvvm.suld.3d.i16.zero",
-  "llvm.nvvm.suld.3d.i32.clamp",
-  "llvm.nvvm.suld.3d.i32.trap",
-  "llvm.nvvm.suld.3d.i32.zero",
-  "llvm.nvvm.suld.3d.i64.clamp",
-  "llvm.nvvm.suld.3d.i64.trap",
-  "llvm.nvvm.suld.3d.i64.zero",
-  "llvm.nvvm.suld.3d.i8.clamp",
-  "llvm.nvvm.suld.3d.i8.trap",
-  "llvm.nvvm.suld.3d.i8.zero",
-  "llvm.nvvm.suld.3d.v2i16.clamp",
-  "llvm.nvvm.suld.3d.v2i16.trap",
-  "llvm.nvvm.suld.3d.v2i16.zero",
-  "llvm.nvvm.suld.3d.v2i32.clamp",
-  "llvm.nvvm.suld.3d.v2i32.trap",
-  "llvm.nvvm.suld.3d.v2i32.zero",
-  "llvm.nvvm.suld.3d.v2i64.clamp",
-  "llvm.nvvm.suld.3d.v2i64.trap",
-  "llvm.nvvm.suld.3d.v2i64.zero",
-  "llvm.nvvm.suld.3d.v2i8.clamp",
-  "llvm.nvvm.suld.3d.v2i8.trap",
-  "llvm.nvvm.suld.3d.v2i8.zero",
-  "llvm.nvvm.suld.3d.v4i16.clamp",
-  "llvm.nvvm.suld.3d.v4i16.trap",
-  "llvm.nvvm.suld.3d.v4i16.zero",
-  "llvm.nvvm.suld.3d.v4i32.clamp",
-  "llvm.nvvm.suld.3d.v4i32.trap",
-  "llvm.nvvm.suld.3d.v4i32.zero",
-  "llvm.nvvm.suld.3d.v4i8.clamp",
-  "llvm.nvvm.suld.3d.v4i8.trap",
-  "llvm.nvvm.suld.3d.v4i8.zero",
-  "llvm.nvvm.suq.array.size",
-  "llvm.nvvm.suq.channel.data.type",
-  "llvm.nvvm.suq.channel.order",
-  "llvm.nvvm.suq.depth",
-  "llvm.nvvm.suq.height",
-  "llvm.nvvm.suq.width",
-  "llvm.nvvm.sust.b.1d.array.i16.clamp",
-  "llvm.nvvm.sust.b.1d.array.i16.trap",
-  "llvm.nvvm.sust.b.1d.array.i16.zero",
-  "llvm.nvvm.sust.b.1d.array.i32.clamp",
-  "llvm.nvvm.sust.b.1d.array.i32.trap",
-  "llvm.nvvm.sust.b.1d.array.i32.zero",
-  "llvm.nvvm.sust.b.1d.array.i64.clamp",
-  "llvm.nvvm.sust.b.1d.array.i64.trap",
-  "llvm.nvvm.sust.b.1d.array.i64.zero",
-  "llvm.nvvm.sust.b.1d.array.i8.clamp",
-  "llvm.nvvm.sust.b.1d.array.i8.trap",
-  "llvm.nvvm.sust.b.1d.array.i8.zero",
-  "llvm.nvvm.sust.b.1d.array.v2i16.clamp",
-  "llvm.nvvm.sust.b.1d.array.v2i16.trap",
-  "llvm.nvvm.sust.b.1d.array.v2i16.zero",
-  "llvm.nvvm.sust.b.1d.array.v2i32.clamp",
-  "llvm.nvvm.sust.b.1d.array.v2i32.trap",
-  "llvm.nvvm.sust.b.1d.array.v2i32.zero",
-  "llvm.nvvm.sust.b.1d.array.v2i64.clamp",
-  "llvm.nvvm.sust.b.1d.array.v2i64.trap",
-  "llvm.nvvm.sust.b.1d.array.v2i64.zero",
-  "llvm.nvvm.sust.b.1d.array.v2i8.clamp",
-  "llvm.nvvm.sust.b.1d.array.v2i8.trap",
-  "llvm.nvvm.sust.b.1d.array.v2i8.zero",
-  "llvm.nvvm.sust.b.1d.array.v4i16.clamp",
-  "llvm.nvvm.sust.b.1d.array.v4i16.trap",
-  "llvm.nvvm.sust.b.1d.array.v4i16.zero",
-  "llvm.nvvm.sust.b.1d.array.v4i32.clamp",
-  "llvm.nvvm.sust.b.1d.array.v4i32.trap",
-  "llvm.nvvm.sust.b.1d.array.v4i32.zero",
-  "llvm.nvvm.sust.b.1d.array.v4i8.clamp",
-  "llvm.nvvm.sust.b.1d.array.v4i8.trap",
-  "llvm.nvvm.sust.b.1d.array.v4i8.zero",
-  "llvm.nvvm.sust.b.1d.i16.clamp",
-  "llvm.nvvm.sust.b.1d.i16.trap",
-  "llvm.nvvm.sust.b.1d.i16.zero",
-  "llvm.nvvm.sust.b.1d.i32.clamp",
-  "llvm.nvvm.sust.b.1d.i32.trap",
-  "llvm.nvvm.sust.b.1d.i32.zero",
-  "llvm.nvvm.sust.b.1d.i64.clamp",
-  "llvm.nvvm.sust.b.1d.i64.trap",
-  "llvm.nvvm.sust.b.1d.i64.zero",
-  "llvm.nvvm.sust.b.1d.i8.clamp",
-  "llvm.nvvm.sust.b.1d.i8.trap",
-  "llvm.nvvm.sust.b.1d.i8.zero",
-  "llvm.nvvm.sust.b.1d.v2i16.clamp",
-  "llvm.nvvm.sust.b.1d.v2i16.trap",
-  "llvm.nvvm.sust.b.1d.v2i16.zero",
-  "llvm.nvvm.sust.b.1d.v2i32.clamp",
-  "llvm.nvvm.sust.b.1d.v2i32.trap",
-  "llvm.nvvm.sust.b.1d.v2i32.zero",
-  "llvm.nvvm.sust.b.1d.v2i64.clamp",
-  "llvm.nvvm.sust.b.1d.v2i64.trap",
-  "llvm.nvvm.sust.b.1d.v2i64.zero",
-  "llvm.nvvm.sust.b.1d.v2i8.clamp",
-  "llvm.nvvm.sust.b.1d.v2i8.trap",
-  "llvm.nvvm.sust.b.1d.v2i8.zero",
-  "llvm.nvvm.sust.b.1d.v4i16.clamp",
-  "llvm.nvvm.sust.b.1d.v4i16.trap",
-  "llvm.nvvm.sust.b.1d.v4i16.zero",
-  "llvm.nvvm.sust.b.1d.v4i32.clamp",
-  "llvm.nvvm.sust.b.1d.v4i32.trap",
-  "llvm.nvvm.sust.b.1d.v4i32.zero",
-  "llvm.nvvm.sust.b.1d.v4i8.clamp",
-  "llvm.nvvm.sust.b.1d.v4i8.trap",
-  "llvm.nvvm.sust.b.1d.v4i8.zero",
-  "llvm.nvvm.sust.b.2d.array.i16.clamp",
-  "llvm.nvvm.sust.b.2d.array.i16.trap",
-  "llvm.nvvm.sust.b.2d.array.i16.zero",
-  "llvm.nvvm.sust.b.2d.array.i32.clamp",
-  "llvm.nvvm.sust.b.2d.array.i32.trap",
-  "llvm.nvvm.sust.b.2d.array.i32.zero",
-  "llvm.nvvm.sust.b.2d.array.i64.clamp",
-  "llvm.nvvm.sust.b.2d.array.i64.trap",
-  "llvm.nvvm.sust.b.2d.array.i64.zero",
-  "llvm.nvvm.sust.b.2d.array.i8.clamp",
-  "llvm.nvvm.sust.b.2d.array.i8.trap",
-  "llvm.nvvm.sust.b.2d.array.i8.zero",
-  "llvm.nvvm.sust.b.2d.array.v2i16.clamp",
-  "llvm.nvvm.sust.b.2d.array.v2i16.trap",
-  "llvm.nvvm.sust.b.2d.array.v2i16.zero",
-  "llvm.nvvm.sust.b.2d.array.v2i32.clamp",
-  "llvm.nvvm.sust.b.2d.array.v2i32.trap",
-  "llvm.nvvm.sust.b.2d.array.v2i32.zero",
-  "llvm.nvvm.sust.b.2d.array.v2i64.clamp",
-  "llvm.nvvm.sust.b.2d.array.v2i64.trap",
-  "llvm.nvvm.sust.b.2d.array.v2i64.zero",
-  "llvm.nvvm.sust.b.2d.array.v2i8.clamp",
-  "llvm.nvvm.sust.b.2d.array.v2i8.trap",
-  "llvm.nvvm.sust.b.2d.array.v2i8.zero",
-  "llvm.nvvm.sust.b.2d.array.v4i16.clamp",
-  "llvm.nvvm.sust.b.2d.array.v4i16.trap",
-  "llvm.nvvm.sust.b.2d.array.v4i16.zero",
-  "llvm.nvvm.sust.b.2d.array.v4i32.clamp",
-  "llvm.nvvm.sust.b.2d.array.v4i32.trap",
-  "llvm.nvvm.sust.b.2d.array.v4i32.zero",
-  "llvm.nvvm.sust.b.2d.array.v4i8.clamp",
-  "llvm.nvvm.sust.b.2d.array.v4i8.trap",
-  "llvm.nvvm.sust.b.2d.array.v4i8.zero",
-  "llvm.nvvm.sust.b.2d.i16.clamp",
-  "llvm.nvvm.sust.b.2d.i16.trap",
-  "llvm.nvvm.sust.b.2d.i16.zero",
-  "llvm.nvvm.sust.b.2d.i32.clamp",
-  "llvm.nvvm.sust.b.2d.i32.trap",
-  "llvm.nvvm.sust.b.2d.i32.zero",
-  "llvm.nvvm.sust.b.2d.i64.clamp",
-  "llvm.nvvm.sust.b.2d.i64.trap",
-  "llvm.nvvm.sust.b.2d.i64.zero",
-  "llvm.nvvm.sust.b.2d.i8.clamp",
-  "llvm.nvvm.sust.b.2d.i8.trap",
-  "llvm.nvvm.sust.b.2d.i8.zero",
-  "llvm.nvvm.sust.b.2d.v2i16.clamp",
-  "llvm.nvvm.sust.b.2d.v2i16.trap",
-  "llvm.nvvm.sust.b.2d.v2i16.zero",
-  "llvm.nvvm.sust.b.2d.v2i32.clamp",
-  "llvm.nvvm.sust.b.2d.v2i32.trap",
-  "llvm.nvvm.sust.b.2d.v2i32.zero",
-  "llvm.nvvm.sust.b.2d.v2i64.clamp",
-  "llvm.nvvm.sust.b.2d.v2i64.trap",
-  "llvm.nvvm.sust.b.2d.v2i64.zero",
-  "llvm.nvvm.sust.b.2d.v2i8.clamp",
-  "llvm.nvvm.sust.b.2d.v2i8.trap",
-  "llvm.nvvm.sust.b.2d.v2i8.zero",
-  "llvm.nvvm.sust.b.2d.v4i16.clamp",
-  "llvm.nvvm.sust.b.2d.v4i16.trap",
-  "llvm.nvvm.sust.b.2d.v4i16.zero",
-  "llvm.nvvm.sust.b.2d.v4i32.clamp",
-  "llvm.nvvm.sust.b.2d.v4i32.trap",
-  "llvm.nvvm.sust.b.2d.v4i32.zero",
-  "llvm.nvvm.sust.b.2d.v4i8.clamp",
-  "llvm.nvvm.sust.b.2d.v4i8.trap",
-  "llvm.nvvm.sust.b.2d.v4i8.zero",
-  "llvm.nvvm.sust.b.3d.i16.clamp",
-  "llvm.nvvm.sust.b.3d.i16.trap",
-  "llvm.nvvm.sust.b.3d.i16.zero",
-  "llvm.nvvm.sust.b.3d.i32.clamp",
-  "llvm.nvvm.sust.b.3d.i32.trap",
-  "llvm.nvvm.sust.b.3d.i32.zero",
-  "llvm.nvvm.sust.b.3d.i64.clamp",
-  "llvm.nvvm.sust.b.3d.i64.trap",
-  "llvm.nvvm.sust.b.3d.i64.zero",
-  "llvm.nvvm.sust.b.3d.i8.clamp",
-  "llvm.nvvm.sust.b.3d.i8.trap",
-  "llvm.nvvm.sust.b.3d.i8.zero",
-  "llvm.nvvm.sust.b.3d.v2i16.clamp",
-  "llvm.nvvm.sust.b.3d.v2i16.trap",
-  "llvm.nvvm.sust.b.3d.v2i16.zero",
-  "llvm.nvvm.sust.b.3d.v2i32.clamp",
-  "llvm.nvvm.sust.b.3d.v2i32.trap",
-  "llvm.nvvm.sust.b.3d.v2i32.zero",
-  "llvm.nvvm.sust.b.3d.v2i64.clamp",
-  "llvm.nvvm.sust.b.3d.v2i64.trap",
-  "llvm.nvvm.sust.b.3d.v2i64.zero",
-  "llvm.nvvm.sust.b.3d.v2i8.clamp",
-  "llvm.nvvm.sust.b.3d.v2i8.trap",
-  "llvm.nvvm.sust.b.3d.v2i8.zero",
-  "llvm.nvvm.sust.b.3d.v4i16.clamp",
-  "llvm.nvvm.sust.b.3d.v4i16.trap",
-  "llvm.nvvm.sust.b.3d.v4i16.zero",
-  "llvm.nvvm.sust.b.3d.v4i32.clamp",
-  "llvm.nvvm.sust.b.3d.v4i32.trap",
-  "llvm.nvvm.sust.b.3d.v4i32.zero",
-  "llvm.nvvm.sust.b.3d.v4i8.clamp",
-  "llvm.nvvm.sust.b.3d.v4i8.trap",
-  "llvm.nvvm.sust.b.3d.v4i8.zero",
-  "llvm.nvvm.sust.p.1d.array.i16.trap",
-  "llvm.nvvm.sust.p.1d.array.i32.trap",
-  "llvm.nvvm.sust.p.1d.array.i8.trap",
-  "llvm.nvvm.sust.p.1d.array.v2i16.trap",
-  "llvm.nvvm.sust.p.1d.array.v2i32.trap",
-  "llvm.nvvm.sust.p.1d.array.v2i8.trap",
-  "llvm.nvvm.sust.p.1d.array.v4i16.trap",
-  "llvm.nvvm.sust.p.1d.array.v4i32.trap",
-  "llvm.nvvm.sust.p.1d.array.v4i8.trap",
-  "llvm.nvvm.sust.p.1d.i16.trap",
-  "llvm.nvvm.sust.p.1d.i32.trap",
-  "llvm.nvvm.sust.p.1d.i8.trap",
-  "llvm.nvvm.sust.p.1d.v2i16.trap",
-  "llvm.nvvm.sust.p.1d.v2i32.trap",
-  "llvm.nvvm.sust.p.1d.v2i8.trap",
-  "llvm.nvvm.sust.p.1d.v4i16.trap",
-  "llvm.nvvm.sust.p.1d.v4i32.trap",
-  "llvm.nvvm.sust.p.1d.v4i8.trap",
-  "llvm.nvvm.sust.p.2d.array.i16.trap",
-  "llvm.nvvm.sust.p.2d.array.i32.trap",
-  "llvm.nvvm.sust.p.2d.array.i8.trap",
-  "llvm.nvvm.sust.p.2d.array.v2i16.trap",
-  "llvm.nvvm.sust.p.2d.array.v2i32.trap",
-  "llvm.nvvm.sust.p.2d.array.v2i8.trap",
-  "llvm.nvvm.sust.p.2d.array.v4i16.trap",
-  "llvm.nvvm.sust.p.2d.array.v4i32.trap",
-  "llvm.nvvm.sust.p.2d.array.v4i8.trap",
-  "llvm.nvvm.sust.p.2d.i16.trap",
-  "llvm.nvvm.sust.p.2d.i32.trap",
-  "llvm.nvvm.sust.p.2d.i8.trap",
-  "llvm.nvvm.sust.p.2d.v2i16.trap",
-  "llvm.nvvm.sust.p.2d.v2i32.trap",
-  "llvm.nvvm.sust.p.2d.v2i8.trap",
-  "llvm.nvvm.sust.p.2d.v4i16.trap",
-  "llvm.nvvm.sust.p.2d.v4i32.trap",
-  "llvm.nvvm.sust.p.2d.v4i8.trap",
-  "llvm.nvvm.sust.p.3d.i16.trap",
-  "llvm.nvvm.sust.p.3d.i32.trap",
-  "llvm.nvvm.sust.p.3d.i8.trap",
-  "llvm.nvvm.sust.p.3d.v2i16.trap",
-  "llvm.nvvm.sust.p.3d.v2i32.trap",
-  "llvm.nvvm.sust.p.3d.v2i8.trap",
-  "llvm.nvvm.sust.p.3d.v4i16.trap",
-  "llvm.nvvm.sust.p.3d.v4i32.trap",
-  "llvm.nvvm.sust.p.3d.v4i8.trap",
-  "llvm.nvvm.swap.lo.hi.b64",
-  "llvm.nvvm.tex.1d.array.grad.v4f32.f32",
-  "llvm.nvvm.tex.1d.array.grad.v4s32.f32",
-  "llvm.nvvm.tex.1d.array.grad.v4u32.f32",
-  "llvm.nvvm.tex.1d.array.level.v4f32.f32",
-  "llvm.nvvm.tex.1d.array.level.v4s32.f32",
-  "llvm.nvvm.tex.1d.array.level.v4u32.f32",
-  "llvm.nvvm.tex.1d.array.v4f32.f32",
-  "llvm.nvvm.tex.1d.array.v4f32.s32",
-  "llvm.nvvm.tex.1d.array.v4s32.f32",
-  "llvm.nvvm.tex.1d.array.v4s32.s32",
-  "llvm.nvvm.tex.1d.array.v4u32.f32",
-  "llvm.nvvm.tex.1d.array.v4u32.s32",
-  "llvm.nvvm.tex.1d.grad.v4f32.f32",
-  "llvm.nvvm.tex.1d.grad.v4s32.f32",
-  "llvm.nvvm.tex.1d.grad.v4u32.f32",
-  "llvm.nvvm.tex.1d.level.v4f32.f32",
-  "llvm.nvvm.tex.1d.level.v4s32.f32",
-  "llvm.nvvm.tex.1d.level.v4u32.f32",
-  "llvm.nvvm.tex.1d.v4f32.f32",
-  "llvm.nvvm.tex.1d.v4f32.s32",
-  "llvm.nvvm.tex.1d.v4s32.f32",
-  "llvm.nvvm.tex.1d.v4s32.s32",
-  "llvm.nvvm.tex.1d.v4u32.f32",
-  "llvm.nvvm.tex.1d.v4u32.s32",
-  "llvm.nvvm.tex.2d.array.grad.v4f32.f32",
-  "llvm.nvvm.tex.2d.array.grad.v4s32.f32",
-  "llvm.nvvm.tex.2d.array.grad.v4u32.f32",
-  "llvm.nvvm.tex.2d.array.level.v4f32.f32",
-  "llvm.nvvm.tex.2d.array.level.v4s32.f32",
-  "llvm.nvvm.tex.2d.array.level.v4u32.f32",
-  "llvm.nvvm.tex.2d.array.v4f32.f32",
-  "llvm.nvvm.tex.2d.array.v4f32.s32",
-  "llvm.nvvm.tex.2d.array.v4s32.f32",
-  "llvm.nvvm.tex.2d.array.v4s32.s32",
-  "llvm.nvvm.tex.2d.array.v4u32.f32",
-  "llvm.nvvm.tex.2d.array.v4u32.s32",
-  "llvm.nvvm.tex.2d.grad.v4f32.f32",
-  "llvm.nvvm.tex.2d.grad.v4s32.f32",
-  "llvm.nvvm.tex.2d.grad.v4u32.f32",
-  "llvm.nvvm.tex.2d.level.v4f32.f32",
-  "llvm.nvvm.tex.2d.level.v4s32.f32",
-  "llvm.nvvm.tex.2d.level.v4u32.f32",
-  "llvm.nvvm.tex.2d.v4f32.f32",
-  "llvm.nvvm.tex.2d.v4f32.s32",
-  "llvm.nvvm.tex.2d.v4s32.f32",
-  "llvm.nvvm.tex.2d.v4s32.s32",
-  "llvm.nvvm.tex.2d.v4u32.f32",
-  "llvm.nvvm.tex.2d.v4u32.s32",
-  "llvm.nvvm.tex.3d.grad.v4f32.f32",
-  "llvm.nvvm.tex.3d.grad.v4s32.f32",
-  "llvm.nvvm.tex.3d.grad.v4u32.f32",
-  "llvm.nvvm.tex.3d.level.v4f32.f32",
-  "llvm.nvvm.tex.3d.level.v4s32.f32",
-  "llvm.nvvm.tex.3d.level.v4u32.f32",
-  "llvm.nvvm.tex.3d.v4f32.f32",
-  "llvm.nvvm.tex.3d.v4f32.s32",
-  "llvm.nvvm.tex.3d.v4s32.f32",
-  "llvm.nvvm.tex.3d.v4s32.s32",
-  "llvm.nvvm.tex.3d.v4u32.f32",
-  "llvm.nvvm.tex.3d.v4u32.s32",
-  "llvm.nvvm.tex.cube.array.level.v4f32.f32",
-  "llvm.nvvm.tex.cube.array.level.v4s32.f32",
-  "llvm.nvvm.tex.cube.array.level.v4u32.f32",
-  "llvm.nvvm.tex.cube.array.v4f32.f32",
-  "llvm.nvvm.tex.cube.array.v4s32.f32",
-  "llvm.nvvm.tex.cube.array.v4u32.f32",
-  "llvm.nvvm.tex.cube.level.v4f32.f32",
-  "llvm.nvvm.tex.cube.level.v4s32.f32",
-  "llvm.nvvm.tex.cube.level.v4u32.f32",
-  "llvm.nvvm.tex.cube.v4f32.f32",
-  "llvm.nvvm.tex.cube.v4s32.f32",
-  "llvm.nvvm.tex.cube.v4u32.f32",
-  "llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32",
-  "llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32",
-  "llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32",
-  "llvm.nvvm.tex.unified.1d.array.level.v4f32.f32",
-  "llvm.nvvm.tex.unified.1d.array.level.v4s32.f32",
-  "llvm.nvvm.tex.unified.1d.array.level.v4u32.f32",
-  "llvm.nvvm.tex.unified.1d.array.v4f32.f32",
-  "llvm.nvvm.tex.unified.1d.array.v4f32.s32",
-  "llvm.nvvm.tex.unified.1d.array.v4s32.f32",
-  "llvm.nvvm.tex.unified.1d.array.v4s32.s32",
-  "llvm.nvvm.tex.unified.1d.array.v4u32.f32",
-  "llvm.nvvm.tex.unified.1d.array.v4u32.s32",
-  "llvm.nvvm.tex.unified.1d.grad.v4f32.f32",
-  "llvm.nvvm.tex.unified.1d.grad.v4s32.f32",
-  "llvm.nvvm.tex.unified.1d.grad.v4u32.f32",
-  "llvm.nvvm.tex.unified.1d.level.v4f32.f32",
-  "llvm.nvvm.tex.unified.1d.level.v4s32.f32",
-  "llvm.nvvm.tex.unified.1d.level.v4u32.f32",
-  "llvm.nvvm.tex.unified.1d.v4f32.f32",
-  "llvm.nvvm.tex.unified.1d.v4f32.s32",
-  "llvm.nvvm.tex.unified.1d.v4s32.f32",
-  "llvm.nvvm.tex.unified.1d.v4s32.s32",
-  "llvm.nvvm.tex.unified.1d.v4u32.f32",
-  "llvm.nvvm.tex.unified.1d.v4u32.s32",
-  "llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32",
-  "llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32",
-  "llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32",
-  "llvm.nvvm.tex.unified.2d.array.level.v4f32.f32",
-  "llvm.nvvm.tex.unified.2d.array.level.v4s32.f32",
-  "llvm.nvvm.tex.unified.2d.array.level.v4u32.f32",
-  "llvm.nvvm.tex.unified.2d.array.v4f32.f32",
-  "llvm.nvvm.tex.unified.2d.array.v4f32.s32",
-  "llvm.nvvm.tex.unified.2d.array.v4s32.f32",
-  "llvm.nvvm.tex.unified.2d.array.v4s32.s32",
-  "llvm.nvvm.tex.unified.2d.array.v4u32.f32",
-  "llvm.nvvm.tex.unified.2d.array.v4u32.s32",
-  "llvm.nvvm.tex.unified.2d.grad.v4f32.f32",
-  "llvm.nvvm.tex.unified.2d.grad.v4s32.f32",
-  "llvm.nvvm.tex.unified.2d.grad.v4u32.f32",
-  "llvm.nvvm.tex.unified.2d.level.v4f32.f32",
-  "llvm.nvvm.tex.unified.2d.level.v4s32.f32",
-  "llvm.nvvm.tex.unified.2d.level.v4u32.f32",
-  "llvm.nvvm.tex.unified.2d.v4f32.f32",
-  "llvm.nvvm.tex.unified.2d.v4f32.s32",
-  "llvm.nvvm.tex.unified.2d.v4s32.f32",
-  "llvm.nvvm.tex.unified.2d.v4s32.s32",
-  "llvm.nvvm.tex.unified.2d.v4u32.f32",
-  "llvm.nvvm.tex.unified.2d.v4u32.s32",
-  "llvm.nvvm.tex.unified.3d.grad.v4f32.f32",
-  "llvm.nvvm.tex.unified.3d.grad.v4s32.f32",
-  "llvm.nvvm.tex.unified.3d.grad.v4u32.f32",
-  "llvm.nvvm.tex.unified.3d.level.v4f32.f32",
-  "llvm.nvvm.tex.unified.3d.level.v4s32.f32",
-  "llvm.nvvm.tex.unified.3d.level.v4u32.f32",
-  "llvm.nvvm.tex.unified.3d.v4f32.f32",
-  "llvm.nvvm.tex.unified.3d.v4f32.s32",
-  "llvm.nvvm.tex.unified.3d.v4s32.f32",
-  "llvm.nvvm.tex.unified.3d.v4s32.s32",
-  "llvm.nvvm.tex.unified.3d.v4u32.f32",
-  "llvm.nvvm.tex.unified.3d.v4u32.s32",
-  "llvm.nvvm.tex.unified.cube.array.level.v4f32.f32",
-  "llvm.nvvm.tex.unified.cube.array.level.v4s32.f32",
-  "llvm.nvvm.tex.unified.cube.array.level.v4u32.f32",
-  "llvm.nvvm.tex.unified.cube.array.v4f32.f32",
-  "llvm.nvvm.tex.unified.cube.array.v4s32.f32",
-  "llvm.nvvm.tex.unified.cube.array.v4u32.f32",
-  "llvm.nvvm.tex.unified.cube.level.v4f32.f32",
-  "llvm.nvvm.tex.unified.cube.level.v4s32.f32",
-  "llvm.nvvm.tex.unified.cube.level.v4u32.f32",
-  "llvm.nvvm.tex.unified.cube.v4f32.f32",
-  "llvm.nvvm.tex.unified.cube.v4s32.f32",
-  "llvm.nvvm.tex.unified.cube.v4u32.f32",
-  "llvm.nvvm.texsurf.handle",
-  "llvm.nvvm.texsurf.handle.internal",
-  "llvm.nvvm.tld4.a.2d.v4f32.f32",
-  "llvm.nvvm.tld4.a.2d.v4s32.f32",
-  "llvm.nvvm.tld4.a.2d.v4u32.f32",
-  "llvm.nvvm.tld4.b.2d.v4f32.f32",
-  "llvm.nvvm.tld4.b.2d.v4s32.f32",
-  "llvm.nvvm.tld4.b.2d.v4u32.f32",
-  "llvm.nvvm.tld4.g.2d.v4f32.f32",
-  "llvm.nvvm.tld4.g.2d.v4s32.f32",
-  "llvm.nvvm.tld4.g.2d.v4u32.f32",
-  "llvm.nvvm.tld4.r.2d.v4f32.f32",
-  "llvm.nvvm.tld4.r.2d.v4s32.f32",
-  "llvm.nvvm.tld4.r.2d.v4u32.f32",
-  "llvm.nvvm.tld4.unified.a.2d.v4f32.f32",
-  "llvm.nvvm.tld4.unified.a.2d.v4s32.f32",
-  "llvm.nvvm.tld4.unified.a.2d.v4u32.f32",
-  "llvm.nvvm.tld4.unified.b.2d.v4f32.f32",
-  "llvm.nvvm.tld4.unified.b.2d.v4s32.f32",
-  "llvm.nvvm.tld4.unified.b.2d.v4u32.f32",
-  "llvm.nvvm.tld4.unified.g.2d.v4f32.f32",
-  "llvm.nvvm.tld4.unified.g.2d.v4s32.f32",
-  "llvm.nvvm.tld4.unified.g.2d.v4u32.f32",
-  "llvm.nvvm.tld4.unified.r.2d.v4f32.f32",
-  "llvm.nvvm.tld4.unified.r.2d.v4s32.f32",
-  "llvm.nvvm.tld4.unified.r.2d.v4u32.f32",
-  "llvm.nvvm.trunc.d",
-  "llvm.nvvm.trunc.f",
-  "llvm.nvvm.trunc.ftz.f",
-  "llvm.nvvm.txq.array.size",
-  "llvm.nvvm.txq.channel.data.type",
-  "llvm.nvvm.txq.channel.order",
-  "llvm.nvvm.txq.depth",
-  "llvm.nvvm.txq.height",
-  "llvm.nvvm.txq.num.mipmap.levels",
-  "llvm.nvvm.txq.num.samples",
-  "llvm.nvvm.txq.width",
-  "llvm.nvvm.ui2d.rm",
-  "llvm.nvvm.ui2d.rn",
-  "llvm.nvvm.ui2d.rp",
-  "llvm.nvvm.ui2d.rz",
-  "llvm.nvvm.ui2f.rm",
-  "llvm.nvvm.ui2f.rn",
-  "llvm.nvvm.ui2f.rp",
-  "llvm.nvvm.ui2f.rz",
-  "llvm.nvvm.ull2d.rm",
-  "llvm.nvvm.ull2d.rn",
-  "llvm.nvvm.ull2d.rp",
-  "llvm.nvvm.ull2d.rz",
-  "llvm.nvvm.ull2f.rm",
-  "llvm.nvvm.ull2f.rn",
-  "llvm.nvvm.ull2f.rp",
-  "llvm.nvvm.ull2f.rz",
-  "llvm.nvvm.vote.all",
-  "llvm.nvvm.vote.all.sync",
-  "llvm.nvvm.vote.any",
-  "llvm.nvvm.vote.any.sync",
-  "llvm.nvvm.vote.ballot",
-  "llvm.nvvm.vote.ballot.sync",
-  "llvm.nvvm.vote.uni",
-  "llvm.nvvm.vote.uni.sync",
-  "llvm.nvvm.wmma.m16n16k16.load.a.col.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.a.col.stride.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.a.row.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.a.row.stride.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.b.col.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.b.col.stride.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.b.row.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.b.row.stride.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.c.col.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.c.col.f32",
-  "llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f32",
-  "llvm.nvvm.wmma.m16n16k16.load.c.row.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.c.row.f32",
-  "llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f16",
-  "llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f32",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32",
-  "llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32",
-  "llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32.satfinite",
-  "llvm.nvvm.wmma.m16n16k16.store.d.col.f16",
-  "llvm.nvvm.wmma.m16n16k16.store.d.col.f32",
-  "llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f16",
-  "llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f32",
-  "llvm.nvvm.wmma.m16n16k16.store.d.row.f16",
-  "llvm.nvvm.wmma.m16n16k16.store.d.row.f32",
-  "llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f16",
-  "llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f32",
-  "llvm.ppc.altivec.crypto.vcipher",
-  "llvm.ppc.altivec.crypto.vcipherlast",
-  "llvm.ppc.altivec.crypto.vncipher",
-  "llvm.ppc.altivec.crypto.vncipherlast",
-  "llvm.ppc.altivec.crypto.vpermxor",
-  "llvm.ppc.altivec.crypto.vpmsumb",
-  "llvm.ppc.altivec.crypto.vpmsumd",
-  "llvm.ppc.altivec.crypto.vpmsumh",
-  "llvm.ppc.altivec.crypto.vpmsumw",
-  "llvm.ppc.altivec.crypto.vsbox",
-  "llvm.ppc.altivec.crypto.vshasigmad",
-  "llvm.ppc.altivec.crypto.vshasigmaw",
-  "llvm.ppc.altivec.dss",
-  "llvm.ppc.altivec.dssall",
-  "llvm.ppc.altivec.dst",
-  "llvm.ppc.altivec.dstst",
-  "llvm.ppc.altivec.dststt",
-  "llvm.ppc.altivec.dstt",
-  "llvm.ppc.altivec.lvebx",
-  "llvm.ppc.altivec.lvehx",
-  "llvm.ppc.altivec.lvewx",
-  "llvm.ppc.altivec.lvsl",
-  "llvm.ppc.altivec.lvsr",
-  "llvm.ppc.altivec.lvx",
-  "llvm.ppc.altivec.lvxl",
-  "llvm.ppc.altivec.mfvscr",
-  "llvm.ppc.altivec.mtvscr",
-  "llvm.ppc.altivec.stvebx",
-  "llvm.ppc.altivec.stvehx",
-  "llvm.ppc.altivec.stvewx",
-  "llvm.ppc.altivec.stvx",
-  "llvm.ppc.altivec.stvxl",
-  "llvm.ppc.altivec.vabsdub",
-  "llvm.ppc.altivec.vabsduh",
-  "llvm.ppc.altivec.vabsduw",
-  "llvm.ppc.altivec.vaddcuq",
-  "llvm.ppc.altivec.vaddcuw",
-  "llvm.ppc.altivec.vaddecuq",
-  "llvm.ppc.altivec.vaddeuqm",
-  "llvm.ppc.altivec.vaddsbs",
-  "llvm.ppc.altivec.vaddshs",
-  "llvm.ppc.altivec.vaddsws",
-  "llvm.ppc.altivec.vaddubs",
-  "llvm.ppc.altivec.vadduhs",
-  "llvm.ppc.altivec.vadduws",
-  "llvm.ppc.altivec.vavgsb",
-  "llvm.ppc.altivec.vavgsh",
-  "llvm.ppc.altivec.vavgsw",
-  "llvm.ppc.altivec.vavgub",
-  "llvm.ppc.altivec.vavguh",
-  "llvm.ppc.altivec.vavguw",
-  "llvm.ppc.altivec.vbpermq",
-  "llvm.ppc.altivec.vcfsx",
-  "llvm.ppc.altivec.vcfux",
-  "llvm.ppc.altivec.vclzlsbb",
-  "llvm.ppc.altivec.vcmpbfp",
-  "llvm.ppc.altivec.vcmpbfp.p",
-  "llvm.ppc.altivec.vcmpeqfp",
-  "llvm.ppc.altivec.vcmpeqfp.p",
-  "llvm.ppc.altivec.vcmpequb",
-  "llvm.ppc.altivec.vcmpequb.p",
-  "llvm.ppc.altivec.vcmpequd",
-  "llvm.ppc.altivec.vcmpequd.p",
-  "llvm.ppc.altivec.vcmpequh",
-  "llvm.ppc.altivec.vcmpequh.p",
-  "llvm.ppc.altivec.vcmpequw",
-  "llvm.ppc.altivec.vcmpequw.p",
-  "llvm.ppc.altivec.vcmpgefp",
-  "llvm.ppc.altivec.vcmpgefp.p",
-  "llvm.ppc.altivec.vcmpgtfp",
-  "llvm.ppc.altivec.vcmpgtfp.p",
-  "llvm.ppc.altivec.vcmpgtsb",
-  "llvm.ppc.altivec.vcmpgtsb.p",
-  "llvm.ppc.altivec.vcmpgtsd",
-  "llvm.ppc.altivec.vcmpgtsd.p",
-  "llvm.ppc.altivec.vcmpgtsh",
-  "llvm.ppc.altivec.vcmpgtsh.p",
-  "llvm.ppc.altivec.vcmpgtsw",
-  "llvm.ppc.altivec.vcmpgtsw.p",
-  "llvm.ppc.altivec.vcmpgtub",
-  "llvm.ppc.altivec.vcmpgtub.p",
-  "llvm.ppc.altivec.vcmpgtud",
-  "llvm.ppc.altivec.vcmpgtud.p",
-  "llvm.ppc.altivec.vcmpgtuh",
-  "llvm.ppc.altivec.vcmpgtuh.p",
-  "llvm.ppc.altivec.vcmpgtuw",
-  "llvm.ppc.altivec.vcmpgtuw.p",
-  "llvm.ppc.altivec.vcmpneb",
-  "llvm.ppc.altivec.vcmpneb.p",
-  "llvm.ppc.altivec.vcmpneh",
-  "llvm.ppc.altivec.vcmpneh.p",
-  "llvm.ppc.altivec.vcmpnew",
-  "llvm.ppc.altivec.vcmpnew.p",
-  "llvm.ppc.altivec.vcmpnezb",
-  "llvm.ppc.altivec.vcmpnezb.p",
-  "llvm.ppc.altivec.vcmpnezh",
-  "llvm.ppc.altivec.vcmpnezh.p",
-  "llvm.ppc.altivec.vcmpnezw",
-  "llvm.ppc.altivec.vcmpnezw.p",
-  "llvm.ppc.altivec.vctsxs",
-  "llvm.ppc.altivec.vctuxs",
-  "llvm.ppc.altivec.vctzlsbb",
-  "llvm.ppc.altivec.vexptefp",
-  "llvm.ppc.altivec.vgbbd",
-  "llvm.ppc.altivec.vlogefp",
-  "llvm.ppc.altivec.vmaddfp",
-  "llvm.ppc.altivec.vmaxfp",
-  "llvm.ppc.altivec.vmaxsb",
-  "llvm.ppc.altivec.vmaxsd",
-  "llvm.ppc.altivec.vmaxsh",
-  "llvm.ppc.altivec.vmaxsw",
-  "llvm.ppc.altivec.vmaxub",
-  "llvm.ppc.altivec.vmaxud",
-  "llvm.ppc.altivec.vmaxuh",
-  "llvm.ppc.altivec.vmaxuw",
-  "llvm.ppc.altivec.vmhaddshs",
-  "llvm.ppc.altivec.vmhraddshs",
-  "llvm.ppc.altivec.vminfp",
-  "llvm.ppc.altivec.vminsb",
-  "llvm.ppc.altivec.vminsd",
-  "llvm.ppc.altivec.vminsh",
-  "llvm.ppc.altivec.vminsw",
-  "llvm.ppc.altivec.vminub",
-  "llvm.ppc.altivec.vminud",
-  "llvm.ppc.altivec.vminuh",
-  "llvm.ppc.altivec.vminuw",
-  "llvm.ppc.altivec.vmladduhm",
-  "llvm.ppc.altivec.vmsummbm",
-  "llvm.ppc.altivec.vmsumshm",
-  "llvm.ppc.altivec.vmsumshs",
-  "llvm.ppc.altivec.vmsumubm",
-  "llvm.ppc.altivec.vmsumuhm",
-  "llvm.ppc.altivec.vmsumuhs",
-  "llvm.ppc.altivec.vmulesb",
-  "llvm.ppc.altivec.vmulesh",
-  "llvm.ppc.altivec.vmulesw",
-  "llvm.ppc.altivec.vmuleub",
-  "llvm.ppc.altivec.vmuleuh",
-  "llvm.ppc.altivec.vmuleuw",
-  "llvm.ppc.altivec.vmulosb",
-  "llvm.ppc.altivec.vmulosh",
-  "llvm.ppc.altivec.vmulosw",
-  "llvm.ppc.altivec.vmuloub",
-  "llvm.ppc.altivec.vmulouh",
-  "llvm.ppc.altivec.vmulouw",
-  "llvm.ppc.altivec.vnmsubfp",
-  "llvm.ppc.altivec.vperm",
-  "llvm.ppc.altivec.vpkpx",
-  "llvm.ppc.altivec.vpksdss",
-  "llvm.ppc.altivec.vpksdus",
-  "llvm.ppc.altivec.vpkshss",
-  "llvm.ppc.altivec.vpkshus",
-  "llvm.ppc.altivec.vpkswss",
-  "llvm.ppc.altivec.vpkswus",
-  "llvm.ppc.altivec.vpkudus",
-  "llvm.ppc.altivec.vpkuhus",
-  "llvm.ppc.altivec.vpkuwus",
-  "llvm.ppc.altivec.vprtybd",
-  "llvm.ppc.altivec.vprtybq",
-  "llvm.ppc.altivec.vprtybw",
-  "llvm.ppc.altivec.vrefp",
-  "llvm.ppc.altivec.vrfim",
-  "llvm.ppc.altivec.vrfin",
-  "llvm.ppc.altivec.vrfip",
-  "llvm.ppc.altivec.vrfiz",
-  "llvm.ppc.altivec.vrlb",
-  "llvm.ppc.altivec.vrld",
-  "llvm.ppc.altivec.vrldmi",
-  "llvm.ppc.altivec.vrldnm",
-  "llvm.ppc.altivec.vrlh",
-  "llvm.ppc.altivec.vrlw",
-  "llvm.ppc.altivec.vrlwmi",
-  "llvm.ppc.altivec.vrlwnm",
-  "llvm.ppc.altivec.vrsqrtefp",
-  "llvm.ppc.altivec.vsel",
-  "llvm.ppc.altivec.vsl",
-  "llvm.ppc.altivec.vslb",
-  "llvm.ppc.altivec.vslh",
-  "llvm.ppc.altivec.vslo",
-  "llvm.ppc.altivec.vslv",
-  "llvm.ppc.altivec.vslw",
-  "llvm.ppc.altivec.vsr",
-  "llvm.ppc.altivec.vsrab",
-  "llvm.ppc.altivec.vsrah",
-  "llvm.ppc.altivec.vsraw",
-  "llvm.ppc.altivec.vsrb",
-  "llvm.ppc.altivec.vsrh",
-  "llvm.ppc.altivec.vsro",
-  "llvm.ppc.altivec.vsrv",
-  "llvm.ppc.altivec.vsrw",
-  "llvm.ppc.altivec.vsubcuq",
-  "llvm.ppc.altivec.vsubcuw",
-  "llvm.ppc.altivec.vsubecuq",
-  "llvm.ppc.altivec.vsubeuqm",
-  "llvm.ppc.altivec.vsubsbs",
-  "llvm.ppc.altivec.vsubshs",
-  "llvm.ppc.altivec.vsubsws",
-  "llvm.ppc.altivec.vsububs",
-  "llvm.ppc.altivec.vsubuhs",
-  "llvm.ppc.altivec.vsubuws",
-  "llvm.ppc.altivec.vsum2sws",
-  "llvm.ppc.altivec.vsum4sbs",
-  "llvm.ppc.altivec.vsum4shs",
-  "llvm.ppc.altivec.vsum4ubs",
-  "llvm.ppc.altivec.vsumsws",
-  "llvm.ppc.altivec.vupkhpx",
-  "llvm.ppc.altivec.vupkhsb",
-  "llvm.ppc.altivec.vupkhsh",
-  "llvm.ppc.altivec.vupkhsw",
-  "llvm.ppc.altivec.vupklpx",
-  "llvm.ppc.altivec.vupklsb",
-  "llvm.ppc.altivec.vupklsh",
-  "llvm.ppc.altivec.vupklsw",
-  "llvm.ppc.bpermd",
-  "llvm.ppc.cfence",
-  "llvm.ppc.dcba",
-  "llvm.ppc.dcbf",
-  "llvm.ppc.dcbi",
-  "llvm.ppc.dcbst",
-  "llvm.ppc.dcbt",
-  "llvm.ppc.dcbtst",
-  "llvm.ppc.dcbz",
-  "llvm.ppc.dcbzl",
-  "llvm.ppc.divde",
-  "llvm.ppc.divdeu",
-  "llvm.ppc.divwe",
-  "llvm.ppc.divweu",
-  "llvm.ppc.get.texasr",
-  "llvm.ppc.get.texasru",
-  "llvm.ppc.get.tfhar",
-  "llvm.ppc.get.tfiar",
-  "llvm.ppc.is.decremented.ctr.nonzero",
-  "llvm.ppc.lwsync",
-  "llvm.ppc.mtctr",
-  "llvm.ppc.qpx.qvfabs",
-  "llvm.ppc.qpx.qvfadd",
-  "llvm.ppc.qpx.qvfadds",
-  "llvm.ppc.qpx.qvfcfid",
-  "llvm.ppc.qpx.qvfcfids",
-  "llvm.ppc.qpx.qvfcfidu",
-  "llvm.ppc.qpx.qvfcfidus",
-  "llvm.ppc.qpx.qvfcmpeq",
-  "llvm.ppc.qpx.qvfcmpgt",
-  "llvm.ppc.qpx.qvfcmplt",
-  "llvm.ppc.qpx.qvfcpsgn",
-  "llvm.ppc.qpx.qvfctid",
-  "llvm.ppc.qpx.qvfctidu",
-  "llvm.ppc.qpx.qvfctiduz",
-  "llvm.ppc.qpx.qvfctidz",
-  "llvm.ppc.qpx.qvfctiw",
-  "llvm.ppc.qpx.qvfctiwu",
-  "llvm.ppc.qpx.qvfctiwuz",
-  "llvm.ppc.qpx.qvfctiwz",
-  "llvm.ppc.qpx.qvflogical",
-  "llvm.ppc.qpx.qvfmadd",
-  "llvm.ppc.qpx.qvfmadds",
-  "llvm.ppc.qpx.qvfmsub",
-  "llvm.ppc.qpx.qvfmsubs",
-  "llvm.ppc.qpx.qvfmul",
-  "llvm.ppc.qpx.qvfmuls",
-  "llvm.ppc.qpx.qvfnabs",
-  "llvm.ppc.qpx.qvfneg",
-  "llvm.ppc.qpx.qvfnmadd",
-  "llvm.ppc.qpx.qvfnmadds",
-  "llvm.ppc.qpx.qvfnmsub",
-  "llvm.ppc.qpx.qvfnmsubs",
-  "llvm.ppc.qpx.qvfperm",
-  "llvm.ppc.qpx.qvfre",
-  "llvm.ppc.qpx.qvfres",
-  "llvm.ppc.qpx.qvfrim",
-  "llvm.ppc.qpx.qvfrin",
-  "llvm.ppc.qpx.qvfrip",
-  "llvm.ppc.qpx.qvfriz",
-  "llvm.ppc.qpx.qvfrsp",
-  "llvm.ppc.qpx.qvfrsqrte",
-  "llvm.ppc.qpx.qvfrsqrtes",
-  "llvm.ppc.qpx.qvfsel",
-  "llvm.ppc.qpx.qvfsub",
-  "llvm.ppc.qpx.qvfsubs",
-  "llvm.ppc.qpx.qvftstnan",
-  "llvm.ppc.qpx.qvfxmadd",
-  "llvm.ppc.qpx.qvfxmadds",
-  "llvm.ppc.qpx.qvfxmul",
-  "llvm.ppc.qpx.qvfxmuls",
-  "llvm.ppc.qpx.qvfxxcpnmadd",
-  "llvm.ppc.qpx.qvfxxcpnmadds",
-  "llvm.ppc.qpx.qvfxxmadd",
-  "llvm.ppc.qpx.qvfxxmadds",
-  "llvm.ppc.qpx.qvfxxnpmadd",
-  "llvm.ppc.qpx.qvfxxnpmadds",
-  "llvm.ppc.qpx.qvgpci",
-  "llvm.ppc.qpx.qvlfcd",
-  "llvm.ppc.qpx.qvlfcda",
-  "llvm.ppc.qpx.qvlfcs",
-  "llvm.ppc.qpx.qvlfcsa",
-  "llvm.ppc.qpx.qvlfd",
-  "llvm.ppc.qpx.qvlfda",
-  "llvm.ppc.qpx.qvlfiwa",
-  "llvm.ppc.qpx.qvlfiwaa",
-  "llvm.ppc.qpx.qvlfiwz",
-  "llvm.ppc.qpx.qvlfiwza",
-  "llvm.ppc.qpx.qvlfs",
-  "llvm.ppc.qpx.qvlfsa",
-  "llvm.ppc.qpx.qvlpcld",
-  "llvm.ppc.qpx.qvlpcls",
-  "llvm.ppc.qpx.qvlpcrd",
-  "llvm.ppc.qpx.qvlpcrs",
-  "llvm.ppc.qpx.qvstfcd",
-  "llvm.ppc.qpx.qvstfcda",
-  "llvm.ppc.qpx.qvstfcs",
-  "llvm.ppc.qpx.qvstfcsa",
-  "llvm.ppc.qpx.qvstfd",
-  "llvm.ppc.qpx.qvstfda",
-  "llvm.ppc.qpx.qvstfiw",
-  "llvm.ppc.qpx.qvstfiwa",
-  "llvm.ppc.qpx.qvstfs",
-  "llvm.ppc.qpx.qvstfsa",
-  "llvm.ppc.set.texasr",
-  "llvm.ppc.set.texasru",
-  "llvm.ppc.set.tfhar",
-  "llvm.ppc.set.tfiar",
-  "llvm.ppc.sync",
-  "llvm.ppc.tabort",
-  "llvm.ppc.tabortdc",
-  "llvm.ppc.tabortdci",
-  "llvm.ppc.tabortwc",
-  "llvm.ppc.tabortwci",
-  "llvm.ppc.tbegin",
-  "llvm.ppc.tcheck",
-  "llvm.ppc.tend",
-  "llvm.ppc.tendall",
-  "llvm.ppc.trechkpt",
-  "llvm.ppc.treclaim",
-  "llvm.ppc.tresume",
-  "llvm.ppc.tsr",
-  "llvm.ppc.tsuspend",
-  "llvm.ppc.ttest",
-  "llvm.ppc.vsx.lxvd2x",
-  "llvm.ppc.vsx.lxvd2x.be",
-  "llvm.ppc.vsx.lxvl",
-  "llvm.ppc.vsx.lxvll",
-  "llvm.ppc.vsx.lxvw4x",
-  "llvm.ppc.vsx.lxvw4x.be",
-  "llvm.ppc.vsx.stxvd2x",
-  "llvm.ppc.vsx.stxvd2x.be",
-  "llvm.ppc.vsx.stxvl",
-  "llvm.ppc.vsx.stxvll",
-  "llvm.ppc.vsx.stxvw4x",
-  "llvm.ppc.vsx.stxvw4x.be",
-  "llvm.ppc.vsx.xsmaxdp",
-  "llvm.ppc.vsx.xsmindp",
-  "llvm.ppc.vsx.xvcmpeqdp",
-  "llvm.ppc.vsx.xvcmpeqdp.p",
-  "llvm.ppc.vsx.xvcmpeqsp",
-  "llvm.ppc.vsx.xvcmpeqsp.p",
-  "llvm.ppc.vsx.xvcmpgedp",
-  "llvm.ppc.vsx.xvcmpgedp.p",
-  "llvm.ppc.vsx.xvcmpgesp",
-  "llvm.ppc.vsx.xvcmpgesp.p",
-  "llvm.ppc.vsx.xvcmpgtdp",
-  "llvm.ppc.vsx.xvcmpgtdp.p",
-  "llvm.ppc.vsx.xvcmpgtsp",
-  "llvm.ppc.vsx.xvcmpgtsp.p",
-  "llvm.ppc.vsx.xvcvdpsp",
-  "llvm.ppc.vsx.xvcvdpsxws",
-  "llvm.ppc.vsx.xvcvdpuxws",
-  "llvm.ppc.vsx.xvcvhpsp",
-  "llvm.ppc.vsx.xvcvspdp",
-  "llvm.ppc.vsx.xvcvsphp",
-  "llvm.ppc.vsx.xvcvsxdsp",
-  "llvm.ppc.vsx.xvcvsxwdp",
-  "llvm.ppc.vsx.xvcvuxdsp",
-  "llvm.ppc.vsx.xvcvuxwdp",
-  "llvm.ppc.vsx.xvdivdp",
-  "llvm.ppc.vsx.xvdivsp",
-  "llvm.ppc.vsx.xviexpdp",
-  "llvm.ppc.vsx.xviexpsp",
-  "llvm.ppc.vsx.xvmaxdp",
-  "llvm.ppc.vsx.xvmaxsp",
-  "llvm.ppc.vsx.xvmindp",
-  "llvm.ppc.vsx.xvminsp",
-  "llvm.ppc.vsx.xvrdpip",
-  "llvm.ppc.vsx.xvredp",
-  "llvm.ppc.vsx.xvresp",
-  "llvm.ppc.vsx.xvrspip",
-  "llvm.ppc.vsx.xvrsqrtedp",
-  "llvm.ppc.vsx.xvrsqrtesp",
-  "llvm.ppc.vsx.xvtstdcdp",
-  "llvm.ppc.vsx.xvtstdcsp",
-  "llvm.ppc.vsx.xvxexpdp",
-  "llvm.ppc.vsx.xvxexpsp",
-  "llvm.ppc.vsx.xvxsigdp",
-  "llvm.ppc.vsx.xvxsigsp",
-  "llvm.ppc.vsx.xxextractuw",
-  "llvm.ppc.vsx.xxinsertw",
-  "llvm.ppc.vsx.xxleqv",
-  "llvm.r600.cube",
-  "llvm.r600.group.barrier",
-  "llvm.r600.implicitarg.ptr",
-  "llvm.r600.rat.store.typed",
-  "llvm.r600.read.global.size.x",
-  "llvm.r600.read.global.size.y",
-  "llvm.r600.read.global.size.z",
-  "llvm.r600.read.local.size.x",
-  "llvm.r600.read.local.size.y",
-  "llvm.r600.read.local.size.z",
-  "llvm.r600.read.ngroups.x",
-  "llvm.r600.read.ngroups.y",
-  "llvm.r600.read.ngroups.z",
-  "llvm.r600.read.tgid.x",
-  "llvm.r600.read.tgid.y",
-  "llvm.r600.read.tgid.z",
-  "llvm.r600.read.tidig.x",
-  "llvm.r600.read.tidig.y",
-  "llvm.r600.read.tidig.z",
-  "llvm.r600.recipsqrt.clamped",
-  "llvm.r600.recipsqrt.ieee",
-  "llvm.s390.efpc",
-  "llvm.s390.etnd",
-  "llvm.s390.lcbb",
-  "llvm.s390.ntstg",
-  "llvm.s390.ppa.txassist",
-  "llvm.s390.sfpc",
-  "llvm.s390.tabort",
-  "llvm.s390.tbegin",
-  "llvm.s390.tbegin.nofloat",
-  "llvm.s390.tbeginc",
-  "llvm.s390.tdc",
-  "llvm.s390.tend",
-  "llvm.s390.vaccb",
-  "llvm.s390.vacccq",
-  "llvm.s390.vaccf",
-  "llvm.s390.vaccg",
-  "llvm.s390.vacch",
-  "llvm.s390.vaccq",
-  "llvm.s390.vacq",
-  "llvm.s390.vaq",
-  "llvm.s390.vavgb",
-  "llvm.s390.vavgf",
-  "llvm.s390.vavgg",
-  "llvm.s390.vavgh",
-  "llvm.s390.vavglb",
-  "llvm.s390.vavglf",
-  "llvm.s390.vavglg",
-  "llvm.s390.vavglh",
-  "llvm.s390.vbperm",
-  "llvm.s390.vceqbs",
-  "llvm.s390.vceqfs",
-  "llvm.s390.vceqgs",
-  "llvm.s390.vceqhs",
-  "llvm.s390.vchbs",
-  "llvm.s390.vchfs",
-  "llvm.s390.vchgs",
-  "llvm.s390.vchhs",
-  "llvm.s390.vchlbs",
-  "llvm.s390.vchlfs",
-  "llvm.s390.vchlgs",
-  "llvm.s390.vchlhs",
-  "llvm.s390.vcksm",
-  "llvm.s390.verimb",
-  "llvm.s390.verimf",
-  "llvm.s390.verimg",
-  "llvm.s390.verimh",
-  "llvm.s390.verllb",
-  "llvm.s390.verllf",
-  "llvm.s390.verllg",
-  "llvm.s390.verllh",
-  "llvm.s390.verllvb",
-  "llvm.s390.verllvf",
-  "llvm.s390.verllvg",
-  "llvm.s390.verllvh",
-  "llvm.s390.vfaeb",
-  "llvm.s390.vfaebs",
-  "llvm.s390.vfaef",
-  "llvm.s390.vfaefs",
-  "llvm.s390.vfaeh",
-  "llvm.s390.vfaehs",
-  "llvm.s390.vfaezb",
-  "llvm.s390.vfaezbs",
-  "llvm.s390.vfaezf",
-  "llvm.s390.vfaezfs",
-  "llvm.s390.vfaezh",
-  "llvm.s390.vfaezhs",
-  "llvm.s390.vfcedbs",
-  "llvm.s390.vfcesbs",
-  "llvm.s390.vfchdbs",
-  "llvm.s390.vfchedbs",
-  "llvm.s390.vfchesbs",
-  "llvm.s390.vfchsbs",
-  "llvm.s390.vfeeb",
-  "llvm.s390.vfeebs",
-  "llvm.s390.vfeef",
-  "llvm.s390.vfeefs",
-  "llvm.s390.vfeeh",
-  "llvm.s390.vfeehs",
-  "llvm.s390.vfeezb",
-  "llvm.s390.vfeezbs",
-  "llvm.s390.vfeezf",
-  "llvm.s390.vfeezfs",
-  "llvm.s390.vfeezh",
-  "llvm.s390.vfeezhs",
-  "llvm.s390.vfeneb",
-  "llvm.s390.vfenebs",
-  "llvm.s390.vfenef",
-  "llvm.s390.vfenefs",
-  "llvm.s390.vfeneh",
-  "llvm.s390.vfenehs",
-  "llvm.s390.vfenezb",
-  "llvm.s390.vfenezbs",
-  "llvm.s390.vfenezf",
-  "llvm.s390.vfenezfs",
-  "llvm.s390.vfenezh",
-  "llvm.s390.vfenezhs",
-  "llvm.s390.vfidb",
-  "llvm.s390.vfisb",
-  "llvm.s390.vfmaxdb",
-  "llvm.s390.vfmaxsb",
-  "llvm.s390.vfmindb",
-  "llvm.s390.vfminsb",
-  "llvm.s390.vftcidb",
-  "llvm.s390.vftcisb",
-  "llvm.s390.vgfmab",
-  "llvm.s390.vgfmaf",
-  "llvm.s390.vgfmag",
-  "llvm.s390.vgfmah",
-  "llvm.s390.vgfmb",
-  "llvm.s390.vgfmf",
-  "llvm.s390.vgfmg",
-  "llvm.s390.vgfmh",
-  "llvm.s390.vistrb",
-  "llvm.s390.vistrbs",
-  "llvm.s390.vistrf",
-  "llvm.s390.vistrfs",
-  "llvm.s390.vistrh",
-  "llvm.s390.vistrhs",
-  "llvm.s390.vlbb",
-  "llvm.s390.vll",
-  "llvm.s390.vlrl",
-  "llvm.s390.vmaeb",
-  "llvm.s390.vmaef",
-  "llvm.s390.vmaeh",
-  "llvm.s390.vmahb",
-  "llvm.s390.vmahf",
-  "llvm.s390.vmahh",
-  "llvm.s390.vmaleb",
-  "llvm.s390.vmalef",
-  "llvm.s390.vmaleh",
-  "llvm.s390.vmalhb",
-  "llvm.s390.vmalhf",
-  "llvm.s390.vmalhh",
-  "llvm.s390.vmalob",
-  "llvm.s390.vmalof",
-  "llvm.s390.vmaloh",
-  "llvm.s390.vmaob",
-  "llvm.s390.vmaof",
-  "llvm.s390.vmaoh",
-  "llvm.s390.vmeb",
-  "llvm.s390.vmef",
-  "llvm.s390.vmeh",
-  "llvm.s390.vmhb",
-  "llvm.s390.vmhf",
-  "llvm.s390.vmhh",
-  "llvm.s390.vmleb",
-  "llvm.s390.vmlef",
-  "llvm.s390.vmleh",
-  "llvm.s390.vmlhb",
-  "llvm.s390.vmlhf",
-  "llvm.s390.vmlhh",
-  "llvm.s390.vmlob",
-  "llvm.s390.vmlof",
-  "llvm.s390.vmloh",
-  "llvm.s390.vmob",
-  "llvm.s390.vmof",
-  "llvm.s390.vmoh",
-  "llvm.s390.vmslg",
-  "llvm.s390.vpdi",
-  "llvm.s390.vperm",
-  "llvm.s390.vpklsf",
-  "llvm.s390.vpklsfs",
-  "llvm.s390.vpklsg",
-  "llvm.s390.vpklsgs",
-  "llvm.s390.vpklsh",
-  "llvm.s390.vpklshs",
-  "llvm.s390.vpksf",
-  "llvm.s390.vpksfs",
-  "llvm.s390.vpksg",
-  "llvm.s390.vpksgs",
-  "llvm.s390.vpksh",
-  "llvm.s390.vpkshs",
-  "llvm.s390.vsbcbiq",
-  "llvm.s390.vsbiq",
-  "llvm.s390.vscbib",
-  "llvm.s390.vscbif",
-  "llvm.s390.vscbig",
-  "llvm.s390.vscbih",
-  "llvm.s390.vscbiq",
-  "llvm.s390.vsl",
-  "llvm.s390.vslb",
-  "llvm.s390.vsldb",
-  "llvm.s390.vsq",
-  "llvm.s390.vsra",
-  "llvm.s390.vsrab",
-  "llvm.s390.vsrl",
-  "llvm.s390.vsrlb",
-  "llvm.s390.vstl",
-  "llvm.s390.vstrcb",
-  "llvm.s390.vstrcbs",
-  "llvm.s390.vstrcf",
-  "llvm.s390.vstrcfs",
-  "llvm.s390.vstrch",
-  "llvm.s390.vstrchs",
-  "llvm.s390.vstrczb",
-  "llvm.s390.vstrczbs",
-  "llvm.s390.vstrczf",
-  "llvm.s390.vstrczfs",
-  "llvm.s390.vstrczh",
-  "llvm.s390.vstrczhs",
-  "llvm.s390.vstrl",
-  "llvm.s390.vsumb",
-  "llvm.s390.vsumgf",
-  "llvm.s390.vsumgh",
-  "llvm.s390.vsumh",
-  "llvm.s390.vsumqf",
-  "llvm.s390.vsumqg",
-  "llvm.s390.vtm",
-  "llvm.s390.vuphb",
-  "llvm.s390.vuphf",
-  "llvm.s390.vuphh",
-  "llvm.s390.vuplb",
-  "llvm.s390.vuplf",
-  "llvm.s390.vuplhb",
-  "llvm.s390.vuplhf",
-  "llvm.s390.vuplhh",
-  "llvm.s390.vuplhw",
-  "llvm.s390.vupllb",
-  "llvm.s390.vupllf",
-  "llvm.s390.vupllh",
-  "llvm.wasm.current.memory",
-  "llvm.wasm.get.ehselector",
-  "llvm.wasm.get.exception",
-  "llvm.wasm.grow.memory",
-  "llvm.wasm.mem.grow",
-  "llvm.wasm.mem.size",
-  "llvm.wasm.rethrow",
-  "llvm.wasm.throw",
-  "llvm.x86.3dnow.pavgusb",
-  "llvm.x86.3dnow.pf2id",
-  "llvm.x86.3dnow.pfacc",
-  "llvm.x86.3dnow.pfadd",
-  "llvm.x86.3dnow.pfcmpeq",
-  "llvm.x86.3dnow.pfcmpge",
-  "llvm.x86.3dnow.pfcmpgt",
-  "llvm.x86.3dnow.pfmax",
-  "llvm.x86.3dnow.pfmin",
-  "llvm.x86.3dnow.pfmul",
-  "llvm.x86.3dnow.pfrcp",
-  "llvm.x86.3dnow.pfrcpit1",
-  "llvm.x86.3dnow.pfrcpit2",
-  "llvm.x86.3dnow.pfrsqit1",
-  "llvm.x86.3dnow.pfrsqrt",
-  "llvm.x86.3dnow.pfsub",
-  "llvm.x86.3dnow.pfsubr",
-  "llvm.x86.3dnow.pi2fd",
-  "llvm.x86.3dnow.pmulhrw",
-  "llvm.x86.3dnowa.pf2iw",
-  "llvm.x86.3dnowa.pfnacc",
-  "llvm.x86.3dnowa.pfpnacc",
-  "llvm.x86.3dnowa.pi2fw",
-  "llvm.x86.3dnowa.pswapd",
-  "llvm.x86.addcarry.u32",
-  "llvm.x86.addcarry.u64",
-  "llvm.x86.addcarryx.u32",
-  "llvm.x86.addcarryx.u64",
-  "llvm.x86.aesni.aesdec",
-  "llvm.x86.aesni.aesdec.256",
-  "llvm.x86.aesni.aesdec.512",
-  "llvm.x86.aesni.aesdeclast",
-  "llvm.x86.aesni.aesdeclast.256",
-  "llvm.x86.aesni.aesdeclast.512",
-  "llvm.x86.aesni.aesenc",
-  "llvm.x86.aesni.aesenc.256",
-  "llvm.x86.aesni.aesenc.512",
-  "llvm.x86.aesni.aesenclast",
-  "llvm.x86.aesni.aesenclast.256",
-  "llvm.x86.aesni.aesenclast.512",
-  "llvm.x86.aesni.aesimc",
-  "llvm.x86.aesni.aeskeygenassist",
-  "llvm.x86.avx.addsub.pd.256",
-  "llvm.x86.avx.addsub.ps.256",
-  "llvm.x86.avx.blendv.pd.256",
-  "llvm.x86.avx.blendv.ps.256",
-  "llvm.x86.avx.cmp.pd.256",
-  "llvm.x86.avx.cmp.ps.256",
-  "llvm.x86.avx.cvt.pd2.ps.256",
-  "llvm.x86.avx.cvt.pd2dq.256",
-  "llvm.x86.avx.cvt.ps2dq.256",
-  "llvm.x86.avx.cvtdq2.ps.256",
-  "llvm.x86.avx.cvtt.pd2dq.256",
-  "llvm.x86.avx.cvtt.ps2dq.256",
-  "llvm.x86.avx.dp.ps.256",
-  "llvm.x86.avx.hadd.pd.256",
-  "llvm.x86.avx.hadd.ps.256",
-  "llvm.x86.avx.hsub.pd.256",
-  "llvm.x86.avx.hsub.ps.256",
-  "llvm.x86.avx.ldu.dq.256",
-  "llvm.x86.avx.maskload.pd",
-  "llvm.x86.avx.maskload.pd.256",
-  "llvm.x86.avx.maskload.ps",
-  "llvm.x86.avx.maskload.ps.256",
-  "llvm.x86.avx.maskstore.pd",
-  "llvm.x86.avx.maskstore.pd.256",
-  "llvm.x86.avx.maskstore.ps",
-  "llvm.x86.avx.maskstore.ps.256",
-  "llvm.x86.avx.max.pd.256",
-  "llvm.x86.avx.max.ps.256",
-  "llvm.x86.avx.min.pd.256",
-  "llvm.x86.avx.min.ps.256",
-  "llvm.x86.avx.movmsk.pd.256",
-  "llvm.x86.avx.movmsk.ps.256",
-  "llvm.x86.avx.ptestc.256",
-  "llvm.x86.avx.ptestnzc.256",
-  "llvm.x86.avx.ptestz.256",
-  "llvm.x86.avx.rcp.ps.256",
-  "llvm.x86.avx.round.pd.256",
-  "llvm.x86.avx.round.ps.256",
-  "llvm.x86.avx.rsqrt.ps.256",
-  "llvm.x86.avx.sqrt.pd.256",
-  "llvm.x86.avx.sqrt.ps.256",
-  "llvm.x86.avx.vpermilvar.pd",
-  "llvm.x86.avx.vpermilvar.pd.256",
-  "llvm.x86.avx.vpermilvar.ps",
-  "llvm.x86.avx.vpermilvar.ps.256",
-  "llvm.x86.avx.vtestc.pd",
-  "llvm.x86.avx.vtestc.pd.256",
-  "llvm.x86.avx.vtestc.ps",
-  "llvm.x86.avx.vtestc.ps.256",
-  "llvm.x86.avx.vtestnzc.pd",
-  "llvm.x86.avx.vtestnzc.pd.256",
-  "llvm.x86.avx.vtestnzc.ps",
-  "llvm.x86.avx.vtestnzc.ps.256",
-  "llvm.x86.avx.vtestz.pd",
-  "llvm.x86.avx.vtestz.pd.256",
-  "llvm.x86.avx.vtestz.ps",
-  "llvm.x86.avx.vtestz.ps.256",
-  "llvm.x86.avx.vzeroall",
-  "llvm.x86.avx.vzeroupper",
-  "llvm.x86.avx2.gather.d.d",
-  "llvm.x86.avx2.gather.d.d.256",
-  "llvm.x86.avx2.gather.d.pd",
-  "llvm.x86.avx2.gather.d.pd.256",
-  "llvm.x86.avx2.gather.d.ps",
-  "llvm.x86.avx2.gather.d.ps.256",
-  "llvm.x86.avx2.gather.d.q",
-  "llvm.x86.avx2.gather.d.q.256",
-  "llvm.x86.avx2.gather.q.d",
-  "llvm.x86.avx2.gather.q.d.256",
-  "llvm.x86.avx2.gather.q.pd",
-  "llvm.x86.avx2.gather.q.pd.256",
-  "llvm.x86.avx2.gather.q.ps",
-  "llvm.x86.avx2.gather.q.ps.256",
-  "llvm.x86.avx2.gather.q.q",
-  "llvm.x86.avx2.gather.q.q.256",
-  "llvm.x86.avx2.maskload.d",
-  "llvm.x86.avx2.maskload.d.256",
-  "llvm.x86.avx2.maskload.q",
-  "llvm.x86.avx2.maskload.q.256",
-  "llvm.x86.avx2.maskstore.d",
-  "llvm.x86.avx2.maskstore.d.256",
-  "llvm.x86.avx2.maskstore.q",
-  "llvm.x86.avx2.maskstore.q.256",
-  "llvm.x86.avx2.mpsadbw",
-  "llvm.x86.avx2.packssdw",
-  "llvm.x86.avx2.packsswb",
-  "llvm.x86.avx2.packusdw",
-  "llvm.x86.avx2.packuswb",
-  "llvm.x86.avx2.padds.b",
-  "llvm.x86.avx2.padds.w",
-  "llvm.x86.avx2.paddus.b",
-  "llvm.x86.avx2.paddus.w",
-  "llvm.x86.avx2.pblendvb",
-  "llvm.x86.avx2.permd",
-  "llvm.x86.avx2.permps",
-  "llvm.x86.avx2.phadd.d",
-  "llvm.x86.avx2.phadd.sw",
-  "llvm.x86.avx2.phadd.w",
-  "llvm.x86.avx2.phsub.d",
-  "llvm.x86.avx2.phsub.sw",
-  "llvm.x86.avx2.phsub.w",
-  "llvm.x86.avx2.pmadd.ub.sw",
-  "llvm.x86.avx2.pmadd.wd",
-  "llvm.x86.avx2.pmovmskb",
-  "llvm.x86.avx2.pmul.dq",
-  "llvm.x86.avx2.pmul.hr.sw",
-  "llvm.x86.avx2.pmulh.w",
-  "llvm.x86.avx2.pmulhu.w",
-  "llvm.x86.avx2.pmulu.dq",
-  "llvm.x86.avx2.psad.bw",
-  "llvm.x86.avx2.pshuf.b",
-  "llvm.x86.avx2.psign.b",
-  "llvm.x86.avx2.psign.d",
-  "llvm.x86.avx2.psign.w",
-  "llvm.x86.avx2.psll.d",
-  "llvm.x86.avx2.psll.q",
-  "llvm.x86.avx2.psll.w",
-  "llvm.x86.avx2.pslli.d",
-  "llvm.x86.avx2.pslli.q",
-  "llvm.x86.avx2.pslli.w",
-  "llvm.x86.avx2.psllv.d",
-  "llvm.x86.avx2.psllv.d.256",
-  "llvm.x86.avx2.psllv.q",
-  "llvm.x86.avx2.psllv.q.256",
-  "llvm.x86.avx2.psra.d",
-  "llvm.x86.avx2.psra.w",
-  "llvm.x86.avx2.psrai.d",
-  "llvm.x86.avx2.psrai.w",
-  "llvm.x86.avx2.psrav.d",
-  "llvm.x86.avx2.psrav.d.256",
-  "llvm.x86.avx2.psrl.d",
-  "llvm.x86.avx2.psrl.q",
-  "llvm.x86.avx2.psrl.w",
-  "llvm.x86.avx2.psrli.d",
-  "llvm.x86.avx2.psrli.q",
-  "llvm.x86.avx2.psrli.w",
-  "llvm.x86.avx2.psrlv.d",
-  "llvm.x86.avx2.psrlv.d.256",
-  "llvm.x86.avx2.psrlv.q",
-  "llvm.x86.avx2.psrlv.q.256",
-  "llvm.x86.avx2.psubs.b",
-  "llvm.x86.avx2.psubs.w",
-  "llvm.x86.avx2.psubus.b",
-  "llvm.x86.avx2.psubus.w",
-  "llvm.x86.avx512.broadcastmb.128",
-  "llvm.x86.avx512.broadcastmb.256",
-  "llvm.x86.avx512.broadcastmb.512",
-  "llvm.x86.avx512.broadcastmw.128",
-  "llvm.x86.avx512.broadcastmw.256",
-  "llvm.x86.avx512.broadcastmw.512",
-  "llvm.x86.avx512.cvtsi2sd64",
-  "llvm.x86.avx512.cvtsi2ss32",
-  "llvm.x86.avx512.cvtsi2ss64",
-  "llvm.x86.avx512.cvttsd2si",
-  "llvm.x86.avx512.cvttsd2si64",
-  "llvm.x86.avx512.cvttsd2usi",
-  "llvm.x86.avx512.cvttsd2usi64",
-  "llvm.x86.avx512.cvttss2si",
-  "llvm.x86.avx512.cvttss2si64",
-  "llvm.x86.avx512.cvttss2usi",
-  "llvm.x86.avx512.cvttss2usi64",
-  "llvm.x86.avx512.cvtusi2sd",
-  "llvm.x86.avx512.cvtusi2ss",
-  "llvm.x86.avx512.cvtusi642sd",
-  "llvm.x86.avx512.cvtusi642ss",
-  "llvm.x86.avx512.exp2.pd",
-  "llvm.x86.avx512.exp2.ps",
-  "llvm.x86.avx512.gather.dpd.512",
-  "llvm.x86.avx512.gather.dpi.512",
-  "llvm.x86.avx512.gather.dpq.512",
-  "llvm.x86.avx512.gather.dps.512",
-  "llvm.x86.avx512.gather.qpd.512",
-  "llvm.x86.avx512.gather.qpi.512",
-  "llvm.x86.avx512.gather.qpq.512",
-  "llvm.x86.avx512.gather.qps.512",
-  "llvm.x86.avx512.gather3div2.df",
-  "llvm.x86.avx512.gather3div2.di",
-  "llvm.x86.avx512.gather3div4.df",
-  "llvm.x86.avx512.gather3div4.di",
-  "llvm.x86.avx512.gather3div4.sf",
-  "llvm.x86.avx512.gather3div4.si",
-  "llvm.x86.avx512.gather3div8.sf",
-  "llvm.x86.avx512.gather3div8.si",
-  "llvm.x86.avx512.gather3siv2.df",
-  "llvm.x86.avx512.gather3siv2.di",
-  "llvm.x86.avx512.gather3siv4.df",
-  "llvm.x86.avx512.gather3siv4.di",
-  "llvm.x86.avx512.gather3siv4.sf",
-  "llvm.x86.avx512.gather3siv4.si",
-  "llvm.x86.avx512.gather3siv8.sf",
-  "llvm.x86.avx512.gather3siv8.si",
-  "llvm.x86.avx512.gatherpf.dpd.512",
-  "llvm.x86.avx512.gatherpf.dps.512",
-  "llvm.x86.avx512.gatherpf.qpd.512",
-  "llvm.x86.avx512.gatherpf.qps.512",
-  "llvm.x86.avx512.mask.add.pd.512",
-  "llvm.x86.avx512.mask.add.ps.512",
-  "llvm.x86.avx512.mask.add.sd.round",
-  "llvm.x86.avx512.mask.add.ss.round",
-  "llvm.x86.avx512.mask.cmp.pd.128",
-  "llvm.x86.avx512.mask.cmp.pd.256",
-  "llvm.x86.avx512.mask.cmp.pd.512",
-  "llvm.x86.avx512.mask.cmp.ps.128",
-  "llvm.x86.avx512.mask.cmp.ps.256",
-  "llvm.x86.avx512.mask.cmp.ps.512",
-  "llvm.x86.avx512.mask.cmp.sd",
-  "llvm.x86.avx512.mask.cmp.ss",
-  "llvm.x86.avx512.mask.compress.b.128",
-  "llvm.x86.avx512.mask.compress.b.256",
-  "llvm.x86.avx512.mask.compress.b.512",
-  "llvm.x86.avx512.mask.compress.d.128",
-  "llvm.x86.avx512.mask.compress.d.256",
-  "llvm.x86.avx512.mask.compress.d.512",
-  "llvm.x86.avx512.mask.compress.pd.128",
-  "llvm.x86.avx512.mask.compress.pd.256",
-  "llvm.x86.avx512.mask.compress.pd.512",
-  "llvm.x86.avx512.mask.compress.ps.128",
-  "llvm.x86.avx512.mask.compress.ps.256",
-  "llvm.x86.avx512.mask.compress.ps.512",
-  "llvm.x86.avx512.mask.compress.q.128",
-  "llvm.x86.avx512.mask.compress.q.256",
-  "llvm.x86.avx512.mask.compress.q.512",
-  "llvm.x86.avx512.mask.compress.store.b.128",
-  "llvm.x86.avx512.mask.compress.store.b.256",
-  "llvm.x86.avx512.mask.compress.store.b.512",
-  "llvm.x86.avx512.mask.compress.store.d.128",
-  "llvm.x86.avx512.mask.compress.store.d.256",
-  "llvm.x86.avx512.mask.compress.store.d.512",
-  "llvm.x86.avx512.mask.compress.store.pd.128",
-  "llvm.x86.avx512.mask.compress.store.pd.256",
-  "llvm.x86.avx512.mask.compress.store.pd.512",
-  "llvm.x86.avx512.mask.compress.store.ps.128",
-  "llvm.x86.avx512.mask.compress.store.ps.256",
-  "llvm.x86.avx512.mask.compress.store.ps.512",
-  "llvm.x86.avx512.mask.compress.store.q.128",
-  "llvm.x86.avx512.mask.compress.store.q.256",
-  "llvm.x86.avx512.mask.compress.store.q.512",
-  "llvm.x86.avx512.mask.compress.store.w.128",
-  "llvm.x86.avx512.mask.compress.store.w.256",
-  "llvm.x86.avx512.mask.compress.store.w.512",
-  "llvm.x86.avx512.mask.compress.w.128",
-  "llvm.x86.avx512.mask.compress.w.256",
-  "llvm.x86.avx512.mask.compress.w.512",
-  "llvm.x86.avx512.mask.conflict.d.128",
-  "llvm.x86.avx512.mask.conflict.d.256",
-  "llvm.x86.avx512.mask.conflict.d.512",
-  "llvm.x86.avx512.mask.conflict.q.128",
-  "llvm.x86.avx512.mask.conflict.q.256",
-  "llvm.x86.avx512.mask.conflict.q.512",
-  "llvm.x86.avx512.mask.cvtdq2ps.128",
-  "llvm.x86.avx512.mask.cvtdq2ps.256",
-  "llvm.x86.avx512.mask.cvtdq2ps.512",
-  "llvm.x86.avx512.mask.cvtpd2dq.128",
-  "llvm.x86.avx512.mask.cvtpd2dq.256",
-  "llvm.x86.avx512.mask.cvtpd2dq.512",
-  "llvm.x86.avx512.mask.cvtpd2ps",
-  "llvm.x86.avx512.mask.cvtpd2ps.256",
-  "llvm.x86.avx512.mask.cvtpd2ps.512",
-  "llvm.x86.avx512.mask.cvtpd2qq.128",
-  "llvm.x86.avx512.mask.cvtpd2qq.256",
-  "llvm.x86.avx512.mask.cvtpd2qq.512",
-  "llvm.x86.avx512.mask.cvtpd2udq.128",
-  "llvm.x86.avx512.mask.cvtpd2udq.256",
-  "llvm.x86.avx512.mask.cvtpd2udq.512",
-  "llvm.x86.avx512.mask.cvtpd2uqq.128",
-  "llvm.x86.avx512.mask.cvtpd2uqq.256",
-  "llvm.x86.avx512.mask.cvtpd2uqq.512",
-  "llvm.x86.avx512.mask.cvtps2dq.128",
-  "llvm.x86.avx512.mask.cvtps2dq.256",
-  "llvm.x86.avx512.mask.cvtps2dq.512",
-  "llvm.x86.avx512.mask.cvtps2pd.128",
-  "llvm.x86.avx512.mask.cvtps2pd.256",
-  "llvm.x86.avx512.mask.cvtps2pd.512",
-  "llvm.x86.avx512.mask.cvtps2qq.128",
-  "llvm.x86.avx512.mask.cvtps2qq.256",
-  "llvm.x86.avx512.mask.cvtps2qq.512",
-  "llvm.x86.avx512.mask.cvtps2udq.128",
-  "llvm.x86.avx512.mask.cvtps2udq.256",
-  "llvm.x86.avx512.mask.cvtps2udq.512",
-  "llvm.x86.avx512.mask.cvtps2uqq.128",
-  "llvm.x86.avx512.mask.cvtps2uqq.256",
-  "llvm.x86.avx512.mask.cvtps2uqq.512",
-  "llvm.x86.avx512.mask.cvtqq2pd.128",
-  "llvm.x86.avx512.mask.cvtqq2pd.256",
-  "llvm.x86.avx512.mask.cvtqq2pd.512",
-  "llvm.x86.avx512.mask.cvtqq2ps.128",
-  "llvm.x86.avx512.mask.cvtqq2ps.256",
-  "llvm.x86.avx512.mask.cvtqq2ps.512",
-  "llvm.x86.avx512.mask.cvtsd2ss.round",
-  "llvm.x86.avx512.mask.cvtss2sd.round",
-  "llvm.x86.avx512.mask.cvttpd2dq.128",
-  "llvm.x86.avx512.mask.cvttpd2dq.256",
-  "llvm.x86.avx512.mask.cvttpd2dq.512",
-  "llvm.x86.avx512.mask.cvttpd2qq.128",
-  "llvm.x86.avx512.mask.cvttpd2qq.256",
-  "llvm.x86.avx512.mask.cvttpd2qq.512",
-  "llvm.x86.avx512.mask.cvttpd2udq.128",
-  "llvm.x86.avx512.mask.cvttpd2udq.256",
-  "llvm.x86.avx512.mask.cvttpd2udq.512",
-  "llvm.x86.avx512.mask.cvttpd2uqq.128",
-  "llvm.x86.avx512.mask.cvttpd2uqq.256",
-  "llvm.x86.avx512.mask.cvttpd2uqq.512",
-  "llvm.x86.avx512.mask.cvttps2dq.128",
-  "llvm.x86.avx512.mask.cvttps2dq.256",
-  "llvm.x86.avx512.mask.cvttps2dq.512",
-  "llvm.x86.avx512.mask.cvttps2qq.128",
-  "llvm.x86.avx512.mask.cvttps2qq.256",
-  "llvm.x86.avx512.mask.cvttps2qq.512",
-  "llvm.x86.avx512.mask.cvttps2udq.128",
-  "llvm.x86.avx512.mask.cvttps2udq.256",
-  "llvm.x86.avx512.mask.cvttps2udq.512",
-  "llvm.x86.avx512.mask.cvttps2uqq.128",
-  "llvm.x86.avx512.mask.cvttps2uqq.256",
-  "llvm.x86.avx512.mask.cvttps2uqq.512",
-  "llvm.x86.avx512.mask.cvtudq2ps.128",
-  "llvm.x86.avx512.mask.cvtudq2ps.256",
-  "llvm.x86.avx512.mask.cvtudq2ps.512",
-  "llvm.x86.avx512.mask.cvtuqq2pd.128",
-  "llvm.x86.avx512.mask.cvtuqq2pd.256",
-  "llvm.x86.avx512.mask.cvtuqq2pd.512",
-  "llvm.x86.avx512.mask.cvtuqq2ps.128",
-  "llvm.x86.avx512.mask.cvtuqq2ps.256",
-  "llvm.x86.avx512.mask.cvtuqq2ps.512",
-  "llvm.x86.avx512.mask.dbpsadbw.128",
-  "llvm.x86.avx512.mask.dbpsadbw.256",
-  "llvm.x86.avx512.mask.dbpsadbw.512",
-  "llvm.x86.avx512.mask.div.pd.512",
-  "llvm.x86.avx512.mask.div.ps.512",
-  "llvm.x86.avx512.mask.div.sd.round",
-  "llvm.x86.avx512.mask.div.ss.round",
-  "llvm.x86.avx512.mask.expand.b.128",
-  "llvm.x86.avx512.mask.expand.b.256",
-  "llvm.x86.avx512.mask.expand.b.512",
-  "llvm.x86.avx512.mask.expand.d.128",
-  "llvm.x86.avx512.mask.expand.d.256",
-  "llvm.x86.avx512.mask.expand.d.512",
-  "llvm.x86.avx512.mask.expand.load.b.128",
-  "llvm.x86.avx512.mask.expand.load.b.256",
-  "llvm.x86.avx512.mask.expand.load.b.512",
-  "llvm.x86.avx512.mask.expand.load.d.128",
-  "llvm.x86.avx512.mask.expand.load.d.256",
-  "llvm.x86.avx512.mask.expand.load.d.512",
-  "llvm.x86.avx512.mask.expand.load.pd.128",
-  "llvm.x86.avx512.mask.expand.load.pd.256",
-  "llvm.x86.avx512.mask.expand.load.pd.512",
-  "llvm.x86.avx512.mask.expand.load.ps.128",
-  "llvm.x86.avx512.mask.expand.load.ps.256",
-  "llvm.x86.avx512.mask.expand.load.ps.512",
-  "llvm.x86.avx512.mask.expand.load.q.128",
-  "llvm.x86.avx512.mask.expand.load.q.256",
-  "llvm.x86.avx512.mask.expand.load.q.512",
-  "llvm.x86.avx512.mask.expand.load.w.128",
-  "llvm.x86.avx512.mask.expand.load.w.256",
-  "llvm.x86.avx512.mask.expand.load.w.512",
-  "llvm.x86.avx512.mask.expand.pd.128",
-  "llvm.x86.avx512.mask.expand.pd.256",
-  "llvm.x86.avx512.mask.expand.pd.512",
-  "llvm.x86.avx512.mask.expand.ps.128",
-  "llvm.x86.avx512.mask.expand.ps.256",
-  "llvm.x86.avx512.mask.expand.ps.512",
-  "llvm.x86.avx512.mask.expand.q.128",
-  "llvm.x86.avx512.mask.expand.q.256",
-  "llvm.x86.avx512.mask.expand.q.512",
-  "llvm.x86.avx512.mask.expand.w.128",
-  "llvm.x86.avx512.mask.expand.w.256",
-  "llvm.x86.avx512.mask.expand.w.512",
-  "llvm.x86.avx512.mask.fixupimm.pd.128",
-  "llvm.x86.avx512.mask.fixupimm.pd.256",
-  "llvm.x86.avx512.mask.fixupimm.pd.512",
-  "llvm.x86.avx512.mask.fixupimm.ps.128",
-  "llvm.x86.avx512.mask.fixupimm.ps.256",
-  "llvm.x86.avx512.mask.fixupimm.ps.512",
-  "llvm.x86.avx512.mask.fixupimm.sd",
-  "llvm.x86.avx512.mask.fixupimm.ss",
-  "llvm.x86.avx512.mask.fpclass.pd.128",
-  "llvm.x86.avx512.mask.fpclass.pd.256",
-  "llvm.x86.avx512.mask.fpclass.pd.512",
-  "llvm.x86.avx512.mask.fpclass.ps.128",
-  "llvm.x86.avx512.mask.fpclass.ps.256",
-  "llvm.x86.avx512.mask.fpclass.ps.512",
-  "llvm.x86.avx512.mask.fpclass.sd",
-  "llvm.x86.avx512.mask.fpclass.ss",
-  "llvm.x86.avx512.mask.getexp.pd.128",
-  "llvm.x86.avx512.mask.getexp.pd.256",
-  "llvm.x86.avx512.mask.getexp.pd.512",
-  "llvm.x86.avx512.mask.getexp.ps.128",
-  "llvm.x86.avx512.mask.getexp.ps.256",
-  "llvm.x86.avx512.mask.getexp.ps.512",
-  "llvm.x86.avx512.mask.getexp.sd",
-  "llvm.x86.avx512.mask.getexp.ss",
-  "llvm.x86.avx512.mask.getmant.pd.128",
-  "llvm.x86.avx512.mask.getmant.pd.256",
-  "llvm.x86.avx512.mask.getmant.pd.512",
-  "llvm.x86.avx512.mask.getmant.ps.128",
-  "llvm.x86.avx512.mask.getmant.ps.256",
-  "llvm.x86.avx512.mask.getmant.ps.512",
-  "llvm.x86.avx512.mask.getmant.sd",
-  "llvm.x86.avx512.mask.getmant.ss",
-  "llvm.x86.avx512.mask.max.pd.512",
-  "llvm.x86.avx512.mask.max.ps.512",
-  "llvm.x86.avx512.mask.max.sd.round",
-  "llvm.x86.avx512.mask.max.ss.round",
-  "llvm.x86.avx512.mask.min.pd.512",
-  "llvm.x86.avx512.mask.min.ps.512",
-  "llvm.x86.avx512.mask.min.sd.round",
-  "llvm.x86.avx512.mask.min.ss.round",
-  "llvm.x86.avx512.mask.mul.pd.512",
-  "llvm.x86.avx512.mask.mul.ps.512",
-  "llvm.x86.avx512.mask.mul.sd.round",
-  "llvm.x86.avx512.mask.mul.ss.round",
-  "llvm.x86.avx512.mask.padds.b.128",
-  "llvm.x86.avx512.mask.padds.b.256",
-  "llvm.x86.avx512.mask.padds.b.512",
-  "llvm.x86.avx512.mask.padds.w.128",
-  "llvm.x86.avx512.mask.padds.w.256",
-  "llvm.x86.avx512.mask.padds.w.512",
-  "llvm.x86.avx512.mask.paddus.b.128",
-  "llvm.x86.avx512.mask.paddus.b.256",
-  "llvm.x86.avx512.mask.paddus.b.512",
-  "llvm.x86.avx512.mask.paddus.w.128",
-  "llvm.x86.avx512.mask.paddus.w.256",
-  "llvm.x86.avx512.mask.paddus.w.512",
-  "llvm.x86.avx512.mask.permvar.df.256",
-  "llvm.x86.avx512.mask.permvar.df.512",
-  "llvm.x86.avx512.mask.permvar.di.256",
-  "llvm.x86.avx512.mask.permvar.di.512",
-  "llvm.x86.avx512.mask.permvar.hi.128",
-  "llvm.x86.avx512.mask.permvar.hi.256",
-  "llvm.x86.avx512.mask.permvar.hi.512",
-  "llvm.x86.avx512.mask.permvar.qi.128",
-  "llvm.x86.avx512.mask.permvar.qi.256",
-  "llvm.x86.avx512.mask.permvar.qi.512",
-  "llvm.x86.avx512.mask.permvar.sf.256",
-  "llvm.x86.avx512.mask.permvar.sf.512",
-  "llvm.x86.avx512.mask.permvar.si.256",
-  "llvm.x86.avx512.mask.permvar.si.512",
-  "llvm.x86.avx512.mask.pmaddubs.w.128",
-  "llvm.x86.avx512.mask.pmaddubs.w.256",
-  "llvm.x86.avx512.mask.pmaddubs.w.512",
-  "llvm.x86.avx512.mask.pmaddw.d.128",
-  "llvm.x86.avx512.mask.pmaddw.d.256",
-  "llvm.x86.avx512.mask.pmaddw.d.512",
-  "llvm.x86.avx512.mask.pmov.db.128",
-  "llvm.x86.avx512.mask.pmov.db.256",
-  "llvm.x86.avx512.mask.pmov.db.512",
-  "llvm.x86.avx512.mask.pmov.db.mem.128",
-  "llvm.x86.avx512.mask.pmov.db.mem.256",
-  "llvm.x86.avx512.mask.pmov.db.mem.512",
-  "llvm.x86.avx512.mask.pmov.dw.128",
-  "llvm.x86.avx512.mask.pmov.dw.256",
-  "llvm.x86.avx512.mask.pmov.dw.512",
-  "llvm.x86.avx512.mask.pmov.dw.mem.128",
-  "llvm.x86.avx512.mask.pmov.dw.mem.256",
-  "llvm.x86.avx512.mask.pmov.dw.mem.512",
-  "llvm.x86.avx512.mask.pmov.qb.128",
-  "llvm.x86.avx512.mask.pmov.qb.256",
-  "llvm.x86.avx512.mask.pmov.qb.512",
-  "llvm.x86.avx512.mask.pmov.qb.mem.128",
-  "llvm.x86.avx512.mask.pmov.qb.mem.256",
-  "llvm.x86.avx512.mask.pmov.qb.mem.512",
-  "llvm.x86.avx512.mask.pmov.qd.128",
-  "llvm.x86.avx512.mask.pmov.qd.256",
-  "llvm.x86.avx512.mask.pmov.qd.512",
-  "llvm.x86.avx512.mask.pmov.qd.mem.128",
-  "llvm.x86.avx512.mask.pmov.qd.mem.256",
-  "llvm.x86.avx512.mask.pmov.qd.mem.512",
-  "llvm.x86.avx512.mask.pmov.qw.128",
-  "llvm.x86.avx512.mask.pmov.qw.256",
-  "llvm.x86.avx512.mask.pmov.qw.512",
-  "llvm.x86.avx512.mask.pmov.qw.mem.128",
-  "llvm.x86.avx512.mask.pmov.qw.mem.256",
-  "llvm.x86.avx512.mask.pmov.qw.mem.512",
-  "llvm.x86.avx512.mask.pmov.wb.128",
-  "llvm.x86.avx512.mask.pmov.wb.256",
-  "llvm.x86.avx512.mask.pmov.wb.512",
-  "llvm.x86.avx512.mask.pmov.wb.mem.128",
-  "llvm.x86.avx512.mask.pmov.wb.mem.256",
-  "llvm.x86.avx512.mask.pmov.wb.mem.512",
-  "llvm.x86.avx512.mask.pmovs.db.128",
-  "llvm.x86.avx512.mask.pmovs.db.256",
-  "llvm.x86.avx512.mask.pmovs.db.512",
-  "llvm.x86.avx512.mask.pmovs.db.mem.128",
-  "llvm.x86.avx512.mask.pmovs.db.mem.256",
-  "llvm.x86.avx512.mask.pmovs.db.mem.512",
-  "llvm.x86.avx512.mask.pmovs.dw.128",
-  "llvm.x86.avx512.mask.pmovs.dw.256",
-  "llvm.x86.avx512.mask.pmovs.dw.512",
-  "llvm.x86.avx512.mask.pmovs.dw.mem.128",
-  "llvm.x86.avx512.mask.pmovs.dw.mem.256",
-  "llvm.x86.avx512.mask.pmovs.dw.mem.512",
-  "llvm.x86.avx512.mask.pmovs.qb.128",
-  "llvm.x86.avx512.mask.pmovs.qb.256",
-  "llvm.x86.avx512.mask.pmovs.qb.512",
-  "llvm.x86.avx512.mask.pmovs.qb.mem.128",
-  "llvm.x86.avx512.mask.pmovs.qb.mem.256",
-  "llvm.x86.avx512.mask.pmovs.qb.mem.512",
-  "llvm.x86.avx512.mask.pmovs.qd.128",
-  "llvm.x86.avx512.mask.pmovs.qd.256",
-  "llvm.x86.avx512.mask.pmovs.qd.512",
-  "llvm.x86.avx512.mask.pmovs.qd.mem.128",
-  "llvm.x86.avx512.mask.pmovs.qd.mem.256",
-  "llvm.x86.avx512.mask.pmovs.qd.mem.512",
-  "llvm.x86.avx512.mask.pmovs.qw.128",
-  "llvm.x86.avx512.mask.pmovs.qw.256",
-  "llvm.x86.avx512.mask.pmovs.qw.512",
-  "llvm.x86.avx512.mask.pmovs.qw.mem.128",
-  "llvm.x86.avx512.mask.pmovs.qw.mem.256",
-  "llvm.x86.avx512.mask.pmovs.qw.mem.512",
-  "llvm.x86.avx512.mask.pmovs.wb.128",
-  "llvm.x86.avx512.mask.pmovs.wb.256",
-  "llvm.x86.avx512.mask.pmovs.wb.512",
-  "llvm.x86.avx512.mask.pmovs.wb.mem.128",
-  "llvm.x86.avx512.mask.pmovs.wb.mem.256",
-  "llvm.x86.avx512.mask.pmovs.wb.mem.512",
-  "llvm.x86.avx512.mask.pmovus.db.128",
-  "llvm.x86.avx512.mask.pmovus.db.256",
-  "llvm.x86.avx512.mask.pmovus.db.512",
-  "llvm.x86.avx512.mask.pmovus.db.mem.128",
-  "llvm.x86.avx512.mask.pmovus.db.mem.256",
-  "llvm.x86.avx512.mask.pmovus.db.mem.512",
-  "llvm.x86.avx512.mask.pmovus.dw.128",
-  "llvm.x86.avx512.mask.pmovus.dw.256",
-  "llvm.x86.avx512.mask.pmovus.dw.512",
-  "llvm.x86.avx512.mask.pmovus.dw.mem.128",
-  "llvm.x86.avx512.mask.pmovus.dw.mem.256",
-  "llvm.x86.avx512.mask.pmovus.dw.mem.512",
-  "llvm.x86.avx512.mask.pmovus.qb.128",
-  "llvm.x86.avx512.mask.pmovus.qb.256",
-  "llvm.x86.avx512.mask.pmovus.qb.512",
-  "llvm.x86.avx512.mask.pmovus.qb.mem.128",
-  "llvm.x86.avx512.mask.pmovus.qb.mem.256",
-  "llvm.x86.avx512.mask.pmovus.qb.mem.512",
-  "llvm.x86.avx512.mask.pmovus.qd.128",
-  "llvm.x86.avx512.mask.pmovus.qd.256",
-  "llvm.x86.avx512.mask.pmovus.qd.512",
-  "llvm.x86.avx512.mask.pmovus.qd.mem.128",
-  "llvm.x86.avx512.mask.pmovus.qd.mem.256",
-  "llvm.x86.avx512.mask.pmovus.qd.mem.512",
-  "llvm.x86.avx512.mask.pmovus.qw.128",
-  "llvm.x86.avx512.mask.pmovus.qw.256",
-  "llvm.x86.avx512.mask.pmovus.qw.512",
-  "llvm.x86.avx512.mask.pmovus.qw.mem.128",
-  "llvm.x86.avx512.mask.pmovus.qw.mem.256",
-  "llvm.x86.avx512.mask.pmovus.qw.mem.512",
-  "llvm.x86.avx512.mask.pmovus.wb.128",
-  "llvm.x86.avx512.mask.pmovus.wb.256",
-  "llvm.x86.avx512.mask.pmovus.wb.512",
-  "llvm.x86.avx512.mask.pmovus.wb.mem.128",
-  "llvm.x86.avx512.mask.pmovus.wb.mem.256",
-  "llvm.x86.avx512.mask.pmovus.wb.mem.512",
-  "llvm.x86.avx512.mask.pmultishift.qb.128",
-  "llvm.x86.avx512.mask.pmultishift.qb.256",
-  "llvm.x86.avx512.mask.pmultishift.qb.512",
-  "llvm.x86.avx512.mask.prol.d.128",
-  "llvm.x86.avx512.mask.prol.d.256",
-  "llvm.x86.avx512.mask.prol.d.512",
-  "llvm.x86.avx512.mask.prol.q.128",
-  "llvm.x86.avx512.mask.prol.q.256",
-  "llvm.x86.avx512.mask.prol.q.512",
-  "llvm.x86.avx512.mask.prolv.d.128",
-  "llvm.x86.avx512.mask.prolv.d.256",
-  "llvm.x86.avx512.mask.prolv.d.512",
-  "llvm.x86.avx512.mask.prolv.q.128",
-  "llvm.x86.avx512.mask.prolv.q.256",
-  "llvm.x86.avx512.mask.prolv.q.512",
-  "llvm.x86.avx512.mask.pror.d.128",
-  "llvm.x86.avx512.mask.pror.d.256",
-  "llvm.x86.avx512.mask.pror.d.512",
-  "llvm.x86.avx512.mask.pror.q.128",
-  "llvm.x86.avx512.mask.pror.q.256",
-  "llvm.x86.avx512.mask.pror.q.512",
-  "llvm.x86.avx512.mask.prorv.d.128",
-  "llvm.x86.avx512.mask.prorv.d.256",
-  "llvm.x86.avx512.mask.prorv.d.512",
-  "llvm.x86.avx512.mask.prorv.q.128",
-  "llvm.x86.avx512.mask.prorv.q.256",
-  "llvm.x86.avx512.mask.prorv.q.512",
-  "llvm.x86.avx512.mask.psubs.b.128",
-  "llvm.x86.avx512.mask.psubs.b.256",
-  "llvm.x86.avx512.mask.psubs.b.512",
-  "llvm.x86.avx512.mask.psubs.w.128",
-  "llvm.x86.avx512.mask.psubs.w.256",
-  "llvm.x86.avx512.mask.psubs.w.512",
-  "llvm.x86.avx512.mask.psubus.b.128",
-  "llvm.x86.avx512.mask.psubus.b.256",
-  "llvm.x86.avx512.mask.psubus.b.512",
-  "llvm.x86.avx512.mask.psubus.w.128",
-  "llvm.x86.avx512.mask.psubus.w.256",
-  "llvm.x86.avx512.mask.psubus.w.512",
-  "llvm.x86.avx512.mask.pternlog.d.128",
-  "llvm.x86.avx512.mask.pternlog.d.256",
-  "llvm.x86.avx512.mask.pternlog.d.512",
-  "llvm.x86.avx512.mask.pternlog.q.128",
-  "llvm.x86.avx512.mask.pternlog.q.256",
-  "llvm.x86.avx512.mask.pternlog.q.512",
-  "llvm.x86.avx512.mask.range.pd.128",
-  "llvm.x86.avx512.mask.range.pd.256",
-  "llvm.x86.avx512.mask.range.pd.512",
-  "llvm.x86.avx512.mask.range.ps.128",
-  "llvm.x86.avx512.mask.range.ps.256",
-  "llvm.x86.avx512.mask.range.ps.512",
-  "llvm.x86.avx512.mask.range.sd",
-  "llvm.x86.avx512.mask.range.ss",
-  "llvm.x86.avx512.mask.reduce.pd.128",
-  "llvm.x86.avx512.mask.reduce.pd.256",
-  "llvm.x86.avx512.mask.reduce.pd.512",
-  "llvm.x86.avx512.mask.reduce.ps.128",
-  "llvm.x86.avx512.mask.reduce.ps.256",
-  "llvm.x86.avx512.mask.reduce.ps.512",
-  "llvm.x86.avx512.mask.reduce.sd",
-  "llvm.x86.avx512.mask.reduce.ss",
-  "llvm.x86.avx512.mask.rndscale.pd.128",
-  "llvm.x86.avx512.mask.rndscale.pd.256",
-  "llvm.x86.avx512.mask.rndscale.pd.512",
-  "llvm.x86.avx512.mask.rndscale.ps.128",
-  "llvm.x86.avx512.mask.rndscale.ps.256",
-  "llvm.x86.avx512.mask.rndscale.ps.512",
-  "llvm.x86.avx512.mask.rndscale.sd",
-  "llvm.x86.avx512.mask.rndscale.ss",
-  "llvm.x86.avx512.mask.scalef.pd.128",
-  "llvm.x86.avx512.mask.scalef.pd.256",
-  "llvm.x86.avx512.mask.scalef.pd.512",
-  "llvm.x86.avx512.mask.scalef.ps.128",
-  "llvm.x86.avx512.mask.scalef.ps.256",
-  "llvm.x86.avx512.mask.scalef.ps.512",
-  "llvm.x86.avx512.mask.scalef.sd",
-  "llvm.x86.avx512.mask.scalef.ss",
-  "llvm.x86.avx512.mask.sqrt.pd.128",
-  "llvm.x86.avx512.mask.sqrt.pd.256",
-  "llvm.x86.avx512.mask.sqrt.pd.512",
-  "llvm.x86.avx512.mask.sqrt.ps.128",
-  "llvm.x86.avx512.mask.sqrt.ps.256",
-  "llvm.x86.avx512.mask.sqrt.ps.512",
-  "llvm.x86.avx512.mask.sqrt.sd",
-  "llvm.x86.avx512.mask.sqrt.ss",
-  "llvm.x86.avx512.mask.store.ss",
-  "llvm.x86.avx512.mask.sub.pd.512",
-  "llvm.x86.avx512.mask.sub.ps.512",
-  "llvm.x86.avx512.mask.sub.sd.round",
-  "llvm.x86.avx512.mask.sub.ss.round",
-  "llvm.x86.avx512.mask.vcvtph2ps.128",
-  "llvm.x86.avx512.mask.vcvtph2ps.256",
-  "llvm.x86.avx512.mask.vcvtph2ps.512",
-  "llvm.x86.avx512.mask.vcvtps2ph.128",
-  "llvm.x86.avx512.mask.vcvtps2ph.256",
-  "llvm.x86.avx512.mask.vcvtps2ph.512",
-  "llvm.x86.avx512.mask.vfmadd.pd.128",
-  "llvm.x86.avx512.mask.vfmadd.pd.256",
-  "llvm.x86.avx512.mask.vfmadd.pd.512",
-  "llvm.x86.avx512.mask.vfmadd.ps.128",
-  "llvm.x86.avx512.mask.vfmadd.ps.256",
-  "llvm.x86.avx512.mask.vfmadd.ps.512",
-  "llvm.x86.avx512.mask.vfmadd.sd",
-  "llvm.x86.avx512.mask.vfmadd.ss",
-  "llvm.x86.avx512.mask.vfmaddsub.pd.128",
-  "llvm.x86.avx512.mask.vfmaddsub.pd.256",
-  "llvm.x86.avx512.mask.vfmaddsub.pd.512",
-  "llvm.x86.avx512.mask.vfmaddsub.ps.128",
-  "llvm.x86.avx512.mask.vfmaddsub.ps.256",
-  "llvm.x86.avx512.mask.vfmaddsub.ps.512",
-  "llvm.x86.avx512.mask.vfnmadd.pd.128",
-  "llvm.x86.avx512.mask.vfnmadd.pd.256",
-  "llvm.x86.avx512.mask.vfnmadd.pd.512",
-  "llvm.x86.avx512.mask.vfnmadd.ps.128",
-  "llvm.x86.avx512.mask.vfnmadd.ps.256",
-  "llvm.x86.avx512.mask.vfnmadd.ps.512",
-  "llvm.x86.avx512.mask.vfnmsub.pd.128",
-  "llvm.x86.avx512.mask.vfnmsub.pd.256",
-  "llvm.x86.avx512.mask.vfnmsub.pd.512",
-  "llvm.x86.avx512.mask.vfnmsub.ps.128",
-  "llvm.x86.avx512.mask.vfnmsub.ps.256",
-  "llvm.x86.avx512.mask.vfnmsub.ps.512",
-  "llvm.x86.avx512.mask.vpdpbusd.128",
-  "llvm.x86.avx512.mask.vpdpbusd.256",
-  "llvm.x86.avx512.mask.vpdpbusd.512",
-  "llvm.x86.avx512.mask.vpdpbusds.128",
-  "llvm.x86.avx512.mask.vpdpbusds.256",
-  "llvm.x86.avx512.mask.vpdpbusds.512",
-  "llvm.x86.avx512.mask.vpdpwssd.128",
-  "llvm.x86.avx512.mask.vpdpwssd.256",
-  "llvm.x86.avx512.mask.vpdpwssd.512",
-  "llvm.x86.avx512.mask.vpdpwssds.128",
-  "llvm.x86.avx512.mask.vpdpwssds.256",
-  "llvm.x86.avx512.mask.vpdpwssds.512",
-  "llvm.x86.avx512.mask.vpermi2var.d.128",
-  "llvm.x86.avx512.mask.vpermi2var.d.256",
-  "llvm.x86.avx512.mask.vpermi2var.d.512",
-  "llvm.x86.avx512.mask.vpermi2var.hi.128",
-  "llvm.x86.avx512.mask.vpermi2var.hi.256",
-  "llvm.x86.avx512.mask.vpermi2var.hi.512",
-  "llvm.x86.avx512.mask.vpermi2var.pd.128",
-  "llvm.x86.avx512.mask.vpermi2var.pd.256",
-  "llvm.x86.avx512.mask.vpermi2var.pd.512",
-  "llvm.x86.avx512.mask.vpermi2var.ps.128",
-  "llvm.x86.avx512.mask.vpermi2var.ps.256",
-  "llvm.x86.avx512.mask.vpermi2var.ps.512",
-  "llvm.x86.avx512.mask.vpermi2var.q.128",
-  "llvm.x86.avx512.mask.vpermi2var.q.256",
-  "llvm.x86.avx512.mask.vpermi2var.q.512",
-  "llvm.x86.avx512.mask.vpermi2var.qi.128",
-  "llvm.x86.avx512.mask.vpermi2var.qi.256",
-  "llvm.x86.avx512.mask.vpermi2var.qi.512",
-  "llvm.x86.avx512.mask.vpermt2var.d.128",
-  "llvm.x86.avx512.mask.vpermt2var.d.256",
-  "llvm.x86.avx512.mask.vpermt2var.d.512",
-  "llvm.x86.avx512.mask.vpermt2var.hi.128",
-  "llvm.x86.avx512.mask.vpermt2var.hi.256",
-  "llvm.x86.avx512.mask.vpermt2var.hi.512",
-  "llvm.x86.avx512.mask.vpermt2var.pd.128",
-  "llvm.x86.avx512.mask.vpermt2var.pd.256",
-  "llvm.x86.avx512.mask.vpermt2var.pd.512",
-  "llvm.x86.avx512.mask.vpermt2var.ps.128",
-  "llvm.x86.avx512.mask.vpermt2var.ps.256",
-  "llvm.x86.avx512.mask.vpermt2var.ps.512",
-  "llvm.x86.avx512.mask.vpermt2var.q.128",
-  "llvm.x86.avx512.mask.vpermt2var.q.256",
-  "llvm.x86.avx512.mask.vpermt2var.q.512",
-  "llvm.x86.avx512.mask.vpermt2var.qi.128",
-  "llvm.x86.avx512.mask.vpermt2var.qi.256",
-  "llvm.x86.avx512.mask.vpermt2var.qi.512",
-  "llvm.x86.avx512.mask.vpmadd52h.uq.128",
-  "llvm.x86.avx512.mask.vpmadd52h.uq.256",
-  "llvm.x86.avx512.mask.vpmadd52h.uq.512",
-  "llvm.x86.avx512.mask.vpmadd52l.uq.128",
-  "llvm.x86.avx512.mask.vpmadd52l.uq.256",
-  "llvm.x86.avx512.mask.vpmadd52l.uq.512",
-  "llvm.x86.avx512.mask.vpshld.d.128",
-  "llvm.x86.avx512.mask.vpshld.d.256",
-  "llvm.x86.avx512.mask.vpshld.d.512",
-  "llvm.x86.avx512.mask.vpshld.q.128",
-  "llvm.x86.avx512.mask.vpshld.q.256",
-  "llvm.x86.avx512.mask.vpshld.q.512",
-  "llvm.x86.avx512.mask.vpshld.w.128",
-  "llvm.x86.avx512.mask.vpshld.w.256",
-  "llvm.x86.avx512.mask.vpshld.w.512",
-  "llvm.x86.avx512.mask.vpshldv.d.128",
-  "llvm.x86.avx512.mask.vpshldv.d.256",
-  "llvm.x86.avx512.mask.vpshldv.d.512",
-  "llvm.x86.avx512.mask.vpshldv.q.128",
-  "llvm.x86.avx512.mask.vpshldv.q.256",
-  "llvm.x86.avx512.mask.vpshldv.q.512",
-  "llvm.x86.avx512.mask.vpshldv.w.128",
-  "llvm.x86.avx512.mask.vpshldv.w.256",
-  "llvm.x86.avx512.mask.vpshldv.w.512",
-  "llvm.x86.avx512.mask.vpshrd.d.128",
-  "llvm.x86.avx512.mask.vpshrd.d.256",
-  "llvm.x86.avx512.mask.vpshrd.d.512",
-  "llvm.x86.avx512.mask.vpshrd.q.128",
-  "llvm.x86.avx512.mask.vpshrd.q.256",
-  "llvm.x86.avx512.mask.vpshrd.q.512",
-  "llvm.x86.avx512.mask.vpshrd.w.128",
-  "llvm.x86.avx512.mask.vpshrd.w.256",
-  "llvm.x86.avx512.mask.vpshrd.w.512",
-  "llvm.x86.avx512.mask.vpshrdv.d.128",
-  "llvm.x86.avx512.mask.vpshrdv.d.256",
-  "llvm.x86.avx512.mask.vpshrdv.d.512",
-  "llvm.x86.avx512.mask.vpshrdv.q.128",
-  "llvm.x86.avx512.mask.vpshrdv.q.256",
-  "llvm.x86.avx512.mask.vpshrdv.q.512",
-  "llvm.x86.avx512.mask.vpshrdv.w.128",
-  "llvm.x86.avx512.mask.vpshrdv.w.256",
-  "llvm.x86.avx512.mask.vpshrdv.w.512",
-  "llvm.x86.avx512.mask.vpshufbitqmb.128",
-  "llvm.x86.avx512.mask.vpshufbitqmb.256",
-  "llvm.x86.avx512.mask.vpshufbitqmb.512",
-  "llvm.x86.avx512.mask3.vfmadd.pd.128",
-  "llvm.x86.avx512.mask3.vfmadd.pd.256",
-  "llvm.x86.avx512.mask3.vfmadd.pd.512",
-  "llvm.x86.avx512.mask3.vfmadd.ps.128",
-  "llvm.x86.avx512.mask3.vfmadd.ps.256",
-  "llvm.x86.avx512.mask3.vfmadd.ps.512",
-  "llvm.x86.avx512.mask3.vfmadd.sd",
-  "llvm.x86.avx512.mask3.vfmadd.ss",
-  "llvm.x86.avx512.mask3.vfmaddsub.pd.128",
-  "llvm.x86.avx512.mask3.vfmaddsub.pd.256",
-  "llvm.x86.avx512.mask3.vfmaddsub.pd.512",
-  "llvm.x86.avx512.mask3.vfmaddsub.ps.128",
-  "llvm.x86.avx512.mask3.vfmaddsub.ps.256",
-  "llvm.x86.avx512.mask3.vfmaddsub.ps.512",
-  "llvm.x86.avx512.mask3.vfmsub.pd.128",
-  "llvm.x86.avx512.mask3.vfmsub.pd.256",
-  "llvm.x86.avx512.mask3.vfmsub.pd.512",
-  "llvm.x86.avx512.mask3.vfmsub.ps.128",
-  "llvm.x86.avx512.mask3.vfmsub.ps.256",
-  "llvm.x86.avx512.mask3.vfmsub.ps.512",
-  "llvm.x86.avx512.mask3.vfmsub.sd",
-  "llvm.x86.avx512.mask3.vfmsub.ss",
-  "llvm.x86.avx512.mask3.vfmsubadd.pd.128",
-  "llvm.x86.avx512.mask3.vfmsubadd.pd.256",
-  "llvm.x86.avx512.mask3.vfmsubadd.pd.512",
-  "llvm.x86.avx512.mask3.vfmsubadd.ps.128",
-  "llvm.x86.avx512.mask3.vfmsubadd.ps.256",
-  "llvm.x86.avx512.mask3.vfmsubadd.ps.512",
-  "llvm.x86.avx512.mask3.vfnmsub.pd.128",
-  "llvm.x86.avx512.mask3.vfnmsub.pd.256",
-  "llvm.x86.avx512.mask3.vfnmsub.pd.512",
-  "llvm.x86.avx512.mask3.vfnmsub.ps.128",
-  "llvm.x86.avx512.mask3.vfnmsub.ps.256",
-  "llvm.x86.avx512.mask3.vfnmsub.ps.512",
-  "llvm.x86.avx512.mask3.vfnmsub.sd",
-  "llvm.x86.avx512.mask3.vfnmsub.ss",
-  "llvm.x86.avx512.maskz.fixupimm.pd.128",
-  "llvm.x86.avx512.maskz.fixupimm.pd.256",
-  "llvm.x86.avx512.maskz.fixupimm.pd.512",
-  "llvm.x86.avx512.maskz.fixupimm.ps.128",
-  "llvm.x86.avx512.maskz.fixupimm.ps.256",
-  "llvm.x86.avx512.maskz.fixupimm.ps.512",
-  "llvm.x86.avx512.maskz.fixupimm.sd",
-  "llvm.x86.avx512.maskz.fixupimm.ss",
-  "llvm.x86.avx512.maskz.pternlog.d.128",
-  "llvm.x86.avx512.maskz.pternlog.d.256",
-  "llvm.x86.avx512.maskz.pternlog.d.512",
-  "llvm.x86.avx512.maskz.pternlog.q.128",
-  "llvm.x86.avx512.maskz.pternlog.q.256",
-  "llvm.x86.avx512.maskz.pternlog.q.512",
-  "llvm.x86.avx512.maskz.vfmadd.pd.128",
-  "llvm.x86.avx512.maskz.vfmadd.pd.256",
-  "llvm.x86.avx512.maskz.vfmadd.pd.512",
-  "llvm.x86.avx512.maskz.vfmadd.ps.128",
-  "llvm.x86.avx512.maskz.vfmadd.ps.256",
-  "llvm.x86.avx512.maskz.vfmadd.ps.512",
-  "llvm.x86.avx512.maskz.vfmadd.sd",
-  "llvm.x86.avx512.maskz.vfmadd.ss",
-  "llvm.x86.avx512.maskz.vfmaddsub.pd.128",
-  "llvm.x86.avx512.maskz.vfmaddsub.pd.256",
-  "llvm.x86.avx512.maskz.vfmaddsub.pd.512",
-  "llvm.x86.avx512.maskz.vfmaddsub.ps.128",
-  "llvm.x86.avx512.maskz.vfmaddsub.ps.256",
-  "llvm.x86.avx512.maskz.vfmaddsub.ps.512",
-  "llvm.x86.avx512.maskz.vpdpbusd.128",
-  "llvm.x86.avx512.maskz.vpdpbusd.256",
-  "llvm.x86.avx512.maskz.vpdpbusd.512",
-  "llvm.x86.avx512.maskz.vpdpbusds.128",
-  "llvm.x86.avx512.maskz.vpdpbusds.256",
-  "llvm.x86.avx512.maskz.vpdpbusds.512",
-  "llvm.x86.avx512.maskz.vpdpwssd.128",
-  "llvm.x86.avx512.maskz.vpdpwssd.256",
-  "llvm.x86.avx512.maskz.vpdpwssd.512",
-  "llvm.x86.avx512.maskz.vpdpwssds.128",
-  "llvm.x86.avx512.maskz.vpdpwssds.256",
-  "llvm.x86.avx512.maskz.vpdpwssds.512",
-  "llvm.x86.avx512.maskz.vpermt2var.d.128",
-  "llvm.x86.avx512.maskz.vpermt2var.d.256",
-  "llvm.x86.avx512.maskz.vpermt2var.d.512",
-  "llvm.x86.avx512.maskz.vpermt2var.hi.128",
-  "llvm.x86.avx512.maskz.vpermt2var.hi.256",
-  "llvm.x86.avx512.maskz.vpermt2var.hi.512",
-  "llvm.x86.avx512.maskz.vpermt2var.pd.128",
-  "llvm.x86.avx512.maskz.vpermt2var.pd.256",
-  "llvm.x86.avx512.maskz.vpermt2var.pd.512",
-  "llvm.x86.avx512.maskz.vpermt2var.ps.128",
-  "llvm.x86.avx512.maskz.vpermt2var.ps.256",
-  "llvm.x86.avx512.maskz.vpermt2var.ps.512",
-  "llvm.x86.avx512.maskz.vpermt2var.q.128",
-  "llvm.x86.avx512.maskz.vpermt2var.q.256",
-  "llvm.x86.avx512.maskz.vpermt2var.q.512",
-  "llvm.x86.avx512.maskz.vpermt2var.qi.128",
-  "llvm.x86.avx512.maskz.vpermt2var.qi.256",
-  "llvm.x86.avx512.maskz.vpermt2var.qi.512",
-  "llvm.x86.avx512.maskz.vpmadd52h.uq.128",
-  "llvm.x86.avx512.maskz.vpmadd52h.uq.256",
-  "llvm.x86.avx512.maskz.vpmadd52h.uq.512",
-  "llvm.x86.avx512.maskz.vpmadd52l.uq.128",
-  "llvm.x86.avx512.maskz.vpmadd52l.uq.256",
-  "llvm.x86.avx512.maskz.vpmadd52l.uq.512",
-  "llvm.x86.avx512.maskz.vpshldv.d.128",
-  "llvm.x86.avx512.maskz.vpshldv.d.256",
-  "llvm.x86.avx512.maskz.vpshldv.d.512",
-  "llvm.x86.avx512.maskz.vpshldv.q.128",
-  "llvm.x86.avx512.maskz.vpshldv.q.256",
-  "llvm.x86.avx512.maskz.vpshldv.q.512",
-  "llvm.x86.avx512.maskz.vpshldv.w.128",
-  "llvm.x86.avx512.maskz.vpshldv.w.256",
-  "llvm.x86.avx512.maskz.vpshldv.w.512",
-  "llvm.x86.avx512.maskz.vpshrdv.d.128",
-  "llvm.x86.avx512.maskz.vpshrdv.d.256",
-  "llvm.x86.avx512.maskz.vpshrdv.d.512",
-  "llvm.x86.avx512.maskz.vpshrdv.q.128",
-  "llvm.x86.avx512.maskz.vpshrdv.q.256",
-  "llvm.x86.avx512.maskz.vpshrdv.q.512",
-  "llvm.x86.avx512.maskz.vpshrdv.w.128",
-  "llvm.x86.avx512.maskz.vpshrdv.w.256",
-  "llvm.x86.avx512.maskz.vpshrdv.w.512",
-  "llvm.x86.avx512.packssdw.512",
-  "llvm.x86.avx512.packsswb.512",
-  "llvm.x86.avx512.packusdw.512",
-  "llvm.x86.avx512.packuswb.512",
-  "llvm.x86.avx512.pmul.dq.512",
-  "llvm.x86.avx512.pmul.hr.sw.512",
-  "llvm.x86.avx512.pmulh.w.512",
-  "llvm.x86.avx512.pmulhu.w.512",
-  "llvm.x86.avx512.pmulu.dq.512",
-  "llvm.x86.avx512.psad.bw.512",
-  "llvm.x86.avx512.pshuf.b.512",
-  "llvm.x86.avx512.psll.d.512",
-  "llvm.x86.avx512.psll.q.512",
-  "llvm.x86.avx512.psll.w.512",
-  "llvm.x86.avx512.pslli.d.512",
-  "llvm.x86.avx512.pslli.q.512",
-  "llvm.x86.avx512.pslli.w.512",
-  "llvm.x86.avx512.psllv.d.512",
-  "llvm.x86.avx512.psllv.q.512",
-  "llvm.x86.avx512.psllv.w.128",
-  "llvm.x86.avx512.psllv.w.256",
-  "llvm.x86.avx512.psllv.w.512",
-  "llvm.x86.avx512.psra.d.512",
-  "llvm.x86.avx512.psra.q.128",
-  "llvm.x86.avx512.psra.q.256",
-  "llvm.x86.avx512.psra.q.512",
-  "llvm.x86.avx512.psra.w.512",
-  "llvm.x86.avx512.psrai.d.512",
-  "llvm.x86.avx512.psrai.q.128",
-  "llvm.x86.avx512.psrai.q.256",
-  "llvm.x86.avx512.psrai.q.512",
-  "llvm.x86.avx512.psrai.w.512",
-  "llvm.x86.avx512.psrav.d.512",
-  "llvm.x86.avx512.psrav.q.128",
-  "llvm.x86.avx512.psrav.q.256",
-  "llvm.x86.avx512.psrav.q.512",
-  "llvm.x86.avx512.psrav.w.128",
-  "llvm.x86.avx512.psrav.w.256",
-  "llvm.x86.avx512.psrav.w.512",
-  "llvm.x86.avx512.psrl.d.512",
-  "llvm.x86.avx512.psrl.q.512",
-  "llvm.x86.avx512.psrl.w.512",
-  "llvm.x86.avx512.psrli.d.512",
-  "llvm.x86.avx512.psrli.q.512",
-  "llvm.x86.avx512.psrli.w.512",
-  "llvm.x86.avx512.psrlv.d.512",
-  "llvm.x86.avx512.psrlv.q.512",
-  "llvm.x86.avx512.psrlv.w.128",
-  "llvm.x86.avx512.psrlv.w.256",
-  "llvm.x86.avx512.psrlv.w.512",
-  "llvm.x86.avx512.rcp14.pd.128",
-  "llvm.x86.avx512.rcp14.pd.256",
-  "llvm.x86.avx512.rcp14.pd.512",
-  "llvm.x86.avx512.rcp14.ps.128",
-  "llvm.x86.avx512.rcp14.ps.256",
-  "llvm.x86.avx512.rcp14.ps.512",
-  "llvm.x86.avx512.rcp14.sd",
-  "llvm.x86.avx512.rcp14.ss",
-  "llvm.x86.avx512.rcp28.pd",
-  "llvm.x86.avx512.rcp28.ps",
-  "llvm.x86.avx512.rcp28.sd",
-  "llvm.x86.avx512.rcp28.ss",
-  "llvm.x86.avx512.rsqrt14.pd.128",
-  "llvm.x86.avx512.rsqrt14.pd.256",
-  "llvm.x86.avx512.rsqrt14.pd.512",
-  "llvm.x86.avx512.rsqrt14.ps.128",
-  "llvm.x86.avx512.rsqrt14.ps.256",
-  "llvm.x86.avx512.rsqrt14.ps.512",
-  "llvm.x86.avx512.rsqrt14.sd",
-  "llvm.x86.avx512.rsqrt14.ss",
-  "llvm.x86.avx512.rsqrt28.pd",
-  "llvm.x86.avx512.rsqrt28.ps",
-  "llvm.x86.avx512.rsqrt28.sd",
-  "llvm.x86.avx512.rsqrt28.ss",
-  "llvm.x86.avx512.scatter.dpd.512",
-  "llvm.x86.avx512.scatter.dpi.512",
-  "llvm.x86.avx512.scatter.dpq.512",
-  "llvm.x86.avx512.scatter.dps.512",
-  "llvm.x86.avx512.scatter.qpd.512",
-  "llvm.x86.avx512.scatter.qpi.512",
-  "llvm.x86.avx512.scatter.qpq.512",
-  "llvm.x86.avx512.scatter.qps.512",
-  "llvm.x86.avx512.scatterdiv2.df",
-  "llvm.x86.avx512.scatterdiv2.di",
-  "llvm.x86.avx512.scatterdiv4.df",
-  "llvm.x86.avx512.scatterdiv4.di",
-  "llvm.x86.avx512.scatterdiv4.sf",
-  "llvm.x86.avx512.scatterdiv4.si",
-  "llvm.x86.avx512.scatterdiv8.sf",
-  "llvm.x86.avx512.scatterdiv8.si",
-  "llvm.x86.avx512.scatterpf.dpd.512",
-  "llvm.x86.avx512.scatterpf.dps.512",
-  "llvm.x86.avx512.scatterpf.qpd.512",
-  "llvm.x86.avx512.scatterpf.qps.512",
-  "llvm.x86.avx512.scattersiv2.df",
-  "llvm.x86.avx512.scattersiv2.di",
-  "llvm.x86.avx512.scattersiv4.df",
-  "llvm.x86.avx512.scattersiv4.di",
-  "llvm.x86.avx512.scattersiv4.sf",
-  "llvm.x86.avx512.scattersiv4.si",
-  "llvm.x86.avx512.scattersiv8.sf",
-  "llvm.x86.avx512.scattersiv8.si",
-  "llvm.x86.avx512.vbroadcast.sd.512",
-  "llvm.x86.avx512.vbroadcast.ss.512",
-  "llvm.x86.avx512.vcomi.sd",
-  "llvm.x86.avx512.vcomi.ss",
-  "llvm.x86.avx512.vcvtsd2si32",
-  "llvm.x86.avx512.vcvtsd2si64",
-  "llvm.x86.avx512.vcvtsd2usi32",
-  "llvm.x86.avx512.vcvtsd2usi64",
-  "llvm.x86.avx512.vcvtss2si32",
-  "llvm.x86.avx512.vcvtss2si64",
-  "llvm.x86.avx512.vcvtss2usi32",
-  "llvm.x86.avx512.vcvtss2usi64",
-  "llvm.x86.avx512.vpermilvar.pd.512",
-  "llvm.x86.avx512.vpermilvar.ps.512",
-  "llvm.x86.bmi.bextr.32",
-  "llvm.x86.bmi.bextr.64",
-  "llvm.x86.bmi.bzhi.32",
-  "llvm.x86.bmi.bzhi.64",
-  "llvm.x86.bmi.pdep.32",
-  "llvm.x86.bmi.pdep.64",
-  "llvm.x86.bmi.pext.32",
-  "llvm.x86.bmi.pext.64",
-  "llvm.x86.clflushopt",
-  "llvm.x86.clrssbsy",
-  "llvm.x86.clwb",
-  "llvm.x86.clzero",
-  "llvm.x86.flags.read.u32",
-  "llvm.x86.flags.read.u64",
-  "llvm.x86.flags.write.u32",
-  "llvm.x86.flags.write.u64",
-  "llvm.x86.fma.vfmadd.pd",
-  "llvm.x86.fma.vfmadd.pd.256",
-  "llvm.x86.fma.vfmadd.ps",
-  "llvm.x86.fma.vfmadd.ps.256",
-  "llvm.x86.fma.vfmadd.sd",
-  "llvm.x86.fma.vfmadd.ss",
-  "llvm.x86.fma.vfmaddsub.pd",
-  "llvm.x86.fma.vfmaddsub.pd.256",
-  "llvm.x86.fma.vfmaddsub.ps",
-  "llvm.x86.fma.vfmaddsub.ps.256",
-  "llvm.x86.fma.vfmsub.pd",
-  "llvm.x86.fma.vfmsub.pd.256",
-  "llvm.x86.fma.vfmsub.ps",
-  "llvm.x86.fma.vfmsub.ps.256",
-  "llvm.x86.fma.vfmsub.sd",
-  "llvm.x86.fma.vfmsub.ss",
-  "llvm.x86.fma.vfmsubadd.pd",
-  "llvm.x86.fma.vfmsubadd.pd.256",
-  "llvm.x86.fma.vfmsubadd.ps",
-  "llvm.x86.fma.vfmsubadd.ps.256",
-  "llvm.x86.fma.vfnmadd.pd",
-  "llvm.x86.fma.vfnmadd.pd.256",
-  "llvm.x86.fma.vfnmadd.ps",
-  "llvm.x86.fma.vfnmadd.ps.256",
-  "llvm.x86.fma.vfnmadd.sd",
-  "llvm.x86.fma.vfnmadd.ss",
-  "llvm.x86.fma.vfnmsub.pd",
-  "llvm.x86.fma.vfnmsub.pd.256",
-  "llvm.x86.fma.vfnmsub.ps",
-  "llvm.x86.fma.vfnmsub.ps.256",
-  "llvm.x86.fma.vfnmsub.sd",
-  "llvm.x86.fma.vfnmsub.ss",
-  "llvm.x86.fma4.vfmadd.sd",
-  "llvm.x86.fma4.vfmadd.ss",
-  "llvm.x86.fxrstor",
-  "llvm.x86.fxrstor64",
-  "llvm.x86.fxsave",
-  "llvm.x86.fxsave64",
-  "llvm.x86.incsspd",
-  "llvm.x86.incsspq",
-  "llvm.x86.int",
-  "llvm.x86.llwpcb",
-  "llvm.x86.lwpins32",
-  "llvm.x86.lwpins64",
-  "llvm.x86.lwpval32",
-  "llvm.x86.lwpval64",
-  "llvm.x86.mmx.emms",
-  "llvm.x86.mmx.femms",
-  "llvm.x86.mmx.maskmovq",
-  "llvm.x86.mmx.movnt.dq",
-  "llvm.x86.mmx.packssdw",
-  "llvm.x86.mmx.packsswb",
-  "llvm.x86.mmx.packuswb",
-  "llvm.x86.mmx.padd.b",
-  "llvm.x86.mmx.padd.d",
-  "llvm.x86.mmx.padd.q",
-  "llvm.x86.mmx.padd.w",
-  "llvm.x86.mmx.padds.b",
-  "llvm.x86.mmx.padds.w",
-  "llvm.x86.mmx.paddus.b",
-  "llvm.x86.mmx.paddus.w",
-  "llvm.x86.mmx.palignr.b",
-  "llvm.x86.mmx.pand",
-  "llvm.x86.mmx.pandn",
-  "llvm.x86.mmx.pavg.b",
-  "llvm.x86.mmx.pavg.w",
-  "llvm.x86.mmx.pcmpeq.b",
-  "llvm.x86.mmx.pcmpeq.d",
-  "llvm.x86.mmx.pcmpeq.w",
-  "llvm.x86.mmx.pcmpgt.b",
-  "llvm.x86.mmx.pcmpgt.d",
-  "llvm.x86.mmx.pcmpgt.w",
-  "llvm.x86.mmx.pextr.w",
-  "llvm.x86.mmx.pinsr.w",
-  "llvm.x86.mmx.pmadd.wd",
-  "llvm.x86.mmx.pmaxs.w",
-  "llvm.x86.mmx.pmaxu.b",
-  "llvm.x86.mmx.pmins.w",
-  "llvm.x86.mmx.pminu.b",
-  "llvm.x86.mmx.pmovmskb",
-  "llvm.x86.mmx.pmulh.w",
-  "llvm.x86.mmx.pmulhu.w",
-  "llvm.x86.mmx.pmull.w",
-  "llvm.x86.mmx.pmulu.dq",
-  "llvm.x86.mmx.por",
-  "llvm.x86.mmx.psad.bw",
-  "llvm.x86.mmx.psll.d",
-  "llvm.x86.mmx.psll.q",
-  "llvm.x86.mmx.psll.w",
-  "llvm.x86.mmx.pslli.d",
-  "llvm.x86.mmx.pslli.q",
-  "llvm.x86.mmx.pslli.w",
-  "llvm.x86.mmx.psra.d",
-  "llvm.x86.mmx.psra.w",
-  "llvm.x86.mmx.psrai.d",
-  "llvm.x86.mmx.psrai.w",
-  "llvm.x86.mmx.psrl.d",
-  "llvm.x86.mmx.psrl.q",
-  "llvm.x86.mmx.psrl.w",
-  "llvm.x86.mmx.psrli.d",
-  "llvm.x86.mmx.psrli.q",
-  "llvm.x86.mmx.psrli.w",
-  "llvm.x86.mmx.psub.b",
-  "llvm.x86.mmx.psub.d",
-  "llvm.x86.mmx.psub.q",
-  "llvm.x86.mmx.psub.w",
-  "llvm.x86.mmx.psubs.b",
-  "llvm.x86.mmx.psubs.w",
-  "llvm.x86.mmx.psubus.b",
-  "llvm.x86.mmx.psubus.w",
-  "llvm.x86.mmx.punpckhbw",
-  "llvm.x86.mmx.punpckhdq",
-  "llvm.x86.mmx.punpckhwd",
-  "llvm.x86.mmx.punpcklbw",
-  "llvm.x86.mmx.punpckldq",
-  "llvm.x86.mmx.punpcklwd",
-  "llvm.x86.mmx.pxor",
-  "llvm.x86.monitorx",
-  "llvm.x86.mwaitx",
-  "llvm.x86.pclmulqdq",
-  "llvm.x86.pclmulqdq.256",
-  "llvm.x86.pclmulqdq.512",
-  "llvm.x86.rdfsbase.32",
-  "llvm.x86.rdfsbase.64",
-  "llvm.x86.rdgsbase.32",
-  "llvm.x86.rdgsbase.64",
-  "llvm.x86.rdpid",
-  "llvm.x86.rdpkru",
-  "llvm.x86.rdpmc",
-  "llvm.x86.rdrand.16",
-  "llvm.x86.rdrand.32",
-  "llvm.x86.rdrand.64",
-  "llvm.x86.rdseed.16",
-  "llvm.x86.rdseed.32",
-  "llvm.x86.rdseed.64",
-  "llvm.x86.rdsspd",
-  "llvm.x86.rdsspq",
-  "llvm.x86.rdtsc",
-  "llvm.x86.rdtscp",
-  "llvm.x86.rstorssp",
-  "llvm.x86.saveprevssp",
-  "llvm.x86.seh.ehguard",
-  "llvm.x86.seh.ehregnode",
-  "llvm.x86.seh.lsda",
-  "llvm.x86.seh.recoverfp",
-  "llvm.x86.setssbsy",
-  "llvm.x86.sha1msg1",
-  "llvm.x86.sha1msg2",
-  "llvm.x86.sha1nexte",
-  "llvm.x86.sha1rnds4",
-  "llvm.x86.sha256msg1",
-  "llvm.x86.sha256msg2",
-  "llvm.x86.sha256rnds2",
-  "llvm.x86.slwpcb",
-  "llvm.x86.sse.cmp.ps",
-  "llvm.x86.sse.cmp.ss",
-  "llvm.x86.sse.comieq.ss",
-  "llvm.x86.sse.comige.ss",
-  "llvm.x86.sse.comigt.ss",
-  "llvm.x86.sse.comile.ss",
-  "llvm.x86.sse.comilt.ss",
-  "llvm.x86.sse.comineq.ss",
-  "llvm.x86.sse.cvtpd2pi",
-  "llvm.x86.sse.cvtpi2pd",
-  "llvm.x86.sse.cvtpi2ps",
-  "llvm.x86.sse.cvtps2pi",
-  "llvm.x86.sse.cvtsi2ss",
-  "llvm.x86.sse.cvtsi642ss",
-  "llvm.x86.sse.cvtss2si",
-  "llvm.x86.sse.cvtss2si64",
-  "llvm.x86.sse.cvttpd2pi",
-  "llvm.x86.sse.cvttps2pi",
-  "llvm.x86.sse.cvttss2si",
-  "llvm.x86.sse.cvttss2si64",
-  "llvm.x86.sse.ldmxcsr",
-  "llvm.x86.sse.max.ps",
-  "llvm.x86.sse.max.ss",
-  "llvm.x86.sse.min.ps",
-  "llvm.x86.sse.min.ss",
-  "llvm.x86.sse.movmsk.ps",
-  "llvm.x86.sse.pshuf.w",
-  "llvm.x86.sse.rcp.ps",
-  "llvm.x86.sse.rcp.ss",
-  "llvm.x86.sse.rsqrt.ps",
-  "llvm.x86.sse.rsqrt.ss",
-  "llvm.x86.sse.sfence",
-  "llvm.x86.sse.sqrt.ps",
-  "llvm.x86.sse.sqrt.ss",
-  "llvm.x86.sse.stmxcsr",
-  "llvm.x86.sse.ucomieq.ss",
-  "llvm.x86.sse.ucomige.ss",
-  "llvm.x86.sse.ucomigt.ss",
-  "llvm.x86.sse.ucomile.ss",
-  "llvm.x86.sse.ucomilt.ss",
-  "llvm.x86.sse.ucomineq.ss",
-  "llvm.x86.sse2.clflush",
-  "llvm.x86.sse2.cmp.pd",
-  "llvm.x86.sse2.cmp.sd",
-  "llvm.x86.sse2.comieq.sd",
-  "llvm.x86.sse2.comige.sd",
-  "llvm.x86.sse2.comigt.sd",
-  "llvm.x86.sse2.comile.sd",
-  "llvm.x86.sse2.comilt.sd",
-  "llvm.x86.sse2.comineq.sd",
-  "llvm.x86.sse2.cvtdq2ps",
-  "llvm.x86.sse2.cvtpd2dq",
-  "llvm.x86.sse2.cvtpd2ps",
-  "llvm.x86.sse2.cvtps2dq",
-  "llvm.x86.sse2.cvtsd2si",
-  "llvm.x86.sse2.cvtsd2si64",
-  "llvm.x86.sse2.cvtsd2ss",
-  "llvm.x86.sse2.cvtsi2sd",
-  "llvm.x86.sse2.cvtsi642sd",
-  "llvm.x86.sse2.cvtss2sd",
-  "llvm.x86.sse2.cvttpd2dq",
-  "llvm.x86.sse2.cvttps2dq",
-  "llvm.x86.sse2.cvttsd2si",
-  "llvm.x86.sse2.cvttsd2si64",
-  "llvm.x86.sse2.lfence",
-  "llvm.x86.sse2.maskmov.dqu",
-  "llvm.x86.sse2.max.pd",
-  "llvm.x86.sse2.max.sd",
-  "llvm.x86.sse2.mfence",
-  "llvm.x86.sse2.min.pd",
-  "llvm.x86.sse2.min.sd",
-  "llvm.x86.sse2.movmsk.pd",
-  "llvm.x86.sse2.packssdw.128",
-  "llvm.x86.sse2.packsswb.128",
-  "llvm.x86.sse2.packuswb.128",
-  "llvm.x86.sse2.padds.b",
-  "llvm.x86.sse2.padds.w",
-  "llvm.x86.sse2.paddus.b",
-  "llvm.x86.sse2.paddus.w",
-  "llvm.x86.sse2.pause",
-  "llvm.x86.sse2.pmadd.wd",
-  "llvm.x86.sse2.pmovmskb.128",
-  "llvm.x86.sse2.pmulh.w",
-  "llvm.x86.sse2.pmulhu.w",
-  "llvm.x86.sse2.pmulu.dq",
-  "llvm.x86.sse2.psad.bw",
-  "llvm.x86.sse2.psll.d",
-  "llvm.x86.sse2.psll.q",
-  "llvm.x86.sse2.psll.w",
-  "llvm.x86.sse2.pslli.d",
-  "llvm.x86.sse2.pslli.q",
-  "llvm.x86.sse2.pslli.w",
-  "llvm.x86.sse2.psra.d",
-  "llvm.x86.sse2.psra.w",
-  "llvm.x86.sse2.psrai.d",
-  "llvm.x86.sse2.psrai.w",
-  "llvm.x86.sse2.psrl.d",
-  "llvm.x86.sse2.psrl.q",
-  "llvm.x86.sse2.psrl.w",
-  "llvm.x86.sse2.psrli.d",
-  "llvm.x86.sse2.psrli.q",
-  "llvm.x86.sse2.psrli.w",
-  "llvm.x86.sse2.psubs.b",
-  "llvm.x86.sse2.psubs.w",
-  "llvm.x86.sse2.psubus.b",
-  "llvm.x86.sse2.psubus.w",
-  "llvm.x86.sse2.sqrt.pd",
-  "llvm.x86.sse2.sqrt.sd",
-  "llvm.x86.sse2.ucomieq.sd",
-  "llvm.x86.sse2.ucomige.sd",
-  "llvm.x86.sse2.ucomigt.sd",
-  "llvm.x86.sse2.ucomile.sd",
-  "llvm.x86.sse2.ucomilt.sd",
-  "llvm.x86.sse2.ucomineq.sd",
-  "llvm.x86.sse3.addsub.pd",
-  "llvm.x86.sse3.addsub.ps",
-  "llvm.x86.sse3.hadd.pd",
-  "llvm.x86.sse3.hadd.ps",
-  "llvm.x86.sse3.hsub.pd",
-  "llvm.x86.sse3.hsub.ps",
-  "llvm.x86.sse3.ldu.dq",
-  "llvm.x86.sse3.monitor",
-  "llvm.x86.sse3.mwait",
-  "llvm.x86.sse41.blendvpd",
-  "llvm.x86.sse41.blendvps",
-  "llvm.x86.sse41.dppd",
-  "llvm.x86.sse41.dpps",
-  "llvm.x86.sse41.insertps",
-  "llvm.x86.sse41.mpsadbw",
-  "llvm.x86.sse41.packusdw",
-  "llvm.x86.sse41.pblendvb",
-  "llvm.x86.sse41.phminposuw",
-  "llvm.x86.sse41.pmuldq",
-  "llvm.x86.sse41.ptestc",
-  "llvm.x86.sse41.ptestnzc",
-  "llvm.x86.sse41.ptestz",
-  "llvm.x86.sse41.round.pd",
-  "llvm.x86.sse41.round.ps",
-  "llvm.x86.sse41.round.sd",
-  "llvm.x86.sse41.round.ss",
-  "llvm.x86.sse42.crc32.32.16",
-  "llvm.x86.sse42.crc32.32.32",
-  "llvm.x86.sse42.crc32.32.8",
-  "llvm.x86.sse42.crc32.64.64",
-  "llvm.x86.sse42.pcmpestri128",
-  "llvm.x86.sse42.pcmpestria128",
-  "llvm.x86.sse42.pcmpestric128",
-  "llvm.x86.sse42.pcmpestrio128",
-  "llvm.x86.sse42.pcmpestris128",
-  "llvm.x86.sse42.pcmpestriz128",
-  "llvm.x86.sse42.pcmpestrm128",
-  "llvm.x86.sse42.pcmpistri128",
-  "llvm.x86.sse42.pcmpistria128",
-  "llvm.x86.sse42.pcmpistric128",
-  "llvm.x86.sse42.pcmpistrio128",
-  "llvm.x86.sse42.pcmpistris128",
-  "llvm.x86.sse42.pcmpistriz128",
-  "llvm.x86.sse42.pcmpistrm128",
-  "llvm.x86.sse4a.extrq",
-  "llvm.x86.sse4a.extrqi",
-  "llvm.x86.sse4a.insertq",
-  "llvm.x86.sse4a.insertqi",
-  "llvm.x86.ssse3.pabs.b",
-  "llvm.x86.ssse3.pabs.d",
-  "llvm.x86.ssse3.pabs.w",
-  "llvm.x86.ssse3.phadd.d",
-  "llvm.x86.ssse3.phadd.d.128",
-  "llvm.x86.ssse3.phadd.sw",
-  "llvm.x86.ssse3.phadd.sw.128",
-  "llvm.x86.ssse3.phadd.w",
-  "llvm.x86.ssse3.phadd.w.128",
-  "llvm.x86.ssse3.phsub.d",
-  "llvm.x86.ssse3.phsub.d.128",
-  "llvm.x86.ssse3.phsub.sw",
-  "llvm.x86.ssse3.phsub.sw.128",
-  "llvm.x86.ssse3.phsub.w",
-  "llvm.x86.ssse3.phsub.w.128",
-  "llvm.x86.ssse3.pmadd.ub.sw",
-  "llvm.x86.ssse3.pmadd.ub.sw.128",
-  "llvm.x86.ssse3.pmul.hr.sw",
-  "llvm.x86.ssse3.pmul.hr.sw.128",
-  "llvm.x86.ssse3.pshuf.b",
-  "llvm.x86.ssse3.pshuf.b.128",
-  "llvm.x86.ssse3.psign.b",
-  "llvm.x86.ssse3.psign.b.128",
-  "llvm.x86.ssse3.psign.d",
-  "llvm.x86.ssse3.psign.d.128",
-  "llvm.x86.ssse3.psign.w",
-  "llvm.x86.ssse3.psign.w.128",
-  "llvm.x86.subborrow.u32",
-  "llvm.x86.subborrow.u64",
-  "llvm.x86.tbm.bextri.u32",
-  "llvm.x86.tbm.bextri.u64",
-  "llvm.x86.vcvtph2ps.128",
-  "llvm.x86.vcvtph2ps.256",
-  "llvm.x86.vcvtps2ph.128",
-  "llvm.x86.vcvtps2ph.256",
-  "llvm.x86.vgf2p8affineinvqb.128",
-  "llvm.x86.vgf2p8affineinvqb.256",
-  "llvm.x86.vgf2p8affineinvqb.512",
-  "llvm.x86.vgf2p8affineqb.128",
-  "llvm.x86.vgf2p8affineqb.256",
-  "llvm.x86.vgf2p8affineqb.512",
-  "llvm.x86.vgf2p8mulb.128",
-  "llvm.x86.vgf2p8mulb.256",
-  "llvm.x86.vgf2p8mulb.512",
-  "llvm.x86.wrfsbase.32",
-  "llvm.x86.wrfsbase.64",
-  "llvm.x86.wrgsbase.32",
-  "llvm.x86.wrgsbase.64",
-  "llvm.x86.wrpkru",
-  "llvm.x86.wrssd",
-  "llvm.x86.wrssq",
-  "llvm.x86.wrussd",
-  "llvm.x86.wrussq",
-  "llvm.x86.xabort",
-  "llvm.x86.xbegin",
-  "llvm.x86.xend",
-  "llvm.x86.xgetbv",
-  "llvm.x86.xop.vfrcz.pd",
-  "llvm.x86.xop.vfrcz.pd.256",
-  "llvm.x86.xop.vfrcz.ps",
-  "llvm.x86.xop.vfrcz.ps.256",
-  "llvm.x86.xop.vfrcz.sd",
-  "llvm.x86.xop.vfrcz.ss",
-  "llvm.x86.xop.vpcomb",
-  "llvm.x86.xop.vpcomd",
-  "llvm.x86.xop.vpcomq",
-  "llvm.x86.xop.vpcomub",
-  "llvm.x86.xop.vpcomud",
-  "llvm.x86.xop.vpcomuq",
-  "llvm.x86.xop.vpcomuw",
-  "llvm.x86.xop.vpcomw",
-  "llvm.x86.xop.vpermil2pd",
-  "llvm.x86.xop.vpermil2pd.256",
-  "llvm.x86.xop.vpermil2ps",
-  "llvm.x86.xop.vpermil2ps.256",
-  "llvm.x86.xop.vphaddbd",
-  "llvm.x86.xop.vphaddbq",
-  "llvm.x86.xop.vphaddbw",
-  "llvm.x86.xop.vphadddq",
-  "llvm.x86.xop.vphaddubd",
-  "llvm.x86.xop.vphaddubq",
-  "llvm.x86.xop.vphaddubw",
-  "llvm.x86.xop.vphaddudq",
-  "llvm.x86.xop.vphadduwd",
-  "llvm.x86.xop.vphadduwq",
-  "llvm.x86.xop.vphaddwd",
-  "llvm.x86.xop.vphaddwq",
-  "llvm.x86.xop.vphsubbw",
-  "llvm.x86.xop.vphsubdq",
-  "llvm.x86.xop.vphsubwd",
-  "llvm.x86.xop.vpmacsdd",
-  "llvm.x86.xop.vpmacsdqh",
-  "llvm.x86.xop.vpmacsdql",
-  "llvm.x86.xop.vpmacssdd",
-  "llvm.x86.xop.vpmacssdqh",
-  "llvm.x86.xop.vpmacssdql",
-  "llvm.x86.xop.vpmacsswd",
-  "llvm.x86.xop.vpmacssww",
-  "llvm.x86.xop.vpmacswd",
-  "llvm.x86.xop.vpmacsww",
-  "llvm.x86.xop.vpmadcsswd",
-  "llvm.x86.xop.vpmadcswd",
-  "llvm.x86.xop.vpperm",
-  "llvm.x86.xop.vprotb",
-  "llvm.x86.xop.vprotbi",
-  "llvm.x86.xop.vprotd",
-  "llvm.x86.xop.vprotdi",
-  "llvm.x86.xop.vprotq",
-  "llvm.x86.xop.vprotqi",
-  "llvm.x86.xop.vprotw",
-  "llvm.x86.xop.vprotwi",
-  "llvm.x86.xop.vpshab",
-  "llvm.x86.xop.vpshad",
-  "llvm.x86.xop.vpshaq",
-  "llvm.x86.xop.vpshaw",
-  "llvm.x86.xop.vpshlb",
-  "llvm.x86.xop.vpshld",
-  "llvm.x86.xop.vpshlq",
-  "llvm.x86.xop.vpshlw",
-  "llvm.x86.xrstor",
-  "llvm.x86.xrstor64",
-  "llvm.x86.xrstors",
-  "llvm.x86.xrstors64",
-  "llvm.x86.xsave",
-  "llvm.x86.xsave64",
-  "llvm.x86.xsavec",
-  "llvm.x86.xsavec64",
-  "llvm.x86.xsaveopt",
-  "llvm.x86.xsaveopt64",
-  "llvm.x86.xsaves",
-  "llvm.x86.xsaves64",
-  "llvm.x86.xsetbv",
-  "llvm.x86.xtest",
-  "llvm.xcore.bitrev",
-  "llvm.xcore.checkevent",
-  "llvm.xcore.chkct",
-  "llvm.xcore.clre",
-  "llvm.xcore.clrpt",
-  "llvm.xcore.clrsr",
-  "llvm.xcore.crc32",
-  "llvm.xcore.crc8",
-  "llvm.xcore.edu",
-  "llvm.xcore.eeu",
-  "llvm.xcore.endin",
-  "llvm.xcore.freer",
-  "llvm.xcore.geted",
-  "llvm.xcore.getet",
-  "llvm.xcore.getid",
-  "llvm.xcore.getps",
-  "llvm.xcore.getr",
-  "llvm.xcore.getst",
-  "llvm.xcore.getts",
-  "llvm.xcore.in",
-  "llvm.xcore.inct",
-  "llvm.xcore.initcp",
-  "llvm.xcore.initdp",
-  "llvm.xcore.initlr",
-  "llvm.xcore.initpc",
-  "llvm.xcore.initsp",
-  "llvm.xcore.inshr",
-  "llvm.xcore.int",
-  "llvm.xcore.mjoin",
-  "llvm.xcore.msync",
-  "llvm.xcore.out",
-  "llvm.xcore.outct",
-  "llvm.xcore.outshr",
-  "llvm.xcore.outt",
-  "llvm.xcore.peek",
-  "llvm.xcore.setc",
-  "llvm.xcore.setclk",
-  "llvm.xcore.setd",
-  "llvm.xcore.setev",
-  "llvm.xcore.setps",
-  "llvm.xcore.setpsc",
-  "llvm.xcore.setpt",
-  "llvm.xcore.setrdy",
-  "llvm.xcore.setsr",
-  "llvm.xcore.settw",
-  "llvm.xcore.setv",
-  "llvm.xcore.sext",
-  "llvm.xcore.ssync",
-  "llvm.xcore.syncr",
-  "llvm.xcore.testct",
-  "llvm.xcore.testwct",
-  "llvm.xcore.waitevent",
-  "llvm.xcore.zext",
-#endif
-
-// Intrinsic ID to overload bitset
-#ifdef GET_INTRINSIC_OVERLOAD_TABLE
-static const uint8_t OTable[] = {
-  0 | (1<<3) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<3) | (1<<4) | (1<<5),
-  0,
-  0 | (1<<2) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0),
-  0 | (1<<0),
-  0 | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-  0 | (1<<0) | (1<<1) | (1<<6),
-  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<2) | (1<<3) | (1<<5) | (1<<6),
-  0 | (1<<1) | (1<<2) | (1<<3),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4),
-  0 | (1<<3) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<5),
-  0,
-  0,
-  0,
-  0 | (1<<3) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<7),
-  0 | (1<<0) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
-  0 | (1<<0) | (1<<2) | (1<<3) | (1<<6) | (1<<7),
-  0,
-  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<3) | (1<<4),
-  0,
-  0 | (1<<1) | (1<<2) | (1<<3),
-  0 | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<1) | (1<<3) | (1<<4) | (1<<5) | (1<<7),
-  0 | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4),
-  0 | (1<<6),
-  0 | (1<<0) | (1<<4),
-  0 | (1<<3) | (1<<7),
-  0 | (1<<0),
-  0,
-  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<5),
-  0 | (1<<5),
-  0 | (1<<0),
-  0,
-  0 | (1<<0) | (1<<6),
-  0,
-  0,
-  0 | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<2) | (1<<3) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2),
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0 | (1<<0) | (1<<2),
-  0,
-  0,
-  0 | (1<<7),
-  0 | (1<<0),
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1),
-  0,
-  0 | (1<<3) | (1<<4),
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1),
-  0,
-  0,
-  0 | (1<<2),
-  0,
-  0 | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0 | (1<<6),
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0 | (1<<4) | (1<<5),
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0),
-  0,
-  0,
-  0,
-  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0),
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0 | (1<<7),
-  0,
-  0,
-  0 | (1<<2),
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0 | (1<<0) | (1<<1),
-  0 | (1<<4),
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0 | (1<<6),
-  0 | (1<<1) | (1<<2) | (1<<3),
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0 | (1<<2) | (1<<4),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-  0 | (1<<0) | (1<<1) | (1<<2) | (1<<4) | (1<<5),
-  0 | (1<<0) | (1<<1) | (1<<2)
-};
-
-return (OTable[id/8] & (1 << (id%8))) != 0;
-#endif
-
-// Global intrinsic function declaration type table.
-#ifdef GET_INTRINSIC_GENERATOR_GLOBAL
-static const unsigned IIT_Table[] = {
-  0x2e, 0x2e2e, (1U<<31) | 1790, 0x10, 0x1f1f, 0x1f1f, 0x2f2f, 
-  0x2f2f, 0x2e2e0, (1U<<31) | 4170, 0x32f, 0x2f3, 0x2f2f2f, (1U<<31) | 4163, (1U<<31) | 1070, 
-  0x2e0, 0x2e1, 0x12e1, 0x2e, (1U<<31) | 1070, (1U<<31) | 981, 0x2e2e1, 0x142e2e, 
-  0x2e0, (1U<<31) | 1072, 0x1f, 0x22e2e, (1U<<31) | 195, 0x2f2f, 0x11f1f, 0x1f1f, 
-  0x11f1f, (1U<<31) | 4217, (1U<<31) | 4217, (1U<<31) | 4217, 0x0, 0x0, 0x42e, (1U<<31) | 4167, 
-  (1U<<31) | 4166, 0x2e40, 0x2e50, 0x40, 0x2e0, 0x2e0, 0x2e, 0x2e4, 
-  0x0, 0x2e4, 0x0, 0x2f2f, 0x2f2f, 0x1f1f1f, (1U<<31) | 4202, (1U<<31) | 4202, 
-  (1U<<31) | 4202, (1U<<31) | 4200, (1U<<31) | 4200, (1U<<31) | 4198, (1U<<31) | 4200, (1U<<31) | 4200, (1U<<31) | 4200, (1U<<31) | 4202, 
-  (1U<<31) | 4202, (1U<<31) | 4202, (1U<<31) | 4202, (1U<<31) | 4200, (1U<<31) | 4209, (1U<<31) | 4202, (1U<<31) | 4202, (1U<<31) | 4202, 
-  (1U<<31) | 4222, (1U<<31) | 2481, (1U<<31) | 4159, (1U<<31) | 4246, (1U<<31) | 4226, (1U<<31) | 4238, (1U<<31) | 4230, (1U<<31) | 4255, 
-  0xbf1f, 0xbf1f, (1U<<31) | 4191, 0xbf2f, 0xbf2f, (1U<<31) | 4191, 0xbf1f, 0xbf1f, 
-  0xbf1f, 0xbf1f, 0xbf1f, 0xbf1f, 0xbf1f, 0x2f2f, 0x2f2f, 0x4, 
-  0x2f2f2f2f, 0x2f2f2f2f, 0x42e, 0x2ee2e2e, 0x2e2ee0, 0x2ee2e2e0, 0x1f, (1U<<31) | 4223, 
-  0x2e2e2e0, 0x4452e0, 0x54452e0, 0x44552e0, (1U<<31) | 3047, 0x4f4f, (1U<<31) | 3048, 0x4f50, 
-  0x4f50, 0x1f2e2e, 0x2e, (1U<<31) | 4223, 0x42e2e2e, 0x2f2f, 0x2f2f, 0x2f2f, 
-  0x42e0, (1U<<31) | 107, (1U<<31) | 1251, (1U<<31) | 1261, (1U<<31) | 1273, (1U<<31) | 116, (1U<<31) | 127, 0x2f2f2f, 
-  (1U<<31) | 186, (1U<<31) | 3137, (1U<<31) | 186, (1U<<31) | 3137, 0x19f24f0, 0x49f24f0, 0x2f2f2f, 0x2f2f, 
-  0x11cf1f, 0x40, 0x2f2f2f, 0x42f2f, 0x4442e0, (1U<<31) | 1800, (1U<<31) | 4173, 0x5, 
-  0x42e, 0x2f2f, 0x2f2f, (1U<<31) | 172, 0x2e4, 0x0, 0x42e0, 0x42e4, 
-  0x2f2f, (1U<<31) | 172, 0x2f2f, 0xf0f, (1U<<31) | 172, 0x2e, 0x2ee2e0, 0x2e0, 
-  0x2e, 0x2e, 0x0, 0x2f2f, (1U<<31) | 4182, (1U<<31) | 4177, (1U<<31) | 172, (1U<<31) | 172, 
-  (1U<<31) | 172, 0x2e2e0, 0x2e0, 0x2e0, 0x42e2e2e0, (1U<<31) | 181, 0x42e0, 0x0, 
-  0x444, 0x444, 0x444, 0x444, 0x544, 0x444, 0x444, 0x544, 
-  0x2c2c2c, 0x2c2c2c, 0x2c2c, 0x2c2c, 0x4a44a4a, 0x44, 0x4a44a4a, 0x4a44a4a, 
-  0x4a4a4a4a, 0x4a4a4a, 0x4a4a4a4a, 0x4a4a4a4a, 0x4a4a4a, 0x4a4a4a4a, 0x40, 0x40, 
-  0x40, 0x40, (1U<<31) | 1058, 0x4f5, (1U<<31) | 1058, 0x4f5, 0xf0f, (1U<<31) | 1328, 
-  0x3f3f3f, 0x3f3f, 0x3f3f3f, 0xafaf1f, 0xafaf1f, 0xbf2f, 0xaf1f, 0xaf1f, 
-  0xaf1f, 0xaf1f, 0xaf1f, 0xaf1f, 0xaf1f, 0xaf1f, 0xbf3f, 0xaf1f, 
-  0xaf1f, 0x2f2f2f, 0x2f2f2f, 0x3f3f3f, 0xbf2f, 0x3f3f3f, 0xbf2f, 0x2f2f2f, 
-  0x2f2f2f, 0x3f3f3f, 0xbf2f, 0x3f3f3f, 0xbf2f, 0x2f2f2f, 0x2f2f, 0x2f2f2f, 
-  0x2f2f, 0x2f2f, 0x2f2f, 0x2f2f2f, (1U<<31) | 4045, (1U<<31) | 4035, (1U<<31) | 4023, (1U<<31) | 4045, 
-  (1U<<31) | 4124, (1U<<31) | 4045, (1U<<31) | 4035, (1U<<31) | 4107, (1U<<31) | 4035, (1U<<31) | 4023, (1U<<31) | 4086, (1U<<31) | 4023, 
-  0x3f3f3f, (1U<<31) | 1340, 0x552c, (1U<<31) | 1328, 0x3f3f, (1U<<31) | 1347, (1U<<31) | 1328, 0x3f3f3f, 
-  0xbf3f, 0xbf1f, 0xbf1f, 0x9f1f, 0x9f1f, 0x9f1f, 0x3f3f3f, (1U<<31) | 1335, 
-  0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0xbf1f, 0x3f3f3f, 0x3f3f3f, 0xbf1f, (1U<<31) | 1340, 
-  0x1f1f, 0x1f1f1f, 0x1f1f1f, (1U<<31) | 1340, 0x445, 0x1f1f, 0x1f1f1f, 0x1f1f1f, 
-  (1U<<31) | 1347, (1U<<31) | 1347, 0x1f1f1f, 0x1f1f1f, (1U<<31) | 1347, (1U<<31) | 1347, 0x1f1f1f, (1U<<31) | 199, 
-  (1U<<31) | 199, 0x3f3f3f, 0x1f1f1f, 0x1f1f1f, (1U<<31) | 1961, 0xcf3f3f0, (1U<<31) | 4001, (1U<<31) | 4011, 
-  0xcf3f3f0, (1U<<31) | 4053, (1U<<31) | 4001, (1U<<31) | 4062, (1U<<31) | 4011, (1U<<31) | 4073, (1U<<31) | 1328, 0x1f1f1f, 
-  0x3f2c3f, 0x3f2c2c3f, (1U<<31) | 1301, (1U<<31) | 1286, 0x3f2c3f3f, (1U<<31) | 1312, (1U<<31) | 1299, (1U<<31) | 1284, 
-  0x3f3f3f, 0xbf3f, 0xbf1f, 0xbf1f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 
-  0xbf1f, 0x3f3f3f, 0x3f3f3f, 0xbf1f, (1U<<31) | 1340, 0x1f1f1f, 0x1f1f1f, (1U<<31) | 1347, 
-  0x1f1f1f, (1U<<31) | 1347, 0x1f1f1f, (1U<<31) | 199, 0x3f3f, 0x3f3f3f, 0x1f1f1f, 0x3f3f, 
-  0x1f1f1f, (1U<<31) | 1961, 0x1f1f1f, 0x53f5bf3f, 0x4af1f, 0x4af1f, 0x7a3a, 0x49f2f, 
-  0x49f2f, 0x3a7a, 0x43f3f3f, 0x43f3f3f, 0x1f1f1f, 0x2f2f2f, 0x87, 0x2e554, 
-  0x4f54, 0x2e554, 0x4f54, 0x1f1f1f, 0x4444, 0x4444, (1U<<31) | 137, (1U<<31) | 137, 
-  0x55, 0x1444a44, 0x1444a44, 0x1444a444, 0x1444a44, 0x1444a44, 0x1444a44, 0x1444a44, 
-  0x1444a44, 0x1444a44, 0x1444a44, 0x1444a44, 0x11444a2f, 0x11444a2f, (1U<<31) | 77, (1U<<31) | 77, 
-  0x0, 0x0, 0x0, 0x42f1, 0x2f2f, 0x7777, 0x7777, 0x7777, 
-  0x7777, 0x4439, 0x4439, 0x4474, 0x7739, 0x7739, 0x7769, 0x5, 
-  (1U<<31) | 531, 0x2f2f2f2f, (1U<<31) | 97, (1U<<31) | 87, 0x444, (1U<<31) | 158, (1U<<31) | 158, (1U<<31) | 158, 
-  0x444, 0x444, (1U<<31) | 3196, 0x555, 0x50, (1U<<31) | 0, (1U<<31) | 53, 0x42f2f5, 
-  0x777, 0x2f2f2f2f, 0x777, 0x2f2f, 0xaf1f, 0x2f2f, 0x4, 0x41f1f5, 
-  (1U<<31) | 167, 0x515, (1U<<31) | 43, (1U<<31) | 43, (1U<<31) | 42, (1U<<31) | 43, (1U<<31) | 43, (1U<<31) | 43, 
-  (1U<<31) | 43, (1U<<31) | 43, (1U<<31) | 43, (1U<<31) | 43, (1U<<31) | 43, (1U<<31) | 43, (1U<<31) | 43, (1U<<31) | 14, 
-  (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, 
-  (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, 
-  (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, 
-  (1U<<31) | 30, (1U<<31) | 30, (1U<<31) | 30, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, 
-  (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, 
-  (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, 
-  (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, 
-  (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, 
-  (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 14, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 531, (1U<<31) | 531, 0x50, 
-  0x440, 0x44447, 0x44477, 0x444777, (1U<<31) | 531, 0x10, 0x42f2f, 0x4444, 
-  0x2f2f, 0x51, 0x444, 0x444, 0x14441f1f, 0x5455, 0x4a454a, 0x4444, 
-  0x1, 0x5455, (1U<<31) | 531, 0x2f2f, 0x77, 0x44, 0x444, 0x2f2f, 
-  0x2f2f, 0x77, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 
-  0x5, 0x44, 0x40, 0x5, 0x5, 0x440, 0x440, 0x40, 
-  0x40, 0x4444, 0x4444, 0x4444, 0x441f1f, 0x1f1f1f, 0x1f1f, 0x2f2f, 
-  (1U<<31) | 64, (1U<<31) | 63, 0x42f2f, 0x441f1f, 0x0, (1U<<31) | 147, 0x0, 0x4, 
-  0x4, 0x4, 0x4, 0x4, 0x4, 0xf0f, 0x11, 0x4444, 
-  0xf0f, 0x4444440, 0x4444440, 0x0, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x40, 0x40, 0x40, 0x4, 0x40, 0x40, 
-  0x4f4, (1U<<31) | 1042, 0x2e440, 0x2e440, 0x2e440, 0x2e440, 0x4f4, (1U<<31) | 1042, 
-  0x4444440, 0x4444440, 0x444440, 0x444440, 0x444444, 0x444444, (1U<<31) | 2061, (1U<<31) | 2061, 
-  0x2c2c2c, 0x2c2c2c, 0x2c2c, 0x2c2c, 0x4a44a4a, 0x44, 0x4a44a4a, 0x4a44a4a, 
-  0x4a4a4a4a, 0x4a4a4a, 0x4a4a4a4a, 0x4a4a4a4a, 0x4a4a4a, 0x4a4a4a4a, 0x3f3f3f, 0x3f3f3f, 
-  0x3f3f, 0xbfbf3f, 0xbfbf3f, 0x3f3f3f3f, 0x3f3f, 0xbf3f, 0xbf3f, 0x4af1f, 
-  0x4af1f, 0x7a3a, 0x49f2f, 0x49f2f, 0x3a7a, 0xbf3f, 0xbf3f, 0xbf3f, 
-  0xbf3f, 0xbf3f, 0xbf3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x4cf3f, 
-  (1U<<31) | 2932, (1U<<31) | 2037, (1U<<31) | 2921, (1U<<31) | 2019, (1U<<31) | 2908, (1U<<31) | 1997, 0x3f3f3f, 0x3f3f3f, 
-  0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, (1U<<31) | 1340, (1U<<31) | 1340, (1U<<31) | 1340, 0x3f3f3f, 
-  0xbf3f3f, 0xbf3f3f, 0x3f3f3f, 0xbf3f, 0xbf3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 
-  0x3f3f3f, 0x3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, (1U<<31) | 1340, (1U<<31) | 1323, (1U<<31) | 1323, 
-  (1U<<31) | 1323, 0x3f3f, 0x3f3f3f, (1U<<31) | 1328, (1U<<31) | 1328, (1U<<31) | 1328, 0x3f3f3f, 0x3f3f3f, 
-  (1U<<31) | 1328, (1U<<31) | 1328, (1U<<31) | 1328, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 
-  (1U<<31) | 1328, 0x3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f, 0x3f3f, 0x3f3f, 
-  0x3f3f, 0x3f3f, 0x3f3f, (1U<<31) | 1328, 0x3f3f3f, 0x3f3f3f, 0x3f3f, 0x3f3f3f, 
-  (1U<<31) | 1328, 0x3f3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x4bf4f0, 0x4bfbf4f0, (1U<<31) | 2303, (1U<<31) | 2812, 
-  (1U<<31) | 2313, (1U<<31) | 2823, (1U<<31) | 2325, 0x2b2b2b, 0x2b2b2b2b, (1U<<31) | 954, (1U<<31) | 952, 0x2b2b2b2b, 
-  (1U<<31) | 954, (1U<<31) | 952, (1U<<31) | 950, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x40, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x4444, 0x4444, 
-  0x4444, 0x4444, 0x5445, 0x5445, 0x4444, 0x4444, 0x4444, 0x4444, 
-  0x4444, 0x4444, 0x5445, 0x5445, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x2e440, 0x2e440, 0x2e440, 0x2e440, 
-  0x4f44, 0x2e444, 0x4f44, 0x2e444, 0x444, 0x44, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x40, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x4444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x44, 0x2f7, 
-  0x2f7, 0x52e5, 0x52e5, 0x52e5, 0x555, 0x44, 0x55, 0x44, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x555, 0x555, 
-  0x444, 0x545, 0x444, 0x444, 0x555, 0x44, 0x44, 0x444, 
-  0x444, 0x444, 0x444, 0x445, 0x445, 0x444, 0x555, 0x444, 
-  0x555, 0x444, 0x555, 0x444, 0x555, 0x44, 0x55, 0x44, 
-  0x44, 0x55, 0x444, 0x444, 0x555, 0x54, 0x54, 0x44, 
-  0x44, 0x44, 0x44, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x555, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x44, 0x44, 0x44, 0x45, 
-  0x44, 0x444, 0x444, 0x55, 0x45, 0x44, 0x55, 0x55, 
-  0x55, 0x55, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x554, 0x554, 
-  0x554, 0x554, 0x554, 0x554, 0x554, 0x554, 0x55, 0x555, 
-  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-  0x555, 0x555, 0x5555, 0x555, 0x5555, 0x555, 0x555, 0x555, 
-  0x555, 0x555, 0x555, 0x555, 0x555, 0x444, 0x555, 0x44, 
-  0x44, 0x444, 0x555, 0x445, 0x445, 0x544, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x445, 0x445, 0x444, 0x444, 0x444, 0x444, 
-  0x555, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x454, 0x554, 0x454, 0x554, 0x454, 0x454, 0x454, 
-  0x454, 0x454, 0x454, 0x454, 0x454, 0x4555, 0x4555, 0x4555, 
-  0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x554, 0x554, 0x554, 
-  0x44, 0x444, 0x444, 0x44, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x554, 0x444, 0x444, 0x444, 0x444, 0x554, 0x444, 
-  0x444, 0x554, 0x444, 0x444, 0x45, 0x4444, 0x4444, 0x4444, 
-  0x4444, 0x44, 0x444, 0x444, 0x44, 0x44, 0x44, 0x444, 
-  0x5545, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x58, 0x57, 0x85, 
-  0x85, 0x87, 0x85, 0x85, 0x84, 0x84, 0x84, 0x84, 
-  0x75, 0x75, 0x78, 0x75, 0x75, 0x74, 0x74, 0x74, 
-  0x74, 0x58, 0x57, 0x48, 0x47, 0x48, 0x47, 0x484, 
-  0x884, 0x884, 0x884, 0x884, 0x48, 0x48, 0x777, 0x474, 
-  0x774, 0x774, 0x774, 0x774, 0x777, 0x777, 0x77, 0x7777, 
-  0x7777, 0x47777, 0x7777, 0x7777, 0x47, 0x47, 0x777, 0x777, 
-  0x777, 0x777, (1U<<31) | 1810, (1U<<31) | 1010, (1U<<31) | 990, (1U<<31) | 1818, (1U<<31) | 1021, (1U<<31) | 1000, 
-  (1U<<31) | 1810, (1U<<31) | 1010, (1U<<31) | 990, (1U<<31) | 1810, (1U<<31) | 1010, (1U<<31) | 990, (1U<<31) | 1810, (1U<<31) | 1010, 
-  (1U<<31) | 990, (1U<<31) | 1810, (1U<<31) | 1010, (1U<<31) | 990, 0x4e4, 0x5e5, 0x4444, 0x4444, 
-  0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x445, 0x445, 
-  0x444, 0x444, 0x444, 0x444, 0x445, 0x445, 0x445, 0x445, 
-  0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x444, 0x445, 
-  0x4455, 0x4455, 0x445, 0x444, 0x444, 0x444, 0x444, 0x4444, 
-  0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 
-  0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 
-  0x5555, 0x5555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-  0x555, 0x555, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-  0x4444, 0x4444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-  0x4444, 0x4444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x4455, 0x4455, 0x4455, 
-  0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x445, 0x445, 0x445, 
-  0x445, 0x445, 0x445, 0x445, 0x445, 0x4455, 0x4455, 0x4455, 
-  0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x445, 0x445, 0x445, 
-  0x445, 0x445, 0x445, 0x445, 0x445, 0x444, 0x444, 0x444, 
-  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-  0x444, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
-  0x4455, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 
-  0x445, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
-  0x4455, 0x444, 0x4444, 0x4444, 0x4444, 0x555, 0x555, 0x5555, 
-  0x5555, 0x555, 0x555, 0x555, 0x555, 0x5555, 0x5555, 0x554, 
-  0x554, 0x555, 0x555, 0x4455, 0x5555, 0x5555, 0x5555, 0x4455, 
-  0x4455, 0x4455, 0x4455, 0x555, 0x555, 0x445, 0x444, 0x445, 
-  0x444, 0x445, 0x445, 0x554, 0x554, 0x5555, 0x5555, 0x5555, 
-  0x5555, 0x555, 0x555, 0x555, 0x555, 0x4555, 0x455, 0x454, 
-  0x5555, 0x555, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x454, 
-  0x454, 0x454, 0x454, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x445, 0x4455, 
-  0x445, 0x4455, 0x5555, 0x5555, 0x555, 0x555, 0x5555, 0x5555, 
-  0x555, 0x555, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x555, 
-  0x4455, 0x4455, 0x445, 0x445, 0x5555, 0x5555, 0x555, 0x555, 
-  0x555, 0x555, 0x4444, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 
-  0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x4444, 
-  0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 
-  0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x455, 0x455, 
-  0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x455, 0x455, 0x444, 
-  0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x454, 0x455, 
-  0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 
-  0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x454, 0x455, 0x455, 
-  0x44, 0x55, 0x4555, 0x44, 0x54, 0x44, 0x54, 0x44, 
-  0x44, 0x54, 0x444, 0x444, 0x44, 0x54, 0x44, 0x54, 
-  0x55, 0x4444, 0x544, 0x4455, 0x555, 0x44444, 0x5444, 0x44555, 
-  0x5555, 0x55, 0x555, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 
-  0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x455, 0x455, 
-  0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 
-  0x4444, 0x4444, 0x4444, 0x4444, 0x455, 0x455, 0x455, 0x4555, 
-  0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 
-  0x4444, 0x455, 0x455, 0x445, 0x554, 0x444, 0x444, 0x555, 
-  0x555, 0x555, 0x555, 0x442e2e, (1U<<31) | 1032, 0x2e442e2e, 0x452e2e, (1U<<31) | 1048, 
-  0x2e542e2e, 0x442e2e, (1U<<31) | 1032, 0x2e442e2e, 0x442e2e, (1U<<31) | 1032, 0x2e442e2e, 0x442e2e, 
-  (1U<<31) | 1032, 0x2e442e2e, 0x44e4, 0x44, 0x44, 0x44444, 0x44444, 0x44444, 
-  0x44444, 0x444, 0x444, 0x444, 0x444, 0x4555, 0x4555, 0x455, 
-  0x455, 0x4555, 0x54, 0x54, 0x54, 0x55, 0x54, 0x55, 
-  0x54, 0x55, 0x54, 0x55, 0x44, 0x45, 0x4555, 0x4555, 
-  0x45, 0x45, 0x54, 0x555, 0x54, 0x555, 0x45, 0x45, 
-  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x454, 0x54, 
-  0x4444, 0x544, 0x4455, 0x555, 0x444, 0x444, 0x444, 0x4444, 
-  0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x55e4, 0x4444, 0x4444, 
-  0x4444, 0x4455, 0x44555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-  0x555, 0x454, 0x454, 0x54, 0x455, 0x455, 0x4555, 0x4555, 
-  0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 
-  0x4444, 0x45, 0x555, 0x555, 0x44c4, 0x44d4, 0x4d4c, (1U<<31) | 3121, 
-  0x4d4c, (1U<<31) | 3121, 0x44c, 0x44d, 0x44c, 0x44d, 0x44c, 0x44d, 
-  (1U<<31) | 204, (1U<<31) | 223, (1U<<31) | 204, (1U<<31) | 223, (1U<<31) | 206, (1U<<31) | 225, (1U<<31) | 204, (1U<<31) | 223, 
-  (1U<<31) | 204, (1U<<31) | 223, (1U<<31) | 1357, (1U<<31) | 1365, (1U<<31) | 1357, (1U<<31) | 1365, (1U<<31) | 204, (1U<<31) | 223, 
-  (1U<<31) | 204, (1U<<31) | 223, (1U<<31) | 204, (1U<<31) | 223, (1U<<31) | 2843, (1U<<31) | 2948, (1U<<31) | 2843, (1U<<31) | 2948, 
-  (1U<<31) | 2843, (1U<<31) | 2948, (1U<<31) | 2843, (1U<<31) | 2948, 0x4c4c, 0x4d4d, 0x4c4c, 0x4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c, 0x4d4d, 0x4c4c, 0x4d4d, 0x4c4c, 0x4d4d, 0x4c4c, 0x4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, (1U<<31) | 2870, (1U<<31) | 2985, (1U<<31) | 2870, (1U<<31) | 2985, 
-  0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, (1U<<31) | 211, (1U<<31) | 230, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, (1U<<31) | 2870, (1U<<31) | 2985, 
-  (1U<<31) | 2870, (1U<<31) | 2985, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, 0x4c4c4d, (1U<<31) | 3015, 
-  0x4c4c4d4d, (1U<<31) | 3013, 0x4c4c4d, (1U<<31) | 3015, 0x4c4c4d4d, (1U<<31) | 3013, 0x4c4c4c, 0x4d4d4d, 
-  0x4d4d4d, (1U<<31) | 3126, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, 
-  0x4c4c4d, (1U<<31) | 3015, 0x4c4c4d4d, (1U<<31) | 3013, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, 
-  0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, (1U<<31) | 2870, (1U<<31) | 2985, (1U<<31) | 2870, (1U<<31) | 2985, 
-  0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x4c4c4c, 0x4d4d4d, (1U<<31) | 1355, (1U<<31) | 1363, (1U<<31) | 1353, (1U<<31) | 1361, (1U<<31) | 1355, (1U<<31) | 1363, 
-  (1U<<31) | 1353, (1U<<31) | 1361, (1U<<31) | 2836, (1U<<31) | 2941, (1U<<31) | 2836, (1U<<31) | 2941, (1U<<31) | 2341, (1U<<31) | 2379, 
-  (1U<<31) | 2339, (1U<<31) | 2377, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 0x44c4c, 0x44d4d, 
-  0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c, 0x4d4d, 0x4d4d, (1U<<31) | 3128, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c, 0x4d4d, 0x4c4c, 0x4d4d, 0x4c4c4d, (1U<<31) | 3015, 0x4c, 0x4d, 
-  0x4d, (1U<<31) | 3110, 0x4c4c, 0x4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c, 0x4d4d, 
-  0x44c4c4d, (1U<<31) | 2397, 0x4c4c4c, 0x4d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x44d4d, (1U<<31) | 2470, 0x44d4d4d, (1U<<31) | 2468, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x44d4d, (1U<<31) | 2470, 0x44d4d4d, (1U<<31) | 2468, 0x44d4c, (1U<<31) | 2462, 0x44d4c4c, (1U<<31) | 2460, 
-  0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x44d4c, (1U<<31) | 2462, 0x44d4c4c, (1U<<31) | 2460, 
-  0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 
-  0x44d4d, (1U<<31) | 2470, 0x44d4d4d, (1U<<31) | 2468, (1U<<31) | 2863, (1U<<31) | 2978, (1U<<31) | 2861, (1U<<31) | 2976, 
-  (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2863, (1U<<31) | 2978, (1U<<31) | 2861, (1U<<31) | 2976, 
-  (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2863, (1U<<31) | 2978, (1U<<31) | 2861, (1U<<31) | 2976, 
-  (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, 0x4c442e0, 0x4d442e0, (1U<<31) | 2851, (1U<<31) | 2966, 
-  0x4d442e0, (1U<<31) | 3113, (1U<<31) | 2956, (1U<<31) | 3103, 0x4c442e0, 0x4d442e0, (1U<<31) | 2851, (1U<<31) | 2966, 
-  (1U<<31) | 2863, (1U<<31) | 2978, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, 
-  (1U<<31) | 2863, (1U<<31) | 2978, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, 
-  (1U<<31) | 2863, (1U<<31) | 2978, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, 
-  (1U<<31) | 2863, (1U<<31) | 2978, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, 
-  (1U<<31) | 2863, (1U<<31) | 2978, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, 
-  (1U<<31) | 2863, (1U<<31) | 2978, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, (1U<<31) | 2861, (1U<<31) | 2976, 
-  0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c, 0x44d4d, 
-  0x44c4c, 0x44d4d, 0x4c4c4c, 0x4d4d4d, 0x44c4c, 0x44d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x54c4c, 0x54d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c4c, 0x44d4d4d, (1U<<31) | 2357, (1U<<31) | 2385, 
-  (1U<<31) | 2357, (1U<<31) | 2385, 0x44c4c4c, 0x44d4d4d, 0x44c4c4d, (1U<<31) | 2397, 0x44c4c4d, (1U<<31) | 2397, 
-  (1U<<31) | 2367, (1U<<31) | 2395, (1U<<31) | 2367, (1U<<31) | 2395, 0x44c4c4d, (1U<<31) | 2397, (1U<<31) | 2843, (1U<<31) | 2948, 
-  (1U<<31) | 2843, (1U<<31) | 2948, (1U<<31) | 2843, (1U<<31) | 2948, (1U<<31) | 2843, (1U<<31) | 2948, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x44d4d, (1U<<31) | 2470, 0x44d4d4d, (1U<<31) | 2468, 0x4d4d4d, (1U<<31) | 3126, 
-  0x44d4d, (1U<<31) | 2470, 0x44d4d4d, (1U<<31) | 2468, 0x4d4d4d, (1U<<31) | 3126, 0x44d4d, (1U<<31) | 2470, 
-  0x44d4d4d, (1U<<31) | 2468, 0x54c4c4c, 0x54d4d4d, 0x44d4d, (1U<<31) | 2470, 0x44d4d4d, (1U<<31) | 2468, 
-  0x54c4c4c, 0x54d4d4d, 0x54c4c4c, 0x54d4d4d, 0x44c4d, (1U<<31) | 2407, 0x44c4d4d, (1U<<31) | 2405, 
-  0x4c4c4d, (1U<<31) | 3015, 0x4c4c4d4d, (1U<<31) | 3013, 0x4c4c4d, (1U<<31) | 3015, 0x4c4c4d4d, (1U<<31) | 3013, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4d, (1U<<31) | 3015, 0x44c4d, (1U<<31) | 2407, 0x44c4d4d, (1U<<31) | 2405, 
-  0x44c4d4d, (1U<<31) | 2405, 0x44c4c, 0x44d4d, 0x44c4c, 0x44d4d, 0x4c4c4d, (1U<<31) | 3015, 
-  0x4c4c4d4d, (1U<<31) | 3013, 0x4c4c4d, (1U<<31) | 3015, 0x4c4c4d4d, (1U<<31) | 3013, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x44c4c, 0x44d4d, 
-  0x44c4c4c, 0x44d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4d4d, (1U<<31) | 3013, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 
-  0x44c4d, (1U<<31) | 2407, 0x44c4d4d, (1U<<31) | 2405, 0x4c4c4d, (1U<<31) | 3015, 0x4c4c4d4d, (1U<<31) | 3013, 
-  0x44c4d, (1U<<31) | 2407, 0x44c4d4d, (1U<<31) | 2405, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x4c4c4d, (1U<<31) | 3015, 0x4c4c4d4d, (1U<<31) | 3013, (1U<<31) | 2870, (1U<<31) | 2985, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c, 0x4d4d, 
-  0x4c4c, 0x4d4d, 0x4c4c, 0x4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c, 0x4d4d, 
-  (1U<<31) | 218, (1U<<31) | 237, (1U<<31) | 218, (1U<<31) | 237, (1U<<31) | 218, (1U<<31) | 237, 0x4c4c4c, 0x4d4d4d, 
-  0x54c4d, (1U<<31) | 3190, 0x54c4d4d, (1U<<31) | 3188, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x444d4d, (1U<<31) | 2146, 0x444d4d4d, (1U<<31) | 2144, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x44c4c, 0x44d4d, 0x44c4c4c, 0x44d4d4d, 
-  0x54c4d, (1U<<31) | 3190, 0x54c4d4d, (1U<<31) | 3188, 0x444d4d, (1U<<31) | 2146, 0x444d4d4d, (1U<<31) | 2144, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c4c, 0x4d4d4d4d, 0x44c4c, 0x44d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x444d4d, (1U<<31) | 2146, 0x444d4d4d, (1U<<31) | 2144, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4c4d, (1U<<31) | 3025, 0x4c4c440, 0x4d4d440, 
-  0x4c4c440, 0x4d4d440, (1U<<31) | 2888, (1U<<31) | 3003, 0x4c4d440, (1U<<31) | 3022, 0x4c4d440, (1U<<31) | 3022, 
-  (1U<<31) | 2898, (1U<<31) | 3030, 0x4c4c440, 0x4d4d440, 0x4c4c440, 0x4d4d440, (1U<<31) | 2888, (1U<<31) | 3003, 
-  0x4c4d, (1U<<31) | 3025, 0x4c4c4c, 0x4d4d4d, 0x4c4c, 0x4d4d, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c, 0x4d4d, 0x4c4c4c, 0x4d4d4d, 0x44c4c4d, (1U<<31) | 2397, 0x4c4c4d, (1U<<31) | 3015, 
-  0x4c4c4d, (1U<<31) | 3015, 0x4c4c4c, 0x4d4d4d, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, 
-  (1U<<31) | 2870, (1U<<31) | 2985, (1U<<31) | 2870, (1U<<31) | 2985, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, 
-  (1U<<31) | 211, (1U<<31) | 230, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, (1U<<31) | 2870, (1U<<31) | 2985, 
-  (1U<<31) | 2870, (1U<<31) | 2985, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, 0x4c4c4d, (1U<<31) | 3015, 
-  0x4c4c4d, (1U<<31) | 3015, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, 0x4c4c4c, 0x4d4d4d, 
-  0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, 0x4c4c4d, (1U<<31) | 3015, 0x4c4c4c, 0x4d4d4d, 
-  0x4d4d4d, (1U<<31) | 3126, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, (1U<<31) | 2870, (1U<<31) | 2985, 
-  (1U<<31) | 2870, (1U<<31) | 2985, 0x4c4c4c, 0x4d4d4d, 0x4d4d4d, (1U<<31) | 3126, (1U<<31) | 2879, (1U<<31) | 2994, 
-  0x44d4d, (1U<<31) | 2470, 0x44d4d4d, (1U<<31) | 2468, 0x44d4d, (1U<<31) | 2470, 0x44d4d4d, (1U<<31) | 2468, 
-  0x44d4d, (1U<<31) | 2470, 0x44d4d4d, (1U<<31) | 2468, 0x4c4d, (1U<<31) | 3025, 0x4c4d, (1U<<31) | 3025, 
-  0x4c4d4d, (1U<<31) | 3040, 0x4c4d4d, (1U<<31) | 3040, 0x4c4d, (1U<<31) | 3025, 0x4c4d, (1U<<31) | 3025, 
-  0x4c4c4c, 0x4d4d4d, 0x4c4d, (1U<<31) | 3025, 0x4c4d, (1U<<31) | 3025, 0x2e0, 0x2e0, 
-  0x2e0, 0x2e0, 0x42e0, 0x52e0, 0x442e2e2e, 0x442e2e2e, 0x442e2e2e, 0x442e2e2e, 
-  0x442e2e2e, 0x442e2e2e, 0x4442e2e, 0x4452e2e, 0x4442e2e, 0x4442e2e, 0x4442e2e, 0x4b4b4b, 
-  0x2e0, 0x3939, 0x2a2a, 0x44, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
-  0x393939, 0x393939, 0x444, 0x393939, 0x393939, 0x444, 0x444, 0x2c2c2c, 
-  0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 
-  0x595959, 0x3b3b3b, 0x4a4a4a, 0x444, 0x393939, 0x2a2a2a, 0x393939, 0x2a2a2a, 
-  0x2a2a2a, 0x2a2a2a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 
-  0x43b3b, 0x44a4a, 0x444, 0x2c2c2c, 0x42c2c, 0x4444, 0x2c2c2c, 0x595959, 
-  0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 
-  0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 
-  0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x4444, 0x2c2c2c, 
-  0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c2c, 
-  0x59595959, 0x3b3b3b3b, 0x4a4a4a4a, 0x42c2c2c, 0x4595959, 0x43b3b3b, 0x44a4a4a, 0x2c2c2c2c, 
-  0x59595959, 0x3b3b3b3b, 0x4a4a4a4a, 0x42c2c2c, 0x4595959, 0x43b3b3b, 0x44a4a4a, 0x44, 
-  0x2c2c2c2c, 0x42c2c2c, 0x2c2c2c2c, 0x42c2c2c, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
-  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c4, 0x594, 0x3b4, 0x2c4, 
-  0x4a4, 0x4, 0x2c2c2c2c, 0x42c2c2c, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
-  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c4, 0x594, 0x3b4, 0x2c4, 
-  0x4a4, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 
-  0x44a4a, 0x44, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 
-  0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x42c2c, 0x45959, 
-  0x43b3b, 0x44a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 
-  0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x42c2c, 0x45959, 
-  0x43b3b, 0x44a4a, 0x39390, 0x39390, 0x39390, 0x2a2a4, 0x2a2a4, 0x2a2a4, 
-  0x2a2a4, 0x2a2a4, 0x2a2a4, 0x2a2a0, 0x2a2a0, 0x2a2a0, 0x42c4, 0x4595, 
-  0x43b4, 0x44a4, 0x42c4, 0x4595, 0x43b4, 0x44a4, 0x440, 0x2c2c2c, 
-  0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x4555, 
-  0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x393955, 0x4a4a5959, 
-  0x2c2c3b3b, 0x3b3b4a4a, 0x4a4a5959, 0x2c2c3b3b, 0x3b3b4a4a, 0x393955, 0x4455, 0x393955, 
-  0x393955, 0x2a2a55, 0x2a2a55, 0x393955, 0x393955, 0x393955, 0x4455, 0x393955, 
-  0x393955, 0x2a2a55, 0x2a2a55, 0x4a4a5959, 0x2c2c3b3b, 0x3b3b4a4a, 0x4a4a5959, 0x2c2c3b3b, 
-  0x3b3b4a4a, 0x393955, 0x454, 0x454, 0x454, 0x454, 0x454, 0x454, 
-  0x898989, 0x7a7a7a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x8959, 0x7a4a, 
-  0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 
-  0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 
-  0x898959, 0x7a7a4a, 0x898989, 0x7a7a7a, 0x7a7a6b, 0x89897a, 0x598989, 0x4a7a7a, 
-  0x7a89, 0x6b7a, 0x7a89, 0x6b7a, 0x5989, 0x4a7a, 0x5989, 0x4a7a, 
-  0x4a89, 0x3b7a, 0x4a89, 0x3b7a, 0x42c, 0x559, 0x43b, 0x44a, 
-  0x8989, 0x7a7a, (1U<<31) | 3979, 0x7a7a7a7a, 0x898989, 0x7a7a7a, 0x898989, 0x7a7a7a, 
-  0x898989, 0x7a7a7a, 0x898989, 0x7a7a7a, (1U<<31) | 3979, 0x7a7a7a7a, 0x898989, 0x7a7a7a, 
-  0x8989, 0x7a7a, 0x8989, 0x7a7a, 0x8989, 0x7a7a, 0x898959, 0x7a7a4a, 
-  0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 
-  0x898959, 0x7a7a4a, 0x8989, 0x7a7a, 0x898989, 0x7a7a7a, 0x898959, 0x7a7a4a, 
-  0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 0x898959, 0x7a7a4a, 
-  0x8959, 0x7a4a, 0x8959, 0x7a4a, 0x7a7a3b, 0x89894a, 0x8959, 0x7a4a, 
-  0x8959, 0x7a4a, 0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x2c2c3b, 0x3b3b4a, 
-  0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x2c2c2c, 0x595959, 
-  0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 
-  0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x442c2c, 0x545959, 
-  0x443b3b, 0x444a4a, 0x444, 0x2c42c2c, 0x5945959, 0x3b43b3b, 0x4a44a4a, 0x42e4, 
-  0x42e2c, 0x42e59, 0x42e3b, 0x42e4a, 0x42c, 0x459, 0x43b, 0x44a, 
-  0x42e4, 0x4444, 0x42e4, 0x4455, 0x3b3b3b3b, 0x4a4a4a4a, 0x3b3b3b3b, 0x4a4a4a4a, 
-  0x4455, 0x2c2c2c2c, 0x59595959, 0x3b3b3b3b, 0x4a4a4a4a, 0x393955, 0x393955, 0x393955, 
-  0x393955, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
-  0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 
-  0x44a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
-  0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
-  0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x42c2c, 0x45959, 0x43b3b, 
-  0x44a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
-  0x4a4a4a, 0x444, 0x2c2c, 0x4455, 0x3b3b3b3b, 0x4a4a4a4a, 0x3b3b3b3b, 0x4a4a4a4a, 
-  0x4455, 0x2c2c2c2c, 0x59595959, 0x3b3b3b3b, 0x4a4a4a4a, 0x455, 0x393939, 0x3b3b3b, 
-  0x4a4a4a, 0x393939, 0x39394, 0x39394, 0x392a39, 0x392a39, 0x393939, 0x444, 
-  0x393939, 0x444, 0x3b3b3b, 0x4a4a4a, 0x393955, 0x393955, 0x445, 0x445, 
-  0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c, 0x5959, 0x3b3b, 0x4a4a, 
-  0x2c2c, 0x5959, 0x3b3b, 0x4a4a, 0x2c2c2c, 0x42c2c, 0x2c2c2c, 0x42c2c, 
-  0x393939, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
-  0x4a4a4a, 0x2c2c, 0x5959, 0x3b3b, 0x4a4a, 0x393939, 0x2a2a2a, 0x394, 
-  0x394, 0x2a39, 0x2a39, 0x2a39, 0x2a39, 0x2a39, 0x2a39, 0x2a39, 
-  0x2a39, 0x39392a, 0x44439, 0x44439, 0x4439, 0x39392a, 0x4439, 0x39392a, 
-  0x4444, 0x2a4, 0x44, 0x439, 0x42a, 0x42c2c, 0x45959, 0x43b3b, 
-  0x44a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x42c2c, 0x43b3b, 0x44a4a, 
-  0x455, 0x43939, 0x42a2a, 0x43939, 0x444, 0x43939, 0x42a2a, 0x43939, 
-  0x42a2a, 0x444, 0x43939, 0x42a2a, 0x42c2c2c, 0x4595959, 0x43b3b3b, 0x44a4a4a, 
-  0x42c2c2c, 0x4595959, 0x43b3b3b, 0x44a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
-  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 
-  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
-  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
-  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
-  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
-  0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x42e2c0, 0x42e590, 0x42e3b0, 0x42e4a0, 
-  0x393939, 0x393939, 0x444, 0x393939, 0x393939, 0x444, 0x444, 0x2c2c2c, 
-  0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 
-  0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x393939, 
-  0x2a2a2a, 0x393939, 0x2a2a2a, 0x2a2a2a, 0x2a2a2a, 0x2c2c2c, 0x595959, 0x3b3b3b, 
-  0x4a4a4a, 0x42c2c, 0x45959, 0x43b3b, 0x44a4a, 0x2c2c2c2c, 0x59595959, 0x3b3b3b3b, 
-  0x4a4a4a4a, 0x440, 0x2c2c2c, 0x42c2c, 0x888, 0x777, 0x777, 0x888, 
-  0x777, 0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 
-  0x2fcf2f, 0x2fcf2f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1f1fcf1f, 0x1f1fcf1f, 
-  0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x74f7, 0x84f8, 
-  0x44f4, 0x44f4, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 0x1fcf1f, 
-  0x1fcf1f, 0x1fcf1f, 0x40, 0x40, 0x440, 0x40, 0x40, 0x440, 
-  0x0, 0x44, 0x44, 0x44, 0x85, 0x74, 0x47, 0x58, 
-  0x88, 0x77, 0x77, 0x4f0, 0x4f0, 0x77, 0x77, 0x87, 
-  0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x84, 
-  0x84, 0x84, 0x84, 0x84, 0x84, 0x85, 0x85, 0x85, 
-  0x85, 0x84, 0x84, 0x84, 0x84, 0x85, 0x85, 0x85, 
-  0x85, 0x777, 0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 
-  0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x88, 
-  0x77, 0x77, 0x73, 0x73, 0x74, 0x74, 0x74, 0x74, 
-  0x74, 0x74, 0x74, 0x74, 0x75, 0x75, 0x75, 0x75, 
-  0x75, 0x75, 0x75, 0x75, 0x74, 0x74, 0x74, 0x74, 
-  0x74, 0x74, 0x74, 0x74, 0x75, 0x75, 0x75, 0x75, 
-  0x75, 0x75, 0x75, 0x75, 0x88, 0x77, 0x77, 0x88, 
-  0x77, 0x77, 0x8888, 0x7777, 0x7777, 0x8888, 0x7777, 0x7777, 
-  0x8888, 0x7777, 0x7777, 0x8888, 0x7777, 0x7777, 0x888, 0x777, 
-  0x777, 0x888, 0x777, 0x777, 0x4444, 0x48, 0x48, 0x48, 
-  0x48, 0x47, 0x47, 0x47, 0x47, 0x2e1, 0x2e1, 0x2e1, 
-  0x2e1, 0x51, 0x51, 0x51, 0x4cf2f, 0x4cf1f, 0x4cf4f, 0x4cf2f, 
-  0x4cf1f, 0x4cf4f, 0x88, 0x77, 0x77, 0x58, 0x58, 0x58, 
-  0x58, 0x57, 0x57, 0x57, 0x57, 0x448, (1U<<31) | 1967, (1U<<31) | 3182, 
-  0x444, 0x545, 0x0, 0x0, 0x0, 0x88, 0x77, 0x33, 
-  0x44, 0x55, 0xcf4f, 0x888, 0x777, 0x777, 0x888, 0x777, 
-  0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x444, 
-  0x444, 0x444, 0x555, 0x444, 0x555, 0x4444, 0xcf4f, 0xcf4f, 
-  0xcf4f, 0xcf4f, 0xcf4f, 0xcf4f, 0xcf4f, 0xcf4f, 0xcf4f, 0x88, 
-  0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 0x88, 0x77, 
-  0x77, 0x88, 0x77, 0x77, 0x4, 0x5, 0x4, 0x4, 
-  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4f4, 0x444, 
-  0x455, 0x455, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 
-  0x4444, 0x4444, 0x88, 0x77, 0x77, 0x4477, 0x4444, 0x4477, 
-  0x4444, 0x4477, 0x4444, 0x44747, 0x44444, 0x44747, 0x44444, 0x44747, 
-  0x44444, 0x44747, 0x44444, 0x4477, 0x4444, 0x77, 0x77, 0x77, 
-  0x77, 0x77, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 
-  0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 0x4453, 0x4453, 
-  0x4453, 0x4454, 0x4454, 0x4454, 0x4455, 0x4455, 0x4455, 0x4453, 
-  0x4453, 0x4453, (1U<<31) | 2162, (1U<<31) | 2162, (1U<<31) | 2162, (1U<<31) | 2178, (1U<<31) | 2178, (1U<<31) | 2178, 
-  (1U<<31) | 2195, (1U<<31) | 2195, (1U<<31) | 2195, (1U<<31) | 2162, (1U<<31) | 2162, (1U<<31) | 2162, (1U<<31) | 2153, (1U<<31) | 2153, 
-  (1U<<31) | 2153, (1U<<31) | 2169, (1U<<31) | 2169, (1U<<31) | 2169, (1U<<31) | 2153, (1U<<31) | 2153, (1U<<31) | 2153, 0x453, 
-  0x453, 0x453, 0x454, 0x454, 0x454, 0x455, 0x455, 0x455, 
-  0x453, 0x453, 0x453, (1U<<31) | 2499, (1U<<31) | 2499, (1U<<31) | 2499, (1U<<31) | 2513, (1U<<31) | 2513, 
-  (1U<<31) | 2513, (1U<<31) | 2528, (1U<<31) | 2528, (1U<<31) | 2528, (1U<<31) | 2499, (1U<<31) | 2499, (1U<<31) | 2499, (1U<<31) | 2491, 
-  (1U<<31) | 2491, (1U<<31) | 2491, (1U<<31) | 2505, (1U<<31) | 2505, (1U<<31) | 2505, (1U<<31) | 2491, (1U<<31) | 2491, (1U<<31) | 2491, 
-  0x44453, 0x44453, 0x44453, 0x44454, 0x44454, 0x44454, 0x44455, 0x44455, 
-  0x44455, 0x44453, 0x44453, 0x44453, (1U<<31) | 2078, (1U<<31) | 2078, (1U<<31) | 2078, (1U<<31) | 2096, 
-  (1U<<31) | 2096, (1U<<31) | 2096, (1U<<31) | 2115, (1U<<31) | 2115, (1U<<31) | 2115, (1U<<31) | 2078, (1U<<31) | 2078, (1U<<31) | 2078, 
-  (1U<<31) | 2068, (1U<<31) | 2068, (1U<<31) | 2068, (1U<<31) | 2086, (1U<<31) | 2086, (1U<<31) | 2086, (1U<<31) | 2068, (1U<<31) | 2068, 
-  (1U<<31) | 2068, 0x4453, 0x4453, 0x4453, 0x4454, 0x4454, 0x4454, 0x4455, 
-  0x4455, 0x4455, 0x4453, 0x4453, 0x4453, (1U<<31) | 2162, (1U<<31) | 2162, (1U<<31) | 2162, 
-  (1U<<31) | 2178, (1U<<31) | 2178, (1U<<31) | 2178, (1U<<31) | 2195, (1U<<31) | 2195, (1U<<31) | 2195, (1U<<31) | 2162, (1U<<31) | 2162, 
-  (1U<<31) | 2162, (1U<<31) | 2153, (1U<<31) | 2153, (1U<<31) | 2153, (1U<<31) | 2169, (1U<<31) | 2169, (1U<<31) | 2169, (1U<<31) | 2153, 
-  (1U<<31) | 2153, (1U<<31) | 2153, 0x44453, 0x44453, 0x44453, 0x44454, 0x44454, 0x44454, 
-  0x44455, 0x44455, 0x44455, 0x44453, 0x44453, 0x44453, (1U<<31) | 2078, (1U<<31) | 2078, 
-  (1U<<31) | 2078, (1U<<31) | 2096, (1U<<31) | 2096, (1U<<31) | 2096, (1U<<31) | 2115, (1U<<31) | 2115, (1U<<31) | 2115, (1U<<31) | 2078, 
-  (1U<<31) | 2078, (1U<<31) | 2078, (1U<<31) | 2068, (1U<<31) | 2068, (1U<<31) | 2068, (1U<<31) | 2086, (1U<<31) | 2086, (1U<<31) | 2086, 
-  (1U<<31) | 2068, (1U<<31) | 2068, (1U<<31) | 2068, 0x54, 0x54, 0x54, 0x54, 0x54, 
-  0x54, 0x34450, 0x34450, 0x34450, 0x44450, 0x44450, 0x44450, 0x54450, 
-  0x54450, 0x54450, 0x34450, 0x34450, 0x34450, 0x334450, 0x334450, 0x334450, 
-  0x444450, 0x444450, 0x444450, 0x554450, 0x554450, 0x554450, 0x334450, 0x334450, 
-  0x334450, 0x33334450, 0x33334450, 0x33334450, 0x44444450, 0x44444450, 0x44444450, 0x33334450, 
-  0x33334450, 0x33334450, 0x3450, 0x3450, 0x3450, 0x4450, 0x4450, 0x4450, 
-  0x5450, 0x5450, 0x5450, 0x3450, 0x3450, 0x3450, 0x33450, 0x33450, 
-  0x33450, 0x44450, 0x44450, 0x44450, 0x55450, 0x55450, 0x55450, 0x33450, 
-  0x33450, 0x33450, 0x3333450, 0x3333450, 0x3333450, 0x4444450, 0x4444450, 0x4444450, 
-  0x3333450, 0x3333450, 0x3333450, 0x344450, 0x344450, 0x344450, 0x444450, 0x444450, 
-  0x444450, 0x544450, 0x544450, 0x544450, 0x344450, 0x344450, 0x344450, 0x3344450, 
-  0x3344450, 0x3344450, 0x4444450, 0x4444450, 0x4444450, 0x5544450, 0x5544450, 0x5544450, 
-  0x3344450, 0x3344450, 0x3344450, (1U<<31) | 1105, (1U<<31) | 1105, (1U<<31) | 1105, (1U<<31) | 2051, (1U<<31) | 2051, 
-  (1U<<31) | 2051, (1U<<31) | 1105, (1U<<31) | 1105, (1U<<31) | 1105, 0x34450, 0x34450, 0x34450, 0x44450, 
-  0x44450, 0x44450, 0x54450, 0x54450, 0x54450, 0x34450, 0x34450, 0x34450, 
-  0x334450, 0x334450, 0x334450, 0x444450, 0x444450, 0x444450, 0x554450, 0x554450, 
-  0x554450, 0x334450, 0x334450, 0x334450, 0x33334450, 0x33334450, 0x33334450, 0x44444450, 
-  0x44444450, 0x44444450, 0x33334450, 0x33334450, 0x33334450, 0x344450, 0x344450, 0x344450, 
-  0x444450, 0x444450, 0x444450, 0x544450, 0x544450, 0x544450, 0x344450, 0x344450, 
-  0x344450, 0x3344450, 0x3344450, 0x3344450, 0x4444450, 0x4444450, 0x4444450, 0x5544450, 
-  0x5544450, 0x5544450, 0x3344450, 0x3344450, 0x3344450, (1U<<31) | 1105, (1U<<31) | 1105, (1U<<31) | 1105, 
-  (1U<<31) | 2051, (1U<<31) | 2051, (1U<<31) | 2051, (1U<<31) | 1105, (1U<<31) | 1105, (1U<<31) | 1105, 0x34450, 0x44450, 
-  0x34450, 0x334450, 0x444450, 0x334450, 0x33334450, 0x44444450, 0x33334450, 0x3450, 
-  0x4450, 0x3450, 0x33450, 0x44450, 0x33450, 0x3333450, 0x4444450, 0x3333450, 
-  0x344450, 0x444450, 0x344450, 0x3344450, 0x4444450, 0x3344450, (1U<<31) | 1105, (1U<<31) | 2051, 
-  (1U<<31) | 1105, 0x34450, 0x44450, 0x34450, 0x334450, 0x444450, 0x334450, 0x33334450, 
-  0x44444450, 0x33334450, 0x344450, 0x444450, 0x344450, 0x3344450, 0x4444450, 0x3344450, 
-  (1U<<31) | 1105, (1U<<31) | 2051, (1U<<31) | 1105, 0x55, (1U<<31) | 3506, (1U<<31) | 3494, (1U<<31) | 3494, (1U<<31) | 3424, 
-  (1U<<31) | 3413, (1U<<31) | 3413, (1U<<31) | 3350, (1U<<31) | 2202, (1U<<31) | 3340, (1U<<31) | 2185, (1U<<31) | 3340, (1U<<31) | 2185, 
-  (1U<<31) | 3550, (1U<<31) | 3539, (1U<<31) | 3539, (1U<<31) | 3464, (1U<<31) | 3454, (1U<<31) | 3454, (1U<<31) | 3386, (1U<<31) | 2534, 
-  (1U<<31) | 3377, (1U<<31) | 2519, (1U<<31) | 3377, (1U<<31) | 2519, (1U<<31) | 3696, (1U<<31) | 3681, (1U<<31) | 3681, (1U<<31) | 3506, 
-  (1U<<31) | 3494, (1U<<31) | 3494, (1U<<31) | 3424, (1U<<31) | 2123, (1U<<31) | 3413, (1U<<31) | 2104, (1U<<31) | 3413, (1U<<31) | 2104, 
-  (1U<<31) | 3752, (1U<<31) | 3738, (1U<<31) | 3738, (1U<<31) | 3550, (1U<<31) | 3539, (1U<<31) | 3539, (1U<<31) | 3464, (1U<<31) | 2202, 
-  (1U<<31) | 3454, (1U<<31) | 2185, (1U<<31) | 3454, (1U<<31) | 2185, (1U<<31) | 3924, (1U<<31) | 3907, (1U<<31) | 3907, (1U<<31) | 3644, 
-  (1U<<31) | 3632, (1U<<31) | 3632, (1U<<31) | 3550, (1U<<31) | 2123, (1U<<31) | 3539, (1U<<31) | 2104, (1U<<31) | 3539, (1U<<31) | 2104, 
-  (1U<<31) | 3596, (1U<<31) | 3583, (1U<<31) | 3583, (1U<<31) | 3506, (1U<<31) | 3494, (1U<<31) | 3494, (1U<<31) | 3644, (1U<<31) | 3632, 
-  (1U<<31) | 3632, (1U<<31) | 3550, (1U<<31) | 3539, (1U<<31) | 3539, (1U<<31) | 3518, (1U<<31) | 3483, (1U<<31) | 3483, (1U<<31) | 3435, 
-  (1U<<31) | 3403, (1U<<31) | 3403, (1U<<31) | 3360, (1U<<31) | 2212, (1U<<31) | 3331, (1U<<31) | 2169, (1U<<31) | 3331, (1U<<31) | 2169, 
-  (1U<<31) | 3561, (1U<<31) | 3529, (1U<<31) | 3529, (1U<<31) | 3474, (1U<<31) | 3445, (1U<<31) | 3445, (1U<<31) | 3395, (1U<<31) | 2543, 
-  (1U<<31) | 3369, (1U<<31) | 2505, (1U<<31) | 3369, (1U<<31) | 2505, (1U<<31) | 3711, (1U<<31) | 3667, (1U<<31) | 3667, (1U<<31) | 3518, 
-  (1U<<31) | 3483, (1U<<31) | 3483, (1U<<31) | 3435, (1U<<31) | 2134, (1U<<31) | 3403, (1U<<31) | 2086, (1U<<31) | 3403, (1U<<31) | 2086, 
-  (1U<<31) | 3766, (1U<<31) | 3725, (1U<<31) | 3725, (1U<<31) | 3561, (1U<<31) | 3529, (1U<<31) | 3529, (1U<<31) | 3474, (1U<<31) | 2212, 
-  (1U<<31) | 3445, (1U<<31) | 2169, (1U<<31) | 3445, (1U<<31) | 2169, (1U<<31) | 3941, (1U<<31) | 3891, (1U<<31) | 3891, (1U<<31) | 3656, 
-  (1U<<31) | 3621, (1U<<31) | 3621, (1U<<31) | 3561, (1U<<31) | 2134, (1U<<31) | 3529, (1U<<31) | 2086, (1U<<31) | 3529, (1U<<31) | 2086, 
-  (1U<<31) | 3609, (1U<<31) | 3571, (1U<<31) | 3571, (1U<<31) | 3518, (1U<<31) | 3483, (1U<<31) | 3483, (1U<<31) | 3656, (1U<<31) | 3621, 
-  (1U<<31) | 3621, (1U<<31) | 3561, (1U<<31) | 3529, (1U<<31) | 3529, (1U<<31) | 3098, 0x4f5, (1U<<31) | 3464, (1U<<31) | 3454, 
-  (1U<<31) | 3454, (1U<<31) | 3464, (1U<<31) | 3454, (1U<<31) | 3454, (1U<<31) | 3464, (1U<<31) | 3454, (1U<<31) | 3454, (1U<<31) | 3464, 
-  (1U<<31) | 3454, (1U<<31) | 3454, (1U<<31) | 3474, (1U<<31) | 3445, (1U<<31) | 3445, (1U<<31) | 3474, (1U<<31) | 3445, (1U<<31) | 3445, 
-  (1U<<31) | 3474, (1U<<31) | 3445, (1U<<31) | 3445, (1U<<31) | 3474, (1U<<31) | 3445, (1U<<31) | 3445, 0x88, 0x77, 
-  0x77, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 
-  0x54, 0x48, 0x48, 0x48, 0x48, 0x47, 0x47, 0x47, 
-  0x47, 0x58, 0x58, 0x58, 0x58, 0x57, 0x57, 0x57, 
-  0x57, 0x11, 0x141, 0x11, 0x141, 0x14, 0x144, 0x11, 
-  0x141, (1U<<31) | 3054, (1U<<31) | 2413, (1U<<31) | 3054, (1U<<31) | 2413, (1U<<31) | 3054, (1U<<31) | 2413, (1U<<31) | 3054, 
-  (1U<<31) | 2413, (1U<<31) | 3074, (1U<<31) | 3086, (1U<<31) | 2434, (1U<<31) | 2447, (1U<<31) | 3074, (1U<<31) | 3086, (1U<<31) | 2434, 
-  (1U<<31) | 2447, (1U<<31) | 3231, (1U<<31) | 3231, (1U<<31) | 3791, (1U<<31) | 3791, (1U<<31) | 3281, (1U<<31) | 3281, (1U<<31) | 3841, 
-  (1U<<31) | 3841, (1U<<31) | 3231, (1U<<31) | 3231, (1U<<31) | 3791, (1U<<31) | 3791, (1U<<31) | 3281, (1U<<31) | 3281, (1U<<31) | 3841, 
-  (1U<<31) | 3841, (1U<<31) | 3231, (1U<<31) | 3231, (1U<<31) | 3791, (1U<<31) | 3791, (1U<<31) | 3281, (1U<<31) | 3281, (1U<<31) | 3841, 
-  (1U<<31) | 3841, (1U<<31) | 3231, (1U<<31) | 3231, (1U<<31) | 3791, (1U<<31) | 3791, (1U<<31) | 3281, (1U<<31) | 3281, (1U<<31) | 3841, 
-  (1U<<31) | 3841, (1U<<31) | 3219, (1U<<31) | 3779, (1U<<31) | 2625, (1U<<31) | 2638, (1U<<31) | 3219, (1U<<31) | 3779, (1U<<31) | 2625, 
-  (1U<<31) | 2638, 0x595959, 0x595959, 0x595959, 0x595959, 0x2c2c2c2c, 0x2c2c2c, 0x595959, 
-  0x3b3b3b, 0x4a4a4a, 0x5959, 0x445959, 0x444a4a, 0x40, 0x0, 0x442e0, 
-  0x442e0, 0x442e0, 0x442e0, 0x2e2c, 0x2e3b, 0x2e4a, 0x2e2c, 0x2e2c, 
-  0x2e4a, 0x2e4a, 0x3b, 0x4a0, 0x2e2c0, 0x2e3b0, 0x2e4a0, 0x2e4a0, 
-  0x2e4a0, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, (1U<<31) | 4262, 0x4a4a4a, (1U<<31) | 4260, (1U<<31) | 4260, 
-  0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 
-  0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 0x2c2c59, 0x44a7a, 0x44a7a, 0x2c4, 
-  0x7a7a4a, 0x7a7a44, 0x7a7a4a, 0x7a7a44, 0x2c2c2c, 0x2c2c44, 0x595959, 0x595944, 
-  0x3b3b3b, 0x3b3b44, 0x4a4a4a, 0x4a4a44, 0x7a7a4a, 0x7a7a44, 0x7a7a4a, 0x7a7a44, 
-  0x2c2c2c, 0x2c2c44, 0x595959, 0x595944, 0x3b3b3b, 0x3b3b44, 0x4a4a4a, 0x4a4a44, 
-  0x2c2c2c, 0x2c2c44, 0x595959, 0x595944, 0x3b3b3b, 0x3b3b44, 0x4a4a4a, 0x4a4a44, 
-  0x2c2c2c, 0x2c2c44, 0x3b3b3b, 0x3b3b44, 0x4a4a4a, 0x4a4a44, 0x2c2c2c, 0x2c2c44, 
-  0x3b3b3b, 0x3b3b44, 0x4a4a4a, 0x4a4a44, 0x47a4a, 0x47a4a, 0x2c4, 0x7a7a, 
-  0x2c2c, 0x7a7a, 0x7a7a7a7a, 0x7a7a7a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 
-  0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x3b3b3b3b, 0x3b3b3b3b, 0x7a7a7a, 0x2c2c2c, 
-  0x595959, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x3b3b3b3b, 
-  0x4a2c2c4a, 0x4a3b3b4a, 0x4a3b3b4a, 0x4a2c2c4a, 0x4a3b3b4a, 0x4a3b3b4a, 0x2c2c3b, 0x3b3b4a, 
-  0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x2c2c3b, 0x3b3b4a, 0x4a4a59, 0x2c2c3b, 
-  0x3b3b4a, 0x4a4a59, 0x7a7a7a7a, 0x2c4a4a4a, 0x4a4a3b, 0x59594a, 0x59594a, 0x3b3b2c, 
-  0x3b3b2c, 0x4a4a3b, 0x4a4a3b, 0x59594a, 0x3b3b2c, 0x4a4a3b, 0x5959, (1U<<31) | 4264, 
-  0x4a4a, 0x7a7a, 0x7a7a, 0x7a7a, 0x7a7a, 0x7a7a, 0x2c2c2c, 0x595959, 
-  0x59595959, 0x595959, 0x3b3b3b, 0x4a4a4a, 0x4a4a4a4a, 0x4a4a4a, 0x7a7a, 0x4a4a4a4a, 
-  0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x4a4a4a, 0x4a4a4a, 0x2c2c2c, 
-  0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x4a4a4a, (1U<<31) | 4262, 
-  0x4a4a4a, (1U<<31) | 4260, (1U<<31) | 4260, 0x2c2c2c, 0x3b3b3b, 0x4a4a4a, 0x2c2c2c, 0x3b3b3b, 
-  0x4a4a4a, 0x4a4a4a, 0x4a2c4a, 0x4a3b4a, 0x4a2c4a, 0x4a4a4a, 0x3b4a, 0x2c3b, 
-  0x3b4a, 0x4a59, 0x3b4a, 0x2c3b, 0x3b4a, 0x4a59, 0x555, 0x1f0, 
-  0x2e0, 0x2e0, 0x2e0, 0x2e0, 0x2e0, 0x2e0, 0x2e0, 0x2e0, 
-  0x555, 0x555, 0x444, 0x444, 0x5, 0x5, 0x5, 0x5, 
-  0x1, 0x0, 0x1f0, 0x8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a, 0x8a8a, 
-  0x8a8a, 0x8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a, 0x8a8a, 
-  0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 0x48a8a8a, (1U<<31) | 3992, 
-  (1U<<31) | 3992, (1U<<31) | 3992, (1U<<31) | 3992, 0x8a8a8a, 0x8a8a8a, 0x8a8a, 0x8a8a, (1U<<31) | 3992, 
-  (1U<<31) | 3992, (1U<<31) | 3992, (1U<<31) | 3992, (1U<<31) | 3992, 0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 
-  0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, 0x8a8a, (1U<<31) | 3992, 0x8a8a8a, 0x8a8a8a, 
-  0x8a8a8a, (1U<<31) | 3992, (1U<<31) | 3992, 0x8a8a8a, 0x8a8a8a, (1U<<31) | 3992, (1U<<31) | 3992, (1U<<31) | 3992, 
-  (1U<<31) | 3992, (1U<<31) | 3992, (1U<<31) | 3992, 0x48a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 
-  0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 
-  0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a, 0x2e8a0, 0x2e8a0, 0x2e8a0, 0x2e8a0, 
-  0x2e8a0, 0x2e8a0, 0x2e8a0, 0x2e8a0, 0x2e8a0, 0x2e8a0, 0x50, 0x50, 
-  0x50, 0x50, 0x0, 0x44, 0x4444, 0x4444, 0x4444, 0x4444, 
-  0x44, 0x4, 0x44, 0x4, 0x4, 0x44, 0x4, 0x44, 
-  0x4, 0x5, 0x2e89, 0x2e89, 0x52e4a, 0x52e4a, 0x2e4a, 0x2e4a, 
-  0x2e890, 0x2e890, 0x52e4a0, 0x52e4a0, 0x2e4a0, 0x2e4a0, 0x888, 0x888, 
-  0x898959, 0x898944, 0x7a7a4a, 0x7a7a44, 0x898959, 0x898944, 0x7a7a4a, 0x7a7a44, 
-  0x898959, 0x898944, 0x7a7a4a, 0x7a7a44, 0x897a, 0x894a, 0x894a, 0x3b7a, 
-  0x7a89, 0x7a7a, 0x597a, 0x4a89, 0x597a, 0x4a89, 0x898989, 0x7a7a7a, 
-  0x595989, 0x4a4a7a, 0x898989, 0x7a7a7a, 0x898989, 0x7a7a7a, 0x8989, 0x8989, 
-  0x7a7a, 0x7a7a, 0x8989, 0x7a7a, 0x48959, 0x47a4a, 0x8959, 0x7a4a, 
-  0x8959, 0x7a4a, 0x45959, 0x4594a4a, 0x4a4a4a, 0x7a7a, 0x0, (1U<<31) | 796, 
-  0x44a4a0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-  0x2f2f, 0x2f2f, 0x4, 0x4, 0x42e4, 0x5e50, 0x40, 0x40, 
-  0x50, 0x42e4, 0x42e4, 0x42e0, 0x52f4, 0x4, 0x2c2c2c, 0x2c2c2c2c, 
-  0x4a4a4a, 0x595959, 0x3b3b3b, 0x2c2c2c, 0x2c2c2c2c, 0x2c2c2c, 0x2c2c2c, 0x4a4a4a, 
-  0x595959, 0x3b3b3b, 0x2c2c2c, 0x4a4a4a, 0x595959, 0x3b3b3b, 0x2c2c59, (1U<<31) | 965, 
-  (1U<<31) | 2803, (1U<<31) | 3210, (1U<<31) | 1228, (1U<<31) | 965, (1U<<31) | 2803, (1U<<31) | 3210, (1U<<31) | 1228, (1U<<31) | 965, 
-  (1U<<31) | 2803, (1U<<31) | 3210, (1U<<31) | 1228, 0x4a4a4a, (1U<<31) | 1738, (1U<<31) | 2253, (1U<<31) | 2571, (1U<<31) | 1883, 
-  0x42c2c, 0x44a4a, 0x45959, 0x43b3b, 0x2c2c2c, 0x4a4a4a, 0x595959, 0x3b3b3b, 
-  0x42c2c2c, (1U<<31) | 1760, 0x44a4a4a, (1U<<31) | 2231, 0x43b3b3b, (1U<<31) | 1905, 0x42c2c2c, (1U<<31) | 1760, 
-  0x44a4a4a, (1U<<31) | 2231, 0x43b3b3b, (1U<<31) | 1905, (1U<<31) | 3970, (1U<<31) | 3957, (1U<<31) | 3970, (1U<<31) | 3970, 
-  (1U<<31) | 3957, (1U<<31) | 3957, 0x2c2c2c, (1U<<31) | 965, 0x4a4a4a, (1U<<31) | 2803, 0x3b3b3b, (1U<<31) | 1228, 
-  0x2c2c2c, (1U<<31) | 965, 0x4a4a4a, (1U<<31) | 2803, 0x3b3b3b, (1U<<31) | 1228, 0x2c2c2c, (1U<<31) | 965, 
-  0x4a4a4a, (1U<<31) | 2803, 0x3b3b3b, (1U<<31) | 1228, 0x2c2c2c, (1U<<31) | 965, 0x4a4a4a, (1U<<31) | 2803, 
-  0x3b3b3b, (1U<<31) | 1228, 0x448989, 0x447a7a, 0x4898989, 0x47a7a7a, 0x4898989, 0x47a7a7a, 
-  (1U<<31) | 2719, (1U<<31) | 2651, 0x3b2c2c3b, 0x594a4a59, 0x2c59592c, 0x4a3b3b4a, 0x2c2c3b, 0x4a4a59, 
-  0x59592c, 0x3b3b4a, 0x2c2c, (1U<<31) | 974, 0x4a4a, (1U<<31) | 2787, 0x3b3b, (1U<<31) | 1237, 
-  0x42e2c, 0x2e42c, 0x2e42c, 0x3b2c2c3b, 0x594a4a59, 0x4a3b3b4a, 0x2c2c2c2c, 0x4a4a4a4a, 
-  0x3b3b3b3b, 0x3b2c2c3b, 0x594a4a59, 0x4a3b3b4a, 0x2c2c2c2c, 0x4a4a4a4a, 0x3b3b3b3b, 0x3b2c2c3b, 
-  0x594a4a59, 0x4a3b3b4a, 0x3b2c2c3b, 0x594a4a59, 0x4a3b3b4a, 0x2c2c3b, 0x4a4a59, 0x3b3b4a, 
-  0x2c2c2c, 0x4a4a4a, 0x3b3b3b, 0x2c2c3b, 0x4a4a59, 0x3b3b4a, 0x2c2c2c, 0x4a4a4a, 
-  0x3b3b3b, 0x2c2c3b, 0x4a4a59, 0x3b3b4a, 0x2c2c3b, 0x4a4a59, 0x3b3b4a, (1U<<31) | 1770, 
-  0x4595959, 0x2c2c2c2c, 0x4a4a3b, (1U<<31) | 2794, 0x59594a, (1U<<31) | 3201, 0x3b3b2c, (1U<<31) | 1219, 
-  0x4a4a3b, (1U<<31) | 2794, 0x59594a, (1U<<31) | 3201, 0x3b3b2c, (1U<<31) | 1219, 0x2c2c2c2c, 0x2c2c2c2c, 
-  0x2c2c2c, 0x4a4a4a, 0x595959, 0x3b3b3b, 0x2c2c2c, 0x2c2c2c, 0x2c2c2c, 0x42c2c2c, 
-  0x2c2c2c, 0x2c2c2c, 0x2c2c2c, 0x2c2c2c, 0x2c2c2c, 0x2e42c0, (1U<<31) | 1738, (1U<<31) | 1748, 
-  (1U<<31) | 2253, (1U<<31) | 2241, (1U<<31) | 1883, (1U<<31) | 1893, (1U<<31) | 1738, (1U<<31) | 1748, (1U<<31) | 2253, (1U<<31) | 2241, 
-  (1U<<31) | 1883, (1U<<31) | 1893, 0x2e42c0, 0x2c2c4a, 0x4a4a59, 0x3b3b59, 0x3b3b4a, 0x4a4a2c, 
-  0x59592c, 0x2c2c4, 0x2c3b, 0x4a59, 0x3b4a, 0x2c3b, 0x4a59, 0x2c3b, 
-  0x4a59, 0x3b4a, 0x3b4a, 0x2c3b, 0x4a59, 0x3b4a, 0x1f, 0x4, 
-  0x2e, 0x1f1f, 0x1f41f, 0x41f, 0x0, 0x2e40, (1U<<31) | 4155, (1U<<31) | 4152, 
-  (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, 
-  (1U<<31) | 4152, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4152, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4152, 
-  (1U<<31) | 4155, (1U<<31) | 4152, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4152, (1U<<31) | 4152, 0x2e4422, 0x2e5522, 
-  0x2e4422, 0x2e5522, 0x595959, 0x5a5a5a, 0x5b5b5b, 0x595959, 0x5a5a5a, 0x5b5b5b, 
-  0x595959, 0x5a5a5a, 0x5b5b5b, 0x595959, 0x5a5a5a, 0x5b5b5b, 0x5959, 0x25959, 
-  0x8a8a8a, 0x7b7b7b, (1U<<31) | 3992, 0x7b7b7b7b, 0x28a8a8a, 0x27b7b7b, 0x8a7a, 0x8a4a, 
-  0x7b4b, 0x4b7b, 0x8a4a, 0x7b4b, 0x27b7b7b, 0x8a8a8a, 0x7b7b7b, 0x8a8a8a, 
-  0x7b7b7b, 0x2e2d, 0x592e89, 0x5a2e8a, 0x4a2e7a, 0x4b2e7b, 0x89592e0, 0x8a5a2e0, 
-  0x7a4a2e0, 0x7b4b2e0, 0x8a8a8a, 0x7b7b7b, 0x8a8a8a, 0x7b7b7b, 0x8a4, 0x7b4, 
-  0x5a5a4, 0x5a5a4, 0x5a5a4, 0x7b7b, 0x48a8a, 0x47b7b, 0x7b7b, 0x8a8a, 
-  0x7b7b, 0x598989, 0x5a8a8a, 0x4a7a7a, 0x4b7b7b, 0x89894, 0x8a8a4, 0x7a7a4, 
-  0x7b7b4, 0x89894, 0x8a8a4, 0x7a7a4, 0x7b7b4, 0x89894, 0x8a8a4, 0x7a7a4, 
-  0x7b7b4, 0x0, 0x0, (1U<<31) | 422, (1U<<31) | 499, (1U<<31) | 811, (1U<<31) | 876, (1U<<31) | 677, 
-  (1U<<31) | 754, (1U<<31) | 546, (1U<<31) | 601, (1U<<31) | 444, (1U<<31) | 456, (1U<<31) | 823, (1U<<31) | 888, (1U<<31) | 699, 
-  (1U<<31) | 711, (1U<<31) | 558, (1U<<31) | 613, 0x4a2e4a, 0x4b2e4b, 0x592e59, 0x5a2e5a, 0x4a4a2e0, 
-  0x4b4b2e0, 0x59592e0, 0x5a5a2e0, 0x22d2d3c, 0x4b4b3c, 0x3c3c2d, 0x4b4b3c, 0x3c3c2d, 
-  0x2d2d2d, 0x3c3c3c, 0x2d2d2d, 0x3c3c3c, 0x2d2d2d2d, 0x4b4b4b, 0x4b7b7b, 0x4b4b4b, 
-  0x3c3c3c, 0x3c3c3c, 0x4b4b4b, 0x3c3c3c, 0x3c3c3c, 0x2d2d3c, 0x3c3c4b, 0x2d4, 
-  0x4b4b5a, 0x3c3c3c, 0x3c3c3c, 0x3c3c3c, 0x4b4b5a, 0x2d2d5a, 0x2d2d2d, 0x2d2d2d, 
-  0x4b4b4b, 0x3c3c3c, 0x4a4b4b, 0x595a5a, 0x3b3c3c, 0x44b4b, 0x45a5a, 0x43c3c, 
-  0x4a4a4a, 0x4b4b4b, 0x595959, 0x5a5a5a, 0x4a4b4b, 0x3b3c3c, 0x44b4b, 0x43c3c, 
-  0x4a4a4a, 0x4b4b4b, 0x4a4b4b, 0x595a5a, 0x3b3c3c, 0x44b4b, 0x45a5a, 0x43c3c, 
-  0x4a4a4a, 0x4b4b4b, 0x595959, 0x5a5a5a, 0x2d2d2d, 0x3c3c3c, 0x2d2d2d, 0x3c3c3c, 
-  0x259, 0x25a, 0x25b, 0x34a, 0x34b, 0x34c, 0x458989, 0x447a7a, 
-  0x457a7a, 0x4894, 0x4895, 0x4894, 0x4895, 0x47a4, 0x47a5, 0x47a4, 
-  0x47a5, 0x48989, 0x447a7a, 0x458989, 0x457a7a, 0x428b8b8b, 0x437c7c7c, (1U<<31) | 1504, 
-  (1U<<31) | 1838, (1U<<31) | 1482, (1U<<31) | 1849, (1U<<31) | 1636, (1U<<31) | 1603, (1U<<31) | 1614, (1U<<31) | 1625, (1U<<31) | 1548, 
-  (1U<<31) | 1526, (1U<<31) | 1592, (1U<<31) | 1570, (1U<<31) | 1537, (1U<<31) | 1515, (1U<<31) | 1581, (1U<<31) | 1559, (1U<<31) | 1449, 
-  (1U<<31) | 1416, (1U<<31) | 1460, (1U<<31) | 1427, (1U<<31) | 1438, (1U<<31) | 1405, (1U<<31) | 1493, (1U<<31) | 1471, 0x442e4b20, 
-  0x442e4c30, 0x442e5b20, 0x442e5b20, (1U<<31) | 1727, (1U<<31) | 1872, (1U<<31) | 1704, (1U<<31) | 1659, 0x4898919, 
-  0x48a8a1a, 0x448b8b1b, 0x47a7a1a, 0x47b7b1b, 0x447c7c1c, 0x42489892, 0x4247a7a2, 0x32c2c2c, 
-  0x42d2d2d, (1U<<31) | 3167, 0x24a4a4a, 0x24b4b4b, 0x34c4c4c, 0x2898989, 0x28a8a8a, 0x28b8b8b, 
-  0x27a7a7a, 0x27b7b7b, 0x37c7c7c, 0x2595959, 0x25a5a5a, 0x25b5b5b, 0x32c2e0, 0x42d2e0, 
-  (1U<<31) | 3150, 0x24a2e0, 0x24b2e0, 0x34c2e0, 0x2892e0, 0x28a2e0, 0x28b2e0, 0x27a2e0, 
-  0x27b2e0, 0x37c2e0, 0x2592e0, 0x25a2e0, 0x25b2e0, 0x23b2e0, 0x33c2e0, 0x43d2e0, 
-  0x23b3b3b, 0x33c3c3c, 0x43d3d3d, 0x24a4a4a, 0x24b4b4b, 0x34c4c4c, 0x2595959, 0x25a5a5a, 
-  0x25b5b5b, 0x27a4a7a, 0x27b4b7b, 0x437c4c7c, 0x24a894a, 0x24a8a4a, 0x424b8b4b, 0x27a897a, 
-  0x27a8a7a, 0x427b8b7b, 0x2598959, 0x25a8a5a, 0x425b8b5b, 0x24a894a, 0x24a8a4a, 0x424b8b4b, 
-  0x2598959, 0x25a8a5a, 0x425b8b5b, 0x24a7a4a, 0x24b7b4b, 0x434c7c4c, 0x2897a89, 0x28a7a8a, 
-  0x428b7b8b, 0x2597a59, 0x25a7a5a, 0x425b7b5b, 0x24a7a4a, 0x24b7b4b, 0x434c7c4c, 0x2597a59, 
-  0x25a7a5a, 0x425b7b5b, 0x2895989, 0x28a5a8a, 0x428b5b8b, 0x27a597a, 0x27a5a7a, 0x427b5b7b, 
-  (1U<<31) | 1670, (1U<<31) | 1693, 0x24a894a, 0x24a8a4a, 0x424b8b4b, 0x2598959, 0x25a8a5a, 0x425b8b5b, 
-  0x24a894a, 0x24a8a4a, 0x424b8b4b, 0x2598959, 0x25a8a5a, 0x425b8b5b, 0x24a7a4a, 0x24b7b4b, 
-  0x434c7c4c, 0x2597a59, 0x25a7a5a, 0x425b7b5b, 0x24a7a4a, 0x24b7b4b, 0x434c7c4c, 0x2597a59, 
-  0x25a7a5a, 0x425b7b5b, 0x27a4a7a, 0x27b4b7b, 0x437c4c7c, 0x2895989, 0x28a5a8a, 0x428b5b8b, 
-  0x27a597a, 0x27a5a7a, 0x427b5b7b, (1U<<31) | 270, (1U<<31) | 1135, (1U<<31) | 1935, (1U<<31) | 1727, (1U<<31) | 1872, 
-  (1U<<31) | 1704, (1U<<31) | 1659, 0x32c2c2c, 0x42d2d2d, (1U<<31) | 3167, 0x24a4a4a, 0x24b4b4b, 0x34c4c4c, 
-  0x32c2e2c, 0x42d2e2d, (1U<<31) | 3157, 0x24a2e4a, 0x24b2e4b, 0x34c2e4c, 0x2892e89, 0x28a2e8a, 
-  0x28b2e8b, 0x27a2e7a, 0x27b2e7b, 0x37c2e7c, 0x2592e59, 0x25a2e5a, 0x25b2e5b, 0x23b2e3b, 
-  0x33c2e3c, 0x43d2e3d, 0x2898989, 0x28a8a8a, 0x28b8b8b, 0x27a7a7a, 0x27b7b7b, 0x37c7c7c, 
-  0x2595959, 0x25a5a5a, 0x25b5b5b, 0x23b3b3b, 0x33c3c3c, 0x43d3d3d, (1U<<31) | 357, (1U<<31) | 379, 
-  (1U<<31) | 1393, (1U<<31) | 313, (1U<<31) | 335, (1U<<31) | 1826, (1U<<31) | 1381, (1U<<31) | 1369, 0x24892, 0x248a2, 
-  0x248b2, 0x247a2, 0x247b2, 0x347c3, 0x24892, 0x247a2, 0x2898989, 0x28a8a8a, 
-  0x428b8b8b, 0x27a7a7a, 0x27b7b7b, 0x437c7c7c, (1U<<31) | 1704, (1U<<31) | 1659, 0x28948989, 0x28a48a8a, 
-  (1U<<31) | 1717, 0x27a47a7a, 0x27b47b7b, (1U<<31) | 1862, (1U<<31) | 1681, (1U<<31) | 1647, (1U<<31) | 1727, (1U<<31) | 1872, 
-  (1U<<31) | 1704, (1U<<31) | 1659, (1U<<31) | 1727, (1U<<31) | 1872, (1U<<31) | 1704, (1U<<31) | 1659, (1U<<31) | 1727, (1U<<31) | 1872, 
-  (1U<<31) | 1704, (1U<<31) | 1659, (1U<<31) | 1095, (1U<<31) | 1780, (1U<<31) | 3165, (1U<<31) | 260, (1U<<31) | 1125, (1U<<31) | 1925, 
-  (1U<<31) | 1095, (1U<<31) | 1780, (1U<<31) | 3165, (1U<<31) | 260, (1U<<31) | 1125, (1U<<31) | 1925, (1U<<31) | 900, (1U<<31) | 930, 
-  (1U<<31) | 625, (1U<<31) | 656, (1U<<31) | 260, (1U<<31) | 1125, (1U<<31) | 1925, (1U<<31) | 1095, (1U<<31) | 1780, (1U<<31) | 3165, 
-  (1U<<31) | 766, (1U<<31) | 1199, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 250, (1U<<31) | 1115, (1U<<31) | 1915, (1U<<31) | 401, 
-  (1U<<31) | 478, (1U<<31) | 1168, 0x22c4a2c, 0x22c4b2c, 0x32c4c2c, 0x24a2e0, 0x24b2e0, 0x34c2e0, 
-  0x23b4a3b, 0x23b4b3b, 0x33c4c3c, 0x24a2e0, 0x24b2e0, 0x34c2e0, 0x22c592c, 0x22c5a2c, 
-  0x22c5b2c, 0x2592e0, 0x25a2e0, 0x25b2e0, 0x24a594a, 0x24a5a4a, 0x24b5b4b, 0x2592e0, 
-  0x25a2e0, 0x25b2e0, 0x23b593b, 0x23b5a3b, 0x23b5b3b, 0x2592e0, 0x25a2e0, 0x25b2e0, 
-  0x22c3b2c, 0x32c3c2c, 0x42d3d2d, 0x23b2e0, 0x33c2e0, 0x43d2e0, 0x22c4a2c, 0x22c4b2c, 
-  0x32c4c2c, 0x24a2e0, 0x24b2e0, 0x34c2e0, 0x23b4a3b, 0x23b4b3b, 0x33c4c3c, 0x24a2e0, 
-  0x24b2e0, 0x34c2e0, 0x22c592c, 0x22c5a2c, 0x22c5b2c, 0x2592e0, 0x25a2e0, 0x25b2e0, 
-  0x24a594a, 0x24a5a4a, 0x24b5b4b, 0x2592e0, 0x25a2e0, 0x25b2e0, 0x23b593b, 0x23b5a3b, 
-  0x23b5b3b, 0x2592e0, 0x25a2e0, 0x25b2e0, 0x22c3b2c, 0x32c3c2c, 0x42d3d2d, 0x23b2e0, 
-  0x33c2e0, 0x43d2e0, 0x22c4a2c, 0x22c4b2c, 0x32c4c2c, 0x24a2e0, 0x24b2e0, 0x34c2e0, 
-  0x23b4a3b, 0x23b4b3b, 0x33c4c3c, 0x24a2e0, 0x24b2e0, 0x34c2e0, 0x22c592c, 0x22c5a2c, 
-  0x22c5b2c, 0x2592e0, 0x25a2e0, 0x25b2e0, 0x24a594a, 0x24a5a4a, 0x24b5b4b, 0x2592e0, 
-  0x25a2e0, 0x25b2e0, 0x23b593b, 0x23b5a3b, 0x23b5b3b, 0x2592e0, 0x25a2e0, 0x25b2e0, 
-  0x22c3b2c, 0x32c3c2c, 0x42d3d2d, 0x23b2e0, 0x33c2e0, 0x43d2e0, (1U<<31) | 1095, (1U<<31) | 1780, 
-  (1U<<31) | 3165, 0x24a44a4a, 0x24b44b4b, 0x34c44c4c, 0x25945959, 0x25a45a5a, 0x25b45b5b, (1U<<31) | 434, 
-  (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, 0x24a44a4a, 0x24b44b4b, 0x34c44c4c, 
-  0x25945959, 0x25a45a5a, 0x25b45b5b, (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 570, (1U<<31) | 625, 
-  (1U<<31) | 656, (1U<<31) | 1095, (1U<<31) | 1780, (1U<<31) | 3165, (1U<<31) | 260, (1U<<31) | 1125, (1U<<31) | 1925, (1U<<31) | 1095, 
-  (1U<<31) | 1780, (1U<<31) | 3165, (1U<<31) | 260, (1U<<31) | 1125, (1U<<31) | 1925, (1U<<31) | 302, (1U<<31) | 324, (1U<<31) | 1157, 
-  (1U<<31) | 346, (1U<<31) | 368, (1U<<31) | 390, (1U<<31) | 800, (1U<<31) | 865, (1U<<31) | 1715, (1U<<31) | 666, (1U<<31) | 743, 
-  (1U<<31) | 1860, (1U<<31) | 1985, (1U<<31) | 1973, 0x28948989, 0x28a48a8a, (1U<<31) | 1717, 0x27a47a7a, 0x27b47b7b, 
-  (1U<<31) | 1862, (1U<<31) | 1985, (1U<<31) | 1973, 0x28948989, 0x28a48a8a, (1U<<31) | 1717, 0x27a47a7a, 0x27b47b7b, 
-  (1U<<31) | 1862, (1U<<31) | 1985, (1U<<31) | 1973, (1U<<31) | 855, (1U<<31) | 920, (1U<<31) | 1727, (1U<<31) | 733, (1U<<31) | 786, 
-  (1U<<31) | 1872, (1U<<31) | 1704, (1U<<31) | 1659, 0x2898989, 0x28a8a8a, 0x428b8b8b, 0x27a7a7a, 0x27b7b7b, 
-  0x437c7c7c, (1U<<31) | 1704, (1U<<31) | 1659, 0x27a2e0, (1U<<31) | 1727, (1U<<31) | 1872, (1U<<31) | 1704, (1U<<31) | 1659, 
-  0x27a3b7a, 0x27b3b7b, 0x437c3c7c, 0x23b47a3b, 0x23b47b3b, 0x33c47c3c, (1U<<31) | 855, (1U<<31) | 920, 
-  (1U<<31) | 1727, (1U<<31) | 733, (1U<<31) | 786, (1U<<31) | 1872, (1U<<31) | 1704, (1U<<31) | 1659, (1U<<31) | 855, (1U<<31) | 920, 
-  (1U<<31) | 1727, (1U<<31) | 733, (1U<<31) | 786, (1U<<31) | 1872, (1U<<31) | 855, (1U<<31) | 920, (1U<<31) | 1727, (1U<<31) | 733, 
-  (1U<<31) | 786, (1U<<31) | 1872, (1U<<31) | 855, (1U<<31) | 920, (1U<<31) | 1727, (1U<<31) | 733, (1U<<31) | 786, (1U<<31) | 1872, 
-  (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 434, (1U<<31) | 511, 
-  (1U<<31) | 1189, (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 260, 
-  (1U<<31) | 1125, (1U<<31) | 1925, (1U<<31) | 835, (1U<<31) | 900, (1U<<31) | 930, (1U<<31) | 689, (1U<<31) | 766, (1U<<31) | 1199, 
-  (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, (1U<<31) | 1095, (1U<<31) | 1780, (1U<<31) | 3165, (1U<<31) | 434, (1U<<31) | 511, 
-  (1U<<31) | 1189, (1U<<31) | 260, (1U<<31) | 1125, (1U<<31) | 1925, (1U<<31) | 845, (1U<<31) | 910, (1U<<31) | 940, (1U<<31) | 723, 
-  (1U<<31) | 776, (1U<<31) | 1209, (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, (1U<<31) | 1095, (1U<<31) | 1780, (1U<<31) | 3165, 
-  (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, (1U<<31) | 411, (1U<<31) | 488, 
-  (1U<<31) | 1178, (1U<<31) | 535, (1U<<31) | 590, (1U<<31) | 645, (1U<<31) | 281, (1U<<31) | 1146, (1U<<31) | 1946, (1U<<31) | 434, 
-  (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, (1U<<31) | 260, (1U<<31) | 1125, (1U<<31) | 1925, 
-  (1U<<31) | 411, (1U<<31) | 488, (1U<<31) | 1178, (1U<<31) | 535, (1U<<31) | 590, (1U<<31) | 645, (1U<<31) | 281, (1U<<31) | 1146, 
-  (1U<<31) | 1946, (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, (1U<<31) | 260, 
-  (1U<<31) | 1125, (1U<<31) | 1925, 0x32c2c3, 0x42d2d4, (1U<<31) | 3175, (1U<<31) | 855, (1U<<31) | 920, (1U<<31) | 1727, 
-  (1U<<31) | 733, (1U<<31) | 786, (1U<<31) | 1872, (1U<<31) | 1704, (1U<<31) | 1659, (1U<<31) | 855, (1U<<31) | 920, (1U<<31) | 1727, 
-  (1U<<31) | 733, (1U<<31) | 786, (1U<<31) | 1872, (1U<<31) | 855, (1U<<31) | 920, (1U<<31) | 1727, (1U<<31) | 733, (1U<<31) | 786, 
-  (1U<<31) | 1872, (1U<<31) | 1704, (1U<<31) | 1659, (1U<<31) | 855, (1U<<31) | 920, (1U<<31) | 1727, (1U<<31) | 733, (1U<<31) | 786, 
-  (1U<<31) | 1872, (1U<<31) | 855, (1U<<31) | 920, (1U<<31) | 1727, (1U<<31) | 733, (1U<<31) | 786, (1U<<31) | 1872, (1U<<31) | 1704, 
-  (1U<<31) | 1659, (1U<<31) | 357, (1U<<31) | 379, (1U<<31) | 1393, (1U<<31) | 313, (1U<<31) | 335, (1U<<31) | 1826, (1U<<31) | 1381, 
-  (1U<<31) | 1369, (1U<<31) | 302, (1U<<31) | 324, (1U<<31) | 1157, (1U<<31) | 346, (1U<<31) | 368, (1U<<31) | 390, (1U<<31) | 855, 
-  (1U<<31) | 920, (1U<<31) | 1727, (1U<<31) | 733, (1U<<31) | 786, (1U<<31) | 1872, (1U<<31) | 1704, (1U<<31) | 1659, (1U<<31) | 855, 
-  (1U<<31) | 920, (1U<<31) | 1727, (1U<<31) | 733, (1U<<31) | 786, (1U<<31) | 1872, (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, 
-  (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 434, (1U<<31) | 511, 
-  (1U<<31) | 1189, (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 260, (1U<<31) | 1125, (1U<<31) | 1925, (1U<<31) | 845, 
-  (1U<<31) | 910, (1U<<31) | 940, (1U<<31) | 723, (1U<<31) | 776, (1U<<31) | 1209, (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, 
-  (1U<<31) | 1095, (1U<<31) | 1780, (1U<<31) | 3165, (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, (1U<<31) | 570, (1U<<31) | 625, 
-  (1U<<31) | 656, (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, (1U<<31) | 260, 
-  (1U<<31) | 1125, (1U<<31) | 1925, (1U<<31) | 434, (1U<<31) | 511, (1U<<31) | 1189, (1U<<31) | 570, (1U<<31) | 625, (1U<<31) | 656, 
-  (1U<<31) | 260, (1U<<31) | 1125, (1U<<31) | 1925, 0x4c4c3d, (1U<<31) | 1244, 0x4c4c3d, (1U<<31) | 1244, 0x4c4c5b, 
-  0x3d3d3d, 0x3d3d3d, 0x3d3d3d, 0x4c4c5b, (1U<<31) | 1083, (1U<<31) | 1076, 0x4a4c4c, 0x595b5b, 
-  0x3b3d3d, 0x44c4c, 0x45b5b, 0x43d3d, 0x4c4c4c, 0x5b5b5b, 0x3b3b3b, 0x3c3c3c, 
-  0x3d3d3d, 0x4a4c4c, 0x595959, 0x595a5a, 0x595b5b, 0x3b3d3d, 0x44c4c, 0x45959, 
-  0x45a5a, 0x45b5b, 0x43d3d, 0x4c4c4c, 0x595959, 0x5a5a5a, 0x5b5b5b, 0x3b3b3b, 
-  0x3c3c3c, 0x3d3d3d, 0x4a4c4c, 0x595b5b, 0x3b3d3d, 0x44c4c, 0x45b5b, 0x43d3d, 
-  0x4c4c4c, 0x5b5b5b, 0x3b3b3b, 0x3c3c3c, 0x3d3d3d, 0x2898989, 0x28a8a8a, 0x28b8b8b, 
-  0x27a7a7a, 0x27b7b7b, 0x37c7c7c, (1U<<31) | 855, (1U<<31) | 733, 0x428b8b8b, 0x437c7c7c, (1U<<31) | 1704, 
-  (1U<<31) | 1659, 0x2898989, 0x28a8a8a, 0x28b8b8b, 0x27a7a7a, 0x27b7b7b, 0x37c7c7c, (1U<<31) | 855, 
-  (1U<<31) | 733, 0x428b8b8b, 0x437c7c7c, (1U<<31) | 1704, (1U<<31) | 1659, (1U<<31) | 2767, (1U<<31) | 2347, (1U<<31) | 2601, 
-  (1U<<31) | 2709, (1U<<31) | 2777, (1U<<31) | 2293, (1U<<31) | 2611, (1U<<31) | 2699, (1U<<31) | 2737, (1U<<31) | 2561, (1U<<31) | 2757, 
-  (1U<<31) | 2591, (1U<<31) | 2669, (1U<<31) | 2263, (1U<<31) | 2679, (1U<<31) | 2273, 0x442e4b20, 0x442e4c30, 0x442e5b20, 
-  0x442e5b20, (1U<<31) | 2727, (1U<<31) | 2551, (1U<<31) | 2747, (1U<<31) | 2581, (1U<<31) | 2659, (1U<<31) | 2221, (1U<<31) | 2689, 
-  (1U<<31) | 2283, 0x2e8b, 0x2e7c, 0x4489894, 0x447a7a4, 0x4894, 0x4895, 0x4894, 
-  0x4895, 0x47a4, 0x47a5, 0x47a4, 0x47a5, 0x5b8b8b, 0x4c7c7c, 0x444, 
-  0x555, 0x444, 0x555, 0x444, 0x555, 0x444, 0x555, 0x2e0, 
-  0x2e0, 0x2e0, 0x2e0, 0x4, 0x5, 0x40, 0x50, (1U<<31) | 3979, 
-  (1U<<31) | 3992, 0x7a7a7a7a, 0x7b7b7b7b, (1U<<31) | 3979, 0x7a7a7a7a, (1U<<31) | 3979, (1U<<31) | 3992, 0x7a7a7a7a, 
-  0x7b7b7b7b, (1U<<31) | 3979, (1U<<31) | 3992, 0x7a7a7a7a, 0x7b7b7b7b, (1U<<31) | 3979, 0x7a7a7a7a, (1U<<31) | 3979, 
-  (1U<<31) | 3992, 0x7a7a7a7a, 0x7b7b7b7b, (1U<<31) | 3979, (1U<<31) | 3992, 0x7a7a7a7a, 0x7b7b7b7b, (1U<<31) | 3979, 
-  0x7a7a7a7a, (1U<<31) | 3979, (1U<<31) | 3992, 0x7a7a7a7a, 0x7b7b7b7b, (1U<<31) | 3979, 0x7a7a7a7a, (1U<<31) | 3979, 
-  0x7a7a7a7a, 0x2e0, 0x2e0, 0x2e0, 0x2e0, 0x40, 0x50, 0x20, 
-  0x2e0, 0x4442, 0x4452, 0x4440, 0x4450, 0x0, 0x0, (1U<<31) | 1064, 
-  (1U<<31) | 4150, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, 
-  (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 1090, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, 
-  (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 3133, 
-  (1U<<31) | 2476, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4137, (1U<<31) | 4155, 
-  (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, 
-  (1U<<31) | 3146, (1U<<31) | 3146, (1U<<31) | 3146, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 3146, (1U<<31) | 3146, (1U<<31) | 4155, 
-  (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 3146, (1U<<31) | 3146, (1U<<31) | 3146, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, 
-  (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, 
-  (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, (1U<<31) | 4155, 0x442e0, 0x4440, 0x2595959, 0x25a5a5a, 
-  0x25b5b5b, 0x4, 0x5, 0x4, 0x5, 0x4, 0x4, 0x45, 
-  (1U<<31) | 1957, (1U<<31) | 2487, (1U<<31) | 2621, (1U<<31) | 1957, (1U<<31) | 2487, (1U<<31) | 2621, 0x44, 0x55, 
-  0x5, 0x2e5, 0x2e0, 0x0, 0x2e0, 0x2e0, 0x2e2e, 0x2e2e2e, 
-  0x0, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x24a4a4a, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a4a, 
-  0x2e, 0x27a7a7a, 0x27a7a7a, 0x7a7a4, 0x7a7a4, 0x7a7a4, 0x7a7a4, 0x7a7a4, 
-  0x7a7a4, (1U<<31) | 3988, (1U<<31) | 4146, (1U<<31) | 4140, (1U<<31) | 3966, 0x47a7a, 0x57a7a, 0x7a4, 
-  0x7a5, (1U<<31) | 3988, (1U<<31) | 3966, 0x7a4, 0x7a5, 0x2e0, 0x7a7a7a, 0x7a7a7a, 
-  0x7a7a7a, 0x7a7a7a, 0x7a4, (1U<<31) | 1091, 0x7a7a, 0x7a7a, 0x7a7a, 0x7a7a, 
-  0x0, 0x7a7a, 0x7a7a, 0x2e0, 0x7a7a4, 0x7a7a4, 0x7a7a4, 0x7a7a4, 
-  0x7a7a4, 0x7a7a4, 0x2e0, 0x2898989, 0x2898989, 0x89894, 0x89894, 0x89894, 
-  0x89894, 0x89894, 0x89894, 0x4a7a, 0x894a, 0x897a, 0x7a4a, 0x894, 
-  0x895, 0x897a7a, 0x48989, 0x58989, 0x7a8989, 0x894a, 0x7a4a, 0x894, 
-  0x895, 0x0, 0x2e2c2c0, 0x898989, 0x898989, 0x0, 0x898989, 0x898989, 
-  0x894, 0x4a4a3b, 0x3b3b2c, 0x3b3b2c, 0x2c2c2c, 0x3b3b3b, 0x2c2c2c, 0x3b3b3b, 
-  0x0, 0x3b3b4a, 0x2c4, 0x3b3b3b, 0x3b3b3b, 0x4a4a59, 0x2c2c59, 0x4a4a4a, 
-  0x595959, 0x3b3b3b, 0x44a4a, 0x45959, 0x43b3b, 0x4a4a4a, 0x3b3b3b, 0x44a4a, 
-  0x43b3b, 0x4a4a4a, 0x595959, 0x3b3b3b, 0x44a4a, 0x45959, 0x43b3b, 0x2c2c2c, 
-  0x3b3b3b, 0x2c2c2c, 0x3b3b3b, 0x8989, 0x8989, 0x89894, 0x89894, 0x89894, 
-  0x89894, 0x89894, 0x89894, 0x898989, 0x7a7a7a, 0x898989, 0x7a7a7a, 0x898989, 
-  0x7a7a7a, 0x2e2c, 0x442e0, 0x440, (1U<<31) | 3979, 0x7a7a7a7a, 0x2898989, 0x27a7a7a, 
-  0x27a7a7a, 0x22c2c3b, 0x4a4a3b, 0x2c2c2c2c, 0x3b3b, 0x4a4a59, 0x59594, 0x59594, 
-  0x59594, 0x48989, 0x47a7a, 0x4898989, 0x47a7a7a, 0x344, 0x444, 0x244, 
-  0x555, 0x242c42c4, 0x242c42c4, 0x242c42c4, 0x242c42c4, 0x242c42c4, 0x242c42c4, (1U<<31) | 292, 
-  0x22c2c4, 0x22c2c4, 0x22c2c4, 0x22c2c4, 0x22c2c4, 0x22c2c4, 0x22c2c2c, 0x2c5959, 
-  0x225959, 0x595959, 0x22595959, (1U<<31) | 4152, (1U<<31) | 4152, (1U<<31) | 4152, (1U<<31) | 4155, 0x4a4a4a, 
-  (1U<<31) | 4155, 0x3b3b3b, (1U<<31) | 4155, 0x3b3b3b, (1U<<31) | 4155, 0x4a4a4a, (1U<<31) | 4155, 0x3b3b3b, 
-  (1U<<31) | 4155, 0x3b3b3b, (1U<<31) | 4155, 0x2c2c3b, (1U<<31) | 4155, 0x3b3b3b, (1U<<31) | 4155, 0x2c2c2c, 
-  (1U<<31) | 4155, 0x2c2c2c, (1U<<31) | 4155, 0x4a4a4a, (1U<<31) | 4155, 0x3b3b3b, 0x2e4422, 0x2e5522, 
-  0x444, 0x555, 0x3b7a, 0x3b7b, 0x47a3b, 0x47b3b, 0x22c2c2c, 0x22d2d2d, 
-  (1U<<31) | 242, 0x22c2c2c, 0x22d2d2d, (1U<<31) | 242, 0x2c2c2c, 0x2d2d2d, (1U<<31) | 1076, 0x40, 
-  0x50, 0x40, 0x50, 0x40, 0x2e40, 0x2e50, 0x2e40, 0x2e50, 
-  0x20, 0x4, 0x0, 0x45, 0x8989, 0x8a8a, 0x7a7a, 0x7b7b, 
-  0x8989, 0x7a7a, 0x22c2c2c, 0x24a4a4a, 0x2595959, 0x22c2c2c, 0x24a4a4a, 0x2595959, 
-  0x23b3b3b, 0x23b3b3b, (1U<<31) | 580, (1U<<31) | 635, (1U<<31) | 468, (1U<<31) | 521, 0x2c4a, 0x2c59, 
-  0x2c3b, 0x4a59, 0x2c4a, 0x2c59, 0x2c3b, 0x4a59, 0x3b4a, 0x3b59, 
-  0x3b4a, 0x3b59, 0x2c3b, 0x4a59, 0x3b4a, 0x4a4a4a4a, 0x594a4a59, 0x594a4a59, 
-  0x4a4a4a4a, 0x594a4a59, 0x594a4a59, 0x4a3b3b4a, 0x3b3b3b3b, 0x4a3b3b4a, 0x3b3b3b3b, 0x4a3b3b4a, 
-  0x4a3b3b4a, 0x2c2c2c2c, 0x2c2c2c, 0x22c2c, 0x4a4a4a, 0x24a4a, 0x595959, 0x25959, 
-  0x3b3b3b, 0x23b3b, 0x2c2c2c, 0x4a4a4a, 0x595959, 0x3b3b3b, 0x2c2c2c, 0x4a4a4a, 
-  0x595959, 0x3b3b3b, 0x442e0, 0x442e0, 0x442e0, 0x442e0, 0x442e0, 0x442e0, 
-  0x442e0, 0x442e0, 0x442e0, 0x442e0, 0x442e0, 0x442e0, 0x4440, 0x4, 
-  0x44, 0x2e2e, 0x44f0, 0x0, 0x4f0, 0x40, 0x4444, (1U<<31) | 2061, 
-  0x4f0, 0x4f0, 0x4f4, 0x4f0, 0x4, 0x4, 0x4, 0x44, 
-  0x44f, 0xcf4f, 0x4f4, 0x4f4, 0x4f4, 0x2e4f0, 0x2e4f0, 0x2e4f0, 
-  0x2e4f0, 0x2e4f0, 0x44f4, 0x4f4, 0x4f0, 0x4f0, 0x44f0, 0x44f0, 
-  0x44f4, 0x44f0, 0x4f4, 0x44f0, 0xcf4f0, 0x44f0, 0x2e4f0, 0x440, 
-  0x44f0, 0x44f0, 0xcf4f0, 0x40, 0x44f0, 0x2e4f0, 0x444, 0x0, 
-  0x4f0, 0x4f4, 0x4f4, 0x2e, 0x444, 0
-};
-
-static const unsigned char IIT_LongEncodingTable[] = {
-  /* 0 */ 0, 4, 4, 15, 0, 15, 0, 15, 0, 15, 0, 1, 1, 0,
-  /* 14 */ 15, 2, 15, 10, 15, 17, 10, 4, 4, 1, 1, 1, 1, 1, 0,
-  /* 29 */ 0, 15, 2, 15, 9, 15, 17, 4, 1, 1, 1, 1, 0,
-  /* 42 */ 4, 4, 4, 15, 1, 11, 4, 1, 1, 1, 0,
-  /* 53 */ 0, 4, 4, 15, 3, 15, 3, 1, 1, 0,
-  /* 63 */ 0, 15, 0, 10, 4, 4, 4, 4, 4, 4, 4, 1, 1, 0,
-  /* 77 */ 0, 15, 2, 10, 4, 4, 4, 1, 1, 0,
-  /* 87 */ 21, 15, 2, 1, 15, 2, 15, 2, 1, 0,
-  /* 97 */ 15, 2, 15, 2, 15, 2, 15, 2, 1, 0,
-  /* 107 */ 0, 15, 3, 33, 3, 31, 3, 1, 0,
-  /* 116 */ 0, 15, 3, 34, 1, 0, 4, 31, 3, 1, 0,
-  /* 127 */ 0, 15, 3, 15, 12, 4, 31, 3, 1, 0,
-  /* 137 */ 15, 1, 15, 12, 15, 1, 4, 4, 1, 0,
-  /* 147 */ 15, 1, 15, 1, 15, 1, 4, 4, 4, 1, 0,
-  /* 158 */ 7, 27, 3, 7, 7, 4, 4, 1, 0,
-  /* 167 */ 21, 1, 5, 1, 0,
-  /* 172 */ 21, 15, 1, 1, 15, 1, 15, 1, 0,
-  /* 181 */ 0, 19, 15, 1, 0,
-  /* 186 */ 0, 15, 4, 15, 12, 15, 17, 1, 0,
-  /* 195 */ 2, 18, 1, 0,
-  /* 199 */ 15, 1, 25, 1, 0,
-  /* 204 */ 36, 1, 36, 1, 36, 1, 0,
-  /* 211 */ 21, 12, 4, 36, 1, 12, 4, 12, 4, 36, 1, 0,
-  /* 223 */ 37, 1, 37, 1, 37, 1, 0,
-  /* 230 */ 21, 13, 4, 37, 1, 13, 4, 13, 4, 37, 1, 0,
-  /* 242 */ 16, 2, 16, 2, 16, 2, 2, 0,
-  /* 250 */ 11, 3, 12, 2, 12, 2, 11, 3, 2, 0,
-  /* 260 */ 11, 3, 11, 3, 11, 3, 11, 3, 2, 0,
-  /* 270 */ 11, 3, 12, 2, 12, 2, 4, 11, 3, 2, 0,
-  /* 281 */ 11, 3, 11, 3, 11, 3, 4, 11, 3, 2, 0,
-  /* 292 */ 12, 2, 12, 2, 4, 12, 2, 4, 2, 0,
-  /* 302 */ 10, 4, 10, 4, 10, 4, 10, 4, 4, 2, 0,
-  /* 313 */ 10, 7, 10, 7, 10, 7, 10, 4, 4, 2, 0,
-  /* 324 */ 11, 4, 11, 4, 11, 4, 11, 4, 4, 2, 0,
-  /* 335 */ 11, 7, 11, 7, 11, 7, 11, 4, 4, 2, 0,
-  /* 346 */ 9, 5, 9, 5, 9, 5, 9, 5, 4, 2, 0,
-  /* 357 */ 9, 8, 9, 8, 9, 8, 9, 5, 4, 2, 0,
-  /* 368 */ 10, 5, 10, 5, 10, 5, 10, 5, 4, 2, 0,
-  /* 379 */ 10, 8, 10, 8, 10, 8, 10, 5, 4, 2, 0,
-  /* 390 */ 11, 5, 11, 5, 11, 5, 11, 5, 4, 2, 0,
-  /* 401 */ 10, 4, 11, 3, 11, 3, 10, 4, 2, 0,
-  /* 411 */ 10, 4, 10, 4, 10, 4, 4, 10, 4, 2, 0,
-  /* 422 */ 10, 4, 10, 4, 14, 2, 10, 4, 10, 4, 2, 0,
-  /* 434 */ 10, 4, 10, 4, 10, 4, 10, 4, 2, 0,
-  /* 444 */ 10, 4, 10, 4, 14, 2, 9, 5, 10, 4, 2, 0,
-  /* 456 */ 10, 4, 10, 4, 14, 2, 10, 5, 10, 4, 2, 0,
-  /* 468 */ 10, 7, 10, 7, 10, 7, 10, 4, 2, 0,
-  /* 478 */ 11, 4, 12, 3, 12, 3, 11, 4, 2, 0,
-  /* 488 */ 11, 4, 11, 4, 11, 4, 4, 11, 4, 2, 0,
-  /* 499 */ 11, 4, 11, 4, 14, 2, 11, 4, 11, 4, 2, 0,
-  /* 511 */ 11, 4, 11, 4, 11, 4, 11, 4, 2, 0,
-  /* 521 */ 11, 7, 11, 7, 11, 7, 11, 4, 2, 0,
-  /* 531 */ 27, 4, 2, 0,
-  /* 535 */ 9, 5, 9, 5, 9, 5, 4, 9, 5, 2, 0,
-  /* 546 */ 9, 5, 9, 5, 14, 2, 10, 4, 9, 5, 2, 0,
-  /* 558 */ 9, 5, 9, 5, 14, 2, 9, 5, 9, 5, 2, 0,
-  /* 570 */ 9, 5, 9, 5, 9, 5, 9, 5, 2, 0,
-  /* 580 */ 9, 8, 9, 8, 9, 8, 9, 5, 2, 0,
-  /* 590 */ 10, 5, 10, 5, 10, 5, 4, 10, 5, 2, 0,
-  /* 601 */ 10, 5, 10, 5, 14, 2, 10, 4, 10, 5, 2, 0,
-  /* 613 */ 10, 5, 10, 5, 14, 2, 10, 5, 10, 5, 2, 0,
-  /* 625 */ 10, 5, 10, 5, 10, 5, 10, 5, 2, 0,
-  /* 635 */ 10, 8, 10, 8, 10, 8, 10, 5, 2, 0,
-  /* 645 */ 11, 5, 11, 5, 11, 5, 4, 11, 5, 2, 0,
-  /* 656 */ 11, 5, 11, 5, 11, 5, 11, 5, 2, 0,
-  /* 666 */ 10, 7, 10, 7, 10, 7, 4, 10, 7, 2, 0,
-  /* 677 */ 10, 7, 10, 7, 14, 2, 10, 4, 10, 7, 2, 0,
-  /* 689 */ 10, 7, 10, 7, 10, 4, 10, 7, 2, 0,
-  /* 699 */ 10, 7, 10, 7, 14, 2, 9, 5, 10, 7, 2, 0,
-  /* 711 */ 10, 7, 10, 7, 14, 2, 10, 5, 10, 7, 2, 0,
-  /* 723 */ 10, 7, 10, 4, 10, 7, 10, 7, 2, 0,
-  /* 733 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 0,
-  /* 743 */ 11, 7, 11, 7, 11, 7, 4, 11, 7, 2, 0,
-  /* 754 */ 11, 7, 11, 7, 14, 2, 11, 4, 11, 7, 2, 0,
-  /* 766 */ 11, 7, 11, 7, 11, 4, 11, 7, 2, 0,
-  /* 776 */ 11, 7, 11, 4, 11, 7, 11, 7, 2, 0,
-  /* 786 */ 11, 7, 11, 7, 11, 7, 11, 7, 2, 0,
-  /* 796 */ 27, 7, 2, 0,
-  /* 800 */ 9, 8, 9, 8, 9, 8, 4, 9, 8, 2, 0,
-  /* 811 */ 9, 8, 9, 8, 14, 2, 10, 4, 9, 8, 2, 0,
-  /* 823 */ 9, 8, 9, 8, 14, 2, 9, 5, 9, 8, 2, 0,
-  /* 835 */ 9, 8, 9, 8, 9, 5, 9, 8, 2, 0,
-  /* 845 */ 9, 8, 9, 5, 9, 8, 9, 8, 2, 0,
-  /* 855 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 0,
-  /* 865 */ 10, 8, 10, 8, 10, 8, 4, 10, 8, 2, 0,
-  /* 876 */ 10, 8, 10, 8, 14, 2, 10, 4, 10, 8, 2, 0,
-  /* 888 */ 10, 8, 10, 8, 14, 2, 10, 5, 10, 8, 2, 0,
-  /* 900 */ 10, 8, 10, 8, 10, 5, 10, 8, 2, 0,
-  /* 910 */ 10, 8, 10, 5, 10, 8, 10, 8, 2, 0,
-  /* 920 */ 10, 8, 10, 8, 10, 8, 10, 8, 2, 0,
-  /* 930 */ 11, 8, 11, 8, 11, 5, 11, 8, 2, 0,
-  /* 940 */ 11, 8, 11, 5, 11, 8, 11, 8, 2, 0,
-  /* 950 */ 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 0,
-  /* 965 */ 21, 12, 2, 4, 12, 2, 12, 2, 0,
-  /* 974 */ 21, 12, 2, 4, 12, 2, 0,
-  /* 981 */ 18, 4, 14, 2, 14, 2, 14, 2, 0,
-  /* 990 */ 21, 4, 14, 2, 14, 2, 4, 14, 2, 0,
-  /* 1000 */ 21, 5, 14, 2, 14, 2, 4, 14, 2, 0,
-  /* 1010 */ 21, 4, 14, 2, 14, 2, 4, 4, 14, 2, 0,
-  /* 1021 */ 21, 5, 14, 2, 14, 2, 4, 4, 14, 2, 0,
-  /* 1032 */ 14, 2, 14, 2, 4, 4, 4, 14, 2, 0,
-  /* 1042 */ 21, 4, 4, 14, 2, 0,
-  /* 1048 */ 14, 2, 14, 2, 4, 4, 5, 14, 2, 0,
-  /* 1058 */ 21, 5, 5, 14, 2, 0,
-  /* 1064 */ 0, 17, 17, 14, 2, 0,
-  /* 1070 */ 14, 2, 18, 14, 2, 0,
-  /* 1076 */ 16, 2, 16, 2, 16, 2, 0,
-  /* 1083 */ 11, 5, 16, 2, 16, 2, 0,
-  /* 1090 */ 17, 17, 17, 2, 0,
-  /* 1095 */ 12, 2, 12, 2, 12, 2, 12, 2, 3, 0,
-  /* 1105 */ 0, 5, 4, 4, 4, 3, 3, 3, 3, 0,
-  /* 1115 */ 12, 3, 13, 2, 13, 2, 12, 3, 3, 0,
-  /* 1125 */ 12, 3, 12, 3, 12, 3, 12, 3, 3, 0,
-  /* 1135 */ 12, 3, 13, 2, 13, 2, 4, 12, 3, 3, 0,
-  /* 1146 */ 12, 3, 12, 3, 12, 3, 4, 12, 3, 3, 0,
-  /* 1157 */ 12, 4, 12, 4, 12, 4, 12, 4, 4, 3, 0,
-  /* 1168 */ 12, 4, 13, 3, 13, 3, 12, 4, 3, 0,
-  /* 1178 */ 12, 4, 12, 4, 12, 4, 4, 12, 4, 3, 0,
-  /* 1189 */ 12, 4, 12, 4, 12, 4, 12, 4, 3, 0,
-  /* 1199 */ 12, 7, 12, 7, 12, 4, 12, 7, 3, 0,
-  /* 1209 */ 12, 7, 12, 4, 12, 7, 12, 7, 3, 0,
-  /* 1219 */ 21, 12, 2, 4, 11, 3, 11, 3, 0,
-  /* 1228 */ 21, 11, 3, 4, 11, 3, 11, 3, 0,
-  /* 1237 */ 21, 11, 3, 4, 11, 3, 0,
-  /* 1244 */ 16, 2, 13, 3, 13, 3, 0,
-  /* 1251 */ 15, 3, 33, 3, 31, 3, 1, 15, 3, 0,
-  /* 1261 */ 15, 3, 34, 1, 0, 4, 31, 3, 1, 15, 3, 0,
-  /* 1273 */ 15, 3, 15, 12, 4, 31, 3, 1, 15, 3, 0,
-  /* 1284 */ 15, 3, 15, 3, 12, 2, 12, 2, 12, 2, 12, 2, 15, 3, 0,
-  /* 1299 */ 15, 3, 15, 3, 12, 2, 12, 2, 12, 2, 15, 3, 0,
-  /* 1312 */ 15, 3, 15, 3, 12, 2, 12, 2, 15, 3, 0,
-  /* 1323 */ 15, 3, 25, 3, 0,
-  /* 1328 */ 15, 3, 25, 3, 25, 3, 0,
-  /* 1335 */ 15, 3, 26, 3, 0,
-  /* 1340 */ 15, 3, 26, 3, 26, 3, 0,
-  /* 1347 */ 15, 1, 25, 1, 4, 0,
-  /* 1353 */ 12, 4, 12, 4, 36, 1, 4, 0,
-  /* 1361 */ 13, 4, 13, 4, 37, 1, 4, 0,
-  /* 1369 */ 10, 7, 10, 7, 10, 7, 10, 4, 4, 2, 4, 0,
-  /* 1381 */ 9, 8, 9, 8, 9, 8, 9, 5, 4, 2, 4, 0,
-  /* 1393 */ 11, 8, 11, 8, 11, 8, 11, 5, 4, 2, 4, 0,
-  /* 1405 */ 10, 4, 10, 4, 14, 2, 10, 4, 2, 4, 0,
-  /* 1416 */ 9, 5, 9, 5, 14, 2, 10, 4, 2, 4, 0,
-  /* 1427 */ 10, 5, 10, 5, 14, 2, 10, 4, 2, 4, 0,
-  /* 1438 */ 10, 7, 10, 7, 14, 2, 10, 4, 2, 4, 0,
-  /* 1449 */ 9, 8, 9, 8, 14, 2, 10, 4, 2, 4, 0,
-  /* 1460 */ 10, 8, 10, 8, 14, 2, 10, 4, 2, 4, 0,
-  /* 1471 */ 11, 4, 11, 4, 14, 2, 11, 4, 2, 4, 0,
-  /* 1482 */ 11, 5, 11, 5, 14, 2, 11, 4, 2, 4, 0,
-  /* 1493 */ 11, 7, 11, 7, 14, 2, 11, 4, 2, 4, 0,
-  /* 1504 */ 11, 8, 11, 8, 14, 2, 11, 4, 2, 4, 0,
-  /* 1515 */ 10, 4, 10, 4, 14, 2, 9, 5, 2, 4, 0,
-  /* 1526 */ 9, 5, 9, 5, 14, 2, 9, 5, 2, 4, 0,
-  /* 1537 */ 10, 7, 10, 7, 14, 2, 9, 5, 2, 4, 0,
-  /* 1548 */ 9, 8, 9, 8, 14, 2, 9, 5, 2, 4, 0,
-  /* 1559 */ 10, 4, 10, 4, 14, 2, 10, 5, 2, 4, 0,
-  /* 1570 */ 10, 5, 10, 5, 14, 2, 10, 5, 2, 4, 0,
-  /* 1581 */ 10, 7, 10, 7, 14, 2, 10, 5, 2, 4, 0,
-  /* 1592 */ 10, 8, 10, 8, 14, 2, 10, 5, 2, 4, 0,
-  /* 1603 */ 11, 4, 11, 4, 14, 2, 11, 5, 2, 4, 0,
-  /* 1614 */ 11, 5, 11, 5, 14, 2, 11, 5, 2, 4, 0,
-  /* 1625 */ 11, 7, 11, 7, 14, 2, 11, 5, 2, 4, 0,
-  /* 1636 */ 11, 8, 11, 8, 14, 2, 11, 5, 2, 4, 0,
-  /* 1647 */ 10, 7, 10, 7, 10, 7, 4, 10, 7, 2, 4, 0,
-  /* 1659 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 0,
-  /* 1670 */ 10, 7, 10, 7, 9, 8, 10, 7, 2, 4, 0,
-  /* 1681 */ 9, 8, 9, 8, 9, 8, 4, 9, 8, 2, 4, 0,
-  /* 1693 */ 9, 8, 9, 8, 10, 7, 9, 8, 2, 4, 0,
-  /* 1704 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 0,
-  /* 1715 */ 11, 8, 11, 8, 11, 8, 4, 11, 8, 2, 4, 0,
-  /* 1727 */ 11, 8, 11, 8, 11, 8, 11, 8, 2, 4, 0,
-  /* 1738 */ 12, 2, 12, 2, 12, 2, 12, 2, 4, 0,
-  /* 1748 */ 21, 12, 2, 4, 12, 2, 12, 2, 12, 2, 4, 0,
-  /* 1760 */ 21, 12, 2, 4, 12, 2, 12, 2, 4, 0,
-  /* 1770 */ 12, 2, 9, 5, 9, 5, 12, 2, 4, 0,
-  /* 1780 */ 13, 2, 13, 2, 13, 2, 13, 2, 4, 0,
-  /* 1790 */ 15, 1, 15, 1, 14, 2, 14, 2, 4, 0,
-  /* 1800 */ 15, 4, 15, 4, 14, 2, 14, 2, 4, 0,
-  /* 1810 */ 21, 4, 14, 2, 14, 2, 4, 0,
-  /* 1818 */ 21, 5, 14, 2, 14, 2, 4, 0,
-  /* 1826 */ 12, 7, 12, 7, 12, 7, 12, 4, 4, 3, 4, 0,
-  /* 1838 */ 12, 4, 12, 4, 14, 2, 12, 4, 3, 4, 0,
-  /* 1849 */ 12, 7, 12, 7, 14, 2, 12, 4, 3, 4, 0,
-  /* 1860 */ 12, 7, 12, 7, 12, 7, 4, 12, 7, 3, 4, 0,
-  /* 1872 */ 12, 7, 12, 7, 12, 7, 12, 7, 3, 4, 0,
-  /* 1883 */ 11, 3, 11, 3, 11, 3, 11, 3, 4, 0,
-  /* 1893 */ 21, 11, 3, 4, 11, 3, 11, 3, 11, 3, 4, 0,
-  /* 1905 */ 21, 11, 3, 4, 11, 3, 11, 3, 4, 0,
-  /* 1915 */ 13, 3, 16, 2, 16, 2, 13, 3, 4, 0,
-  /* 1925 */ 13, 3, 13, 3, 13, 3, 13, 3, 4, 0,
-  /* 1935 */ 13, 3, 16, 2, 16, 2, 4, 13, 3, 4, 0,
-  /* 1946 */ 13, 3, 13, 3, 13, 3, 4, 13, 3, 4, 0,
-  /* 1957 */ 21, 3, 4, 0,
-  /* 1961 */ 15, 3, 26, 3, 4, 0,
-  /* 1967 */ 21, 4, 1, 4, 4, 0,
-  /* 1973 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 4, 0,
-  /* 1985 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 4, 0,
-  /* 1997 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 15, 3, 15, 3, 4, 4, 0,
-  /* 2019 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 15, 3, 4, 4, 0,
-  /* 2037 */ 21, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 4, 4, 0,
-  /* 2051 */ 0, 5, 4, 4, 4, 4, 4, 4, 4, 0,
-  /* 2061 */ 21, 4, 4, 4, 4, 4, 0,
-  /* 2068 */ 23, 3, 3, 3, 3, 5, 4, 4, 4, 0,
-  /* 2078 */ 21, 3, 3, 5, 4, 4, 4, 0,
-  /* 2086 */ 23, 4, 4, 4, 4, 5, 4, 4, 4, 0,
-  /* 2096 */ 21, 4, 4, 5, 4, 4, 4, 0,
-  /* 2104 */ 23, 4, 4, 4, 4, 5, 5, 4, 4, 4, 0,
-  /* 2115 */ 21, 5, 5, 5, 4, 4, 4, 0,
-  /* 2123 */ 23, 7, 7, 7, 7, 5, 5, 4, 4, 4, 0,
-  /* 2134 */ 23, 7, 7, 7, 7, 5, 4, 4, 4, 0,
-  /* 2144 */ 16, 4, 16, 4, 16, 4, 4, 4, 0,
-  /* 2153 */ 23, 3, 3, 3, 3, 5, 4, 4, 0,
-  /* 2162 */ 21, 3, 3, 5, 4, 4, 0,
-  /* 2169 */ 23, 4, 4, 4, 4, 5, 4, 4, 0,
-  /* 2178 */ 21, 4, 4, 5, 4, 4, 0,
-  /* 2185 */ 23, 4, 4, 4, 4, 5, 5, 4, 4, 0,
-  /* 2195 */ 21, 5, 5, 5, 4, 4, 0,
-  /* 2202 */ 23, 7, 7, 7, 7, 5, 5, 4, 4, 0,
-  /* 2212 */ 23, 7, 7, 7, 7, 5, 4, 4, 0,
-  /* 2221 */ 0, 14, 2, 2, 10, 4, 10, 4, 4, 0,
-  /* 2231 */ 21, 10, 4, 4, 10, 4, 10, 4, 4, 0,
-  /* 2241 */ 21, 10, 4, 4, 10, 4, 10, 4, 10, 4, 4, 0,
-  /* 2253 */ 10, 4, 10, 4, 10, 4, 10, 4, 4, 0,
-  /* 2263 */ 0, 14, 2, 2, 9, 5, 10, 4, 4, 0,
-  /* 2273 */ 0, 14, 2, 2, 10, 5, 10, 4, 4, 0,
-  /* 2283 */ 0, 14, 2, 2, 11, 4, 11, 4, 4, 0,
-  /* 2293 */ 0, 14, 2, 2, 11, 5, 11, 4, 4, 0,
-  /* 2303 */ 0, 15, 4, 15, 11, 15, 11, 4, 4, 0,
-  /* 2313 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 4, 4, 0,
-  /* 2325 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 4, 4, 0,
-  /* 2339 */ 36, 1, 36, 1, 12, 4, 4, 0,
-  /* 2347 */ 0, 14, 2, 3, 12, 4, 12, 4, 4, 0,
-  /* 2357 */ 12, 4, 12, 4, 12, 4, 12, 4, 4, 0,
-  /* 2367 */ 13, 4, 13, 4, 12, 4, 12, 4, 4, 0,
-  /* 2377 */ 37, 1, 37, 1, 13, 4, 4, 0,
-  /* 2385 */ 13, 4, 13, 4, 13, 4, 13, 4, 4, 0,
-  /* 2395 */ 16, 4, 16, 4, 13, 4, 13, 4, 4, 0,
-  /* 2405 */ 16, 4, 16, 4, 13, 4, 4, 0,
-  /* 2413 */ 40, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 15, 4, 4, 0,
-  /* 2434 */ 23, 9, 6, 9, 6, 9, 6, 9, 6, 15, 4, 4, 0,
-  /* 2447 */ 40, 7, 7, 7, 7, 7, 7, 7, 7, 15, 4, 4, 0,
-  /* 2460 */ 13, 4, 13, 4, 16, 4, 4, 0,
-  /* 2468 */ 16, 4, 16, 4, 16, 4, 4, 0,
-  /* 2476 */ 17, 17, 4, 4, 0,
-  /* 2481 */ 15, 0, 18, 4, 4, 0,
-  /* 2487 */ 21, 4, 4, 0,
-  /* 2491 */ 23, 3, 3, 3, 3, 5, 4, 0,
-  /* 2499 */ 21, 3, 3, 5, 4, 0,
-  /* 2505 */ 23, 4, 4, 4, 4, 5, 4, 0,
-  /* 2513 */ 21, 4, 4, 5, 4, 0,
-  /* 2519 */ 23, 4, 4, 4, 4, 5, 5, 4, 0,
-  /* 2528 */ 21, 5, 5, 5, 4, 0,
-  /* 2534 */ 23, 7, 7, 7, 7, 5, 5, 4, 0,
-  /* 2543 */ 23, 7, 7, 7, 7, 5, 4, 0,
-  /* 2551 */ 0, 14, 2, 2, 10, 4, 9, 5, 4, 0,
-  /* 2561 */ 0, 14, 2, 2, 9, 5, 9, 5, 4, 0,
-  /* 2571 */ 9, 5, 9, 5, 9, 5, 9, 5, 4, 0,
-  /* 2581 */ 0, 14, 2, 2, 10, 4, 10, 5, 4, 0,
-  /* 2591 */ 0, 14, 2, 2, 10, 5, 10, 5, 4, 0,
-  /* 2601 */ 0, 14, 2, 2, 11, 4, 11, 5, 4, 0,
-  /* 2611 */ 0, 14, 2, 2, 11, 5, 11, 5, 4, 0,
-  /* 2621 */ 21, 5, 4, 0,
-  /* 2625 */ 0, 15, 4, 9, 6, 9, 6, 9, 6, 9, 6, 4, 0,
-  /* 2638 */ 0, 15, 4, 7, 7, 7, 7, 7, 7, 7, 7, 4, 0,
-  /* 2651 */ 21, 10, 4, 4, 10, 7, 4, 0,
-  /* 2659 */ 0, 14, 2, 2, 10, 4, 10, 7, 4, 0,
-  /* 2669 */ 0, 14, 2, 2, 9, 5, 10, 7, 4, 0,
-  /* 2679 */ 0, 14, 2, 2, 10, 5, 10, 7, 4, 0,
-  /* 2689 */ 0, 14, 2, 2, 11, 4, 11, 7, 4, 0,
-  /* 2699 */ 0, 14, 2, 2, 11, 5, 11, 7, 4, 0,
-  /* 2709 */ 0, 14, 2, 3, 12, 4, 12, 7, 4, 0,
-  /* 2719 */ 21, 9, 5, 4, 9, 8, 4, 0,
-  /* 2727 */ 0, 14, 2, 2, 10, 4, 9, 8, 4, 0,
-  /* 2737 */ 0, 14, 2, 2, 9, 5, 9, 8, 4, 0,
-  /* 2747 */ 0, 14, 2, 2, 10, 4, 10, 8, 4, 0,
-  /* 2757 */ 0, 14, 2, 2, 10, 5, 10, 8, 4, 0,
-  /* 2767 */ 0, 14, 2, 2, 11, 4, 11, 8, 4, 0,
-  /* 2777 */ 0, 14, 2, 2, 11, 5, 11, 8, 4, 0,
-  /* 2787 */ 21, 10, 4, 4, 10, 4, 0,
-  /* 2794 */ 21, 11, 3, 4, 10, 4, 10, 4, 0,
-  /* 2803 */ 21, 10, 4, 4, 10, 4, 10, 4, 0,
-  /* 2812 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 4, 0,
-  /* 2823 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 4, 0,
-  /* 2836 */ 12, 4, 36, 1, 12, 4, 0,
-  /* 2843 */ 0, 36, 1, 14, 2, 12, 4, 0,
-  /* 2851 */ 0, 14, 2, 36, 1, 4, 4, 12, 4, 0,
-  /* 2861 */ 36, 1, 36, 1, 12, 4, 12, 4, 0,
-  /* 2870 */ 12, 4, 36, 1, 12, 4, 12, 4, 0,
-  /* 2879 */ 13, 4, 36, 1, 12, 4, 12, 4, 0,
-  /* 2888 */ 0, 36, 1, 4, 4, 12, 4, 12, 4, 0,
-  /* 2898 */ 0, 36, 1, 4, 4, 13, 4, 12, 4, 0,
-  /* 2908 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 4, 0,
-  /* 2921 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 4, 0,
-  /* 2932 */ 21, 15, 3, 15, 3, 15, 12, 4, 0,
-  /* 2941 */ 13, 4, 37, 1, 13, 4, 0,
-  /* 2948 */ 0, 37, 1, 14, 2, 13, 4, 0,
-  /* 2956 */ 0, 14, 2, 36, 1, 4, 4, 13, 4, 0,
-  /* 2966 */ 0, 14, 2, 37, 1, 4, 4, 13, 4, 0,
-  /* 2976 */ 37, 1, 37, 1, 13, 4, 13, 4, 0,
-  /* 2985 */ 13, 4, 37, 1, 13, 4, 13, 4, 0,
-  /* 2994 */ 16, 4, 37, 1, 13, 4, 13, 4, 0,
-  /* 3003 */ 0, 37, 1, 4, 4, 13, 4, 13, 4, 0,
-  /* 3013 */ 16, 4, 16, 4, 13, 4, 13, 4, 0,
-  /* 3022 */ 0, 4, 4, 16, 4, 13, 4, 0,
-  /* 3030 */ 0, 37, 1, 4, 4, 16, 4, 13, 4, 0,
-  /* 3040 */ 16, 4, 16, 4, 13, 4, 0,
-  /* 3047 */ 0, 14, 20, 5, 15, 4, 0,
-  /* 3054 */ 40, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 15, 4, 0,
-  /* 3074 */ 23, 9, 6, 9, 6, 9, 6, 9, 6, 15, 4, 0,
-  /* 3086 */ 40, 7, 7, 7, 7, 7, 7, 7, 7, 15, 4, 0,
-  /* 3098 */ 5, 19, 15, 4, 0,
-  /* 3103 */ 0, 14, 2, 37, 1, 4, 4, 16, 4, 0,
-  /* 3113 */ 0, 14, 2, 4, 4, 16, 4, 0,
-  /* 3121 */ 13, 4, 16, 4, 0,
-  /* 3126 */ 16, 4, 16, 4, 16, 4, 0,
-  /* 3133 */ 4, 17, 4, 0,
-  /* 3137 */ 0, 15, 4, 15, 12, 15, 17, 4, 0,
-  /* 3146 */ 17, 17, 4, 0,
-  /* 3150 */ 0, 14, 2, 16, 2, 5, 0,
-  /* 3157 */ 16, 2, 14, 2, 16, 2, 5, 0,
-  /* 3165 */ 16, 2, 16, 2, 16, 2, 16, 2, 5, 0,
-  /* 3175 */ 5, 16, 2, 16, 2, 5, 0,
-  /* 3182 */ 21, 5, 1, 4, 5, 0,
-  /* 3188 */ 16, 4, 16, 4, 13, 4, 5, 0,
-  /* 3196 */ 21, 1, 5, 5, 0,
-  /* 3201 */ 21, 10, 4, 4, 9, 5, 9, 5, 0,
-  /* 3210 */ 21, 9, 5, 4, 9, 5, 9, 5, 0,
-  /* 3219 */ 0, 15, 4, 9, 6, 9, 6, 9, 6, 9, 6, 0,
-  /* 3231 */ 23, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 0,
-  /* 3281 */ 40, 7, 7, 7, 7, 7, 7, 7, 7, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 0,
-  /* 3331 */ 23, 4, 4, 4, 4, 5, 4, 7, 0,
-  /* 3340 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 0,
-  /* 3350 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 0,
-  /* 3360 */ 23, 7, 7, 7, 7, 5, 4, 7, 0,
-  /* 3369 */ 23, 4, 4, 4, 4, 5, 7, 0,
-  /* 3377 */ 23, 4, 4, 4, 4, 5, 5, 7, 0,
-  /* 3386 */ 23, 7, 7, 7, 7, 5, 5, 7, 0,
-  /* 3395 */ 23, 7, 7, 7, 7, 5, 7, 0,
-  /* 3403 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 0,
-  /* 3413 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 0,
-  /* 3424 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 0,
-  /* 3435 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 0,
-  /* 3445 */ 23, 4, 4, 4, 4, 5, 7, 7, 0,
-  /* 3454 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 0,
-  /* 3464 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 0,
-  /* 3474 */ 23, 7, 7, 7, 7, 5, 7, 7, 0,
-  /* 3483 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 0,
-  /* 3494 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 0,
-  /* 3506 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 0,
-  /* 3518 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 0,
-  /* 3529 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 0,
-  /* 3539 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 0,
-  /* 3550 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 0,
-  /* 3561 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 0,
-  /* 3571 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 0,
-  /* 3583 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 0,
-  /* 3596 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 0,
-  /* 3609 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 0,
-  /* 3621 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 0,
-  /* 3632 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 0,
-  /* 3644 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 0,
-  /* 3656 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 0,
-  /* 3667 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-  /* 3681 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-  /* 3696 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-  /* 3711 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-  /* 3725 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 0,
-  /* 3738 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 0,
-  /* 3752 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 0,
-  /* 3766 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 0,
-  /* 3779 */ 0, 15, 4, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-  /* 3791 */ 23, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-  /* 3841 */ 40, 7, 7, 7, 7, 7, 7, 7, 7, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-  /* 3891 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-  /* 3907 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-  /* 3924 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-  /* 3941 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-  /* 3957 */ 21, 10, 4, 4, 10, 7, 10, 7, 0,
-  /* 3966 */ 17, 10, 7, 0,
-  /* 3970 */ 21, 9, 5, 4, 9, 8, 9, 8, 0,
-  /* 3979 */ 9, 8, 9, 8, 9, 8, 9, 8, 0,
-  /* 3988 */ 17, 9, 8, 0,
-  /* 3992 */ 10, 8, 10, 8, 10, 8, 10, 8, 0,
-  /* 4001 */ 0, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-  /* 4011 */ 0, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-  /* 4023 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-  /* 4035 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-  /* 4045 */ 21, 15, 3, 15, 3, 15, 12, 0,
-  /* 4053 */ 0, 15, 3, 15, 3, 5, 15, 12, 0,
-  /* 4062 */ 0, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-  /* 4073 */ 0, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-  /* 4086 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-  /* 4107 */ 22, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-  /* 4124 */ 21, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-  /* 4137 */ 4, 17, 0,
-  /* 4140 */ 10, 7, 10, 7, 17, 0,
-  /* 4146 */ 9, 8, 17, 0,
-  /* 4150 */ 0, 14, 17, 17, 0,
-  /* 4155 */ 17, 17, 17, 0,
-  /* 4159 */ 15, 0, 18, 0,
-  /* 4163 */ 1, 18, 0,
-  /* 4166 */ 15, 4, 18, 0,
-  /* 4170 */ 0, 19, 0,
-  /* 4173 */ 15, 1, 19, 0,
-  /* 4177 */ 1, 14, 2, 19, 0,
-  /* 4182 */ 21, 14, 2, 1, 14, 2, 4, 19, 0,
-  /* 4191 */ 15, 2, 15, 10, 15, 19, 0,
-  /* 4198 */ 15, 2, 15, 2, 15, 2, 15, 2, 19, 19, 0,
-  /* 4209 */ 15, 2, 15, 2, 4, 19, 19, 0,
-  /* 4217 */ 0, 19, 19, 19, 0,
-  /* 4222 */ 15, 0, 29, 0,
-  /* 4226 */ 0, 1, 29, 0,
-  /* 4230 */ 0, 5, 4, 14, 2, 4, 29, 0,
-  /* 4238 */ 5, 5, 4, 14, 2, 4, 29, 0,
-  /* 4246 */ 18, 5, 4, 15, 4, 4, 4, 29, 0,
-  /* 4255 */ 0, 5, 4, 29, 0,
-  /* 4260 */ 28, 35, 28, 35, 28, 35, 28, 35, 0,
-  255
-};
-
-#endif
-
-// Add parameter attributes that are not common to all intrinsics.
-#ifdef GET_INTRINSIC_ATTRIBUTES
-AttributeList Intrinsic::getAttributes(LLVMContext &C, ID id) {
-  static const uint8_t IntrinsicsToAttributesMap[] = {
-    1, // llvm.addressofreturnaddress
-    2, // llvm.adjust.trampoline
-    3, // llvm.annotation
-    3, // llvm.assume
-    4, // llvm.bitreverse
-    4, // llvm.bswap
-    4, // llvm.canonicalize
-    4, // llvm.ceil
-    3, // llvm.clear_cache
-    5, // llvm.codeview.annotation
-    1, // llvm.convert.from.fp16
-    1, // llvm.convert.to.fp16
-    4, // llvm.copysign
-    3, // llvm.coro.alloc
-    6, // llvm.coro.begin
-    7, // llvm.coro.destroy
-    8, // llvm.coro.done
-    3, // llvm.coro.end
-    1, // llvm.coro.frame
-    9, // llvm.coro.free
-    10, // llvm.coro.id
-    11, // llvm.coro.param
-    12, // llvm.coro.promise
-    7, // llvm.coro.resume
-    3, // llvm.coro.save
-    1, // llvm.coro.size
-    13, // llvm.coro.subfn.addr
-    3, // llvm.coro.suspend
-    4, // llvm.cos
-    4, // llvm.ctlz
-    4, // llvm.ctpop
-    4, // llvm.cttz
-    4, // llvm.dbg.addr
-    4, // llvm.dbg.declare
-    4, // llvm.dbg.value
-    3, // llvm.debugtrap
-    1, // llvm.donothing
-    3, // llvm.eh.dwarf.cfa
-    1, // llvm.eh.exceptioncode
-    1, // llvm.eh.exceptionpointer
-    3, // llvm.eh.return.i32
-    3, // llvm.eh.return.i64
-    1, // llvm.eh.sjlj.callsite
-    3, // llvm.eh.sjlj.functioncontext
-    14, // llvm.eh.sjlj.longjmp
-    1, // llvm.eh.sjlj.lsda
-    3, // llvm.eh.sjlj.setjmp
-    3, // llvm.eh.sjlj.setup.dispatch
-    1, // llvm.eh.typeid.for
-    3, // llvm.eh.unwind.init
-    4, // llvm.exp
-    4, // llvm.exp2
-    1, // llvm.expect
-    15, // llvm.experimental.constrained.cos
-    15, // llvm.experimental.constrained.exp
-    15, // llvm.experimental.constrained.exp2
-    15, // llvm.experimental.constrained.fadd
-    15, // llvm.experimental.constrained.fdiv
-    15, // llvm.experimental.constrained.fma
-    15, // llvm.experimental.constrained.fmul
-    15, // llvm.experimental.constrained.frem
-    15, // llvm.experimental.constrained.fsub
-    15, // llvm.experimental.constrained.log
-    15, // llvm.experimental.constrained.log10
-    15, // llvm.experimental.constrained.log2
-    15, // llvm.experimental.constrained.nearbyint
-    15, // llvm.experimental.constrained.pow
-    15, // llvm.experimental.constrained.powi
-    15, // llvm.experimental.constrained.rint
-    15, // llvm.experimental.constrained.sin
-    15, // llvm.experimental.constrained.sqrt
-    7, // llvm.experimental.deoptimize
-    16, // llvm.experimental.gc.relocate
-    16, // llvm.experimental.gc.result
-    7, // llvm.experimental.gc.statepoint
-    7, // llvm.experimental.guard
-    7, // llvm.experimental.patchpoint.i64
-    7, // llvm.experimental.patchpoint.void
-    7, // llvm.experimental.stackmap
-    1, // llvm.experimental.vector.reduce.add
-    1, // llvm.experimental.vector.reduce.and
-    1, // llvm.experimental.vector.reduce.fadd
-    1, // llvm.experimental.vector.reduce.fmax
-    1, // llvm.experimental.vector.reduce.fmin
-    1, // llvm.experimental.vector.reduce.fmul
-    1, // llvm.experimental.vector.reduce.mul
-    1, // llvm.experimental.vector.reduce.or
-    1, // llvm.experimental.vector.reduce.smax
-    1, // llvm.experimental.vector.reduce.smin
-    1, // llvm.experimental.vector.reduce.umax
-    1, // llvm.experimental.vector.reduce.umin
-    1, // llvm.experimental.vector.reduce.xor
-    4, // llvm.fabs
-    4, // llvm.floor
-    3, // llvm.flt.rounds
-    4, // llvm.fma
-    4, // llvm.fmuladd
-    1, // llvm.frameaddress
-    2, // llvm.gcread
-    3, // llvm.gcroot
-    17, // llvm.gcwrite
-    3, // llvm.get.dynamic.area.offset
-    3, // llvm.icall.branch.funnel
-    18, // llvm.init.trampoline
-    3, // llvm.instrprof.increment
-    3, // llvm.instrprof.increment.step
-    3, // llvm.instrprof.value.profile
-    19, // llvm.invariant.end
-    2, // llvm.invariant.group.barrier
-    20, // llvm.invariant.start
-    20, // llvm.lifetime.end
-    20, // llvm.lifetime.start
-    2, // llvm.load.relative
-    1, // llvm.localaddress
-    3, // llvm.localescape
-    1, // llvm.localrecover
-    4, // llvm.log
-    4, // llvm.log10
-    4, // llvm.log2
-    14, // llvm.longjmp
-    21, // llvm.masked.compressstore
-    16, // llvm.masked.expandload
-    16, // llvm.masked.gather
-    2, // llvm.masked.load
-    3, // llvm.masked.scatter
-    21, // llvm.masked.store
-    4, // llvm.maxnum
-    22, // llvm.memcpy
-    22, // llvm.memcpy.element.unordered.atomic
-    23, // llvm.memmove
-    22, // llvm.memmove.element.unordered.atomic
-    24, // llvm.memset
-    24, // llvm.memset.element.unordered.atomic
-    4, // llvm.minnum
-    4, // llvm.nearbyint
-    4, // llvm.objectsize
-    3, // llvm.pcmarker
-    4, // llvm.pow
-    4, // llvm.powi
-    25, // llvm.prefetch
-    3, // llvm.ptr.annotation
-    16, // llvm.read_register
-    3, // llvm.readcyclecounter
-    1, // llvm.returnaddress
-    4, // llvm.rint
-    4, // llvm.round
-    4, // llvm.sadd.with.overflow
-    3, // llvm.setjmp
-    15, // llvm.sideeffect
-    14, // llvm.siglongjmp
-    3, // llvm.sigsetjmp
-    4, // llvm.sin
-    4, // llvm.smul.with.overflow
-    4, // llvm.sqrt
-    26, // llvm.ssa.copy
-    4, // llvm.ssub.with.overflow
-    3, // llvm.stackguard
-    3, // llvm.stackprotector
-    3, // llvm.stackrestore
-    3, // llvm.stacksave
-    1, // llvm.thread.pointer
-    14, // llvm.trap
-    4, // llvm.trunc
-    1, // llvm.type.checked.load
-    1, // llvm.type.test
-    4, // llvm.uadd.with.overflow
-    4, // llvm.umul.with.overflow
-    4, // llvm.usub.with.overflow
-    3, // llvm.va_copy
-    3, // llvm.va_end
-    3, // llvm.va_start
-    3, // llvm.var.annotation
-    3, // llvm.write_register
-    27, // llvm.xray.customevent
-    3, // llvm.aarch64.clrex
-    1, // llvm.aarch64.crc32b
-    1, // llvm.aarch64.crc32cb
-    1, // llvm.aarch64.crc32ch
-    1, // llvm.aarch64.crc32cw
-    1, // llvm.aarch64.crc32cx
-    1, // llvm.aarch64.crc32h
-    1, // llvm.aarch64.crc32w
-    1, // llvm.aarch64.crc32x
-    1, // llvm.aarch64.crypto.aesd
-    1, // llvm.aarch64.crypto.aese
-    1, // llvm.aarch64.crypto.aesimc
-    1, // llvm.aarch64.crypto.aesmc
-    1, // llvm.aarch64.crypto.sha1c
-    1, // llvm.aarch64.crypto.sha1h
-    1, // llvm.aarch64.crypto.sha1m
-    1, // llvm.aarch64.crypto.sha1p
-    1, // llvm.aarch64.crypto.sha1su0
-    1, // llvm.aarch64.crypto.sha1su1
-    1, // llvm.aarch64.crypto.sha256h
-    1, // llvm.aarch64.crypto.sha256h2
-    1, // llvm.aarch64.crypto.sha256su0
-    1, // llvm.aarch64.crypto.sha256su1
-    3, // llvm.aarch64.dmb
-    3, // llvm.aarch64.dsb
-    3, // llvm.aarch64.hint
-    3, // llvm.aarch64.isb
-    3, // llvm.aarch64.ldaxp
-    3, // llvm.aarch64.ldaxr
-    3, // llvm.aarch64.ldxp
-    3, // llvm.aarch64.ldxr
-    1, // llvm.aarch64.neon.abs
-    1, // llvm.aarch64.neon.addhn
-    1, // llvm.aarch64.neon.addp
-    1, // llvm.aarch64.neon.cls
-    1, // llvm.aarch64.neon.fabd
-    1, // llvm.aarch64.neon.facge
-    1, // llvm.aarch64.neon.facgt
-    1, // llvm.aarch64.neon.faddv
-    1, // llvm.aarch64.neon.fcvtas
-    1, // llvm.aarch64.neon.fcvtau
-    1, // llvm.aarch64.neon.fcvtms
-    1, // llvm.aarch64.neon.fcvtmu
-    1, // llvm.aarch64.neon.fcvtns
-    1, // llvm.aarch64.neon.fcvtnu
-    1, // llvm.aarch64.neon.fcvtps
-    1, // llvm.aarch64.neon.fcvtpu
-    1, // llvm.aarch64.neon.fcvtxn
-    1, // llvm.aarch64.neon.fcvtzs
-    1, // llvm.aarch64.neon.fcvtzu
-    1, // llvm.aarch64.neon.fmax
-    1, // llvm.aarch64.neon.fmaxnm
-    1, // llvm.aarch64.neon.fmaxnmp
-    1, // llvm.aarch64.neon.fmaxnmv
-    1, // llvm.aarch64.neon.fmaxp
-    1, // llvm.aarch64.neon.fmaxv
-    1, // llvm.aarch64.neon.fmin
-    1, // llvm.aarch64.neon.fminnm
-    1, // llvm.aarch64.neon.fminnmp
-    1, // llvm.aarch64.neon.fminnmv
-    1, // llvm.aarch64.neon.fminp
-    1, // llvm.aarch64.neon.fminv
-    1, // llvm.aarch64.neon.fmulx
-    1, // llvm.aarch64.neon.frecpe
-    1, // llvm.aarch64.neon.frecps
-    1, // llvm.aarch64.neon.frecpx
-    1, // llvm.aarch64.neon.frintn
-    1, // llvm.aarch64.neon.frsqrte
-    1, // llvm.aarch64.neon.frsqrts
-    2, // llvm.aarch64.neon.ld1x2
-    2, // llvm.aarch64.neon.ld1x3
-    2, // llvm.aarch64.neon.ld1x4
-    2, // llvm.aarch64.neon.ld2
-    2, // llvm.aarch64.neon.ld2lane
-    2, // llvm.aarch64.neon.ld2r
-    2, // llvm.aarch64.neon.ld3
-    2, // llvm.aarch64.neon.ld3lane
-    2, // llvm.aarch64.neon.ld3r
-    2, // llvm.aarch64.neon.ld4
-    2, // llvm.aarch64.neon.ld4lane
-    2, // llvm.aarch64.neon.ld4r
-    1, // llvm.aarch64.neon.pmul
-    1, // llvm.aarch64.neon.pmull
-    1, // llvm.aarch64.neon.pmull64
-    1, // llvm.aarch64.neon.raddhn
-    1, // llvm.aarch64.neon.rbit
-    1, // llvm.aarch64.neon.rshrn
-    1, // llvm.aarch64.neon.rsubhn
-    1, // llvm.aarch64.neon.sabd
-    1, // llvm.aarch64.neon.saddlp
-    1, // llvm.aarch64.neon.saddlv
-    1, // llvm.aarch64.neon.saddv
-    1, // llvm.aarch64.neon.scalar.sqxtn
-    1, // llvm.aarch64.neon.scalar.sqxtun
-    1, // llvm.aarch64.neon.scalar.uqxtn
-    1, // llvm.aarch64.neon.shadd
-    1, // llvm.aarch64.neon.shll
-    1, // llvm.aarch64.neon.shsub
-    1, // llvm.aarch64.neon.smax
-    1, // llvm.aarch64.neon.smaxp
-    1, // llvm.aarch64.neon.smaxv
-    1, // llvm.aarch64.neon.smin
-    1, // llvm.aarch64.neon.sminp
-    1, // llvm.aarch64.neon.sminv
-    1, // llvm.aarch64.neon.smull
-    1, // llvm.aarch64.neon.sqabs
-    1, // llvm.aarch64.neon.sqadd
-    1, // llvm.aarch64.neon.sqdmulh
-    1, // llvm.aarch64.neon.sqdmull
-    1, // llvm.aarch64.neon.sqdmulls.scalar
-    1, // llvm.aarch64.neon.sqneg
-    1, // llvm.aarch64.neon.sqrdmulh
-    1, // llvm.aarch64.neon.sqrshl
-    1, // llvm.aarch64.neon.sqrshrn
-    1, // llvm.aarch64.neon.sqrshrun
-    1, // llvm.aarch64.neon.sqshl
-    1, // llvm.aarch64.neon.sqshlu
-    1, // llvm.aarch64.neon.sqshrn
-    1, // llvm.aarch64.neon.sqshrun
-    1, // llvm.aarch64.neon.sqsub
-    1, // llvm.aarch64.neon.sqxtn
-    1, // llvm.aarch64.neon.sqxtun
-    1, // llvm.aarch64.neon.srhadd
-    1, // llvm.aarch64.neon.srshl
-    1, // llvm.aarch64.neon.sshl
-    1, // llvm.aarch64.neon.sshll
-    19, // llvm.aarch64.neon.st1x2
-    28, // llvm.aarch64.neon.st1x3
-    29, // llvm.aarch64.neon.st1x4
-    19, // llvm.aarch64.neon.st2
-    28, // llvm.aarch64.neon.st2lane
-    28, // llvm.aarch64.neon.st3
-    29, // llvm.aarch64.neon.st3lane
-    29, // llvm.aarch64.neon.st4
-    30, // llvm.aarch64.neon.st4lane
-    1, // llvm.aarch64.neon.subhn
-    1, // llvm.aarch64.neon.suqadd
-    1, // llvm.aarch64.neon.tbl1
-    1, // llvm.aarch64.neon.tbl2
-    1, // llvm.aarch64.neon.tbl3
-    1, // llvm.aarch64.neon.tbl4
-    1, // llvm.aarch64.neon.tbx1
-    1, // llvm.aarch64.neon.tbx2
-    1, // llvm.aarch64.neon.tbx3
-    1, // llvm.aarch64.neon.tbx4
-    1, // llvm.aarch64.neon.uabd
-    1, // llvm.aarch64.neon.uaddlp
-    1, // llvm.aarch64.neon.uaddlv
-    1, // llvm.aarch64.neon.uaddv
-    1, // llvm.aarch64.neon.uhadd
-    1, // llvm.aarch64.neon.uhsub
-    1, // llvm.aarch64.neon.umax
-    1, // llvm.aarch64.neon.umaxp
-    1, // llvm.aarch64.neon.umaxv
-    1, // llvm.aarch64.neon.umin
-    1, // llvm.aarch64.neon.uminp
-    1, // llvm.aarch64.neon.uminv
-    1, // llvm.aarch64.neon.umull
-    1, // llvm.aarch64.neon.uqadd
-    1, // llvm.aarch64.neon.uqrshl
-    1, // llvm.aarch64.neon.uqrshrn
-    1, // llvm.aarch64.neon.uqshl
-    1, // llvm.aarch64.neon.uqshrn
-    1, // llvm.aarch64.neon.uqsub
-    1, // llvm.aarch64.neon.uqxtn
-    1, // llvm.aarch64.neon.urecpe
-    1, // llvm.aarch64.neon.urhadd
-    1, // llvm.aarch64.neon.urshl
-    1, // llvm.aarch64.neon.ursqrte
-    1, // llvm.aarch64.neon.ushl
-    1, // llvm.aarch64.neon.ushll
-    1, // llvm.aarch64.neon.usqadd
-    1, // llvm.aarch64.neon.vcopy.lane
-    1, // llvm.aarch64.neon.vcvtfp2fxs
-    1, // llvm.aarch64.neon.vcvtfp2fxu
-    1, // llvm.aarch64.neon.vcvtfp2hf
-    1, // llvm.aarch64.neon.vcvtfxs2fp
-    1, // llvm.aarch64.neon.vcvtfxu2fp
-    1, // llvm.aarch64.neon.vcvthf2fp
-    1, // llvm.aarch64.neon.vsli
-    1, // llvm.aarch64.neon.vsri
-    1, // llvm.aarch64.sdiv
-    1, // llvm.aarch64.sisd.fabd
-    1, // llvm.aarch64.sisd.fcvtxn
-    3, // llvm.aarch64.stlxp
-    3, // llvm.aarch64.stlxr
-    3, // llvm.aarch64.stxp
-    3, // llvm.aarch64.stxr
-    1, // llvm.aarch64.udiv
-    4, // llvm.amdgcn.alignbit
-    4, // llvm.amdgcn.alignbyte
-    18, // llvm.amdgcn.atomic.dec
-    18, // llvm.amdgcn.atomic.inc
-    31, // llvm.amdgcn.break
-    3, // llvm.amdgcn.buffer.atomic.add
-    3, // llvm.amdgcn.buffer.atomic.and
-    3, // llvm.amdgcn.buffer.atomic.cmpswap
-    3, // llvm.amdgcn.buffer.atomic.or
-    3, // llvm.amdgcn.buffer.atomic.smax
-    3, // llvm.amdgcn.buffer.atomic.smin
-    3, // llvm.amdgcn.buffer.atomic.sub
-    3, // llvm.amdgcn.buffer.atomic.swap
-    3, // llvm.amdgcn.buffer.atomic.umax
-    3, // llvm.amdgcn.buffer.atomic.umin
-    3, // llvm.amdgcn.buffer.atomic.xor
-    16, // llvm.amdgcn.buffer.load
-    16, // llvm.amdgcn.buffer.load.format
-    32, // llvm.amdgcn.buffer.store
-    32, // llvm.amdgcn.buffer.store.format
-    3, // llvm.amdgcn.buffer.wbinvl1
-    3, // llvm.amdgcn.buffer.wbinvl1.sc
-    3, // llvm.amdgcn.buffer.wbinvl1.vol
-    4, // llvm.amdgcn.class
-    4, // llvm.amdgcn.cos
-    4, // llvm.amdgcn.cubeid
-    4, // llvm.amdgcn.cubema
-    4, // llvm.amdgcn.cubesc
-    4, // llvm.amdgcn.cubetc
-    4, // llvm.amdgcn.cvt.pk.i16
-    4, // llvm.amdgcn.cvt.pk.u16
-    4, // llvm.amdgcn.cvt.pk.u8.f32
-    4, // llvm.amdgcn.cvt.pknorm.i16
-    4, // llvm.amdgcn.cvt.pknorm.u16
-    4, // llvm.amdgcn.cvt.pkrtz
-    4, // llvm.amdgcn.dispatch.id
-    4, // llvm.amdgcn.dispatch.ptr
-    4, // llvm.amdgcn.div.fixup
-    4, // llvm.amdgcn.div.fmas
-    4, // llvm.amdgcn.div.scale
-    31, // llvm.amdgcn.ds.bpermute
-    18, // llvm.amdgcn.ds.fadd
-    18, // llvm.amdgcn.ds.fmax
-    18, // llvm.amdgcn.ds.fmin
-    31, // llvm.amdgcn.ds.permute
-    31, // llvm.amdgcn.ds.swizzle
-    33, // llvm.amdgcn.else
-    31, // llvm.amdgcn.else.break
-    33, // llvm.amdgcn.end.cf
-    3, // llvm.amdgcn.exp
-    3, // llvm.amdgcn.exp.compr
-    31, // llvm.amdgcn.fcmp
-    4, // llvm.amdgcn.fdiv.fast
-    4, // llvm.amdgcn.fmed3
-    4, // llvm.amdgcn.fmul.legacy
-    4, // llvm.amdgcn.fract
-    4, // llvm.amdgcn.frexp.exp
-    4, // llvm.amdgcn.frexp.mant
-    4, // llvm.amdgcn.groupstaticsize
-    31, // llvm.amdgcn.icmp
-    33, // llvm.amdgcn.if
-    31, // llvm.amdgcn.if.break
-    3, // llvm.amdgcn.image.atomic.add
-    3, // llvm.amdgcn.image.atomic.and
-    3, // llvm.amdgcn.image.atomic.cmpswap
-    3, // llvm.amdgcn.image.atomic.dec
-    3, // llvm.amdgcn.image.atomic.inc
-    3, // llvm.amdgcn.image.atomic.or
-    3, // llvm.amdgcn.image.atomic.smax
-    3, // llvm.amdgcn.image.atomic.smin
-    3, // llvm.amdgcn.image.atomic.sub
-    3, // llvm.amdgcn.image.atomic.swap
-    3, // llvm.amdgcn.image.atomic.umax
-    3, // llvm.amdgcn.image.atomic.umin
-    3, // llvm.amdgcn.image.atomic.xor
-    16, // llvm.amdgcn.image.gather4
-    16, // llvm.amdgcn.image.gather4.b
-    16, // llvm.amdgcn.image.gather4.b.cl
-    16, // llvm.amdgcn.image.gather4.b.cl.o
-    16, // llvm.amdgcn.image.gather4.b.o
-    16, // llvm.amdgcn.image.gather4.c
-    16, // llvm.amdgcn.image.gather4.c.b
-    16, // llvm.amdgcn.image.gather4.c.b.cl
-    16, // llvm.amdgcn.image.gather4.c.b.cl.o
-    16, // llvm.amdgcn.image.gather4.c.b.o
-    16, // llvm.amdgcn.image.gather4.c.cl
-    16, // llvm.amdgcn.image.gather4.c.cl.o
-    16, // llvm.amdgcn.image.gather4.c.l
-    16, // llvm.amdgcn.image.gather4.c.l.o
-    16, // llvm.amdgcn.image.gather4.c.lz
-    16, // llvm.amdgcn.image.gather4.c.lz.o
-    16, // llvm.amdgcn.image.gather4.c.o
-    16, // llvm.amdgcn.image.gather4.cl
-    16, // llvm.amdgcn.image.gather4.cl.o
-    16, // llvm.amdgcn.image.gather4.l
-    16, // llvm.amdgcn.image.gather4.l.o
-    16, // llvm.amdgcn.image.gather4.lz
-    16, // llvm.amdgcn.image.gather4.lz.o
-    16, // llvm.amdgcn.image.gather4.o
-    1, // llvm.amdgcn.image.getlod
-    1, // llvm.amdgcn.image.getresinfo
-    16, // llvm.amdgcn.image.load
-    16, // llvm.amdgcn.image.load.mip
-    16, // llvm.amdgcn.image.sample
-    16, // llvm.amdgcn.image.sample.b
-    16, // llvm.amdgcn.image.sample.b.cl
-    16, // llvm.amdgcn.image.sample.b.cl.o
-    16, // llvm.amdgcn.image.sample.b.o
-    16, // llvm.amdgcn.image.sample.c
-    16, // llvm.amdgcn.image.sample.c.b
-    16, // llvm.amdgcn.image.sample.c.b.cl
-    16, // llvm.amdgcn.image.sample.c.b.cl.o
-    16, // llvm.amdgcn.image.sample.c.b.o
-    16, // llvm.amdgcn.image.sample.c.cd
-    16, // llvm.amdgcn.image.sample.c.cd.cl
-    16, // llvm.amdgcn.image.sample.c.cd.cl.o
-    16, // llvm.amdgcn.image.sample.c.cd.o
-    16, // llvm.amdgcn.image.sample.c.cl
-    16, // llvm.amdgcn.image.sample.c.cl.o
-    16, // llvm.amdgcn.image.sample.c.d
-    16, // llvm.amdgcn.image.sample.c.d.cl
-    16, // llvm.amdgcn.image.sample.c.d.cl.o
-    16, // llvm.amdgcn.image.sample.c.d.o
-    16, // llvm.amdgcn.image.sample.c.l
-    16, // llvm.amdgcn.image.sample.c.l.o
-    16, // llvm.amdgcn.image.sample.c.lz
-    16, // llvm.amdgcn.image.sample.c.lz.o
-    16, // llvm.amdgcn.image.sample.c.o
-    16, // llvm.amdgcn.image.sample.cd
-    16, // llvm.amdgcn.image.sample.cd.cl
-    16, // llvm.amdgcn.image.sample.cd.cl.o
-    16, // llvm.amdgcn.image.sample.cd.o
-    16, // llvm.amdgcn.image.sample.cl
-    16, // llvm.amdgcn.image.sample.cl.o
-    16, // llvm.amdgcn.image.sample.d
-    16, // llvm.amdgcn.image.sample.d.cl
-    16, // llvm.amdgcn.image.sample.d.cl.o
-    16, // llvm.amdgcn.image.sample.d.o
-    16, // llvm.amdgcn.image.sample.l
-    16, // llvm.amdgcn.image.sample.l.o
-    16, // llvm.amdgcn.image.sample.lz
-    16, // llvm.amdgcn.image.sample.lz.o
-    16, // llvm.amdgcn.image.sample.o
-    32, // llvm.amdgcn.image.store
-    32, // llvm.amdgcn.image.store.mip
-    4, // llvm.amdgcn.implicit.buffer.ptr
-    4, // llvm.amdgcn.implicitarg.ptr
-    33, // llvm.amdgcn.init.exec
-    33, // llvm.amdgcn.init.exec.from.input
-    4, // llvm.amdgcn.interp.mov
-    4, // llvm.amdgcn.interp.p1
-    4, // llvm.amdgcn.interp.p2
-    4, // llvm.amdgcn.kernarg.segment.ptr
-    3, // llvm.amdgcn.kill
-    4, // llvm.amdgcn.ldexp
-    4, // llvm.amdgcn.lerp
-    4, // llvm.amdgcn.log.clamp
-    33, // llvm.amdgcn.loop
-    1, // llvm.amdgcn.mbcnt.hi
-    1, // llvm.amdgcn.mbcnt.lo
-    31, // llvm.amdgcn.mov.dpp
-    4, // llvm.amdgcn.mqsad.pk.u16.u8
-    4, // llvm.amdgcn.mqsad.u32.u8
-    4, // llvm.amdgcn.msad.u8
-    1, // llvm.amdgcn.ps.live
-    4, // llvm.amdgcn.qsad.pk.u16.u8
-    4, // llvm.amdgcn.queue.ptr
-    4, // llvm.amdgcn.rcp
-    4, // llvm.amdgcn.rcp.legacy
-    31, // llvm.amdgcn.readfirstlane
-    31, // llvm.amdgcn.readlane
-    4, // llvm.amdgcn.rsq
-    4, // llvm.amdgcn.rsq.clamp
-    4, // llvm.amdgcn.rsq.legacy
-    33, // llvm.amdgcn.s.barrier
-    3, // llvm.amdgcn.s.dcache.inv
-    3, // llvm.amdgcn.s.dcache.inv.vol
-    3, // llvm.amdgcn.s.dcache.wb
-    3, // llvm.amdgcn.s.dcache.wb.vol
-    3, // llvm.amdgcn.s.decperflevel
-    4, // llvm.amdgcn.s.getpc
-    34, // llvm.amdgcn.s.getreg
-    3, // llvm.amdgcn.s.incperflevel
-    16, // llvm.amdgcn.s.memrealtime
-    16, // llvm.amdgcn.s.memtime
-    3, // llvm.amdgcn.s.sendmsg
-    3, // llvm.amdgcn.s.sendmsghalt
-    3, // llvm.amdgcn.s.sleep
-    3, // llvm.amdgcn.s.waitcnt
-    4, // llvm.amdgcn.sad.hi.u8
-    4, // llvm.amdgcn.sad.u16
-    4, // llvm.amdgcn.sad.u8
-    4, // llvm.amdgcn.sbfe
-    31, // llvm.amdgcn.set.inactive
-    4, // llvm.amdgcn.sffbh
-    4, // llvm.amdgcn.sin
-    16, // llvm.amdgcn.tbuffer.load
-    32, // llvm.amdgcn.tbuffer.store
-    4, // llvm.amdgcn.trig.preop
-    4, // llvm.amdgcn.ubfe
-    33, // llvm.amdgcn.unreachable
-    31, // llvm.amdgcn.update.dpp
-    33, // llvm.amdgcn.wave.barrier
-    4, // llvm.amdgcn.workgroup.id.x
-    4, // llvm.amdgcn.workgroup.id.y
-    4, // llvm.amdgcn.workgroup.id.z
-    4, // llvm.amdgcn.workitem.id.x
-    4, // llvm.amdgcn.workitem.id.y
-    4, // llvm.amdgcn.workitem.id.z
-    4, // llvm.amdgcn.wqm
-    31, // llvm.amdgcn.wqm.vote
-    31, // llvm.amdgcn.writelane
-    4, // llvm.amdgcn.wwm
-    3, // llvm.arm.cdp
-    3, // llvm.arm.cdp2
-    3, // llvm.arm.clrex
-    1, // llvm.arm.crc32b
-    1, // llvm.arm.crc32cb
-    1, // llvm.arm.crc32ch
-    1, // llvm.arm.crc32cw
-    1, // llvm.arm.crc32h
-    1, // llvm.arm.crc32w
-    3, // llvm.arm.dbg
-    3, // llvm.arm.dmb
-    3, // llvm.arm.dsb
-    3, // llvm.arm.get.fpscr
-    3, // llvm.arm.hint
-    3, // llvm.arm.isb
-    3, // llvm.arm.ldaex
-    3, // llvm.arm.ldaexd
-    3, // llvm.arm.ldc
-    3, // llvm.arm.ldc2
-    3, // llvm.arm.ldc2l
-    3, // llvm.arm.ldcl
-    3, // llvm.arm.ldrex
-    3, // llvm.arm.ldrexd
-    3, // llvm.arm.mcr
-    3, // llvm.arm.mcr2
-    3, // llvm.arm.mcrr
-    3, // llvm.arm.mcrr2
-    3, // llvm.arm.mrc
-    3, // llvm.arm.mrc2
-    3, // llvm.arm.mrrc
-    3, // llvm.arm.mrrc2
-    1, // llvm.arm.neon.aesd
-    1, // llvm.arm.neon.aese
-    1, // llvm.arm.neon.aesimc
-    1, // llvm.arm.neon.aesmc
-    1, // llvm.arm.neon.sha1c
-    1, // llvm.arm.neon.sha1h
-    1, // llvm.arm.neon.sha1m
-    1, // llvm.arm.neon.sha1p
-    1, // llvm.arm.neon.sha1su0
-    1, // llvm.arm.neon.sha1su1
-    1, // llvm.arm.neon.sha256h
-    1, // llvm.arm.neon.sha256h2
-    1, // llvm.arm.neon.sha256su0
-    1, // llvm.arm.neon.sha256su1
-    1, // llvm.arm.neon.vabds
-    1, // llvm.arm.neon.vabdu
-    1, // llvm.arm.neon.vabs
-    1, // llvm.arm.neon.vacge
-    1, // llvm.arm.neon.vacgt
-    1, // llvm.arm.neon.vbsl
-    1, // llvm.arm.neon.vcls
-    1, // llvm.arm.neon.vcvtas
-    1, // llvm.arm.neon.vcvtau
-    1, // llvm.arm.neon.vcvtfp2fxs
-    1, // llvm.arm.neon.vcvtfp2fxu
-    1, // llvm.arm.neon.vcvtfp2hf
-    1, // llvm.arm.neon.vcvtfxs2fp
-    1, // llvm.arm.neon.vcvtfxu2fp
-    1, // llvm.arm.neon.vcvthf2fp
-    1, // llvm.arm.neon.vcvtms
-    1, // llvm.arm.neon.vcvtmu
-    1, // llvm.arm.neon.vcvtns
-    1, // llvm.arm.neon.vcvtnu
-    1, // llvm.arm.neon.vcvtps
-    1, // llvm.arm.neon.vcvtpu
-    1, // llvm.arm.neon.vhadds
-    1, // llvm.arm.neon.vhaddu
-    1, // llvm.arm.neon.vhsubs
-    1, // llvm.arm.neon.vhsubu
-    2, // llvm.arm.neon.vld1
-    2, // llvm.arm.neon.vld2
-    2, // llvm.arm.neon.vld2lane
-    2, // llvm.arm.neon.vld3
-    2, // llvm.arm.neon.vld3lane
-    2, // llvm.arm.neon.vld4
-    2, // llvm.arm.neon.vld4lane
-    1, // llvm.arm.neon.vmaxnm
-    1, // llvm.arm.neon.vmaxs
-    1, // llvm.arm.neon.vmaxu
-    1, // llvm.arm.neon.vminnm
-    1, // llvm.arm.neon.vmins
-    1, // llvm.arm.neon.vminu
-    1, // llvm.arm.neon.vmullp
-    1, // llvm.arm.neon.vmulls
-    1, // llvm.arm.neon.vmullu
-    1, // llvm.arm.neon.vmulp
-    1, // llvm.arm.neon.vpadals
-    1, // llvm.arm.neon.vpadalu
-    1, // llvm.arm.neon.vpadd
-    1, // llvm.arm.neon.vpaddls
-    1, // llvm.arm.neon.vpaddlu
-    1, // llvm.arm.neon.vpmaxs
-    1, // llvm.arm.neon.vpmaxu
-    1, // llvm.arm.neon.vpmins
-    1, // llvm.arm.neon.vpminu
-    1, // llvm.arm.neon.vqabs
-    1, // llvm.arm.neon.vqadds
-    1, // llvm.arm.neon.vqaddu
-    1, // llvm.arm.neon.vqdmulh
-    1, // llvm.arm.neon.vqdmull
-    1, // llvm.arm.neon.vqmovns
-    1, // llvm.arm.neon.vqmovnsu
-    1, // llvm.arm.neon.vqmovnu
-    1, // llvm.arm.neon.vqneg
-    1, // llvm.arm.neon.vqrdmulh
-    1, // llvm.arm.neon.vqrshiftns
-    1, // llvm.arm.neon.vqrshiftnsu
-    1, // llvm.arm.neon.vqrshiftnu
-    1, // llvm.arm.neon.vqrshifts
-    1, // llvm.arm.neon.vqrshiftu
-    1, // llvm.arm.neon.vqshiftns
-    1, // llvm.arm.neon.vqshiftnsu
-    1, // llvm.arm.neon.vqshiftnu
-    1, // llvm.arm.neon.vqshifts
-    1, // llvm.arm.neon.vqshiftsu
-    1, // llvm.arm.neon.vqshiftu
-    1, // llvm.arm.neon.vqsubs
-    1, // llvm.arm.neon.vqsubu
-    1, // llvm.arm.neon.vraddhn
-    1, // llvm.arm.neon.vrecpe
-    1, // llvm.arm.neon.vrecps
-    1, // llvm.arm.neon.vrhadds
-    1, // llvm.arm.neon.vrhaddu
-    1, // llvm.arm.neon.vrinta
-    1, // llvm.arm.neon.vrintm
-    1, // llvm.arm.neon.vrintn
-    1, // llvm.arm.neon.vrintp
-    1, // llvm.arm.neon.vrintx
-    1, // llvm.arm.neon.vrintz
-    1, // llvm.arm.neon.vrshiftn
-    1, // llvm.arm.neon.vrshifts
-    1, // llvm.arm.neon.vrshiftu
-    1, // llvm.arm.neon.vrsqrte
-    1, // llvm.arm.neon.vrsqrts
-    1, // llvm.arm.neon.vrsubhn
-    1, // llvm.arm.neon.vshiftins
-    1, // llvm.arm.neon.vshifts
-    1, // llvm.arm.neon.vshiftu
-    21, // llvm.arm.neon.vst1
-    21, // llvm.arm.neon.vst2
-    21, // llvm.arm.neon.vst2lane
-    21, // llvm.arm.neon.vst3
-    21, // llvm.arm.neon.vst3lane
-    21, // llvm.arm.neon.vst4
-    21, // llvm.arm.neon.vst4lane
-    1, // llvm.arm.neon.vtbl1
-    1, // llvm.arm.neon.vtbl2
-    1, // llvm.arm.neon.vtbl3
-    1, // llvm.arm.neon.vtbl4
-    1, // llvm.arm.neon.vtbx1
-    1, // llvm.arm.neon.vtbx2
-    1, // llvm.arm.neon.vtbx3
-    1, // llvm.arm.neon.vtbx4
-    1, // llvm.arm.qadd
-    1, // llvm.arm.qadd16
-    1, // llvm.arm.qadd8
-    1, // llvm.arm.qasx
-    1, // llvm.arm.qsax
-    1, // llvm.arm.qsub
-    1, // llvm.arm.qsub16
-    1, // llvm.arm.qsub8
-    3, // llvm.arm.sadd16
-    3, // llvm.arm.sadd8
-    3, // llvm.arm.sasx
-    16, // llvm.arm.sel
-    3, // llvm.arm.set.fpscr
-    1, // llvm.arm.shadd16
-    1, // llvm.arm.shadd8
-    1, // llvm.arm.shasx
-    1, // llvm.arm.shsax
-    1, // llvm.arm.shsub16
-    1, // llvm.arm.shsub8
-    1, // llvm.arm.smlabb
-    1, // llvm.arm.smlabt
-    1, // llvm.arm.smlad
-    1, // llvm.arm.smladx
-    1, // llvm.arm.smlald
-    1, // llvm.arm.smlaldx
-    1, // llvm.arm.smlatb
-    1, // llvm.arm.smlatt
-    1, // llvm.arm.smlawb
-    1, // llvm.arm.smlawt
-    1, // llvm.arm.smlsd
-    1, // llvm.arm.smlsdx
-    1, // llvm.arm.smlsld
-    1, // llvm.arm.smlsldx
-    1, // llvm.arm.smuad
-    1, // llvm.arm.smuadx
-    1, // llvm.arm.smulbb
-    1, // llvm.arm.smulbt
-    1, // llvm.arm.smultb
-    1, // llvm.arm.smultt
-    1, // llvm.arm.smulwb
-    1, // llvm.arm.smulwt
-    1, // llvm.arm.smusd
-    1, // llvm.arm.smusdx
-    3, // llvm.arm.space
-    1, // llvm.arm.ssat
-    1, // llvm.arm.ssat16
-    3, // llvm.arm.ssax
-    3, // llvm.arm.ssub16
-    3, // llvm.arm.ssub8
-    3, // llvm.arm.stc
-    3, // llvm.arm.stc2
-    3, // llvm.arm.stc2l
-    3, // llvm.arm.stcl
-    3, // llvm.arm.stlex
-    3, // llvm.arm.stlexd
-    3, // llvm.arm.strex
-    3, // llvm.arm.strexd
-    1, // llvm.arm.sxtab16
-    1, // llvm.arm.sxtb16
-    3, // llvm.arm.uadd16
-    3, // llvm.arm.uadd8
-    3, // llvm.arm.uasx
-    1, // llvm.arm.uhadd16
-    1, // llvm.arm.uhadd8
-    1, // llvm.arm.uhasx
-    1, // llvm.arm.uhsax
-    1, // llvm.arm.uhsub16
-    1, // llvm.arm.uhsub8
-    3, // llvm.arm.undefined
-    1, // llvm.arm.uqadd16
-    1, // llvm.arm.uqadd8
-    1, // llvm.arm.uqasx
-    1, // llvm.arm.uqsax
-    1, // llvm.arm.uqsub16
-    1, // llvm.arm.uqsub8
-    1, // llvm.arm.usad8
-    1, // llvm.arm.usada8
-    1, // llvm.arm.usat
-    1, // llvm.arm.usat16
-    3, // llvm.arm.usax
-    3, // llvm.arm.usub16
-    3, // llvm.arm.usub8
-    1, // llvm.arm.uxtab16
-    1, // llvm.arm.uxtb16
-    1, // llvm.arm.vcvtr
-    1, // llvm.arm.vcvtru
-    16, // llvm.bpf.load.byte
-    16, // llvm.bpf.load.half
-    16, // llvm.bpf.load.word
-    3, // llvm.bpf.pseudo
-    1, // llvm.hexagon.A2.abs
-    1, // llvm.hexagon.A2.absp
-    1, // llvm.hexagon.A2.abssat
-    1, // llvm.hexagon.A2.add
-    1, // llvm.hexagon.A2.addh.h16.hh
-    1, // llvm.hexagon.A2.addh.h16.hl
-    1, // llvm.hexagon.A2.addh.h16.lh
-    1, // llvm.hexagon.A2.addh.h16.ll
-    1, // llvm.hexagon.A2.addh.h16.sat.hh
-    1, // llvm.hexagon.A2.addh.h16.sat.hl
-    1, // llvm.hexagon.A2.addh.h16.sat.lh
-    1, // llvm.hexagon.A2.addh.h16.sat.ll
-    1, // llvm.hexagon.A2.addh.l16.hl
-    1, // llvm.hexagon.A2.addh.l16.ll
-    1, // llvm.hexagon.A2.addh.l16.sat.hl
-    1, // llvm.hexagon.A2.addh.l16.sat.ll
-    1, // llvm.hexagon.A2.addi
-    1, // llvm.hexagon.A2.addp
-    1, // llvm.hexagon.A2.addpsat
-    1, // llvm.hexagon.A2.addsat
-    1, // llvm.hexagon.A2.addsp
-    1, // llvm.hexagon.A2.and
-    1, // llvm.hexagon.A2.andir
-    1, // llvm.hexagon.A2.andp
-    1, // llvm.hexagon.A2.aslh
-    1, // llvm.hexagon.A2.asrh
-    1, // llvm.hexagon.A2.combine.hh
-    1, // llvm.hexagon.A2.combine.hl
-    1, // llvm.hexagon.A2.combine.lh
-    1, // llvm.hexagon.A2.combine.ll
-    1, // llvm.hexagon.A2.combineii
-    1, // llvm.hexagon.A2.combinew
-    1, // llvm.hexagon.A2.max
-    1, // llvm.hexagon.A2.maxp
-    1, // llvm.hexagon.A2.maxu
-    1, // llvm.hexagon.A2.maxup
-    1, // llvm.hexagon.A2.min
-    1, // llvm.hexagon.A2.minp
-    1, // llvm.hexagon.A2.minu
-    1, // llvm.hexagon.A2.minup
-    1, // llvm.hexagon.A2.neg
-    1, // llvm.hexagon.A2.negp
-    1, // llvm.hexagon.A2.negsat
-    1, // llvm.hexagon.A2.not
-    1, // llvm.hexagon.A2.notp
-    1, // llvm.hexagon.A2.or
-    1, // llvm.hexagon.A2.orir
-    1, // llvm.hexagon.A2.orp
-    1, // llvm.hexagon.A2.roundsat
-    1, // llvm.hexagon.A2.sat
-    1, // llvm.hexagon.A2.satb
-    1, // llvm.hexagon.A2.sath
-    1, // llvm.hexagon.A2.satub
-    1, // llvm.hexagon.A2.satuh
-    1, // llvm.hexagon.A2.sub
-    1, // llvm.hexagon.A2.subh.h16.hh
-    1, // llvm.hexagon.A2.subh.h16.hl
-    1, // llvm.hexagon.A2.subh.h16.lh
-    1, // llvm.hexagon.A2.subh.h16.ll
-    1, // llvm.hexagon.A2.subh.h16.sat.hh
-    1, // llvm.hexagon.A2.subh.h16.sat.hl
-    1, // llvm.hexagon.A2.subh.h16.sat.lh
-    1, // llvm.hexagon.A2.subh.h16.sat.ll
-    1, // llvm.hexagon.A2.subh.l16.hl
-    1, // llvm.hexagon.A2.subh.l16.ll
-    1, // llvm.hexagon.A2.subh.l16.sat.hl
-    1, // llvm.hexagon.A2.subh.l16.sat.ll
-    1, // llvm.hexagon.A2.subp
-    1, // llvm.hexagon.A2.subri
-    1, // llvm.hexagon.A2.subsat
-    1, // llvm.hexagon.A2.svaddh
-    1, // llvm.hexagon.A2.svaddhs
-    1, // llvm.hexagon.A2.svadduhs
-    1, // llvm.hexagon.A2.svavgh
-    1, // llvm.hexagon.A2.svavghs
-    1, // llvm.hexagon.A2.svnavgh
-    1, // llvm.hexagon.A2.svsubh
-    1, // llvm.hexagon.A2.svsubhs
-    1, // llvm.hexagon.A2.svsubuhs
-    1, // llvm.hexagon.A2.swiz
-    1, // llvm.hexagon.A2.sxtb
-    1, // llvm.hexagon.A2.sxth
-    1, // llvm.hexagon.A2.sxtw
-    1, // llvm.hexagon.A2.tfr
-    1, // llvm.hexagon.A2.tfrih
-    1, // llvm.hexagon.A2.tfril
-    1, // llvm.hexagon.A2.tfrp
-    1, // llvm.hexagon.A2.tfrpi
-    1, // llvm.hexagon.A2.tfrsi
-    1, // llvm.hexagon.A2.vabsh
-    1, // llvm.hexagon.A2.vabshsat
-    1, // llvm.hexagon.A2.vabsw
-    1, // llvm.hexagon.A2.vabswsat
-    1, // llvm.hexagon.A2.vaddb.map
-    1, // llvm.hexagon.A2.vaddh
-    1, // llvm.hexagon.A2.vaddhs
-    1, // llvm.hexagon.A2.vaddub
-    1, // llvm.hexagon.A2.vaddubs
-    1, // llvm.hexagon.A2.vadduhs
-    1, // llvm.hexagon.A2.vaddw
-    1, // llvm.hexagon.A2.vaddws
-    1, // llvm.hexagon.A2.vavgh
-    1, // llvm.hexagon.A2.vavghcr
-    1, // llvm.hexagon.A2.vavghr
-    1, // llvm.hexagon.A2.vavgub
-    1, // llvm.hexagon.A2.vavgubr
-    1, // llvm.hexagon.A2.vavguh
-    1, // llvm.hexagon.A2.vavguhr
-    1, // llvm.hexagon.A2.vavguw
-    1, // llvm.hexagon.A2.vavguwr
-    1, // llvm.hexagon.A2.vavgw
-    1, // llvm.hexagon.A2.vavgwcr
-    1, // llvm.hexagon.A2.vavgwr
-    1, // llvm.hexagon.A2.vcmpbeq
-    1, // llvm.hexagon.A2.vcmpbgtu
-    1, // llvm.hexagon.A2.vcmpheq
-    1, // llvm.hexagon.A2.vcmphgt
-    1, // llvm.hexagon.A2.vcmphgtu
-    1, // llvm.hexagon.A2.vcmpweq
-    1, // llvm.hexagon.A2.vcmpwgt
-    1, // llvm.hexagon.A2.vcmpwgtu
-    1, // llvm.hexagon.A2.vconj
-    1, // llvm.hexagon.A2.vmaxb
-    1, // llvm.hexagon.A2.vmaxh
-    1, // llvm.hexagon.A2.vmaxub
-    1, // llvm.hexagon.A2.vmaxuh
-    1, // llvm.hexagon.A2.vmaxuw
-    1, // llvm.hexagon.A2.vmaxw
-    1, // llvm.hexagon.A2.vminb
-    1, // llvm.hexagon.A2.vminh
-    1, // llvm.hexagon.A2.vminub
-    1, // llvm.hexagon.A2.vminuh
-    1, // llvm.hexagon.A2.vminuw
-    1, // llvm.hexagon.A2.vminw
-    1, // llvm.hexagon.A2.vnavgh
-    1, // llvm.hexagon.A2.vnavghcr
-    1, // llvm.hexagon.A2.vnavghr
-    1, // llvm.hexagon.A2.vnavgw
-    1, // llvm.hexagon.A2.vnavgwcr
-    1, // llvm.hexagon.A2.vnavgwr
-    1, // llvm.hexagon.A2.vraddub
-    1, // llvm.hexagon.A2.vraddub.acc
-    1, // llvm.hexagon.A2.vrsadub
-    1, // llvm.hexagon.A2.vrsadub.acc
-    1, // llvm.hexagon.A2.vsubb.map
-    1, // llvm.hexagon.A2.vsubh
-    1, // llvm.hexagon.A2.vsubhs
-    1, // llvm.hexagon.A2.vsubub
-    1, // llvm.hexagon.A2.vsububs
-    1, // llvm.hexagon.A2.vsubuhs
-    1, // llvm.hexagon.A2.vsubw
-    1, // llvm.hexagon.A2.vsubws
-    1, // llvm.hexagon.A2.xor
-    1, // llvm.hexagon.A2.xorp
-    1, // llvm.hexagon.A2.zxtb
-    1, // llvm.hexagon.A2.zxth
-    1, // llvm.hexagon.A4.andn
-    1, // llvm.hexagon.A4.andnp
-    1, // llvm.hexagon.A4.bitsplit
-    1, // llvm.hexagon.A4.bitspliti
-    1, // llvm.hexagon.A4.boundscheck
-    1, // llvm.hexagon.A4.cmpbeq
-    1, // llvm.hexagon.A4.cmpbeqi
-    1, // llvm.hexagon.A4.cmpbgt
-    1, // llvm.hexagon.A4.cmpbgti
-    1, // llvm.hexagon.A4.cmpbgtu
-    1, // llvm.hexagon.A4.cmpbgtui
-    1, // llvm.hexagon.A4.cmpheq
-    1, // llvm.hexagon.A4.cmpheqi
-    1, // llvm.hexagon.A4.cmphgt
-    1, // llvm.hexagon.A4.cmphgti
-    1, // llvm.hexagon.A4.cmphgtu
-    1, // llvm.hexagon.A4.cmphgtui
-    1, // llvm.hexagon.A4.combineir
-    1, // llvm.hexagon.A4.combineri
-    1, // llvm.hexagon.A4.cround.ri
-    1, // llvm.hexagon.A4.cround.rr
-    1, // llvm.hexagon.A4.modwrapu
-    1, // llvm.hexagon.A4.orn
-    1, // llvm.hexagon.A4.ornp
-    1, // llvm.hexagon.A4.rcmpeq
-    1, // llvm.hexagon.A4.rcmpeqi
-    1, // llvm.hexagon.A4.rcmpneq
-    1, // llvm.hexagon.A4.rcmpneqi
-    1, // llvm.hexagon.A4.round.ri
-    1, // llvm.hexagon.A4.round.ri.sat
-    1, // llvm.hexagon.A4.round.rr
-    1, // llvm.hexagon.A4.round.rr.sat
-    1, // llvm.hexagon.A4.tlbmatch
-    1, // llvm.hexagon.A4.vcmpbeq.any
-    1, // llvm.hexagon.A4.vcmpbeqi
-    1, // llvm.hexagon.A4.vcmpbgt
-    1, // llvm.hexagon.A4.vcmpbgti
-    1, // llvm.hexagon.A4.vcmpbgtui
-    1, // llvm.hexagon.A4.vcmpheqi
-    1, // llvm.hexagon.A4.vcmphgti
-    1, // llvm.hexagon.A4.vcmphgtui
-    1, // llvm.hexagon.A4.vcmpweqi
-    1, // llvm.hexagon.A4.vcmpwgti
-    1, // llvm.hexagon.A4.vcmpwgtui
-    1, // llvm.hexagon.A4.vrmaxh
-    1, // llvm.hexagon.A4.vrmaxuh
-    1, // llvm.hexagon.A4.vrmaxuw
-    1, // llvm.hexagon.A4.vrmaxw
-    1, // llvm.hexagon.A4.vrminh
-    1, // llvm.hexagon.A4.vrminuh
-    1, // llvm.hexagon.A4.vrminuw
-    1, // llvm.hexagon.A4.vrminw
-    1, // llvm.hexagon.A5.vaddhubs
-    1, // llvm.hexagon.A6.vcmpbeq.notany
-    1, // llvm.hexagon.A6.vcmpbeq.notany.128B
-    1, // llvm.hexagon.C2.all8
-    1, // llvm.hexagon.C2.and
-    1, // llvm.hexagon.C2.andn
-    1, // llvm.hexagon.C2.any8
-    1, // llvm.hexagon.C2.bitsclr
-    1, // llvm.hexagon.C2.bitsclri
-    1, // llvm.hexagon.C2.bitsset
-    1, // llvm.hexagon.C2.cmpeq
-    1, // llvm.hexagon.C2.cmpeqi
-    1, // llvm.hexagon.C2.cmpeqp
-    1, // llvm.hexagon.C2.cmpgei
-    1, // llvm.hexagon.C2.cmpgeui
-    1, // llvm.hexagon.C2.cmpgt
-    1, // llvm.hexagon.C2.cmpgti
-    1, // llvm.hexagon.C2.cmpgtp
-    1, // llvm.hexagon.C2.cmpgtu
-    1, // llvm.hexagon.C2.cmpgtui
-    1, // llvm.hexagon.C2.cmpgtup
-    1, // llvm.hexagon.C2.cmplt
-    1, // llvm.hexagon.C2.cmpltu
-    1, // llvm.hexagon.C2.mask
-    1, // llvm.hexagon.C2.mux
-    1, // llvm.hexagon.C2.muxii
-    1, // llvm.hexagon.C2.muxir
-    1, // llvm.hexagon.C2.muxri
-    1, // llvm.hexagon.C2.not
-    1, // llvm.hexagon.C2.or
-    1, // llvm.hexagon.C2.orn
-    1, // llvm.hexagon.C2.pxfer.map
-    1, // llvm.hexagon.C2.tfrpr
-    1, // llvm.hexagon.C2.tfrrp
-    1, // llvm.hexagon.C2.vitpack
-    1, // llvm.hexagon.C2.vmux
-    1, // llvm.hexagon.C2.xor
-    1, // llvm.hexagon.C4.and.and
-    1, // llvm.hexagon.C4.and.andn
-    1, // llvm.hexagon.C4.and.or
-    1, // llvm.hexagon.C4.and.orn
-    1, // llvm.hexagon.C4.cmplte
-    1, // llvm.hexagon.C4.cmpltei
-    1, // llvm.hexagon.C4.cmplteu
-    1, // llvm.hexagon.C4.cmplteui
-    1, // llvm.hexagon.C4.cmpneq
-    1, // llvm.hexagon.C4.cmpneqi
-    1, // llvm.hexagon.C4.fastcorner9
-    1, // llvm.hexagon.C4.fastcorner9.not
-    1, // llvm.hexagon.C4.nbitsclr
-    1, // llvm.hexagon.C4.nbitsclri
-    1, // llvm.hexagon.C4.nbitsset
-    1, // llvm.hexagon.C4.or.and
-    1, // llvm.hexagon.C4.or.andn
-    1, // llvm.hexagon.C4.or.or
-    1, // llvm.hexagon.C4.or.orn
-    1, // llvm.hexagon.F2.conv.d2df
-    1, // llvm.hexagon.F2.conv.d2sf
-    1, // llvm.hexagon.F2.conv.df2d
-    1, // llvm.hexagon.F2.conv.df2d.chop
-    1, // llvm.hexagon.F2.conv.df2sf
-    1, // llvm.hexagon.F2.conv.df2ud
-    1, // llvm.hexagon.F2.conv.df2ud.chop
-    1, // llvm.hexagon.F2.conv.df2uw
-    1, // llvm.hexagon.F2.conv.df2uw.chop
-    1, // llvm.hexagon.F2.conv.df2w
-    1, // llvm.hexagon.F2.conv.df2w.chop
-    1, // llvm.hexagon.F2.conv.sf2d
-    1, // llvm.hexagon.F2.conv.sf2d.chop
-    1, // llvm.hexagon.F2.conv.sf2df
-    1, // llvm.hexagon.F2.conv.sf2ud
-    1, // llvm.hexagon.F2.conv.sf2ud.chop
-    1, // llvm.hexagon.F2.conv.sf2uw
-    1, // llvm.hexagon.F2.conv.sf2uw.chop
-    1, // llvm.hexagon.F2.conv.sf2w
-    1, // llvm.hexagon.F2.conv.sf2w.chop
-    1, // llvm.hexagon.F2.conv.ud2df
-    1, // llvm.hexagon.F2.conv.ud2sf
-    35, // llvm.hexagon.F2.conv.uw2df
-    35, // llvm.hexagon.F2.conv.uw2sf
-    35, // llvm.hexagon.F2.conv.w2df
-    35, // llvm.hexagon.F2.conv.w2sf
-    35, // llvm.hexagon.F2.dfclass
-    35, // llvm.hexagon.F2.dfcmpeq
-    35, // llvm.hexagon.F2.dfcmpge
-    35, // llvm.hexagon.F2.dfcmpgt
-    35, // llvm.hexagon.F2.dfcmpuo
-    35, // llvm.hexagon.F2.dfimm.n
-    35, // llvm.hexagon.F2.dfimm.p
-    35, // llvm.hexagon.F2.sfadd
-    35, // llvm.hexagon.F2.sfclass
-    35, // llvm.hexagon.F2.sfcmpeq
-    35, // llvm.hexagon.F2.sfcmpge
-    35, // llvm.hexagon.F2.sfcmpgt
-    35, // llvm.hexagon.F2.sfcmpuo
-    35, // llvm.hexagon.F2.sffixupd
-    35, // llvm.hexagon.F2.sffixupn
-    1, // llvm.hexagon.F2.sffixupr
-    35, // llvm.hexagon.F2.sffma
-    35, // llvm.hexagon.F2.sffma.lib
-    35, // llvm.hexagon.F2.sffma.sc
-    35, // llvm.hexagon.F2.sffms
-    35, // llvm.hexagon.F2.sffms.lib
-    35, // llvm.hexagon.F2.sfimm.n
-    35, // llvm.hexagon.F2.sfimm.p
-    35, // llvm.hexagon.F2.sfmax
-    35, // llvm.hexagon.F2.sfmin
-    35, // llvm.hexagon.F2.sfmpy
-    35, // llvm.hexagon.F2.sfsub
-    16, // llvm.hexagon.L2.loadrb.pbr
-    28, // llvm.hexagon.L2.loadrb.pci
-    19, // llvm.hexagon.L2.loadrb.pcr
-    16, // llvm.hexagon.L2.loadrd.pbr
-    28, // llvm.hexagon.L2.loadrd.pci
-    19, // llvm.hexagon.L2.loadrd.pcr
-    16, // llvm.hexagon.L2.loadrh.pbr
-    28, // llvm.hexagon.L2.loadrh.pci
-    19, // llvm.hexagon.L2.loadrh.pcr
-    16, // llvm.hexagon.L2.loadri.pbr
-    28, // llvm.hexagon.L2.loadri.pci
-    19, // llvm.hexagon.L2.loadri.pcr
-    16, // llvm.hexagon.L2.loadrub.pbr
-    28, // llvm.hexagon.L2.loadrub.pci
-    19, // llvm.hexagon.L2.loadrub.pcr
-    16, // llvm.hexagon.L2.loadruh.pbr
-    28, // llvm.hexagon.L2.loadruh.pci
-    19, // llvm.hexagon.L2.loadruh.pcr
-    18, // llvm.hexagon.L2.loadw.locked
-    18, // llvm.hexagon.L4.loadd.locked
-    1, // llvm.hexagon.M2.acci
-    1, // llvm.hexagon.M2.accii
-    1, // llvm.hexagon.M2.cmaci.s0
-    1, // llvm.hexagon.M2.cmacr.s0
-    1, // llvm.hexagon.M2.cmacs.s0
-    1, // llvm.hexagon.M2.cmacs.s1
-    1, // llvm.hexagon.M2.cmacsc.s0
-    1, // llvm.hexagon.M2.cmacsc.s1
-    1, // llvm.hexagon.M2.cmpyi.s0
-    1, // llvm.hexagon.M2.cmpyr.s0
-    1, // llvm.hexagon.M2.cmpyrs.s0
-    1, // llvm.hexagon.M2.cmpyrs.s1
-    1, // llvm.hexagon.M2.cmpyrsc.s0
-    1, // llvm.hexagon.M2.cmpyrsc.s1
-    1, // llvm.hexagon.M2.cmpys.s0
-    1, // llvm.hexagon.M2.cmpys.s1
-    1, // llvm.hexagon.M2.cmpysc.s0
-    1, // llvm.hexagon.M2.cmpysc.s1
-    1, // llvm.hexagon.M2.cnacs.s0
-    1, // llvm.hexagon.M2.cnacs.s1
-    1, // llvm.hexagon.M2.cnacsc.s0
-    1, // llvm.hexagon.M2.cnacsc.s1
-    1, // llvm.hexagon.M2.dpmpyss.acc.s0
-    1, // llvm.hexagon.M2.dpmpyss.nac.s0
-    1, // llvm.hexagon.M2.dpmpyss.rnd.s0
-    1, // llvm.hexagon.M2.dpmpyss.s0
-    1, // llvm.hexagon.M2.dpmpyuu.acc.s0
-    1, // llvm.hexagon.M2.dpmpyuu.nac.s0
-    1, // llvm.hexagon.M2.dpmpyuu.s0
-    1, // llvm.hexagon.M2.hmmpyh.rs1
-    1, // llvm.hexagon.M2.hmmpyh.s1
-    1, // llvm.hexagon.M2.hmmpyl.rs1
-    1, // llvm.hexagon.M2.hmmpyl.s1
-    1, // llvm.hexagon.M2.maci
-    1, // llvm.hexagon.M2.macsin
-    1, // llvm.hexagon.M2.macsip
-    1, // llvm.hexagon.M2.mmachs.rs0
-    1, // llvm.hexagon.M2.mmachs.rs1
-    1, // llvm.hexagon.M2.mmachs.s0
-    1, // llvm.hexagon.M2.mmachs.s1
-    1, // llvm.hexagon.M2.mmacls.rs0
-    1, // llvm.hexagon.M2.mmacls.rs1
-    1, // llvm.hexagon.M2.mmacls.s0
-    1, // llvm.hexagon.M2.mmacls.s1
-    1, // llvm.hexagon.M2.mmacuhs.rs0
-    1, // llvm.hexagon.M2.mmacuhs.rs1
-    1, // llvm.hexagon.M2.mmacuhs.s0
-    1, // llvm.hexagon.M2.mmacuhs.s1
-    1, // llvm.hexagon.M2.mmaculs.rs0
-    1, // llvm.hexagon.M2.mmaculs.rs1
-    1, // llvm.hexagon.M2.mmaculs.s0
-    1, // llvm.hexagon.M2.mmaculs.s1
-    1, // llvm.hexagon.M2.mmpyh.rs0
-    1, // llvm.hexagon.M2.mmpyh.rs1
-    1, // llvm.hexagon.M2.mmpyh.s0
-    1, // llvm.hexagon.M2.mmpyh.s1
-    1, // llvm.hexagon.M2.mmpyl.rs0
-    1, // llvm.hexagon.M2.mmpyl.rs1
-    1, // llvm.hexagon.M2.mmpyl.s0
-    1, // llvm.hexagon.M2.mmpyl.s1
-    1, // llvm.hexagon.M2.mmpyuh.rs0
-    1, // llvm.hexagon.M2.mmpyuh.rs1
-    1, // llvm.hexagon.M2.mmpyuh.s0
-    1, // llvm.hexagon.M2.mmpyuh.s1
-    1, // llvm.hexagon.M2.mmpyul.rs0
-    1, // llvm.hexagon.M2.mmpyul.rs1
-    1, // llvm.hexagon.M2.mmpyul.s0
-    1, // llvm.hexagon.M2.mmpyul.s1
-    1, // llvm.hexagon.M2.mpy.acc.hh.s0
-    1, // llvm.hexagon.M2.mpy.acc.hh.s1
-    1, // llvm.hexagon.M2.mpy.acc.hl.s0
-    1, // llvm.hexagon.M2.mpy.acc.hl.s1
-    1, // llvm.hexagon.M2.mpy.acc.lh.s0
-    1, // llvm.hexagon.M2.mpy.acc.lh.s1
-    1, // llvm.hexagon.M2.mpy.acc.ll.s0
-    1, // llvm.hexagon.M2.mpy.acc.ll.s1
-    1, // llvm.hexagon.M2.mpy.acc.sat.hh.s0
-    1, // llvm.hexagon.M2.mpy.acc.sat.hh.s1
-    1, // llvm.hexagon.M2.mpy.acc.sat.hl.s0
-    1, // llvm.hexagon.M2.mpy.acc.sat.hl.s1
-    1, // llvm.hexagon.M2.mpy.acc.sat.lh.s0
-    1, // llvm.hexagon.M2.mpy.acc.sat.lh.s1
-    1, // llvm.hexagon.M2.mpy.acc.sat.ll.s0
-    1, // llvm.hexagon.M2.mpy.acc.sat.ll.s1
-    1, // llvm.hexagon.M2.mpy.hh.s0
-    1, // llvm.hexagon.M2.mpy.hh.s1
-    1, // llvm.hexagon.M2.mpy.hl.s0
-    1, // llvm.hexagon.M2.mpy.hl.s1
-    1, // llvm.hexagon.M2.mpy.lh.s0
-    1, // llvm.hexagon.M2.mpy.lh.s1
-    1, // llvm.hexagon.M2.mpy.ll.s0
-    1, // llvm.hexagon.M2.mpy.ll.s1
-    1, // llvm.hexagon.M2.mpy.nac.hh.s0
-    1, // llvm.hexagon.M2.mpy.nac.hh.s1
-    1, // llvm.hexagon.M2.mpy.nac.hl.s0
-    1, // llvm.hexagon.M2.mpy.nac.hl.s1
-    1, // llvm.hexagon.M2.mpy.nac.lh.s0
-    1, // llvm.hexagon.M2.mpy.nac.lh.s1
-    1, // llvm.hexagon.M2.mpy.nac.ll.s0
-    1, // llvm.hexagon.M2.mpy.nac.ll.s1
-    1, // llvm.hexagon.M2.mpy.nac.sat.hh.s0
-    1, // llvm.hexagon.M2.mpy.nac.sat.hh.s1
-    1, // llvm.hexagon.M2.mpy.nac.sat.hl.s0
-    1, // llvm.hexagon.M2.mpy.nac.sat.hl.s1
-    1, // llvm.hexagon.M2.mpy.nac.sat.lh.s0
-    1, // llvm.hexagon.M2.mpy.nac.sat.lh.s1
-    1, // llvm.hexagon.M2.mpy.nac.sat.ll.s0
-    1, // llvm.hexagon.M2.mpy.nac.sat.ll.s1
-    1, // llvm.hexagon.M2.mpy.rnd.hh.s0
-    1, // llvm.hexagon.M2.mpy.rnd.hh.s1
-    1, // llvm.hexagon.M2.mpy.rnd.hl.s0
-    1, // llvm.hexagon.M2.mpy.rnd.hl.s1
-    1, // llvm.hexagon.M2.mpy.rnd.lh.s0
-    1, // llvm.hexagon.M2.mpy.rnd.lh.s1
-    1, // llvm.hexagon.M2.mpy.rnd.ll.s0
-    1, // llvm.hexagon.M2.mpy.rnd.ll.s1
-    1, // llvm.hexagon.M2.mpy.sat.hh.s0
-    1, // llvm.hexagon.M2.mpy.sat.hh.s1
-    1, // llvm.hexagon.M2.mpy.sat.hl.s0
-    1, // llvm.hexagon.M2.mpy.sat.hl.s1
-    1, // llvm.hexagon.M2.mpy.sat.lh.s0
-    1, // llvm.hexagon.M2.mpy.sat.lh.s1
-    1, // llvm.hexagon.M2.mpy.sat.ll.s0
-    1, // llvm.hexagon.M2.mpy.sat.ll.s1
-    1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
-    1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
-    1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
-    1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
-    1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
-    1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
-    1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
-    1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
-    1, // llvm.hexagon.M2.mpy.up
-    1, // llvm.hexagon.M2.mpy.up.s1
-    1, // llvm.hexagon.M2.mpy.up.s1.sat
-    1, // llvm.hexagon.M2.mpyd.acc.hh.s0
-    1, // llvm.hexagon.M2.mpyd.acc.hh.s1
-    1, // llvm.hexagon.M2.mpyd.acc.hl.s0
-    1, // llvm.hexagon.M2.mpyd.acc.hl.s1
-    1, // llvm.hexagon.M2.mpyd.acc.lh.s0
-    1, // llvm.hexagon.M2.mpyd.acc.lh.s1
-    1, // llvm.hexagon.M2.mpyd.acc.ll.s0
-    1, // llvm.hexagon.M2.mpyd.acc.ll.s1
-    1, // llvm.hexagon.M2.mpyd.hh.s0
-    1, // llvm.hexagon.M2.mpyd.hh.s1
-    1, // llvm.hexagon.M2.mpyd.hl.s0
-    1, // llvm.hexagon.M2.mpyd.hl.s1
-    1, // llvm.hexagon.M2.mpyd.lh.s0
-    1, // llvm.hexagon.M2.mpyd.lh.s1
-    1, // llvm.hexagon.M2.mpyd.ll.s0
-    1, // llvm.hexagon.M2.mpyd.ll.s1
-    1, // llvm.hexagon.M2.mpyd.nac.hh.s0
-    1, // llvm.hexagon.M2.mpyd.nac.hh.s1
-    1, // llvm.hexagon.M2.mpyd.nac.hl.s0
-    1, // llvm.hexagon.M2.mpyd.nac.hl.s1
-    1, // llvm.hexagon.M2.mpyd.nac.lh.s0
-    1, // llvm.hexagon.M2.mpyd.nac.lh.s1
-    1, // llvm.hexagon.M2.mpyd.nac.ll.s0
-    1, // llvm.hexagon.M2.mpyd.nac.ll.s1
-    1, // llvm.hexagon.M2.mpyd.rnd.hh.s0
-    1, // llvm.hexagon.M2.mpyd.rnd.hh.s1
-    1, // llvm.hexagon.M2.mpyd.rnd.hl.s0
-    1, // llvm.hexagon.M2.mpyd.rnd.hl.s1
-    1, // llvm.hexagon.M2.mpyd.rnd.lh.s0
-    1, // llvm.hexagon.M2.mpyd.rnd.lh.s1
-    1, // llvm.hexagon.M2.mpyd.rnd.ll.s0
-    1, // llvm.hexagon.M2.mpyd.rnd.ll.s1
-    1, // llvm.hexagon.M2.mpyi
-    1, // llvm.hexagon.M2.mpysmi
-    1, // llvm.hexagon.M2.mpysu.up
-    1, // llvm.hexagon.M2.mpyu.acc.hh.s0
-    1, // llvm.hexagon.M2.mpyu.acc.hh.s1
-    1, // llvm.hexagon.M2.mpyu.acc.hl.s0
-    1, // llvm.hexagon.M2.mpyu.acc.hl.s1
-    1, // llvm.hexagon.M2.mpyu.acc.lh.s0
-    1, // llvm.hexagon.M2.mpyu.acc.lh.s1
-    1, // llvm.hexagon.M2.mpyu.acc.ll.s0
-    1, // llvm.hexagon.M2.mpyu.acc.ll.s1
-    1, // llvm.hexagon.M2.mpyu.hh.s0
-    1, // llvm.hexagon.M2.mpyu.hh.s1
-    1, // llvm.hexagon.M2.mpyu.hl.s0
-    1, // llvm.hexagon.M2.mpyu.hl.s1
-    1, // llvm.hexagon.M2.mpyu.lh.s0
-    1, // llvm.hexagon.M2.mpyu.lh.s1
-    1, // llvm.hexagon.M2.mpyu.ll.s0
-    1, // llvm.hexagon.M2.mpyu.ll.s1
-    1, // llvm.hexagon.M2.mpyu.nac.hh.s0
-    1, // llvm.hexagon.M2.mpyu.nac.hh.s1
-    1, // llvm.hexagon.M2.mpyu.nac.hl.s0
-    1, // llvm.hexagon.M2.mpyu.nac.hl.s1
-    1, // llvm.hexagon.M2.mpyu.nac.lh.s0
-    1, // llvm.hexagon.M2.mpyu.nac.lh.s1
-    1, // llvm.hexagon.M2.mpyu.nac.ll.s0
-    1, // llvm.hexagon.M2.mpyu.nac.ll.s1
-    1, // llvm.hexagon.M2.mpyu.up
-    1, // llvm.hexagon.M2.mpyud.acc.hh.s0
-    1, // llvm.hexagon.M2.mpyud.acc.hh.s1
-    1, // llvm.hexagon.M2.mpyud.acc.hl.s0
-    1, // llvm.hexagon.M2.mpyud.acc.hl.s1
-    1, // llvm.hexagon.M2.mpyud.acc.lh.s0
-    1, // llvm.hexagon.M2.mpyud.acc.lh.s1
-    1, // llvm.hexagon.M2.mpyud.acc.ll.s0
-    1, // llvm.hexagon.M2.mpyud.acc.ll.s1
-    1, // llvm.hexagon.M2.mpyud.hh.s0
-    1, // llvm.hexagon.M2.mpyud.hh.s1
-    1, // llvm.hexagon.M2.mpyud.hl.s0
-    1, // llvm.hexagon.M2.mpyud.hl.s1
-    1, // llvm.hexagon.M2.mpyud.lh.s0
-    1, // llvm.hexagon.M2.mpyud.lh.s1
-    1, // llvm.hexagon.M2.mpyud.ll.s0
-    1, // llvm.hexagon.M2.mpyud.ll.s1
-    1, // llvm.hexagon.M2.mpyud.nac.hh.s0
-    1, // llvm.hexagon.M2.mpyud.nac.hh.s1
-    1, // llvm.hexagon.M2.mpyud.nac.hl.s0
-    1, // llvm.hexagon.M2.mpyud.nac.hl.s1
-    1, // llvm.hexagon.M2.mpyud.nac.lh.s0
-    1, // llvm.hexagon.M2.mpyud.nac.lh.s1
-    1, // llvm.hexagon.M2.mpyud.nac.ll.s0
-    1, // llvm.hexagon.M2.mpyud.nac.ll.s1
-    1, // llvm.hexagon.M2.mpyui
-    1, // llvm.hexagon.M2.nacci
-    1, // llvm.hexagon.M2.naccii
-    1, // llvm.hexagon.M2.subacc
-    1, // llvm.hexagon.M2.vabsdiffh
-    1, // llvm.hexagon.M2.vabsdiffw
-    1, // llvm.hexagon.M2.vcmac.s0.sat.i
-    1, // llvm.hexagon.M2.vcmac.s0.sat.r
-    1, // llvm.hexagon.M2.vcmpy.s0.sat.i
-    1, // llvm.hexagon.M2.vcmpy.s0.sat.r
-    1, // llvm.hexagon.M2.vcmpy.s1.sat.i
-    1, // llvm.hexagon.M2.vcmpy.s1.sat.r
-    1, // llvm.hexagon.M2.vdmacs.s0
-    1, // llvm.hexagon.M2.vdmacs.s1
-    1, // llvm.hexagon.M2.vdmpyrs.s0
-    1, // llvm.hexagon.M2.vdmpyrs.s1
-    1, // llvm.hexagon.M2.vdmpys.s0
-    1, // llvm.hexagon.M2.vdmpys.s1
-    1, // llvm.hexagon.M2.vmac2
-    1, // llvm.hexagon.M2.vmac2es
-    1, // llvm.hexagon.M2.vmac2es.s0
-    1, // llvm.hexagon.M2.vmac2es.s1
-    1, // llvm.hexagon.M2.vmac2s.s0
-    1, // llvm.hexagon.M2.vmac2s.s1
-    1, // llvm.hexagon.M2.vmac2su.s0
-    1, // llvm.hexagon.M2.vmac2su.s1
-    1, // llvm.hexagon.M2.vmpy2es.s0
-    1, // llvm.hexagon.M2.vmpy2es.s1
-    1, // llvm.hexagon.M2.vmpy2s.s0
-    1, // llvm.hexagon.M2.vmpy2s.s0pack
-    1, // llvm.hexagon.M2.vmpy2s.s1
-    1, // llvm.hexagon.M2.vmpy2s.s1pack
-    1, // llvm.hexagon.M2.vmpy2su.s0
-    1, // llvm.hexagon.M2.vmpy2su.s1
-    1, // llvm.hexagon.M2.vraddh
-    1, // llvm.hexagon.M2.vradduh
-    1, // llvm.hexagon.M2.vrcmaci.s0
-    1, // llvm.hexagon.M2.vrcmaci.s0c
-    1, // llvm.hexagon.M2.vrcmacr.s0
-    1, // llvm.hexagon.M2.vrcmacr.s0c
-    1, // llvm.hexagon.M2.vrcmpyi.s0
-    1, // llvm.hexagon.M2.vrcmpyi.s0c
-    1, // llvm.hexagon.M2.vrcmpyr.s0
-    1, // llvm.hexagon.M2.vrcmpyr.s0c
-    1, // llvm.hexagon.M2.vrcmpys.acc.s1
-    1, // llvm.hexagon.M2.vrcmpys.s1
-    1, // llvm.hexagon.M2.vrcmpys.s1rp
-    1, // llvm.hexagon.M2.vrmac.s0
-    1, // llvm.hexagon.M2.vrmpy.s0
-    1, // llvm.hexagon.M2.xor.xacc
-    1, // llvm.hexagon.M4.and.and
-    1, // llvm.hexagon.M4.and.andn
-    1, // llvm.hexagon.M4.and.or
-    1, // llvm.hexagon.M4.and.xor
-    1, // llvm.hexagon.M4.cmpyi.wh
-    1, // llvm.hexagon.M4.cmpyi.whc
-    1, // llvm.hexagon.M4.cmpyr.wh
-    1, // llvm.hexagon.M4.cmpyr.whc
-    1, // llvm.hexagon.M4.mac.up.s1.sat
-    1, // llvm.hexagon.M4.mpyri.addi
-    1, // llvm.hexagon.M4.mpyri.addr
-    1, // llvm.hexagon.M4.mpyri.addr.u2
-    1, // llvm.hexagon.M4.mpyrr.addi
-    1, // llvm.hexagon.M4.mpyrr.addr
-    1, // llvm.hexagon.M4.nac.up.s1.sat
-    1, // llvm.hexagon.M4.or.and
-    1, // llvm.hexagon.M4.or.andn
-    1, // llvm.hexagon.M4.or.or
-    1, // llvm.hexagon.M4.or.xor
-    1, // llvm.hexagon.M4.pmpyw
-    1, // llvm.hexagon.M4.pmpyw.acc
-    1, // llvm.hexagon.M4.vpmpyh
-    1, // llvm.hexagon.M4.vpmpyh.acc
-    1, // llvm.hexagon.M4.vrmpyeh.acc.s0
-    1, // llvm.hexagon.M4.vrmpyeh.acc.s1
-    1, // llvm.hexagon.M4.vrmpyeh.s0
-    1, // llvm.hexagon.M4.vrmpyeh.s1
-    1, // llvm.hexagon.M4.vrmpyoh.acc.s0
-    1, // llvm.hexagon.M4.vrmpyoh.acc.s1
-    1, // llvm.hexagon.M4.vrmpyoh.s0
-    1, // llvm.hexagon.M4.vrmpyoh.s1
-    1, // llvm.hexagon.M4.xor.and
-    1, // llvm.hexagon.M4.xor.andn
-    1, // llvm.hexagon.M4.xor.or
-    1, // llvm.hexagon.M4.xor.xacc
-    1, // llvm.hexagon.M5.vdmacbsu
-    1, // llvm.hexagon.M5.vdmpybsu
-    1, // llvm.hexagon.M5.vmacbsu
-    1, // llvm.hexagon.M5.vmacbuu
-    1, // llvm.hexagon.M5.vmpybsu
-    1, // llvm.hexagon.M5.vmpybuu
-    1, // llvm.hexagon.M5.vrmacbsu
-    1, // llvm.hexagon.M5.vrmacbuu
-    1, // llvm.hexagon.M5.vrmpybsu
-    1, // llvm.hexagon.M5.vrmpybuu
-    1, // llvm.hexagon.M6.vabsdiffb
-    1, // llvm.hexagon.M6.vabsdiffub
-    1, // llvm.hexagon.S2.addasl.rrri
-    1, // llvm.hexagon.S2.asl.i.p
-    1, // llvm.hexagon.S2.asl.i.p.acc
-    1, // llvm.hexagon.S2.asl.i.p.and
-    1, // llvm.hexagon.S2.asl.i.p.nac
-    1, // llvm.hexagon.S2.asl.i.p.or
-    1, // llvm.hexagon.S2.asl.i.p.xacc
-    1, // llvm.hexagon.S2.asl.i.r
-    1, // llvm.hexagon.S2.asl.i.r.acc
-    1, // llvm.hexagon.S2.asl.i.r.and
-    1, // llvm.hexagon.S2.asl.i.r.nac
-    1, // llvm.hexagon.S2.asl.i.r.or
-    1, // llvm.hexagon.S2.asl.i.r.sat
-    1, // llvm.hexagon.S2.asl.i.r.xacc
-    1, // llvm.hexagon.S2.asl.i.vh
-    1, // llvm.hexagon.S2.asl.i.vw
-    1, // llvm.hexagon.S2.asl.r.p
-    1, // llvm.hexagon.S2.asl.r.p.acc
-    1, // llvm.hexagon.S2.asl.r.p.and
-    1, // llvm.hexagon.S2.asl.r.p.nac
-    1, // llvm.hexagon.S2.asl.r.p.or
-    1, // llvm.hexagon.S2.asl.r.p.xor
-    1, // llvm.hexagon.S2.asl.r.r
-    1, // llvm.hexagon.S2.asl.r.r.acc
-    1, // llvm.hexagon.S2.asl.r.r.and
-    1, // llvm.hexagon.S2.asl.r.r.nac
-    1, // llvm.hexagon.S2.asl.r.r.or
-    1, // llvm.hexagon.S2.asl.r.r.sat
-    1, // llvm.hexagon.S2.asl.r.vh
-    1, // llvm.hexagon.S2.asl.r.vw
-    1, // llvm.hexagon.S2.asr.i.p
-    1, // llvm.hexagon.S2.asr.i.p.acc
-    1, // llvm.hexagon.S2.asr.i.p.and
-    1, // llvm.hexagon.S2.asr.i.p.nac
-    1, // llvm.hexagon.S2.asr.i.p.or
-    1, // llvm.hexagon.S2.asr.i.p.rnd
-    1, // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
-    1, // llvm.hexagon.S2.asr.i.r
-    1, // llvm.hexagon.S2.asr.i.r.acc
-    1, // llvm.hexagon.S2.asr.i.r.and
-    1, // llvm.hexagon.S2.asr.i.r.nac
-    1, // llvm.hexagon.S2.asr.i.r.or
-    1, // llvm.hexagon.S2.asr.i.r.rnd
-    1, // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
-    1, // llvm.hexagon.S2.asr.i.svw.trun
-    1, // llvm.hexagon.S2.asr.i.vh
-    1, // llvm.hexagon.S2.asr.i.vw
-    1, // llvm.hexagon.S2.asr.r.p
-    1, // llvm.hexagon.S2.asr.r.p.acc
-    1, // llvm.hexagon.S2.asr.r.p.and
-    1, // llvm.hexagon.S2.asr.r.p.nac
-    1, // llvm.hexagon.S2.asr.r.p.or
-    1, // llvm.hexagon.S2.asr.r.p.xor
-    1, // llvm.hexagon.S2.asr.r.r
-    1, // llvm.hexagon.S2.asr.r.r.acc
-    1, // llvm.hexagon.S2.asr.r.r.and
-    1, // llvm.hexagon.S2.asr.r.r.nac
-    1, // llvm.hexagon.S2.asr.r.r.or
-    1, // llvm.hexagon.S2.asr.r.r.sat
-    1, // llvm.hexagon.S2.asr.r.svw.trun
-    1, // llvm.hexagon.S2.asr.r.vh
-    1, // llvm.hexagon.S2.asr.r.vw
-    1, // llvm.hexagon.S2.brev
-    1, // llvm.hexagon.S2.brevp
-    1, // llvm.hexagon.S2.cabacencbin
-    1, // llvm.hexagon.S2.cl0
-    1, // llvm.hexagon.S2.cl0p
-    1, // llvm.hexagon.S2.cl1
-    1, // llvm.hexagon.S2.cl1p
-    1, // llvm.hexagon.S2.clb
-    1, // llvm.hexagon.S2.clbnorm
-    1, // llvm.hexagon.S2.clbp
-    1, // llvm.hexagon.S2.clrbit.i
-    1, // llvm.hexagon.S2.clrbit.r
-    1, // llvm.hexagon.S2.ct0
-    1, // llvm.hexagon.S2.ct0p
-    1, // llvm.hexagon.S2.ct1
-    1, // llvm.hexagon.S2.ct1p
-    1, // llvm.hexagon.S2.deinterleave
-    1, // llvm.hexagon.S2.extractu
-    1, // llvm.hexagon.S2.extractu.rp
-    1, // llvm.hexagon.S2.extractup
-    1, // llvm.hexagon.S2.extractup.rp
-    1, // llvm.hexagon.S2.insert
-    1, // llvm.hexagon.S2.insert.rp
-    1, // llvm.hexagon.S2.insertp
-    1, // llvm.hexagon.S2.insertp.rp
-    1, // llvm.hexagon.S2.interleave
-    1, // llvm.hexagon.S2.lfsp
-    1, // llvm.hexagon.S2.lsl.r.p
-    1, // llvm.hexagon.S2.lsl.r.p.acc
-    1, // llvm.hexagon.S2.lsl.r.p.and
-    1, // llvm.hexagon.S2.lsl.r.p.nac
-    1, // llvm.hexagon.S2.lsl.r.p.or
-    1, // llvm.hexagon.S2.lsl.r.p.xor
-    1, // llvm.hexagon.S2.lsl.r.r
-    1, // llvm.hexagon.S2.lsl.r.r.acc
-    1, // llvm.hexagon.S2.lsl.r.r.and
-    1, // llvm.hexagon.S2.lsl.r.r.nac
-    1, // llvm.hexagon.S2.lsl.r.r.or
-    1, // llvm.hexagon.S2.lsl.r.vh
-    1, // llvm.hexagon.S2.lsl.r.vw
-    1, // llvm.hexagon.S2.lsr.i.p
-    1, // llvm.hexagon.S2.lsr.i.p.acc
-    1, // llvm.hexagon.S2.lsr.i.p.and
-    1, // llvm.hexagon.S2.lsr.i.p.nac
-    1, // llvm.hexagon.S2.lsr.i.p.or
-    1, // llvm.hexagon.S2.lsr.i.p.xacc
-    1, // llvm.hexagon.S2.lsr.i.r
-    1, // llvm.hexagon.S2.lsr.i.r.acc
-    1, // llvm.hexagon.S2.lsr.i.r.and
-    1, // llvm.hexagon.S2.lsr.i.r.nac
-    1, // llvm.hexagon.S2.lsr.i.r.or
-    1, // llvm.hexagon.S2.lsr.i.r.xacc
-    1, // llvm.hexagon.S2.lsr.i.vh
-    1, // llvm.hexagon.S2.lsr.i.vw
-    1, // llvm.hexagon.S2.lsr.r.p
-    1, // llvm.hexagon.S2.lsr.r.p.acc
-    1, // llvm.hexagon.S2.lsr.r.p.and
-    1, // llvm.hexagon.S2.lsr.r.p.nac
-    1, // llvm.hexagon.S2.lsr.r.p.or
-    1, // llvm.hexagon.S2.lsr.r.p.xor
-    1, // llvm.hexagon.S2.lsr.r.r
-    1, // llvm.hexagon.S2.lsr.r.r.acc
-    1, // llvm.hexagon.S2.lsr.r.r.and
-    1, // llvm.hexagon.S2.lsr.r.r.nac
-    1, // llvm.hexagon.S2.lsr.r.r.or
-    1, // llvm.hexagon.S2.lsr.r.vh
-    1, // llvm.hexagon.S2.lsr.r.vw
-    1, // llvm.hexagon.S2.packhl
-    1, // llvm.hexagon.S2.parityp
-    1, // llvm.hexagon.S2.setbit.i
-    1, // llvm.hexagon.S2.setbit.r
-    1, // llvm.hexagon.S2.shuffeb
-    1, // llvm.hexagon.S2.shuffeh
-    1, // llvm.hexagon.S2.shuffob
-    1, // llvm.hexagon.S2.shuffoh
-    32, // llvm.hexagon.S2.storerb.pbr
-    29, // llvm.hexagon.S2.storerb.pci
-    28, // llvm.hexagon.S2.storerb.pcr
-    32, // llvm.hexagon.S2.storerd.pbr
-    29, // llvm.hexagon.S2.storerd.pci
-    28, // llvm.hexagon.S2.storerd.pcr
-    32, // llvm.hexagon.S2.storerf.pbr
-    29, // llvm.hexagon.S2.storerf.pci
-    28, // llvm.hexagon.S2.storerf.pcr
-    32, // llvm.hexagon.S2.storerh.pbr
-    29, // llvm.hexagon.S2.storerh.pci
-    28, // llvm.hexagon.S2.storerh.pcr
-    32, // llvm.hexagon.S2.storeri.pbr
-    29, // llvm.hexagon.S2.storeri.pci
-    28, // llvm.hexagon.S2.storeri.pcr
-    18, // llvm.hexagon.S2.storew.locked
-    1, // llvm.hexagon.S2.svsathb
-    1, // llvm.hexagon.S2.svsathub
-    1, // llvm.hexagon.S2.tableidxb.goodsyntax
-    1, // llvm.hexagon.S2.tableidxd.goodsyntax
-    1, // llvm.hexagon.S2.tableidxh.goodsyntax
-    1, // llvm.hexagon.S2.tableidxw.goodsyntax
-    1, // llvm.hexagon.S2.togglebit.i
-    1, // llvm.hexagon.S2.togglebit.r
-    1, // llvm.hexagon.S2.tstbit.i
-    1, // llvm.hexagon.S2.tstbit.r
-    1, // llvm.hexagon.S2.valignib
-    1, // llvm.hexagon.S2.valignrb
-    1, // llvm.hexagon.S2.vcnegh
-    1, // llvm.hexagon.S2.vcrotate
-    1, // llvm.hexagon.S2.vrcnegh
-    1, // llvm.hexagon.S2.vrndpackwh
-    1, // llvm.hexagon.S2.vrndpackwhs
-    1, // llvm.hexagon.S2.vsathb
-    1, // llvm.hexagon.S2.vsathb.nopack
-    1, // llvm.hexagon.S2.vsathub
-    1, // llvm.hexagon.S2.vsathub.nopack
-    1, // llvm.hexagon.S2.vsatwh
-    1, // llvm.hexagon.S2.vsatwh.nopack
-    1, // llvm.hexagon.S2.vsatwuh
-    1, // llvm.hexagon.S2.vsatwuh.nopack
-    1, // llvm.hexagon.S2.vsplatrb
-    1, // llvm.hexagon.S2.vsplatrh
-    1, // llvm.hexagon.S2.vspliceib
-    1, // llvm.hexagon.S2.vsplicerb
-    1, // llvm.hexagon.S2.vsxtbh
-    1, // llvm.hexagon.S2.vsxthw
-    1, // llvm.hexagon.S2.vtrunehb
-    1, // llvm.hexagon.S2.vtrunewh
-    1, // llvm.hexagon.S2.vtrunohb
-    1, // llvm.hexagon.S2.vtrunowh
-    1, // llvm.hexagon.S2.vzxtbh
-    1, // llvm.hexagon.S2.vzxthw
-    1, // llvm.hexagon.S4.addaddi
-    1, // llvm.hexagon.S4.addi.asl.ri
-    1, // llvm.hexagon.S4.addi.lsr.ri
-    1, // llvm.hexagon.S4.andi.asl.ri
-    1, // llvm.hexagon.S4.andi.lsr.ri
-    1, // llvm.hexagon.S4.clbaddi
-    1, // llvm.hexagon.S4.clbpaddi
-    1, // llvm.hexagon.S4.clbpnorm
-    1, // llvm.hexagon.S4.extract
-    1, // llvm.hexagon.S4.extract.rp
-    1, // llvm.hexagon.S4.extractp
-    1, // llvm.hexagon.S4.extractp.rp
-    1, // llvm.hexagon.S4.lsli
-    1, // llvm.hexagon.S4.ntstbit.i
-    1, // llvm.hexagon.S4.ntstbit.r
-    1, // llvm.hexagon.S4.or.andi
-    1, // llvm.hexagon.S4.or.andix
-    1, // llvm.hexagon.S4.or.ori
-    1, // llvm.hexagon.S4.ori.asl.ri
-    1, // llvm.hexagon.S4.ori.lsr.ri
-    1, // llvm.hexagon.S4.parity
-    18, // llvm.hexagon.S4.stored.locked
-    1, // llvm.hexagon.S4.subaddi
-    1, // llvm.hexagon.S4.subi.asl.ri
-    1, // llvm.hexagon.S4.subi.lsr.ri
-    1, // llvm.hexagon.S4.vrcrotate
-    1, // llvm.hexagon.S4.vrcrotate.acc
-    1, // llvm.hexagon.S4.vxaddsubh
-    1, // llvm.hexagon.S4.vxaddsubhr
-    1, // llvm.hexagon.S4.vxaddsubw
-    1, // llvm.hexagon.S4.vxsubaddh
-    1, // llvm.hexagon.S4.vxsubaddhr
-    1, // llvm.hexagon.S4.vxsubaddw
-    1, // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
-    1, // llvm.hexagon.S5.asrhub.sat
-    1, // llvm.hexagon.S5.popcountp
-    1, // llvm.hexagon.S5.vasrhrnd.goodsyntax
-    1, // llvm.hexagon.S6.rol.i.p
-    1, // llvm.hexagon.S6.rol.i.p.acc
-    1, // llvm.hexagon.S6.rol.i.p.and
-    1, // llvm.hexagon.S6.rol.i.p.nac
-    1, // llvm.hexagon.S6.rol.i.p.or
-    1, // llvm.hexagon.S6.rol.i.p.xacc
-    1, // llvm.hexagon.S6.rol.i.r
-    1, // llvm.hexagon.S6.rol.i.r.acc
-    1, // llvm.hexagon.S6.rol.i.r.and
-    1, // llvm.hexagon.S6.rol.i.r.nac
-    1, // llvm.hexagon.S6.rol.i.r.or
-    1, // llvm.hexagon.S6.rol.i.r.xacc
-    1, // llvm.hexagon.S6.vsplatrbp
-    1, // llvm.hexagon.S6.vtrunehb.ppp
-    1, // llvm.hexagon.S6.vtrunohb.ppp
-    1, // llvm.hexagon.V6.extractw
-    1, // llvm.hexagon.V6.extractw.128B
-    1, // llvm.hexagon.V6.hi
-    1, // llvm.hexagon.V6.hi.128B
-    1, // llvm.hexagon.V6.lo
-    1, // llvm.hexagon.V6.lo.128B
-    1, // llvm.hexagon.V6.lvsplatb
-    1, // llvm.hexagon.V6.lvsplatb.128B
-    1, // llvm.hexagon.V6.lvsplath
-    1, // llvm.hexagon.V6.lvsplath.128B
-    1, // llvm.hexagon.V6.lvsplatw
-    1, // llvm.hexagon.V6.lvsplatw.128B
-    1, // llvm.hexagon.V6.pred.and
-    1, // llvm.hexagon.V6.pred.and.128B
-    1, // llvm.hexagon.V6.pred.and.n
-    1, // llvm.hexagon.V6.pred.and.n.128B
-    1, // llvm.hexagon.V6.pred.not
-    1, // llvm.hexagon.V6.pred.not.128B
-    1, // llvm.hexagon.V6.pred.or
-    1, // llvm.hexagon.V6.pred.or.128B
-    1, // llvm.hexagon.V6.pred.or.n
-    1, // llvm.hexagon.V6.pred.or.n.128B
-    1, // llvm.hexagon.V6.pred.scalar2
-    1, // llvm.hexagon.V6.pred.scalar2.128B
-    1, // llvm.hexagon.V6.pred.scalar2v2
-    1, // llvm.hexagon.V6.pred.scalar2v2.128B
-    1, // llvm.hexagon.V6.pred.xor
-    1, // llvm.hexagon.V6.pred.xor.128B
-    1, // llvm.hexagon.V6.shuffeqh
-    1, // llvm.hexagon.V6.shuffeqh.128B
-    1, // llvm.hexagon.V6.shuffeqw
-    1, // llvm.hexagon.V6.shuffeqw.128B
-    21, // llvm.hexagon.V6.vS32b.nqpred.ai
-    21, // llvm.hexagon.V6.vS32b.nqpred.ai.128B
-    21, // llvm.hexagon.V6.vS32b.nt.nqpred.ai
-    21, // llvm.hexagon.V6.vS32b.nt.nqpred.ai.128B
-    21, // llvm.hexagon.V6.vS32b.nt.qpred.ai
-    21, // llvm.hexagon.V6.vS32b.nt.qpred.ai.128B
-    21, // llvm.hexagon.V6.vS32b.qpred.ai
-    21, // llvm.hexagon.V6.vS32b.qpred.ai.128B
-    1, // llvm.hexagon.V6.vabsb
-    1, // llvm.hexagon.V6.vabsb.128B
-    1, // llvm.hexagon.V6.vabsb.sat
-    1, // llvm.hexagon.V6.vabsb.sat.128B
-    1, // llvm.hexagon.V6.vabsdiffh
-    1, // llvm.hexagon.V6.vabsdiffh.128B
-    1, // llvm.hexagon.V6.vabsdiffub
-    1, // llvm.hexagon.V6.vabsdiffub.128B
-    1, // llvm.hexagon.V6.vabsdiffuh
-    1, // llvm.hexagon.V6.vabsdiffuh.128B
-    1, // llvm.hexagon.V6.vabsdiffw
-    1, // llvm.hexagon.V6.vabsdiffw.128B
-    1, // llvm.hexagon.V6.vabsh
-    1, // llvm.hexagon.V6.vabsh.128B
-    1, // llvm.hexagon.V6.vabsh.sat
-    1, // llvm.hexagon.V6.vabsh.sat.128B
-    1, // llvm.hexagon.V6.vabsw
-    1, // llvm.hexagon.V6.vabsw.128B
-    1, // llvm.hexagon.V6.vabsw.sat
-    1, // llvm.hexagon.V6.vabsw.sat.128B
-    1, // llvm.hexagon.V6.vaddb
-    1, // llvm.hexagon.V6.vaddb.128B
-    1, // llvm.hexagon.V6.vaddb.dv
-    1, // llvm.hexagon.V6.vaddb.dv.128B
-    1, // llvm.hexagon.V6.vaddbnq
-    1, // llvm.hexagon.V6.vaddbnq.128B
-    1, // llvm.hexagon.V6.vaddbq
-    1, // llvm.hexagon.V6.vaddbq.128B
-    1, // llvm.hexagon.V6.vaddbsat
-    1, // llvm.hexagon.V6.vaddbsat.128B
-    1, // llvm.hexagon.V6.vaddbsat.dv
-    1, // llvm.hexagon.V6.vaddbsat.dv.128B
-    1, // llvm.hexagon.V6.vaddcarry
-    1, // llvm.hexagon.V6.vaddcarry.128B
-    1, // llvm.hexagon.V6.vaddclbh
-    1, // llvm.hexagon.V6.vaddclbh.128B
-    1, // llvm.hexagon.V6.vaddclbw
-    1, // llvm.hexagon.V6.vaddclbw.128B
-    1, // llvm.hexagon.V6.vaddh
-    1, // llvm.hexagon.V6.vaddh.128B
-    1, // llvm.hexagon.V6.vaddh.dv
-    1, // llvm.hexagon.V6.vaddh.dv.128B
-    1, // llvm.hexagon.V6.vaddhnq
-    1, // llvm.hexagon.V6.vaddhnq.128B
-    1, // llvm.hexagon.V6.vaddhq
-    1, // llvm.hexagon.V6.vaddhq.128B
-    1, // llvm.hexagon.V6.vaddhsat
-    1, // llvm.hexagon.V6.vaddhsat.128B
-    1, // llvm.hexagon.V6.vaddhsat.dv
-    1, // llvm.hexagon.V6.vaddhsat.dv.128B
-    1, // llvm.hexagon.V6.vaddhw
-    1, // llvm.hexagon.V6.vaddhw.128B
-    1, // llvm.hexagon.V6.vaddhw.acc
-    1, // llvm.hexagon.V6.vaddhw.acc.128B
-    1, // llvm.hexagon.V6.vaddubh
-    1, // llvm.hexagon.V6.vaddubh.128B
-    1, // llvm.hexagon.V6.vaddubh.acc
-    1, // llvm.hexagon.V6.vaddubh.acc.128B
-    1, // llvm.hexagon.V6.vaddubsat
-    1, // llvm.hexagon.V6.vaddubsat.128B
-    1, // llvm.hexagon.V6.vaddubsat.dv
-    1, // llvm.hexagon.V6.vaddubsat.dv.128B
-    1, // llvm.hexagon.V6.vaddububb.sat
-    1, // llvm.hexagon.V6.vaddububb.sat.128B
-    1, // llvm.hexagon.V6.vadduhsat
-    1, // llvm.hexagon.V6.vadduhsat.128B
-    1, // llvm.hexagon.V6.vadduhsat.dv
-    1, // llvm.hexagon.V6.vadduhsat.dv.128B
-    1, // llvm.hexagon.V6.vadduhw
-    1, // llvm.hexagon.V6.vadduhw.128B
-    1, // llvm.hexagon.V6.vadduhw.acc
-    1, // llvm.hexagon.V6.vadduhw.acc.128B
-    1, // llvm.hexagon.V6.vadduwsat
-    1, // llvm.hexagon.V6.vadduwsat.128B
-    1, // llvm.hexagon.V6.vadduwsat.dv
-    1, // llvm.hexagon.V6.vadduwsat.dv.128B
-    1, // llvm.hexagon.V6.vaddw
-    1, // llvm.hexagon.V6.vaddw.128B
-    1, // llvm.hexagon.V6.vaddw.dv
-    1, // llvm.hexagon.V6.vaddw.dv.128B
-    1, // llvm.hexagon.V6.vaddwnq
-    1, // llvm.hexagon.V6.vaddwnq.128B
-    1, // llvm.hexagon.V6.vaddwq
-    1, // llvm.hexagon.V6.vaddwq.128B
-    1, // llvm.hexagon.V6.vaddwsat
-    1, // llvm.hexagon.V6.vaddwsat.128B
-    1, // llvm.hexagon.V6.vaddwsat.dv
-    1, // llvm.hexagon.V6.vaddwsat.dv.128B
-    1, // llvm.hexagon.V6.valignb
-    1, // llvm.hexagon.V6.valignb.128B
-    1, // llvm.hexagon.V6.valignbi
-    1, // llvm.hexagon.V6.valignbi.128B
-    1, // llvm.hexagon.V6.vand
-    1, // llvm.hexagon.V6.vand.128B
-    1, // llvm.hexagon.V6.vandnqrt
-    1, // llvm.hexagon.V6.vandnqrt.128B
-    1, // llvm.hexagon.V6.vandnqrt.acc
-    1, // llvm.hexagon.V6.vandnqrt.acc.128B
-    1, // llvm.hexagon.V6.vandqrt
-    1, // llvm.hexagon.V6.vandqrt.128B
-    1, // llvm.hexagon.V6.vandqrt.acc
-    1, // llvm.hexagon.V6.vandqrt.acc.128B
-    1, // llvm.hexagon.V6.vandvnqv
-    1, // llvm.hexagon.V6.vandvnqv.128B
-    1, // llvm.hexagon.V6.vandvqv
-    1, // llvm.hexagon.V6.vandvqv.128B
-    1, // llvm.hexagon.V6.vandvrt
-    1, // llvm.hexagon.V6.vandvrt.128B
-    1, // llvm.hexagon.V6.vandvrt.acc
-    1, // llvm.hexagon.V6.vandvrt.acc.128B
-    1, // llvm.hexagon.V6.vaslh
-    1, // llvm.hexagon.V6.vaslh.128B
-    1, // llvm.hexagon.V6.vaslh.acc
-    1, // llvm.hexagon.V6.vaslh.acc.128B
-    1, // llvm.hexagon.V6.vaslhv
-    1, // llvm.hexagon.V6.vaslhv.128B
-    1, // llvm.hexagon.V6.vaslw
-    1, // llvm.hexagon.V6.vaslw.128B
-    1, // llvm.hexagon.V6.vaslw.acc
-    1, // llvm.hexagon.V6.vaslw.acc.128B
-    1, // llvm.hexagon.V6.vaslwv
-    1, // llvm.hexagon.V6.vaslwv.128B
-    1, // llvm.hexagon.V6.vasrh
-    1, // llvm.hexagon.V6.vasrh.128B
-    1, // llvm.hexagon.V6.vasrh.acc
-    1, // llvm.hexagon.V6.vasrh.acc.128B
-    1, // llvm.hexagon.V6.vasrhbrndsat
-    1, // llvm.hexagon.V6.vasrhbrndsat.128B
-    1, // llvm.hexagon.V6.vasrhbsat
-    1, // llvm.hexagon.V6.vasrhbsat.128B
-    1, // llvm.hexagon.V6.vasrhubrndsat
-    1, // llvm.hexagon.V6.vasrhubrndsat.128B
-    1, // llvm.hexagon.V6.vasrhubsat
-    1, // llvm.hexagon.V6.vasrhubsat.128B
-    1, // llvm.hexagon.V6.vasrhv
-    1, // llvm.hexagon.V6.vasrhv.128B
-    1, // llvm.hexagon.V6.vasruhubrndsat
-    1, // llvm.hexagon.V6.vasruhubrndsat.128B
-    1, // llvm.hexagon.V6.vasruhubsat
-    1, // llvm.hexagon.V6.vasruhubsat.128B
-    1, // llvm.hexagon.V6.vasruwuhrndsat
-    1, // llvm.hexagon.V6.vasruwuhrndsat.128B
-    1, // llvm.hexagon.V6.vasruwuhsat
-    1, // llvm.hexagon.V6.vasruwuhsat.128B
-    1, // llvm.hexagon.V6.vasrw
-    1, // llvm.hexagon.V6.vasrw.128B
-    1, // llvm.hexagon.V6.vasrw.acc
-    1, // llvm.hexagon.V6.vasrw.acc.128B
-    1, // llvm.hexagon.V6.vasrwh
-    1, // llvm.hexagon.V6.vasrwh.128B
-    1, // llvm.hexagon.V6.vasrwhrndsat
-    1, // llvm.hexagon.V6.vasrwhrndsat.128B
-    1, // llvm.hexagon.V6.vasrwhsat
-    1, // llvm.hexagon.V6.vasrwhsat.128B
-    1, // llvm.hexagon.V6.vasrwuhrndsat
-    1, // llvm.hexagon.V6.vasrwuhrndsat.128B
-    1, // llvm.hexagon.V6.vasrwuhsat
-    1, // llvm.hexagon.V6.vasrwuhsat.128B
-    1, // llvm.hexagon.V6.vasrwv
-    1, // llvm.hexagon.V6.vasrwv.128B
-    1, // llvm.hexagon.V6.vassign
-    1, // llvm.hexagon.V6.vassign.128B
-    1, // llvm.hexagon.V6.vassignp
-    1, // llvm.hexagon.V6.vassignp.128B
-    1, // llvm.hexagon.V6.vavgb
-    1, // llvm.hexagon.V6.vavgb.128B
-    1, // llvm.hexagon.V6.vavgbrnd
-    1, // llvm.hexagon.V6.vavgbrnd.128B
-    1, // llvm.hexagon.V6.vavgh
-    1, // llvm.hexagon.V6.vavgh.128B
-    1, // llvm.hexagon.V6.vavghrnd
-    1, // llvm.hexagon.V6.vavghrnd.128B
-    1, // llvm.hexagon.V6.vavgub
-    1, // llvm.hexagon.V6.vavgub.128B
-    1, // llvm.hexagon.V6.vavgubrnd
-    1, // llvm.hexagon.V6.vavgubrnd.128B
-    1, // llvm.hexagon.V6.vavguh
-    1, // llvm.hexagon.V6.vavguh.128B
-    1, // llvm.hexagon.V6.vavguhrnd
-    1, // llvm.hexagon.V6.vavguhrnd.128B
-    1, // llvm.hexagon.V6.vavguw
-    1, // llvm.hexagon.V6.vavguw.128B
-    1, // llvm.hexagon.V6.vavguwrnd
-    1, // llvm.hexagon.V6.vavguwrnd.128B
-    1, // llvm.hexagon.V6.vavgw
-    1, // llvm.hexagon.V6.vavgw.128B
-    1, // llvm.hexagon.V6.vavgwrnd
-    1, // llvm.hexagon.V6.vavgwrnd.128B
-    1, // llvm.hexagon.V6.vcl0h
-    1, // llvm.hexagon.V6.vcl0h.128B
-    1, // llvm.hexagon.V6.vcl0w
-    1, // llvm.hexagon.V6.vcl0w.128B
-    1, // llvm.hexagon.V6.vcombine
-    1, // llvm.hexagon.V6.vcombine.128B
-    1, // llvm.hexagon.V6.vd0
-    1, // llvm.hexagon.V6.vd0.128B
-    1, // llvm.hexagon.V6.vdd0
-    1, // llvm.hexagon.V6.vdd0.128B
-    1, // llvm.hexagon.V6.vdealb
-    1, // llvm.hexagon.V6.vdealb.128B
-    1, // llvm.hexagon.V6.vdealb4w
-    1, // llvm.hexagon.V6.vdealb4w.128B
-    1, // llvm.hexagon.V6.vdealh
-    1, // llvm.hexagon.V6.vdealh.128B
-    1, // llvm.hexagon.V6.vdealvdd
-    1, // llvm.hexagon.V6.vdealvdd.128B
-    1, // llvm.hexagon.V6.vdelta
-    1, // llvm.hexagon.V6.vdelta.128B
-    1, // llvm.hexagon.V6.vdmpybus
-    1, // llvm.hexagon.V6.vdmpybus.128B
-    1, // llvm.hexagon.V6.vdmpybus.acc
-    1, // llvm.hexagon.V6.vdmpybus.acc.128B
-    1, // llvm.hexagon.V6.vdmpybus.dv
-    1, // llvm.hexagon.V6.vdmpybus.dv.128B
-    1, // llvm.hexagon.V6.vdmpybus.dv.acc
-    1, // llvm.hexagon.V6.vdmpybus.dv.acc.128B
-    1, // llvm.hexagon.V6.vdmpyhb
-    1, // llvm.hexagon.V6.vdmpyhb.128B
-    1, // llvm.hexagon.V6.vdmpyhb.acc
-    1, // llvm.hexagon.V6.vdmpyhb.acc.128B
-    1, // llvm.hexagon.V6.vdmpyhb.dv
-    1, // llvm.hexagon.V6.vdmpyhb.dv.128B
-    1, // llvm.hexagon.V6.vdmpyhb.dv.acc
-    1, // llvm.hexagon.V6.vdmpyhb.dv.acc.128B
-    1, // llvm.hexagon.V6.vdmpyhisat
-    1, // llvm.hexagon.V6.vdmpyhisat.128B
-    1, // llvm.hexagon.V6.vdmpyhisat.acc
-    1, // llvm.hexagon.V6.vdmpyhisat.acc.128B
-    1, // llvm.hexagon.V6.vdmpyhsat
-    1, // llvm.hexagon.V6.vdmpyhsat.128B
-    1, // llvm.hexagon.V6.vdmpyhsat.acc
-    1, // llvm.hexagon.V6.vdmpyhsat.acc.128B
-    1, // llvm.hexagon.V6.vdmpyhsuisat
-    1, // llvm.hexagon.V6.vdmpyhsuisat.128B
-    1, // llvm.hexagon.V6.vdmpyhsuisat.acc
-    1, // llvm.hexagon.V6.vdmpyhsuisat.acc.128B
-    1, // llvm.hexagon.V6.vdmpyhsusat
-    1, // llvm.hexagon.V6.vdmpyhsusat.128B
-    1, // llvm.hexagon.V6.vdmpyhsusat.acc
-    1, // llvm.hexagon.V6.vdmpyhsusat.acc.128B
-    1, // llvm.hexagon.V6.vdmpyhvsat
-    1, // llvm.hexagon.V6.vdmpyhvsat.128B
-    1, // llvm.hexagon.V6.vdmpyhvsat.acc
-    1, // llvm.hexagon.V6.vdmpyhvsat.acc.128B
-    1, // llvm.hexagon.V6.vdsaduh
-    1, // llvm.hexagon.V6.vdsaduh.128B
-    1, // llvm.hexagon.V6.vdsaduh.acc
-    1, // llvm.hexagon.V6.vdsaduh.acc.128B
-    1, // llvm.hexagon.V6.veqb
-    1, // llvm.hexagon.V6.veqb.128B
-    1, // llvm.hexagon.V6.veqb.and
-    1, // llvm.hexagon.V6.veqb.and.128B
-    1, // llvm.hexagon.V6.veqb.or
-    1, // llvm.hexagon.V6.veqb.or.128B
-    1, // llvm.hexagon.V6.veqb.xor
-    1, // llvm.hexagon.V6.veqb.xor.128B
-    1, // llvm.hexagon.V6.veqh
-    1, // llvm.hexagon.V6.veqh.128B
-    1, // llvm.hexagon.V6.veqh.and
-    1, // llvm.hexagon.V6.veqh.and.128B
-    1, // llvm.hexagon.V6.veqh.or
-    1, // llvm.hexagon.V6.veqh.or.128B
-    1, // llvm.hexagon.V6.veqh.xor
-    1, // llvm.hexagon.V6.veqh.xor.128B
-    1, // llvm.hexagon.V6.veqw
-    1, // llvm.hexagon.V6.veqw.128B
-    1, // llvm.hexagon.V6.veqw.and
-    1, // llvm.hexagon.V6.veqw.and.128B
-    1, // llvm.hexagon.V6.veqw.or
-    1, // llvm.hexagon.V6.veqw.or.128B
-    1, // llvm.hexagon.V6.veqw.xor
-    1, // llvm.hexagon.V6.veqw.xor.128B
-    21, // llvm.hexagon.V6.vgathermh
-    21, // llvm.hexagon.V6.vgathermh.128B
-    21, // llvm.hexagon.V6.vgathermhq
-    21, // llvm.hexagon.V6.vgathermhq.128B
-    21, // llvm.hexagon.V6.vgathermhw
-    21, // llvm.hexagon.V6.vgathermhw.128B
-    21, // llvm.hexagon.V6.vgathermhwq
-    21, // llvm.hexagon.V6.vgathermhwq.128B
-    21, // llvm.hexagon.V6.vgathermw
-    21, // llvm.hexagon.V6.vgathermw.128B
-    21, // llvm.hexagon.V6.vgathermwq
-    21, // llvm.hexagon.V6.vgathermwq.128B
-    1, // llvm.hexagon.V6.vgtb
-    1, // llvm.hexagon.V6.vgtb.128B
-    1, // llvm.hexagon.V6.vgtb.and
-    1, // llvm.hexagon.V6.vgtb.and.128B
-    1, // llvm.hexagon.V6.vgtb.or
-    1, // llvm.hexagon.V6.vgtb.or.128B
-    1, // llvm.hexagon.V6.vgtb.xor
-    1, // llvm.hexagon.V6.vgtb.xor.128B
-    1, // llvm.hexagon.V6.vgth
-    1, // llvm.hexagon.V6.vgth.128B
-    1, // llvm.hexagon.V6.vgth.and
-    1, // llvm.hexagon.V6.vgth.and.128B
-    1, // llvm.hexagon.V6.vgth.or
-    1, // llvm.hexagon.V6.vgth.or.128B
-    1, // llvm.hexagon.V6.vgth.xor
-    1, // llvm.hexagon.V6.vgth.xor.128B
-    1, // llvm.hexagon.V6.vgtub
-    1, // llvm.hexagon.V6.vgtub.128B
-    1, // llvm.hexagon.V6.vgtub.and
-    1, // llvm.hexagon.V6.vgtub.and.128B
-    1, // llvm.hexagon.V6.vgtub.or
-    1, // llvm.hexagon.V6.vgtub.or.128B
-    1, // llvm.hexagon.V6.vgtub.xor
-    1, // llvm.hexagon.V6.vgtub.xor.128B
-    1, // llvm.hexagon.V6.vgtuh
-    1, // llvm.hexagon.V6.vgtuh.128B
-    1, // llvm.hexagon.V6.vgtuh.and
-    1, // llvm.hexagon.V6.vgtuh.and.128B
-    1, // llvm.hexagon.V6.vgtuh.or
-    1, // llvm.hexagon.V6.vgtuh.or.128B
-    1, // llvm.hexagon.V6.vgtuh.xor
-    1, // llvm.hexagon.V6.vgtuh.xor.128B
-    1, // llvm.hexagon.V6.vgtuw
-    1, // llvm.hexagon.V6.vgtuw.128B
-    1, // llvm.hexagon.V6.vgtuw.and
-    1, // llvm.hexagon.V6.vgtuw.and.128B
-    1, // llvm.hexagon.V6.vgtuw.or
-    1, // llvm.hexagon.V6.vgtuw.or.128B
-    1, // llvm.hexagon.V6.vgtuw.xor
-    1, // llvm.hexagon.V6.vgtuw.xor.128B
-    1, // llvm.hexagon.V6.vgtw
-    1, // llvm.hexagon.V6.vgtw.128B
-    1, // llvm.hexagon.V6.vgtw.and
-    1, // llvm.hexagon.V6.vgtw.and.128B
-    1, // llvm.hexagon.V6.vgtw.or
-    1, // llvm.hexagon.V6.vgtw.or.128B
-    1, // llvm.hexagon.V6.vgtw.xor
-    1, // llvm.hexagon.V6.vgtw.xor.128B
-    1, // llvm.hexagon.V6.vinsertwr
-    1, // llvm.hexagon.V6.vinsertwr.128B
-    1, // llvm.hexagon.V6.vlalignb
-    1, // llvm.hexagon.V6.vlalignb.128B
-    1, // llvm.hexagon.V6.vlalignbi
-    1, // llvm.hexagon.V6.vlalignbi.128B
-    1, // llvm.hexagon.V6.vlsrb
-    1, // llvm.hexagon.V6.vlsrb.128B
-    1, // llvm.hexagon.V6.vlsrh
-    1, // llvm.hexagon.V6.vlsrh.128B
-    1, // llvm.hexagon.V6.vlsrhv
-    1, // llvm.hexagon.V6.vlsrhv.128B
-    1, // llvm.hexagon.V6.vlsrw
-    1, // llvm.hexagon.V6.vlsrw.128B
-    1, // llvm.hexagon.V6.vlsrwv
-    1, // llvm.hexagon.V6.vlsrwv.128B
-    1, // llvm.hexagon.V6.vlut4
-    1, // llvm.hexagon.V6.vlut4.128B
-    1, // llvm.hexagon.V6.vlutvvb
-    1, // llvm.hexagon.V6.vlutvvb.128B
-    1, // llvm.hexagon.V6.vlutvvb.nm
-    1, // llvm.hexagon.V6.vlutvvb.nm.128B
-    1, // llvm.hexagon.V6.vlutvvb.oracc
-    1, // llvm.hexagon.V6.vlutvvb.oracc.128B
-    1, // llvm.hexagon.V6.vlutvvb.oracci
-    1, // llvm.hexagon.V6.vlutvvb.oracci.128B
-    1, // llvm.hexagon.V6.vlutvvbi
-    1, // llvm.hexagon.V6.vlutvvbi.128B
-    1, // llvm.hexagon.V6.vlutvwh
-    1, // llvm.hexagon.V6.vlutvwh.128B
-    1, // llvm.hexagon.V6.vlutvwh.nm
-    1, // llvm.hexagon.V6.vlutvwh.nm.128B
-    1, // llvm.hexagon.V6.vlutvwh.oracc
-    1, // llvm.hexagon.V6.vlutvwh.oracc.128B
-    1, // llvm.hexagon.V6.vlutvwh.oracci
-    1, // llvm.hexagon.V6.vlutvwh.oracci.128B
-    1, // llvm.hexagon.V6.vlutvwhi
-    1, // llvm.hexagon.V6.vlutvwhi.128B
-    21, // llvm.hexagon.V6.vmaskedstorenq
-    21, // llvm.hexagon.V6.vmaskedstorenq.128B
-    21, // llvm.hexagon.V6.vmaskedstorentnq
-    21, // llvm.hexagon.V6.vmaskedstorentnq.128B
-    21, // llvm.hexagon.V6.vmaskedstorentq
-    21, // llvm.hexagon.V6.vmaskedstorentq.128B
-    21, // llvm.hexagon.V6.vmaskedstoreq
-    21, // llvm.hexagon.V6.vmaskedstoreq.128B
-    1, // llvm.hexagon.V6.vmaxb
-    1, // llvm.hexagon.V6.vmaxb.128B
-    1, // llvm.hexagon.V6.vmaxh
-    1, // llvm.hexagon.V6.vmaxh.128B
-    1, // llvm.hexagon.V6.vmaxub
-    1, // llvm.hexagon.V6.vmaxub.128B
-    1, // llvm.hexagon.V6.vmaxuh
-    1, // llvm.hexagon.V6.vmaxuh.128B
-    1, // llvm.hexagon.V6.vmaxw
-    1, // llvm.hexagon.V6.vmaxw.128B
-    1, // llvm.hexagon.V6.vminb
-    1, // llvm.hexagon.V6.vminb.128B
-    1, // llvm.hexagon.V6.vminh
-    1, // llvm.hexagon.V6.vminh.128B
-    1, // llvm.hexagon.V6.vminub
-    1, // llvm.hexagon.V6.vminub.128B
-    1, // llvm.hexagon.V6.vminuh
-    1, // llvm.hexagon.V6.vminuh.128B
-    1, // llvm.hexagon.V6.vminw
-    1, // llvm.hexagon.V6.vminw.128B
-    1, // llvm.hexagon.V6.vmpabus
-    1, // llvm.hexagon.V6.vmpabus.128B
-    1, // llvm.hexagon.V6.vmpabus.acc
-    1, // llvm.hexagon.V6.vmpabus.acc.128B
-    1, // llvm.hexagon.V6.vmpabusv
-    1, // llvm.hexagon.V6.vmpabusv.128B
-    1, // llvm.hexagon.V6.vmpabuu
-    1, // llvm.hexagon.V6.vmpabuu.128B
-    1, // llvm.hexagon.V6.vmpabuu.acc
-    1, // llvm.hexagon.V6.vmpabuu.acc.128B
-    1, // llvm.hexagon.V6.vmpabuuv
-    1, // llvm.hexagon.V6.vmpabuuv.128B
-    1, // llvm.hexagon.V6.vmpahb
-    1, // llvm.hexagon.V6.vmpahb.128B
-    1, // llvm.hexagon.V6.vmpahb.acc
-    1, // llvm.hexagon.V6.vmpahb.acc.128B
-    1, // llvm.hexagon.V6.vmpahhsat
-    1, // llvm.hexagon.V6.vmpahhsat.128B
-    1, // llvm.hexagon.V6.vmpauhb
-    1, // llvm.hexagon.V6.vmpauhb.128B
-    1, // llvm.hexagon.V6.vmpauhb.acc
-    1, // llvm.hexagon.V6.vmpauhb.acc.128B
-    1, // llvm.hexagon.V6.vmpauhuhsat
-    1, // llvm.hexagon.V6.vmpauhuhsat.128B
-    1, // llvm.hexagon.V6.vmpsuhuhsat
-    1, // llvm.hexagon.V6.vmpsuhuhsat.128B
-    1, // llvm.hexagon.V6.vmpybus
-    1, // llvm.hexagon.V6.vmpybus.128B
-    1, // llvm.hexagon.V6.vmpybus.acc
-    1, // llvm.hexagon.V6.vmpybus.acc.128B
-    1, // llvm.hexagon.V6.vmpybusv
-    1, // llvm.hexagon.V6.vmpybusv.128B
-    1, // llvm.hexagon.V6.vmpybusv.acc
-    1, // llvm.hexagon.V6.vmpybusv.acc.128B
-    1, // llvm.hexagon.V6.vmpybv
-    1, // llvm.hexagon.V6.vmpybv.128B
-    1, // llvm.hexagon.V6.vmpybv.acc
-    1, // llvm.hexagon.V6.vmpybv.acc.128B
-    1, // llvm.hexagon.V6.vmpyewuh
-    1, // llvm.hexagon.V6.vmpyewuh.128B
-    1, // llvm.hexagon.V6.vmpyewuh.64
-    1, // llvm.hexagon.V6.vmpyewuh.64.128B
-    1, // llvm.hexagon.V6.vmpyh
-    1, // llvm.hexagon.V6.vmpyh.128B
-    1, // llvm.hexagon.V6.vmpyh.acc
-    1, // llvm.hexagon.V6.vmpyh.acc.128B
-    1, // llvm.hexagon.V6.vmpyhsat.acc
-    1, // llvm.hexagon.V6.vmpyhsat.acc.128B
-    1, // llvm.hexagon.V6.vmpyhsrs
-    1, // llvm.hexagon.V6.vmpyhsrs.128B
-    1, // llvm.hexagon.V6.vmpyhss
-    1, // llvm.hexagon.V6.vmpyhss.128B
-    1, // llvm.hexagon.V6.vmpyhus
-    1, // llvm.hexagon.V6.vmpyhus.128B
-    1, // llvm.hexagon.V6.vmpyhus.acc
-    1, // llvm.hexagon.V6.vmpyhus.acc.128B
-    1, // llvm.hexagon.V6.vmpyhv
-    1, // llvm.hexagon.V6.vmpyhv.128B
-    1, // llvm.hexagon.V6.vmpyhv.acc
-    1, // llvm.hexagon.V6.vmpyhv.acc.128B
-    1, // llvm.hexagon.V6.vmpyhvsrs
-    1, // llvm.hexagon.V6.vmpyhvsrs.128B
-    1, // llvm.hexagon.V6.vmpyieoh
-    1, // llvm.hexagon.V6.vmpyieoh.128B
-    1, // llvm.hexagon.V6.vmpyiewh.acc
-    1, // llvm.hexagon.V6.vmpyiewh.acc.128B
-    1, // llvm.hexagon.V6.vmpyiewuh
-    1, // llvm.hexagon.V6.vmpyiewuh.128B
-    1, // llvm.hexagon.V6.vmpyiewuh.acc
-    1, // llvm.hexagon.V6.vmpyiewuh.acc.128B
-    1, // llvm.hexagon.V6.vmpyih
-    1, // llvm.hexagon.V6.vmpyih.128B
-    1, // llvm.hexagon.V6.vmpyih.acc
-    1, // llvm.hexagon.V6.vmpyih.acc.128B
-    1, // llvm.hexagon.V6.vmpyihb
-    1, // llvm.hexagon.V6.vmpyihb.128B
-    1, // llvm.hexagon.V6.vmpyihb.acc
-    1, // llvm.hexagon.V6.vmpyihb.acc.128B
-    1, // llvm.hexagon.V6.vmpyiowh
-    1, // llvm.hexagon.V6.vmpyiowh.128B
-    1, // llvm.hexagon.V6.vmpyiwb
-    1, // llvm.hexagon.V6.vmpyiwb.128B
-    1, // llvm.hexagon.V6.vmpyiwb.acc
-    1, // llvm.hexagon.V6.vmpyiwb.acc.128B
-    1, // llvm.hexagon.V6.vmpyiwh
-    1, // llvm.hexagon.V6.vmpyiwh.128B
-    1, // llvm.hexagon.V6.vmpyiwh.acc
-    1, // llvm.hexagon.V6.vmpyiwh.acc.128B
-    1, // llvm.hexagon.V6.vmpyiwub
-    1, // llvm.hexagon.V6.vmpyiwub.128B
-    1, // llvm.hexagon.V6.vmpyiwub.acc
-    1, // llvm.hexagon.V6.vmpyiwub.acc.128B
-    1, // llvm.hexagon.V6.vmpyowh
-    1, // llvm.hexagon.V6.vmpyowh.128B
-    1, // llvm.hexagon.V6.vmpyowh.64.acc
-    1, // llvm.hexagon.V6.vmpyowh.64.acc.128B
-    1, // llvm.hexagon.V6.vmpyowh.rnd
-    1, // llvm.hexagon.V6.vmpyowh.rnd.128B
-    1, // llvm.hexagon.V6.vmpyowh.rnd.sacc
-    1, // llvm.hexagon.V6.vmpyowh.rnd.sacc.128B
-    1, // llvm.hexagon.V6.vmpyowh.sacc
-    1, // llvm.hexagon.V6.vmpyowh.sacc.128B
-    1, // llvm.hexagon.V6.vmpyub
-    1, // llvm.hexagon.V6.vmpyub.128B
-    1, // llvm.hexagon.V6.vmpyub.acc
-    1, // llvm.hexagon.V6.vmpyub.acc.128B
-    1, // llvm.hexagon.V6.vmpyubv
-    1, // llvm.hexagon.V6.vmpyubv.128B
-    1, // llvm.hexagon.V6.vmpyubv.acc
-    1, // llvm.hexagon.V6.vmpyubv.acc.128B
-    1, // llvm.hexagon.V6.vmpyuh
-    1, // llvm.hexagon.V6.vmpyuh.128B
-    1, // llvm.hexagon.V6.vmpyuh.acc
-    1, // llvm.hexagon.V6.vmpyuh.acc.128B
-    1, // llvm.hexagon.V6.vmpyuhe
-    1, // llvm.hexagon.V6.vmpyuhe.128B
-    1, // llvm.hexagon.V6.vmpyuhe.acc
-    1, // llvm.hexagon.V6.vmpyuhe.acc.128B
-    1, // llvm.hexagon.V6.vmpyuhv
-    1, // llvm.hexagon.V6.vmpyuhv.128B
-    1, // llvm.hexagon.V6.vmpyuhv.acc
-    1, // llvm.hexagon.V6.vmpyuhv.acc.128B
-    1, // llvm.hexagon.V6.vmux
-    1, // llvm.hexagon.V6.vmux.128B
-    1, // llvm.hexagon.V6.vnavgb
-    1, // llvm.hexagon.V6.vnavgb.128B
-    1, // llvm.hexagon.V6.vnavgh
-    1, // llvm.hexagon.V6.vnavgh.128B
-    1, // llvm.hexagon.V6.vnavgub
-    1, // llvm.hexagon.V6.vnavgub.128B
-    1, // llvm.hexagon.V6.vnavgw
-    1, // llvm.hexagon.V6.vnavgw.128B
-    1, // llvm.hexagon.V6.vnormamth
-    1, // llvm.hexagon.V6.vnormamth.128B
-    1, // llvm.hexagon.V6.vnormamtw
-    1, // llvm.hexagon.V6.vnormamtw.128B
-    1, // llvm.hexagon.V6.vnot
-    1, // llvm.hexagon.V6.vnot.128B
-    1, // llvm.hexagon.V6.vor
-    1, // llvm.hexagon.V6.vor.128B
-    1, // llvm.hexagon.V6.vpackeb
-    1, // llvm.hexagon.V6.vpackeb.128B
-    1, // llvm.hexagon.V6.vpackeh
-    1, // llvm.hexagon.V6.vpackeh.128B
-    1, // llvm.hexagon.V6.vpackhb.sat
-    1, // llvm.hexagon.V6.vpackhb.sat.128B
-    1, // llvm.hexagon.V6.vpackhub.sat
-    1, // llvm.hexagon.V6.vpackhub.sat.128B
-    1, // llvm.hexagon.V6.vpackob
-    1, // llvm.hexagon.V6.vpackob.128B
-    1, // llvm.hexagon.V6.vpackoh
-    1, // llvm.hexagon.V6.vpackoh.128B
-    1, // llvm.hexagon.V6.vpackwh.sat
-    1, // llvm.hexagon.V6.vpackwh.sat.128B
-    1, // llvm.hexagon.V6.vpackwuh.sat
-    1, // llvm.hexagon.V6.vpackwuh.sat.128B
-    1, // llvm.hexagon.V6.vpopcounth
-    1, // llvm.hexagon.V6.vpopcounth.128B
-    1, // llvm.hexagon.V6.vprefixqb
-    1, // llvm.hexagon.V6.vprefixqb.128B
-    1, // llvm.hexagon.V6.vprefixqh
-    1, // llvm.hexagon.V6.vprefixqh.128B
-    1, // llvm.hexagon.V6.vprefixqw
-    1, // llvm.hexagon.V6.vprefixqw.128B
-    1, // llvm.hexagon.V6.vrdelta
-    1, // llvm.hexagon.V6.vrdelta.128B
-    1, // llvm.hexagon.V6.vrmpybub.rtt
-    1, // llvm.hexagon.V6.vrmpybub.rtt.128B
-    1, // llvm.hexagon.V6.vrmpybub.rtt.acc
-    1, // llvm.hexagon.V6.vrmpybub.rtt.acc.128B
-    1, // llvm.hexagon.V6.vrmpybus
-    1, // llvm.hexagon.V6.vrmpybus.128B
-    1, // llvm.hexagon.V6.vrmpybus.acc
-    1, // llvm.hexagon.V6.vrmpybus.acc.128B
-    1, // llvm.hexagon.V6.vrmpybusi
-    1, // llvm.hexagon.V6.vrmpybusi.128B
-    1, // llvm.hexagon.V6.vrmpybusi.acc
-    1, // llvm.hexagon.V6.vrmpybusi.acc.128B
-    1, // llvm.hexagon.V6.vrmpybusv
-    1, // llvm.hexagon.V6.vrmpybusv.128B
-    1, // llvm.hexagon.V6.vrmpybusv.acc
-    1, // llvm.hexagon.V6.vrmpybusv.acc.128B
-    1, // llvm.hexagon.V6.vrmpybv
-    1, // llvm.hexagon.V6.vrmpybv.128B
-    1, // llvm.hexagon.V6.vrmpybv.acc
-    1, // llvm.hexagon.V6.vrmpybv.acc.128B
-    1, // llvm.hexagon.V6.vrmpyub
-    1, // llvm.hexagon.V6.vrmpyub.128B
-    1, // llvm.hexagon.V6.vrmpyub.acc
-    1, // llvm.hexagon.V6.vrmpyub.acc.128B
-    1, // llvm.hexagon.V6.vrmpyub.rtt
-    1, // llvm.hexagon.V6.vrmpyub.rtt.128B
-    1, // llvm.hexagon.V6.vrmpyub.rtt.acc
-    1, // llvm.hexagon.V6.vrmpyub.rtt.acc.128B
-    1, // llvm.hexagon.V6.vrmpyubi
-    1, // llvm.hexagon.V6.vrmpyubi.128B
-    1, // llvm.hexagon.V6.vrmpyubi.acc
-    1, // llvm.hexagon.V6.vrmpyubi.acc.128B
-    1, // llvm.hexagon.V6.vrmpyubv
-    1, // llvm.hexagon.V6.vrmpyubv.128B
-    1, // llvm.hexagon.V6.vrmpyubv.acc
-    1, // llvm.hexagon.V6.vrmpyubv.acc.128B
-    1, // llvm.hexagon.V6.vror
-    1, // llvm.hexagon.V6.vror.128B
-    1, // llvm.hexagon.V6.vroundhb
-    1, // llvm.hexagon.V6.vroundhb.128B
-    1, // llvm.hexagon.V6.vroundhub
-    1, // llvm.hexagon.V6.vroundhub.128B
-    1, // llvm.hexagon.V6.vrounduhub
-    1, // llvm.hexagon.V6.vrounduhub.128B
-    1, // llvm.hexagon.V6.vrounduwuh
-    1, // llvm.hexagon.V6.vrounduwuh.128B
-    1, // llvm.hexagon.V6.vroundwh
-    1, // llvm.hexagon.V6.vroundwh.128B
-    1, // llvm.hexagon.V6.vroundwuh
-    1, // llvm.hexagon.V6.vroundwuh.128B
-    1, // llvm.hexagon.V6.vrsadubi
-    1, // llvm.hexagon.V6.vrsadubi.128B
-    1, // llvm.hexagon.V6.vrsadubi.acc
-    1, // llvm.hexagon.V6.vrsadubi.acc.128B
-    1, // llvm.hexagon.V6.vsathub
-    1, // llvm.hexagon.V6.vsathub.128B
-    1, // llvm.hexagon.V6.vsatuwuh
-    1, // llvm.hexagon.V6.vsatuwuh.128B
-    1, // llvm.hexagon.V6.vsatwh
-    1, // llvm.hexagon.V6.vsatwh.128B
-    1, // llvm.hexagon.V6.vsb
-    1, // llvm.hexagon.V6.vsb.128B
-    32, // llvm.hexagon.V6.vscattermh
-    32, // llvm.hexagon.V6.vscattermh.128B
-    32, // llvm.hexagon.V6.vscattermh.add
-    32, // llvm.hexagon.V6.vscattermh.add.128B
-    32, // llvm.hexagon.V6.vscattermhq
-    32, // llvm.hexagon.V6.vscattermhq.128B
-    32, // llvm.hexagon.V6.vscattermhw
-    32, // llvm.hexagon.V6.vscattermhw.128B
-    32, // llvm.hexagon.V6.vscattermhw.add
-    32, // llvm.hexagon.V6.vscattermhw.add.128B
-    32, // llvm.hexagon.V6.vscattermhwq
-    32, // llvm.hexagon.V6.vscattermhwq.128B
-    32, // llvm.hexagon.V6.vscattermw
-    32, // llvm.hexagon.V6.vscattermw.128B
-    32, // llvm.hexagon.V6.vscattermw.add
-    32, // llvm.hexagon.V6.vscattermw.add.128B
-    32, // llvm.hexagon.V6.vscattermwq
-    32, // llvm.hexagon.V6.vscattermwq.128B
-    1, // llvm.hexagon.V6.vsh
-    1, // llvm.hexagon.V6.vsh.128B
-    1, // llvm.hexagon.V6.vshufeh
-    1, // llvm.hexagon.V6.vshufeh.128B
-    1, // llvm.hexagon.V6.vshuffb
-    1, // llvm.hexagon.V6.vshuffb.128B
-    1, // llvm.hexagon.V6.vshuffeb
-    1, // llvm.hexagon.V6.vshuffeb.128B
-    1, // llvm.hexagon.V6.vshuffh
-    1, // llvm.hexagon.V6.vshuffh.128B
-    1, // llvm.hexagon.V6.vshuffob
-    1, // llvm.hexagon.V6.vshuffob.128B
-    1, // llvm.hexagon.V6.vshuffvdd
-    1, // llvm.hexagon.V6.vshuffvdd.128B
-    1, // llvm.hexagon.V6.vshufoeb
-    1, // llvm.hexagon.V6.vshufoeb.128B
-    1, // llvm.hexagon.V6.vshufoeh
-    1, // llvm.hexagon.V6.vshufoeh.128B
-    1, // llvm.hexagon.V6.vshufoh
-    1, // llvm.hexagon.V6.vshufoh.128B
-    1, // llvm.hexagon.V6.vsubb
-    1, // llvm.hexagon.V6.vsubb.128B
-    1, // llvm.hexagon.V6.vsubb.dv
-    1, // llvm.hexagon.V6.vsubb.dv.128B
-    1, // llvm.hexagon.V6.vsubbnq
-    1, // llvm.hexagon.V6.vsubbnq.128B
-    1, // llvm.hexagon.V6.vsubbq
-    1, // llvm.hexagon.V6.vsubbq.128B
-    1, // llvm.hexagon.V6.vsubbsat
-    1, // llvm.hexagon.V6.vsubbsat.128B
-    1, // llvm.hexagon.V6.vsubbsat.dv
-    1, // llvm.hexagon.V6.vsubbsat.dv.128B
-    1, // llvm.hexagon.V6.vsubcarry
-    1, // llvm.hexagon.V6.vsubcarry.128B
-    1, // llvm.hexagon.V6.vsubh
-    1, // llvm.hexagon.V6.vsubh.128B
-    1, // llvm.hexagon.V6.vsubh.dv
-    1, // llvm.hexagon.V6.vsubh.dv.128B
-    1, // llvm.hexagon.V6.vsubhnq
-    1, // llvm.hexagon.V6.vsubhnq.128B
-    1, // llvm.hexagon.V6.vsubhq
-    1, // llvm.hexagon.V6.vsubhq.128B
-    1, // llvm.hexagon.V6.vsubhsat
-    1, // llvm.hexagon.V6.vsubhsat.128B
-    1, // llvm.hexagon.V6.vsubhsat.dv
-    1, // llvm.hexagon.V6.vsubhsat.dv.128B
-    1, // llvm.hexagon.V6.vsubhw
-    1, // llvm.hexagon.V6.vsubhw.128B
-    1, // llvm.hexagon.V6.vsububh
-    1, // llvm.hexagon.V6.vsububh.128B
-    1, // llvm.hexagon.V6.vsububsat
-    1, // llvm.hexagon.V6.vsububsat.128B
-    1, // llvm.hexagon.V6.vsububsat.dv
-    1, // llvm.hexagon.V6.vsububsat.dv.128B
-    1, // llvm.hexagon.V6.vsubububb.sat
-    1, // llvm.hexagon.V6.vsubububb.sat.128B
-    1, // llvm.hexagon.V6.vsubuhsat
-    1, // llvm.hexagon.V6.vsubuhsat.128B
-    1, // llvm.hexagon.V6.vsubuhsat.dv
-    1, // llvm.hexagon.V6.vsubuhsat.dv.128B
-    1, // llvm.hexagon.V6.vsubuhw
-    1, // llvm.hexagon.V6.vsubuhw.128B
-    1, // llvm.hexagon.V6.vsubuwsat
-    1, // llvm.hexagon.V6.vsubuwsat.128B
-    1, // llvm.hexagon.V6.vsubuwsat.dv
-    1, // llvm.hexagon.V6.vsubuwsat.dv.128B
-    1, // llvm.hexagon.V6.vsubw
-    1, // llvm.hexagon.V6.vsubw.128B
-    1, // llvm.hexagon.V6.vsubw.dv
-    1, // llvm.hexagon.V6.vsubw.dv.128B
-    1, // llvm.hexagon.V6.vsubwnq
-    1, // llvm.hexagon.V6.vsubwnq.128B
-    1, // llvm.hexagon.V6.vsubwq
-    1, // llvm.hexagon.V6.vsubwq.128B
-    1, // llvm.hexagon.V6.vsubwsat
-    1, // llvm.hexagon.V6.vsubwsat.128B
-    1, // llvm.hexagon.V6.vsubwsat.dv
-    1, // llvm.hexagon.V6.vsubwsat.dv.128B
-    1, // llvm.hexagon.V6.vswap
-    1, // llvm.hexagon.V6.vswap.128B
-    1, // llvm.hexagon.V6.vtmpyb
-    1, // llvm.hexagon.V6.vtmpyb.128B
-    1, // llvm.hexagon.V6.vtmpyb.acc
-    1, // llvm.hexagon.V6.vtmpyb.acc.128B
-    1, // llvm.hexagon.V6.vtmpybus
-    1, // llvm.hexagon.V6.vtmpybus.128B
-    1, // llvm.hexagon.V6.vtmpybus.acc
-    1, // llvm.hexagon.V6.vtmpybus.acc.128B
-    1, // llvm.hexagon.V6.vtmpyhb
-    1, // llvm.hexagon.V6.vtmpyhb.128B
-    1, // llvm.hexagon.V6.vtmpyhb.acc
-    1, // llvm.hexagon.V6.vtmpyhb.acc.128B
-    1, // llvm.hexagon.V6.vunpackb
-    1, // llvm.hexagon.V6.vunpackb.128B
-    1, // llvm.hexagon.V6.vunpackh
-    1, // llvm.hexagon.V6.vunpackh.128B
-    1, // llvm.hexagon.V6.vunpackob
-    1, // llvm.hexagon.V6.vunpackob.128B
-    1, // llvm.hexagon.V6.vunpackoh
-    1, // llvm.hexagon.V6.vunpackoh.128B
-    1, // llvm.hexagon.V6.vunpackub
-    1, // llvm.hexagon.V6.vunpackub.128B
-    1, // llvm.hexagon.V6.vunpackuh
-    1, // llvm.hexagon.V6.vunpackuh.128B
-    1, // llvm.hexagon.V6.vxor
-    1, // llvm.hexagon.V6.vxor.128B
-    1, // llvm.hexagon.V6.vzb
-    1, // llvm.hexagon.V6.vzb.128B
-    1, // llvm.hexagon.V6.vzh
-    1, // llvm.hexagon.V6.vzh.128B
-    3, // llvm.hexagon.Y2.dccleana
-    3, // llvm.hexagon.Y2.dccleaninva
-    3, // llvm.hexagon.Y2.dcinva
-    36, // llvm.hexagon.Y2.dczeroa
-    3, // llvm.hexagon.Y4.l2fetch
-    3, // llvm.hexagon.Y5.l2fetch
-    21, // llvm.hexagon.circ.ldb
-    21, // llvm.hexagon.circ.ldd
-    21, // llvm.hexagon.circ.ldh
-    21, // llvm.hexagon.circ.ldub
-    21, // llvm.hexagon.circ.lduh
-    21, // llvm.hexagon.circ.ldw
-    32, // llvm.hexagon.circ.stb
-    32, // llvm.hexagon.circ.std
-    32, // llvm.hexagon.circ.sth
-    32, // llvm.hexagon.circ.sthhi
-    32, // llvm.hexagon.circ.stw
-    21, // llvm.hexagon.mm256i.vaddw
-    3, // llvm.hexagon.prefetch
-    3, // llvm.mips.absq.s.ph
-    3, // llvm.mips.absq.s.qb
-    3, // llvm.mips.absq.s.w
-    1, // llvm.mips.add.a.b
-    1, // llvm.mips.add.a.d
-    1, // llvm.mips.add.a.h
-    1, // llvm.mips.add.a.w
-    1, // llvm.mips.addq.ph
-    1, // llvm.mips.addq.s.ph
-    3, // llvm.mips.addq.s.w
-    1, // llvm.mips.addqh.ph
-    1, // llvm.mips.addqh.r.ph
-    1, // llvm.mips.addqh.r.w
-    1, // llvm.mips.addqh.w
-    1, // llvm.mips.adds.a.b
-    1, // llvm.mips.adds.a.d
-    1, // llvm.mips.adds.a.h
-    1, // llvm.mips.adds.a.w
-    1, // llvm.mips.adds.s.b
-    1, // llvm.mips.adds.s.d
-    1, // llvm.mips.adds.s.h
-    1, // llvm.mips.adds.s.w
-    1, // llvm.mips.adds.u.b
-    1, // llvm.mips.adds.u.d
-    1, // llvm.mips.adds.u.h
-    1, // llvm.mips.adds.u.w
-    3, // llvm.mips.addsc
-    3, // llvm.mips.addu.ph
-    1, // llvm.mips.addu.qb
-    3, // llvm.mips.addu.s.ph
-    1, // llvm.mips.addu.s.qb
-    1, // llvm.mips.adduh.qb
-    1, // llvm.mips.adduh.r.qb
-    1, // llvm.mips.addv.b
-    1, // llvm.mips.addv.d
-    1, // llvm.mips.addv.h
-    1, // llvm.mips.addv.w
-    1, // llvm.mips.addvi.b
-    1, // llvm.mips.addvi.d
-    1, // llvm.mips.addvi.h
-    1, // llvm.mips.addvi.w
-    3, // llvm.mips.addwc
-    1, // llvm.mips.and.v
-    1, // llvm.mips.andi.b
-    1, // llvm.mips.append
-    1, // llvm.mips.asub.s.b
-    1, // llvm.mips.asub.s.d
-    1, // llvm.mips.asub.s.h
-    1, // llvm.mips.asub.s.w
-    1, // llvm.mips.asub.u.b
-    1, // llvm.mips.asub.u.d
-    1, // llvm.mips.asub.u.h
-    1, // llvm.mips.asub.u.w
-    1, // llvm.mips.ave.s.b
-    1, // llvm.mips.ave.s.d
-    1, // llvm.mips.ave.s.h
-    1, // llvm.mips.ave.s.w
-    1, // llvm.mips.ave.u.b
-    1, // llvm.mips.ave.u.d
-    1, // llvm.mips.ave.u.h
-    1, // llvm.mips.ave.u.w
-    1, // llvm.mips.aver.s.b
-    1, // llvm.mips.aver.s.d
-    1, // llvm.mips.aver.s.h
-    1, // llvm.mips.aver.s.w
-    1, // llvm.mips.aver.u.b
-    1, // llvm.mips.aver.u.d
-    1, // llvm.mips.aver.u.h
-    1, // llvm.mips.aver.u.w
-    1, // llvm.mips.balign
-    1, // llvm.mips.bclr.b
-    1, // llvm.mips.bclr.d
-    1, // llvm.mips.bclr.h
-    1, // llvm.mips.bclr.w
-    1, // llvm.mips.bclri.b
-    1, // llvm.mips.bclri.d
-    1, // llvm.mips.bclri.h
-    1, // llvm.mips.bclri.w
-    1, // llvm.mips.binsl.b
-    1, // llvm.mips.binsl.d
-    1, // llvm.mips.binsl.h
-    1, // llvm.mips.binsl.w
-    1, // llvm.mips.binsli.b
-    1, // llvm.mips.binsli.d
-    1, // llvm.mips.binsli.h
-    1, // llvm.mips.binsli.w
-    1, // llvm.mips.binsr.b
-    1, // llvm.mips.binsr.d
-    1, // llvm.mips.binsr.h
-    1, // llvm.mips.binsr.w
-    1, // llvm.mips.binsri.b
-    1, // llvm.mips.binsri.d
-    1, // llvm.mips.binsri.h
-    1, // llvm.mips.binsri.w
-    1, // llvm.mips.bitrev
-    1, // llvm.mips.bmnz.v
-    1, // llvm.mips.bmnzi.b
-    1, // llvm.mips.bmz.v
-    1, // llvm.mips.bmzi.b
-    1, // llvm.mips.bneg.b
-    1, // llvm.mips.bneg.d
-    1, // llvm.mips.bneg.h
-    1, // llvm.mips.bneg.w
-    1, // llvm.mips.bnegi.b
-    1, // llvm.mips.bnegi.d
-    1, // llvm.mips.bnegi.h
-    1, // llvm.mips.bnegi.w
-    1, // llvm.mips.bnz.b
-    1, // llvm.mips.bnz.d
-    1, // llvm.mips.bnz.h
-    1, // llvm.mips.bnz.v
-    1, // llvm.mips.bnz.w
-    16, // llvm.mips.bposge32
-    1, // llvm.mips.bsel.v
-    1, // llvm.mips.bseli.b
-    1, // llvm.mips.bset.b
-    1, // llvm.mips.bset.d
-    1, // llvm.mips.bset.h
-    1, // llvm.mips.bset.w
-    1, // llvm.mips.bseti.b
-    1, // llvm.mips.bseti.d
-    1, // llvm.mips.bseti.h
-    1, // llvm.mips.bseti.w
-    1, // llvm.mips.bz.b
-    1, // llvm.mips.bz.d
-    1, // llvm.mips.bz.h
-    1, // llvm.mips.bz.v
-    1, // llvm.mips.bz.w
-    1, // llvm.mips.ceq.b
-    1, // llvm.mips.ceq.d
-    1, // llvm.mips.ceq.h
-    1, // llvm.mips.ceq.w
-    1, // llvm.mips.ceqi.b
-    1, // llvm.mips.ceqi.d
-    1, // llvm.mips.ceqi.h
-    1, // llvm.mips.ceqi.w
-    3, // llvm.mips.cfcmsa
-    1, // llvm.mips.cle.s.b
-    1, // llvm.mips.cle.s.d
-    1, // llvm.mips.cle.s.h
-    1, // llvm.mips.cle.s.w
-    1, // llvm.mips.cle.u.b
-    1, // llvm.mips.cle.u.d
-    1, // llvm.mips.cle.u.h
-    1, // llvm.mips.cle.u.w
-    1, // llvm.mips.clei.s.b
-    1, // llvm.mips.clei.s.d
-    1, // llvm.mips.clei.s.h
-    1, // llvm.mips.clei.s.w
-    1, // llvm.mips.clei.u.b
-    1, // llvm.mips.clei.u.d
-    1, // llvm.mips.clei.u.h
-    1, // llvm.mips.clei.u.w
-    1, // llvm.mips.clt.s.b
-    1, // llvm.mips.clt.s.d
-    1, // llvm.mips.clt.s.h
-    1, // llvm.mips.clt.s.w
-    1, // llvm.mips.clt.u.b
-    1, // llvm.mips.clt.u.d
-    1, // llvm.mips.clt.u.h
-    1, // llvm.mips.clt.u.w
-    1, // llvm.mips.clti.s.b
-    1, // llvm.mips.clti.s.d
-    1, // llvm.mips.clti.s.h
-    1, // llvm.mips.clti.s.w
-    1, // llvm.mips.clti.u.b
-    1, // llvm.mips.clti.u.d
-    1, // llvm.mips.clti.u.h
-    1, // llvm.mips.clti.u.w
-    3, // llvm.mips.cmp.eq.ph
-    3, // llvm.mips.cmp.le.ph
-    3, // llvm.mips.cmp.lt.ph
-    3, // llvm.mips.cmpgdu.eq.qb
-    3, // llvm.mips.cmpgdu.le.qb
-    3, // llvm.mips.cmpgdu.lt.qb
-    3, // llvm.mips.cmpgu.eq.qb
-    3, // llvm.mips.cmpgu.le.qb
-    3, // llvm.mips.cmpgu.lt.qb
-    3, // llvm.mips.cmpu.eq.qb
-    3, // llvm.mips.cmpu.le.qb
-    3, // llvm.mips.cmpu.lt.qb
-    1, // llvm.mips.copy.s.b
-    1, // llvm.mips.copy.s.d
-    1, // llvm.mips.copy.s.h
-    1, // llvm.mips.copy.s.w
-    1, // llvm.mips.copy.u.b
-    1, // llvm.mips.copy.u.d
-    1, // llvm.mips.copy.u.h
-    1, // llvm.mips.copy.u.w
-    3, // llvm.mips.ctcmsa
-    1, // llvm.mips.div.s.b
-    1, // llvm.mips.div.s.d
-    1, // llvm.mips.div.s.h
-    1, // llvm.mips.div.s.w
-    1, // llvm.mips.div.u.b
-    1, // llvm.mips.div.u.d
-    1, // llvm.mips.div.u.h
-    1, // llvm.mips.div.u.w
-    1, // llvm.mips.dlsa
-    1, // llvm.mips.dotp.s.d
-    1, // llvm.mips.dotp.s.h
-    1, // llvm.mips.dotp.s.w
-    1, // llvm.mips.dotp.u.d
-    1, // llvm.mips.dotp.u.h
-    1, // llvm.mips.dotp.u.w
-    1, // llvm.mips.dpa.w.ph
-    1, // llvm.mips.dpadd.s.d
-    1, // llvm.mips.dpadd.s.h
-    1, // llvm.mips.dpadd.s.w
-    1, // llvm.mips.dpadd.u.d
-    1, // llvm.mips.dpadd.u.h
-    1, // llvm.mips.dpadd.u.w
-    3, // llvm.mips.dpaq.s.w.ph
-    3, // llvm.mips.dpaq.sa.l.w
-    3, // llvm.mips.dpaqx.s.w.ph
-    3, // llvm.mips.dpaqx.sa.w.ph
-    1, // llvm.mips.dpau.h.qbl
-    1, // llvm.mips.dpau.h.qbr
-    1, // llvm.mips.dpax.w.ph
-    1, // llvm.mips.dps.w.ph
-    3, // llvm.mips.dpsq.s.w.ph
-    3, // llvm.mips.dpsq.sa.l.w
-    3, // llvm.mips.dpsqx.s.w.ph
-    3, // llvm.mips.dpsqx.sa.w.ph
-    1, // llvm.mips.dpsu.h.qbl
-    1, // llvm.mips.dpsu.h.qbr
-    1, // llvm.mips.dpsub.s.d
-    1, // llvm.mips.dpsub.s.h
-    1, // llvm.mips.dpsub.s.w
-    1, // llvm.mips.dpsub.u.d
-    1, // llvm.mips.dpsub.u.h
-    1, // llvm.mips.dpsub.u.w
-    1, // llvm.mips.dpsx.w.ph
-    3, // llvm.mips.extp
-    3, // llvm.mips.extpdp
-    3, // llvm.mips.extr.r.w
-    3, // llvm.mips.extr.rs.w
-    3, // llvm.mips.extr.s.h
-    3, // llvm.mips.extr.w
-    1, // llvm.mips.fadd.d
-    1, // llvm.mips.fadd.w
-    1, // llvm.mips.fcaf.d
-    1, // llvm.mips.fcaf.w
-    1, // llvm.mips.fceq.d
-    1, // llvm.mips.fceq.w
-    1, // llvm.mips.fclass.d
-    1, // llvm.mips.fclass.w
-    1, // llvm.mips.fcle.d
-    1, // llvm.mips.fcle.w
-    1, // llvm.mips.fclt.d
-    1, // llvm.mips.fclt.w
-    1, // llvm.mips.fcne.d
-    1, // llvm.mips.fcne.w
-    1, // llvm.mips.fcor.d
-    1, // llvm.mips.fcor.w
-    1, // llvm.mips.fcueq.d
-    1, // llvm.mips.fcueq.w
-    1, // llvm.mips.fcule.d
-    1, // llvm.mips.fcule.w
-    1, // llvm.mips.fcult.d
-    1, // llvm.mips.fcult.w
-    1, // llvm.mips.fcun.d
-    1, // llvm.mips.fcun.w
-    1, // llvm.mips.fcune.d
-    1, // llvm.mips.fcune.w
-    1, // llvm.mips.fdiv.d
-    1, // llvm.mips.fdiv.w
-    1, // llvm.mips.fexdo.h
-    1, // llvm.mips.fexdo.w
-    1, // llvm.mips.fexp2.d
-    1, // llvm.mips.fexp2.w
-    1, // llvm.mips.fexupl.d
-    1, // llvm.mips.fexupl.w
-    1, // llvm.mips.fexupr.d
-    1, // llvm.mips.fexupr.w
-    1, // llvm.mips.ffint.s.d
-    1, // llvm.mips.ffint.s.w
-    1, // llvm.mips.ffint.u.d
-    1, // llvm.mips.ffint.u.w
-    1, // llvm.mips.ffql.d
-    1, // llvm.mips.ffql.w
-    1, // llvm.mips.ffqr.d
-    1, // llvm.mips.ffqr.w
-    1, // llvm.mips.fill.b
-    1, // llvm.mips.fill.d
-    1, // llvm.mips.fill.h
-    1, // llvm.mips.fill.w
-    1, // llvm.mips.flog2.d
-    1, // llvm.mips.flog2.w
-    1, // llvm.mips.fmadd.d
-    1, // llvm.mips.fmadd.w
-    1, // llvm.mips.fmax.a.d
-    1, // llvm.mips.fmax.a.w
-    1, // llvm.mips.fmax.d
-    1, // llvm.mips.fmax.w
-    1, // llvm.mips.fmin.a.d
-    1, // llvm.mips.fmin.a.w
-    1, // llvm.mips.fmin.d
-    1, // llvm.mips.fmin.w
-    1, // llvm.mips.fmsub.d
-    1, // llvm.mips.fmsub.w
-    1, // llvm.mips.fmul.d
-    1, // llvm.mips.fmul.w
-    1, // llvm.mips.frcp.d
-    1, // llvm.mips.frcp.w
-    1, // llvm.mips.frint.d
-    1, // llvm.mips.frint.w
-    1, // llvm.mips.frsqrt.d
-    1, // llvm.mips.frsqrt.w
-    1, // llvm.mips.fsaf.d
-    1, // llvm.mips.fsaf.w
-    1, // llvm.mips.fseq.d
-    1, // llvm.mips.fseq.w
-    1, // llvm.mips.fsle.d
-    1, // llvm.mips.fsle.w
-    1, // llvm.mips.fslt.d
-    1, // llvm.mips.fslt.w
-    1, // llvm.mips.fsne.d
-    1, // llvm.mips.fsne.w
-    1, // llvm.mips.fsor.d
-    1, // llvm.mips.fsor.w
-    1, // llvm.mips.fsqrt.d
-    1, // llvm.mips.fsqrt.w
-    1, // llvm.mips.fsub.d
-    1, // llvm.mips.fsub.w
-    1, // llvm.mips.fsueq.d
-    1, // llvm.mips.fsueq.w
-    1, // llvm.mips.fsule.d
-    1, // llvm.mips.fsule.w
-    1, // llvm.mips.fsult.d
-    1, // llvm.mips.fsult.w
-    1, // llvm.mips.fsun.d
-    1, // llvm.mips.fsun.w
-    1, // llvm.mips.fsune.d
-    1, // llvm.mips.fsune.w
-    1, // llvm.mips.ftint.s.d
-    1, // llvm.mips.ftint.s.w
-    1, // llvm.mips.ftint.u.d
-    1, // llvm.mips.ftint.u.w
-    1, // llvm.mips.ftq.h
-    1, // llvm.mips.ftq.w
-    1, // llvm.mips.ftrunc.s.d
-    1, // llvm.mips.ftrunc.s.w
-    1, // llvm.mips.ftrunc.u.d
-    1, // llvm.mips.ftrunc.u.w
-    1, // llvm.mips.hadd.s.d
-    1, // llvm.mips.hadd.s.h
-    1, // llvm.mips.hadd.s.w
-    1, // llvm.mips.hadd.u.d
-    1, // llvm.mips.hadd.u.h
-    1, // llvm.mips.hadd.u.w
-    1, // llvm.mips.hsub.s.d
-    1, // llvm.mips.hsub.s.h
-    1, // llvm.mips.hsub.s.w
-    1, // llvm.mips.hsub.u.d
-    1, // llvm.mips.hsub.u.h
-    1, // llvm.mips.hsub.u.w
-    1, // llvm.mips.ilvev.b
-    1, // llvm.mips.ilvev.d
-    1, // llvm.mips.ilvev.h
-    1, // llvm.mips.ilvev.w
-    1, // llvm.mips.ilvl.b
-    1, // llvm.mips.ilvl.d
-    1, // llvm.mips.ilvl.h
-    1, // llvm.mips.ilvl.w
-    1, // llvm.mips.ilvod.b
-    1, // llvm.mips.ilvod.d
-    1, // llvm.mips.ilvod.h
-    1, // llvm.mips.ilvod.w
-    1, // llvm.mips.ilvr.b
-    1, // llvm.mips.ilvr.d
-    1, // llvm.mips.ilvr.h
-    1, // llvm.mips.ilvr.w
-    1, // llvm.mips.insert.b
-    1, // llvm.mips.insert.d
-    1, // llvm.mips.insert.h
-    1, // llvm.mips.insert.w
-    16, // llvm.mips.insv
-    1, // llvm.mips.insve.b
-    1, // llvm.mips.insve.d
-    1, // llvm.mips.insve.h
-    1, // llvm.mips.insve.w
-    2, // llvm.mips.lbux
-    2, // llvm.mips.ld.b
-    2, // llvm.mips.ld.d
-    2, // llvm.mips.ld.h
-    2, // llvm.mips.ld.w
-    1, // llvm.mips.ldi.b
-    1, // llvm.mips.ldi.d
-    1, // llvm.mips.ldi.h
-    1, // llvm.mips.ldi.w
-    2, // llvm.mips.lhx
-    1, // llvm.mips.lsa
-    2, // llvm.mips.lwx
-    1, // llvm.mips.madd
-    1, // llvm.mips.madd.q.h
-    1, // llvm.mips.madd.q.w
-    1, // llvm.mips.maddr.q.h
-    1, // llvm.mips.maddr.q.w
-    1, // llvm.mips.maddu
-    1, // llvm.mips.maddv.b
-    1, // llvm.mips.maddv.d
-    1, // llvm.mips.maddv.h
-    1, // llvm.mips.maddv.w
-    3, // llvm.mips.maq.s.w.phl
-    3, // llvm.mips.maq.s.w.phr
-    3, // llvm.mips.maq.sa.w.phl
-    3, // llvm.mips.maq.sa.w.phr
-    1, // llvm.mips.max.a.b
-    1, // llvm.mips.max.a.d
-    1, // llvm.mips.max.a.h
-    1, // llvm.mips.max.a.w
-    1, // llvm.mips.max.s.b
-    1, // llvm.mips.max.s.d
-    1, // llvm.mips.max.s.h
-    1, // llvm.mips.max.s.w
-    1, // llvm.mips.max.u.b
-    1, // llvm.mips.max.u.d
-    1, // llvm.mips.max.u.h
-    1, // llvm.mips.max.u.w
-    1, // llvm.mips.maxi.s.b
-    1, // llvm.mips.maxi.s.d
-    1, // llvm.mips.maxi.s.h
-    1, // llvm.mips.maxi.s.w
-    1, // llvm.mips.maxi.u.b
-    1, // llvm.mips.maxi.u.d
-    1, // llvm.mips.maxi.u.h
-    1, // llvm.mips.maxi.u.w
-    1, // llvm.mips.min.a.b
-    1, // llvm.mips.min.a.d
-    1, // llvm.mips.min.a.h
-    1, // llvm.mips.min.a.w
-    1, // llvm.mips.min.s.b
-    1, // llvm.mips.min.s.d
-    1, // llvm.mips.min.s.h
-    1, // llvm.mips.min.s.w
-    1, // llvm.mips.min.u.b
-    1, // llvm.mips.min.u.d
-    1, // llvm.mips.min.u.h
-    1, // llvm.mips.min.u.w
-    1, // llvm.mips.mini.s.b
-    1, // llvm.mips.mini.s.d
-    1, // llvm.mips.mini.s.h
-    1, // llvm.mips.mini.s.w
-    1, // llvm.mips.mini.u.b
-    1, // llvm.mips.mini.u.d
-    1, // llvm.mips.mini.u.h
-    1, // llvm.mips.mini.u.w
-    1, // llvm.mips.mod.s.b
-    1, // llvm.mips.mod.s.d
-    1, // llvm.mips.mod.s.h
-    1, // llvm.mips.mod.s.w
-    1, // llvm.mips.mod.u.b
-    1, // llvm.mips.mod.u.d
-    1, // llvm.mips.mod.u.h
-    1, // llvm.mips.mod.u.w
-    1, // llvm.mips.modsub
-    1, // llvm.mips.move.v
-    1, // llvm.mips.msub
-    1, // llvm.mips.msub.q.h
-    1, // llvm.mips.msub.q.w
-    1, // llvm.mips.msubr.q.h
-    1, // llvm.mips.msubr.q.w
-    1, // llvm.mips.msubu
-    1, // llvm.mips.msubv.b
-    1, // llvm.mips.msubv.d
-    1, // llvm.mips.msubv.h
-    1, // llvm.mips.msubv.w
-    3, // llvm.mips.mthlip
-    3, // llvm.mips.mul.ph
-    1, // llvm.mips.mul.q.h
-    1, // llvm.mips.mul.q.w
-    3, // llvm.mips.mul.s.ph
-    3, // llvm.mips.muleq.s.w.phl
-    3, // llvm.mips.muleq.s.w.phr
-    3, // llvm.mips.muleu.s.ph.qbl
-    3, // llvm.mips.muleu.s.ph.qbr
-    3, // llvm.mips.mulq.rs.ph
-    3, // llvm.mips.mulq.rs.w
-    3, // llvm.mips.mulq.s.ph
-    3, // llvm.mips.mulq.s.w
-    1, // llvm.mips.mulr.q.h
-    1, // llvm.mips.mulr.q.w
-    1, // llvm.mips.mulsa.w.ph
-    3, // llvm.mips.mulsaq.s.w.ph
-    1, // llvm.mips.mult
-    1, // llvm.mips.multu
-    1, // llvm.mips.mulv.b
-    1, // llvm.mips.mulv.d
-    1, // llvm.mips.mulv.h
-    1, // llvm.mips.mulv.w
-    1, // llvm.mips.nloc.b
-    1, // llvm.mips.nloc.d
-    1, // llvm.mips.nloc.h
-    1, // llvm.mips.nloc.w
-    1, // llvm.mips.nlzc.b
-    1, // llvm.mips.nlzc.d
-    1, // llvm.mips.nlzc.h
-    1, // llvm.mips.nlzc.w
-    1, // llvm.mips.nor.v
-    1, // llvm.mips.nori.b
-    1, // llvm.mips.or.v
-    1, // llvm.mips.ori.b
-    1, // llvm.mips.packrl.ph
-    1, // llvm.mips.pckev.b
-    1, // llvm.mips.pckev.d
-    1, // llvm.mips.pckev.h
-    1, // llvm.mips.pckev.w
-    1, // llvm.mips.pckod.b
-    1, // llvm.mips.pckod.d
-    1, // llvm.mips.pckod.h
-    1, // llvm.mips.pckod.w
-    1, // llvm.mips.pcnt.b
-    1, // llvm.mips.pcnt.d
-    1, // llvm.mips.pcnt.h
-    1, // llvm.mips.pcnt.w
-    16, // llvm.mips.pick.ph
-    16, // llvm.mips.pick.qb
-    1, // llvm.mips.preceq.w.phl
-    1, // llvm.mips.preceq.w.phr
-    1, // llvm.mips.precequ.ph.qbl
-    1, // llvm.mips.precequ.ph.qbla
-    1, // llvm.mips.precequ.ph.qbr
-    1, // llvm.mips.precequ.ph.qbra
-    1, // llvm.mips.preceu.ph.qbl
-    1, // llvm.mips.preceu.ph.qbla
-    1, // llvm.mips.preceu.ph.qbr
-    1, // llvm.mips.preceu.ph.qbra
-    3, // llvm.mips.precr.qb.ph
-    1, // llvm.mips.precr.sra.ph.w
-    1, // llvm.mips.precr.sra.r.ph.w
-    1, // llvm.mips.precrq.ph.w
-    1, // llvm.mips.precrq.qb.ph
-    3, // llvm.mips.precrq.rs.ph.w
-    3, // llvm.mips.precrqu.s.qb.ph
-    1, // llvm.mips.prepend
-    1, // llvm.mips.raddu.w.qb
-    16, // llvm.mips.rddsp
-    1, // llvm.mips.repl.ph
-    1, // llvm.mips.repl.qb
-    1, // llvm.mips.sat.s.b
-    1, // llvm.mips.sat.s.d
-    1, // llvm.mips.sat.s.h
-    1, // llvm.mips.sat.s.w
-    1, // llvm.mips.sat.u.b
-    1, // llvm.mips.sat.u.d
-    1, // llvm.mips.sat.u.h
-    1, // llvm.mips.sat.u.w
-    1, // llvm.mips.shf.b
-    1, // llvm.mips.shf.h
-    1, // llvm.mips.shf.w
-    1, // llvm.mips.shilo
-    3, // llvm.mips.shll.ph
-    3, // llvm.mips.shll.qb
-    3, // llvm.mips.shll.s.ph
-    3, // llvm.mips.shll.s.w
-    1, // llvm.mips.shra.ph
-    1, // llvm.mips.shra.qb
-    1, // llvm.mips.shra.r.ph
-    1, // llvm.mips.shra.r.qb
-    1, // llvm.mips.shra.r.w
-    1, // llvm.mips.shrl.ph
-    1, // llvm.mips.shrl.qb
-    1, // llvm.mips.sld.b
-    1, // llvm.mips.sld.d
-    1, // llvm.mips.sld.h
-    1, // llvm.mips.sld.w
-    1, // llvm.mips.sldi.b
-    1, // llvm.mips.sldi.d
-    1, // llvm.mips.sldi.h
-    1, // llvm.mips.sldi.w
-    1, // llvm.mips.sll.b
-    1, // llvm.mips.sll.d
-    1, // llvm.mips.sll.h
-    1, // llvm.mips.sll.w
-    1, // llvm.mips.slli.b
-    1, // llvm.mips.slli.d
-    1, // llvm.mips.slli.h
-    1, // llvm.mips.slli.w
-    1, // llvm.mips.splat.b
-    1, // llvm.mips.splat.d
-    1, // llvm.mips.splat.h
-    1, // llvm.mips.splat.w
-    1, // llvm.mips.splati.b
-    1, // llvm.mips.splati.d
-    1, // llvm.mips.splati.h
-    1, // llvm.mips.splati.w
-    1, // llvm.mips.sra.b
-    1, // llvm.mips.sra.d
-    1, // llvm.mips.sra.h
-    1, // llvm.mips.sra.w
-    1, // llvm.mips.srai.b
-    1, // llvm.mips.srai.d
-    1, // llvm.mips.srai.h
-    1, // llvm.mips.srai.w
-    1, // llvm.mips.srar.b
-    1, // llvm.mips.srar.d
-    1, // llvm.mips.srar.h
-    1, // llvm.mips.srar.w
-    1, // llvm.mips.srari.b
-    1, // llvm.mips.srari.d
-    1, // llvm.mips.srari.h
-    1, // llvm.mips.srari.w
-    1, // llvm.mips.srl.b
-    1, // llvm.mips.srl.d
-    1, // llvm.mips.srl.h
-    1, // llvm.mips.srl.w
-    1, // llvm.mips.srli.b
-    1, // llvm.mips.srli.d
-    1, // llvm.mips.srli.h
-    1, // llvm.mips.srli.w
-    1, // llvm.mips.srlr.b
-    1, // llvm.mips.srlr.d
-    1, // llvm.mips.srlr.h
-    1, // llvm.mips.srlr.w
-    1, // llvm.mips.srlri.b
-    1, // llvm.mips.srlri.d
-    1, // llvm.mips.srlri.h
-    1, // llvm.mips.srlri.w
-    21, // llvm.mips.st.b
-    21, // llvm.mips.st.d
-    21, // llvm.mips.st.h
-    21, // llvm.mips.st.w
-    1, // llvm.mips.subq.ph
-    1, // llvm.mips.subq.s.ph
-    3, // llvm.mips.subq.s.w
-    1, // llvm.mips.subqh.ph
-    1, // llvm.mips.subqh.r.ph
-    1, // llvm.mips.subqh.r.w
-    1, // llvm.mips.subqh.w
-    1, // llvm.mips.subs.s.b
-    1, // llvm.mips.subs.s.d
-    1, // llvm.mips.subs.s.h
-    1, // llvm.mips.subs.s.w
-    1, // llvm.mips.subs.u.b
-    1, // llvm.mips.subs.u.d
-    1, // llvm.mips.subs.u.h
-    1, // llvm.mips.subs.u.w
-    1, // llvm.mips.subsus.u.b
-    1, // llvm.mips.subsus.u.d
-    1, // llvm.mips.subsus.u.h
-    1, // llvm.mips.subsus.u.w
-    1, // llvm.mips.subsuu.s.b
-    1, // llvm.mips.subsuu.s.d
-    1, // llvm.mips.subsuu.s.h
-    1, // llvm.mips.subsuu.s.w
-    3, // llvm.mips.subu.ph
-    1, // llvm.mips.subu.qb
-    3, // llvm.mips.subu.s.ph
-    1, // llvm.mips.subu.s.qb
-    1, // llvm.mips.subuh.qb
-    1, // llvm.mips.subuh.r.qb
-    1, // llvm.mips.subv.b
-    1, // llvm.mips.subv.d
-    1, // llvm.mips.subv.h
-    1, // llvm.mips.subv.w
-    1, // llvm.mips.subvi.b
-    1, // llvm.mips.subvi.d
-    1, // llvm.mips.subvi.h
-    1, // llvm.mips.subvi.w
-    1, // llvm.mips.vshf.b
-    1, // llvm.mips.vshf.d
-    1, // llvm.mips.vshf.h
-    1, // llvm.mips.vshf.w
-    3, // llvm.mips.wrdsp
-    1, // llvm.mips.xor.v
-    1, // llvm.mips.xori.b
-    1, // llvm.nvvm.add.rm.d
-    1, // llvm.nvvm.add.rm.f
-    1, // llvm.nvvm.add.rm.ftz.f
-    1, // llvm.nvvm.add.rn.d
-    1, // llvm.nvvm.add.rn.f
-    1, // llvm.nvvm.add.rn.ftz.f
-    1, // llvm.nvvm.add.rp.d
-    1, // llvm.nvvm.add.rp.f
-    1, // llvm.nvvm.add.rp.ftz.f
-    1, // llvm.nvvm.add.rz.d
-    1, // llvm.nvvm.add.rz.f
-    1, // llvm.nvvm.add.rz.ftz.f
-    18, // llvm.nvvm.atomic.add.gen.f.cta
-    18, // llvm.nvvm.atomic.add.gen.f.sys
-    18, // llvm.nvvm.atomic.add.gen.i.cta
-    18, // llvm.nvvm.atomic.add.gen.i.sys
-    18, // llvm.nvvm.atomic.and.gen.i.cta
-    18, // llvm.nvvm.atomic.and.gen.i.sys
-    18, // llvm.nvvm.atomic.cas.gen.i.cta
-    18, // llvm.nvvm.atomic.cas.gen.i.sys
-    18, // llvm.nvvm.atomic.dec.gen.i.cta
-    18, // llvm.nvvm.atomic.dec.gen.i.sys
-    18, // llvm.nvvm.atomic.exch.gen.i.cta
-    18, // llvm.nvvm.atomic.exch.gen.i.sys
-    18, // llvm.nvvm.atomic.inc.gen.i.cta
-    18, // llvm.nvvm.atomic.inc.gen.i.sys
-    18, // llvm.nvvm.atomic.load.add.f32
-    18, // llvm.nvvm.atomic.load.add.f64
-    18, // llvm.nvvm.atomic.load.dec.32
-    18, // llvm.nvvm.atomic.load.inc.32
-    18, // llvm.nvvm.atomic.max.gen.i.cta
-    18, // llvm.nvvm.atomic.max.gen.i.sys
-    18, // llvm.nvvm.atomic.min.gen.i.cta
-    18, // llvm.nvvm.atomic.min.gen.i.sys
-    18, // llvm.nvvm.atomic.or.gen.i.cta
-    18, // llvm.nvvm.atomic.or.gen.i.sys
-    18, // llvm.nvvm.atomic.xor.gen.i.cta
-    18, // llvm.nvvm.atomic.xor.gen.i.sys
-    33, // llvm.nvvm.bar.sync
-    33, // llvm.nvvm.bar.warp.sync
-    33, // llvm.nvvm.barrier
-    33, // llvm.nvvm.barrier.n
-    33, // llvm.nvvm.barrier.sync
-    33, // llvm.nvvm.barrier.sync.cnt
-    33, // llvm.nvvm.barrier0
-    33, // llvm.nvvm.barrier0.and
-    33, // llvm.nvvm.barrier0.or
-    33, // llvm.nvvm.barrier0.popc
-    1, // llvm.nvvm.bitcast.d2ll
-    1, // llvm.nvvm.bitcast.f2i
-    1, // llvm.nvvm.bitcast.i2f
-    1, // llvm.nvvm.bitcast.ll2d
-    1, // llvm.nvvm.ceil.d
-    1, // llvm.nvvm.ceil.f
-    1, // llvm.nvvm.ceil.ftz.f
-    3, // llvm.nvvm.compiler.error
-    3, // llvm.nvvm.compiler.warn
-    1, // llvm.nvvm.cos.approx.f
-    1, // llvm.nvvm.cos.approx.ftz.f
-    1, // llvm.nvvm.d2f.rm
-    1, // llvm.nvvm.d2f.rm.ftz
-    1, // llvm.nvvm.d2f.rn
-    1, // llvm.nvvm.d2f.rn.ftz
-    1, // llvm.nvvm.d2f.rp
-    1, // llvm.nvvm.d2f.rp.ftz
-    1, // llvm.nvvm.d2f.rz
-    1, // llvm.nvvm.d2f.rz.ftz
-    1, // llvm.nvvm.d2i.hi
-    1, // llvm.nvvm.d2i.lo
-    1, // llvm.nvvm.d2i.rm
-    1, // llvm.nvvm.d2i.rn
-    1, // llvm.nvvm.d2i.rp
-    1, // llvm.nvvm.d2i.rz
-    1, // llvm.nvvm.d2ll.rm
-    1, // llvm.nvvm.d2ll.rn
-    1, // llvm.nvvm.d2ll.rp
-    1, // llvm.nvvm.d2ll.rz
-    1, // llvm.nvvm.d2ui.rm
-    1, // llvm.nvvm.d2ui.rn
-    1, // llvm.nvvm.d2ui.rp
-    1, // llvm.nvvm.d2ui.rz
-    1, // llvm.nvvm.d2ull.rm
-    1, // llvm.nvvm.d2ull.rn
-    1, // llvm.nvvm.d2ull.rp
-    1, // llvm.nvvm.d2ull.rz
-    1, // llvm.nvvm.div.approx.f
-    1, // llvm.nvvm.div.approx.ftz.f
-    1, // llvm.nvvm.div.rm.d
-    1, // llvm.nvvm.div.rm.f
-    1, // llvm.nvvm.div.rm.ftz.f
-    1, // llvm.nvvm.div.rn.d
-    1, // llvm.nvvm.div.rn.f
-    1, // llvm.nvvm.div.rn.ftz.f
-    1, // llvm.nvvm.div.rp.d
-    1, // llvm.nvvm.div.rp.f
-    1, // llvm.nvvm.div.rp.ftz.f
-    1, // llvm.nvvm.div.rz.d
-    1, // llvm.nvvm.div.rz.f
-    1, // llvm.nvvm.div.rz.ftz.f
-    1, // llvm.nvvm.ex2.approx.d
-    1, // llvm.nvvm.ex2.approx.f
-    1, // llvm.nvvm.ex2.approx.ftz.f
-    1, // llvm.nvvm.f2h.rn
-    1, // llvm.nvvm.f2h.rn.ftz
-    1, // llvm.nvvm.f2i.rm
-    1, // llvm.nvvm.f2i.rm.ftz
-    1, // llvm.nvvm.f2i.rn
-    1, // llvm.nvvm.f2i.rn.ftz
-    1, // llvm.nvvm.f2i.rp
-    1, // llvm.nvvm.f2i.rp.ftz
-    1, // llvm.nvvm.f2i.rz
-    1, // llvm.nvvm.f2i.rz.ftz
-    1, // llvm.nvvm.f2ll.rm
-    1, // llvm.nvvm.f2ll.rm.ftz
-    1, // llvm.nvvm.f2ll.rn
-    1, // llvm.nvvm.f2ll.rn.ftz
-    1, // llvm.nvvm.f2ll.rp
-    1, // llvm.nvvm.f2ll.rp.ftz
-    1, // llvm.nvvm.f2ll.rz
-    1, // llvm.nvvm.f2ll.rz.ftz
-    1, // llvm.nvvm.f2ui.rm
-    1, // llvm.nvvm.f2ui.rm.ftz
-    1, // llvm.nvvm.f2ui.rn
-    1, // llvm.nvvm.f2ui.rn.ftz
-    1, // llvm.nvvm.f2ui.rp
-    1, // llvm.nvvm.f2ui.rp.ftz
-    1, // llvm.nvvm.f2ui.rz
-    1, // llvm.nvvm.f2ui.rz.ftz
-    1, // llvm.nvvm.f2ull.rm
-    1, // llvm.nvvm.f2ull.rm.ftz
-    1, // llvm.nvvm.f2ull.rn
-    1, // llvm.nvvm.f2ull.rn.ftz
-    1, // llvm.nvvm.f2ull.rp
-    1, // llvm.nvvm.f2ull.rp.ftz
-    1, // llvm.nvvm.f2ull.rz
-    1, // llvm.nvvm.f2ull.rz.ftz
-    1, // llvm.nvvm.fabs.d
-    1, // llvm.nvvm.fabs.f
-    1, // llvm.nvvm.fabs.ftz.f
-    1, // llvm.nvvm.floor.d
-    1, // llvm.nvvm.floor.f
-    1, // llvm.nvvm.floor.ftz.f
-    1, // llvm.nvvm.fma.rm.d
-    1, // llvm.nvvm.fma.rm.f
-    1, // llvm.nvvm.fma.rm.ftz.f
-    1, // llvm.nvvm.fma.rn.d
-    1, // llvm.nvvm.fma.rn.f
-    1, // llvm.nvvm.fma.rn.ftz.f
-    1, // llvm.nvvm.fma.rp.d
-    1, // llvm.nvvm.fma.rp.f
-    1, // llvm.nvvm.fma.rp.ftz.f
-    1, // llvm.nvvm.fma.rz.d
-    1, // llvm.nvvm.fma.rz.f
-    1, // llvm.nvvm.fma.rz.ftz.f
-    1, // llvm.nvvm.fmax.d
-    1, // llvm.nvvm.fmax.f
-    1, // llvm.nvvm.fmax.ftz.f
-    1, // llvm.nvvm.fmin.d
-    1, // llvm.nvvm.fmin.f
-    1, // llvm.nvvm.fmin.ftz.f
-    1, // llvm.nvvm.fns
-    1, // llvm.nvvm.i2d.rm
-    1, // llvm.nvvm.i2d.rn
-    1, // llvm.nvvm.i2d.rp
-    1, // llvm.nvvm.i2d.rz
-    1, // llvm.nvvm.i2f.rm
-    1, // llvm.nvvm.i2f.rn
-    1, // llvm.nvvm.i2f.rp
-    1, // llvm.nvvm.i2f.rz
-    1, // llvm.nvvm.isspacep.const
-    1, // llvm.nvvm.isspacep.global
-    1, // llvm.nvvm.isspacep.local
-    1, // llvm.nvvm.isspacep.shared
-    1, // llvm.nvvm.istypep.sampler
-    1, // llvm.nvvm.istypep.surface
-    1, // llvm.nvvm.istypep.texture
-    37, // llvm.nvvm.ldg.global.f
-    37, // llvm.nvvm.ldg.global.i
-    37, // llvm.nvvm.ldg.global.p
-    37, // llvm.nvvm.ldu.global.f
-    37, // llvm.nvvm.ldu.global.i
-    37, // llvm.nvvm.ldu.global.p
-    1, // llvm.nvvm.lg2.approx.d
-    1, // llvm.nvvm.lg2.approx.f
-    1, // llvm.nvvm.lg2.approx.ftz.f
-    1, // llvm.nvvm.ll2d.rm
-    1, // llvm.nvvm.ll2d.rn
-    1, // llvm.nvvm.ll2d.rp
-    1, // llvm.nvvm.ll2d.rz
-    1, // llvm.nvvm.ll2f.rm
-    1, // llvm.nvvm.ll2f.rn
-    1, // llvm.nvvm.ll2f.rp
-    1, // llvm.nvvm.ll2f.rz
-    1, // llvm.nvvm.lohi.i2d
-    38, // llvm.nvvm.match.all.sync.i32p
-    38, // llvm.nvvm.match.all.sync.i64p
-    38, // llvm.nvvm.match.any.sync.i32
-    38, // llvm.nvvm.match.any.sync.i64
-    3, // llvm.nvvm.membar.cta
-    3, // llvm.nvvm.membar.gl
-    3, // llvm.nvvm.membar.sys
-    1, // llvm.nvvm.move.double
-    1, // llvm.nvvm.move.float
-    1, // llvm.nvvm.move.i16
-    1, // llvm.nvvm.move.i32
-    1, // llvm.nvvm.move.i64
-    12, // llvm.nvvm.move.ptr
-    1, // llvm.nvvm.mul.rm.d
-    1, // llvm.nvvm.mul.rm.f
-    1, // llvm.nvvm.mul.rm.ftz.f
-    1, // llvm.nvvm.mul.rn.d
-    1, // llvm.nvvm.mul.rn.f
-    1, // llvm.nvvm.mul.rn.ftz.f
-    1, // llvm.nvvm.mul.rp.d
-    1, // llvm.nvvm.mul.rp.f
-    1, // llvm.nvvm.mul.rp.ftz.f
-    1, // llvm.nvvm.mul.rz.d
-    1, // llvm.nvvm.mul.rz.f
-    1, // llvm.nvvm.mul.rz.ftz.f
-    1, // llvm.nvvm.mul24.i
-    1, // llvm.nvvm.mul24.ui
-    1, // llvm.nvvm.mulhi.i
-    1, // llvm.nvvm.mulhi.ll
-    1, // llvm.nvvm.mulhi.ui
-    1, // llvm.nvvm.mulhi.ull
-    1, // llvm.nvvm.prmt
-    1, // llvm.nvvm.ptr.constant.to.gen
-    1, // llvm.nvvm.ptr.gen.to.constant
-    1, // llvm.nvvm.ptr.gen.to.global
-    1, // llvm.nvvm.ptr.gen.to.local
-    1, // llvm.nvvm.ptr.gen.to.param
-    1, // llvm.nvvm.ptr.gen.to.shared
-    1, // llvm.nvvm.ptr.global.to.gen
-    1, // llvm.nvvm.ptr.local.to.gen
-    1, // llvm.nvvm.ptr.shared.to.gen
-    1, // llvm.nvvm.rcp.approx.ftz.d
-    1, // llvm.nvvm.rcp.rm.d
-    1, // llvm.nvvm.rcp.rm.f
-    1, // llvm.nvvm.rcp.rm.ftz.f
-    1, // llvm.nvvm.rcp.rn.d
-    1, // llvm.nvvm.rcp.rn.f
-    1, // llvm.nvvm.rcp.rn.ftz.f
-    1, // llvm.nvvm.rcp.rp.d
-    1, // llvm.nvvm.rcp.rp.f
-    1, // llvm.nvvm.rcp.rp.ftz.f
-    1, // llvm.nvvm.rcp.rz.d
-    1, // llvm.nvvm.rcp.rz.f
-    1, // llvm.nvvm.rcp.rz.ftz.f
-    1, // llvm.nvvm.read.ptx.sreg.clock
-    1, // llvm.nvvm.read.ptx.sreg.clock64
-    1, // llvm.nvvm.read.ptx.sreg.ctaid.w
-    1, // llvm.nvvm.read.ptx.sreg.ctaid.x
-    1, // llvm.nvvm.read.ptx.sreg.ctaid.y
-    1, // llvm.nvvm.read.ptx.sreg.ctaid.z
-    1, // llvm.nvvm.read.ptx.sreg.envreg0
-    1, // llvm.nvvm.read.ptx.sreg.envreg1
-    1, // llvm.nvvm.read.ptx.sreg.envreg10
-    1, // llvm.nvvm.read.ptx.sreg.envreg11
-    1, // llvm.nvvm.read.ptx.sreg.envreg12
-    1, // llvm.nvvm.read.ptx.sreg.envreg13
-    1, // llvm.nvvm.read.ptx.sreg.envreg14
-    1, // llvm.nvvm.read.ptx.sreg.envreg15
-    1, // llvm.nvvm.read.ptx.sreg.envreg16
-    1, // llvm.nvvm.read.ptx.sreg.envreg17
-    1, // llvm.nvvm.read.ptx.sreg.envreg18
-    1, // llvm.nvvm.read.ptx.sreg.envreg19
-    1, // llvm.nvvm.read.ptx.sreg.envreg2
-    1, // llvm.nvvm.read.ptx.sreg.envreg20
-    1, // llvm.nvvm.read.ptx.sreg.envreg21
-    1, // llvm.nvvm.read.ptx.sreg.envreg22
-    1, // llvm.nvvm.read.ptx.sreg.envreg23
-    1, // llvm.nvvm.read.ptx.sreg.envreg24
-    1, // llvm.nvvm.read.ptx.sreg.envreg25
-    1, // llvm.nvvm.read.ptx.sreg.envreg26
-    1, // llvm.nvvm.read.ptx.sreg.envreg27
-    1, // llvm.nvvm.read.ptx.sreg.envreg28
-    1, // llvm.nvvm.read.ptx.sreg.envreg29
-    1, // llvm.nvvm.read.ptx.sreg.envreg3
-    1, // llvm.nvvm.read.ptx.sreg.envreg30
-    1, // llvm.nvvm.read.ptx.sreg.envreg31
-    1, // llvm.nvvm.read.ptx.sreg.envreg4
-    1, // llvm.nvvm.read.ptx.sreg.envreg5
-    1, // llvm.nvvm.read.ptx.sreg.envreg6
-    1, // llvm.nvvm.read.ptx.sreg.envreg7
-    1, // llvm.nvvm.read.ptx.sreg.envreg8
-    1, // llvm.nvvm.read.ptx.sreg.envreg9
-    1, // llvm.nvvm.read.ptx.sreg.gridid
-    1, // llvm.nvvm.read.ptx.sreg.laneid
-    1, // llvm.nvvm.read.ptx.sreg.lanemask.eq
-    1, // llvm.nvvm.read.ptx.sreg.lanemask.ge
-    1, // llvm.nvvm.read.ptx.sreg.lanemask.gt
-    1, // llvm.nvvm.read.ptx.sreg.lanemask.le
-    1, // llvm.nvvm.read.ptx.sreg.lanemask.lt
-    1, // llvm.nvvm.read.ptx.sreg.nctaid.w
-    1, // llvm.nvvm.read.ptx.sreg.nctaid.x
-    1, // llvm.nvvm.read.ptx.sreg.nctaid.y
-    1, // llvm.nvvm.read.ptx.sreg.nctaid.z
-    1, // llvm.nvvm.read.ptx.sreg.nsmid
-    1, // llvm.nvvm.read.ptx.sreg.ntid.w
-    1, // llvm.nvvm.read.ptx.sreg.ntid.x
-    1, // llvm.nvvm.read.ptx.sreg.ntid.y
-    1, // llvm.nvvm.read.ptx.sreg.ntid.z
-    1, // llvm.nvvm.read.ptx.sreg.nwarpid
-    1, // llvm.nvvm.read.ptx.sreg.pm0
-    1, // llvm.nvvm.read.ptx.sreg.pm1
-    1, // llvm.nvvm.read.ptx.sreg.pm2
-    1, // llvm.nvvm.read.ptx.sreg.pm3
-    1, // llvm.nvvm.read.ptx.sreg.smid
-    1, // llvm.nvvm.read.ptx.sreg.tid.w
-    1, // llvm.nvvm.read.ptx.sreg.tid.x
-    1, // llvm.nvvm.read.ptx.sreg.tid.y
-    1, // llvm.nvvm.read.ptx.sreg.tid.z
-    1, // llvm.nvvm.read.ptx.sreg.warpid
-    1, // llvm.nvvm.read.ptx.sreg.warpsize
-    1, // llvm.nvvm.reflect
-    1, // llvm.nvvm.rotate.b32
-    1, // llvm.nvvm.rotate.b64
-    1, // llvm.nvvm.rotate.right.b64
-    1, // llvm.nvvm.round.d
-    1, // llvm.nvvm.round.f
-    1, // llvm.nvvm.round.ftz.f
-    1, // llvm.nvvm.rsqrt.approx.d
-    1, // llvm.nvvm.rsqrt.approx.f
-    1, // llvm.nvvm.rsqrt.approx.ftz.f
-    1, // llvm.nvvm.sad.i
-    1, // llvm.nvvm.sad.ui
-    1, // llvm.nvvm.saturate.d
-    1, // llvm.nvvm.saturate.f
-    1, // llvm.nvvm.saturate.ftz.f
-    38, // llvm.nvvm.shfl.bfly.f32
-    38, // llvm.nvvm.shfl.bfly.i32
-    38, // llvm.nvvm.shfl.down.f32
-    38, // llvm.nvvm.shfl.down.i32
-    38, // llvm.nvvm.shfl.idx.f32
-    38, // llvm.nvvm.shfl.idx.i32
-    38, // llvm.nvvm.shfl.sync.bfly.f32
-    38, // llvm.nvvm.shfl.sync.bfly.i32
-    38, // llvm.nvvm.shfl.sync.down.f32
-    38, // llvm.nvvm.shfl.sync.down.i32
-    38, // llvm.nvvm.shfl.sync.idx.f32
-    38, // llvm.nvvm.shfl.sync.idx.i32
-    38, // llvm.nvvm.shfl.sync.up.f32
-    38, // llvm.nvvm.shfl.sync.up.i32
-    38, // llvm.nvvm.shfl.up.f32
-    38, // llvm.nvvm.shfl.up.i32
-    1, // llvm.nvvm.sin.approx.f
-    1, // llvm.nvvm.sin.approx.ftz.f
-    1, // llvm.nvvm.sqrt.approx.f
-    1, // llvm.nvvm.sqrt.approx.ftz.f
-    1, // llvm.nvvm.sqrt.f
-    1, // llvm.nvvm.sqrt.rm.d
-    1, // llvm.nvvm.sqrt.rm.f
-    1, // llvm.nvvm.sqrt.rm.ftz.f
-    1, // llvm.nvvm.sqrt.rn.d
-    1, // llvm.nvvm.sqrt.rn.f
-    1, // llvm.nvvm.sqrt.rn.ftz.f
-    1, // llvm.nvvm.sqrt.rp.d
-    1, // llvm.nvvm.sqrt.rp.f
-    1, // llvm.nvvm.sqrt.rp.ftz.f
-    1, // llvm.nvvm.sqrt.rz.d
-    1, // llvm.nvvm.sqrt.rz.f
-    1, // llvm.nvvm.sqrt.rz.ftz.f
-    3, // llvm.nvvm.suld.1d.array.i16.clamp
-    3, // llvm.nvvm.suld.1d.array.i16.trap
-    3, // llvm.nvvm.suld.1d.array.i16.zero
-    3, // llvm.nvvm.suld.1d.array.i32.clamp
-    3, // llvm.nvvm.suld.1d.array.i32.trap
-    3, // llvm.nvvm.suld.1d.array.i32.zero
-    3, // llvm.nvvm.suld.1d.array.i64.clamp
-    3, // llvm.nvvm.suld.1d.array.i64.trap
-    3, // llvm.nvvm.suld.1d.array.i64.zero
-    3, // llvm.nvvm.suld.1d.array.i8.clamp
-    3, // llvm.nvvm.suld.1d.array.i8.trap
-    3, // llvm.nvvm.suld.1d.array.i8.zero
-    3, // llvm.nvvm.suld.1d.array.v2i16.clamp
-    3, // llvm.nvvm.suld.1d.array.v2i16.trap
-    3, // llvm.nvvm.suld.1d.array.v2i16.zero
-    3, // llvm.nvvm.suld.1d.array.v2i32.clamp
-    3, // llvm.nvvm.suld.1d.array.v2i32.trap
-    3, // llvm.nvvm.suld.1d.array.v2i32.zero
-    3, // llvm.nvvm.suld.1d.array.v2i64.clamp
-    3, // llvm.nvvm.suld.1d.array.v2i64.trap
-    3, // llvm.nvvm.suld.1d.array.v2i64.zero
-    3, // llvm.nvvm.suld.1d.array.v2i8.clamp
-    3, // llvm.nvvm.suld.1d.array.v2i8.trap
-    3, // llvm.nvvm.suld.1d.array.v2i8.zero
-    3, // llvm.nvvm.suld.1d.array.v4i16.clamp
-    3, // llvm.nvvm.suld.1d.array.v4i16.trap
-    3, // llvm.nvvm.suld.1d.array.v4i16.zero
-    3, // llvm.nvvm.suld.1d.array.v4i32.clamp
-    3, // llvm.nvvm.suld.1d.array.v4i32.trap
-    3, // llvm.nvvm.suld.1d.array.v4i32.zero
-    3, // llvm.nvvm.suld.1d.array.v4i8.clamp
-    3, // llvm.nvvm.suld.1d.array.v4i8.trap
-    3, // llvm.nvvm.suld.1d.array.v4i8.zero
-    3, // llvm.nvvm.suld.1d.i16.clamp
-    3, // llvm.nvvm.suld.1d.i16.trap
-    3, // llvm.nvvm.suld.1d.i16.zero
-    3, // llvm.nvvm.suld.1d.i32.clamp
-    3, // llvm.nvvm.suld.1d.i32.trap
-    3, // llvm.nvvm.suld.1d.i32.zero
-    3, // llvm.nvvm.suld.1d.i64.clamp
-    3, // llvm.nvvm.suld.1d.i64.trap
-    3, // llvm.nvvm.suld.1d.i64.zero
-    3, // llvm.nvvm.suld.1d.i8.clamp
-    3, // llvm.nvvm.suld.1d.i8.trap
-    3, // llvm.nvvm.suld.1d.i8.zero
-    3, // llvm.nvvm.suld.1d.v2i16.clamp
-    3, // llvm.nvvm.suld.1d.v2i16.trap
-    3, // llvm.nvvm.suld.1d.v2i16.zero
-    3, // llvm.nvvm.suld.1d.v2i32.clamp
-    3, // llvm.nvvm.suld.1d.v2i32.trap
-    3, // llvm.nvvm.suld.1d.v2i32.zero
-    3, // llvm.nvvm.suld.1d.v2i64.clamp
-    3, // llvm.nvvm.suld.1d.v2i64.trap
-    3, // llvm.nvvm.suld.1d.v2i64.zero
-    3, // llvm.nvvm.suld.1d.v2i8.clamp
-    3, // llvm.nvvm.suld.1d.v2i8.trap
-    3, // llvm.nvvm.suld.1d.v2i8.zero
-    3, // llvm.nvvm.suld.1d.v4i16.clamp
-    3, // llvm.nvvm.suld.1d.v4i16.trap
-    3, // llvm.nvvm.suld.1d.v4i16.zero
-    3, // llvm.nvvm.suld.1d.v4i32.clamp
-    3, // llvm.nvvm.suld.1d.v4i32.trap
-    3, // llvm.nvvm.suld.1d.v4i32.zero
-    3, // llvm.nvvm.suld.1d.v4i8.clamp
-    3, // llvm.nvvm.suld.1d.v4i8.trap
-    3, // llvm.nvvm.suld.1d.v4i8.zero
-    3, // llvm.nvvm.suld.2d.array.i16.clamp
-    3, // llvm.nvvm.suld.2d.array.i16.trap
-    3, // llvm.nvvm.suld.2d.array.i16.zero
-    3, // llvm.nvvm.suld.2d.array.i32.clamp
-    3, // llvm.nvvm.suld.2d.array.i32.trap
-    3, // llvm.nvvm.suld.2d.array.i32.zero
-    3, // llvm.nvvm.suld.2d.array.i64.clamp
-    3, // llvm.nvvm.suld.2d.array.i64.trap
-    3, // llvm.nvvm.suld.2d.array.i64.zero
-    3, // llvm.nvvm.suld.2d.array.i8.clamp
-    3, // llvm.nvvm.suld.2d.array.i8.trap
-    3, // llvm.nvvm.suld.2d.array.i8.zero
-    3, // llvm.nvvm.suld.2d.array.v2i16.clamp
-    3, // llvm.nvvm.suld.2d.array.v2i16.trap
-    3, // llvm.nvvm.suld.2d.array.v2i16.zero
-    3, // llvm.nvvm.suld.2d.array.v2i32.clamp
-    3, // llvm.nvvm.suld.2d.array.v2i32.trap
-    3, // llvm.nvvm.suld.2d.array.v2i32.zero
-    3, // llvm.nvvm.suld.2d.array.v2i64.clamp
-    3, // llvm.nvvm.suld.2d.array.v2i64.trap
-    3, // llvm.nvvm.suld.2d.array.v2i64.zero
-    3, // llvm.nvvm.suld.2d.array.v2i8.clamp
-    3, // llvm.nvvm.suld.2d.array.v2i8.trap
-    3, // llvm.nvvm.suld.2d.array.v2i8.zero
-    3, // llvm.nvvm.suld.2d.array.v4i16.clamp
-    3, // llvm.nvvm.suld.2d.array.v4i16.trap
-    3, // llvm.nvvm.suld.2d.array.v4i16.zero
-    3, // llvm.nvvm.suld.2d.array.v4i32.clamp
-    3, // llvm.nvvm.suld.2d.array.v4i32.trap
-    3, // llvm.nvvm.suld.2d.array.v4i32.zero
-    3, // llvm.nvvm.suld.2d.array.v4i8.clamp
-    3, // llvm.nvvm.suld.2d.array.v4i8.trap
-    3, // llvm.nvvm.suld.2d.array.v4i8.zero
-    3, // llvm.nvvm.suld.2d.i16.clamp
-    3, // llvm.nvvm.suld.2d.i16.trap
-    3, // llvm.nvvm.suld.2d.i16.zero
-    3, // llvm.nvvm.suld.2d.i32.clamp
-    3, // llvm.nvvm.suld.2d.i32.trap
-    3, // llvm.nvvm.suld.2d.i32.zero
-    3, // llvm.nvvm.suld.2d.i64.clamp
-    3, // llvm.nvvm.suld.2d.i64.trap
-    3, // llvm.nvvm.suld.2d.i64.zero
-    3, // llvm.nvvm.suld.2d.i8.clamp
-    3, // llvm.nvvm.suld.2d.i8.trap
-    3, // llvm.nvvm.suld.2d.i8.zero
-    3, // llvm.nvvm.suld.2d.v2i16.clamp
-    3, // llvm.nvvm.suld.2d.v2i16.trap
-    3, // llvm.nvvm.suld.2d.v2i16.zero
-    3, // llvm.nvvm.suld.2d.v2i32.clamp
-    3, // llvm.nvvm.suld.2d.v2i32.trap
-    3, // llvm.nvvm.suld.2d.v2i32.zero
-    3, // llvm.nvvm.suld.2d.v2i64.clamp
-    3, // llvm.nvvm.suld.2d.v2i64.trap
-    3, // llvm.nvvm.suld.2d.v2i64.zero
-    3, // llvm.nvvm.suld.2d.v2i8.clamp
-    3, // llvm.nvvm.suld.2d.v2i8.trap
-    3, // llvm.nvvm.suld.2d.v2i8.zero
-    3, // llvm.nvvm.suld.2d.v4i16.clamp
-    3, // llvm.nvvm.suld.2d.v4i16.trap
-    3, // llvm.nvvm.suld.2d.v4i16.zero
-    3, // llvm.nvvm.suld.2d.v4i32.clamp
-    3, // llvm.nvvm.suld.2d.v4i32.trap
-    3, // llvm.nvvm.suld.2d.v4i32.zero
-    3, // llvm.nvvm.suld.2d.v4i8.clamp
-    3, // llvm.nvvm.suld.2d.v4i8.trap
-    3, // llvm.nvvm.suld.2d.v4i8.zero
-    3, // llvm.nvvm.suld.3d.i16.clamp
-    3, // llvm.nvvm.suld.3d.i16.trap
-    3, // llvm.nvvm.suld.3d.i16.zero
-    3, // llvm.nvvm.suld.3d.i32.clamp
-    3, // llvm.nvvm.suld.3d.i32.trap
-    3, // llvm.nvvm.suld.3d.i32.zero
-    3, // llvm.nvvm.suld.3d.i64.clamp
-    3, // llvm.nvvm.suld.3d.i64.trap
-    3, // llvm.nvvm.suld.3d.i64.zero
-    3, // llvm.nvvm.suld.3d.i8.clamp
-    3, // llvm.nvvm.suld.3d.i8.trap
-    3, // llvm.nvvm.suld.3d.i8.zero
-    3, // llvm.nvvm.suld.3d.v2i16.clamp
-    3, // llvm.nvvm.suld.3d.v2i16.trap
-    3, // llvm.nvvm.suld.3d.v2i16.zero
-    3, // llvm.nvvm.suld.3d.v2i32.clamp
-    3, // llvm.nvvm.suld.3d.v2i32.trap
-    3, // llvm.nvvm.suld.3d.v2i32.zero
-    3, // llvm.nvvm.suld.3d.v2i64.clamp
-    3, // llvm.nvvm.suld.3d.v2i64.trap
-    3, // llvm.nvvm.suld.3d.v2i64.zero
-    3, // llvm.nvvm.suld.3d.v2i8.clamp
-    3, // llvm.nvvm.suld.3d.v2i8.trap
-    3, // llvm.nvvm.suld.3d.v2i8.zero
-    3, // llvm.nvvm.suld.3d.v4i16.clamp
-    3, // llvm.nvvm.suld.3d.v4i16.trap
-    3, // llvm.nvvm.suld.3d.v4i16.zero
-    3, // llvm.nvvm.suld.3d.v4i32.clamp
-    3, // llvm.nvvm.suld.3d.v4i32.trap
-    3, // llvm.nvvm.suld.3d.v4i32.zero
-    3, // llvm.nvvm.suld.3d.v4i8.clamp
-    3, // llvm.nvvm.suld.3d.v4i8.trap
-    3, // llvm.nvvm.suld.3d.v4i8.zero
-    1, // llvm.nvvm.suq.array.size
-    1, // llvm.nvvm.suq.channel.data.type
-    1, // llvm.nvvm.suq.channel.order
-    1, // llvm.nvvm.suq.depth
-    1, // llvm.nvvm.suq.height
-    1, // llvm.nvvm.suq.width
-    3, // llvm.nvvm.sust.b.1d.array.i16.clamp
-    3, // llvm.nvvm.sust.b.1d.array.i16.trap
-    3, // llvm.nvvm.sust.b.1d.array.i16.zero
-    3, // llvm.nvvm.sust.b.1d.array.i32.clamp
-    3, // llvm.nvvm.sust.b.1d.array.i32.trap
-    3, // llvm.nvvm.sust.b.1d.array.i32.zero
-    3, // llvm.nvvm.sust.b.1d.array.i64.clamp
-    3, // llvm.nvvm.sust.b.1d.array.i64.trap
-    3, // llvm.nvvm.sust.b.1d.array.i64.zero
-    3, // llvm.nvvm.sust.b.1d.array.i8.clamp
-    3, // llvm.nvvm.sust.b.1d.array.i8.trap
-    3, // llvm.nvvm.sust.b.1d.array.i8.zero
-    3, // llvm.nvvm.sust.b.1d.array.v2i16.clamp
-    3, // llvm.nvvm.sust.b.1d.array.v2i16.trap
-    3, // llvm.nvvm.sust.b.1d.array.v2i16.zero
-    3, // llvm.nvvm.sust.b.1d.array.v2i32.clamp
-    3, // llvm.nvvm.sust.b.1d.array.v2i32.trap
-    3, // llvm.nvvm.sust.b.1d.array.v2i32.zero
-    3, // llvm.nvvm.sust.b.1d.array.v2i64.clamp
-    3, // llvm.nvvm.sust.b.1d.array.v2i64.trap
-    3, // llvm.nvvm.sust.b.1d.array.v2i64.zero
-    3, // llvm.nvvm.sust.b.1d.array.v2i8.clamp
-    3, // llvm.nvvm.sust.b.1d.array.v2i8.trap
-    3, // llvm.nvvm.sust.b.1d.array.v2i8.zero
-    3, // llvm.nvvm.sust.b.1d.array.v4i16.clamp
-    3, // llvm.nvvm.sust.b.1d.array.v4i16.trap
-    3, // llvm.nvvm.sust.b.1d.array.v4i16.zero
-    3, // llvm.nvvm.sust.b.1d.array.v4i32.clamp
-    3, // llvm.nvvm.sust.b.1d.array.v4i32.trap
-    3, // llvm.nvvm.sust.b.1d.array.v4i32.zero
-    3, // llvm.nvvm.sust.b.1d.array.v4i8.clamp
-    3, // llvm.nvvm.sust.b.1d.array.v4i8.trap
-    3, // llvm.nvvm.sust.b.1d.array.v4i8.zero
-    3, // llvm.nvvm.sust.b.1d.i16.clamp
-    3, // llvm.nvvm.sust.b.1d.i16.trap
-    3, // llvm.nvvm.sust.b.1d.i16.zero
-    3, // llvm.nvvm.sust.b.1d.i32.clamp
-    3, // llvm.nvvm.sust.b.1d.i32.trap
-    3, // llvm.nvvm.sust.b.1d.i32.zero
-    3, // llvm.nvvm.sust.b.1d.i64.clamp
-    3, // llvm.nvvm.sust.b.1d.i64.trap
-    3, // llvm.nvvm.sust.b.1d.i64.zero
-    3, // llvm.nvvm.sust.b.1d.i8.clamp
-    3, // llvm.nvvm.sust.b.1d.i8.trap
-    3, // llvm.nvvm.sust.b.1d.i8.zero
-    3, // llvm.nvvm.sust.b.1d.v2i16.clamp
-    3, // llvm.nvvm.sust.b.1d.v2i16.trap
-    3, // llvm.nvvm.sust.b.1d.v2i16.zero
-    3, // llvm.nvvm.sust.b.1d.v2i32.clamp
-    3, // llvm.nvvm.sust.b.1d.v2i32.trap
-    3, // llvm.nvvm.sust.b.1d.v2i32.zero
-    3, // llvm.nvvm.sust.b.1d.v2i64.clamp
-    3, // llvm.nvvm.sust.b.1d.v2i64.trap
-    3, // llvm.nvvm.sust.b.1d.v2i64.zero
-    3, // llvm.nvvm.sust.b.1d.v2i8.clamp
-    3, // llvm.nvvm.sust.b.1d.v2i8.trap
-    3, // llvm.nvvm.sust.b.1d.v2i8.zero
-    3, // llvm.nvvm.sust.b.1d.v4i16.clamp
-    3, // llvm.nvvm.sust.b.1d.v4i16.trap
-    3, // llvm.nvvm.sust.b.1d.v4i16.zero
-    3, // llvm.nvvm.sust.b.1d.v4i32.clamp
-    3, // llvm.nvvm.sust.b.1d.v4i32.trap
-    3, // llvm.nvvm.sust.b.1d.v4i32.zero
-    3, // llvm.nvvm.sust.b.1d.v4i8.clamp
-    3, // llvm.nvvm.sust.b.1d.v4i8.trap
-    3, // llvm.nvvm.sust.b.1d.v4i8.zero
-    3, // llvm.nvvm.sust.b.2d.array.i16.clamp
-    3, // llvm.nvvm.sust.b.2d.array.i16.trap
-    3, // llvm.nvvm.sust.b.2d.array.i16.zero
-    3, // llvm.nvvm.sust.b.2d.array.i32.clamp
-    3, // llvm.nvvm.sust.b.2d.array.i32.trap
-    3, // llvm.nvvm.sust.b.2d.array.i32.zero
-    3, // llvm.nvvm.sust.b.2d.array.i64.clamp
-    3, // llvm.nvvm.sust.b.2d.array.i64.trap
-    3, // llvm.nvvm.sust.b.2d.array.i64.zero
-    3, // llvm.nvvm.sust.b.2d.array.i8.clamp
-    3, // llvm.nvvm.sust.b.2d.array.i8.trap
-    3, // llvm.nvvm.sust.b.2d.array.i8.zero
-    3, // llvm.nvvm.sust.b.2d.array.v2i16.clamp
-    3, // llvm.nvvm.sust.b.2d.array.v2i16.trap
-    3, // llvm.nvvm.sust.b.2d.array.v2i16.zero
-    3, // llvm.nvvm.sust.b.2d.array.v2i32.clamp
-    3, // llvm.nvvm.sust.b.2d.array.v2i32.trap
-    3, // llvm.nvvm.sust.b.2d.array.v2i32.zero
-    3, // llvm.nvvm.sust.b.2d.array.v2i64.clamp
-    3, // llvm.nvvm.sust.b.2d.array.v2i64.trap
-    3, // llvm.nvvm.sust.b.2d.array.v2i64.zero
-    3, // llvm.nvvm.sust.b.2d.array.v2i8.clamp
-    3, // llvm.nvvm.sust.b.2d.array.v2i8.trap
-    3, // llvm.nvvm.sust.b.2d.array.v2i8.zero
-    3, // llvm.nvvm.sust.b.2d.array.v4i16.clamp
-    3, // llvm.nvvm.sust.b.2d.array.v4i16.trap
-    3, // llvm.nvvm.sust.b.2d.array.v4i16.zero
-    3, // llvm.nvvm.sust.b.2d.array.v4i32.clamp
-    3, // llvm.nvvm.sust.b.2d.array.v4i32.trap
-    3, // llvm.nvvm.sust.b.2d.array.v4i32.zero
-    3, // llvm.nvvm.sust.b.2d.array.v4i8.clamp
-    3, // llvm.nvvm.sust.b.2d.array.v4i8.trap
-    3, // llvm.nvvm.sust.b.2d.array.v4i8.zero
-    3, // llvm.nvvm.sust.b.2d.i16.clamp
-    3, // llvm.nvvm.sust.b.2d.i16.trap
-    3, // llvm.nvvm.sust.b.2d.i16.zero
-    3, // llvm.nvvm.sust.b.2d.i32.clamp
-    3, // llvm.nvvm.sust.b.2d.i32.trap
-    3, // llvm.nvvm.sust.b.2d.i32.zero
-    3, // llvm.nvvm.sust.b.2d.i64.clamp
-    3, // llvm.nvvm.sust.b.2d.i64.trap
-    3, // llvm.nvvm.sust.b.2d.i64.zero
-    3, // llvm.nvvm.sust.b.2d.i8.clamp
-    3, // llvm.nvvm.sust.b.2d.i8.trap
-    3, // llvm.nvvm.sust.b.2d.i8.zero
-    3, // llvm.nvvm.sust.b.2d.v2i16.clamp
-    3, // llvm.nvvm.sust.b.2d.v2i16.trap
-    3, // llvm.nvvm.sust.b.2d.v2i16.zero
-    3, // llvm.nvvm.sust.b.2d.v2i32.clamp
-    3, // llvm.nvvm.sust.b.2d.v2i32.trap
-    3, // llvm.nvvm.sust.b.2d.v2i32.zero
-    3, // llvm.nvvm.sust.b.2d.v2i64.clamp
-    3, // llvm.nvvm.sust.b.2d.v2i64.trap
-    3, // llvm.nvvm.sust.b.2d.v2i64.zero
-    3, // llvm.nvvm.sust.b.2d.v2i8.clamp
-    3, // llvm.nvvm.sust.b.2d.v2i8.trap
-    3, // llvm.nvvm.sust.b.2d.v2i8.zero
-    3, // llvm.nvvm.sust.b.2d.v4i16.clamp
-    3, // llvm.nvvm.sust.b.2d.v4i16.trap
-    3, // llvm.nvvm.sust.b.2d.v4i16.zero
-    3, // llvm.nvvm.sust.b.2d.v4i32.clamp
-    3, // llvm.nvvm.sust.b.2d.v4i32.trap
-    3, // llvm.nvvm.sust.b.2d.v4i32.zero
-    3, // llvm.nvvm.sust.b.2d.v4i8.clamp
-    3, // llvm.nvvm.sust.b.2d.v4i8.trap
-    3, // llvm.nvvm.sust.b.2d.v4i8.zero
-    3, // llvm.nvvm.sust.b.3d.i16.clamp
-    3, // llvm.nvvm.sust.b.3d.i16.trap
-    3, // llvm.nvvm.sust.b.3d.i16.zero
-    3, // llvm.nvvm.sust.b.3d.i32.clamp
-    3, // llvm.nvvm.sust.b.3d.i32.trap
-    3, // llvm.nvvm.sust.b.3d.i32.zero
-    3, // llvm.nvvm.sust.b.3d.i64.clamp
-    3, // llvm.nvvm.sust.b.3d.i64.trap
-    3, // llvm.nvvm.sust.b.3d.i64.zero
-    3, // llvm.nvvm.sust.b.3d.i8.clamp
-    3, // llvm.nvvm.sust.b.3d.i8.trap
-    3, // llvm.nvvm.sust.b.3d.i8.zero
-    3, // llvm.nvvm.sust.b.3d.v2i16.clamp
-    3, // llvm.nvvm.sust.b.3d.v2i16.trap
-    3, // llvm.nvvm.sust.b.3d.v2i16.zero
-    3, // llvm.nvvm.sust.b.3d.v2i32.clamp
-    3, // llvm.nvvm.sust.b.3d.v2i32.trap
-    3, // llvm.nvvm.sust.b.3d.v2i32.zero
-    3, // llvm.nvvm.sust.b.3d.v2i64.clamp
-    3, // llvm.nvvm.sust.b.3d.v2i64.trap
-    3, // llvm.nvvm.sust.b.3d.v2i64.zero
-    3, // llvm.nvvm.sust.b.3d.v2i8.clamp
-    3, // llvm.nvvm.sust.b.3d.v2i8.trap
-    3, // llvm.nvvm.sust.b.3d.v2i8.zero
-    3, // llvm.nvvm.sust.b.3d.v4i16.clamp
-    3, // llvm.nvvm.sust.b.3d.v4i16.trap
-    3, // llvm.nvvm.sust.b.3d.v4i16.zero
-    3, // llvm.nvvm.sust.b.3d.v4i32.clamp
-    3, // llvm.nvvm.sust.b.3d.v4i32.trap
-    3, // llvm.nvvm.sust.b.3d.v4i32.zero
-    3, // llvm.nvvm.sust.b.3d.v4i8.clamp
-    3, // llvm.nvvm.sust.b.3d.v4i8.trap
-    3, // llvm.nvvm.sust.b.3d.v4i8.zero
-    3, // llvm.nvvm.sust.p.1d.array.i16.trap
-    3, // llvm.nvvm.sust.p.1d.array.i32.trap
-    3, // llvm.nvvm.sust.p.1d.array.i8.trap
-    3, // llvm.nvvm.sust.p.1d.array.v2i16.trap
-    3, // llvm.nvvm.sust.p.1d.array.v2i32.trap
-    3, // llvm.nvvm.sust.p.1d.array.v2i8.trap
-    3, // llvm.nvvm.sust.p.1d.array.v4i16.trap
-    3, // llvm.nvvm.sust.p.1d.array.v4i32.trap
-    3, // llvm.nvvm.sust.p.1d.array.v4i8.trap
-    3, // llvm.nvvm.sust.p.1d.i16.trap
-    3, // llvm.nvvm.sust.p.1d.i32.trap
-    3, // llvm.nvvm.sust.p.1d.i8.trap
-    3, // llvm.nvvm.sust.p.1d.v2i16.trap
-    3, // llvm.nvvm.sust.p.1d.v2i32.trap
-    3, // llvm.nvvm.sust.p.1d.v2i8.trap
-    3, // llvm.nvvm.sust.p.1d.v4i16.trap
-    3, // llvm.nvvm.sust.p.1d.v4i32.trap
-    3, // llvm.nvvm.sust.p.1d.v4i8.trap
-    3, // llvm.nvvm.sust.p.2d.array.i16.trap
-    3, // llvm.nvvm.sust.p.2d.array.i32.trap
-    3, // llvm.nvvm.sust.p.2d.array.i8.trap
-    3, // llvm.nvvm.sust.p.2d.array.v2i16.trap
-    3, // llvm.nvvm.sust.p.2d.array.v2i32.trap
-    3, // llvm.nvvm.sust.p.2d.array.v2i8.trap
-    3, // llvm.nvvm.sust.p.2d.array.v4i16.trap
-    3, // llvm.nvvm.sust.p.2d.array.v4i32.trap
-    3, // llvm.nvvm.sust.p.2d.array.v4i8.trap
-    3, // llvm.nvvm.sust.p.2d.i16.trap
-    3, // llvm.nvvm.sust.p.2d.i32.trap
-    3, // llvm.nvvm.sust.p.2d.i8.trap
-    3, // llvm.nvvm.sust.p.2d.v2i16.trap
-    3, // llvm.nvvm.sust.p.2d.v2i32.trap
-    3, // llvm.nvvm.sust.p.2d.v2i8.trap
-    3, // llvm.nvvm.sust.p.2d.v4i16.trap
-    3, // llvm.nvvm.sust.p.2d.v4i32.trap
-    3, // llvm.nvvm.sust.p.2d.v4i8.trap
-    3, // llvm.nvvm.sust.p.3d.i16.trap
-    3, // llvm.nvvm.sust.p.3d.i32.trap
-    3, // llvm.nvvm.sust.p.3d.i8.trap
-    3, // llvm.nvvm.sust.p.3d.v2i16.trap
-    3, // llvm.nvvm.sust.p.3d.v2i32.trap
-    3, // llvm.nvvm.sust.p.3d.v2i8.trap
-    3, // llvm.nvvm.sust.p.3d.v4i16.trap
-    3, // llvm.nvvm.sust.p.3d.v4i32.trap
-    3, // llvm.nvvm.sust.p.3d.v4i8.trap
-    1, // llvm.nvvm.swap.lo.hi.b64
-    3, // llvm.nvvm.tex.1d.array.grad.v4f32.f32
-    3, // llvm.nvvm.tex.1d.array.grad.v4s32.f32
-    3, // llvm.nvvm.tex.1d.array.grad.v4u32.f32
-    3, // llvm.nvvm.tex.1d.array.level.v4f32.f32
-    3, // llvm.nvvm.tex.1d.array.level.v4s32.f32
-    3, // llvm.nvvm.tex.1d.array.level.v4u32.f32
-    3, // llvm.nvvm.tex.1d.array.v4f32.f32
-    3, // llvm.nvvm.tex.1d.array.v4f32.s32
-    3, // llvm.nvvm.tex.1d.array.v4s32.f32
-    3, // llvm.nvvm.tex.1d.array.v4s32.s32
-    3, // llvm.nvvm.tex.1d.array.v4u32.f32
-    3, // llvm.nvvm.tex.1d.array.v4u32.s32
-    3, // llvm.nvvm.tex.1d.grad.v4f32.f32
-    3, // llvm.nvvm.tex.1d.grad.v4s32.f32
-    3, // llvm.nvvm.tex.1d.grad.v4u32.f32
-    3, // llvm.nvvm.tex.1d.level.v4f32.f32
-    3, // llvm.nvvm.tex.1d.level.v4s32.f32
-    3, // llvm.nvvm.tex.1d.level.v4u32.f32
-    3, // llvm.nvvm.tex.1d.v4f32.f32
-    3, // llvm.nvvm.tex.1d.v4f32.s32
-    3, // llvm.nvvm.tex.1d.v4s32.f32
-    3, // llvm.nvvm.tex.1d.v4s32.s32
-    3, // llvm.nvvm.tex.1d.v4u32.f32
-    3, // llvm.nvvm.tex.1d.v4u32.s32
-    3, // llvm.nvvm.tex.2d.array.grad.v4f32.f32
-    3, // llvm.nvvm.tex.2d.array.grad.v4s32.f32
-    3, // llvm.nvvm.tex.2d.array.grad.v4u32.f32
-    3, // llvm.nvvm.tex.2d.array.level.v4f32.f32
-    3, // llvm.nvvm.tex.2d.array.level.v4s32.f32
-    3, // llvm.nvvm.tex.2d.array.level.v4u32.f32
-    3, // llvm.nvvm.tex.2d.array.v4f32.f32
-    3, // llvm.nvvm.tex.2d.array.v4f32.s32
-    3, // llvm.nvvm.tex.2d.array.v4s32.f32
-    3, // llvm.nvvm.tex.2d.array.v4s32.s32
-    3, // llvm.nvvm.tex.2d.array.v4u32.f32
-    3, // llvm.nvvm.tex.2d.array.v4u32.s32
-    3, // llvm.nvvm.tex.2d.grad.v4f32.f32
-    3, // llvm.nvvm.tex.2d.grad.v4s32.f32
-    3, // llvm.nvvm.tex.2d.grad.v4u32.f32
-    3, // llvm.nvvm.tex.2d.level.v4f32.f32
-    3, // llvm.nvvm.tex.2d.level.v4s32.f32
-    3, // llvm.nvvm.tex.2d.level.v4u32.f32
-    3, // llvm.nvvm.tex.2d.v4f32.f32
-    3, // llvm.nvvm.tex.2d.v4f32.s32
-    3, // llvm.nvvm.tex.2d.v4s32.f32
-    3, // llvm.nvvm.tex.2d.v4s32.s32
-    3, // llvm.nvvm.tex.2d.v4u32.f32
-    3, // llvm.nvvm.tex.2d.v4u32.s32
-    3, // llvm.nvvm.tex.3d.grad.v4f32.f32
-    3, // llvm.nvvm.tex.3d.grad.v4s32.f32
-    3, // llvm.nvvm.tex.3d.grad.v4u32.f32
-    3, // llvm.nvvm.tex.3d.level.v4f32.f32
-    3, // llvm.nvvm.tex.3d.level.v4s32.f32
-    3, // llvm.nvvm.tex.3d.level.v4u32.f32
-    3, // llvm.nvvm.tex.3d.v4f32.f32
-    3, // llvm.nvvm.tex.3d.v4f32.s32
-    3, // llvm.nvvm.tex.3d.v4s32.f32
-    3, // llvm.nvvm.tex.3d.v4s32.s32
-    3, // llvm.nvvm.tex.3d.v4u32.f32
-    3, // llvm.nvvm.tex.3d.v4u32.s32
-    3, // llvm.nvvm.tex.cube.array.level.v4f32.f32
-    3, // llvm.nvvm.tex.cube.array.level.v4s32.f32
-    3, // llvm.nvvm.tex.cube.array.level.v4u32.f32
-    3, // llvm.nvvm.tex.cube.array.v4f32.f32
-    3, // llvm.nvvm.tex.cube.array.v4s32.f32
-    3, // llvm.nvvm.tex.cube.array.v4u32.f32
-    3, // llvm.nvvm.tex.cube.level.v4f32.f32
-    3, // llvm.nvvm.tex.cube.level.v4s32.f32
-    3, // llvm.nvvm.tex.cube.level.v4u32.f32
-    3, // llvm.nvvm.tex.cube.v4f32.f32
-    3, // llvm.nvvm.tex.cube.v4s32.f32
-    3, // llvm.nvvm.tex.cube.v4u32.f32
-    3, // llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32
-    3, // llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32
-    3, // llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32
-    3, // llvm.nvvm.tex.unified.1d.array.level.v4f32.f32
-    3, // llvm.nvvm.tex.unified.1d.array.level.v4s32.f32
-    3, // llvm.nvvm.tex.unified.1d.array.level.v4u32.f32
-    3, // llvm.nvvm.tex.unified.1d.array.v4f32.f32
-    3, // llvm.nvvm.tex.unified.1d.array.v4f32.s32
-    3, // llvm.nvvm.tex.unified.1d.array.v4s32.f32
-    3, // llvm.nvvm.tex.unified.1d.array.v4s32.s32
-    3, // llvm.nvvm.tex.unified.1d.array.v4u32.f32
-    3, // llvm.nvvm.tex.unified.1d.array.v4u32.s32
-    3, // llvm.nvvm.tex.unified.1d.grad.v4f32.f32
-    3, // llvm.nvvm.tex.unified.1d.grad.v4s32.f32
-    3, // llvm.nvvm.tex.unified.1d.grad.v4u32.f32
-    3, // llvm.nvvm.tex.unified.1d.level.v4f32.f32
-    3, // llvm.nvvm.tex.unified.1d.level.v4s32.f32
-    3, // llvm.nvvm.tex.unified.1d.level.v4u32.f32
-    3, // llvm.nvvm.tex.unified.1d.v4f32.f32
-    3, // llvm.nvvm.tex.unified.1d.v4f32.s32
-    3, // llvm.nvvm.tex.unified.1d.v4s32.f32
-    3, // llvm.nvvm.tex.unified.1d.v4s32.s32
-    3, // llvm.nvvm.tex.unified.1d.v4u32.f32
-    3, // llvm.nvvm.tex.unified.1d.v4u32.s32
-    3, // llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32
-    3, // llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32
-    3, // llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32
-    3, // llvm.nvvm.tex.unified.2d.array.level.v4f32.f32
-    3, // llvm.nvvm.tex.unified.2d.array.level.v4s32.f32
-    3, // llvm.nvvm.tex.unified.2d.array.level.v4u32.f32
-    3, // llvm.nvvm.tex.unified.2d.array.v4f32.f32
-    3, // llvm.nvvm.tex.unified.2d.array.v4f32.s32
-    3, // llvm.nvvm.tex.unified.2d.array.v4s32.f32
-    3, // llvm.nvvm.tex.unified.2d.array.v4s32.s32
-    3, // llvm.nvvm.tex.unified.2d.array.v4u32.f32
-    3, // llvm.nvvm.tex.unified.2d.array.v4u32.s32
-    3, // llvm.nvvm.tex.unified.2d.grad.v4f32.f32
-    3, // llvm.nvvm.tex.unified.2d.grad.v4s32.f32
-    3, // llvm.nvvm.tex.unified.2d.grad.v4u32.f32
-    3, // llvm.nvvm.tex.unified.2d.level.v4f32.f32
-    3, // llvm.nvvm.tex.unified.2d.level.v4s32.f32
-    3, // llvm.nvvm.tex.unified.2d.level.v4u32.f32
-    3, // llvm.nvvm.tex.unified.2d.v4f32.f32
-    3, // llvm.nvvm.tex.unified.2d.v4f32.s32
-    3, // llvm.nvvm.tex.unified.2d.v4s32.f32
-    3, // llvm.nvvm.tex.unified.2d.v4s32.s32
-    3, // llvm.nvvm.tex.unified.2d.v4u32.f32
-    3, // llvm.nvvm.tex.unified.2d.v4u32.s32
-    3, // llvm.nvvm.tex.unified.3d.grad.v4f32.f32
-    3, // llvm.nvvm.tex.unified.3d.grad.v4s32.f32
-    3, // llvm.nvvm.tex.unified.3d.grad.v4u32.f32
-    3, // llvm.nvvm.tex.unified.3d.level.v4f32.f32
-    3, // llvm.nvvm.tex.unified.3d.level.v4s32.f32
-    3, // llvm.nvvm.tex.unified.3d.level.v4u32.f32
-    3, // llvm.nvvm.tex.unified.3d.v4f32.f32
-    3, // llvm.nvvm.tex.unified.3d.v4f32.s32
-    3, // llvm.nvvm.tex.unified.3d.v4s32.f32
-    3, // llvm.nvvm.tex.unified.3d.v4s32.s32
-    3, // llvm.nvvm.tex.unified.3d.v4u32.f32
-    3, // llvm.nvvm.tex.unified.3d.v4u32.s32
-    3, // llvm.nvvm.tex.unified.cube.array.level.v4f32.f32
-    3, // llvm.nvvm.tex.unified.cube.array.level.v4s32.f32
-    3, // llvm.nvvm.tex.unified.cube.array.level.v4u32.f32
-    3, // llvm.nvvm.tex.unified.cube.array.v4f32.f32
-    3, // llvm.nvvm.tex.unified.cube.array.v4s32.f32
-    3, // llvm.nvvm.tex.unified.cube.array.v4u32.f32
-    3, // llvm.nvvm.tex.unified.cube.level.v4f32.f32
-    3, // llvm.nvvm.tex.unified.cube.level.v4s32.f32
-    3, // llvm.nvvm.tex.unified.cube.level.v4u32.f32
-    3, // llvm.nvvm.tex.unified.cube.v4f32.f32
-    3, // llvm.nvvm.tex.unified.cube.v4s32.f32
-    3, // llvm.nvvm.tex.unified.cube.v4u32.f32
-    1, // llvm.nvvm.texsurf.handle
-    1, // llvm.nvvm.texsurf.handle.internal
-    3, // llvm.nvvm.tld4.a.2d.v4f32.f32
-    3, // llvm.nvvm.tld4.a.2d.v4s32.f32
-    3, // llvm.nvvm.tld4.a.2d.v4u32.f32
-    3, // llvm.nvvm.tld4.b.2d.v4f32.f32
-    3, // llvm.nvvm.tld4.b.2d.v4s32.f32
-    3, // llvm.nvvm.tld4.b.2d.v4u32.f32
-    3, // llvm.nvvm.tld4.g.2d.v4f32.f32
-    3, // llvm.nvvm.tld4.g.2d.v4s32.f32
-    3, // llvm.nvvm.tld4.g.2d.v4u32.f32
-    3, // llvm.nvvm.tld4.r.2d.v4f32.f32
-    3, // llvm.nvvm.tld4.r.2d.v4s32.f32
-    3, // llvm.nvvm.tld4.r.2d.v4u32.f32
-    3, // llvm.nvvm.tld4.unified.a.2d.v4f32.f32
-    3, // llvm.nvvm.tld4.unified.a.2d.v4s32.f32
-    3, // llvm.nvvm.tld4.unified.a.2d.v4u32.f32
-    3, // llvm.nvvm.tld4.unified.b.2d.v4f32.f32
-    3, // llvm.nvvm.tld4.unified.b.2d.v4s32.f32
-    3, // llvm.nvvm.tld4.unified.b.2d.v4u32.f32
-    3, // llvm.nvvm.tld4.unified.g.2d.v4f32.f32
-    3, // llvm.nvvm.tld4.unified.g.2d.v4s32.f32
-    3, // llvm.nvvm.tld4.unified.g.2d.v4u32.f32
-    3, // llvm.nvvm.tld4.unified.r.2d.v4f32.f32
-    3, // llvm.nvvm.tld4.unified.r.2d.v4s32.f32
-    3, // llvm.nvvm.tld4.unified.r.2d.v4u32.f32
-    1, // llvm.nvvm.trunc.d
-    1, // llvm.nvvm.trunc.f
-    1, // llvm.nvvm.trunc.ftz.f
-    1, // llvm.nvvm.txq.array.size
-    1, // llvm.nvvm.txq.channel.data.type
-    1, // llvm.nvvm.txq.channel.order
-    1, // llvm.nvvm.txq.depth
-    1, // llvm.nvvm.txq.height
-    1, // llvm.nvvm.txq.num.mipmap.levels
-    1, // llvm.nvvm.txq.num.samples
-    1, // llvm.nvvm.txq.width
-    1, // llvm.nvvm.ui2d.rm
-    1, // llvm.nvvm.ui2d.rn
-    1, // llvm.nvvm.ui2d.rp
-    1, // llvm.nvvm.ui2d.rz
-    1, // llvm.nvvm.ui2f.rm
-    1, // llvm.nvvm.ui2f.rn
-    1, // llvm.nvvm.ui2f.rp
-    1, // llvm.nvvm.ui2f.rz
-    1, // llvm.nvvm.ull2d.rm
-    1, // llvm.nvvm.ull2d.rn
-    1, // llvm.nvvm.ull2d.rp
-    1, // llvm.nvvm.ull2d.rz
-    1, // llvm.nvvm.ull2f.rm
-    1, // llvm.nvvm.ull2f.rn
-    1, // llvm.nvvm.ull2f.rp
-    1, // llvm.nvvm.ull2f.rz
-    38, // llvm.nvvm.vote.all
-    38, // llvm.nvvm.vote.all.sync
-    38, // llvm.nvvm.vote.any
-    38, // llvm.nvvm.vote.any.sync
-    38, // llvm.nvvm.vote.ballot
-    38, // llvm.nvvm.vote.ballot.sync
-    38, // llvm.nvvm.vote.uni
-    38, // llvm.nvvm.vote.uni.sync
-    13, // llvm.nvvm.wmma.m16n16k16.load.a.col.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.a.col.stride.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.a.row.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.a.row.stride.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.b.col.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.b.col.stride.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.b.row.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.b.row.stride.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.c.col.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.c.col.f32
-    13, // llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.c.col.stride.f32
-    13, // llvm.nvvm.wmma.m16n16k16.load.c.row.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.c.row.f32
-    13, // llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f16
-    13, // llvm.nvvm.wmma.m16n16k16.load.c.row.stride.f32
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f16.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f16.f32.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f16.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.col.f32.f32.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f16.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f16.f32.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f16.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32
-    1, // llvm.nvvm.wmma.m16n16k16.mma.col.row.f32.f32.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f16.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f16.f32.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f16.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.col.f32.f32.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f16.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f16.f32.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f16.satfinite
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32
-    1, // llvm.nvvm.wmma.m16n16k16.mma.row.row.f32.f32.satfinite
-    39, // llvm.nvvm.wmma.m16n16k16.store.d.col.f16
-    39, // llvm.nvvm.wmma.m16n16k16.store.d.col.f32
-    39, // llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f16
-    39, // llvm.nvvm.wmma.m16n16k16.store.d.col.stride.f32
-    39, // llvm.nvvm.wmma.m16n16k16.store.d.row.f16
-    39, // llvm.nvvm.wmma.m16n16k16.store.d.row.f32
-    39, // llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f16
-    39, // llvm.nvvm.wmma.m16n16k16.store.d.row.stride.f32
-    1, // llvm.ppc.altivec.crypto.vcipher
-    1, // llvm.ppc.altivec.crypto.vcipherlast
-    1, // llvm.ppc.altivec.crypto.vncipher
-    1, // llvm.ppc.altivec.crypto.vncipherlast
-    1, // llvm.ppc.altivec.crypto.vpermxor
-    1, // llvm.ppc.altivec.crypto.vpmsumb
-    1, // llvm.ppc.altivec.crypto.vpmsumd
-    1, // llvm.ppc.altivec.crypto.vpmsumh
-    1, // llvm.ppc.altivec.crypto.vpmsumw
-    1, // llvm.ppc.altivec.crypto.vsbox
-    1, // llvm.ppc.altivec.crypto.vshasigmad
-    1, // llvm.ppc.altivec.crypto.vshasigmaw
-    3, // llvm.ppc.altivec.dss
-    3, // llvm.ppc.altivec.dssall
-    3, // llvm.ppc.altivec.dst
-    3, // llvm.ppc.altivec.dstst
-    3, // llvm.ppc.altivec.dststt
-    3, // llvm.ppc.altivec.dstt
-    2, // llvm.ppc.altivec.lvebx
-    2, // llvm.ppc.altivec.lvehx
-    2, // llvm.ppc.altivec.lvewx
-    1, // llvm.ppc.altivec.lvsl
-    1, // llvm.ppc.altivec.lvsr
-    2, // llvm.ppc.altivec.lvx
-    2, // llvm.ppc.altivec.lvxl
-    16, // llvm.ppc.altivec.mfvscr
-    3, // llvm.ppc.altivec.mtvscr
-    40, // llvm.ppc.altivec.stvebx
-    40, // llvm.ppc.altivec.stvehx
-    40, // llvm.ppc.altivec.stvewx
-    40, // llvm.ppc.altivec.stvx
-    40, // llvm.ppc.altivec.stvxl
-    1, // llvm.ppc.altivec.vabsdub
-    1, // llvm.ppc.altivec.vabsduh
-    1, // llvm.ppc.altivec.vabsduw
-    1, // llvm.ppc.altivec.vaddcuq
-    1, // llvm.ppc.altivec.vaddcuw
-    1, // llvm.ppc.altivec.vaddecuq
-    1, // llvm.ppc.altivec.vaddeuqm
-    1, // llvm.ppc.altivec.vaddsbs
-    1, // llvm.ppc.altivec.vaddshs
-    1, // llvm.ppc.altivec.vaddsws
-    1, // llvm.ppc.altivec.vaddubs
-    1, // llvm.ppc.altivec.vadduhs
-    1, // llvm.ppc.altivec.vadduws
-    1, // llvm.ppc.altivec.vavgsb
-    1, // llvm.ppc.altivec.vavgsh
-    1, // llvm.ppc.altivec.vavgsw
-    1, // llvm.ppc.altivec.vavgub
-    1, // llvm.ppc.altivec.vavguh
-    1, // llvm.ppc.altivec.vavguw
-    1, // llvm.ppc.altivec.vbpermq
-    1, // llvm.ppc.altivec.vcfsx
-    1, // llvm.ppc.altivec.vcfux
-    1, // llvm.ppc.altivec.vclzlsbb
-    1, // llvm.ppc.altivec.vcmpbfp
-    1, // llvm.ppc.altivec.vcmpbfp.p
-    1, // llvm.ppc.altivec.vcmpeqfp
-    1, // llvm.ppc.altivec.vcmpeqfp.p
-    1, // llvm.ppc.altivec.vcmpequb
-    1, // llvm.ppc.altivec.vcmpequb.p
-    1, // llvm.ppc.altivec.vcmpequd
-    1, // llvm.ppc.altivec.vcmpequd.p
-    1, // llvm.ppc.altivec.vcmpequh
-    1, // llvm.ppc.altivec.vcmpequh.p
-    1, // llvm.ppc.altivec.vcmpequw
-    1, // llvm.ppc.altivec.vcmpequw.p
-    1, // llvm.ppc.altivec.vcmpgefp
-    1, // llvm.ppc.altivec.vcmpgefp.p
-    1, // llvm.ppc.altivec.vcmpgtfp
-    1, // llvm.ppc.altivec.vcmpgtfp.p
-    1, // llvm.ppc.altivec.vcmpgtsb
-    1, // llvm.ppc.altivec.vcmpgtsb.p
-    1, // llvm.ppc.altivec.vcmpgtsd
-    1, // llvm.ppc.altivec.vcmpgtsd.p
-    1, // llvm.ppc.altivec.vcmpgtsh
-    1, // llvm.ppc.altivec.vcmpgtsh.p
-    1, // llvm.ppc.altivec.vcmpgtsw
-    1, // llvm.ppc.altivec.vcmpgtsw.p
-    1, // llvm.ppc.altivec.vcmpgtub
-    1, // llvm.ppc.altivec.vcmpgtub.p
-    1, // llvm.ppc.altivec.vcmpgtud
-    1, // llvm.ppc.altivec.vcmpgtud.p
-    1, // llvm.ppc.altivec.vcmpgtuh
-    1, // llvm.ppc.altivec.vcmpgtuh.p
-    1, // llvm.ppc.altivec.vcmpgtuw
-    1, // llvm.ppc.altivec.vcmpgtuw.p
-    1, // llvm.ppc.altivec.vcmpneb
-    1, // llvm.ppc.altivec.vcmpneb.p
-    1, // llvm.ppc.altivec.vcmpneh
-    1, // llvm.ppc.altivec.vcmpneh.p
-    1, // llvm.ppc.altivec.vcmpnew
-    1, // llvm.ppc.altivec.vcmpnew.p
-    1, // llvm.ppc.altivec.vcmpnezb
-    1, // llvm.ppc.altivec.vcmpnezb.p
-    1, // llvm.ppc.altivec.vcmpnezh
-    1, // llvm.ppc.altivec.vcmpnezh.p
-    1, // llvm.ppc.altivec.vcmpnezw
-    1, // llvm.ppc.altivec.vcmpnezw.p
-    1, // llvm.ppc.altivec.vctsxs
-    1, // llvm.ppc.altivec.vctuxs
-    1, // llvm.ppc.altivec.vctzlsbb
-    1, // llvm.ppc.altivec.vexptefp
-    1, // llvm.ppc.altivec.vgbbd
-    1, // llvm.ppc.altivec.vlogefp
-    1, // llvm.ppc.altivec.vmaddfp
-    1, // llvm.ppc.altivec.vmaxfp
-    1, // llvm.ppc.altivec.vmaxsb
-    1, // llvm.ppc.altivec.vmaxsd
-    1, // llvm.ppc.altivec.vmaxsh
-    1, // llvm.ppc.altivec.vmaxsw
-    1, // llvm.ppc.altivec.vmaxub
-    1, // llvm.ppc.altivec.vmaxud
-    1, // llvm.ppc.altivec.vmaxuh
-    1, // llvm.ppc.altivec.vmaxuw
-    1, // llvm.ppc.altivec.vmhaddshs
-    1, // llvm.ppc.altivec.vmhraddshs
-    1, // llvm.ppc.altivec.vminfp
-    1, // llvm.ppc.altivec.vminsb
-    1, // llvm.ppc.altivec.vminsd
-    1, // llvm.ppc.altivec.vminsh
-    1, // llvm.ppc.altivec.vminsw
-    1, // llvm.ppc.altivec.vminub
-    1, // llvm.ppc.altivec.vminud
-    1, // llvm.ppc.altivec.vminuh
-    1, // llvm.ppc.altivec.vminuw
-    1, // llvm.ppc.altivec.vmladduhm
-    1, // llvm.ppc.altivec.vmsummbm
-    1, // llvm.ppc.altivec.vmsumshm
-    1, // llvm.ppc.altivec.vmsumshs
-    1, // llvm.ppc.altivec.vmsumubm
-    1, // llvm.ppc.altivec.vmsumuhm
-    1, // llvm.ppc.altivec.vmsumuhs
-    1, // llvm.ppc.altivec.vmulesb
-    1, // llvm.ppc.altivec.vmulesh
-    1, // llvm.ppc.altivec.vmulesw
-    1, // llvm.ppc.altivec.vmuleub
-    1, // llvm.ppc.altivec.vmuleuh
-    1, // llvm.ppc.altivec.vmuleuw
-    1, // llvm.ppc.altivec.vmulosb
-    1, // llvm.ppc.altivec.vmulosh
-    1, // llvm.ppc.altivec.vmulosw
-    1, // llvm.ppc.altivec.vmuloub
-    1, // llvm.ppc.altivec.vmulouh
-    1, // llvm.ppc.altivec.vmulouw
-    1, // llvm.ppc.altivec.vnmsubfp
-    1, // llvm.ppc.altivec.vperm
-    1, // llvm.ppc.altivec.vpkpx
-    1, // llvm.ppc.altivec.vpksdss
-    1, // llvm.ppc.altivec.vpksdus
-    1, // llvm.ppc.altivec.vpkshss
-    1, // llvm.ppc.altivec.vpkshus
-    1, // llvm.ppc.altivec.vpkswss
-    1, // llvm.ppc.altivec.vpkswus
-    1, // llvm.ppc.altivec.vpkudus
-    1, // llvm.ppc.altivec.vpkuhus
-    1, // llvm.ppc.altivec.vpkuwus
-    1, // llvm.ppc.altivec.vprtybd
-    1, // llvm.ppc.altivec.vprtybq
-    1, // llvm.ppc.altivec.vprtybw
-    1, // llvm.ppc.altivec.vrefp
-    1, // llvm.ppc.altivec.vrfim
-    1, // llvm.ppc.altivec.vrfin
-    1, // llvm.ppc.altivec.vrfip
-    1, // llvm.ppc.altivec.vrfiz
-    1, // llvm.ppc.altivec.vrlb
-    1, // llvm.ppc.altivec.vrld
-    1, // llvm.ppc.altivec.vrldmi
-    1, // llvm.ppc.altivec.vrldnm
-    1, // llvm.ppc.altivec.vrlh
-    1, // llvm.ppc.altivec.vrlw
-    1, // llvm.ppc.altivec.vrlwmi
-    1, // llvm.ppc.altivec.vrlwnm
-    1, // llvm.ppc.altivec.vrsqrtefp
-    1, // llvm.ppc.altivec.vsel
-    1, // llvm.ppc.altivec.vsl
-    1, // llvm.ppc.altivec.vslb
-    1, // llvm.ppc.altivec.vslh
-    1, // llvm.ppc.altivec.vslo
-    1, // llvm.ppc.altivec.vslv
-    1, // llvm.ppc.altivec.vslw
-    1, // llvm.ppc.altivec.vsr
-    1, // llvm.ppc.altivec.vsrab
-    1, // llvm.ppc.altivec.vsrah
-    1, // llvm.ppc.altivec.vsraw
-    1, // llvm.ppc.altivec.vsrb
-    1, // llvm.ppc.altivec.vsrh
-    1, // llvm.ppc.altivec.vsro
-    1, // llvm.ppc.altivec.vsrv
-    1, // llvm.ppc.altivec.vsrw
-    1, // llvm.ppc.altivec.vsubcuq
-    1, // llvm.ppc.altivec.vsubcuw
-    1, // llvm.ppc.altivec.vsubecuq
-    1, // llvm.ppc.altivec.vsubeuqm
-    1, // llvm.ppc.altivec.vsubsbs
-    1, // llvm.ppc.altivec.vsubshs
-    1, // llvm.ppc.altivec.vsubsws
-    1, // llvm.ppc.altivec.vsububs
-    1, // llvm.ppc.altivec.vsubuhs
-    1, // llvm.ppc.altivec.vsubuws
-    1, // llvm.ppc.altivec.vsum2sws
-    1, // llvm.ppc.altivec.vsum4sbs
-    1, // llvm.ppc.altivec.vsum4shs
-    1, // llvm.ppc.altivec.vsum4ubs
-    1, // llvm.ppc.altivec.vsumsws
-    1, // llvm.ppc.altivec.vupkhpx
-    1, // llvm.ppc.altivec.vupkhsb
-    1, // llvm.ppc.altivec.vupkhsh
-    1, // llvm.ppc.altivec.vupkhsw
-    1, // llvm.ppc.altivec.vupklpx
-    1, // llvm.ppc.altivec.vupklsb
-    1, // llvm.ppc.altivec.vupklsh
-    1, // llvm.ppc.altivec.vupklsw
-    1, // llvm.ppc.bpermd
-    3, // llvm.ppc.cfence
-    3, // llvm.ppc.dcba
-    3, // llvm.ppc.dcbf
-    3, // llvm.ppc.dcbi
-    3, // llvm.ppc.dcbst
-    18, // llvm.ppc.dcbt
-    18, // llvm.ppc.dcbtst
-    3, // llvm.ppc.dcbz
-    3, // llvm.ppc.dcbzl
-    1, // llvm.ppc.divde
-    1, // llvm.ppc.divdeu
-    1, // llvm.ppc.divwe
-    1, // llvm.ppc.divweu
-    3, // llvm.ppc.get.texasr
-    3, // llvm.ppc.get.texasru
-    3, // llvm.ppc.get.tfhar
-    3, // llvm.ppc.get.tfiar
-    3, // llvm.ppc.is.decremented.ctr.nonzero
-    3, // llvm.ppc.lwsync
-    3, // llvm.ppc.mtctr
-    1, // llvm.ppc.qpx.qvfabs
-    1, // llvm.ppc.qpx.qvfadd
-    1, // llvm.ppc.qpx.qvfadds
-    1, // llvm.ppc.qpx.qvfcfid
-    1, // llvm.ppc.qpx.qvfcfids
-    1, // llvm.ppc.qpx.qvfcfidu
-    1, // llvm.ppc.qpx.qvfcfidus
-    1, // llvm.ppc.qpx.qvfcmpeq
-    1, // llvm.ppc.qpx.qvfcmpgt
-    1, // llvm.ppc.qpx.qvfcmplt
-    1, // llvm.ppc.qpx.qvfcpsgn
-    1, // llvm.ppc.qpx.qvfctid
-    1, // llvm.ppc.qpx.qvfctidu
-    1, // llvm.ppc.qpx.qvfctiduz
-    1, // llvm.ppc.qpx.qvfctidz
-    1, // llvm.ppc.qpx.qvfctiw
-    1, // llvm.ppc.qpx.qvfctiwu
-    1, // llvm.ppc.qpx.qvfctiwuz
-    1, // llvm.ppc.qpx.qvfctiwz
-    1, // llvm.ppc.qpx.qvflogical
-    1, // llvm.ppc.qpx.qvfmadd
-    1, // llvm.ppc.qpx.qvfmadds
-    1, // llvm.ppc.qpx.qvfmsub
-    1, // llvm.ppc.qpx.qvfmsubs
-    1, // llvm.ppc.qpx.qvfmul
-    1, // llvm.ppc.qpx.qvfmuls
-    1, // llvm.ppc.qpx.qvfnabs
-    1, // llvm.ppc.qpx.qvfneg
-    1, // llvm.ppc.qpx.qvfnmadd
-    1, // llvm.ppc.qpx.qvfnmadds
-    1, // llvm.ppc.qpx.qvfnmsub
-    1, // llvm.ppc.qpx.qvfnmsubs
-    1, // llvm.ppc.qpx.qvfperm
-    1, // llvm.ppc.qpx.qvfre
-    1, // llvm.ppc.qpx.qvfres
-    1, // llvm.ppc.qpx.qvfrim
-    1, // llvm.ppc.qpx.qvfrin
-    1, // llvm.ppc.qpx.qvfrip
-    1, // llvm.ppc.qpx.qvfriz
-    1, // llvm.ppc.qpx.qvfrsp
-    1, // llvm.ppc.qpx.qvfrsqrte
-    1, // llvm.ppc.qpx.qvfrsqrtes
-    1, // llvm.ppc.qpx.qvfsel
-    1, // llvm.ppc.qpx.qvfsub
-    1, // llvm.ppc.qpx.qvfsubs
-    1, // llvm.ppc.qpx.qvftstnan
-    1, // llvm.ppc.qpx.qvfxmadd
-    1, // llvm.ppc.qpx.qvfxmadds
-    1, // llvm.ppc.qpx.qvfxmul
-    1, // llvm.ppc.qpx.qvfxmuls
-    1, // llvm.ppc.qpx.qvfxxcpnmadd
-    1, // llvm.ppc.qpx.qvfxxcpnmadds
-    1, // llvm.ppc.qpx.qvfxxmadd
-    1, // llvm.ppc.qpx.qvfxxmadds
-    1, // llvm.ppc.qpx.qvfxxnpmadd
-    1, // llvm.ppc.qpx.qvfxxnpmadds
-    1, // llvm.ppc.qpx.qvgpci
-    2, // llvm.ppc.qpx.qvlfcd
-    2, // llvm.ppc.qpx.qvlfcda
-    2, // llvm.ppc.qpx.qvlfcs
-    2, // llvm.ppc.qpx.qvlfcsa
-    2, // llvm.ppc.qpx.qvlfd
-    2, // llvm.ppc.qpx.qvlfda
-    2, // llvm.ppc.qpx.qvlfiwa
-    2, // llvm.ppc.qpx.qvlfiwaa
-    2, // llvm.ppc.qpx.qvlfiwz
-    2, // llvm.ppc.qpx.qvlfiwza
-    2, // llvm.ppc.qpx.qvlfs
-    2, // llvm.ppc.qpx.qvlfsa
-    1, // llvm.ppc.qpx.qvlpcld
-    1, // llvm.ppc.qpx.qvlpcls
-    1, // llvm.ppc.qpx.qvlpcrd
-    1, // llvm.ppc.qpx.qvlpcrs
-    40, // llvm.ppc.qpx.qvstfcd
-    40, // llvm.ppc.qpx.qvstfcda
-    40, // llvm.ppc.qpx.qvstfcs
-    40, // llvm.ppc.qpx.qvstfcsa
-    40, // llvm.ppc.qpx.qvstfd
-    40, // llvm.ppc.qpx.qvstfda
-    40, // llvm.ppc.qpx.qvstfiw
-    40, // llvm.ppc.qpx.qvstfiwa
-    40, // llvm.ppc.qpx.qvstfs
-    40, // llvm.ppc.qpx.qvstfsa
-    3, // llvm.ppc.set.texasr
-    3, // llvm.ppc.set.texasru
-    3, // llvm.ppc.set.tfhar
-    3, // llvm.ppc.set.tfiar
-    3, // llvm.ppc.sync
-    3, // llvm.ppc.tabort
-    3, // llvm.ppc.tabortdc
-    3, // llvm.ppc.tabortdci
-    3, // llvm.ppc.tabortwc
-    3, // llvm.ppc.tabortwci
-    3, // llvm.ppc.tbegin
-    3, // llvm.ppc.tcheck
-    3, // llvm.ppc.tend
-    3, // llvm.ppc.tendall
-    3, // llvm.ppc.trechkpt
-    3, // llvm.ppc.treclaim
-    3, // llvm.ppc.tresume
-    3, // llvm.ppc.tsr
-    3, // llvm.ppc.tsuspend
-    3, // llvm.ppc.ttest
-    2, // llvm.ppc.vsx.lxvd2x
-    2, // llvm.ppc.vsx.lxvd2x.be
-    2, // llvm.ppc.vsx.lxvl
-    2, // llvm.ppc.vsx.lxvll
-    2, // llvm.ppc.vsx.lxvw4x
-    2, // llvm.ppc.vsx.lxvw4x.be
-    40, // llvm.ppc.vsx.stxvd2x
-    40, // llvm.ppc.vsx.stxvd2x.be
-    40, // llvm.ppc.vsx.stxvl
-    40, // llvm.ppc.vsx.stxvll
-    40, // llvm.ppc.vsx.stxvw4x
-    40, // llvm.ppc.vsx.stxvw4x.be
-    1, // llvm.ppc.vsx.xsmaxdp
-    1, // llvm.ppc.vsx.xsmindp
-    1, // llvm.ppc.vsx.xvcmpeqdp
-    1, // llvm.ppc.vsx.xvcmpeqdp.p
-    1, // llvm.ppc.vsx.xvcmpeqsp
-    1, // llvm.ppc.vsx.xvcmpeqsp.p
-    1, // llvm.ppc.vsx.xvcmpgedp
-    1, // llvm.ppc.vsx.xvcmpgedp.p
-    1, // llvm.ppc.vsx.xvcmpgesp
-    1, // llvm.ppc.vsx.xvcmpgesp.p
-    1, // llvm.ppc.vsx.xvcmpgtdp
-    1, // llvm.ppc.vsx.xvcmpgtdp.p
-    1, // llvm.ppc.vsx.xvcmpgtsp
-    1, // llvm.ppc.vsx.xvcmpgtsp.p
-    1, // llvm.ppc.vsx.xvcvdpsp
-    1, // llvm.ppc.vsx.xvcvdpsxws
-    1, // llvm.ppc.vsx.xvcvdpuxws
-    1, // llvm.ppc.vsx.xvcvhpsp
-    1, // llvm.ppc.vsx.xvcvspdp
-    1, // llvm.ppc.vsx.xvcvsphp
-    1, // llvm.ppc.vsx.xvcvsxdsp
-    1, // llvm.ppc.vsx.xvcvsxwdp
-    1, // llvm.ppc.vsx.xvcvuxdsp
-    1, // llvm.ppc.vsx.xvcvuxwdp
-    1, // llvm.ppc.vsx.xvdivdp
-    1, // llvm.ppc.vsx.xvdivsp
-    1, // llvm.ppc.vsx.xviexpdp
-    1, // llvm.ppc.vsx.xviexpsp
-    1, // llvm.ppc.vsx.xvmaxdp
-    1, // llvm.ppc.vsx.xvmaxsp
-    1, // llvm.ppc.vsx.xvmindp
-    1, // llvm.ppc.vsx.xvminsp
-    1, // llvm.ppc.vsx.xvrdpip
-    1, // llvm.ppc.vsx.xvredp
-    1, // llvm.ppc.vsx.xvresp
-    1, // llvm.ppc.vsx.xvrspip
-    1, // llvm.ppc.vsx.xvrsqrtedp
-    1, // llvm.ppc.vsx.xvrsqrtesp
-    1, // llvm.ppc.vsx.xvtstdcdp
-    1, // llvm.ppc.vsx.xvtstdcsp
-    1, // llvm.ppc.vsx.xvxexpdp
-    1, // llvm.ppc.vsx.xvxexpsp
-    1, // llvm.ppc.vsx.xvxsigdp
-    1, // llvm.ppc.vsx.xvxsigsp
-    1, // llvm.ppc.vsx.xxextractuw
-    1, // llvm.ppc.vsx.xxinsertw
-    1, // llvm.ppc.vsx.xxleqv
-    4, // llvm.r600.cube
-    33, // llvm.r600.group.barrier
-    4, // llvm.r600.implicitarg.ptr
-    3, // llvm.r600.rat.store.typed
-    4, // llvm.r600.read.global.size.x
-    4, // llvm.r600.read.global.size.y
-    4, // llvm.r600.read.global.size.z
-    4, // llvm.r600.read.local.size.x
-    4, // llvm.r600.read.local.size.y
-    4, // llvm.r600.read.local.size.z
-    4, // llvm.r600.read.ngroups.x
-    4, // llvm.r600.read.ngroups.y
-    4, // llvm.r600.read.ngroups.z
-    4, // llvm.r600.read.tgid.x
-    4, // llvm.r600.read.tgid.y
-    4, // llvm.r600.read.tgid.z
-    4, // llvm.r600.read.tidig.x
-    4, // llvm.r600.read.tidig.y
-    4, // llvm.r600.read.tidig.z
-    4, // llvm.r600.recipsqrt.clamped
-    4, // llvm.r600.recipsqrt.ieee
-    3, // llvm.s390.efpc
-    1, // llvm.s390.etnd
-    1, // llvm.s390.lcbb
-    40, // llvm.s390.ntstg
-    3, // llvm.s390.ppa.txassist
-    3, // llvm.s390.sfpc
-    41, // llvm.s390.tabort
-    42, // llvm.s390.tbegin
-    42, // llvm.s390.tbegin.nofloat
-    42, // llvm.s390.tbeginc
-    1, // llvm.s390.tdc
-    3, // llvm.s390.tend
-    1, // llvm.s390.vaccb
-    1, // llvm.s390.vacccq
-    1, // llvm.s390.vaccf
-    1, // llvm.s390.vaccg
-    1, // llvm.s390.vacch
-    1, // llvm.s390.vaccq
-    1, // llvm.s390.vacq
-    1, // llvm.s390.vaq
-    1, // llvm.s390.vavgb
-    1, // llvm.s390.vavgf
-    1, // llvm.s390.vavgg
-    1, // llvm.s390.vavgh
-    1, // llvm.s390.vavglb
-    1, // llvm.s390.vavglf
-    1, // llvm.s390.vavglg
-    1, // llvm.s390.vavglh
-    1, // llvm.s390.vbperm
-    1, // llvm.s390.vceqbs
-    1, // llvm.s390.vceqfs
-    1, // llvm.s390.vceqgs
-    1, // llvm.s390.vceqhs
-    1, // llvm.s390.vchbs
-    1, // llvm.s390.vchfs
-    1, // llvm.s390.vchgs
-    1, // llvm.s390.vchhs
-    1, // llvm.s390.vchlbs
-    1, // llvm.s390.vchlfs
-    1, // llvm.s390.vchlgs
-    1, // llvm.s390.vchlhs
-    1, // llvm.s390.vcksm
-    1, // llvm.s390.verimb
-    1, // llvm.s390.verimf
-    1, // llvm.s390.verimg
-    1, // llvm.s390.verimh
-    1, // llvm.s390.verllb
-    1, // llvm.s390.verllf
-    1, // llvm.s390.verllg
-    1, // llvm.s390.verllh
-    1, // llvm.s390.verllvb
-    1, // llvm.s390.verllvf
-    1, // llvm.s390.verllvg
-    1, // llvm.s390.verllvh
-    1, // llvm.s390.vfaeb
-    1, // llvm.s390.vfaebs
-    1, // llvm.s390.vfaef
-    1, // llvm.s390.vfaefs
-    1, // llvm.s390.vfaeh
-    1, // llvm.s390.vfaehs
-    1, // llvm.s390.vfaezb
-    1, // llvm.s390.vfaezbs
-    1, // llvm.s390.vfaezf
-    1, // llvm.s390.vfaezfs
-    1, // llvm.s390.vfaezh
-    1, // llvm.s390.vfaezhs
-    1, // llvm.s390.vfcedbs
-    1, // llvm.s390.vfcesbs
-    1, // llvm.s390.vfchdbs
-    1, // llvm.s390.vfchedbs
-    1, // llvm.s390.vfchesbs
-    1, // llvm.s390.vfchsbs
-    1, // llvm.s390.vfeeb
-    1, // llvm.s390.vfeebs
-    1, // llvm.s390.vfeef
-    1, // llvm.s390.vfeefs
-    1, // llvm.s390.vfeeh
-    1, // llvm.s390.vfeehs
-    1, // llvm.s390.vfeezb
-    1, // llvm.s390.vfeezbs
-    1, // llvm.s390.vfeezf
-    1, // llvm.s390.vfeezfs
-    1, // llvm.s390.vfeezh
-    1, // llvm.s390.vfeezhs
-    1, // llvm.s390.vfeneb
-    1, // llvm.s390.vfenebs
-    1, // llvm.s390.vfenef
-    1, // llvm.s390.vfenefs
-    1, // llvm.s390.vfeneh
-    1, // llvm.s390.vfenehs
-    1, // llvm.s390.vfenezb
-    1, // llvm.s390.vfenezbs
-    1, // llvm.s390.vfenezf
-    1, // llvm.s390.vfenezfs
-    1, // llvm.s390.vfenezh
-    1, // llvm.s390.vfenezhs
-    1, // llvm.s390.vfidb
-    1, // llvm.s390.vfisb
-    1, // llvm.s390.vfmaxdb
-    1, // llvm.s390.vfmaxsb
-    1, // llvm.s390.vfmindb
-    1, // llvm.s390.vfminsb
-    1, // llvm.s390.vftcidb
-    1, // llvm.s390.vftcisb
-    1, // llvm.s390.vgfmab
-    1, // llvm.s390.vgfmaf
-    1, // llvm.s390.vgfmag
-    1, // llvm.s390.vgfmah
-    1, // llvm.s390.vgfmb
-    1, // llvm.s390.vgfmf
-    1, // llvm.s390.vgfmg
-    1, // llvm.s390.vgfmh
-    1, // llvm.s390.vistrb
-    1, // llvm.s390.vistrbs
-    1, // llvm.s390.vistrf
-    1, // llvm.s390.vistrfs
-    1, // llvm.s390.vistrh
-    1, // llvm.s390.vistrhs
-    2, // llvm.s390.vlbb
-    2, // llvm.s390.vll
-    2, // llvm.s390.vlrl
-    1, // llvm.s390.vmaeb
-    1, // llvm.s390.vmaef
-    1, // llvm.s390.vmaeh
-    1, // llvm.s390.vmahb
-    1, // llvm.s390.vmahf
-    1, // llvm.s390.vmahh
-    1, // llvm.s390.vmaleb
-    1, // llvm.s390.vmalef
-    1, // llvm.s390.vmaleh
-    1, // llvm.s390.vmalhb
-    1, // llvm.s390.vmalhf
-    1, // llvm.s390.vmalhh
-    1, // llvm.s390.vmalob
-    1, // llvm.s390.vmalof
-    1, // llvm.s390.vmaloh
-    1, // llvm.s390.vmaob
-    1, // llvm.s390.vmaof
-    1, // llvm.s390.vmaoh
-    1, // llvm.s390.vmeb
-    1, // llvm.s390.vmef
-    1, // llvm.s390.vmeh
-    1, // llvm.s390.vmhb
-    1, // llvm.s390.vmhf
-    1, // llvm.s390.vmhh
-    1, // llvm.s390.vmleb
-    1, // llvm.s390.vmlef
-    1, // llvm.s390.vmleh
-    1, // llvm.s390.vmlhb
-    1, // llvm.s390.vmlhf
-    1, // llvm.s390.vmlhh
-    1, // llvm.s390.vmlob
-    1, // llvm.s390.vmlof
-    1, // llvm.s390.vmloh
-    1, // llvm.s390.vmob
-    1, // llvm.s390.vmof
-    1, // llvm.s390.vmoh
-    1, // llvm.s390.vmslg
-    1, // llvm.s390.vpdi
-    1, // llvm.s390.vperm
-    1, // llvm.s390.vpklsf
-    1, // llvm.s390.vpklsfs
-    1, // llvm.s390.vpklsg
-    1, // llvm.s390.vpklsgs
-    1, // llvm.s390.vpklsh
-    1, // llvm.s390.vpklshs
-    1, // llvm.s390.vpksf
-    1, // llvm.s390.vpksfs
-    1, // llvm.s390.vpksg
-    1, // llvm.s390.vpksgs
-    1, // llvm.s390.vpksh
-    1, // llvm.s390.vpkshs
-    1, // llvm.s390.vsbcbiq
-    1, // llvm.s390.vsbiq
-    1, // llvm.s390.vscbib
-    1, // llvm.s390.vscbif
-    1, // llvm.s390.vscbig
-    1, // llvm.s390.vscbih
-    1, // llvm.s390.vscbiq
-    1, // llvm.s390.vsl
-    1, // llvm.s390.vslb
-    1, // llvm.s390.vsldb
-    1, // llvm.s390.vsq
-    1, // llvm.s390.vsra
-    1, // llvm.s390.vsrab
-    1, // llvm.s390.vsrl
-    1, // llvm.s390.vsrlb
-    40, // llvm.s390.vstl
-    1, // llvm.s390.vstrcb
-    1, // llvm.s390.vstrcbs
-    1, // llvm.s390.vstrcf
-    1, // llvm.s390.vstrcfs
-    1, // llvm.s390.vstrch
-    1, // llvm.s390.vstrchs
-    1, // llvm.s390.vstrczb
-    1, // llvm.s390.vstrczbs
-    1, // llvm.s390.vstrczf
-    1, // llvm.s390.vstrczfs
-    1, // llvm.s390.vstrczh
-    1, // llvm.s390.vstrczhs
-    40, // llvm.s390.vstrl
-    1, // llvm.s390.vsumb
-    1, // llvm.s390.vsumgf
-    1, // llvm.s390.vsumgh
-    1, // llvm.s390.vsumh
-    1, // llvm.s390.vsumqf
-    1, // llvm.s390.vsumqg
-    1, // llvm.s390.vtm
-    1, // llvm.s390.vuphb
-    1, // llvm.s390.vuphf
-    1, // llvm.s390.vuphh
-    1, // llvm.s390.vuplb
-    1, // llvm.s390.vuplf
-    1, // llvm.s390.vuplhb
-    1, // llvm.s390.vuplhf
-    1, // llvm.s390.vuplhh
-    1, // llvm.s390.vuplhw
-    1, // llvm.s390.vupllb
-    1, // llvm.s390.vupllf
-    1, // llvm.s390.vupllh
-    16, // llvm.wasm.current.memory
-    43, // llvm.wasm.get.ehselector
-    43, // llvm.wasm.get.exception
-    3, // llvm.wasm.grow.memory
-    3, // llvm.wasm.mem.grow
-    16, // llvm.wasm.mem.size
-    44, // llvm.wasm.rethrow
-    44, // llvm.wasm.throw
-    1, // llvm.x86.3dnow.pavgusb
-    1, // llvm.x86.3dnow.pf2id
-    1, // llvm.x86.3dnow.pfacc
-    1, // llvm.x86.3dnow.pfadd
-    1, // llvm.x86.3dnow.pfcmpeq
-    1, // llvm.x86.3dnow.pfcmpge
-    1, // llvm.x86.3dnow.pfcmpgt
-    1, // llvm.x86.3dnow.pfmax
-    1, // llvm.x86.3dnow.pfmin
-    1, // llvm.x86.3dnow.pfmul
-    1, // llvm.x86.3dnow.pfrcp
-    1, // llvm.x86.3dnow.pfrcpit1
-    1, // llvm.x86.3dnow.pfrcpit2
-    1, // llvm.x86.3dnow.pfrsqit1
-    1, // llvm.x86.3dnow.pfrsqrt
-    1, // llvm.x86.3dnow.pfsub
-    1, // llvm.x86.3dnow.pfsubr
-    1, // llvm.x86.3dnow.pi2fd
-    1, // llvm.x86.3dnow.pmulhrw
-    1, // llvm.x86.3dnowa.pf2iw
-    1, // llvm.x86.3dnowa.pfnacc
-    1, // llvm.x86.3dnowa.pfpnacc
-    1, // llvm.x86.3dnowa.pi2fw
-    1, // llvm.x86.3dnowa.pswapd
-    21, // llvm.x86.addcarry.u32
-    21, // llvm.x86.addcarry.u64
-    21, // llvm.x86.addcarryx.u32
-    21, // llvm.x86.addcarryx.u64
-    1, // llvm.x86.aesni.aesdec
-    1, // llvm.x86.aesni.aesdec.256
-    1, // llvm.x86.aesni.aesdec.512
-    1, // llvm.x86.aesni.aesdeclast
-    1, // llvm.x86.aesni.aesdeclast.256
-    1, // llvm.x86.aesni.aesdeclast.512
-    1, // llvm.x86.aesni.aesenc
-    1, // llvm.x86.aesni.aesenc.256
-    1, // llvm.x86.aesni.aesenc.512
-    1, // llvm.x86.aesni.aesenclast
-    1, // llvm.x86.aesni.aesenclast.256
-    1, // llvm.x86.aesni.aesenclast.512
-    1, // llvm.x86.aesni.aesimc
-    1, // llvm.x86.aesni.aeskeygenassist
-    1, // llvm.x86.avx.addsub.pd.256
-    1, // llvm.x86.avx.addsub.ps.256
-    1, // llvm.x86.avx.blendv.pd.256
-    1, // llvm.x86.avx.blendv.ps.256
-    1, // llvm.x86.avx.cmp.pd.256
-    1, // llvm.x86.avx.cmp.ps.256
-    1, // llvm.x86.avx.cvt.pd2.ps.256
-    1, // llvm.x86.avx.cvt.pd2dq.256
-    1, // llvm.x86.avx.cvt.ps2dq.256
-    1, // llvm.x86.avx.cvtdq2.ps.256
-    1, // llvm.x86.avx.cvtt.pd2dq.256
-    1, // llvm.x86.avx.cvtt.ps2dq.256
-    1, // llvm.x86.avx.dp.ps.256
-    1, // llvm.x86.avx.hadd.pd.256
-    1, // llvm.x86.avx.hadd.ps.256
-    1, // llvm.x86.avx.hsub.pd.256
-    1, // llvm.x86.avx.hsub.ps.256
-    16, // llvm.x86.avx.ldu.dq.256
-    2, // llvm.x86.avx.maskload.pd
-    2, // llvm.x86.avx.maskload.pd.256
-    2, // llvm.x86.avx.maskload.ps
-    2, // llvm.x86.avx.maskload.ps.256
-    21, // llvm.x86.avx.maskstore.pd
-    21, // llvm.x86.avx.maskstore.pd.256
-    21, // llvm.x86.avx.maskstore.ps
-    21, // llvm.x86.avx.maskstore.ps.256
-    1, // llvm.x86.avx.max.pd.256
-    1, // llvm.x86.avx.max.ps.256
-    1, // llvm.x86.avx.min.pd.256
-    1, // llvm.x86.avx.min.ps.256
-    1, // llvm.x86.avx.movmsk.pd.256
-    1, // llvm.x86.avx.movmsk.ps.256
-    1, // llvm.x86.avx.ptestc.256
-    1, // llvm.x86.avx.ptestnzc.256
-    1, // llvm.x86.avx.ptestz.256
-    1, // llvm.x86.avx.rcp.ps.256
-    1, // llvm.x86.avx.round.pd.256
-    1, // llvm.x86.avx.round.ps.256
-    1, // llvm.x86.avx.rsqrt.ps.256
-    1, // llvm.x86.avx.sqrt.pd.256
-    1, // llvm.x86.avx.sqrt.ps.256
-    1, // llvm.x86.avx.vpermilvar.pd
-    1, // llvm.x86.avx.vpermilvar.pd.256
-    1, // llvm.x86.avx.vpermilvar.ps
-    1, // llvm.x86.avx.vpermilvar.ps.256
-    1, // llvm.x86.avx.vtestc.pd
-    1, // llvm.x86.avx.vtestc.pd.256
-    1, // llvm.x86.avx.vtestc.ps
-    1, // llvm.x86.avx.vtestc.ps.256
-    1, // llvm.x86.avx.vtestnzc.pd
-    1, // llvm.x86.avx.vtestnzc.pd.256
-    1, // llvm.x86.avx.vtestnzc.ps
-    1, // llvm.x86.avx.vtestnzc.ps.256
-    1, // llvm.x86.avx.vtestz.pd
-    1, // llvm.x86.avx.vtestz.pd.256
-    1, // llvm.x86.avx.vtestz.ps
-    1, // llvm.x86.avx.vtestz.ps.256
-    3, // llvm.x86.avx.vzeroall
-    3, // llvm.x86.avx.vzeroupper
-    2, // llvm.x86.avx2.gather.d.d
-    2, // llvm.x86.avx2.gather.d.d.256
-    2, // llvm.x86.avx2.gather.d.pd
-    2, // llvm.x86.avx2.gather.d.pd.256
-    2, // llvm.x86.avx2.gather.d.ps
-    2, // llvm.x86.avx2.gather.d.ps.256
-    2, // llvm.x86.avx2.gather.d.q
-    2, // llvm.x86.avx2.gather.d.q.256
-    2, // llvm.x86.avx2.gather.q.d
-    2, // llvm.x86.avx2.gather.q.d.256
-    2, // llvm.x86.avx2.gather.q.pd
-    2, // llvm.x86.avx2.gather.q.pd.256
-    2, // llvm.x86.avx2.gather.q.ps
-    2, // llvm.x86.avx2.gather.q.ps.256
-    2, // llvm.x86.avx2.gather.q.q
-    2, // llvm.x86.avx2.gather.q.q.256
-    2, // llvm.x86.avx2.maskload.d
-    2, // llvm.x86.avx2.maskload.d.256
-    2, // llvm.x86.avx2.maskload.q
-    2, // llvm.x86.avx2.maskload.q.256
-    21, // llvm.x86.avx2.maskstore.d
-    21, // llvm.x86.avx2.maskstore.d.256
-    21, // llvm.x86.avx2.maskstore.q
-    21, // llvm.x86.avx2.maskstore.q.256
-    1, // llvm.x86.avx2.mpsadbw
-    1, // llvm.x86.avx2.packssdw
-    1, // llvm.x86.avx2.packsswb
-    1, // llvm.x86.avx2.packusdw
-    1, // llvm.x86.avx2.packuswb
-    1, // llvm.x86.avx2.padds.b
-    1, // llvm.x86.avx2.padds.w
-    1, // llvm.x86.avx2.paddus.b
-    1, // llvm.x86.avx2.paddus.w
-    1, // llvm.x86.avx2.pblendvb
-    1, // llvm.x86.avx2.permd
-    1, // llvm.x86.avx2.permps
-    1, // llvm.x86.avx2.phadd.d
-    1, // llvm.x86.avx2.phadd.sw
-    1, // llvm.x86.avx2.phadd.w
-    1, // llvm.x86.avx2.phsub.d
-    1, // llvm.x86.avx2.phsub.sw
-    1, // llvm.x86.avx2.phsub.w
-    1, // llvm.x86.avx2.pmadd.ub.sw
-    1, // llvm.x86.avx2.pmadd.wd
-    1, // llvm.x86.avx2.pmovmskb
-    1, // llvm.x86.avx2.pmul.dq
-    1, // llvm.x86.avx2.pmul.hr.sw
-    1, // llvm.x86.avx2.pmulh.w
-    1, // llvm.x86.avx2.pmulhu.w
-    1, // llvm.x86.avx2.pmulu.dq
-    1, // llvm.x86.avx2.psad.bw
-    1, // llvm.x86.avx2.pshuf.b
-    1, // llvm.x86.avx2.psign.b
-    1, // llvm.x86.avx2.psign.d
-    1, // llvm.x86.avx2.psign.w
-    1, // llvm.x86.avx2.psll.d
-    1, // llvm.x86.avx2.psll.q
-    1, // llvm.x86.avx2.psll.w
-    1, // llvm.x86.avx2.pslli.d
-    1, // llvm.x86.avx2.pslli.q
-    1, // llvm.x86.avx2.pslli.w
-    1, // llvm.x86.avx2.psllv.d
-    1, // llvm.x86.avx2.psllv.d.256
-    1, // llvm.x86.avx2.psllv.q
-    1, // llvm.x86.avx2.psllv.q.256
-    1, // llvm.x86.avx2.psra.d
-    1, // llvm.x86.avx2.psra.w
-    1, // llvm.x86.avx2.psrai.d
-    1, // llvm.x86.avx2.psrai.w
-    1, // llvm.x86.avx2.psrav.d
-    1, // llvm.x86.avx2.psrav.d.256
-    1, // llvm.x86.avx2.psrl.d
-    1, // llvm.x86.avx2.psrl.q
-    1, // llvm.x86.avx2.psrl.w
-    1, // llvm.x86.avx2.psrli.d
-    1, // llvm.x86.avx2.psrli.q
-    1, // llvm.x86.avx2.psrli.w
-    1, // llvm.x86.avx2.psrlv.d
-    1, // llvm.x86.avx2.psrlv.d.256
-    1, // llvm.x86.avx2.psrlv.q
-    1, // llvm.x86.avx2.psrlv.q.256
-    1, // llvm.x86.avx2.psubs.b
-    1, // llvm.x86.avx2.psubs.w
-    1, // llvm.x86.avx2.psubus.b
-    1, // llvm.x86.avx2.psubus.w
-    1, // llvm.x86.avx512.broadcastmb.128
-    1, // llvm.x86.avx512.broadcastmb.256
-    1, // llvm.x86.avx512.broadcastmb.512
-    1, // llvm.x86.avx512.broadcastmw.128
-    1, // llvm.x86.avx512.broadcastmw.256
-    1, // llvm.x86.avx512.broadcastmw.512
-    1, // llvm.x86.avx512.cvtsi2sd64
-    1, // llvm.x86.avx512.cvtsi2ss32
-    1, // llvm.x86.avx512.cvtsi2ss64
-    1, // llvm.x86.avx512.cvttsd2si
-    1, // llvm.x86.avx512.cvttsd2si64
-    1, // llvm.x86.avx512.cvttsd2usi
-    1, // llvm.x86.avx512.cvttsd2usi64
-    1, // llvm.x86.avx512.cvttss2si
-    1, // llvm.x86.avx512.cvttss2si64
-    1, // llvm.x86.avx512.cvttss2usi
-    1, // llvm.x86.avx512.cvttss2usi64
-    1, // llvm.x86.avx512.cvtusi2sd
-    1, // llvm.x86.avx512.cvtusi2ss
-    1, // llvm.x86.avx512.cvtusi642sd
-    1, // llvm.x86.avx512.cvtusi642ss
-    1, // llvm.x86.avx512.exp2.pd
-    1, // llvm.x86.avx512.exp2.ps
-    2, // llvm.x86.avx512.gather.dpd.512
-    2, // llvm.x86.avx512.gather.dpi.512
-    2, // llvm.x86.avx512.gather.dpq.512
-    2, // llvm.x86.avx512.gather.dps.512
-    2, // llvm.x86.avx512.gather.qpd.512
-    2, // llvm.x86.avx512.gather.qpi.512
-    2, // llvm.x86.avx512.gather.qpq.512
-    2, // llvm.x86.avx512.gather.qps.512
-    2, // llvm.x86.avx512.gather3div2.df
-    2, // llvm.x86.avx512.gather3div2.di
-    2, // llvm.x86.avx512.gather3div4.df
-    2, // llvm.x86.avx512.gather3div4.di
-    2, // llvm.x86.avx512.gather3div4.sf
-    2, // llvm.x86.avx512.gather3div4.si
-    2, // llvm.x86.avx512.gather3div8.sf
-    2, // llvm.x86.avx512.gather3div8.si
-    2, // llvm.x86.avx512.gather3siv2.df
-    2, // llvm.x86.avx512.gather3siv2.di
-    2, // llvm.x86.avx512.gather3siv4.df
-    2, // llvm.x86.avx512.gather3siv4.di
-    2, // llvm.x86.avx512.gather3siv4.sf
-    2, // llvm.x86.avx512.gather3siv4.si
-    2, // llvm.x86.avx512.gather3siv8.sf
-    2, // llvm.x86.avx512.gather3siv8.si
-    21, // llvm.x86.avx512.gatherpf.dpd.512
-    21, // llvm.x86.avx512.gatherpf.dps.512
-    21, // llvm.x86.avx512.gatherpf.qpd.512
-    21, // llvm.x86.avx512.gatherpf.qps.512
-    1, // llvm.x86.avx512.mask.add.pd.512
-    1, // llvm.x86.avx512.mask.add.ps.512
-    1, // llvm.x86.avx512.mask.add.sd.round
-    1, // llvm.x86.avx512.mask.add.ss.round
-    1, // llvm.x86.avx512.mask.cmp.pd.128
-    1, // llvm.x86.avx512.mask.cmp.pd.256
-    1, // llvm.x86.avx512.mask.cmp.pd.512
-    1, // llvm.x86.avx512.mask.cmp.ps.128
-    1, // llvm.x86.avx512.mask.cmp.ps.256
-    1, // llvm.x86.avx512.mask.cmp.ps.512
-    1, // llvm.x86.avx512.mask.cmp.sd
-    1, // llvm.x86.avx512.mask.cmp.ss
-    1, // llvm.x86.avx512.mask.compress.b.128
-    1, // llvm.x86.avx512.mask.compress.b.256
-    1, // llvm.x86.avx512.mask.compress.b.512
-    1, // llvm.x86.avx512.mask.compress.d.128
-    1, // llvm.x86.avx512.mask.compress.d.256
-    1, // llvm.x86.avx512.mask.compress.d.512
-    1, // llvm.x86.avx512.mask.compress.pd.128
-    1, // llvm.x86.avx512.mask.compress.pd.256
-    1, // llvm.x86.avx512.mask.compress.pd.512
-    1, // llvm.x86.avx512.mask.compress.ps.128
-    1, // llvm.x86.avx512.mask.compress.ps.256
-    1, // llvm.x86.avx512.mask.compress.ps.512
-    1, // llvm.x86.avx512.mask.compress.q.128
-    1, // llvm.x86.avx512.mask.compress.q.256
-    1, // llvm.x86.avx512.mask.compress.q.512
-    21, // llvm.x86.avx512.mask.compress.store.b.128
-    21, // llvm.x86.avx512.mask.compress.store.b.256
-    21, // llvm.x86.avx512.mask.compress.store.b.512
-    21, // llvm.x86.avx512.mask.compress.store.d.128
-    21, // llvm.x86.avx512.mask.compress.store.d.256
-    21, // llvm.x86.avx512.mask.compress.store.d.512
-    21, // llvm.x86.avx512.mask.compress.store.pd.128
-    21, // llvm.x86.avx512.mask.compress.store.pd.256
-    21, // llvm.x86.avx512.mask.compress.store.pd.512
-    21, // llvm.x86.avx512.mask.compress.store.ps.128
-    21, // llvm.x86.avx512.mask.compress.store.ps.256
-    21, // llvm.x86.avx512.mask.compress.store.ps.512
-    21, // llvm.x86.avx512.mask.compress.store.q.128
-    21, // llvm.x86.avx512.mask.compress.store.q.256
-    21, // llvm.x86.avx512.mask.compress.store.q.512
-    21, // llvm.x86.avx512.mask.compress.store.w.128
-    21, // llvm.x86.avx512.mask.compress.store.w.256
-    21, // llvm.x86.avx512.mask.compress.store.w.512
-    1, // llvm.x86.avx512.mask.compress.w.128
-    1, // llvm.x86.avx512.mask.compress.w.256
-    1, // llvm.x86.avx512.mask.compress.w.512
-    1, // llvm.x86.avx512.mask.conflict.d.128
-    1, // llvm.x86.avx512.mask.conflict.d.256
-    1, // llvm.x86.avx512.mask.conflict.d.512
-    1, // llvm.x86.avx512.mask.conflict.q.128
-    1, // llvm.x86.avx512.mask.conflict.q.256
-    1, // llvm.x86.avx512.mask.conflict.q.512
-    1, // llvm.x86.avx512.mask.cvtdq2ps.128
-    1, // llvm.x86.avx512.mask.cvtdq2ps.256
-    1, // llvm.x86.avx512.mask.cvtdq2ps.512
-    1, // llvm.x86.avx512.mask.cvtpd2dq.128
-    1, // llvm.x86.avx512.mask.cvtpd2dq.256
-    1, // llvm.x86.avx512.mask.cvtpd2dq.512
-    1, // llvm.x86.avx512.mask.cvtpd2ps
-    1, // llvm.x86.avx512.mask.cvtpd2ps.256
-    1, // llvm.x86.avx512.mask.cvtpd2ps.512
-    1, // llvm.x86.avx512.mask.cvtpd2qq.128
-    1, // llvm.x86.avx512.mask.cvtpd2qq.256
-    1, // llvm.x86.avx512.mask.cvtpd2qq.512
-    1, // llvm.x86.avx512.mask.cvtpd2udq.128
-    1, // llvm.x86.avx512.mask.cvtpd2udq.256
-    1, // llvm.x86.avx512.mask.cvtpd2udq.512
-    1, // llvm.x86.avx512.mask.cvtpd2uqq.128
-    1, // llvm.x86.avx512.mask.cvtpd2uqq.256
-    1, // llvm.x86.avx512.mask.cvtpd2uqq.512
-    1, // llvm.x86.avx512.mask.cvtps2dq.128
-    1, // llvm.x86.avx512.mask.cvtps2dq.256
-    1, // llvm.x86.avx512.mask.cvtps2dq.512
-    1, // llvm.x86.avx512.mask.cvtps2pd.128
-    1, // llvm.x86.avx512.mask.cvtps2pd.256
-    1, // llvm.x86.avx512.mask.cvtps2pd.512
-    1, // llvm.x86.avx512.mask.cvtps2qq.128
-    1, // llvm.x86.avx512.mask.cvtps2qq.256
-    1, // llvm.x86.avx512.mask.cvtps2qq.512
-    1, // llvm.x86.avx512.mask.cvtps2udq.128
-    1, // llvm.x86.avx512.mask.cvtps2udq.256
-    1, // llvm.x86.avx512.mask.cvtps2udq.512
-    1, // llvm.x86.avx512.mask.cvtps2uqq.128
-    1, // llvm.x86.avx512.mask.cvtps2uqq.256
-    1, // llvm.x86.avx512.mask.cvtps2uqq.512
-    1, // llvm.x86.avx512.mask.cvtqq2pd.128
-    1, // llvm.x86.avx512.mask.cvtqq2pd.256
-    1, // llvm.x86.avx512.mask.cvtqq2pd.512
-    1, // llvm.x86.avx512.mask.cvtqq2ps.128
-    1, // llvm.x86.avx512.mask.cvtqq2ps.256
-    1, // llvm.x86.avx512.mask.cvtqq2ps.512
-    1, // llvm.x86.avx512.mask.cvtsd2ss.round
-    1, // llvm.x86.avx512.mask.cvtss2sd.round
-    1, // llvm.x86.avx512.mask.cvttpd2dq.128
-    1, // llvm.x86.avx512.mask.cvttpd2dq.256
-    1, // llvm.x86.avx512.mask.cvttpd2dq.512
-    1, // llvm.x86.avx512.mask.cvttpd2qq.128
-    1, // llvm.x86.avx512.mask.cvttpd2qq.256
-    1, // llvm.x86.avx512.mask.cvttpd2qq.512
-    1, // llvm.x86.avx512.mask.cvttpd2udq.128
-    1, // llvm.x86.avx512.mask.cvttpd2udq.256
-    1, // llvm.x86.avx512.mask.cvttpd2udq.512
-    1, // llvm.x86.avx512.mask.cvttpd2uqq.128
-    1, // llvm.x86.avx512.mask.cvttpd2uqq.256
-    1, // llvm.x86.avx512.mask.cvttpd2uqq.512
-    1, // llvm.x86.avx512.mask.cvttps2dq.128
-    1, // llvm.x86.avx512.mask.cvttps2dq.256
-    1, // llvm.x86.avx512.mask.cvttps2dq.512
-    1, // llvm.x86.avx512.mask.cvttps2qq.128
-    1, // llvm.x86.avx512.mask.cvttps2qq.256
-    1, // llvm.x86.avx512.mask.cvttps2qq.512
-    1, // llvm.x86.avx512.mask.cvttps2udq.128
-    1, // llvm.x86.avx512.mask.cvttps2udq.256
-    1, // llvm.x86.avx512.mask.cvttps2udq.512
-    1, // llvm.x86.avx512.mask.cvttps2uqq.128
-    1, // llvm.x86.avx512.mask.cvttps2uqq.256
-    1, // llvm.x86.avx512.mask.cvttps2uqq.512
-    1, // llvm.x86.avx512.mask.cvtudq2ps.128
-    1, // llvm.x86.avx512.mask.cvtudq2ps.256
-    1, // llvm.x86.avx512.mask.cvtudq2ps.512
-    1, // llvm.x86.avx512.mask.cvtuqq2pd.128
-    1, // llvm.x86.avx512.mask.cvtuqq2pd.256
-    1, // llvm.x86.avx512.mask.cvtuqq2pd.512
-    1, // llvm.x86.avx512.mask.cvtuqq2ps.128
-    1, // llvm.x86.avx512.mask.cvtuqq2ps.256
-    1, // llvm.x86.avx512.mask.cvtuqq2ps.512
-    1, // llvm.x86.avx512.mask.dbpsadbw.128
-    1, // llvm.x86.avx512.mask.dbpsadbw.256
-    1, // llvm.x86.avx512.mask.dbpsadbw.512
-    1, // llvm.x86.avx512.mask.div.pd.512
-    1, // llvm.x86.avx512.mask.div.ps.512
-    1, // llvm.x86.avx512.mask.div.sd.round
-    1, // llvm.x86.avx512.mask.div.ss.round
-    1, // llvm.x86.avx512.mask.expand.b.128
-    1, // llvm.x86.avx512.mask.expand.b.256
-    1, // llvm.x86.avx512.mask.expand.b.512
-    1, // llvm.x86.avx512.mask.expand.d.128
-    1, // llvm.x86.avx512.mask.expand.d.256
-    1, // llvm.x86.avx512.mask.expand.d.512
-    2, // llvm.x86.avx512.mask.expand.load.b.128
-    2, // llvm.x86.avx512.mask.expand.load.b.256
-    2, // llvm.x86.avx512.mask.expand.load.b.512
-    2, // llvm.x86.avx512.mask.expand.load.d.128
-    2, // llvm.x86.avx512.mask.expand.load.d.256
-    2, // llvm.x86.avx512.mask.expand.load.d.512
-    2, // llvm.x86.avx512.mask.expand.load.pd.128
-    2, // llvm.x86.avx512.mask.expand.load.pd.256
-    2, // llvm.x86.avx512.mask.expand.load.pd.512
-    2, // llvm.x86.avx512.mask.expand.load.ps.128
-    2, // llvm.x86.avx512.mask.expand.load.ps.256
-    2, // llvm.x86.avx512.mask.expand.load.ps.512
-    2, // llvm.x86.avx512.mask.expand.load.q.128
-    2, // llvm.x86.avx512.mask.expand.load.q.256
-    2, // llvm.x86.avx512.mask.expand.load.q.512
-    2, // llvm.x86.avx512.mask.expand.load.w.128
-    2, // llvm.x86.avx512.mask.expand.load.w.256
-    2, // llvm.x86.avx512.mask.expand.load.w.512
-    1, // llvm.x86.avx512.mask.expand.pd.128
-    1, // llvm.x86.avx512.mask.expand.pd.256
-    1, // llvm.x86.avx512.mask.expand.pd.512
-    1, // llvm.x86.avx512.mask.expand.ps.128
-    1, // llvm.x86.avx512.mask.expand.ps.256
-    1, // llvm.x86.avx512.mask.expand.ps.512
-    1, // llvm.x86.avx512.mask.expand.q.128
-    1, // llvm.x86.avx512.mask.expand.q.256
-    1, // llvm.x86.avx512.mask.expand.q.512
-    1, // llvm.x86.avx512.mask.expand.w.128
-    1, // llvm.x86.avx512.mask.expand.w.256
-    1, // llvm.x86.avx512.mask.expand.w.512
-    1, // llvm.x86.avx512.mask.fixupimm.pd.128
-    1, // llvm.x86.avx512.mask.fixupimm.pd.256
-    1, // llvm.x86.avx512.mask.fixupimm.pd.512
-    1, // llvm.x86.avx512.mask.fixupimm.ps.128
-    1, // llvm.x86.avx512.mask.fixupimm.ps.256
-    1, // llvm.x86.avx512.mask.fixupimm.ps.512
-    1, // llvm.x86.avx512.mask.fixupimm.sd
-    1, // llvm.x86.avx512.mask.fixupimm.ss
-    1, // llvm.x86.avx512.mask.fpclass.pd.128
-    1, // llvm.x86.avx512.mask.fpclass.pd.256
-    1, // llvm.x86.avx512.mask.fpclass.pd.512
-    1, // llvm.x86.avx512.mask.fpclass.ps.128
-    1, // llvm.x86.avx512.mask.fpclass.ps.256
-    1, // llvm.x86.avx512.mask.fpclass.ps.512
-    1, // llvm.x86.avx512.mask.fpclass.sd
-    1, // llvm.x86.avx512.mask.fpclass.ss
-    1, // llvm.x86.avx512.mask.getexp.pd.128
-    1, // llvm.x86.avx512.mask.getexp.pd.256
-    1, // llvm.x86.avx512.mask.getexp.pd.512
-    1, // llvm.x86.avx512.mask.getexp.ps.128
-    1, // llvm.x86.avx512.mask.getexp.ps.256
-    1, // llvm.x86.avx512.mask.getexp.ps.512
-    1, // llvm.x86.avx512.mask.getexp.sd
-    1, // llvm.x86.avx512.mask.getexp.ss
-    1, // llvm.x86.avx512.mask.getmant.pd.128
-    1, // llvm.x86.avx512.mask.getmant.pd.256
-    1, // llvm.x86.avx512.mask.getmant.pd.512
-    1, // llvm.x86.avx512.mask.getmant.ps.128
-    1, // llvm.x86.avx512.mask.getmant.ps.256
-    1, // llvm.x86.avx512.mask.getmant.ps.512
-    1, // llvm.x86.avx512.mask.getmant.sd
-    1, // llvm.x86.avx512.mask.getmant.ss
-    1, // llvm.x86.avx512.mask.max.pd.512
-    1, // llvm.x86.avx512.mask.max.ps.512
-    1, // llvm.x86.avx512.mask.max.sd.round
-    1, // llvm.x86.avx512.mask.max.ss.round
-    1, // llvm.x86.avx512.mask.min.pd.512
-    1, // llvm.x86.avx512.mask.min.ps.512
-    1, // llvm.x86.avx512.mask.min.sd.round
-    1, // llvm.x86.avx512.mask.min.ss.round
-    1, // llvm.x86.avx512.mask.mul.pd.512
-    1, // llvm.x86.avx512.mask.mul.ps.512
-    1, // llvm.x86.avx512.mask.mul.sd.round
-    1, // llvm.x86.avx512.mask.mul.ss.round
-    1, // llvm.x86.avx512.mask.padds.b.128
-    1, // llvm.x86.avx512.mask.padds.b.256
-    1, // llvm.x86.avx512.mask.padds.b.512
-    1, // llvm.x86.avx512.mask.padds.w.128
-    1, // llvm.x86.avx512.mask.padds.w.256
-    1, // llvm.x86.avx512.mask.padds.w.512
-    1, // llvm.x86.avx512.mask.paddus.b.128
-    1, // llvm.x86.avx512.mask.paddus.b.256
-    1, // llvm.x86.avx512.mask.paddus.b.512
-    1, // llvm.x86.avx512.mask.paddus.w.128
-    1, // llvm.x86.avx512.mask.paddus.w.256
-    1, // llvm.x86.avx512.mask.paddus.w.512
-    1, // llvm.x86.avx512.mask.permvar.df.256
-    1, // llvm.x86.avx512.mask.permvar.df.512
-    1, // llvm.x86.avx512.mask.permvar.di.256
-    1, // llvm.x86.avx512.mask.permvar.di.512
-    1, // llvm.x86.avx512.mask.permvar.hi.128
-    1, // llvm.x86.avx512.mask.permvar.hi.256
-    1, // llvm.x86.avx512.mask.permvar.hi.512
-    1, // llvm.x86.avx512.mask.permvar.qi.128
-    1, // llvm.x86.avx512.mask.permvar.qi.256
-    1, // llvm.x86.avx512.mask.permvar.qi.512
-    1, // llvm.x86.avx512.mask.permvar.sf.256
-    1, // llvm.x86.avx512.mask.permvar.sf.512
-    1, // llvm.x86.avx512.mask.permvar.si.256
-    1, // llvm.x86.avx512.mask.permvar.si.512
-    1, // llvm.x86.avx512.mask.pmaddubs.w.128
-    1, // llvm.x86.avx512.mask.pmaddubs.w.256
-    1, // llvm.x86.avx512.mask.pmaddubs.w.512
-    1, // llvm.x86.avx512.mask.pmaddw.d.128
-    1, // llvm.x86.avx512.mask.pmaddw.d.256
-    1, // llvm.x86.avx512.mask.pmaddw.d.512
-    1, // llvm.x86.avx512.mask.pmov.db.128
-    1, // llvm.x86.avx512.mask.pmov.db.256
-    1, // llvm.x86.avx512.mask.pmov.db.512
-    21, // llvm.x86.avx512.mask.pmov.db.mem.128
-    21, // llvm.x86.avx512.mask.pmov.db.mem.256
-    21, // llvm.x86.avx512.mask.pmov.db.mem.512
-    1, // llvm.x86.avx512.mask.pmov.dw.128
-    1, // llvm.x86.avx512.mask.pmov.dw.256
-    1, // llvm.x86.avx512.mask.pmov.dw.512
-    21, // llvm.x86.avx512.mask.pmov.dw.mem.128
-    21, // llvm.x86.avx512.mask.pmov.dw.mem.256
-    21, // llvm.x86.avx512.mask.pmov.dw.mem.512
-    1, // llvm.x86.avx512.mask.pmov.qb.128
-    1, // llvm.x86.avx512.mask.pmov.qb.256
-    1, // llvm.x86.avx512.mask.pmov.qb.512
-    21, // llvm.x86.avx512.mask.pmov.qb.mem.128
-    21, // llvm.x86.avx512.mask.pmov.qb.mem.256
-    21, // llvm.x86.avx512.mask.pmov.qb.mem.512
-    1, // llvm.x86.avx512.mask.pmov.qd.128
-    1, // llvm.x86.avx512.mask.pmov.qd.256
-    1, // llvm.x86.avx512.mask.pmov.qd.512
-    21, // llvm.x86.avx512.mask.pmov.qd.mem.128
-    21, // llvm.x86.avx512.mask.pmov.qd.mem.256
-    21, // llvm.x86.avx512.mask.pmov.qd.mem.512
-    1, // llvm.x86.avx512.mask.pmov.qw.128
-    1, // llvm.x86.avx512.mask.pmov.qw.256
-    1, // llvm.x86.avx512.mask.pmov.qw.512
-    21, // llvm.x86.avx512.mask.pmov.qw.mem.128
-    21, // llvm.x86.avx512.mask.pmov.qw.mem.256
-    21, // llvm.x86.avx512.mask.pmov.qw.mem.512
-    1, // llvm.x86.avx512.mask.pmov.wb.128
-    1, // llvm.x86.avx512.mask.pmov.wb.256
-    1, // llvm.x86.avx512.mask.pmov.wb.512
-    21, // llvm.x86.avx512.mask.pmov.wb.mem.128
-    21, // llvm.x86.avx512.mask.pmov.wb.mem.256
-    21, // llvm.x86.avx512.mask.pmov.wb.mem.512
-    1, // llvm.x86.avx512.mask.pmovs.db.128
-    1, // llvm.x86.avx512.mask.pmovs.db.256
-    1, // llvm.x86.avx512.mask.pmovs.db.512
-    21, // llvm.x86.avx512.mask.pmovs.db.mem.128
-    21, // llvm.x86.avx512.mask.pmovs.db.mem.256
-    21, // llvm.x86.avx512.mask.pmovs.db.mem.512
-    1, // llvm.x86.avx512.mask.pmovs.dw.128
-    1, // llvm.x86.avx512.mask.pmovs.dw.256
-    1, // llvm.x86.avx512.mask.pmovs.dw.512
-    21, // llvm.x86.avx512.mask.pmovs.dw.mem.128
-    21, // llvm.x86.avx512.mask.pmovs.dw.mem.256
-    21, // llvm.x86.avx512.mask.pmovs.dw.mem.512
-    1, // llvm.x86.avx512.mask.pmovs.qb.128
-    1, // llvm.x86.avx512.mask.pmovs.qb.256
-    1, // llvm.x86.avx512.mask.pmovs.qb.512
-    21, // llvm.x86.avx512.mask.pmovs.qb.mem.128
-    21, // llvm.x86.avx512.mask.pmovs.qb.mem.256
-    21, // llvm.x86.avx512.mask.pmovs.qb.mem.512
-    1, // llvm.x86.avx512.mask.pmovs.qd.128
-    1, // llvm.x86.avx512.mask.pmovs.qd.256
-    1, // llvm.x86.avx512.mask.pmovs.qd.512
-    21, // llvm.x86.avx512.mask.pmovs.qd.mem.128
-    21, // llvm.x86.avx512.mask.pmovs.qd.mem.256
-    21, // llvm.x86.avx512.mask.pmovs.qd.mem.512
-    1, // llvm.x86.avx512.mask.pmovs.qw.128
-    1, // llvm.x86.avx512.mask.pmovs.qw.256
-    1, // llvm.x86.avx512.mask.pmovs.qw.512
-    21, // llvm.x86.avx512.mask.pmovs.qw.mem.128
-    21, // llvm.x86.avx512.mask.pmovs.qw.mem.256
-    21, // llvm.x86.avx512.mask.pmovs.qw.mem.512
-    1, // llvm.x86.avx512.mask.pmovs.wb.128
-    1, // llvm.x86.avx512.mask.pmovs.wb.256
-    1, // llvm.x86.avx512.mask.pmovs.wb.512
-    21, // llvm.x86.avx512.mask.pmovs.wb.mem.128
-    21, // llvm.x86.avx512.mask.pmovs.wb.mem.256
-    21, // llvm.x86.avx512.mask.pmovs.wb.mem.512
-    1, // llvm.x86.avx512.mask.pmovus.db.128
-    1, // llvm.x86.avx512.mask.pmovus.db.256
-    1, // llvm.x86.avx512.mask.pmovus.db.512
-    21, // llvm.x86.avx512.mask.pmovus.db.mem.128
-    21, // llvm.x86.avx512.mask.pmovus.db.mem.256
-    21, // llvm.x86.avx512.mask.pmovus.db.mem.512
-    1, // llvm.x86.avx512.mask.pmovus.dw.128
-    1, // llvm.x86.avx512.mask.pmovus.dw.256
-    1, // llvm.x86.avx512.mask.pmovus.dw.512
-    21, // llvm.x86.avx512.mask.pmovus.dw.mem.128
-    21, // llvm.x86.avx512.mask.pmovus.dw.mem.256
-    21, // llvm.x86.avx512.mask.pmovus.dw.mem.512
-    1, // llvm.x86.avx512.mask.pmovus.qb.128
-    1, // llvm.x86.avx512.mask.pmovus.qb.256
-    1, // llvm.x86.avx512.mask.pmovus.qb.512
-    21, // llvm.x86.avx512.mask.pmovus.qb.mem.128
-    21, // llvm.x86.avx512.mask.pmovus.qb.mem.256
-    21, // llvm.x86.avx512.mask.pmovus.qb.mem.512
-    1, // llvm.x86.avx512.mask.pmovus.qd.128
-    1, // llvm.x86.avx512.mask.pmovus.qd.256
-    1, // llvm.x86.avx512.mask.pmovus.qd.512
-    21, // llvm.x86.avx512.mask.pmovus.qd.mem.128
-    21, // llvm.x86.avx512.mask.pmovus.qd.mem.256
-    21, // llvm.x86.avx512.mask.pmovus.qd.mem.512
-    1, // llvm.x86.avx512.mask.pmovus.qw.128
-    1, // llvm.x86.avx512.mask.pmovus.qw.256
-    1, // llvm.x86.avx512.mask.pmovus.qw.512
-    21, // llvm.x86.avx512.mask.pmovus.qw.mem.128
-    21, // llvm.x86.avx512.mask.pmovus.qw.mem.256
-    21, // llvm.x86.avx512.mask.pmovus.qw.mem.512
-    1, // llvm.x86.avx512.mask.pmovus.wb.128
-    1, // llvm.x86.avx512.mask.pmovus.wb.256
-    1, // llvm.x86.avx512.mask.pmovus.wb.512
-    21, // llvm.x86.avx512.mask.pmovus.wb.mem.128
-    21, // llvm.x86.avx512.mask.pmovus.wb.mem.256
-    21, // llvm.x86.avx512.mask.pmovus.wb.mem.512
-    1, // llvm.x86.avx512.mask.pmultishift.qb.128
-    1, // llvm.x86.avx512.mask.pmultishift.qb.256
-    1, // llvm.x86.avx512.mask.pmultishift.qb.512
-    1, // llvm.x86.avx512.mask.prol.d.128
-    1, // llvm.x86.avx512.mask.prol.d.256
-    1, // llvm.x86.avx512.mask.prol.d.512
-    1, // llvm.x86.avx512.mask.prol.q.128
-    1, // llvm.x86.avx512.mask.prol.q.256
-    1, // llvm.x86.avx512.mask.prol.q.512
-    1, // llvm.x86.avx512.mask.prolv.d.128
-    1, // llvm.x86.avx512.mask.prolv.d.256
-    1, // llvm.x86.avx512.mask.prolv.d.512
-    1, // llvm.x86.avx512.mask.prolv.q.128
-    1, // llvm.x86.avx512.mask.prolv.q.256
-    1, // llvm.x86.avx512.mask.prolv.q.512
-    1, // llvm.x86.avx512.mask.pror.d.128
-    1, // llvm.x86.avx512.mask.pror.d.256
-    1, // llvm.x86.avx512.mask.pror.d.512
-    1, // llvm.x86.avx512.mask.pror.q.128
-    1, // llvm.x86.avx512.mask.pror.q.256
-    1, // llvm.x86.avx512.mask.pror.q.512
-    1, // llvm.x86.avx512.mask.prorv.d.128
-    1, // llvm.x86.avx512.mask.prorv.d.256
-    1, // llvm.x86.avx512.mask.prorv.d.512
-    1, // llvm.x86.avx512.mask.prorv.q.128
-    1, // llvm.x86.avx512.mask.prorv.q.256
-    1, // llvm.x86.avx512.mask.prorv.q.512
-    1, // llvm.x86.avx512.mask.psubs.b.128
-    1, // llvm.x86.avx512.mask.psubs.b.256
-    1, // llvm.x86.avx512.mask.psubs.b.512
-    1, // llvm.x86.avx512.mask.psubs.w.128
-    1, // llvm.x86.avx512.mask.psubs.w.256
-    1, // llvm.x86.avx512.mask.psubs.w.512
-    1, // llvm.x86.avx512.mask.psubus.b.128
-    1, // llvm.x86.avx512.mask.psubus.b.256
-    1, // llvm.x86.avx512.mask.psubus.b.512
-    1, // llvm.x86.avx512.mask.psubus.w.128
-    1, // llvm.x86.avx512.mask.psubus.w.256
-    1, // llvm.x86.avx512.mask.psubus.w.512
-    1, // llvm.x86.avx512.mask.pternlog.d.128
-    1, // llvm.x86.avx512.mask.pternlog.d.256
-    1, // llvm.x86.avx512.mask.pternlog.d.512
-    1, // llvm.x86.avx512.mask.pternlog.q.128
-    1, // llvm.x86.avx512.mask.pternlog.q.256
-    1, // llvm.x86.avx512.mask.pternlog.q.512
-    1, // llvm.x86.avx512.mask.range.pd.128
-    1, // llvm.x86.avx512.mask.range.pd.256
-    1, // llvm.x86.avx512.mask.range.pd.512
-    1, // llvm.x86.avx512.mask.range.ps.128
-    1, // llvm.x86.avx512.mask.range.ps.256
-    1, // llvm.x86.avx512.mask.range.ps.512
-    1, // llvm.x86.avx512.mask.range.sd
-    1, // llvm.x86.avx512.mask.range.ss
-    1, // llvm.x86.avx512.mask.reduce.pd.128
-    1, // llvm.x86.avx512.mask.reduce.pd.256
-    1, // llvm.x86.avx512.mask.reduce.pd.512
-    1, // llvm.x86.avx512.mask.reduce.ps.128
-    1, // llvm.x86.avx512.mask.reduce.ps.256
-    1, // llvm.x86.avx512.mask.reduce.ps.512
-    1, // llvm.x86.avx512.mask.reduce.sd
-    1, // llvm.x86.avx512.mask.reduce.ss
-    1, // llvm.x86.avx512.mask.rndscale.pd.128
-    1, // llvm.x86.avx512.mask.rndscale.pd.256
-    1, // llvm.x86.avx512.mask.rndscale.pd.512
-    1, // llvm.x86.avx512.mask.rndscale.ps.128
-    1, // llvm.x86.avx512.mask.rndscale.ps.256
-    1, // llvm.x86.avx512.mask.rndscale.ps.512
-    1, // llvm.x86.avx512.mask.rndscale.sd
-    1, // llvm.x86.avx512.mask.rndscale.ss
-    1, // llvm.x86.avx512.mask.scalef.pd.128
-    1, // llvm.x86.avx512.mask.scalef.pd.256
-    1, // llvm.x86.avx512.mask.scalef.pd.512
-    1, // llvm.x86.avx512.mask.scalef.ps.128
-    1, // llvm.x86.avx512.mask.scalef.ps.256
-    1, // llvm.x86.avx512.mask.scalef.ps.512
-    1, // llvm.x86.avx512.mask.scalef.sd
-    1, // llvm.x86.avx512.mask.scalef.ss
-    1, // llvm.x86.avx512.mask.sqrt.pd.128
-    1, // llvm.x86.avx512.mask.sqrt.pd.256
-    1, // llvm.x86.avx512.mask.sqrt.pd.512
-    1, // llvm.x86.avx512.mask.sqrt.ps.128
-    1, // llvm.x86.avx512.mask.sqrt.ps.256
-    1, // llvm.x86.avx512.mask.sqrt.ps.512
-    1, // llvm.x86.avx512.mask.sqrt.sd
-    1, // llvm.x86.avx512.mask.sqrt.ss
-    21, // llvm.x86.avx512.mask.store.ss
-    1, // llvm.x86.avx512.mask.sub.pd.512
-    1, // llvm.x86.avx512.mask.sub.ps.512
-    1, // llvm.x86.avx512.mask.sub.sd.round
-    1, // llvm.x86.avx512.mask.sub.ss.round
-    1, // llvm.x86.avx512.mask.vcvtph2ps.128
-    1, // llvm.x86.avx512.mask.vcvtph2ps.256
-    1, // llvm.x86.avx512.mask.vcvtph2ps.512
-    1, // llvm.x86.avx512.mask.vcvtps2ph.128
-    1, // llvm.x86.avx512.mask.vcvtps2ph.256
-    1, // llvm.x86.avx512.mask.vcvtps2ph.512
-    1, // llvm.x86.avx512.mask.vfmadd.pd.128
-    1, // llvm.x86.avx512.mask.vfmadd.pd.256
-    1, // llvm.x86.avx512.mask.vfmadd.pd.512
-    1, // llvm.x86.avx512.mask.vfmadd.ps.128
-    1, // llvm.x86.avx512.mask.vfmadd.ps.256
-    1, // llvm.x86.avx512.mask.vfmadd.ps.512
-    1, // llvm.x86.avx512.mask.vfmadd.sd
-    1, // llvm.x86.avx512.mask.vfmadd.ss
-    1, // llvm.x86.avx512.mask.vfmaddsub.pd.128
-    1, // llvm.x86.avx512.mask.vfmaddsub.pd.256
-    1, // llvm.x86.avx512.mask.vfmaddsub.pd.512
-    1, // llvm.x86.avx512.mask.vfmaddsub.ps.128
-    1, // llvm.x86.avx512.mask.vfmaddsub.ps.256
-    1, // llvm.x86.avx512.mask.vfmaddsub.ps.512
-    1, // llvm.x86.avx512.mask.vfnmadd.pd.128
-    1, // llvm.x86.avx512.mask.vfnmadd.pd.256
-    1, // llvm.x86.avx512.mask.vfnmadd.pd.512
-    1, // llvm.x86.avx512.mask.vfnmadd.ps.128
-    1, // llvm.x86.avx512.mask.vfnmadd.ps.256
-    1, // llvm.x86.avx512.mask.vfnmadd.ps.512
-    1, // llvm.x86.avx512.mask.vfnmsub.pd.128
-    1, // llvm.x86.avx512.mask.vfnmsub.pd.256
-    1, // llvm.x86.avx512.mask.vfnmsub.pd.512
-    1, // llvm.x86.avx512.mask.vfnmsub.ps.128
-    1, // llvm.x86.avx512.mask.vfnmsub.ps.256
-    1, // llvm.x86.avx512.mask.vfnmsub.ps.512
-    1, // llvm.x86.avx512.mask.vpdpbusd.128
-    1, // llvm.x86.avx512.mask.vpdpbusd.256
-    1, // llvm.x86.avx512.mask.vpdpbusd.512
-    1, // llvm.x86.avx512.mask.vpdpbusds.128
-    1, // llvm.x86.avx512.mask.vpdpbusds.256
-    1, // llvm.x86.avx512.mask.vpdpbusds.512
-    1, // llvm.x86.avx512.mask.vpdpwssd.128
-    1, // llvm.x86.avx512.mask.vpdpwssd.256
-    1, // llvm.x86.avx512.mask.vpdpwssd.512
-    1, // llvm.x86.avx512.mask.vpdpwssds.128
-    1, // llvm.x86.avx512.mask.vpdpwssds.256
-    1, // llvm.x86.avx512.mask.vpdpwssds.512
-    1, // llvm.x86.avx512.mask.vpermi2var.d.128
-    1, // llvm.x86.avx512.mask.vpermi2var.d.256
-    1, // llvm.x86.avx512.mask.vpermi2var.d.512
-    1, // llvm.x86.avx512.mask.vpermi2var.hi.128
-    1, // llvm.x86.avx512.mask.vpermi2var.hi.256
-    1, // llvm.x86.avx512.mask.vpermi2var.hi.512
-    1, // llvm.x86.avx512.mask.vpermi2var.pd.128
-    1, // llvm.x86.avx512.mask.vpermi2var.pd.256
-    1, // llvm.x86.avx512.mask.vpermi2var.pd.512
-    1, // llvm.x86.avx512.mask.vpermi2var.ps.128
-    1, // llvm.x86.avx512.mask.vpermi2var.ps.256
-    1, // llvm.x86.avx512.mask.vpermi2var.ps.512
-    1, // llvm.x86.avx512.mask.vpermi2var.q.128
-    1, // llvm.x86.avx512.mask.vpermi2var.q.256
-    1, // llvm.x86.avx512.mask.vpermi2var.q.512
-    1, // llvm.x86.avx512.mask.vpermi2var.qi.128
-    1, // llvm.x86.avx512.mask.vpermi2var.qi.256
-    1, // llvm.x86.avx512.mask.vpermi2var.qi.512
-    1, // llvm.x86.avx512.mask.vpermt2var.d.128
-    1, // llvm.x86.avx512.mask.vpermt2var.d.256
-    1, // llvm.x86.avx512.mask.vpermt2var.d.512
-    1, // llvm.x86.avx512.mask.vpermt2var.hi.128
-    1, // llvm.x86.avx512.mask.vpermt2var.hi.256
-    1, // llvm.x86.avx512.mask.vpermt2var.hi.512
-    1, // llvm.x86.avx512.mask.vpermt2var.pd.128
-    1, // llvm.x86.avx512.mask.vpermt2var.pd.256
-    1, // llvm.x86.avx512.mask.vpermt2var.pd.512
-    1, // llvm.x86.avx512.mask.vpermt2var.ps.128
-    1, // llvm.x86.avx512.mask.vpermt2var.ps.256
-    1, // llvm.x86.avx512.mask.vpermt2var.ps.512
-    1, // llvm.x86.avx512.mask.vpermt2var.q.128
-    1, // llvm.x86.avx512.mask.vpermt2var.q.256
-    1, // llvm.x86.avx512.mask.vpermt2var.q.512
-    1, // llvm.x86.avx512.mask.vpermt2var.qi.128
-    1, // llvm.x86.avx512.mask.vpermt2var.qi.256
-    1, // llvm.x86.avx512.mask.vpermt2var.qi.512
-    1, // llvm.x86.avx512.mask.vpmadd52h.uq.128
-    1, // llvm.x86.avx512.mask.vpmadd52h.uq.256
-    1, // llvm.x86.avx512.mask.vpmadd52h.uq.512
-    1, // llvm.x86.avx512.mask.vpmadd52l.uq.128
-    1, // llvm.x86.avx512.mask.vpmadd52l.uq.256
-    1, // llvm.x86.avx512.mask.vpmadd52l.uq.512
-    1, // llvm.x86.avx512.mask.vpshld.d.128
-    1, // llvm.x86.avx512.mask.vpshld.d.256
-    1, // llvm.x86.avx512.mask.vpshld.d.512
-    1, // llvm.x86.avx512.mask.vpshld.q.128
-    1, // llvm.x86.avx512.mask.vpshld.q.256
-    1, // llvm.x86.avx512.mask.vpshld.q.512
-    1, // llvm.x86.avx512.mask.vpshld.w.128
-    1, // llvm.x86.avx512.mask.vpshld.w.256
-    1, // llvm.x86.avx512.mask.vpshld.w.512
-    1, // llvm.x86.avx512.mask.vpshldv.d.128
-    1, // llvm.x86.avx512.mask.vpshldv.d.256
-    1, // llvm.x86.avx512.mask.vpshldv.d.512
-    1, // llvm.x86.avx512.mask.vpshldv.q.128
-    1, // llvm.x86.avx512.mask.vpshldv.q.256
-    1, // llvm.x86.avx512.mask.vpshldv.q.512
-    1, // llvm.x86.avx512.mask.vpshldv.w.128
-    1, // llvm.x86.avx512.mask.vpshldv.w.256
-    1, // llvm.x86.avx512.mask.vpshldv.w.512
-    1, // llvm.x86.avx512.mask.vpshrd.d.128
-    1, // llvm.x86.avx512.mask.vpshrd.d.256
-    1, // llvm.x86.avx512.mask.vpshrd.d.512
-    1, // llvm.x86.avx512.mask.vpshrd.q.128
-    1, // llvm.x86.avx512.mask.vpshrd.q.256
-    1, // llvm.x86.avx512.mask.vpshrd.q.512
-    1, // llvm.x86.avx512.mask.vpshrd.w.128
-    1, // llvm.x86.avx512.mask.vpshrd.w.256
-    1, // llvm.x86.avx512.mask.vpshrd.w.512
-    1, // llvm.x86.avx512.mask.vpshrdv.d.128
-    1, // llvm.x86.avx512.mask.vpshrdv.d.256
-    1, // llvm.x86.avx512.mask.vpshrdv.d.512
-    1, // llvm.x86.avx512.mask.vpshrdv.q.128
-    1, // llvm.x86.avx512.mask.vpshrdv.q.256
-    1, // llvm.x86.avx512.mask.vpshrdv.q.512
-    1, // llvm.x86.avx512.mask.vpshrdv.w.128
-    1, // llvm.x86.avx512.mask.vpshrdv.w.256
-    1, // llvm.x86.avx512.mask.vpshrdv.w.512
-    1, // llvm.x86.avx512.mask.vpshufbitqmb.128
-    1, // llvm.x86.avx512.mask.vpshufbitqmb.256
-    1, // llvm.x86.avx512.mask.vpshufbitqmb.512
-    1, // llvm.x86.avx512.mask3.vfmadd.pd.128
-    1, // llvm.x86.avx512.mask3.vfmadd.pd.256
-    1, // llvm.x86.avx512.mask3.vfmadd.pd.512
-    1, // llvm.x86.avx512.mask3.vfmadd.ps.128
-    1, // llvm.x86.avx512.mask3.vfmadd.ps.256
-    1, // llvm.x86.avx512.mask3.vfmadd.ps.512
-    1, // llvm.x86.avx512.mask3.vfmadd.sd
-    1, // llvm.x86.avx512.mask3.vfmadd.ss
-    1, // llvm.x86.avx512.mask3.vfmaddsub.pd.128
-    1, // llvm.x86.avx512.mask3.vfmaddsub.pd.256
-    1, // llvm.x86.avx512.mask3.vfmaddsub.pd.512
-    1, // llvm.x86.avx512.mask3.vfmaddsub.ps.128
-    1, // llvm.x86.avx512.mask3.vfmaddsub.ps.256
-    1, // llvm.x86.avx512.mask3.vfmaddsub.ps.512
-    1, // llvm.x86.avx512.mask3.vfmsub.pd.128
-    1, // llvm.x86.avx512.mask3.vfmsub.pd.256
-    1, // llvm.x86.avx512.mask3.vfmsub.pd.512
-    1, // llvm.x86.avx512.mask3.vfmsub.ps.128
-    1, // llvm.x86.avx512.mask3.vfmsub.ps.256
-    1, // llvm.x86.avx512.mask3.vfmsub.ps.512
-    1, // llvm.x86.avx512.mask3.vfmsub.sd
-    1, // llvm.x86.avx512.mask3.vfmsub.ss
-    1, // llvm.x86.avx512.mask3.vfmsubadd.pd.128
-    1, // llvm.x86.avx512.mask3.vfmsubadd.pd.256
-    1, // llvm.x86.avx512.mask3.vfmsubadd.pd.512
-    1, // llvm.x86.avx512.mask3.vfmsubadd.ps.128
-    1, // llvm.x86.avx512.mask3.vfmsubadd.ps.256
-    1, // llvm.x86.avx512.mask3.vfmsubadd.ps.512
-    1, // llvm.x86.avx512.mask3.vfnmsub.pd.128
-    1, // llvm.x86.avx512.mask3.vfnmsub.pd.256
-    1, // llvm.x86.avx512.mask3.vfnmsub.pd.512
-    1, // llvm.x86.avx512.mask3.vfnmsub.ps.128
-    1, // llvm.x86.avx512.mask3.vfnmsub.ps.256
-    1, // llvm.x86.avx512.mask3.vfnmsub.ps.512
-    1, // llvm.x86.avx512.mask3.vfnmsub.sd
-    1, // llvm.x86.avx512.mask3.vfnmsub.ss
-    1, // llvm.x86.avx512.maskz.fixupimm.pd.128
-    1, // llvm.x86.avx512.maskz.fixupimm.pd.256
-    1, // llvm.x86.avx512.maskz.fixupimm.pd.512
-    1, // llvm.x86.avx512.maskz.fixupimm.ps.128
-    1, // llvm.x86.avx512.maskz.fixupimm.ps.256
-    1, // llvm.x86.avx512.maskz.fixupimm.ps.512
-    1, // llvm.x86.avx512.maskz.fixupimm.sd
-    1, // llvm.x86.avx512.maskz.fixupimm.ss
-    1, // llvm.x86.avx512.maskz.pternlog.d.128
-    1, // llvm.x86.avx512.maskz.pternlog.d.256
-    1, // llvm.x86.avx512.maskz.pternlog.d.512
-    1, // llvm.x86.avx512.maskz.pternlog.q.128
-    1, // llvm.x86.avx512.maskz.pternlog.q.256
-    1, // llvm.x86.avx512.maskz.pternlog.q.512
-    1, // llvm.x86.avx512.maskz.vfmadd.pd.128
-    1, // llvm.x86.avx512.maskz.vfmadd.pd.256
-    1, // llvm.x86.avx512.maskz.vfmadd.pd.512
-    1, // llvm.x86.avx512.maskz.vfmadd.ps.128
-    1, // llvm.x86.avx512.maskz.vfmadd.ps.256
-    1, // llvm.x86.avx512.maskz.vfmadd.ps.512
-    1, // llvm.x86.avx512.maskz.vfmadd.sd
-    1, // llvm.x86.avx512.maskz.vfmadd.ss
-    1, // llvm.x86.avx512.maskz.vfmaddsub.pd.128
-    1, // llvm.x86.avx512.maskz.vfmaddsub.pd.256
-    1, // llvm.x86.avx512.maskz.vfmaddsub.pd.512
-    1, // llvm.x86.avx512.maskz.vfmaddsub.ps.128
-    1, // llvm.x86.avx512.maskz.vfmaddsub.ps.256
-    1, // llvm.x86.avx512.maskz.vfmaddsub.ps.512
-    1, // llvm.x86.avx512.maskz.vpdpbusd.128
-    1, // llvm.x86.avx512.maskz.vpdpbusd.256
-    1, // llvm.x86.avx512.maskz.vpdpbusd.512
-    1, // llvm.x86.avx512.maskz.vpdpbusds.128
-    1, // llvm.x86.avx512.maskz.vpdpbusds.256
-    1, // llvm.x86.avx512.maskz.vpdpbusds.512
-    1, // llvm.x86.avx512.maskz.vpdpwssd.128
-    1, // llvm.x86.avx512.maskz.vpdpwssd.256
-    1, // llvm.x86.avx512.maskz.vpdpwssd.512
-    1, // llvm.x86.avx512.maskz.vpdpwssds.128
-    1, // llvm.x86.avx512.maskz.vpdpwssds.256
-    1, // llvm.x86.avx512.maskz.vpdpwssds.512
-    1, // llvm.x86.avx512.maskz.vpermt2var.d.128
-    1, // llvm.x86.avx512.maskz.vpermt2var.d.256
-    1, // llvm.x86.avx512.maskz.vpermt2var.d.512
-    1, // llvm.x86.avx512.maskz.vpermt2var.hi.128
-    1, // llvm.x86.avx512.maskz.vpermt2var.hi.256
-    1, // llvm.x86.avx512.maskz.vpermt2var.hi.512
-    1, // llvm.x86.avx512.maskz.vpermt2var.pd.128
-    1, // llvm.x86.avx512.maskz.vpermt2var.pd.256
-    1, // llvm.x86.avx512.maskz.vpermt2var.pd.512
-    1, // llvm.x86.avx512.maskz.vpermt2var.ps.128
-    1, // llvm.x86.avx512.maskz.vpermt2var.ps.256
-    1, // llvm.x86.avx512.maskz.vpermt2var.ps.512
-    1, // llvm.x86.avx512.maskz.vpermt2var.q.128
-    1, // llvm.x86.avx512.maskz.vpermt2var.q.256
-    1, // llvm.x86.avx512.maskz.vpermt2var.q.512
-    1, // llvm.x86.avx512.maskz.vpermt2var.qi.128
-    1, // llvm.x86.avx512.maskz.vpermt2var.qi.256
-    1, // llvm.x86.avx512.maskz.vpermt2var.qi.512
-    1, // llvm.x86.avx512.maskz.vpmadd52h.uq.128
-    1, // llvm.x86.avx512.maskz.vpmadd52h.uq.256
-    1, // llvm.x86.avx512.maskz.vpmadd52h.uq.512
-    1, // llvm.x86.avx512.maskz.vpmadd52l.uq.128
-    1, // llvm.x86.avx512.maskz.vpmadd52l.uq.256
-    1, // llvm.x86.avx512.maskz.vpmadd52l.uq.512
-    1, // llvm.x86.avx512.maskz.vpshldv.d.128
-    1, // llvm.x86.avx512.maskz.vpshldv.d.256
-    1, // llvm.x86.avx512.maskz.vpshldv.d.512
-    1, // llvm.x86.avx512.maskz.vpshldv.q.128
-    1, // llvm.x86.avx512.maskz.vpshldv.q.256
-    1, // llvm.x86.avx512.maskz.vpshldv.q.512
-    1, // llvm.x86.avx512.maskz.vpshldv.w.128
-    1, // llvm.x86.avx512.maskz.vpshldv.w.256
-    1, // llvm.x86.avx512.maskz.vpshldv.w.512
-    1, // llvm.x86.avx512.maskz.vpshrdv.d.128
-    1, // llvm.x86.avx512.maskz.vpshrdv.d.256
-    1, // llvm.x86.avx512.maskz.vpshrdv.d.512
-    1, // llvm.x86.avx512.maskz.vpshrdv.q.128
-    1, // llvm.x86.avx512.maskz.vpshrdv.q.256
-    1, // llvm.x86.avx512.maskz.vpshrdv.q.512
-    1, // llvm.x86.avx512.maskz.vpshrdv.w.128
-    1, // llvm.x86.avx512.maskz.vpshrdv.w.256
-    1, // llvm.x86.avx512.maskz.vpshrdv.w.512
-    1, // llvm.x86.avx512.packssdw.512
-    1, // llvm.x86.avx512.packsswb.512
-    1, // llvm.x86.avx512.packusdw.512
-    1, // llvm.x86.avx512.packuswb.512
-    1, // llvm.x86.avx512.pmul.dq.512
-    1, // llvm.x86.avx512.pmul.hr.sw.512
-    1, // llvm.x86.avx512.pmulh.w.512
-    1, // llvm.x86.avx512.pmulhu.w.512
-    1, // llvm.x86.avx512.pmulu.dq.512
-    1, // llvm.x86.avx512.psad.bw.512
-    1, // llvm.x86.avx512.pshuf.b.512
-    1, // llvm.x86.avx512.psll.d.512
-    1, // llvm.x86.avx512.psll.q.512
-    1, // llvm.x86.avx512.psll.w.512
-    1, // llvm.x86.avx512.pslli.d.512
-    1, // llvm.x86.avx512.pslli.q.512
-    1, // llvm.x86.avx512.pslli.w.512
-    1, // llvm.x86.avx512.psllv.d.512
-    1, // llvm.x86.avx512.psllv.q.512
-    1, // llvm.x86.avx512.psllv.w.128
-    1, // llvm.x86.avx512.psllv.w.256
-    1, // llvm.x86.avx512.psllv.w.512
-    1, // llvm.x86.avx512.psra.d.512
-    1, // llvm.x86.avx512.psra.q.128
-    1, // llvm.x86.avx512.psra.q.256
-    1, // llvm.x86.avx512.psra.q.512
-    1, // llvm.x86.avx512.psra.w.512
-    1, // llvm.x86.avx512.psrai.d.512
-    1, // llvm.x86.avx512.psrai.q.128
-    1, // llvm.x86.avx512.psrai.q.256
-    1, // llvm.x86.avx512.psrai.q.512
-    1, // llvm.x86.avx512.psrai.w.512
-    1, // llvm.x86.avx512.psrav.d.512
-    1, // llvm.x86.avx512.psrav.q.128
-    1, // llvm.x86.avx512.psrav.q.256
-    1, // llvm.x86.avx512.psrav.q.512
-    1, // llvm.x86.avx512.psrav.w.128
-    1, // llvm.x86.avx512.psrav.w.256
-    1, // llvm.x86.avx512.psrav.w.512
-    1, // llvm.x86.avx512.psrl.d.512
-    1, // llvm.x86.avx512.psrl.q.512
-    1, // llvm.x86.avx512.psrl.w.512
-    1, // llvm.x86.avx512.psrli.d.512
-    1, // llvm.x86.avx512.psrli.q.512
-    1, // llvm.x86.avx512.psrli.w.512
-    1, // llvm.x86.avx512.psrlv.d.512
-    1, // llvm.x86.avx512.psrlv.q.512
-    1, // llvm.x86.avx512.psrlv.w.128
-    1, // llvm.x86.avx512.psrlv.w.256
-    1, // llvm.x86.avx512.psrlv.w.512
-    1, // llvm.x86.avx512.rcp14.pd.128
-    1, // llvm.x86.avx512.rcp14.pd.256
-    1, // llvm.x86.avx512.rcp14.pd.512
-    1, // llvm.x86.avx512.rcp14.ps.128
-    1, // llvm.x86.avx512.rcp14.ps.256
-    1, // llvm.x86.avx512.rcp14.ps.512
-    1, // llvm.x86.avx512.rcp14.sd
-    1, // llvm.x86.avx512.rcp14.ss
-    1, // llvm.x86.avx512.rcp28.pd
-    1, // llvm.x86.avx512.rcp28.ps
-    1, // llvm.x86.avx512.rcp28.sd
-    1, // llvm.x86.avx512.rcp28.ss
-    1, // llvm.x86.avx512.rsqrt14.pd.128
-    1, // llvm.x86.avx512.rsqrt14.pd.256
-    1, // llvm.x86.avx512.rsqrt14.pd.512
-    1, // llvm.x86.avx512.rsqrt14.ps.128
-    1, // llvm.x86.avx512.rsqrt14.ps.256
-    1, // llvm.x86.avx512.rsqrt14.ps.512
-    1, // llvm.x86.avx512.rsqrt14.sd
-    1, // llvm.x86.avx512.rsqrt14.ss
-    1, // llvm.x86.avx512.rsqrt28.pd
-    1, // llvm.x86.avx512.rsqrt28.ps
-    1, // llvm.x86.avx512.rsqrt28.sd
-    1, // llvm.x86.avx512.rsqrt28.ss
-    21, // llvm.x86.avx512.scatter.dpd.512
-    21, // llvm.x86.avx512.scatter.dpi.512
-    21, // llvm.x86.avx512.scatter.dpq.512
-    21, // llvm.x86.avx512.scatter.dps.512
-    21, // llvm.x86.avx512.scatter.qpd.512
-    21, // llvm.x86.avx512.scatter.qpi.512
-    21, // llvm.x86.avx512.scatter.qpq.512
-    21, // llvm.x86.avx512.scatter.qps.512
-    21, // llvm.x86.avx512.scatterdiv2.df
-    21, // llvm.x86.avx512.scatterdiv2.di
-    21, // llvm.x86.avx512.scatterdiv4.df
-    21, // llvm.x86.avx512.scatterdiv4.di
-    21, // llvm.x86.avx512.scatterdiv4.sf
-    21, // llvm.x86.avx512.scatterdiv4.si
-    21, // llvm.x86.avx512.scatterdiv8.sf
-    21, // llvm.x86.avx512.scatterdiv8.si
-    21, // llvm.x86.avx512.scatterpf.dpd.512
-    21, // llvm.x86.avx512.scatterpf.dps.512
-    21, // llvm.x86.avx512.scatterpf.qpd.512
-    21, // llvm.x86.avx512.scatterpf.qps.512
-    21, // llvm.x86.avx512.scattersiv2.df
-    21, // llvm.x86.avx512.scattersiv2.di
-    21, // llvm.x86.avx512.scattersiv4.df
-    21, // llvm.x86.avx512.scattersiv4.di
-    21, // llvm.x86.avx512.scattersiv4.sf
-    21, // llvm.x86.avx512.scattersiv4.si
-    21, // llvm.x86.avx512.scattersiv8.sf
-    21, // llvm.x86.avx512.scattersiv8.si
-    2, // llvm.x86.avx512.vbroadcast.sd.512
-    2, // llvm.x86.avx512.vbroadcast.ss.512
-    1, // llvm.x86.avx512.vcomi.sd
-    1, // llvm.x86.avx512.vcomi.ss
-    1, // llvm.x86.avx512.vcvtsd2si32
-    1, // llvm.x86.avx512.vcvtsd2si64
-    1, // llvm.x86.avx512.vcvtsd2usi32
-    1, // llvm.x86.avx512.vcvtsd2usi64
-    1, // llvm.x86.avx512.vcvtss2si32
-    1, // llvm.x86.avx512.vcvtss2si64
-    1, // llvm.x86.avx512.vcvtss2usi32
-    1, // llvm.x86.avx512.vcvtss2usi64
-    1, // llvm.x86.avx512.vpermilvar.pd.512
-    1, // llvm.x86.avx512.vpermilvar.ps.512
-    1, // llvm.x86.bmi.bextr.32
-    1, // llvm.x86.bmi.bextr.64
-    1, // llvm.x86.bmi.bzhi.32
-    1, // llvm.x86.bmi.bzhi.64
-    1, // llvm.x86.bmi.pdep.32
-    1, // llvm.x86.bmi.pdep.64
-    1, // llvm.x86.bmi.pext.32
-    1, // llvm.x86.bmi.pext.64
-    3, // llvm.x86.clflushopt
-    3, // llvm.x86.clrssbsy
-    3, // llvm.x86.clwb
-    3, // llvm.x86.clzero
-    3, // llvm.x86.flags.read.u32
-    3, // llvm.x86.flags.read.u64
-    3, // llvm.x86.flags.write.u32
-    3, // llvm.x86.flags.write.u64
-    1, // llvm.x86.fma.vfmadd.pd
-    1, // llvm.x86.fma.vfmadd.pd.256
-    1, // llvm.x86.fma.vfmadd.ps
-    1, // llvm.x86.fma.vfmadd.ps.256
-    1, // llvm.x86.fma.vfmadd.sd
-    1, // llvm.x86.fma.vfmadd.ss
-    1, // llvm.x86.fma.vfmaddsub.pd
-    1, // llvm.x86.fma.vfmaddsub.pd.256
-    1, // llvm.x86.fma.vfmaddsub.ps
-    1, // llvm.x86.fma.vfmaddsub.ps.256
-    1, // llvm.x86.fma.vfmsub.pd
-    1, // llvm.x86.fma.vfmsub.pd.256
-    1, // llvm.x86.fma.vfmsub.ps
-    1, // llvm.x86.fma.vfmsub.ps.256
-    1, // llvm.x86.fma.vfmsub.sd
-    1, // llvm.x86.fma.vfmsub.ss
-    1, // llvm.x86.fma.vfmsubadd.pd
-    1, // llvm.x86.fma.vfmsubadd.pd.256
-    1, // llvm.x86.fma.vfmsubadd.ps
-    1, // llvm.x86.fma.vfmsubadd.ps.256
-    1, // llvm.x86.fma.vfnmadd.pd
-    1, // llvm.x86.fma.vfnmadd.pd.256
-    1, // llvm.x86.fma.vfnmadd.ps
-    1, // llvm.x86.fma.vfnmadd.ps.256
-    1, // llvm.x86.fma.vfnmadd.sd
-    1, // llvm.x86.fma.vfnmadd.ss
-    1, // llvm.x86.fma.vfnmsub.pd
-    1, // llvm.x86.fma.vfnmsub.pd.256
-    1, // llvm.x86.fma.vfnmsub.ps
-    1, // llvm.x86.fma.vfnmsub.ps.256
-    1, // llvm.x86.fma.vfnmsub.sd
-    1, // llvm.x86.fma.vfnmsub.ss
-    1, // llvm.x86.fma4.vfmadd.sd
-    1, // llvm.x86.fma4.vfmadd.ss
-    3, // llvm.x86.fxrstor
-    3, // llvm.x86.fxrstor64
-    3, // llvm.x86.fxsave
-    3, // llvm.x86.fxsave64
-    3, // llvm.x86.incsspd
-    3, // llvm.x86.incsspq
-    3, // llvm.x86.int
-    3, // llvm.x86.llwpcb
-    3, // llvm.x86.lwpins32
-    3, // llvm.x86.lwpins64
-    3, // llvm.x86.lwpval32
-    3, // llvm.x86.lwpval64
-    3, // llvm.x86.mmx.emms
-    3, // llvm.x86.mmx.femms
-    3, // llvm.x86.mmx.maskmovq
-    3, // llvm.x86.mmx.movnt.dq
-    1, // llvm.x86.mmx.packssdw
-    1, // llvm.x86.mmx.packsswb
-    1, // llvm.x86.mmx.packuswb
-    1, // llvm.x86.mmx.padd.b
-    1, // llvm.x86.mmx.padd.d
-    1, // llvm.x86.mmx.padd.q
-    1, // llvm.x86.mmx.padd.w
-    1, // llvm.x86.mmx.padds.b
-    1, // llvm.x86.mmx.padds.w
-    1, // llvm.x86.mmx.paddus.b
-    1, // llvm.x86.mmx.paddus.w
-    1, // llvm.x86.mmx.palignr.b
-    1, // llvm.x86.mmx.pand
-    1, // llvm.x86.mmx.pandn
-    1, // llvm.x86.mmx.pavg.b
-    1, // llvm.x86.mmx.pavg.w
-    1, // llvm.x86.mmx.pcmpeq.b
-    1, // llvm.x86.mmx.pcmpeq.d
-    1, // llvm.x86.mmx.pcmpeq.w
-    1, // llvm.x86.mmx.pcmpgt.b
-    1, // llvm.x86.mmx.pcmpgt.d
-    1, // llvm.x86.mmx.pcmpgt.w
-    1, // llvm.x86.mmx.pextr.w
-    1, // llvm.x86.mmx.pinsr.w
-    1, // llvm.x86.mmx.pmadd.wd
-    1, // llvm.x86.mmx.pmaxs.w
-    1, // llvm.x86.mmx.pmaxu.b
-    1, // llvm.x86.mmx.pmins.w
-    1, // llvm.x86.mmx.pminu.b
-    1, // llvm.x86.mmx.pmovmskb
-    1, // llvm.x86.mmx.pmulh.w
-    1, // llvm.x86.mmx.pmulhu.w
-    1, // llvm.x86.mmx.pmull.w
-    1, // llvm.x86.mmx.pmulu.dq
-    1, // llvm.x86.mmx.por
-    1, // llvm.x86.mmx.psad.bw
-    1, // llvm.x86.mmx.psll.d
-    1, // llvm.x86.mmx.psll.q
-    1, // llvm.x86.mmx.psll.w
-    1, // llvm.x86.mmx.pslli.d
-    1, // llvm.x86.mmx.pslli.q
-    1, // llvm.x86.mmx.pslli.w
-    1, // llvm.x86.mmx.psra.d
-    1, // llvm.x86.mmx.psra.w
-    1, // llvm.x86.mmx.psrai.d
-    1, // llvm.x86.mmx.psrai.w
-    1, // llvm.x86.mmx.psrl.d
-    1, // llvm.x86.mmx.psrl.q
-    1, // llvm.x86.mmx.psrl.w
-    1, // llvm.x86.mmx.psrli.d
-    1, // llvm.x86.mmx.psrli.q
-    1, // llvm.x86.mmx.psrli.w
-    1, // llvm.x86.mmx.psub.b
-    1, // llvm.x86.mmx.psub.d
-    1, // llvm.x86.mmx.psub.q
-    1, // llvm.x86.mmx.psub.w
-    1, // llvm.x86.mmx.psubs.b
-    1, // llvm.x86.mmx.psubs.w
-    1, // llvm.x86.mmx.psubus.b
-    1, // llvm.x86.mmx.psubus.w
-    1, // llvm.x86.mmx.punpckhbw
-    1, // llvm.x86.mmx.punpckhdq
-    1, // llvm.x86.mmx.punpckhwd
-    1, // llvm.x86.mmx.punpcklbw
-    1, // llvm.x86.mmx.punpckldq
-    1, // llvm.x86.mmx.punpcklwd
-    1, // llvm.x86.mmx.pxor
-    3, // llvm.x86.monitorx
-    3, // llvm.x86.mwaitx
-    1, // llvm.x86.pclmulqdq
-    1, // llvm.x86.pclmulqdq.256
-    1, // llvm.x86.pclmulqdq.512
-    3, // llvm.x86.rdfsbase.32
-    3, // llvm.x86.rdfsbase.64
-    3, // llvm.x86.rdgsbase.32
-    3, // llvm.x86.rdgsbase.64
-    3, // llvm.x86.rdpid
-    3, // llvm.x86.rdpkru
-    3, // llvm.x86.rdpmc
-    3, // llvm.x86.rdrand.16
-    3, // llvm.x86.rdrand.32
-    3, // llvm.x86.rdrand.64
-    3, // llvm.x86.rdseed.16
-    3, // llvm.x86.rdseed.32
-    3, // llvm.x86.rdseed.64
-    3, // llvm.x86.rdsspd
-    3, // llvm.x86.rdsspq
-    3, // llvm.x86.rdtsc
-    21, // llvm.x86.rdtscp
-    3, // llvm.x86.rstorssp
-    3, // llvm.x86.saveprevssp
-    3, // llvm.x86.seh.ehguard
-    3, // llvm.x86.seh.ehregnode
-    1, // llvm.x86.seh.lsda
-    1, // llvm.x86.seh.recoverfp
-    3, // llvm.x86.setssbsy
-    1, // llvm.x86.sha1msg1
-    1, // llvm.x86.sha1msg2
-    1, // llvm.x86.sha1nexte
-    1, // llvm.x86.sha1rnds4
-    1, // llvm.x86.sha256msg1
-    1, // llvm.x86.sha256msg2
-    1, // llvm.x86.sha256rnds2
-    3, // llvm.x86.slwpcb
-    1, // llvm.x86.sse.cmp.ps
-    1, // llvm.x86.sse.cmp.ss
-    1, // llvm.x86.sse.comieq.ss
-    1, // llvm.x86.sse.comige.ss
-    1, // llvm.x86.sse.comigt.ss
-    1, // llvm.x86.sse.comile.ss
-    1, // llvm.x86.sse.comilt.ss
-    1, // llvm.x86.sse.comineq.ss
-    1, // llvm.x86.sse.cvtpd2pi
-    1, // llvm.x86.sse.cvtpi2pd
-    1, // llvm.x86.sse.cvtpi2ps
-    1, // llvm.x86.sse.cvtps2pi
-    1, // llvm.x86.sse.cvtsi2ss
-    1, // llvm.x86.sse.cvtsi642ss
-    1, // llvm.x86.sse.cvtss2si
-    1, // llvm.x86.sse.cvtss2si64
-    1, // llvm.x86.sse.cvttpd2pi
-    1, // llvm.x86.sse.cvttps2pi
-    1, // llvm.x86.sse.cvttss2si
-    1, // llvm.x86.sse.cvttss2si64
-    3, // llvm.x86.sse.ldmxcsr
-    1, // llvm.x86.sse.max.ps
-    1, // llvm.x86.sse.max.ss
-    1, // llvm.x86.sse.min.ps
-    1, // llvm.x86.sse.min.ss
-    1, // llvm.x86.sse.movmsk.ps
-    1, // llvm.x86.sse.pshuf.w
-    1, // llvm.x86.sse.rcp.ps
-    1, // llvm.x86.sse.rcp.ss
-    1, // llvm.x86.sse.rsqrt.ps
-    1, // llvm.x86.sse.rsqrt.ss
-    3, // llvm.x86.sse.sfence
-    1, // llvm.x86.sse.sqrt.ps
-    1, // llvm.x86.sse.sqrt.ss
-    3, // llvm.x86.sse.stmxcsr
-    1, // llvm.x86.sse.ucomieq.ss
-    1, // llvm.x86.sse.ucomige.ss
-    1, // llvm.x86.sse.ucomigt.ss
-    1, // llvm.x86.sse.ucomile.ss
-    1, // llvm.x86.sse.ucomilt.ss
-    1, // llvm.x86.sse.ucomineq.ss
-    3, // llvm.x86.sse2.clflush
-    1, // llvm.x86.sse2.cmp.pd
-    1, // llvm.x86.sse2.cmp.sd
-    1, // llvm.x86.sse2.comieq.sd
-    1, // llvm.x86.sse2.comige.sd
-    1, // llvm.x86.sse2.comigt.sd
-    1, // llvm.x86.sse2.comile.sd
-    1, // llvm.x86.sse2.comilt.sd
-    1, // llvm.x86.sse2.comineq.sd
-    1, // llvm.x86.sse2.cvtdq2ps
-    1, // llvm.x86.sse2.cvtpd2dq
-    1, // llvm.x86.sse2.cvtpd2ps
-    1, // llvm.x86.sse2.cvtps2dq
-    1, // llvm.x86.sse2.cvtsd2si
-    1, // llvm.x86.sse2.cvtsd2si64
-    1, // llvm.x86.sse2.cvtsd2ss
-    1, // llvm.x86.sse2.cvtsi2sd
-    1, // llvm.x86.sse2.cvtsi642sd
-    1, // llvm.x86.sse2.cvtss2sd
-    1, // llvm.x86.sse2.cvttpd2dq
-    1, // llvm.x86.sse2.cvttps2dq
-    1, // llvm.x86.sse2.cvttsd2si
-    1, // llvm.x86.sse2.cvttsd2si64
-    3, // llvm.x86.sse2.lfence
-    3, // llvm.x86.sse2.maskmov.dqu
-    1, // llvm.x86.sse2.max.pd
-    1, // llvm.x86.sse2.max.sd
-    3, // llvm.x86.sse2.mfence
-    1, // llvm.x86.sse2.min.pd
-    1, // llvm.x86.sse2.min.sd
-    1, // llvm.x86.sse2.movmsk.pd
-    1, // llvm.x86.sse2.packssdw.128
-    1, // llvm.x86.sse2.packsswb.128
-    1, // llvm.x86.sse2.packuswb.128
-    1, // llvm.x86.sse2.padds.b
-    1, // llvm.x86.sse2.padds.w
-    1, // llvm.x86.sse2.paddus.b
-    1, // llvm.x86.sse2.paddus.w
-    3, // llvm.x86.sse2.pause
-    1, // llvm.x86.sse2.pmadd.wd
-    1, // llvm.x86.sse2.pmovmskb.128
-    1, // llvm.x86.sse2.pmulh.w
-    1, // llvm.x86.sse2.pmulhu.w
-    1, // llvm.x86.sse2.pmulu.dq
-    1, // llvm.x86.sse2.psad.bw
-    1, // llvm.x86.sse2.psll.d
-    1, // llvm.x86.sse2.psll.q
-    1, // llvm.x86.sse2.psll.w
-    1, // llvm.x86.sse2.pslli.d
-    1, // llvm.x86.sse2.pslli.q
-    1, // llvm.x86.sse2.pslli.w
-    1, // llvm.x86.sse2.psra.d
-    1, // llvm.x86.sse2.psra.w
-    1, // llvm.x86.sse2.psrai.d
-    1, // llvm.x86.sse2.psrai.w
-    1, // llvm.x86.sse2.psrl.d
-    1, // llvm.x86.sse2.psrl.q
-    1, // llvm.x86.sse2.psrl.w
-    1, // llvm.x86.sse2.psrli.d
-    1, // llvm.x86.sse2.psrli.q
-    1, // llvm.x86.sse2.psrli.w
-    1, // llvm.x86.sse2.psubs.b
-    1, // llvm.x86.sse2.psubs.w
-    1, // llvm.x86.sse2.psubus.b
-    1, // llvm.x86.sse2.psubus.w
-    1, // llvm.x86.sse2.sqrt.pd
-    1, // llvm.x86.sse2.sqrt.sd
-    1, // llvm.x86.sse2.ucomieq.sd
-    1, // llvm.x86.sse2.ucomige.sd
-    1, // llvm.x86.sse2.ucomigt.sd
-    1, // llvm.x86.sse2.ucomile.sd
-    1, // llvm.x86.sse2.ucomilt.sd
-    1, // llvm.x86.sse2.ucomineq.sd
-    1, // llvm.x86.sse3.addsub.pd
-    1, // llvm.x86.sse3.addsub.ps
-    1, // llvm.x86.sse3.hadd.pd
-    1, // llvm.x86.sse3.hadd.ps
-    1, // llvm.x86.sse3.hsub.pd
-    1, // llvm.x86.sse3.hsub.ps
-    16, // llvm.x86.sse3.ldu.dq
-    3, // llvm.x86.sse3.monitor
-    3, // llvm.x86.sse3.mwait
-    1, // llvm.x86.sse41.blendvpd
-    1, // llvm.x86.sse41.blendvps
-    1, // llvm.x86.sse41.dppd
-    1, // llvm.x86.sse41.dpps
-    1, // llvm.x86.sse41.insertps
-    1, // llvm.x86.sse41.mpsadbw
-    1, // llvm.x86.sse41.packusdw
-    1, // llvm.x86.sse41.pblendvb
-    1, // llvm.x86.sse41.phminposuw
-    1, // llvm.x86.sse41.pmuldq
-    1, // llvm.x86.sse41.ptestc
-    1, // llvm.x86.sse41.ptestnzc
-    1, // llvm.x86.sse41.ptestz
-    1, // llvm.x86.sse41.round.pd
-    1, // llvm.x86.sse41.round.ps
-    1, // llvm.x86.sse41.round.sd
-    1, // llvm.x86.sse41.round.ss
-    1, // llvm.x86.sse42.crc32.32.16
-    1, // llvm.x86.sse42.crc32.32.32
-    1, // llvm.x86.sse42.crc32.32.8
-    1, // llvm.x86.sse42.crc32.64.64
-    1, // llvm.x86.sse42.pcmpestri128
-    1, // llvm.x86.sse42.pcmpestria128
-    1, // llvm.x86.sse42.pcmpestric128
-    1, // llvm.x86.sse42.pcmpestrio128
-    1, // llvm.x86.sse42.pcmpestris128
-    1, // llvm.x86.sse42.pcmpestriz128
-    1, // llvm.x86.sse42.pcmpestrm128
-    1, // llvm.x86.sse42.pcmpistri128
-    1, // llvm.x86.sse42.pcmpistria128
-    1, // llvm.x86.sse42.pcmpistric128
-    1, // llvm.x86.sse42.pcmpistrio128
-    1, // llvm.x86.sse42.pcmpistris128
-    1, // llvm.x86.sse42.pcmpistriz128
-    1, // llvm.x86.sse42.pcmpistrm128
-    1, // llvm.x86.sse4a.extrq
-    1, // llvm.x86.sse4a.extrqi
-    1, // llvm.x86.sse4a.insertq
-    1, // llvm.x86.sse4a.insertqi
-    1, // llvm.x86.ssse3.pabs.b
-    1, // llvm.x86.ssse3.pabs.d
-    1, // llvm.x86.ssse3.pabs.w
-    1, // llvm.x86.ssse3.phadd.d
-    1, // llvm.x86.ssse3.phadd.d.128
-    1, // llvm.x86.ssse3.phadd.sw
-    1, // llvm.x86.ssse3.phadd.sw.128
-    1, // llvm.x86.ssse3.phadd.w
-    1, // llvm.x86.ssse3.phadd.w.128
-    1, // llvm.x86.ssse3.phsub.d
-    1, // llvm.x86.ssse3.phsub.d.128
-    1, // llvm.x86.ssse3.phsub.sw
-    1, // llvm.x86.ssse3.phsub.sw.128
-    1, // llvm.x86.ssse3.phsub.w
-    1, // llvm.x86.ssse3.phsub.w.128
-    1, // llvm.x86.ssse3.pmadd.ub.sw
-    1, // llvm.x86.ssse3.pmadd.ub.sw.128
-    1, // llvm.x86.ssse3.pmul.hr.sw
-    1, // llvm.x86.ssse3.pmul.hr.sw.128
-    1, // llvm.x86.ssse3.pshuf.b
-    1, // llvm.x86.ssse3.pshuf.b.128
-    1, // llvm.x86.ssse3.psign.b
-    1, // llvm.x86.ssse3.psign.b.128
-    1, // llvm.x86.ssse3.psign.d
-    1, // llvm.x86.ssse3.psign.d.128
-    1, // llvm.x86.ssse3.psign.w
-    1, // llvm.x86.ssse3.psign.w.128
-    21, // llvm.x86.subborrow.u32
-    21, // llvm.x86.subborrow.u64
-    1, // llvm.x86.tbm.bextri.u32
-    1, // llvm.x86.tbm.bextri.u64
-    1, // llvm.x86.vcvtph2ps.128
-    1, // llvm.x86.vcvtph2ps.256
-    1, // llvm.x86.vcvtps2ph.128
-    1, // llvm.x86.vcvtps2ph.256
-    1, // llvm.x86.vgf2p8affineinvqb.128
-    1, // llvm.x86.vgf2p8affineinvqb.256
-    1, // llvm.x86.vgf2p8affineinvqb.512
-    1, // llvm.x86.vgf2p8affineqb.128
-    1, // llvm.x86.vgf2p8affineqb.256
-    1, // llvm.x86.vgf2p8affineqb.512
-    1, // llvm.x86.vgf2p8mulb.128
-    1, // llvm.x86.vgf2p8mulb.256
-    1, // llvm.x86.vgf2p8mulb.512
-    3, // llvm.x86.wrfsbase.32
-    3, // llvm.x86.wrfsbase.64
-    3, // llvm.x86.wrgsbase.32
-    3, // llvm.x86.wrgsbase.64
-    3, // llvm.x86.wrpkru
-    3, // llvm.x86.wrssd
-    3, // llvm.x86.wrssq
-    3, // llvm.x86.wrussd
-    3, // llvm.x86.wrussq
-    3, // llvm.x86.xabort
-    3, // llvm.x86.xbegin
-    3, // llvm.x86.xend
-    3, // llvm.x86.xgetbv
-    1, // llvm.x86.xop.vfrcz.pd
-    1, // llvm.x86.xop.vfrcz.pd.256
-    1, // llvm.x86.xop.vfrcz.ps
-    1, // llvm.x86.xop.vfrcz.ps.256
-    1, // llvm.x86.xop.vfrcz.sd
-    1, // llvm.x86.xop.vfrcz.ss
-    1, // llvm.x86.xop.vpcomb
-    1, // llvm.x86.xop.vpcomd
-    1, // llvm.x86.xop.vpcomq
-    1, // llvm.x86.xop.vpcomub
-    1, // llvm.x86.xop.vpcomud
-    1, // llvm.x86.xop.vpcomuq
-    1, // llvm.x86.xop.vpcomuw
-    1, // llvm.x86.xop.vpcomw
-    1, // llvm.x86.xop.vpermil2pd
-    1, // llvm.x86.xop.vpermil2pd.256
-    1, // llvm.x86.xop.vpermil2ps
-    1, // llvm.x86.xop.vpermil2ps.256
-    1, // llvm.x86.xop.vphaddbd
-    1, // llvm.x86.xop.vphaddbq
-    1, // llvm.x86.xop.vphaddbw
-    1, // llvm.x86.xop.vphadddq
-    1, // llvm.x86.xop.vphaddubd
-    1, // llvm.x86.xop.vphaddubq
-    1, // llvm.x86.xop.vphaddubw
-    1, // llvm.x86.xop.vphaddudq
-    1, // llvm.x86.xop.vphadduwd
-    1, // llvm.x86.xop.vphadduwq
-    1, // llvm.x86.xop.vphaddwd
-    1, // llvm.x86.xop.vphaddwq
-    1, // llvm.x86.xop.vphsubbw
-    1, // llvm.x86.xop.vphsubdq
-    1, // llvm.x86.xop.vphsubwd
-    1, // llvm.x86.xop.vpmacsdd
-    1, // llvm.x86.xop.vpmacsdqh
-    1, // llvm.x86.xop.vpmacsdql
-    1, // llvm.x86.xop.vpmacssdd
-    1, // llvm.x86.xop.vpmacssdqh
-    1, // llvm.x86.xop.vpmacssdql
-    1, // llvm.x86.xop.vpmacsswd
-    1, // llvm.x86.xop.vpmacssww
-    1, // llvm.x86.xop.vpmacswd
-    1, // llvm.x86.xop.vpmacsww
-    1, // llvm.x86.xop.vpmadcsswd
-    1, // llvm.x86.xop.vpmadcswd
-    1, // llvm.x86.xop.vpperm
-    1, // llvm.x86.xop.vprotb
-    1, // llvm.x86.xop.vprotbi
-    1, // llvm.x86.xop.vprotd
-    1, // llvm.x86.xop.vprotdi
-    1, // llvm.x86.xop.vprotq
-    1, // llvm.x86.xop.vprotqi
-    1, // llvm.x86.xop.vprotw
-    1, // llvm.x86.xop.vprotwi
-    1, // llvm.x86.xop.vpshab
-    1, // llvm.x86.xop.vpshad
-    1, // llvm.x86.xop.vpshaq
-    1, // llvm.x86.xop.vpshaw
-    1, // llvm.x86.xop.vpshlb
-    1, // llvm.x86.xop.vpshld
-    1, // llvm.x86.xop.vpshlq
-    1, // llvm.x86.xop.vpshlw
-    3, // llvm.x86.xrstor
-    3, // llvm.x86.xrstor64
-    3, // llvm.x86.xrstors
-    3, // llvm.x86.xrstors64
-    3, // llvm.x86.xsave
-    3, // llvm.x86.xsave64
-    3, // llvm.x86.xsavec
-    3, // llvm.x86.xsavec64
-    3, // llvm.x86.xsaveopt
-    3, // llvm.x86.xsaveopt64
-    3, // llvm.x86.xsaves
-    3, // llvm.x86.xsaves64
-    3, // llvm.x86.xsetbv
-    3, // llvm.x86.xtest
-    1, // llvm.xcore.bitrev
-    3, // llvm.xcore.checkevent
-    45, // llvm.xcore.chkct
-    3, // llvm.xcore.clre
-    45, // llvm.xcore.clrpt
-    3, // llvm.xcore.clrsr
-    1, // llvm.xcore.crc32
-    1, // llvm.xcore.crc8
-    45, // llvm.xcore.edu
-    45, // llvm.xcore.eeu
-    45, // llvm.xcore.endin
-    45, // llvm.xcore.freer
-    3, // llvm.xcore.geted
-    3, // llvm.xcore.getet
-    1, // llvm.xcore.getid
-    3, // llvm.xcore.getps
-    3, // llvm.xcore.getr
-    45, // llvm.xcore.getst
-    45, // llvm.xcore.getts
-    45, // llvm.xcore.in
-    45, // llvm.xcore.inct
-    45, // llvm.xcore.initcp
-    45, // llvm.xcore.initdp
-    45, // llvm.xcore.initlr
-    45, // llvm.xcore.initpc
-    45, // llvm.xcore.initsp
-    45, // llvm.xcore.inshr
-    45, // llvm.xcore.int
-    45, // llvm.xcore.mjoin
-    45, // llvm.xcore.msync
-    45, // llvm.xcore.out
-    45, // llvm.xcore.outct
-    45, // llvm.xcore.outshr
-    45, // llvm.xcore.outt
-    45, // llvm.xcore.peek
-    45, // llvm.xcore.setc
-    46, // llvm.xcore.setclk
-    45, // llvm.xcore.setd
-    45, // llvm.xcore.setev
-    3, // llvm.xcore.setps
-    45, // llvm.xcore.setpsc
-    45, // llvm.xcore.setpt
-    46, // llvm.xcore.setrdy
-    3, // llvm.xcore.setsr
-    45, // llvm.xcore.settw
-    45, // llvm.xcore.setv
-    1, // llvm.xcore.sext
-    3, // llvm.xcore.ssync
-    45, // llvm.xcore.syncr
-    45, // llvm.xcore.testct
-    45, // llvm.xcore.testwct
-    16, // llvm.xcore.waitevent
-    1, // llvm.xcore.zext
-  };
-
-  AttributeList AS[5];
-  unsigned NumAttrs = 0;
-  if (id != 0) {
-    switch(IntrinsicsToAttributesMap[id - 1]) {
-    default: llvm_unreachable("Invalid attribute number");
-    case 3: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 45: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 46: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
-      AS[1] = AttributeList::get(C, 2, AttrParam2);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 3;
-      break;
-      }
-    case 6: {
-      const Attribute::AttrKind AttrParam2[]= {Attribute::WriteOnly};
-      AS[0] = AttributeList::get(C, 2, AttrParam2);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 25: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::InaccessibleMemOrArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 21: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 18: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 8: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 24: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::WriteOnly};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 22: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::WriteOnly};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
-      AS[1] = AttributeList::get(C, 2, AttrParam2);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 3;
-      break;
-      }
-    case 23: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
-      AS[1] = AttributeList::get(C, 2, AttrParam2);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 3;
-      break;
-      }
-    case 20: {
-      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 2, AttrParam2);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 17: {
-      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 2, AttrParam2);
-      const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture};
-      AS[1] = AttributeList::get(C, 3, AttrParam3);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 3;
-      break;
-      }
-    case 19: {
-      const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 3, AttrParam3);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 28: {
-      const Attribute::AttrKind AttrParam4[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 4, AttrParam4);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 29: {
-      const Attribute::AttrKind AttrParam5[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 5, AttrParam5);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 30: {
-      const Attribute::AttrKind AttrParam6[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 6, AttrParam6);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 15: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::InaccessibleMemOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 32: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 27: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 40: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly,Attribute::ArgMemOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 39: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::WriteOnly};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 16: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 2: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 37: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 13: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 9: {
-      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
-      AS[0] = AttributeList::get(C, 2, AttrParam2);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 10: {
-      const Attribute::AttrKind AttrParam2[]= {Attribute::ReadNone};
-      AS[0] = AttributeList::get(C, 2, AttrParam2);
-      const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture,Attribute::ReadOnly};
-      AS[1] = AttributeList::get(C, 3, AttrParam3);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 3;
-      break;
-      }
-    case 1: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 12: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 26: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::Returned};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
-      AS[1] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 2;
-      break;
-      }
-    case 11: {
-      const Attribute::AttrKind AttrParam1[]= {Attribute::ReadNone};
-      AS[0] = AttributeList::get(C, 1, AttrParam1);
-      const Attribute::AttrKind AttrParam2[]= {Attribute::ReadNone};
-      AS[1] = AttributeList::get(C, 2, AttrParam2);
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
-      AS[2] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 3;
-      break;
-      }
-    case 43: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 36: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly,Attribute::ArgMemOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 34: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Speculatable,Attribute::ReadOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 4: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Speculatable,Attribute::ReadNone};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 33: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 38: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent,Attribute::InaccessibleMemOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 31: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent,Attribute::ReadNone};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 14: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoReturn};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 5: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoDuplicate,Attribute::InaccessibleMemOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 42: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoDuplicate,Attribute::WriteOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 7: {
-      return AttributeList();
-      }
-    case 35: {
-      const Attribute::AttrKind Atts[] = {Attribute::ReadNone};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 44: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoReturn};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    case 41: {
-      const Attribute::AttrKind Atts[] = {Attribute::NoReturn,Attribute::WriteOnly};
-      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
-      NumAttrs = 1;
-      break;
-      }
-    }
-  }
-  return AttributeList::get(C, makeArrayRef(AS, NumAttrs));
-}
-#endif // GET_INTRINSIC_ATTRIBUTES
-
-// Get the LLVM intrinsic that corresponds to a builtin.
-// This is used by the C front-end.  The builtin name is passed
-// in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
-// in as TargetPrefix.  The result is assigned to 'IntrinsicID'.
-#ifdef GET_LLVM_INTRINSIC_FOR_GCC_BUILTIN
-Intrinsic::ID Intrinsic::getIntrinsicForGCCBuiltin(const char *TargetPrefixStr, StringRef BuiltinNameStr) {
-  static const char BuiltinNames[] = {
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'd', 'j', 'u', 's',
-  't', '_', 't', 'r', 'a', 'm', 'p', 'o', 'l', 'i', 'n', 'e', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'e', 'b', 'u', 'g', 't', 'r',
-  'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'u', 'n',
-  'w', 'i', 'n', 'd', '_', 'i', 'n', 'i', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'f', 'l', 't', '_', 'r', 'o', 'u', 'n', 'd', 's',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'n', 'i', 't',
-  '_', 't', 'r', 'a', 'm', 'p', 'o', 'l', 'i', 'n', 'e', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'o', 'b', 'j', 'e', 'c', 't', '_', 's',
-  'i', 'z', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-  't', 'a', 'c', 'k', '_', 'r', 'e', 's', 't', 'o', 'r', 'e', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 't', 'a', 'c', 'k', '_', 's',
-  'a', 'v', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't',
-  'h', 'r', 'e', 'a', 'd', '_', 'p', 'o', 'i', 'n', 't', 'e', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'a', 'p', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'd', 'm',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
-  '_', 'd', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'r', 'm', '_', 'i', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'b', 'u', 'f', 'f', 'e',
-  'r', '_', 'w', 'b', 'i', 'n', 'v', 'l', '1', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'b', 'u', 'f',
-  'f', 'e', 'r', '_', 'w', 'b', 'i', 'n', 'v', 'l', '1', '_', 's', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-  'n', '_', 'b', 'u', 'f', 'f', 'e', 'r', '_', 'w', 'b', 'i', 'n', 'v', 'l',
-  '1', '_', 'v', 'o', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e', 'i', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-  'n', '_', 'c', 'u', 'b', 'e', 'm', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e',
-  's', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
-  'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e', 't', 'c', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c',
-  'v', 't', '_', 'p', 'k', '_', 'u', '8', '_', 'f', '3', '2', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-  'd', 'i', 's', 'p', 'a', 't', 'c', 'h', '_', 'i', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd',
-  'i', 's', 'p', 'a', 't', 'c', 'h', '_', 'p', 't', 'r', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd',
-  's', '_', 'b', 'p', 'e', 'r', 'm', 'u', 't', 'e', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd', 's',
-  '_', 'f', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd', 's', '_', 'f', 'm', 'a', 'x',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
-  'c', 'n', '_', 'd', 's', '_', 'f', 'm', 'i', 'n', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd', 's',
-  '_', 'p', 'e', 'r', 'm', 'u', 't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd', 's', '_', 's',
-  'w', 'i', 'z', 'z', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'f', 'm', 'e', 'd', '3', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-  'n', '_', 'f', 'm', 'u', 'l', '_', 'l', 'e', 'g', 'a', 'c', 'y', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
-  '_', 'g', 'r', 'o', 'u', 'p', 's', 't', 'a', 't', 'i', 'c', 's', 'i', 'z',
-  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd',
-  'g', 'c', 'n', '_', 'i', 'm', 'p', 'l', 'i', 'c', 'i', 't', '_', 'b', 'u',
-  'f', 'f', 'e', 'r', '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'i', 'm', 'p', 'l',
-  'i', 'c', 'i', 't', 'a', 'r', 'g', '_', 'p', 't', 'r', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'i',
-  'n', 't', 'e', 'r', 'p', '_', 'm', 'o', 'v', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'i', 'n', 't',
-  'e', 'r', 'p', '_', 'p', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'i', 'n', 't', 'e', 'r', 'p',
-  '_', 'p', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'm', 'd', 'g', 'c', 'n', '_', 'k', 'e', 'r', 'n', 'a', 'r', 'g', '_', 's',
-  'e', 'g', 'm', 'e', 'n', 't', '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'l', 'e',
-  'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
-  'd', 'g', 'c', 'n', '_', 'm', 'b', 'c', 'n', 't', '_', 'h', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
-  '_', 'm', 'b', 'c', 'n', 't', '_', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'm', 'q', 's',
-  'a', 'd', '_', 'p', 'k', '_', 'u', '1', '6', '_', 'u', '8', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-  'm', 'q', 's', 'a', 'd', '_', 'u', '3', '2', '_', 'u', '8', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-  'm', 's', 'a', 'd', '_', 'u', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'q', 's', 'a', 'd', '_',
-  'p', 'k', '_', 'u', '1', '6', '_', 'u', '8', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'q', 'u', 'e',
-  'u', 'e', '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 'c', 'p', '_', 'l', 'e',
-  'g', 'a', 'c', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 'e', 'a', 'd', 'f', 'i', 'r', 's',
-  't', 'l', 'a', 'n', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 'e', 'a', 'd', 'l', 'a', 'n',
-  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd',
-  'g', 'c', 'n', '_', 'r', 's', 'q', '_', 'l', 'e', 'g', 'a', 'c', 'y', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-  'n', '_', 's', '_', 'b', 'a', 'r', 'r', 'i', 'e', 'r', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's',
-  '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'i', 'n', 'v', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's',
-  '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'i', 'n', 'v', '_', 'v', 'o', 'l',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
-  'c', 'n', '_', 's', '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'w', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-  'n', '_', 's', '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'w', 'b', '_', 'v',
-  'o', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
-  'd', 'g', 'c', 'n', '_', 's', '_', 'd', 'e', 'c', 'p', 'e', 'r', 'f', 'l',
-  'e', 'v', 'e', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'g', 'e', 't', 'p', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-  'n', '_', 's', '_', 'g', 'e', 't', 'r', 'e', 'g', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_',
-  'i', 'n', 'c', 'p', 'e', 'r', 'f', 'l', 'e', 'v', 'e', 'l', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-  's', '_', 'm', 'e', 'm', 'r', 'e', 'a', 'l', 't', 'i', 'm', 'e', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
-  '_', 's', '_', 'm', 'e', 'm', 't', 'i', 'm', 'e', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_',
-  's', 'e', 'n', 'd', 'm', 's', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 's', 'e', 'n',
-  'd', 'm', 's', 'g', 'h', 'a', 'l', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 's', 'l',
-  'e', 'e', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'w', 'a', 'i', 't', 'c', 'n', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
-  'c', 'n', '_', 's', 'a', 'd', '_', 'h', 'i', '_', 'u', '8', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-  's', 'a', 'd', '_', 'u', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', 'a', 'd', '_', 'u',
-  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd',
-  'g', 'c', 'n', '_', 'w', 'a', 'v', 'e', '_', 'b', 'a', 'r', 'r', 'i', 'e',
-  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd',
-  'g', 'c', 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u', 'p', '_', 'i',
-  'd', '_', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'm', 'd', 'g', 'c', 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u', 'p',
-  '_', 'i', 'd', '_', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o',
-  'u', 'p', '_', 'i', 'd', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'w', 'r', 'i', 't', 'e',
-  'l', 'a', 'n', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'r', 'm', '_', 'c', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'r', 'm', '_', 'c', 'd', 'p', '2', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'g', 'e', 't', '_',
-  'f', 'p', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'r', 'm', '_', 'l', 'd', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'l', 'd', 'c', '2', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'l', 'd', 'c',
-  '2', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
-  'm', '_', 'l', 'd', 'c', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'r', 'm', '_', 'm', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'm', 'c', 'r', '2', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'm', 'r',
-  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
-  '_', 'm', 'r', 'c', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'r', 'm', '_', 'q', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'q', 'a', 'd', 'd', '1', '6',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
-  'q', 'a', 'd', 'd', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'r', 'm', '_', 'q', 'a', 's', 'x', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'q', 's', 'a', 'x', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'q', 's',
-  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
-  'm', '_', 'q', 's', 'u', 'b', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'q', 's', 'u', 'b', '8', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'a',
-  'd', 'd', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'r', 'm', '_', 's', 'a', 'd', 'd', '8', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'a', 's', 'x', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'e',
-  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
-  '_', 's', 'e', 't', '_', 'f', 'p', 's', 'c', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'h', 'a', 'd', 'd',
-  '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
-  'm', '_', 's', 'h', 'a', 'd', 'd', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'h', 'a', 's', 'x', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'h',
-  's', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'r', 'm', '_', 's', 'h', 's', 'u', 'b', '1', '6', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'h', 's', 'u', 'b',
-  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
-  '_', 's', 'm', 'l', 'a', 'b', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 'a', 'b', 't', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm',
-  'l', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'r', 'm', '_', 's', 'm', 'l', 'a', 'd', 'x', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 'a', 'l', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
-  's', 'm', 'l', 'a', 'l', 'd', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 'a', 't', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm',
-  'l', 'a', 't', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'r', 'm', '_', 's', 'm', 'l', 'a', 'w', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 'a', 'w',
-  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
-  '_', 's', 'm', 'l', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l', 's', 'd', 'x', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'l',
-  's', 'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'r', 'm', '_', 's', 'm', 'l', 's', 'l', 'd', 'x', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'u', 'a', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
-  's', 'm', 'u', 'a', 'd', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'u', 'l', 'b', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'u',
-  'l', 'b', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'r', 'm', '_', 's', 'm', 'u', 'l', 't', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'u', 'l', 't', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
-  's', 'm', 'u', 'l', 'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'u', 'l', 'w', 't', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'm', 'u',
-  's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
-  'm', '_', 's', 'm', 'u', 's', 'd', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 's', 'a', 't', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 's', 'a',
-  't', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'r', 'm', '_', 's', 's', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'r', 'm', '_', 's', 's', 'u', 'b', '1', '6', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 's',
-  'u', 'b', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'r', 'm', '_', 's', 't', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'r', 'm', '_', 's', 't', 'c', '2', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 't', 'c', '2', 'l',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
-  's', 't', 'c', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'r', 'm', '_', 's', 'x', 't', 'a', 'b', '1', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 'x', 't', 'b',
-  '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
-  'm', '_', 'u', 'a', 'd', 'd', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'a', 'd', 'd', '8', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'a',
-  's', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
-  'm', '_', 'u', 'h', 'a', 'd', 'd', '1', '6', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'h', 'a', 'd', 'd', '8',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
-  'u', 'h', 'a', 's', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'r', 'm', '_', 'u', 'h', 's', 'a', 'x', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'h', 's', 'u', 'b',
-  '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
-  'm', '_', 'u', 'h', 's', 'u', 'b', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'q', 'a', 'd', 'd', '1', '6',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
-  'u', 'q', 'a', 'd', 'd', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'r', 'm', '_', 'u', 'q', 'a', 's', 'x', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'q', 's', 'a',
-  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
-  '_', 'u', 'q', 's', 'u', 'b', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'q', 's', 'u', 'b', '8', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u',
-  's', 'a', 'd', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'r', 'm', '_', 'u', 's', 'a', 'd', 'a', '8', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 's', 'a', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u',
-  's', 'a', 't', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'r', 'm', '_', 'u', 's', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 's', 'u', 'b', '1', '6',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
-  'u', 's', 'u', 'b', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'r', 'm', '_', 'u', 'x', 't', 'a', 'b', '1', '6', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 'x', 't',
-  'b', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b',
-  'p', 'f', '_', 'l', 'o', 'a', 'd', '_', 'b', 'y', 't', 'e', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'f', '_', 'l', 'o', 'a',
-  'd', '_', 'h', 'a', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'b', 'p', 'f', '_', 'l', 'o', 'a', 'd', '_', 'w', 'o', 'r', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'f', '_',
-  'p', 's', 'e', 'u', 'd', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'b',
-  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'b', 's', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 'a', 'b', 's', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd',
-  'h', '_', 'h', '1', '6', '_', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 'h', 'l', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 'l', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_',
-  'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h',
-  '1', '6', '_', 's', 'a', 't', '_', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'h',
-  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1',
-  '6', '_', 's', 'a', 't', '_', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'l', 'l',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l', '1', '6',
-  '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_',
-  'l', '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd',
-  'd', 'h', '_', 'l', '1', '6', '_', 's', 'a', 't', '_', 'h', 'l', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l', '1', '6', '_', 's',
-  'a', 't', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 'a', 'd', 'd', 'p', 's', 'a', 't', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'A', '2', '_', 'a', 'd', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 'a', 'd', 'd', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'n',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'n', 'd', 'i', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 'a', 'n', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 'a', 's', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 's', 'r',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b', 'i', 'n', 'e',
-  '_', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b', 'i',
-  'n', 'e', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm',
-  'b', 'i', 'n', 'e', '_', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c',
-  'o', 'm', 'b', 'i', 'n', 'e', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 'c', 'o', 'm', 'b', 'i', 'n', 'e', 'i', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 'c', 'o', 'm', 'b', 'i', 'n', 'e', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 'm', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'a', 'x',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'a', 'x', 'u', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 'm', 'a', 'x', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 'm', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'i', 'n', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'i', 'n', 'u', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'A', '2', '_', 'm', 'i', 'n', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  'n', 'e', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n', 'e', 'g', 'p', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'A', '2', '_', 'n', 'e', 'g', 's', 'a', 't', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n',
-  'o', 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'o', 'r', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 'o', 'r', 'i', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  'o', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'r', 'o', 'u', 'n', 'd',
-  's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 's', 'a', 't', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 's', 'a', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't',
-  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', 'u', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 'h', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 'h', 'l',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6',
-  '_', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_',
-  'h', '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u',
-  'b', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'h', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 's',
-  'a', 't', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b',
-  'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'l', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 's', 'a',
-  't', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h',
-  '_', 'l', '1', '6', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's',
-  'u', 'b', 'h', '_', 'l', '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 's', 'u', 'b', 'h', '_', 'l', '1', '6', '_', 's', 'a', 't', '_',
-  'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'l',
-  '1', '6', '_', 's', 'a', 't', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 's', 'u', 'b', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b',
-  'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 's', 'a', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'h', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 's', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 's', 'v', 'a', 'v', 'g', 'h', 's', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 's', 'v', 'n', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  's', 'v', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'v',
-  's', 'u', 'b', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'v', 's',
-  'u', 'b', 'u', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'w', 'i',
-  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'x', 't', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 's', 'x', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  's', 'x', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', 'i', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'A', '2', '_', 't', 'f', 'r', 'i', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  't', 'f', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', 'p',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', 's', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 'v', 'a', 'b', 's', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 'v', 'a', 'b', 's', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 'v', 'a', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-  'a', 'b', 's', 'w', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-  'a', 'd', 'd', 'b', '_', 'm', 'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  'v', 'a', 'd', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd',
-  'd', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'A', '2', '_', 'v', 'a', 'd', 'd', 'w', 's', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a',
-  'v', 'g', 'h', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v',
-  'g', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'h', 'r', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 'v', 'a', 'v', 'g', 'u', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 'v', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a',
-  'v', 'g', 'w', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v',
-  'g', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'b',
-  'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'b', 'g',
-  't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'e',
-  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'g', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'g', 't', 'u',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'e', 'q', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'g', 't', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'g', 't', 'u', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 'v', 'c', 'o', 'n', 'j', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 'v', 'm', 'a', 'x', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-  'm', 'a', 'x', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x',
-  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 'v', 'm', 'i', 'n', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-  'm', 'i', 'n', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n',
-  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 'v', 'n', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  'v', 'n', 'a', 'v', 'g', 'h', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  'v', 'n', 'a', 'v', 'g', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-  'n', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n', 'a',
-  'v', 'g', 'w', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n', 'a',
-  'v', 'g', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 'a', 'd',
-  'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 'a', 'd', 'd',
-  'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r',
-  's', 'a', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 's',
-  'a', 'd', 'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-  'v', 's', 'u', 'b', 'b', '_', 'm', 'a', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-  '_', 'v', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's',
-  'u', 'b', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b',
-  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u', 'b',
-  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u', 'h', 's',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'w', 's', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '2', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'x', 'o', 'r',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'z', 'x', 't', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '2', '_', 'z', 'x', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-  'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'a', 'n', 'd', 'n',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'i', 't', 's', 'p', 'l', 'i',
-  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'i', 't', 's', 'p', 'l', 'i',
-  't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'o', 'u', 'n', 'd', 's',
-  'c', 'h', 'e', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p',
-  'b', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'e',
-  'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'i', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'u', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'u', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'h', 'e', 'q', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'A', '4', '_', 'c', 'm', 'p', 'h', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '4', '_', 'c', 'm', 'p', 'h', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-  'c', 'm', 'p', 'h', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c',
-  'm', 'p', 'h', 'g', 't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm',
-  'p', 'h', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'o',
-  'm', 'b', 'i', 'n', 'e', 'i', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c',
-  'o', 'm', 'b', 'i', 'n', 'e', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-  'c', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-  '_', 'c', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '4', '_', 'm', 'o', 'd', 'w', 'r', 'a', 'p', 'u', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '4', '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'o', 'r', 'n',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'e', 'q', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'e', 'q', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'n', 'e', 'q', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'n', 'e', 'q', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '_', 's', 'a',
-  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r',
-  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r',
-  'r', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 't', 'l', 'b',
-  'm', 'a', 't', 'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'c', 'm',
-  'p', 'b', 'e', 'q', '_', 'a', 'n', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-  'v', 'c', 'm', 'p', 'b', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-  'v', 'c', 'm', 'p', 'b', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-  'c', 'm', 'p', 'b', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-  'c', 'm', 'p', 'b', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-  'v', 'c', 'm', 'p', 'h', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-  'v', 'c', 'm', 'p', 'h', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-  'v', 'c', 'm', 'p', 'h', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-  '_', 'v', 'c', 'm', 'p', 'w', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-  '_', 'v', 'c', 'm', 'p', 'w', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-  '_', 'v', 'c', 'm', 'p', 'w', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-  '4', '_', 'v', 'r', 'm', 'a', 'x', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-  'v', 'r', 'm', 'a', 'x', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-  'r', 'm', 'a', 'x', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r',
-  'm', 'a', 'x', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i',
-  'n', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'u',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'u', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '5', '_', 'v', 'a', 'd', 'd', 'h', 'u', 'b', 's', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'A', '6', '_', 'v', 'c', 'm', 'p', 'b', 'e', 'q', '_', 'n', 'o',
-  't', 'a', 'n', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '6', '_', 'v', 'c', 'm', 'p',
-  'b', 'e', 'q', '_', 'n', 'o', 't', 'a', 'n', 'y', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'C', '2', '_', 'a', 'l', 'l', '8', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'C', '2', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'a', 'n',
-  'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'a', 'n', 'y', '8', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'C', '2', '_', 'b', 'i', 't', 's', 'c', 'l', 'r', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'C', '2', '_', 'b', 'i', 't', 's', 'c', 'l', 'r', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'C', '2', '_', 'b', 'i', 't', 's', 's', 'e', 't', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'C', '2', '_', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-  'c', 'm', 'p', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm',
-  'p', 'e', 'q', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g',
-  'e', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 'e', 'u',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 't', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 't', 'i', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'C', '2', '_', 'c', 'm', 'p', 'g', 't', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2',
-  '_', 'c', 'm', 'p', 'g', 't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c',
-  'm', 'p', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm',
-  'p', 'g', 't', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p',
-  'l', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'l', 't', 'u',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'C', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'C', '2', '_', 'm', 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'm', 'u',
-  'x', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'm', 'u', 'x', 'i', 'r',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'C', '2', '_', 'm', 'u', 'x', 'r', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'C', '2', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'o',
-  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'o', 'r', 'n', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'C', '2', '_', 'p', 'x', 'f', 'e', 'r', '_', 'm', 'a', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'C', '2', '_', 't', 'f', 'r', 'p', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2',
-  '_', 't', 'f', 'r', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'v', 'i',
-  't', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'v', 'm', 'u',
-  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'x', 'o', 'r', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'C', '4', '_', 'a', 'n', 'd', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
-  '4', '_', 'a', 'n', 'd', '_', 'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
-  '4', '_', 'a', 'n', 'd', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_',
-  'a', 'n', 'd', '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c',
-  'm', 'p', 'l', 't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p',
-  'l', 't', 'e', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l',
-  't', 'e', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l', 't',
-  'e', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'n', 'e',
-  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'n', 'e', 'q', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'C', '4', '_', 'f', 'a', 's', 't', 'c', 'o', 'r', 'n',
-  'e', 'r', '9', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'f', 'a', 's', 't', 'c',
-  'o', 'r', 'n', 'e', 'r', '9', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
-  '4', '_', 'n', 'b', 'i', 't', 's', 'c', 'l', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
-  '4', '_', 'n', 'b', 'i', 't', 's', 'c', 'l', 'r', 'i', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'C', '4', '_', 'n', 'b', 'i', 't', 's', 's', 'e', 't', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'C', '4', '_', 'o', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4',
-  '_', 'o', 'r', '_', 'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_',
-  'o', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'o', 'r', '_',
-  'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
-  'd', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v',
-  '_', 'd', '2', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n',
-  'v', '_', 'd', 'f', '2', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o',
-  'n', 'v', '_', 'd', 'f', '2', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 's', 'f', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'u',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f',
-  '2', 'u', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-  'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F',
-  '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'w', '_', 'c', 'h',
-  'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd',
-  'f', '2', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
-  'd', 'f', '2', 'w', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
-  '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F',
-  '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'd', '_', 'c', 'h', 'o',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f',
-  '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
-  's', 'f', '2', 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n',
-  'v', '_', 's', 'f', '2', 'u', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'u', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'u',
-  'w', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o',
-  'n', 'v', '_', 's', 'f', '2', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c',
-  'o', 'n', 'v', '_', 's', 'f', '2', 'w', '_', 'c', 'h', 'o', 'p', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'd', '2', 'd', 'f',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'd', '2',
-  's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u',
-  'w', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v',
-  '_', 'u', 'w', '2', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o',
-  'n', 'v', '_', 'w', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c',
-  'o', 'n', 'v', '_', 'w', '2', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-  'd', 'f', 'c', 'l', 'a', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd',
-  'f', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f',
-  'c', 'm', 'p', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c',
-  'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm',
-  'p', 'u', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'i', 'm', 'm',
-  '_', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'i', 'm', 'm', '_',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'a', 'd', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'F', '2', '_', 's', 'f', 'c', 'l', 'a', 's', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'F', '2', '_', 's', 'f', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'F', '2', '_', 's', 'f', 'c', 'm', 'p', 'g', 'e', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F',
-  '2', '_', 's', 'f', 'c', 'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
-  '_', 's', 'f', 'c', 'm', 'p', 'u', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-  's', 'f', 'f', 'i', 'x', 'u', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-  's', 'f', 'f', 'i', 'x', 'u', 'p', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-  's', 'f', 'f', 'i', 'x', 'u', 'p', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-  's', 'f', 'f', 'm', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
-  'm', 'a', '_', 'l', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f',
-  'f', 'm', 'a', '_', 's', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f',
-  'f', 'm', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm', 's',
-  '_', 'l', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'i', 'm',
-  'm', '_', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'i', 'm', 'm',
-  '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'm', 'a', 'x', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'F', '2', '_', 's', 'f', 'm', 'i', 'n', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'F', '2', '_', 's', 'f', 'm', 'p', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-  's', 'f', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'L', '2', '_', 'l', 'o', 'a',
-  'd', 'w', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'L', '4',
-  '_', 'l', 'o', 'a', 'd', 'd', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'a', 'c', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'a', 'c', 'c', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm',
-  'a', 'c', 'i', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm',
-  'a', 'c', 'r', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm',
-  'a', 'c', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm',
-  'a', 'c', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm',
-  'a', 'c', 's', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c',
-  'm', 'a', 'c', 's', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'c', 'm', 'p', 'y', 'i', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'c', 'm', 'p', 'y', 'r', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'c', 'm', 'p', 'y', 'r', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'c', 'm', 'p', 'y', 'r', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'c', 'm', 'p', 'y', 'r', 's', 'c', '_', 's', '0', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 'r', 's', 'c', '_', 's', '1', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 's', '_', 's', '0', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 's', '_', 's', '1', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 's', 'c', '_', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 's', 'c', '_', 's',
-  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', '_', 's',
-  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', '_', 's',
-  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', 'c', '_',
-  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', 'c',
-  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y',
-  's', 's', '_', 'a', 'c', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'd', 'p', 'm', 'p', 'y', 's', 's', '_', 'n', 'a', 'c', '_', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 's', 's', '_',
-  'r', 'n', 'd', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p',
-  'm', 'p', 'y', 's', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'd', 'p', 'm', 'p', 'y', 'u', 'u', '_', 'a', 'c', 'c', '_', 's', '0', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 'u', 'u', '_', 'n',
-  'a', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm',
-  'p', 'y', 'u', 'u', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'h',
-  'm', 'm', 'p', 'y', 'h', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'h', 'm', 'm', 'p', 'y', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'h', 'm', 'm', 'p', 'y', 'l', '_', 'r', 's', '1', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'h', 'm', 'm', 'p', 'y', 'l', '_', 's', '1', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'a', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'm', 'a', 'c', 's', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'a', 'c', 's', 'i', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a',
-  'c', 'h', 's', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'm', 'a', 'c', 'h', 's', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'm', 'm', 'a', 'c', 'h', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'm', 'a', 'c', 'h', 's', '_', 's', '1', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 'r', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 'r', 's', '1',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 's',
-  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_',
-  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'h',
-  's', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a',
-  'c', 'u', 'h', 's', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'm', 'a', 'c', 'u', 'h', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'm', 'a', 'c', 'u', 'h', 's', '_', 's', '1', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l', 's', '_', 'r', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l', 's', '_',
-  'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u',
-  'l', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a',
-  'c', 'u', 'l', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'm', 'p', 'y', 'h', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'm', 'p', 'y', 'h', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'm', 'm', 'p', 'y', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'm', 'm', 'p', 'y', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'm', 'm', 'p', 'y', 'l', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'm', 'p', 'y', 'l', '_', 'r', 's', '1', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'm', 'm', 'p', 'y', 'l', '_', 's', '0', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'm', 'm', 'p', 'y', 'l', '_', 's', '1', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 'r', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 'r', 's', '1',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 's',
-  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_',
-  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'l',
-  '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y',
-  'u', 'l', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
-  'p', 'y', 'u', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'm', 'p', 'y', 'u', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'h', 'h',
-  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a',
-  'c', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'l', 'h',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a',
-  'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'l', 'l',
-  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a',
-  'c', 'c', '_', 's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't',
-  '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_',
-  's', 'a', 't', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'l', 'h',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a',
-  'c', 'c', '_', 's', 'a', 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't',
-  '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '1',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'h', '_', 's',
-  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'h', '_',
-  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'l',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h',
-  'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
-  'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'p', 'y', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'h', 'h',
-  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n',
-  'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'l', 'h',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n',
-  'a', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'l', 'l',
-  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n',
-  'a', 'c', '_', 's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't',
-  '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_',
-  's', 'a', 't', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'l', 'h',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n',
-  'a', 'c', '_', 's', 'a', 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't',
-  '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '1',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_',
-  'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  '_', 'r', 'n', 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_',
-  'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '1',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_',
-  'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  '_', 'r', 'n', 'd', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'h', 'h', '_', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_',
-  'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '1',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_',
-  'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  '_', 's', 'a', 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_',
-  'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'h', 'h', '_', 's', '0', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r',
-  'n', 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'h', 'l', '_',
-  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a',
-  't', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_',
-  'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '1', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r',
-  'n', 'd', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'l', 'l', '_',
-  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '_', 's',
-  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '_',
-  's', '1', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', 'd', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'h', 'h',
-  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
-  'a', 'c', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c',
-  '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', 'd', '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'l', 'l',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
-  'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'm', 'p', 'y', 'd', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'h', 'l', '_', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'h', 'l', '_',
-  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'l',
-  'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd',
-  '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', 'd', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', 'd', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's',
-  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a',
-  'c', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h',
-  'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd',
-  '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's',
-  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a',
-  'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'h',
-  'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd',
-  '_', 'r', 'n', 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's',
-  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n',
-  'd', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'l',
-  'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd',
-  '_', 'r', 'n', 'd', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'l', 'l', '_', 's',
-  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', 's', 'm', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', 's', 'u', '_', 'u', 'p', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's',
-  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c',
-  'c', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h',
-  'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
-  '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's',
-  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c',
-  'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'h', '_', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'h', '_',
-  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h',
-  'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
-  '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', 'u', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', 'u', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', 'u', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'l', 'l', '_', 's', '1', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_',
-  'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  'u', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'h', 'l', '_',
-  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n',
-  'a', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '0', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_',
-  'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  'u', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'l', 'l', '_',
-  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'u',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a',
-  'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '1',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c',
-  'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-  'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c',
-  '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_',
-  'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  'u', 'd', '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'h', 'h', '_', 's', '0',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'h', 'h',
-  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd',
-  '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', 'u', 'd', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'h', '_', 's', '1',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'l',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd',
-  '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-  'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_',
-  'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-  'u', 'd', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'h',
-  'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
-  'd', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'l', 'h',
-  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd',
-  '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'l', 'l', '_',
-  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'i', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'n', 'a', 'c', 'c', 'i', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'n', 'a', 'c', 'c', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 's', 'u', 'b', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v',
-  'a', 'b', 's', 'd', 'i', 'f', 'f', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'v', 'c', 'm', 'a', 'c', '_', 's', '0', '_', 's', 'a', 't', '_', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c', 'm', 'a', 'c', '_', 's', '0',
-  '_', 's', 'a', 't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c',
-  'm', 'p', 'y', '_', 's', '0', '_', 's', 'a', 't', '_', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'v', 'c', 'm', 'p', 'y', '_', 's', '0', '_', 's', 'a',
-  't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c', 'm', 'p', 'y',
-  '_', 's', '1', '_', 's', 'a', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'v', 'c', 'm', 'p', 'y', '_', 's', '1', '_', 's', 'a', 't', '_', 'r',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'a', 'c', 's', '_', 's',
-  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'a', 'c', 's', '_',
-  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p', 'y', 'r',
-  's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p',
-  'y', 'r', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd',
-  'm', 'p', 'y', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v',
-  'd', 'm', 'p', 'y', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'v', 'm', 'a', 'c', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a',
-  'c', '2', 'e', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a', 'c',
-  '2', 'e', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm',
-  'a', 'c', '2', 'e', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'v', 'm', 'a', 'c', '2', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'v', 'm', 'a', 'c', '2', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'v', 'm', 'a', 'c', '2', 's', 'u', '_', 's', '0', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'v', 'm', 'a', 'c', '2', 's', 'u', '_', 's', '1', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 'e', 's', '_', 's',
-  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 'e', 's',
-  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2',
-  's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y',
-  '2', 's', '_', 's', '0', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-  '_', 'v', 'm', 'p', 'y', '2', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '2', '_', 'v', 'm', 'p', 'y', '2', 's', '_', 's', '1', 'p', 'a', 'c', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', 'u', '_',
-  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's',
-  'u', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'a', 'd',
-  'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'a', 'd', 'd', 'u',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'a', 'c', 'i',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'a',
-  'c', 'i', '_', 's', '0', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r',
-  'c', 'm', 'a', 'c', 'r', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-  'v', 'r', 'c', 'm', 'a', 'c', 'r', '_', 's', '0', 'c', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'i', '_', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'i', '_', 's', '0',
-  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'r',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p',
-  'y', 'r', '_', 's', '0', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r',
-  'c', 'm', 'p', 'y', 's', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 's', '_', 's', '1', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 's', '_', 's',
-  '1', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'm', 'a', 'c',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'm', 'p', 'y',
-  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'x', 'o', 'r', '_', 'x',
-  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'a',
-  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'a', 'n',
-  'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'o', 'r',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'x', 'o', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'i', '_', 'w', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'i', '_', 'w', 'h', 'c',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'r', '_', 'w', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'r', '_', 'w', 'h',
-  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'a', 'c', '_', 'u', 'p', '_',
-  's', '1', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'p',
-  'y', 'r', 'i', '_', 'a', 'd', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_',
-  'm', 'p', 'y', 'r', 'i', '_', 'a', 'd', 'd', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '4', '_', 'm', 'p', 'y', 'r', 'i', '_', 'a', 'd', 'd', 'r', '_', 'u', '2',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y', 'r', 'r', '_', 'a', 'd',
-  'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y', 'r', 'r', '_',
-  'a', 'd', 'd', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'n', 'a', 'c', '_',
-  'u', 'p', '_', 's', '1', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4',
-  '_', 'o', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o',
-  'r', '_', 'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r',
-  '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r', '_', 'x', 'o',
-  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'p', 'm', 'p', 'y', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '4', '_', 'p', 'm', 'p', 'y', 'w', '_', 'a', 'c', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '4', '_', 'v', 'p', 'm', 'p', 'y', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '4', '_', 'v', 'p', 'm', 'p', 'y', 'h', '_', 'a', 'c', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 'a',
-  'c', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm',
-  'p', 'y', 'e', 'h', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 's', '0', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 's', '1',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_',
-  'a', 'c', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'v', 'r',
-  'm', 'p', 'y', 'o', 'h', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 's', '0', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 's',
-  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'a', 'n', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'a', 'n', 'd', 'n',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'o', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '5', '_', 'v', 'd', 'm', 'a', 'c', 'b', 's', 'u', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '5', '_', 'v', 'd', 'm', 'p', 'y', 'b', 's', 'u', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'M', '5', '_', 'v', 'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'M', '5', '_', 'v', 'm', 'a', 'c', 'b', 'u', 'u', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'M', '5', '_', 'v', 'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '5', '_', 'v', 'm', 'p', 'y', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5',
-  '_', 'v', 'r', 'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5',
-  '_', 'v', 'r', 'm', 'a', 'c', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5',
-  '_', 'v', 'r', 'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5',
-  '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '6',
-  '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-  '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'u', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'a', 'd', 'd', 'a', 's', 'l', '_', 'r', 'r', 'r', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '_', 'a',
-  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_',
-  'p', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l',
-  '_', 'i', '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-  'a', 's', 'l', '_', 'i', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '_', 'x', 'a', 'c', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 'a', 'c',
-  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r',
-  '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_',
-  'i', '_', 'r', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-  's', 'l', '_', 'i', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-  '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 's', 'a', 't', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 'x', 'a', 'c',
-  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'v',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'v',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '_',
-  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r',
-  '_', 'p', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-  'l', '_', 'r', '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-  '_', 'a', 's', 'l', '_', 'r', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '_', 'x', 'o', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '_', 'a', 'c',
-  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r',
-  '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_',
-  'r', '_', 'r', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-  's', 'l', '_', 'r', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-  '_', 'a', 's', 'l', '_', 'r', '_', 'r', '_', 's', 'a', 't', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'v', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'v', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'a',
-  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_',
-  'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r',
-  '_', 'i', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-  's', 'r', '_', 'i', '_', 'p', '_', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'r', 'n', 'd', '_', 'g',
-  'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-  '_', 'a', 's', 'r', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-  'a', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'n', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r', '_', 'n',
-  'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_',
-  'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_',
-  'i', '_', 'r', '_', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-  's', 'r', '_', 'i', '_', 'r', '_', 'r', 'n', 'd', '_', 'g', 'o', 'o', 'd',
-  's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-  'r', '_', 'i', '_', 's', 'v', 'w', '_', 't', 'r', 'u', 'n', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'v', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'v', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'c', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p', '_', 'a',
-  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_',
-  'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r',
-  '_', 'r', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-  's', 'r', '_', 'r', '_', 'p', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'a', 's', 'r', '_', 'r', '_', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-  '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_', 'a', 'n', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_',
-  'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r',
-  '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r',
-  '_', 'r', '_', 'r', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-  'a', 's', 'r', '_', 'r', '_', 's', 'v', 'w', '_', 't', 'r', 'u', 'n', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'v', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'v', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'b', 'r', 'e', 'v', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'b', 'r', 'e', 'v', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c',
-  'a', 'b', 'a', 'c', 'e', 'n', 'c', 'b', 'i', 'n', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'c', 'l', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', '0',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', '1', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '2', '_', 'c', 'l', '1', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c',
-  'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', 'b', 'n', 'o', 'r',
-  'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', 'b', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'c', 'l', 'r', 'b', 'i', 't', '_', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'c', 'l', 'r', 'b', 'i', 't', '_', 'r', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'c', 't', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c',
-  't', '0', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 't', '1', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 'c', 't', '1', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-  '_', 'd', 'e', 'i', 'n', 't', 'e', 'r', 'l', 'e', 'a', 'v', 'e', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', '_', 'r',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't',
-  'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c',
-  't', 'u', 'p', '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n',
-  's', 'e', 'r', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e',
-  'r', 't', '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's',
-  'e', 'r', 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e',
-  'r', 't', 'p', '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n',
-  't', 'e', 'r', 'l', 'e', 'a', 'v', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-  'l', 'f', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_',
-  'r', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r',
-  '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's',
-  'l', '_', 'r', '_', 'p', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-  '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_', 'o', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_', 'x',
-  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_',
-  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'r',
-  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_',
-  'r', '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-  's', 'l', '_', 'r', '_', 'r', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'l', 's', 'l', '_', 'r', '_', 'r', '_', 'o', 'r', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'v', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'v', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p', '_', 'a',
-  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_',
-  'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r',
-  '_', 'i', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-  's', 'r', '_', 'i', '_', 'p', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'n',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r',
-  '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_',
-  'i', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's',
-  'r', '_', 'i', '_', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'l', 's', 'r', '_', 'i', '_', 'v', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'l', 's', 'r', '_', 'i', '_', 'v', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'l', 's', 'r', '_', 'r', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-  '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'n', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_',
-  'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r',
-  '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r',
-  '_', 'r', '_', 'p', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-  'l', 's', 'r', '_', 'r', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-  's', 'r', '_', 'r', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 'l', 's', 'r', '_', 'r', '_', 'r', '_', 'a', 'n', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'r', '_', 'n', 'a',
-  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'r',
-  '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r',
-  '_', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r',
-  '_', 'v', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'p', 'a', 'c', 'k', 'h',
-  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'p', 'a', 'r', 'i', 't', 'y', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '2', '_', 's', 'e', 't', 'b', 'i', 't', '_', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '2', '_', 's', 'e', 't', 'b', 'i', 't', '_', 'r',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'e', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'e', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'o', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'o', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 's', 't', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v',
-  '_', 's', 't', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'b', 'r', 'e', 'v', '_', 's', 't', 'h', 'h', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 's', 't', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_',
-  's', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 's', 't', 'o', 'r', 'e',
-  'w', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-  's', 'v', 's', 'a', 't', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 's',
-  'v', 's', 'a', 't', 'h', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't',
-  'a', 'b', 'l', 'e', 'i', 'd', 'x', 'b', '_', 'g', 'o', 'o', 'd', 's', 'y',
-  'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'a', 'b', 'l',
-  'e', 'i', 'd', 'x', 'd', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n', 't', 'a',
-  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'a', 'b', 'l', 'e', 'i', 'd',
-  'x', 'h', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 't', 'a', 'b', 'l', 'e', 'i', 'd', 'x', 'w', '_',
-  'g', 'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '2', '_', 't', 'o', 'g', 'g', 'l', 'e', 'b', 'i', 't', '_', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 't', 'o', 'g', 'g', 'l', 'e', 'b', 'i', 't', '_',
-  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 's', 't', 'b', 'i', 't', '_',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 's', 't', 'b', 'i', 't', '_',
-  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'a', 'l', 'i', 'g', 'n', 'i',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'a', 'l', 'i', 'g', 'n', 'r',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'c', 'n', 'e', 'g', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'v', 'c', 'r', 'o', 't', 'a', 't', 'e', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'v', 'r', 'c', 'n', 'e', 'g', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 'v', 'r', 'n', 'd', 'p', 'a', 'c', 'k', 'w', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'r', 'n', 'd', 'p', 'a', 'c', 'k',
-  'w', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'h',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'h', 'b', '_',
-  'n', 'o', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's',
-  'a', 't', 'h', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a',
-  't', 'h', 'u', 'b', '_', 'n', 'o', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '2', '_', 'v', 's', 'a', 't', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-  '_', 'v', 's', 'a', 't', 'w', 'h', '_', 'n', 'o', 'p', 'a', 'c', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'w', 'u', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'w', 'u', 'h', '_', 'n', 'o',
-  'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'p', 'l',
-  'a', 't', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'p', 'l',
-  'a', 't', 'r', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'p', 'l',
-  'i', 'c', 'e', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'p',
-  'l', 'i', 'c', 'e', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's',
-  'x', 't', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'x', 't',
-  'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 't', 'r', 'u', 'n', 'e',
-  'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 't', 'r', 'u', 'n', 'e',
-  'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 't', 'r', 'u', 'n', 'o',
-  'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 't', 'r', 'u', 'n', 'o',
-  'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'z', 'x', 't', 'b', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'z', 'x', 't', 'h', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '4', '_', 'a', 'd', 'd', 'a', 'd', 'd', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '4', '_', 'a', 'd', 'd', 'i', '_', 'a', 's', 'l', '_', 'r', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'd', 'd', 'i', '_', 'l', 's', 'r',
-  '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'n', 'd', 'i', '_',
-  'a', 's', 'l', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'n',
-  'd', 'i', '_', 'l', 's', 'r', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
-  '_', 'c', 'l', 'b', 'a', 'd', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
-  'c', 'l', 'b', 'p', 'a', 'd', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
-  'c', 'l', 'b', 'p', 'n', 'o', 'r', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
-  'e', 'x', 't', 'r', 'a', 'c', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'e',
-  'x', 't', 'r', 'a', 'c', 't', '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
-  '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
-  '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'p', '_', 'r', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '4', '_', 'l', 's', 'l', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
-  'n', 't', 's', 't', 'b', 'i', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
-  '_', 'n', 't', 's', 't', 'b', 'i', 't', '_', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '4', '_', 'o', 'r', '_', 'a', 'n', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
-  '_', 'o', 'r', '_', 'a', 'n', 'd', 'i', 'x', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
-  '_', 'o', 'r', '_', 'o', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'o',
-  'r', 'i', '_', 'a', 's', 'l', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
-  '_', 'o', 'r', 'i', '_', 'l', 's', 'r', '_', 'r', 'i', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '4', '_', 'p', 'a', 'r', 'i', 't', 'y', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
-  '_', 's', 't', 'o', 'r', 'e', 'd', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '4', '_', 's', 'u', 'b', 'a', 'd', 'd', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '4', '_', 's', 'u', 'b', 'i', '_', 'a', 's', 'l', '_', 'r',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'S', '4', '_', 's', 'u', 'b', 'i', '_', 'l', 's',
-  'r', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'r', 'c', 'r',
-  'o', 't', 'a', 't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'r', 'c',
-  'r', 'o', 't', 'a', 't', 'e', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-  '4', '_', 'v', 'x', 'a', 'd', 'd', 's', 'u', 'b', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '4', '_', 'v', 'x', 'a', 'd', 'd', 's', 'u', 'b', 'h', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '4', '_', 'v', 'x', 'a', 'd', 'd', 's', 'u', 'b', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '4', '_', 'v', 'x', 's', 'u', 'b', 'a', 'd', 'd', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 's', 'u', 'b', 'a', 'd', 'd',
-  'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 's', 'u', 'b', 'a',
-  'd', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '5', '_', 'a', 's', 'r', 'h', 'u',
-  'b', '_', 'r', 'n', 'd', '_', 's', 'a', 't', '_', 'g', 'o', 'o', 'd', 's',
-  'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '5', '_', 'a', 's', 'r',
-  'h', 'u', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '5', '_', 'p',
-  'o', 'p', 'c', 'o', 'u', 'n', 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '5', '_',
-  'v', 'a', 's', 'r', 'h', 'r', 'n', 'd', '_', 'g', 'o', 'o', 'd', 's', 'y',
-  'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_',
-  'i', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i',
-  '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o',
-  'l', '_', 'i', '_', 'p', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6',
-  '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'o', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'x',
-  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i',
-  '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_',
-  'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l',
-  '_', 'i', '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_',
-  'r', 'o', 'l', '_', 'i', '_', 'r', '_', 'n', 'a', 'c', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r', '_', 'o', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r', '_', 'x', 'a',
-  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'v', 's', 'p', 'l', 'a', 't',
-  'r', 'b', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'v', 't', 'r', 'u', 'n',
-  'e', 'h', 'b', '_', 'p', 'p', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'v',
-  't', 'r', 'u', 'n', 'o', 'h', 'b', '_', 'p', 'p', 'p', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'w', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'h', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'h', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'o', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'v', 's', 'p', 'l', 'a',
-  't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'v', 's', 'p', 'l', 'a',
-  't', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l',
-  'v', 's', 'p', 'l', 'a', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l',
-  'v', 's', 'p', 'l', 'a', 't', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'l', 'v', 's', 'p', 'l', 'a', 't', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'l', 'v', 's', 'p', 'l', 'a', 't', 'w', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'a',
-  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'a',
-  'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p',
-  'r', 'e', 'd', '_', 'a', 'n', 'd', '_', 'n', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'p', 'r', 'e', 'd', '_', 'a', 'n', 'd', '_', 'n', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'n', 'o',
-  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'n', 'o',
-  't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r',
-  'e', 'd', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e',
-  'd', '_', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'p', 'r', 'e', 'd', '_', 'o', 'r', '_', 'n', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'p', 'r', 'e', 'd', '_', 'o', 'r', '_', 'n', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 's', 'c',
-  'a', 'l', 'a', 'r', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e',
-  'd', '_', 's', 'c', 'a', 'l', 'a', 'r', '2', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 's', 'c', 'a', 'l',
-  'a', 'r', '2', 'v', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e',
-  'd', '_', 's', 'c', 'a', 'l', 'a', 'r', '2', 'v', '2', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'x', 'o',
-  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'x', 'o',
-  'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 's', 'h',
-  'u', 'f', 'f', 'e', 'q', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 's', 'h',
-  'u', 'f', 'f', 'e', 'q', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 's', 'h', 'u', 'f', 'f', 'e', 'q', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 's', 'h', 'u', 'f', 'f', 'e', 'q', 'w', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'S', '3', '2', 'b', '_', 'n',
-  'q', 'p', 'r', 'e', 'd', '_', 'a', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'S', '3', '2', 'b', '_', 'n', 'q', 'p', 'r', 'e', 'd', '_', 'a', 'i',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'S', '3',
-  '2', 'b', '_', 'n', 't', '_', 'n', 'q', 'p', 'r', 'e', 'd', '_', 'a', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'S', '3', '2', 'b', '_', 'n', 't',
-  '_', 'n', 'q', 'p', 'r', 'e', 'd', '_', 'a', 'i', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'S', '3', '2', 'b', '_', 'n', 't',
-  '_', 'q', 'p', 'r', 'e', 'd', '_', 'a', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'S', '3', '2', 'b', '_', 'n', 't', '_', 'q', 'p', 'r', 'e', 'd',
-  '_', 'a', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'S', '3', '2', 'b', '_', 'q', 'p', 'r', 'e', 'd', '_', 'a', 'i', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'S', '3', '2', 'b', '_', 'q', 'p', 'r',
-  'e', 'd', '_', 'a', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'b', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'a', 'b', 's', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 'b', 's', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'b', 's', 'b', '_', 's', 'a', 't', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f',
-  'f', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i',
-  'f', 'f', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'u', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'u', 'b', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i',
-  'f', 'f', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's',
-  'd', 'i', 'f', 'f', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'w', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '_',
-  's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h',
-  '_', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'b', 's', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'b', 's', 'w', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 'b', 's', 'w', '_', 's', 'a', 't', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', '_', 'd', 'v', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', '_', 'd', 'v', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
-  'b', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b',
-  'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'a', 'd', 'd', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
-  'd', 'b', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'd', 'd', 'b', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'd', 'd', 'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 's', 'a', 't', '_', 'd',
-  'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 's', 'a',
-  't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'v', '6',
-  '_', 'v', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'v',
-  '6', '_', 'v', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'c', 'l', 'b',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'c', 'l', 'b',
-  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'd', 'd', 'c', 'l', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'd', 'd', 'c', 'l', 'b', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 'd', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'd', 'd', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'd', 'd', 'h', '_', 'd', 'v', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'd', 'd', 'h', '_', 'd', 'v', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 'n', 'q', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 'n', 'q', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h',
-  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 'q', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
-  'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
-  'h', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 'd', 'd', 'h', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 's', 'a', 't', '_', 'd', 'v',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
-  'd', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h',
-  'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'd', 'd', 'h', 'w', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'd', 'd', 'h', 'w', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 'h', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u',
-  'b', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'd', 'd', 'u', 'b', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', 'a', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', 'a',
-  't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'd', 'd', 'u', 'b', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', 'a', 't', '_', 'd', 'v', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
-  'u', 'b', 'u', 'b', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 'd', 'd', 'u', 'b', 'u', 'b', 'b', '_', 's', 'a', 't', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
-  'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
-  'd', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', 'a', 't', '_', 'd', 'v',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', 'a',
-  't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 'd', 'd', 'u', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'd', 'd', 'u', 'h', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 'w', '_', 'a', 'c', 'c',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 'w', '_',
-  'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'd', 'd', 'u', 'w', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 'd', 'd', 'u', 'w', 's', 'a', 't', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'w', 's', 'a',
-  't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
-  'u', 'w', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'd', 'd', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '_', 'd', 'v', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '_', 'd', 'v', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 'n',
-  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 'n', 'q',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd',
-  'd', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w',
-  'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'd', 'd', 'w', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'd', 'd', 'w', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 's', 'a', 't', '_', 'd', 'v', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 's', 'a', 't', '_',
-  'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'a', 'l', 'i', 'g', 'n', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'l', 'i', 'g', 'n', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'l', 'i', 'g', 'n', 'b', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'l', 'i', 'g', 'n', 'b', 'i', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'n', 'q', 'r', 't', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'n', 'q', 'r', 't', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'n', 'q',
-  'r', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'n', 'd', 'n', 'q', 'r', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r', 't', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q',
-  'r', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'n', 'd', 'q', 'r', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'n', 'q', 'v', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'n', 'q', 'v', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd',
-  'v', 'q', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v',
-  'q', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'a', 'n', 'd', 'v', 'r', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'n', 'd', 'v', 'r', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'n', 'd', 'v', 'r', 't', '_', 'a', 'c', 'c', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'r', 't', '_', 'a', 'c',
-  'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  's', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'h',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
-  'l', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  's', 'l', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'h', 'v', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 's', 'l', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 's', 'l', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', '_', 'a', 'c', 'c', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', '_', 'a', 'c', 'c', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l',
-  'w', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', 'v',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
-  'r', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r',
-  'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
-  'r', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'b', 'r', 'n', 'd', 's', 'a', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'b', 'r', 'n',
-  'd', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 's', 'r', 'h', 'b', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 's', 'r', 'h', 'b', 's', 'a', 't', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u', 'b',
-  'r', 'n', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  's', 'r', 'h', 'u', 'b', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u', 'b',
-  's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h',
-  'u', 'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 's', 'r', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 's', 'r', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'h', 'u', 'b', 'r', 'n', 'd', 's',
-  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'h',
-  'u', 'b', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'h', 'u', 'b', 's', 'a',
-  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'h', 'u',
-  'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 's', 'r', 'u', 'w', 'u', 'h', 'r', 'n', 'd', 's', 'a', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'w', 'u', 'h',
-  'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'w', 'u', 'h', 's', 'a', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'u', 'w', 'u', 'h', 's',
-  'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'a', 's', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r',
-  'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  's', 'r', 'w', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'a', 's', 'r', 'w', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', 'r', 'n', 'd',
-  's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w',
-  'h', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', 's', 'a', 't', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', 's', 'a', 't', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r',
-  'w', 'u', 'h', 'r', 'n', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 's', 'r', 'w', 'u', 'h', 'r', 'n', 'd', 's', 'a', 't', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r',
-  'w', 'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  's', 'r', 'w', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'v', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'v', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g', 'n', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g', 'n', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g',
-  'n', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g',
-  'n', 'p', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'a', 'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g',
-  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'v', 'g', 'b', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'v', 'g', 'b', 'r', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'v', 'g', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'v', 'g', 'h', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'v', 'g', 'h', 'r', 'n', 'd', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r',
-  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b',
-  'r', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'v', 'g', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'v', 'g', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 'v', 'g', 'u', 'h', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'a', 'v', 'g', 'u', 'h', 'r', 'n', 'd', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'w', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'w',
-  'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u',
-  'w', 'r', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-  'v', 'g', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'v', 'g', 'w', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'a', 'v', 'g', 'w', 'r', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'c', 'l', '0', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'c', 'l', '0', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'c', 'l', '0', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'c', 'l', '0', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'c', 'o', 'm', 'b', 'i', 'n', 'e', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'c', 'o', 'm', 'b', 'i', 'n', 'e', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', '0', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'd', '0', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'd', 'd', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'd', 'd', '0', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'd', 'e', 'a', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-  'e', 'a', 'l', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'd', 'e', 'a', 'l', 'b', '4', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'd', 'e', 'a', 'l', 'b', '4', 'w', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'h', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'v', 'd', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'v', 'd', 'd',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e',
-  'l', 't', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'l', 't',
-  'a', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-  'm', 'p', 'y', 'b', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-  'm', 'p', 'y', 'b', 'u', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's',
-  '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_', 'd', 'v', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_', 'd', 'v',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-  'p', 'y', 'b', 'u', 's', '_', 'd', 'v', '_', 'a', 'c', 'c', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_', 'd', 'v',
-  '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'a', 'c', 'c',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '_',
-  'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'd', 'v', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'd', 'v', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h',
-  'b', '_', 'd', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'd', 'v', '_', 'a', 'c', 'c', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p',
-  'y', 'h', 'i', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-  'm', 'p', 'y', 'h', 'i', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'i', 's', 'a', 't',
-  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p',
-  'y', 'h', 'i', 's', 'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'a',
-  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's',
-  'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'd', 'm', 'p', 'y', 'h', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'a', 't', '_', 'a',
-  'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'd', 'm', 'p', 'y', 'h', 's', 'u', 'i', 's', 'a', 't', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 'i', 's', 'a', 't',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-  'p', 'y', 'h', 's', 'u', 'i', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 'i', 's',
-  'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 's', 'a', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 's',
-  'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'd', 'm', 'p', 'y', 'h', 's', 'u', 's', 'a', 't', '_', 'a', 'c', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 's',
-  'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'v', 's', 'a', 't', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'v', 's', 'a', 't',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-  'p', 'y', 'h', 'v', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'v', 's', 'a', 't', '_', 'a',
-  'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'd', 's', 'a', 'd', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-  's', 'a', 'd', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'd', 's', 'a', 'd', 'u', 'h', '_', 'a', 'c', 'c', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'd', 's', 'a', 'd', 'u', 'h', '_', 'a', 'c',
-  'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e',
-  'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_',
-  'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_',
-  'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'e', 'q', 'b', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'e', 'q', 'b', '_', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'x', 'o', 'r', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'x', 'o', 'r', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'a', 'n', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'a', 'n', 'd', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_',
-  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'o',
-  'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e',
-  'q', 'h', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e',
-  'q', 'h', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'e', 'q', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'e', 'q', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'e', 'q', 'w', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'e', 'q', 'w', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'o', 'r', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'o', 'r', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'x', 'o',
-  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'x', 'o',
-  'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g',
-  'a', 't', 'h', 'e', 'r', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'g', 'a', 't', 'h', 'e', 'r', 'm', 'h', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h', 'e', 'r', 'm', 'h', 'q',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h', 'e', 'r', 'm',
-  'h', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'g', 'a', 't', 'h', 'e', 'r', 'm', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'g', 'a', 't', 'h', 'e', 'r', 'm', 'h', 'w', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h', 'e', 'r',
-  'm', 'h', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 'a', 't',
-  'h', 'e', 'r', 'm', 'h', 'w', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h', 'e', 'r', 'm', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'g', 'a', 't', 'h', 'e', 'r', 'm', 'w', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 'a', 't',
-  'h', 'e', 'r', 'm', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g',
-  'a', 't', 'h', 'e', 'r', 'm', 'w', 'q', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'g', 't', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'g', 't', 'b', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'g', 't', 'b', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'o', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'o', 'r', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_',
-  'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_',
-  'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'g', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'h',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-  'h', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-  'h', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'g', 't', 'h', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'g', 't', 'h', '_', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'x', 'o', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'x', 'o', 'r', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_',
-  'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b',
-  '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'g', 't', 'u', 'b', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'g', 't', 'u', 'b', '_', 'o', 'r', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'x', 'o', 'r',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'x', 'o',
-  'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g',
-  't', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-  'u', 'h', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g',
-  't', 'u', 'h', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_', 'o', 'r', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_', 'o', 'r', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_',
-  'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h',
-  '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'g', 't', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g',
-  't', 'u', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'g', 't', 'u', 'w', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'g', 't', 'u', 'w', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'w', '_', 'o', 'r',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'w', '_', 'o', 'r',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-  'u', 'w', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g',
-  't', 'u', 'w', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'g', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'g', 't', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'g', 't', 'w', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'g', 't', 'w', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'o', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'o', 'r', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'x',
-  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'x',
-  'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'i', 'n', 's', 'e', 'r', 't', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'i', 'n', 's', 'e', 'r', 't', 'w', 'r', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l', 'i', 'g', 'n', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l', 'i', 'g', 'n', 'b', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l',
-  'i', 'g', 'n', 'b', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'a',
-  'l', 'i', 'g', 'n', 'b', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'l', 's', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'l', 's', 'r', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'l', 's', 'r', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'l', 's', 'r', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'l', 's', 'r', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'l', 's', 'r', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'l', 's', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'l', 's', 'r', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'l', 's', 'r', 'w', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'l', 's', 'r', 'w', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'l', 'u', 't', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'l', 'u', 't', '4', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'l', 'u', 't', 'v', 'v', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_', 'n', 'm', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_', 'n',
-  'm', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
-  'u', 't', 'v', 'v', 'b', '_', 'o', 'r', 'a', 'c', 'c', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_', 'o', 'r', 'a', 'c',
-  'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
-  'u', 't', 'v', 'v', 'b', '_', 'o', 'r', 'a', 'c', 'c', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_', 'o', 'r', 'a',
-  'c', 'c', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'l', 'u', 't', 'v', 'v', 'b', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'l', 'u', 't', 'v', 'v', 'b', 'i', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h',
-  '_', 'n', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v',
-  'w', 'h', '_', 'n', 'm', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', 'o', 'r', 'a', 'c', 'c',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_',
-  'o', 'r', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', 'o', 'r', 'a', 'c', 'c',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h',
-  '_', 'o', 'r', 'a', 'c', 'c', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', 'i', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 's', 'k', 'e',
-  'd', 's', 't', 'o', 'r', 'e', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'm', 'a', 's', 'k', 'e', 'd', 's', 't', 'o', 'r', 'e', 'n', 'q', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 's',
-  'k', 'e', 'd', 's', 't', 'o', 'r', 'e', 'n', 't', 'n', 'q', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'a', 's', 'k', 'e', 'd', 's', 't', 'o', 'r',
-  'e', 'n', 't', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'a', 's', 'k', 'e', 'd', 's', 't', 'o', 'r', 'e', 'n',
-  't', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 's', 'k', 'e',
-  'd', 's', 't', 'o', 'r', 'e', 'n', 't', 'q', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 's', 'k', 'e', 'd', 's', 't',
-  'o', 'r', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 's',
-  'k', 'e', 'd', 's', 't', 'o', 'r', 'e', 'q', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'a', 'x', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'a', 'x', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'a', 'x', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'h', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'a', 'x', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'i', 'n', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'm', 'i', 'n', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'i', 'n', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'm', 'i', 'n', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'i', 'n', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'i', 'n', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', '_',
-  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b',
-  'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', 'v', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', 'v', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 'u',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 'u', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a',
-  'b', 'u', 'u', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'm', 'p', 'a', 'b', 'u', 'u', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 'u', 'v',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 'u', 'v',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-  'a', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'h',
-  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-  'p', 'a', 'h', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'm', 'p', 'a', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'h', 'h', 's', 'a',
-  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'h', 'h', 's',
-  'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'm', 'p', 'a', 'u', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-  'p', 'a', 'u', 'h', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'p', 'a', 'u', 'h', 'b', '_', 'a', 'c', 'c', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'u', 'h', 'b', '_', 'a', 'c',
-  'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-  'p', 'a', 'u', 'h', 'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'm', 'p', 'a', 'u', 'h', 'u', 'h', 's', 'a', 't', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 's', 'u', 'h',
-  'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-  's', 'u', 'h', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's',
-  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-  'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', 'v', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', 'v', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u',
-  's', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-  'p', 'y', 'b', 'u', 's', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'v', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'v', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'v', '_',
-  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b',
-  'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'p', 'y', 'e', 'w', 'u', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'p', 'y', 'e', 'w', 'u', 'h', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'e', 'w', 'u', 'h',
-  '_', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'e',
-  'w', 'u', 'h', '_', '6', '4', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'p', 'y', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'm', 'p', 'y', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'p', 'y', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'p', 'y', 'h', '_', 'a', 'c', 'c', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 's',
-  'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-  'p', 'y', 'h', 's', 'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 's', 'r', 's',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 's', 'r', 's',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-  'y', 'h', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-  'h', 's', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'm', 'p', 'y', 'h', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'm', 'p', 'y', 'h', 'u', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'u', 's', '_', 'a', 'c', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'u', 's', '_', 'a',
-  'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'm', 'p', 'y', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-  'y', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'm', 'p', 'y', 'h', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'p', 'y', 'h', 'v', '_', 'a', 'c', 'c', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'v',
-  's', 'r', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h',
-  'v', 's', 'r', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'm', 'p', 'y', 'i', 'e', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'm', 'p', 'y', 'i', 'e', 'o', 'h', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'h', '_',
-  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
-  'e', 'w', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-  'i', 'e', 'w', 'u', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h', '_', 'a', 'c', 'c', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-  'i', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-  'y', 'i', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'm', 'p', 'y', 'i', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h', 'b', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h',
-  'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-  'y', 'i', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'o', 'w', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'o', 'w', 'h', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
-  'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w',
-  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-  'p', 'y', 'i', 'w', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'm', 'p', 'y', 'i', 'w', 'b', '_', 'a', 'c', 'c', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'h',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-  'y', 'i', 'w', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'm', 'p', 'y', 'i', 'w', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'u',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'u',
-  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-  'p', 'y', 'i', 'w', 'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'u', 'b', '_', 'a', 'c', 'c', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-  'o', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o',
-  'w', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'm', 'p', 'y', 'o', 'w', 'h', '_', '6', '4', '_', 'a', 'c', 'c', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', '6', '4',
-  '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 'r', 'n', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 'r', 'n', 'd',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-  'y', 'o', 'w', 'h', '_', 'r', 'n', 'd', '_', 's', 'a', 'c', 'c', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 'r', 'n',
-  'd', '_', 's', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 's', 'a', 'c', 'c',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_',
-  's', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'm', 'p', 'y', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'm', 'p', 'y', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'p', 'y', 'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'b', '_', 'a', 'c', 'c', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-  'u', 'b', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u',
-  'b', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'm', 'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'm', 'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-  'u', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-  'p', 'y', 'u', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'e', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'e', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'e',
-  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-  'u', 'h', 'e', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '_',
-  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u',
-  'h', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'm', 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'm', 'u', 'x', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'n', 'a', 'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n',
-  'a', 'v', 'g', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'n', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'n', 'a', 'v', 'g', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'n', 'a', 'v', 'g', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'n', 'a', 'v', 'g', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'n', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'n', 'a', 'v', 'g', 'w', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'o', 'r', 'm', 'a', 'm', 't', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'o', 'r', 'm', 'a', 'm', 't',
-  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n',
-  'o', 'r', 'm', 'a', 'm', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'n', 'o', 'r', 'm', 'a', 'm', 't', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'n', 'o', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'o', 'r',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a',
-  'c', 'k', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c',
-  'k', 'e', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'p', 'a', 'c', 'k', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'p', 'a', 'c', 'k', 'e', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'h', 'b', '_', 's', 'a', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'h', 'b', '_', 's',
-  'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'p', 'a', 'c', 'k', 'h', 'u', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'h', 'u', 'b', '_', 's', 'a', 't',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a',
-  'c', 'k', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c',
-  'k', 'o', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'p', 'a', 'c', 'k', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'p', 'a', 'c', 'k', 'o', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'w', 'h', '_', 's', 'a', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'w', 'h', '_', 's',
-  'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'p', 'a', 'c', 'k', 'w', 'u', 'h', '_', 's', 'a', 't', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'w', 'u', 'h', '_', 's', 'a', 't',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'o',
-  'p', 'c', 'o', 'u', 'n', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'p', 'o', 'p', 'c', 'o', 'u', 'n', 't', 'h', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'r', 'e', 'f', 'i', 'x', 'q', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'r', 'e', 'f', 'i', 'x', 'q',
-  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p',
-  'r', 'e', 'f', 'i', 'x', 'q', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'p', 'r', 'e', 'f', 'i', 'x', 'q', 'h', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'p', 'r', 'e', 'f', 'i', 'x', 'q', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'r', 'e', 'f', 'i', 'x', 'q', 'w',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'd',
-  'e', 'l', 't', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'd', 'e',
-  'l', 't', 'a', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'r', 'm', 'p', 'y', 'b', 'u', 'b', '_', 'r', 't', 't', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 'b', '_', 'r', 't',
-  't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-  'm', 'p', 'y', 'b', 'u', 'b', '_', 'r', 't', 't', '_', 'a', 'c', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 'b', '_',
-  'r', 't', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b',
-  'u', 's', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-  'm', 'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u',
-  's', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'r', 'm', 'p', 'y', 'b', 'u', 's', 'i', '_', 'a', 'c', 'c', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'i', '_', 'a',
-  'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'r', 'm', 'p', 'y', 'b', 'u', 's', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'v', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'v',
-  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p',
-  'y', 'b', 'u', 's', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'v', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'v', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b',
-  'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm',
-  'p', 'y', 'b', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b',
-  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p',
-  'y', 'u', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_', 'r', 't', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_',
-  'r', 't', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'r', 'm', 'p', 'y', 'u', 'b', '_', 'r', 't', 't', '_', 'a', 'c', 'c',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_',
-  'r', 't', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'i', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u',
-  'b', 'i', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-  'm', 'p', 'y', 'u', 'b', 'i', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'v',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'v',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm',
-  'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'r', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'h', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'h', 'b',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o',
-  'u', 'n', 'd', 'h', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-  'o', 'u', 'n', 'd', 'h', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'u', 'h', 'u', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'u', 'h', 'u',
-  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-  'o', 'u', 'n', 'd', 'u', 'w', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'r', 'o', 'u', 'n', 'd', 'u', 'w', 'u', 'h', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'w', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'w', 'h',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o',
-  'u', 'n', 'd', 'w', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-  'o', 'u', 'n', 'd', 'w', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b', 'i', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 's', 'a', 'd', 'u',
-  'b', 'i', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-  's', 'a', 'd', 'u', 'b', 'i', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'u',
-  'w', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'u',
-  'w', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 's', 'a', 't', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-  'a', 't', 'w', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'b', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a',
-  't', 't', 'e', 'r', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-  'c', 'a', 't', 't', 'e', 'r', 'm', 'h', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'h',
-  '_', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a',
-  't', 't', 'e', 'r', 'm', 'h', '_', 'a', 'd', 'd', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r',
-  'm', 'h', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't',
-  't', 'e', 'r', 'm', 'h', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'h', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm',
-  'h', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'h', 'w', '_', 'a', 'd', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm',
-  'h', 'w', '_', 'a', 'd', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'h', 'w', 'q',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r',
-  'm', 'h', 'w', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'w', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c', 'a', 't',
-  't', 'e', 'r', 'm', 'w', '_', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'w', '_', 'a', 'd', 'd',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'c',
-  'a', 't', 't', 'e', 'r', 'm', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 's', 'c', 'a', 't', 't', 'e', 'r', 'm', 'w', 'q', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 's', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'e', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 's', 'h', 'u', 'f', 'e', 'h', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'b', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f',
-  'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f',
-  'e', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  's', 'h', 'u', 'f', 'f', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-  'h', 'u', 'f', 'f', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'o', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'o', 'b', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'v', 'd',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'v',
-  'd', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  's', 'h', 'u', 'f', 'o', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  's', 'h', 'u', 'f', 'o', 'e', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'e', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'e', 'h', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'h',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
-  'b', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-  'b', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-  'b', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 's', 'u', 'b', 'b', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 's', 'u', 'b', 'b', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', 'q', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 's', 'u', 'b', 'b', 'q', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', 's', 'a', 't', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', 's', 'a', 't', '_', '1',
-  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b',
-  's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-  'u', 'b', 'b', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'v', '6', '_', 'v', 's', 'u', 'b', 'c', 'a', 'r', 'r', 'y',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'v', '6', '_', 'v', 's', 'u', 'b', 'c', 'a', 'r', 'r',
-  'y', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-  'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
-  'b', 'h', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
-  'b', 'h', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 's', 'u', 'b', 'h', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 's', 'u', 'b', 'h', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'q', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'q', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 's', 'a', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 's', 'a', 't', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-  'h', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  's', 'u', 'b', 'h', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'w', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 'h', '_',
-  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-  'u', 'b', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
-  'b', 'u', 'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 's', 'a', 't', '_', 'd', 'v',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 's', 'a',
-  't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 's', 'u', 'b', 'u', 'b', 'u', 'b', 'b', '_', 's', 'a', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 'u', 'b', 'b',
-  '_', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 's', 'u', 'b', 'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 's',
-  'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
-  'b', 'u', 'h', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 'w', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'w',
-  's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u',
-  'w', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-  '_', 'v', 's', 'u', 'b', 'u', 'w', 's', 'a', 't', '_', 'd', 'v', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'w', 's', 'a', 't', '_',
-  'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  's', 'u', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-  'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-  'u', 'b', 'w', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-  'u', 'b', 'w', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-  'V', '6', '_', 'v', 's', 'u', 'b', 'w', 'n', 'q', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 's', 'u', 'b', 'w', 'n', 'q', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 'q', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 'q', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 's', 'a', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 's', 'a', 't',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
-  'b', 'w', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 's', 'u', 'b', 'w', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'w', 'a', 'p', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 's', 'w', 'a', 'p', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '_',
-  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y',
-  'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-  '6', '_', 'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '_', '1', '2', '8', 'B',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', 'u', 's',
-  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p',
-  'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '_', '1', '2', '8',
-  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b',
-  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p',
-  'y', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'b', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c',
-  'k', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c',
-  'k', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'u', 'n', 'p', 'a', 'c', 'k', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-  'v', 'u', 'n', 'p', 'a', 'c', 'k', 'o', 'b', '_', '1', '2', '8', 'B', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'o', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'o',
-  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u',
-  'n', 'p', 'a', 'c', 'k', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'u', 'n', 'p', 'a', 'c', 'k', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-  'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'u', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-  'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'u', 'h',
-  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'x', 'o',
-  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'x', 'o', 'r', '_', '1', '2',
-  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'z', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'z', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-  '_', 'V', '6', '_', 'v', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-  'z', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '2', '_', 'd',
-  'c', 'c', 'l', 'e', 'a', 'n', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '2', '_', 'd',
-  'c', 'c', 'l', 'e', 'a', 'n', 'i', 'n', 'v', 'a', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y',
-  '2', '_', 'd', 'c', 'i', 'n', 'v', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '2', '_',
-  'd', 'c', 'z', 'e', 'r', 'o', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '4', '_', 'l',
-  '2', 'f', 'e', 't', 'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'Y', '5', '_', 'l', '2',
-  'f', 'e', 't', 'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l',
-  'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i',
-  'r', 'c', '_', 'l', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'u', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r',
-  'c', '_', 's', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'c', 'i', 'r', 'c', '_', 's', 't', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 's', 't', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 's',
-  't', 'h', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'c', 'i', 'r', 'c', '_', 's', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', '_', 'm', 'm', '2', '5', '6', 'i', '_', 'v', 'a', 'd',
-  'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-  'X', 'A', 'G', 'O', 'N', '_', 'p', 'r', 'e', 'f', 'e', 't', 'c', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'a', 'b', 's', 'q', '_', 's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'b', 's', 'q', '_',
-  's', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'a', 'b', 's', 'q', '_', 's', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd',
-  'd', '_', 'a', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'a', 'd', 'd', '_', 'a', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
-  '_', 'a', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'a', 'd', 'd', '_', 'a', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd',
-  'q', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'q', '_', 's', '_', 'p', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'a', 'd', 'd', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'q', 'h', '_',
-  'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-  'p', 's', '_', 'a', 'd', 'd', 'q', 'h', '_', 'r', '_', 'p', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a',
-  'd', 'd', 'q', 'h', '_', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'q', 'h', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'a', 'd', 'd', 's', '_', 'a', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'a',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'a', 'd', 'd', 's', '_', 'a', '_', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_',
-  'a', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'a', 'd', 'd', 's', '_', 's', '_', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's',
-  '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 's', '_', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
-  's', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'u', '_', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd',
-  'd', 's', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'u', '_', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
-  'd', 'd', 's', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 's', 'c', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a',
-  'd', 'd', 'u', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'u', '_', 'q', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'a', 'd', 'd', 'u', '_', 's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'u', '_',
-  's', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'u', 'h', '_', 'q', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a',
-  'd', 'd', 'u', 'h', '_', 'r', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', '_', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'a', 'd', 'd', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', '_', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
-  'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'a', 'd', 'd', 'v', 'i', '_', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', 'i',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'a', 'd', 'd', 'v', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', 'i', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-  's', '_', 'a', 'd', 'd', 'w', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'n', 'd', '_', 'v', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'n', 'd',
-  'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  'i', 'p', 's', '_', 'a', 'p', 'p', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_',
-  's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'a', 's', 'u', 'b', '_', 's', '_', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b',
-  '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 's', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u',
-  'b', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 'u', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's',
-  'u', 'b', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 'u', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
-  'v', 'e', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 's', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v',
-  'e', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 's', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e',
-  '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'a', 'v', 'e', '_', 'u', '_', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_',
-  'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'a', 'v', 'e', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_',
-  's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'a', 'v', 'e', 'r', '_', 's', '_', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r',
-  '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 's', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e',
-  'r', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 'u', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v',
-  'e', 'r', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 'u', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'b', 'a', 'l', 'i', 'g', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', '_', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l',
-  'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'b', 'c', 'l', 'r', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', '_', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'b', 'c', 'l', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', 'i', '_', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-  'c', 'l', 'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', 'i', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i',
-  'n', 's', 'l', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n',
-  's', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's',
-  'l', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', 'i', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n',
-  's', 'l', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', 'i', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i',
-  'n', 's', 'r', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n',
-  's', 'r', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's',
-  'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', 'i', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n',
-  's', 'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', 'i', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'b',
-  'i', 't', 'r', 'e', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'b', 'm', 'n', 'z', '_', 'v', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'm', 'n', 'z',
-  'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'b', 'm', 'z', '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'm', 'z', 'i', '_', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-  'n', 'e', 'g', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', '_', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g',
-  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'b', 'n', 'e', 'g', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', 'i', '_', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'b', 'n', 'e', 'g', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', 'i', '_', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-  'n', 'e', 'g', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'b', 'n', 'z', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'v', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-  's', '_', 'b', 'p', 'o', 's', 'g', 'e', '3', '2', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 'l', '_',
-  'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'b', 's', 'e', 'l', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', '_', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-  's', 'e', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', '_', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't',
-  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'b', 's', 'e', 't', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', 'i', '_',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'b', 's', 'e', 't', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', 'i', '_', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'b', 'z', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'b', 'z', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'z', '_', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'z', '_',
-  'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'b', 'z', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'c', 'e', 'q', '_', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'c', 'e', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'c', 'e', 'q', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', 'i', '_',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'c', 'e', 'q', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', 'i', '_', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e',
-  'q', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'c', 'f', 'c', 'm', 's', 'a', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 's',
-  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'c', 'l', 'e', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 's', '_',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'c', 'l', 'e', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 'u', '_', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'c', 'l', 'e', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 'u', '_', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
-  'l', 'e', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 's', '_', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
-  'l', 'e', 'i', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 's', '_', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'c', 'l', 'e', 'i', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 'u', '_',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'c', 'l', 'e', 'i', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 'u',
-  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'c', 'l', 'e', 'i', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 's',
-  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'c', 'l', 't', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 's', '_',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'c', 'l', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 'u', '_', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'c', 'l', 't', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 'u', '_', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
-  'l', 't', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 's', '_', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
-  'l', 't', 'i', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 's', '_', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'c', 'l', 't', 'i', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 'u', '_',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'c', 'l', 't', 'i', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 'u',
-  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'c', 'l', 't', 'i', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', '_',
-  'e', 'q', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', '_', 'l', 'e', '_', 'p', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 'c', 'm', 'p', '_', 'l', 't', '_', 'p', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g',
-  'd', 'u', '_', 'e', 'q', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'd', 'u',
-  '_', 'l', 'e', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'd', 'u', '_', 'l',
-  't', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'u', '_', 'e', 'q', '_', 'q',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-  's', '_', 'c', 'm', 'p', 'g', 'u', '_', 'l', 'e', '_', 'q', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c',
-  'm', 'p', 'g', 'u', '_', 'l', 't', '_', 'q', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'u',
-  '_', 'e', 'q', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'u', '_', 'l', 'e', '_',
-  'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-  'p', 's', '_', 'c', 'm', 'p', 'u', '_', 'l', 't', '_', 'q', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o',
-  'p', 'y', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 's', '_', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c',
-  'o', 'p', 'y', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 's', '_', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'c', 'o', 'p', 'y', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 'u', '_',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'c', 'o', 'p', 'y', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 'u',
-  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'c', 't', 'c', 'm', 's', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 's', '_', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'd', 'i', 'v', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 's', '_', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd',
-  'i', 'v', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 'u', '_', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i',
-  'v', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 'u', '_', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v',
-  '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'd', 'l', 's', 'a', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_', 's',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'd', 'o', 't', 'p', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_',
-  's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'd', 'o', 't', 'p', '_', 'u', '_', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p',
-  '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_', 'u', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p',
-  'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 's', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'd', 'p', 'a', 'd', 'd', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_',
-  's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 'u', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a',
-  'd', 'd', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 'u', '_', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 'd', 'p', 'a', 'q', '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p',
-  'a', 'q', '_', 's', 'a', '_', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'q', 'x',
-  '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'q', 'x', '_', 's',
-  'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'u', '_', 'h', '_', 'q',
-  'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-  'p', 's', '_', 'd', 'p', 'a', 'u', '_', 'h', '_', 'q', 'b', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd',
-  'p', 'a', 'x', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', '_', 'w', '_',
-  'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-  'p', 's', '_', 'd', 'p', 's', 'q', '_', 's', '_', 'w', '_', 'p', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'd', 'p', 's', 'q', '_', 's', 'a', '_', 'l', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's',
-  'q', 'x', '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'q', 'x',
-  '_', 's', 'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'u', '_', 'h',
-  '_', 'q', 'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'u', '_', 'h', '_', 'q', 'b', 'r',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'd', 'p', 's', 'u', 'b', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_',
-  's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_', 's', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's',
-  'u', 'b', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_', 'u', '_', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'd', 'p', 's', 'u', 'b', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'x', '_',
-  'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'p', 'd',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-  's', '_', 'e', 'x', 't', 'r', '_', 'r', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'r',
-  '_', 'r', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'r', '_', 's', '_', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'e', 'x', 't', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'f', 'a', 'd', 'd', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'a', 'd',
-  'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'f', 'c', 'a', 'f', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'a', 'f', '_', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'f', 'c', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'e', 'q', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'l',
-  'a', 's', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'f', 'c', 'l', 'a', 's', 's', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c',
-  'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'f', 'c', 'l', 'e', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'l', 't', '_',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'f', 'c', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'n', 'e', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c',
-  'n', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'f', 'c', 'o', 'r', '_', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'o', 'r', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'f', 'c', 'u', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'e', 'q', '_', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'f', 'c', 'u', 'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'l', 'e', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-  'c', 'u', 'l', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'l', 't', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c',
-  'u', 'n', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'f', 'c', 'u', 'n', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'n', 'e',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'f', 'c', 'u', 'n', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'd', 'i', 'v', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'f', 'd', 'i', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'd', 'o', '_', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e',
-  'x', 'd', 'o', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'p', '2', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x',
-  'p', '2', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'f', 'e', 'x', 'u', 'p', 'l', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x',
-  'u', 'p', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'u', 'p', 'r', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e',
-  'x', 'u', 'p', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_', 's', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'f', 'f', 'i', 'n', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_',
-  'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_', 'u', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'q',
-  'l', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'f', 'f', 'q', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'q', 'r', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'f', 'f', 'q', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l', 'l', '_', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l',
-  'l', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'f', 'i', 'l', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l', 'l', '_', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'f', 'l', 'o', 'g', '2', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'l', 'o', 'g', '2', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-  'm', 'a', 'd', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'd', 'd', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm',
-  'a', 'x', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'x', '_', 'a', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-  'm', 'a', 'x', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'x', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'i', 'n',
-  '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'f', 'm', 'i', 'n', '_', 'a', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'i',
-  'n', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'f', 'm', 'i', 'n', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 's', 'u', 'b', '_',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'f', 'm', 's', 'u', 'b', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'u', 'l', '_', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-  'm', 'u', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'f', 'r', 'c', 'p', '_', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 'c', 'p',
-  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'f', 'r', 'i', 'n', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 'i', 'n', 't', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'f', 'r', 's', 'q', 'r', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 's', 'q', 'r', 't',
-  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'f', 's', 'a', 'f', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'a', 'f', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-  's', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'f', 's', 'e', 'q', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'l', 'e',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'f', 's', 'l', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'l', 't', '_', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-  's', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'f', 's', 'n', 'e', '_', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'n', 'e',
-  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'f', 's', 'o', 'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'o', 'r', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-  's', 'q', 'r', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'f', 's', 'q', 'r', 't', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's',
-  'u', 'b', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'f', 's', 'u', 'b', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'e', 'q',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'f', 's', 'u', 'e', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'l', 'e', '_',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'f', 's', 'u', 'l', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'l', 't', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'f', 's', 'u', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'n', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's',
-  'u', 'n', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'f', 's', 'u', 'n', 'e', '_', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'n',
-  'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'f', 't', 'i', 'n', 't', '_', 's', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'i',
-  'n', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'f', 't', 'i', 'n', 't', '_', 'u', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'f', 't', 'i', 'n', 't', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'q', '_', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-  't', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_', 's', '_', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-  't', 'r', 'u', 'n', 'c', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'r', 'u', 'n', 'c',
-  '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_', 'u', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h',
-  'a', 'd', 'd', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd', 'd', '_', 's', '_', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'h', 'a', 'd', 'd', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd', 'd', '_', 'u', '_',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'h', 'a', 'd', 'd', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd', 'd', '_', 'u',
-  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'h', 's', 'u', 'b', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b', '_',
-  's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'h', 's', 'u', 'b', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b',
-  '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'h', 's', 'u', 'b', '_', 'u', '_', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 's', 'u',
-  'b', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'e', 'v', '_', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v',
-  'e', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'i', 'l', 'v', 'e', 'v', '_', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'e',
-  'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'i', 'l', 'v', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v',
-  'o', 'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'i', 'l', 'v', 'o', 'd', '_', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'o',
-  'd', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'i', 'l', 'v', 'o', 'd', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'r', '_',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'i', 'l', 'v', 'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'r', '_', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l',
-  'v', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'i', 'n', 's', 'e', 'r', 't', '_', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's',
-  'e', 'r', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'e', 'r', 't', '_', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n',
-  's', 'e', 'r', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 'i', 'p', 's', '_', 'i', 'n', 's', 'v', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'v',
-  'e', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'i', 'n', 's', 'v', 'e', '_', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'v', 'e',
-  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'i', 'n', 's', 'v', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 'b', 'u', 'x', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l',
-  'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'l', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd', '_', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd', '_', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'l', 'd', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'l', 'd', 'i', '_', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd', 'i', '_', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'l', 'd', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 'i', 'p', 's', '_', 'l', 'h', 'x', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 's', 'a', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l',
-  'w', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-  'p', 's', '_', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', '_', 'q', '_', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'm', 'a', 'd', 'd', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'r', '_', 'q',
-  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'm', 'a', 'd', 'd', 'r', '_', 'q', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'd',
-  'd', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'm', 'a', 'd', 'd', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'v', '_',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'm', 'a', 'd', 'd', 'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'v', '_', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 'm', 'a', 'q', '_', 's', '_', 'w', '_', 'p', 'h', 'l', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a',
-  'q', '_', 's', '_', 'w', '_', 'p', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'q', '_', 's',
-  'a', '_', 'w', '_', 'p', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'q', '_', 's', 'a', '_',
-  'w', '_', 'p', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'a', '_', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x',
-  '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'a', '_', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_',
-  'a', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'm', 'a', 'x', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 's',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'm', 'a', 'x', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 's', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'm', 'a', 'x', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'u', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'm', 'a', 'x', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'u', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
-  'a', 'x', 'i', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 's', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'm', 'a', 'x', 'i', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 's', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'm', 'a', 'x', 'i', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 'u',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'm', 'a', 'x', 'i', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_',
-  'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'm', 'i', 'n', '_', 'a', '_', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'a',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'm', 'i', 'n', '_', 'a', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'a', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'm', 'i', 'n', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 's', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'm', 'i', 'n', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 's', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
-  'i', 'n', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'u', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i',
-  'n', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'u', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n',
-  'i', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 's', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i',
-  'n', 'i', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 's', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
-  'i', 'n', 'i', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 'u', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'm', 'i', 'n', 'i', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 'u', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'm', 'o', 'd', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 's', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'm', 'o', 'd', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 's', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
-  'o', 'd', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 'u', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o',
-  'd', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 'u', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'o',
-  'd', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'm', 'o', 'v', 'e', '_', 'v', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 's', 'u', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'm', 's', 'u', 'b', '_', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b', '_', 'q', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'm', 's', 'u', 'b', 'r', '_', 'q', '_', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'r',
-  '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'm', 's', 'u', 'b', 'u', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'v',
-  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'm', 's', 'u', 'b', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'v', '_',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'm', 's', 'u', 'b', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 't', 'h', 'l', 'i', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 'm', 'u', 'l', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', '_', 'q', '_', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
-  'u', 'l', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', '_', 's', '_', 'p', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 'm', 'u', 'l', 'e', 'q', '_', 's', '_', 'w', '_', 'p', 'h', 'l', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'm', 'u', 'l', 'e', 'q', '_', 's', '_', 'w', '_', 'p', 'h', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm',
-  'u', 'l', 'e', 'u', '_', 's', '_', 'p', 'h', '_', 'q', 'b', 'l', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm',
-  'u', 'l', 'e', 'u', '_', 's', '_', 'p', 'h', '_', 'q', 'b', 'r', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm',
-  'u', 'l', 'q', '_', 'r', 's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 'q', '_',
-  'r', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 'q', '_', 's', '_', 'p', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'm', 'u', 'l', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'r', '_', 'q', '_',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'm', 'u', 'l', 'r', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 's', 'a',
-  '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 's', 'a', 'q', '_', 's', '_',
-  'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 't', 'u',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'm', 'u', 'l', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'v', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l',
-  'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'm', 'u', 'l', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'o', 'c', '_', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'n', 'l', 'o', 'c', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'o', 'c', '_', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'o',
-  'c', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  'n', 'l', 'z', 'c', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'o', 'r',
-  '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'n', 'o', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'o', 'r', '_', 'v', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'o', 'r', 'i',
-  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-  'p', 's', '_', 'p', 'a', 'c', 'k', 'r', 'l', '_', 'p', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k',
-  'e', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 'p', 'c', 'k', 'e', 'v', '_', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'e',
-  'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 'p', 'c', 'k', 'e', 'v', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'o', 'd',
-  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'p', 'c', 'k', 'o', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'o', 'd', '_',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'p', 'c', 'k', 'o', 'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'n', 't', '_', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p',
-  'c', 'n', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 'p', 'c', 'n', 't', '_', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'n', 't',
-  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-  'p', 's', '_', 'p', 'i', 'c', 'k', '_', 'p', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'i', 'c', 'k',
-  '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', '_', 'w', '_', 'p', 'h',
-  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-  's', '_', 'p', 'r', 'e', 'c', 'e', 'q', '_', 'w', '_', 'p', 'h', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q', 'b', 'l', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q', 'b', 'l', 'a',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q', 'b', 'r',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q', 'b', 'r',
-  'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-  's', '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q', 'b', 'l',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q', 'b', 'l', 'a',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q', 'b', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q', 'b', 'r', 'a', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  'p', 'r', 'e', 'c', 'r', '_', 'q', 'b', '_', 'p', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e',
-  'c', 'r', '_', 's', 'r', 'a', '_', 'p', 'h', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e',
-  'c', 'r', '_', 's', 'r', 'a', '_', 'r', '_', 'p', 'h', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p',
-  'r', 'e', 'c', 'r', 'q', '_', 'p', 'h', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c',
-  'r', 'q', '_', 'q', 'b', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'r', 'q',
-  '_', 'r', 's', '_', 'p', 'h', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'r', 'q',
-  'u', '_', 's', '_', 'q', 'b', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'p', 'e',
-  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-  'p', 's', '_', 'r', 'a', 'd', 'd', 'u', '_', 'w', '_', 'q', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'r',
-  'd', 'd', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 'r', 'e', 'p', 'l', '_', 'p', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'r', 'e',
-  'p', 'l', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 's', '_', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't',
-  '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 's', 'a', 't', '_', 's', '_', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_',
-  's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 's', 'a', 't', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 'u',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 's', 'a', 't', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 'u', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 's', 'h', 'f', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 's', 'h', 'f', '_', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'h', 'f', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-  's', '_', 's', 'h', 'i', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'l', 'l', '_', 'p', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 's', 'h', 'l', 'l', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'l', 'l', '_', 's',
-  '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  'i', 'p', 's', '_', 's', 'h', 'l', 'l', '_', 's', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h',
-  'r', 'a', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'a', '_', 'q', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's',
-  'h', 'r', 'a', '_', 'r', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'a', '_', 'r',
-  '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  'i', 'p', 's', '_', 's', 'h', 'r', 'a', '_', 'r', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h',
-  'r', 'l', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'l', '_', 'q', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l',
-  'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 's', 'l', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', '_', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l',
-  'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 's', 'l', 'd', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', 'i', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  's', 'l', 'd', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', 'i', '_', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l',
-  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 's', 'l', 'l', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', '_', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l',
-  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 's', 'l', 'l', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', 'i', '_', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-  'l', 'l', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 's', 'l', 'l', 'i', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a',
-  't', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 's', 'p', 'l', 'a', 't', '_', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't',
-  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 's', 'p', 'l', 'a', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', 'i',
-  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 's', 'p', 'l', 'a', 't', 'i', '_', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't',
-  'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 's', 'p', 'l', 'a', 't', 'i', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', '_',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 's', 'r', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', '_', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 's', 'r', 'a', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'i', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-  'a', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 's', 'r', 'a', 'i', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', '_',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 's', 'r', 'a', 'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', '_', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-  'a', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 's', 'r', 'a', 'r', 'i', '_', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r',
-  'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 's', 'r', 'a', 'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', 'i',
-  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 's', 'r', 'l', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l',
-  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 's', 'r', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'i', '_', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-  'l', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 's', 'r', 'l', 'i', '_', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'i', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 's', 'r', 'l', 'r', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', '_', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-  'l', 'r', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 's', 'r', 'l', 'r', '_', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', 'i',
-  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 's', 'r', 'l', 'r', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', 'i', '_',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 's', 'r', 'l', 'r', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 't', '_', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 't', '_',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 's', 't', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 's', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', '_',
-  'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-  'p', 's', '_', 's', 'u', 'b', 'q', '_', 's', '_', 'p', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u',
-  'b', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', 'h', '_', 'p', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-  '_', 's', 'u', 'b', 'q', 'h', '_', 'r', '_', 'p', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b',
-  'q', 'h', '_', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', 'h', '_', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-  'u', 'b', 's', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 's', '_', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-  's', 'u', 'b', 's', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 's', '_',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 's', 'u', 'b', 's', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 'u',
-  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 's', 'u', 'b', 's', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_',
-  'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u', '_', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u',
-  'b', 's', 'u', 's', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', 'u', 's', '_',
-  'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u',
-  'b', 's', 'u', 'u', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', 'u', 'u', '_',
-  's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-  's', 'a', '_', 's', 'u', 'b', 's', 'u', 'u', '_', 's', '_', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u',
-  'b', 's', 'u', 'u', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', '_', 'p',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-  's', '_', 's', 'u', 'b', 'u', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', '_',
-  's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', '_', 's', '_', 'q', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-  's', 'u', 'b', 'u', 'h', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', 'h', '_',
-  'r', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 's', 'u', 'b', 'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u',
-  'b', 'v', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', 'i', '_', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b',
-  'v', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'm', 's', 'a', '_', 's', 'u', 'b', 'v', 'i', '_', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'v', 's', 'h', 'f',
-  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-  'a', '_', 'v', 's', 'h', 'f', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'v', 's', 'h', 'f', '_', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'v',
-  's', 'h', 'f', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'm', 'i', 'p', 's', '_', 'w', 'r', 'd', 's', 'p', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'x', 'o', 'r', '_',
-  'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-  '_', 'x', 'o', 'r', 'i', '_', 'b', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'a', 'd', 'd', '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'a', 'd', 'd', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'a', 'd', 'd', '_', 'r', 'm', '_', 'f', 't', 'z', '_', 'f', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n', '_', 'd',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n', '_',
-  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n',
-  '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a',
-  'd', 'd', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'a', 'd', 'd', '_', 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'a', 'd', 'd', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_', 'd', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_', 'f',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_',
-  'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a',
-  'r', '_', 's', 'y', 'n', 'c', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b',
-  'a', 'r', '_', 'w', 'a', 'r', 'p', '_', 's', 'y', 'n', 'c', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'b', 'a', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'b', 'a', 'r', '_', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b',
-  'a', 'r', 'r', 'i', 'e', 'r', '_', 's', 'y', 'n', 'c', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'b', 'a', 'r', 'r', 'i', 'e', 'r', '_', 's', 'y', 'n',
-  'c', '_', 'c', 'n', 't', '\000', '_', '_', 's', 'y', 'n', 'c', 't', 'h', 'r',
-  'e', 'a', 'd', 's', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a', 'r',
-  '0', '_', 'a', 'n', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a',
-  'r', '0', '_', 'o', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a',
-  'r', '0', '_', 'p', 'o', 'p', 'c', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'b', 'i', 't', 'c', 'a', 's', 't', '_', 'd', '2', 'l', 'l', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'b', 'i', 't', 'c', 'a', 's', 't', '_', 'f', '2',
-  'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'i', 't', 'c', 'a', 's',
-  't', '_', 'i', '2', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'i',
-  't', 'c', 'a', 's', 't', '_', 'l', 'l', '2', 'd', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'c', 'e', 'i', 'l', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'c', 'e', 'i', 'l', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'c', 'e', 'i', 'l', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'c', 'o', 's', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_',
-  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'c', 'o', 's', '_', 'a', 'p',
-  'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'd', '2', 'f', '_', 'r', 'm', '_', 'f', 't', 'z', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'n', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'n', '_', 'f', 't', 'z', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'p', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'p', '_', 'f', 't',
-  'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'z',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'z', '_',
-  'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_',
-  'h', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'l',
-  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'm',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'n', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'p', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'z', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'd', '2', 'l', 'l', '_', 'r', 'm', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'd', '2', 'l', 'l', '_', 'r', 'n', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'd', '2', 'l', 'l', '_', 'r', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'd', '2', 'l', 'l', '_', 'r', 'z', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'i', '_', 'r', 'm', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'i', '_', 'r', 'n', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'i', '_', 'r', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'i', '_', 'r', 'z', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'm', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'n', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r',
-  'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'a', 'p',
-  'p', 'r', 'o', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd',
-  'i', 'v', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm', '_',
-  'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm',
-  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r',
-  'm', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'd', 'i', 'v', '_', 'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'd', 'i', 'v', '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'd', 'i', 'v', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_', 'd',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_',
-  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p',
-  '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd',
-  'i', 'v', '_', 'r', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'd', 'i', 'v', '_', 'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'd', 'i', 'v', '_', 'r', 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'e', 'x', '2', '_', 'a', 'p', 'p', 'r', 'o',
-  'x', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'e', 'x', '2', '_',
-  'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'e', 'x', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z',
-  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'h', '_', 'r',
-  'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'h', '_', 'r', 'n',
-  '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i',
-  '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_',
-  'r', 'm', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-  '2', 'i', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
-  'i', '_', 'r', 'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'f', '2', 'i', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'f', '2', 'i', '_', 'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'f', '2', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'f', '2', 'i', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'm', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'm', '_', 'f', 't',
-  'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r',
-  'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r',
-  'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
-  'l', 'l', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
-  'l', 'l', '_', 'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'm', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'm', '_', 'f',
-  't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_',
-  'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_',
-  'r', 'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-  '2', 'u', 'i', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-  '2', 'u', 'i', '_', 'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'z', '_', 'f', 't', 'z', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'm',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r',
-  'm', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
-  'u', 'l', 'l', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-  '2', 'u', 'l', 'l', '_', 'r', 'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'p', '_', 'f',
-  't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l',
-  '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l',
-  'l', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'f', 'a', 'b', 's', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'f', 'a', 'b', 's', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-  'a', 'b', 's', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'f', 'l', 'o', 'o', 'r', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'f', 'l', 'o', 'o', 'r', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'f', 'l', 'o', 'o', 'r', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'd', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'f',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_',
-  'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm',
-  'a', '_', 'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-  'm', 'a', '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'f', 'm', 'a', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'd', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'f', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'f',
-  't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a',
-  '_', 'r', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm',
-  'a', '_', 'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-  'm', 'a', '_', 'r', 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'f', 'm', 'a', 'x', '_', 'd', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'f', 'm', 'a', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'f', 'm', 'a', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'f', 'm', 'i', 'n', '_', 'd', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'f', 'm', 'i', 'n', '_', 'f', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'f', 'm', 'i', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'f', 'n', 's', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'i', '2', 'd', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'i', '2', 'd', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'i', '2', 'd', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i',
-  '2', 'd', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2',
-  'f', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f',
-  '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_',
-  'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r',
-  'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 's', 'p', 'a', 'c',
-  'e', 'p', '_', 'c', 'o', 'n', 's', 't', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'i', 's', 's', 'p', 'a', 'c', 'e', 'p', '_', 'g', 'l', 'o', 'b', 'a',
-  'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 's', 'p', 'a', 'c',
-  'e', 'p', '_', 'l', 'o', 'c', 'a', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'i', 's', 's', 'p', 'a', 'c', 'e', 'p', '_', 's', 'h', 'a', 'r', 'e',
-  'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 't', 'y', 'p', 'e',
-  'p', '_', 's', 'a', 'm', 'p', 'l', 'e', 'r', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'i', 's', 't', 'y', 'p', 'e', 'p', '_', 's', 'u', 'r', 'f', 'a',
-  'c', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 't', 'y', 'p',
-  'e', 'p', '_', 't', 'e', 'x', 't', 'u', 'r', 'e', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'l', 'g', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'd',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'g', '2', '_', 'a', 'p', 'p',
-  'r', 'o', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'g',
-  '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'm', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'n', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'z', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'm', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'n', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'z', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'o', 'h', 'i', '_', 'i', '2', 'd',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'a', 't', 'c', 'h', '_', 'a',
-  'n', 'y', '_', 's', 'y', 'n', 'c', '_', 'i', '3', '2', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'm', 'a', 't', 'c', 'h', '_', 'a', 'n', 'y', '_', 's',
-  'y', 'n', 'c', '_', 'i', '6', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'm', 'e', 'm', 'b', 'a', 'r', '_', 'c', 't', 'a', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'm', 'e', 'm', 'b', 'a', 'r', '_', 'g', 'l', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'm', 'e', 'm', 'b', 'a', 'r', '_', 's', 'y', 's',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm', '_',
-  'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm',
-  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r',
-  'm', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'm', 'u', 'l', '_', 'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'm', 'u', 'l', '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'm', 'u', 'l', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_', 'd',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_',
-  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p',
-  '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm',
-  'u', 'l', '_', 'r', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'm', 'u', 'l', '_', 'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'm', 'u', 'l', '_', 'r', 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '2', '4', '_', 'i', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '2', '4', '_', 'u', 'i', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'i', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'l', 'l',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'u',
-  'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_',
-  'u', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'p', 'r', 'm', 't',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'a', 'p', 'p',
-  'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'r', 'c', 'p', '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'm', '_', 'f', 't', 'z', '_',
-  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'n',
-  '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r',
-  'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_',
-  'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'r', 'c', 'p', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'r', 'c', 'p', '_', 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z', '_',
-  'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z',
-  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r',
-  'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c',
-  'l', 'o', 'c', 'k', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a',
-  'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c', 'l', 'o', 'c',
-  'k', '6', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd',
-  '_', 'w', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
-  'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_',
-  'x', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
-  't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'y',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
-  'x', '_', 's', 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'z', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
-  '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '0', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-  's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '0', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '1', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '2', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '3', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '4', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '5', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '6', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '7', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '8', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '1', '9', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '0', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '1', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '2', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '3', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '4', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '5', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '6', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '7', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '8', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '2', '9', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-  'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '3', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '3', '0', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '3', '1', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-  'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '4', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g',
-  '_', 'e', 'n', 'v', 'r', 'e', 'g', '5', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
-  'e', 'n', 'v', 'r', 'e', 'g', '6', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-  'n', 'v', 'r', 'e', 'g', '7', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-  'v', 'r', 'e', 'g', '8', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-  'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v',
-  'r', 'e', 'g', '9', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a',
-  'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'g', 'r', 'i', 'd',
-  'i', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
-  'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'i', 'd',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
-  'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'm', 'a', 's', 'k',
-  '_', 'e', 'q', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'm',
-  'a', 's', 'k', '_', 'g', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a',
-  'n', 'e', 'm', 'a', 's', 'k', '_', 'g', 't', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g',
-  '_', 'l', 'a', 'n', 'e', 'm', 'a', 's', 'k', '_', 'l', 'e', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'm', 'a', 's', 'k', '_', 'l', 't',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
-  'x', '_', 's', 'r', 'e', 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'w',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
-  'x', '_', 's', 'r', 'e', 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'x',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
-  'x', '_', 's', 'r', 'e', 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'y',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
-  'x', '_', 's', 'r', 'e', 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'z',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
-  'x', '_', 's', 'r', 'e', 'g', '_', 'n', 's', 'm', 'i', 'd', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'n', 't', 'i', 'd', '_', 'w', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-  'g', '_', 'n', 't', 'i', 'd', '_', 'x', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
-  'n', 't', 'i', 'd', '_', 'y', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n', 't',
-  'i', 'd', '_', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a',
-  'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n', 'w', 'a', 'r',
-  'p', 'i', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'p', 'm', '0', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-  's', 'r', 'e', 'g', '_', 'p', 'm', '1', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
-  'p', 'm', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'p', 'm', '3', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-  's', 'r', 'e', 'g', '_', 's', 'm', 'i', 'd', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g',
-  '_', 't', 'i', 'd', '_', 'w', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 't', 'i',
-  'd', '_', 'x', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 't', 'i', 'd', '_', 'y',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
-  'x', '_', 's', 'r', 'e', 'g', '_', 't', 'i', 'd', '_', 'z', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-  'r', 'e', 'g', '_', 'w', 'a', 'r', 'p', 'i', 'd', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-  'g', '_', 'w', 'a', 'r', 'p', 's', 'i', 'z', 'e', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'o', 't', 'a', 't', 'e', '_', 'b', '3', '2', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'r', 'o', 't', 'a', 't', 'e', '_', 'b', '6',
-  '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'o', 't', 'a', 't', 'e',
-  '_', 'r', 'i', 'g', 'h', 't', '_', 'b', '6', '4', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'o', 'u', 'n', 'd', '_', 'd', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'o', 'u', 'n', 'd', '_', 'f', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'r', 'o', 'u', 'n', 'd', '_', 'f', 't', 'z', '_', 'f', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 's', 'q', 'r', 't', '_', 'a', 'p',
-  'p', 'r', 'o', 'x', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-  's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'r', 's', 'q', 'r', 't', '_', 'a', 'p', 'p',
-  'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'a', 'd', '_', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'a', 'd', '_', 'u', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'a', 't', 'u', 'r', 'a', 't', 'e', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'a', 't', 'u', 'r', 'a', 't', 'e', '_', 'f', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'a', 't', 'u', 'r', 'a', 't', 'e', '_', 'f',
-  't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f',
-  'l', '_', 'b', 'f', 'l', 'y', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'b', 'f', 'l', 'y', '_', 'i', '3',
-  '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'd',
-  'o', 'w', 'n', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'h', 'f', 'l', '_', 'd', 'o', 'w', 'n', '_', 'i', '3', '2', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'i', 'd', 'x', '_',
-  'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l',
-  '_', 'i', 'd', 'x', '_', 'i', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'h', 'f', 'l', '_', 's', 'y', 'n', 'c', '_', 'b', 'f', 'l', 'y',
-  '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f',
-  'l', '_', 's', 'y', 'n', 'c', '_', 'b', 'f', 'l', 'y', '_', 'i', '3', '2',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 's', 'y',
-  'n', 'c', '_', 'd', 'o', 'w', 'n', '_', 'f', '3', '2', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 's', 'y', 'n', 'c', '_', 'd',
-  'o', 'w', 'n', '_', 'i', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'h', 'f', 'l', '_', 's', 'y', 'n', 'c', '_', 'i', 'd', 'x', '_', 'f',
-  '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_',
-  's', 'y', 'n', 'c', '_', 'i', 'd', 'x', '_', 'i', '3', '2', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 's', 'y', 'n', 'c', '_',
-  'u', 'p', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'h', 'f', 'l', '_', 's', 'y', 'n', 'c', '_', 'u', 'p', '_', 'i', '3', '2',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'u', 'p',
-  '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f',
-  'l', '_', 'u', 'p', '_', 'i', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'i', 'n', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'i', 'n', '_', 'a', 'p', 'p', 'r', 'o',
-  'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r',
-  'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'q', 'r', 't', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'q', 'r', 't', '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'q', 'r', 't', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'm', '_', 'f', 't', 'z',
-  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_',
-  'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r',
-  't', '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'q', 'r', 't', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'p', '_', 'd', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'p', '_',
-  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r',
-  'p', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'q', 'r', 't', '_', 'r', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'q', 'r', 't', '_', 'r', 'z', '_', 'f', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'z', '_', 'f', 't', 'z',
-  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 'q', '_', 'a',
-  'r', 'r', 'a', 'y', '_', 's', 'i', 'z', 'e', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 'q', '_', 'c', 'h', 'a', 'n', 'n', 'e', 'l', '_', 'd',
-  'a', 't', 'a', '_', 't', 'y', 'p', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 'q', '_', 'c', 'h', 'a', 'n', 'n', 'e', 'l', '_', 'o', 'r',
-  'd', 'e', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 'q', '_',
-  'd', 'e', 'p', 't', 'h', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  'q', '_', 'h', 'e', 'i', 'g', 'h', 't', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 'q', '_', 'w', 'i', 'd', 't', 'h', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r',
-  'r', 'a', 'y', '_', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-  '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 'z', 'e',
-  'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_',
-  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i',
-  '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-  '_', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r',
-  'a', 'y', '_', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-  'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
-  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_', 'z', 'e', 'r',
-  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-  '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 'c', 'l',
-  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-  '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_',
-  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8',
-  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
-  '2', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r',
-  'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
-  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_', 'z',
-  'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-  '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i',
-  '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-  'y', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-  'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r',
-  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-  '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4',
-  '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-  'v', '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r',
-  'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
-  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 'c', 'l',
-  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-  '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i',
-  '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-  'v', '2', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r',
-  'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
-  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 't',
-  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-  '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i',
-  '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-  '_', 'v', '4', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-  'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-  '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2',
-  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
-  '4', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r',
-  'a', 'y', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-  'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '1', 'd', '_', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-  'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '1', '6', '_',
-  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '1', 'd', '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-  '_', '1', 'd', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-  'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '6', '4', '_',
-  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '6', '4', '_', 't', 'r', 'a',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-  '_', '1', 'd', '_', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-  'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '8', '_', 't',
-  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-  '_', 'b', '_', '1', 'd', '_', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-  '_', 'v', '2', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-  'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2',
-  'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '3',
-  '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '3', '2',
-  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'z',
-  'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-  '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a',
-  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '1', 'd', '_', 'v', '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '1', 'd', '_', 'v', '2', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-  '_', 'v', '2', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v',
-  '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '8',
-  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_', 'c',
-  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r',
-  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
-  'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-  'v', '4', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4',
-  'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '8',
-  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '8', '_', 'z', 'e',
-  'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_',
-  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i',
-  '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-  '_', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
-  'a', 'y', '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-  'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
-  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 'z', 'e', 'r',
-  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_', 'c',
-  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6',
-  '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-  'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
-  'y', '_', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r',
-  'r', 'a', 'y', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a',
-  'r', 'r', 'a', 'y', '_', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-  'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_', 'c', 'l', 'a',
-  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1',
-  '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-  'v', '2', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r',
-  'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_',
-  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2',
-  'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
-  'y', '_', 'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4', '_', 't', 'r',
-  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6',
-  '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-  'v', '2', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r',
-  'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 'z', 'e', 'r',
-  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6',
-  '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-  'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r',
-  'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
-  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_', 'c',
-  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-  'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
-  'y', '_', 'v', '4', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-  'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 'c', 'l', 'a', 'm',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_',
-  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-  'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '1', '6', '_', 'c',
-  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '2', 'd', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '2', 'd', '_', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i',
-  '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '3', '2', '_',
-  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '2', 'd', '_', 'i', '3', '2', '_', 'z', 'e', 'r', 'o',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '2', 'd', '_', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-  'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '6', '4', '_',
-  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '2', 'd', '_', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '2', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '8',
-  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '1', '6', '_', 'c',
-  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '1', '6', '_', 't', 'r',
-  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '2', 'd', '_', 'v', '2', 'i', '1', '6', '_', 'z', 'e', 'r', 'o',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '2', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
-  'd', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-  'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2',
-  'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i',
-  '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '6', '4',
-  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '8', '_', 'c', 'l',
-  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-  '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '2', 'd', '_', 'v', '2', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-  'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v',
-  '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i',
-  '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '3', '2',
-  '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '3', '2', '_',
-  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '3', '2', '_', 'z', 'e',
-  'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '2', 'd', '_', 'v', '4', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-  '2', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-  'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '1', '6',
-  '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '1', '6', '_', 't', 'r',
-  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '3', 'd', '_', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd',
-  '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '3',
-  '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '3', '2', '_', 'z', 'e',
-  'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '3', 'd', '_', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3',
-  'd', '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '6',
-  '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '8', '_', 'c', 'l', 'a',
-  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '3', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_',
-  'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '1', '6',
-  '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '1', '6', '_',
-  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '1', '6', '_', 'z', 'e',
-  'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '3', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'c', 'l', 'a', 'm',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-  '_', '3', 'd', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3',
-  'd', '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_',
-  'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v',
-  '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i',
-  '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '8', '_',
-  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '8', '_', 't', 'r',
-  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '3', 'd', '_', 'v', '2', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3',
-  'd', '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd',
-  '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v',
-  '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i',
-  '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '3',
-  '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '3', '2', '_',
-  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 'c', 'l', 'a',
-  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'b', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3',
-  'd', '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'a',
-  'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd',
-  '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
-  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 't', 'r', 'a',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-  '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6',
-  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
-  '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r',
-  'a', 'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_',
-  'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-  '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2',
-  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
-  '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'i', '1', '6', '_',
-  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'p', '_', '1', 'd', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
-  '1', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v', '2',
-  'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v', '2', 'i', '3',
-  '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v', '2', 'i', '8', '_', 't',
-  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-  '_', 'p', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-  '_', '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1',
-  'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'a',
-  'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd',
-  '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
-  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 't', 'r', 'a',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6',
-  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
-  '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r',
-  'a', 'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_',
-  'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2',
-  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-  's', 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
-  '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'i', '1', '6', '_',
-  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'p', '_', '2', 'd', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
-  '2', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v', '2',
-  'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v', '2', 'i', '3',
-  '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v', '2', 'i', '8', '_', 't',
-  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-  '_', 'p', '_', '2', 'd', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a',
-  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-  '_', '2', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2',
-  'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'i',
-  '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-  's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'i', '3', '2', '_', 't',
-  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-  '_', 'p', '_', '3', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd',
-  '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'v',
-  '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-  'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '2', 'i',
-  '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-  'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '4', 'i', '1', '6', '_',
-  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-  't', '_', 'p', '_', '3', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r',
-  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-  'p', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'w', 'a', 'p', '_', 'l', 'o', '_',
-  'h', 'i', '_', 'b', '6', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't',
-  'r', 'u', 'n', 'c', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't',
-  'r', 'u', 'n', 'c', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't',
-  'r', 'u', 'n', 'c', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 't', 'x', 'q', '_', 'a', 'r', 'r', 'a', 'y', '_', 's', 'i',
-  'z', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'c',
-  'h', 'a', 'n', 'n', 'e', 'l', '_', 'd', 'a', 't', 'a', '_', 't', 'y', 'p',
-  'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'c', 'h',
-  'a', 'n', 'n', 'e', 'l', '_', 'o', 'r', 'd', 'e', 'r', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'd', 'e', 'p', 't', 'h', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'h', 'e', 'i', 'g', 'h',
-  't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'n', 'u',
-  'm', '_', 'm', 'i', 'p', 'm', 'a', 'p', '_', 'l', 'e', 'v', 'e', 'l', 's',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'n', 'u', 'm',
-  '_', 's', 'a', 'm', 'p', 'l', 'e', 's', '\000', '_', '_', 'n', 'v', 'v', 'm',
-  '_', 't', 'x', 'q', '_', 'w', 'i', 'd', 't', 'h', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'm', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'z', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'm', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'p', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'z', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'm', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'n', '\000', '_', '_',
-  'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'p', '\000', '_',
-  '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'z', '\000',
-  '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'f', '_', 'r', 'm',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'f', '_', 'r',
-  'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'f', '_',
-  'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'f',
-  '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o', 't', 'e',
-  '_', 'a', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o', 't',
-  'e', '_', 'a', 'l', 'l', '_', 's', 'y', 'n', 'c', '\000', '_', '_', 'n', 'v',
-  'v', 'm', '_', 'v', 'o', 't', 'e', '_', 'a', 'n', 'y', '\000', '_', '_', 'n',
-  'v', 'v', 'm', '_', 'v', 'o', 't', 'e', '_', 'a', 'n', 'y', '_', 's', 'y',
-  'n', 'c', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o', 't', 'e', '_',
-  'b', 'a', 'l', 'l', 'o', 't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v',
-  'o', 't', 'e', '_', 'b', 'a', 'l', 'l', 'o', 't', '_', 's', 'y', 'n', 'c',
-  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o', 't', 'e', '_', 'u', 'n',
-  'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'v', 'o', 't', 'e', '_', 'u',
-  'n', 'i', '_', 's', 'y', 'n', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p',
-  't', 'o', '_', 'v', 'c', 'i', 'p', 'h', 'e', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c',
-  'r', 'y', 'p', 't', 'o', '_', 'v', 'c', 'i', 'p', 'h', 'e', 'r', 'l', 'a',
-  's', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-  't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'n',
-  'c', 'i', 'p', 'h', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't',
-  'o', '_', 'v', 'n', 'c', 'i', 'p', 'h', 'e', 'r', 'l', 'a', 's', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'p', 'e', 'r', 'm',
-  'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v',
-  'p', 'm', 's', 'u', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't',
-  'o', '_', 'v', 'p', 'm', 's', 'u', 'm', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r',
-  'y', 'p', 't', 'o', '_', 'v', 'p', 'm', 's', 'u', 'm', 'h', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-  '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'p', 'm', 's', 'u', 'm', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 's', 'b', 'o',
-  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 's', 'h',
-  'a', 's', 'i', 'g', 'm', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p',
-  't', 'o', '_', 'v', 's', 'h', 'a', 's', 'i', 'g', 'm', 'a', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'd', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'd', 's', 's', 'a', 'l', 'l',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'd', 's', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'd', 's', 't', 's',
-  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'd', 's', 't', 's', 't', 't', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'd', 's', 't', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'm', 'f', 'v', 's', 'c', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'm', 't', 'v', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a',
-  'b', 's', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'b', 's', 'd', 'u',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'a', 'b', 's', 'd', 'u', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-  '_', 'v', 'a', 'd', 'd', 'c', 'u', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd',
-  'd', 'c', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'e', 'c', 'u',
-  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'e', 'u', 'q', 'm', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 'a', 'd', 'd', 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a',
-  'd', 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 's', 'w',
-  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-  '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd',
-  'd', 'u', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v', 'g', 's', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'a', 'v', 'g', 's', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a',
-  'v', 'g', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v', 'g', 'u', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'a', 'v', 'g', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a',
-  'v', 'g', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'b', 'p', 'e', 'r', 'm', 'q',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 'c', 'f', 's', 'x', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-  'f', 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'l', 'z', 'l', 's', 'b', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'b', 'f', 'p', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'c', 'm', 'p', 'b', 'f', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-  'm', 'p', 'e', 'q', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e',
-  'q', 'f', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q',
-  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'b', '_',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'd', '_', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-  '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-  'm', 'p', 'e', 'q', 'u', 'h', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
-  'p', 'e', 'q', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q',
-  'u', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 'e', 'f',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 'e', 'f', 'p', '_', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'f', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-  '_', 'v', 'c', 'm', 'p', 'g', 't', 'f', 'p', '_', 'p', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'c', 'm', 'p', 'g', 't', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
-  'p', 'g', 't', 's', 'b', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p',
-  'g', 't', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's',
-  'd', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'h', '_', 'p', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'c', 'm', 'p', 'g', 't', 's', 'w', '_', 'p', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-  'c', 'm', 'p', 'g', 't', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p',
-  'g', 't', 'u', 'b', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g',
-  't', 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'd',
-  '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'h', '_', 'p', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-  'c', 'm', 'p', 'g', 't', 'u', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-  'm', 'p', 'n', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e',
-  'b', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'h', '_', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-  '_', 'v', 'c', 'm', 'p', 'n', 'e', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
-  'p', 'n', 'e', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n',
-  'e', 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'b',
-  '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'h', '_', 'p', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-  'c', 'm', 'p', 'n', 'e', 'z', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-  't', 's', 'x', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 't', 'u', 'x', 's', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'c', 't', 'z', 'l', 's', 'b', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'e', 'x', 'p', 't', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'g', 'b',
-  'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-  't', 'i', 'v', 'e', 'c', '_', 'v', 'l', 'o', 'g', 'e', 'f', 'p', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 'm', 'a', 'd', 'd', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
-  'a', 'x', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 's', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'm', 'a', 'x', 's', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
-  'a', 'x', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 's', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'm', 'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
-  'a', 'x', 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'm', 'a', 'x', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
-  'h', 'a', 'd', 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'h', 'r',
-  'a', 'd', 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'f',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'm', 'i', 'n', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'm', 'i', 'n', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'u',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'm', 'i', 'n', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'l', 'a', 'd',
-  'd', 'u', 'h', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 'm', 'b',
-  'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 's', 'h', 'm', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 'm', 's', 'u', 'm', 's', 'h', 's', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-  'm', 's', 'u', 'm', 'u', 'b', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u',
-  'm', 'u', 'h', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 'u', 'h',
-  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 's', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-  '_', 'v', 'm', 'u', 'l', 'e', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u',
-  'l', 'e', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 'u', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 'u', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'm', 'u', 'l', 'e', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l',
-  'o', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 's', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 's', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-  'm', 'u', 'l', 'o', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o',
-  'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-  't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 'u', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 'n', 'm', 's', 'u', 'b', 'f', 'p', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-  'p', 'e', 'r', 'm', '_', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k',
-  'p', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-  't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'd', 's', 's', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 'p', 'k', 's', 'd', 'u', 's', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p',
-  'k', 's', 'h', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'h', 'u',
-  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'w', 's', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-  '_', 'v', 'p', 'k', 's', 'w', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k',
-  'u', 'd', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 'u', 'h', 'u', 's',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 'p', 'k', 'u', 'w', 'u', 's', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'p', 'r', 't', 'y', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'r', 't',
-  'y', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'r', 't', 'y', 'b', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'r', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f',
-  'i', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-  't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f', 'i', 'n', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'r', 'f', 'i', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f', 'i', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 'r', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 'r', 'l', 'd', 'm', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-  'r', 'l', 'd', 'n', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 'r', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'w', 'm',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'w', 'n', 'm', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 'r', 's', 'q', 'r', 't', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's',
-  'e', 'l', '_', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 's', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 's', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', 'v',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 's', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 's', 'r', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's',
-  'r', 'a', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'a', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-  '_', 'v', 's', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 's', 'r', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'v', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 's', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b',
-  'c', 'u', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'c', 'u', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 's', 'u', 'b', 'e', 'c', 'u', 'q', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 's', 'u', 'b', 'e', 'u', 'q', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u',
-  'b', 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 's', 'h', 's',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 's', 'w', 's', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 's', 'u', 'b', 'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b',
-  'u', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'u', 'w', 's', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-  'e', 'c', '_', 'v', 's', 'u', 'm', '2', 's', 'w', 's', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-  'v', 's', 'u', 'm', '4', 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u',
-  'm', '4', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'm', '4', 'u',
-  'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-  't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'm', 's', 'w', 's', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-  'c', '_', 'v', 'u', 'p', 'k', 'h', 'p', 'x', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u',
-  'p', 'k', 'h', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'h', 's',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-  'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'h', 's', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-  '_', 'v', 'u', 'p', 'k', 'l', 'p', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p',
-  'k', 'l', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'l', 's', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-  'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'l', 's', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'e', 'r', 'm', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v', 'd', 'e', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v', 'd', 'e',
-  'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v',
-  'w', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i',
-  'v', 'w', 'e', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'g', 'e', 't', '_', 't', 'e', 'x', 'a', 's', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'g', 'e', 't', '_', 't', 'e', 'x', 'a', 's',
-  'r', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g', 'e',
-  't', '_', 't', 'f', 'h', 'a', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'g', 'e', 't', '_', 't', 'f', 'i', 'a', 'r', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f',
-  'a', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-  'p', 'x', '_', 'q', 'v', 'f', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'a', 'd', 'd',
-  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-  '_', 'q', 'v', 'f', 'c', 'f', 'i', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'f', 'i', 'd',
-  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-  '_', 'q', 'v', 'f', 'c', 'f', 'i', 'd', 'u', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'f', 'i',
-  'd', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-  'p', 'x', '_', 'q', 'v', 'f', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c',
-  'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'm', 'p', 'l', 't', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f',
-  'c', 'p', 's', 'g', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f',
-  'c', 't', 'i', 'd', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'd', 'u', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-  'v', 'f', 'c', 't', 'i', 'd', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-  'v', 'f', 'c', 't', 'i', 'w', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'w', 'u',
-  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-  '_', 'q', 'v', 'f', 'c', 't', 'i', 'w', 'z', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'l', 'o', 'g',
-  'i', 'c', 'a', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm',
-  'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 's', 'u', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm',
-  's', 'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 'u', 'l', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 'u',
-  'l', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-  'x', '_', 'q', 'v', 'f', 'n', 'a', 'b', 's', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'e', 'g',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-  'q', 'v', 'f', 'n', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'm', 'a', 'd',
-  'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-  'x', '_', 'q', 'v', 'f', 'n', 'm', 's', 'u', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'm',
-  's', 'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'q', 'p', 'x', '_', 'q', 'v', 'f', 'p', 'e', 'r', 'm', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r',
-  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-  '_', 'q', 'v', 'f', 'r', 'e', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'i', 'm', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
-  'f', 'r', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'i', 'p', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'i',
-  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-  '_', 'q', 'v', 'f', 'r', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 's', 'q', 'r', 't',
-  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-  '_', 'q', 'v', 'f', 'r', 's', 'q', 'r', 't', 'e', 's', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 's',
-  'e', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-  'x', '_', 'q', 'v', 'f', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 's', 'u', 'b', 's',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-  'q', 'v', 'f', 't', 's', 't', 'n', 'a', 'n', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'm', 'a',
-  'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-  'x', '_', 'q', 'v', 'f', 'x', 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x',
-  'm', 'u', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-  'p', 'x', '_', 'q', 'v', 'f', 'x', 'm', 'u', 'l', 's', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x',
-  'x', 'c', 'p', 'n', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'c', 'p',
-  'n', 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'm', 'a', 'd', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-  'q', 'v', 'f', 'x', 'x', 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x',
-  'n', 'p', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'n', 'p', 'm', 'a',
-  'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-  'p', 'x', '_', 'q', 'v', 'g', 'p', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'c', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-  'q', 'v', 'l', 'f', 'c', 'd', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'c', 's', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
-  'l', 'f', 'c', 's', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'd',
-  'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-  '_', 'q', 'v', 'l', 'f', 'i', 'w', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'i', 'w', 'a',
-  'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-  '_', 'q', 'v', 'l', 'f', 'i', 'w', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'i', 'w', 'z',
-  'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-  '_', 'q', 'v', 'l', 'f', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 's', 'a', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l',
-  'p', 'c', 'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'q', 'p', 'x', '_', 'q', 'v', 'l', 'p', 'c', 'l', 's', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'p',
-  'c', 'r', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-  'p', 'x', '_', 'q', 'v', 'l', 'p', 'c', 'r', 's', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f',
-  'c', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-  'x', '_', 'q', 'v', 's', 't', 'f', 'c', 'd', 'a', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f',
-  'c', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-  'x', '_', 'q', 'v', 's', 't', 'f', 'c', 's', 'a', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-  '_', 'q', 'v', 's', 't', 'f', 'd', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'i', 'w',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-  'q', 'v', 's', 't', 'f', 'i', 'w', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 's', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-  'v', 's', 't', 'f', 's', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', 'e', 't', '_', 't', 'e', 'x', 'a', 's', 'r', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 'e', 't', '_', 't', 'e', 'x',
-  'a', 's', 'r', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', 'e', 't', '_', 't', 'f', 'h', 'a', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 's', 'e', 't', '_', 't', 'f', 'i', 'a', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o', 'r',
-  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b',
-  'o', 'r', 't', 'd', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 't', 'a', 'b', 'o', 'r', 't', 'd', 'c', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o', 'r', 't', 'w', 'c', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o', 'r',
-  't', 'w', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  't', 'b', 'e', 'g', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 't', 'c', 'h', 'e', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 't', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 't', 'e', 'n', 'd', 'a', 'l', 'l', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'e', 'c', 'h', 'k', 'p', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'e', 'c',
-  'l', 'a', 'i', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  't', 'r', 'e', 's', 'u', 'm', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 't', 's', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 't', 's', 'u', 's', 'p', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 't', 't', 'e', 's', 't', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 's', 'm', 'a',
-  'x', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
-  's', 'x', '_', 'x', 's', 'm', 'i', 'n', 'd', 'p', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p',
-  'e', 'q', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e', 'q', 'd', 'p', '_', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_',
-  'x', 'v', 'c', 'm', 'p', 'e', 'q', 's', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e',
-  'q', 's', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 'e', 'd', 'p', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-  'v', 'c', 'm', 'p', 'g', 'e', 'd', 'p', '_', 'p', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p',
-  'g', 'e', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 'e', 's', 'p', '_', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_',
-  'x', 'v', 'c', 'm', 'p', 'g', 't', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g',
-  't', 'd', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 't', 's', 'p', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-  'v', 'c', 'm', 'p', 'g', 't', 's', 'p', '_', 'p', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'd',
-  'p', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
-  's', 'x', '_', 'x', 'v', 'c', 'v', 'd', 'p', 's', 'x', 'w', 's', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
-  'c', 'v', 'd', 'p', 'u', 'x', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'h', 'p', 's',
-  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x',
-  '_', 'x', 'v', 'c', 'v', 's', 'p', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 's', 'p',
-  'h', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
-  'x', '_', 'x', 'v', 'c', 'v', 's', 'x', 'd', 's', 'p', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v',
-  's', 'x', 'w', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'u', 'x', 'd', 's', 'p', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-  'v', 'c', 'v', 'u', 'x', 'w', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'd', 'i', 'v', 'd', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_',
-  'x', 'v', 'd', 'i', 'v', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'i', 'e', 'x', 'p', 'd', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_',
-  'x', 'v', 'i', 'e', 'x', 'p', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'm', 'a', 'x', 'd', 'p',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_',
-  'x', 'v', 'm', 'a', 'x', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'm', 'i', 'n', 'd', 'p', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-  'v', 'm', 'i', 'n', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'r', 'e', 'd', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'r',
-  'e', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
-  's', 'x', '_', 'x', 'v', 'r', 's', 'q', 'r', 't', 'e', 'd', 'p', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
-  'r', 's', 'q', 'r', 't', 'e', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 't', 's', 't', 'd', 'c',
-  'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
-  'x', '_', 'x', 'v', 't', 's', 't', 'd', 'c', 's', 'p', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'x', 'e',
-  'x', 'p', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'v', 's', 'x', '_', 'x', 'v', 'x', 'e', 'x', 'p', 's', 'p', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'x',
-  's', 'i', 'g', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'v', 's', 'x', '_', 'x', 'v', 'x', 's', 'i', 'g', 's', 'p', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'x',
-  'e', 'x', 't', 'r', 'a', 'c', 't', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'x', 'i', 'n', 's', 'e',
-  'r', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
-  's', 'x', '_', 'x', 'x', 'l', 'e', 'q', 'v', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'g', 'r', 'o', 'u', 'p',
-  '_', 'b', 'a', 'r', 'r', 'i', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'i', 'm', 'p', 'l', 'i', 'c',
-  'i', 't', 'a', 'r', 'g', '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'a', 't', '_', 's',
-  't', 'o', 'r', 'e', '_', 't', 'y', 'p', 'e', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd',
-  '_', 'g', 'l', 'o', 'b', 'a', 'l', '_', 's', 'i', 'z', 'e', '_', 'x', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_',
-  'r', 'e', 'a', 'd', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_', 's', 'i', 'z',
-  'e', '_', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r',
-  '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'g', 'l', 'o', 'b', 'a', 'l',
-  '_', 's', 'i', 'z', 'e', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g',
-  'r', 'o', 'u', 'p', 's', '_', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g',
-  'r', 'o', 'u', 'p', 's', '_', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g',
-  'r', 'o', 'u', 'p', 's', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 't', 'g',
-  'i', 'd', '_', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 't', 'g', 'i', 'd', '_',
-  'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0',
-  '0', '_', 'r', 'e', 'a', 'd', '_', 't', 'g', 'i', 'd', '_', 'z', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'e',
-  'f', 'p', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't',
-  'x', '_', 'n', 'e', 's', 't', 'i', 'n', 'g', '_', 'd', 'e', 'p', 't', 'h',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-  '_', 'l', 'c', 'b', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 't', 'x', '_', 'a', 's', 's', 'i', 's', 't', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 's', 'f', 'p', 'c',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-  '_', 'v', 'a', 'c', 'c', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'c', 'q', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'a', 'c', 'c', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'g', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'c',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'a', 'c', 'c', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'q', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a',
-  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'a', 'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'f', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'a', 'v', 'g', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g',
-  'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-  '9', '0', '_', 'v', 'a', 'v', 'g', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'l',
-  'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'a', 'v', 'g', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'b', 'p', 'e', 'r', 'm',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-  '_', 'v', 'c', 'k', 's', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'i', 'm', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'e', 'r', 'i', 'm', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'i', 'm', 'g', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e',
-  'r', 'i', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r',
-  'l', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-  '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'g', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'l',
-  'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-  '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'v', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'l',
-  'l', 'v', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-  '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'v', 'g', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r',
-  'l', 'l', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'f', 'a', 'e', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a', 'e',
-  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'f', 'a', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a', 'e', 'z', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 'f', 'a', 'e', 'z', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a', 'e', 'z', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'f', 'e', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'f', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'f', 'e', 'e', 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'z', 'f',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-  '_', 'v', 'f', 'e', 'e', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 'f', 'e', 'n', 'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'f', 'e', 'n', 'e', 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'z', 'f', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 'f', 'e', 'n', 'e', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'a', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 'g', 'f', 'm', 'a', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'a', 'g', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'g', 'f', 'm', 'a', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f',
-  'm', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-  '9', '0', '_', 'v', 'g', 'f', 'm', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'h', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 'i', 's', 't', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'i', 's', 't', 'r', 'f', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'i', 's', 't', 'r', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 's', '3', '9', '0', '_', 'v', 'l', 'b', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'l', 'l', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 'l', 'r', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'm', 'a', 'e', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'e',
-  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'm', 'a', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'h', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'm', 'a', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'm', 'a', 'h', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l',
-  'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-  '9', '0', '_', 'v', 'm', 'a', 'l', 'e', 'f', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'e',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'm', 'a', 'l', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'h', 'f',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-  '_', 'v', 'm', 'a', 'l', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'o', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 'm', 'a', 'l', 'o', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'o', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'm', 'a', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'm', 'a', 'o', 'f', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'o',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'm', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'e', 'f', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'e',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'm', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'h', 'f', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'h',
-  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'm', 'l', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'e', 'f', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'm', 'l', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'm', 'l', 'h', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'h',
-  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'm', 'l', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'o', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'm', 'l', 'o', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'm', 'l', 'o', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'o', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-  '_', 'v', 'm', 'o', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 's', '3', '9', '0', '_', 'v', 'm', 'o', 'h', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 's', 'l',
-  'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'p', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'e', 'r', 'm', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p',
-  'k', 'l', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'p', 'k', 'l', 's', 'g', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'k',
-  'l', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-  '3', '9', '0', '_', 'v', 'p', 'k', 's', 'f', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'k', 's', 'g',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-  '_', 'v', 'p', 'k', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'b', 'c', 'b', 'i', 'q', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 's', 'b', 'i', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 's', '3', '9', '0', '_', 'v', 's', 'c', 'b', 'i', 'b', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's',
-  'c', 'b', 'i', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 's', 'c', 'b', 'i', 'g', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'c',
-  'b', 'i', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-  '3', '9', '0', '_', 'v', 's', 'c', 'b', 'i', 'q', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'l', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 's', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 's', 'l', 'd', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'q', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 's', 'r', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 's', 'r', 'a', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'r', 'l',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-  '_', 'v', 's', 'r', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'l', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't',
-  'r', 'c', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-  '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'f', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'r',
-  'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-  '9', '0', '_', 'v', 's', 't', 'r', 'c', 'z', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'r',
-  'c', 'z', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-  '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'z', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't',
-  'r', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-  '9', '0', '_', 'v', 's', 'u', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm', 'g', 'f',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-  '_', 'v', 's', 'u', 'm', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm', 'h', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  's', 'u', 'm', 'q', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm', 'q', 'g', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 't',
-  'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'u', 'p', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'h', 'f', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'u', 'p', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l',
-  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-  '0', '_', 'v', 'u', 'p', 'l', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'h', 'f',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-  '_', 'v', 'u', 'p', 'l', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'h', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-  'v', 'u', 'p', 'l', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'l', 'f', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-  'u', 'p', 'l', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g', 'u', 's', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'f', '2', 'i', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'f', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'a', 'd',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'f', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'c', 'm', 'p',
-  'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'f', 'c', 'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'm', 'a',
-  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'f', 'm', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'm', 'u', 'l', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'f', 'r', 'c', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'f', 'r', 'c', 'p', 'i', 't', '1', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'f', 'r', 'c', 'p', 'i', 't', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'r', 's', 'q', 'i', 't',
-  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'f', 'r', 's', 'q', 'r', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 's', 'u', 'b',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'f', 's', 'u', 'b', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'i', '2', 'f', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'm', 'u', 'l', 'h', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', '2', 'i', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f',
-  'n', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'f', 'p', 'n', 'a', 'c', 'c', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'i',
-  '2', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', '_', 'u', '3',
-  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', '_', 'u', '6', '4', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', 'x', '_', 'u', '3', '2', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a',
-  'd', 'd', 'c', 'a', 'r', 'r', 'y', 'x', '_', 'u', '6', '4', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e',
-  's', 'd', 'e', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'd', 'e', 'c', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'a', 'e', 's', 'd', 'e', 'c', '5', '1', '2', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e',
-  's', 'd', 'e', 'c', 'l', 'a', 's', 't', '1', '2', '8', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's',
-  'd', 'e', 'c', 'l', 'a', 's', 't', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'd',
-  'e', 'c', 'l', 'a', 's', 't', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'e', 'n',
-  'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'a', 'e', 's', 'e', 'n', 'c', '2', '5', '6', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'a', 'e', 's', 'e', 'n', 'c', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'e', 'n',
-  'c', 'l', 'a', 's', 't', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'e', 'n', 'c',
-  'l', 'a', 's', 't', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'e', 'n', 'c', 'l',
-  'a', 's', 't', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'i', 'm', 'c', '1', '2',
-  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'a', 'e', 's', 'k', 'e', 'y', 'g', 'e', 'n', 'a', 's', 's', 'i',
-  's', 't', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5', '6', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'b', 'l', 'e', 'n', 'd', 'v', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'l', 'e',
-  'n', 'd', 'v', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2',
-  'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'd', 'q', '2', '5', '6', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'c', 'v', 't', 'd', 'q', '2', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-  't', 'p', 'd', '2', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p',
-  's', '2', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'p', 'p', 's', '2', '5', '6',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'h', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 'a', 'd', 'd',
-  'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'h', 's', 'u', 'b', 'p', 'd', '2', '5', '6',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'h', 's', 'u', 'b', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'd', 'd', 'q',
-  'u', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'p', 'd',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'p', 'd', '2', '5', '6', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'p', 's', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k',
-  'l', 'o', 'a', 'd', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's',
-  't', 'o', 'r', 'e', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r',
-  'e', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r',
-  'e', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'p', 's',
-  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'm', 'a', 'x', 'p', 'd', '2', '5', '6', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a',
-  'x', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 'd', '2', '5', '6',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'm', 'i', 'n', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's',
-  'k', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's', 'k', 'p', 's',
-  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'c', '2', '5', '6', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  't', 'e', 's', 't', 'n', 'z', 'c', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
-  't', 'z', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', 'p', 's', '2', '5', '6', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'r', 'o', 'u', 'n', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n',
-  'd', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', 'p', 's', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 's', 'q', 'r', 't', 'p', 'd', '2', '5', '6', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q',
-  'r', 't', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l',
-  'v', 'a', 'r', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', 'v', 'a',
-  'r', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', 'v',
-  'a', 'r', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r',
-  'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'c', 'p', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 't', 'e', 's', 't', 'c', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e',
-  's', 't', 'c', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'c', 'p', 's', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 't', 'e', 's', 't', 'n', 'z', 'c', 'p', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  't', 'e', 's', 't', 'n', 'z', 'c', 'p', 'd', '2', '5', '6', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't',
-  'e', 's', 't', 'n', 'z', 'c', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'n',
-  'z', 'c', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'z', 'p',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 't', 'e', 's', 't', 'z', 'p', 'd', '2', '5', '6', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  't', 'e', 's', 't', 'z', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'z', 'p',
-  's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'z', 'e', 'r', 'o', 'a', 'l', 'l', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'z', 'e', 'r', 'o', 'u', 'p', 'p', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
-  'r', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'd', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'p', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-  'a', 't', 'h', 'e', 'r', 'd', '_', 'p', 'd', '2', '5', '6', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a',
-  't', 'h', 'e', 'r', 'd', '_', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-  'd', '_', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd',
-  '_', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'q', '2', '5', '6',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h',
-  'e', 'r', 'q', '_', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-  'q', '_', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'p', 'd',
-  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'p', 's', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'p', 's', '2', '5', '6', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-  'a', 't', 'h', 'e', 'r', 'q', '_', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-  'q', '_', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'd', '2', '5', '6', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l',
-  'o', 'a', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o',
-  'r', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'd', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'q', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
-  'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'q', '2', '5', '6', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'p',
-  's', 'a', 'd', 'b', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's',
-  'd', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'w', 'b', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'd', 'w', '2', '5', '6', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'a', 'c', 'k', 'u', 's', 'w', 'b', '2', '5', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd',
-  'd', 's', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'w', '2', '5',
-  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'b', '2', '5', '6', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-  'd', 'd', 'u', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'l', 'e', 'n', 'd',
-  'v', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 's', 'i',
-  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 's', 'f', '2', '5',
-  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'h', 'a', 'd', 'd', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a',
-  'd', 'd', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'w', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'd', '2', '5', '6', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h',
-  's', 'u', 'b', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'w',
-  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w', '2', '5',
-  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '2', '5', '6', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'o', 'v', 'm', 's', 'k', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'd',
-  'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '2', '5',
-  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'm', 'u', 'l', 'h', 'w', '2', '5', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u',
-  'l', 'h', 'u', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q',
-  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 's', 'a', 'd', 'b', 'w', '2', '5', '6', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'h', 'u', 'f', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'b',
-  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'd', '2', '5', '6', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'i', 'g', 'n', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 's', 'l', 'l', 'q', '2', '5', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
-  'l', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', 'i', '2', '5', '6',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 's', 'l', 'l', 'q', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
-  'w', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '4', 's', 'i', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'l', 'l', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '2',
-  'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 's', 'l', 'l', 'v', '4', 'd', 'i', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-  'a', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', '2', '5', '6', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'r', 'a', 'd', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w',
-  'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '4', 's', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'r', 'a', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'd', '2', '5',
-  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 's', 'r', 'l', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l',
-  'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'd', 'i', '2', '5', '6', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'r', 'l', 'q', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'w',
-  'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '4', 's', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'r', 'l', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '2', 'd',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 's', 'r', 'l', 'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-  's', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w', '2', '5', '6',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '2', '5', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
-  'b', 'u', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
-  's', 't', 'm', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
-  's', 't', 'm', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
-  's', 't', 'm', 'b', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
-  's', 't', 'm', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
-  's', 't', 'm', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
-  's', 't', 'm', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 'i', '2', 's',
-  'd', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'v', 't', 's', 'i', '2', 's', 's', '3', '2', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'c', 'v', 't', 's', 'i', '2', 's', 's', '6', '4', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't',
-  't', 's', 'd', '2', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's',
-  'd', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 'd', '2',
-  'u', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 'd', '2', 'u',
-  's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 's', 'i',
-  '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 's', 'i', '6', '4',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 'u', 's', 'i', '3', '2', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'c', 'v', 't', 't', 's', 's', '2', 'u', 's', 'i', '6', '4', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 'u', 's', 'i', '2', 's', 'd', '3', '2', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u',
-  's', 'i', '2', 's', 's', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 's', 'i', '2',
-  's', 'd', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 's', 'i', '2', 's', 's', '6',
-  '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'e', 'x', 'p', '2', 'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e',
-  'x', 'p', '2', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h',
-  'e', 'r', 's', 'i', 'v', '8', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-  's', 'i', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 's',
-  'i', 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 's', 'i', 'v',
-  '1', '6', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', 'i', 'v', '8',
-  'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', 'i', 'v', '1', '6', 's',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', 'i', 'v', '8', 'd', 'i', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'g', 'a', 't', 'h', 'e', 'r', 'd', 'i', 'v', '1', '6', 's', 'f', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-  'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '2', 'd', 'f', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a',
-  't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '2', 'd', 'i', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't',
-  'h', 'e', 'r', '3', 'd', 'i', 'v', '4', 'd', 'f', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h',
-  'e', 'r', '3', 'd', 'i', 'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
-  'r', '3', 'd', 'i', 'v', '4', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-  '3', 'd', 'i', 'v', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3',
-  'd', 'i', 'v', '8', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd',
-  'i', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i',
-  'v', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v',
-  '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '4',
-  'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '4', 'd',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '4', 's', 'f',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '4', 's', 'i', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '8', 's', 'f', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-  'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '8', 's', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a',
-  't', 'h', 'e', 'r', 'p', 'f', 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
-  'r', 'p', 'f', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'p', 'f',
-  'q', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'p', 'f', 'q', 'p', 's',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'a', 'd', 'd', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'a', 'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a',
-  'd', 'd', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'a', 'd', 'd', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'c', 'm', 'p', 's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'm', 'p', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-  'e', 's', 's', 'q', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'o', 'm', 'p', 'r', 'e', 's', 's', 'q', 'i', '2', '5', '6', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'q', 'i', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-  's', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p',
-  'r', 'e', 's', 's', 's', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 'i', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'f', '1',
-  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's',
-  's', 'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm',
-  'p', 'r', 'e', 's', 's', 'd', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 'f', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 'f',
-  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e',
-  's', 's', 's', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-  'm', 'p', 'r', 'e', 's', 's', 'd', 'i', '1', '2', '8', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'i', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'd',
-  'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-  'e', 's', 's', 's', 't', 'o', 'r', 'e', 'q', 'i', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o',
-  'r', 'e', 'q', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-  'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'q', 'i', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-  's', 't', 'o', 'r', 'e', 's', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 's',
-  'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-  'e', 's', 's', 's', 't', 'o', 'r', 'e', 's', 'i', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o',
-  'r', 'e', 'd', 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-  'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd', 'f', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-  's', 't', 'o', 'r', 'e', 'd', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 's',
-  'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-  'e', 's', 's', 's', 't', 'o', 'r', 'e', 's', 'f', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o',
-  'r', 'e', 's', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-  'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd', 'i', '1', '2',
-  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-  's', 't', 'o', 'r', 'e', 'd', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd',
-  'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-  'e', 's', 's', 's', 't', 'o', 'r', 'e', 'h', 'i', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o',
-  'r', 'e', 'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-  'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'h', 'i', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-  'h', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p',
-  'r', 'e', 's', 's', 'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'h', 'i', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 's',
-  'i', '_', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o',
-  'n', 'f', 'l', 'i', 'c', 't', 's', 'i', '_', '2', '5', '6', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 's', 'i',
-  '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n',
-  'f', 'l', 'i', 'c', 't', 'd', 'i', '_', '1', '2', '8', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 'd', 'i', '_',
-  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f',
-  'l', 'i', 'c', 't', 'd', 'i', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'v', 't', 'd', 'q', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'p', 's',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'p', 's', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'q',
-  'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd',
-  '2', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-  'p', 'd', '2', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 'p', 'd', '2', 'u', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'd', 'q', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'd', 'q', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u',
-  'q', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p',
-  'd', '2', 'u', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 'p', 'd', '2', 'u', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'c', 'v', 't', 'p', 's', '2', 'd', 'q', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'd', 'q', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'd', 'q', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'p',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's',
-  '2', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-  'p', 's', '2', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 'p', 's', '2', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'd', 'q', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'd', 'q', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'd',
-  'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's',
-  '2', 'u', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-  't', 'p', 's', '2', 'u', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'q', 'q', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 'd', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 'd', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2', 'p',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q',
-  '2', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-  'q', 'q', '2', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 'q', 'q', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'v', 't', 's', 'd', '2', 's', 's', '_', 'r', 'o', 'u', 'n', 'd',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 's', '2', 's', 'd', '_',
-  'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-  'p', 'd', '2', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 't', 'p', 'd', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'q', 'q', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'q', 'q', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2',
-  'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-  'p', 'd', '2', 'u', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'd', 'q', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'd', 'q', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2',
-  'u', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-  't', 'p', 'd', '2', 'u', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'q', 'q', '5', '1', '2', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'd', 'q', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2',
-  'q', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-  'p', 's', '2', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 't', 'p', 's', '2', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u', 'd', 'q', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u', 'd',
-  'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p',
-  's', '2', 'u', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 't', 'p', 's', '2', 'u', 'q', 'q', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u', 'q', 'q', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u',
-  'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u',
-  'd', 'q', '2', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 'u', 'd', 'q', '2', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'c', 'v', 't', 'u', 'd', 'q', '2', 'p', 's', '5', '1', '2', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2', 'p', 'd', '1',
-  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2',
-  'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u',
-  'q', 'q', '2', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 'u', 'q', 'q', '2', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2', 'p', 's', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2', 'p', 's', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'b', 'p', 's', 'a', 'd', 'b',
-  'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'b', 'p', 's', 'a',
-  'd', 'b', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'b', 'p',
-  's', 'a', 'd', 'b', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd',
-  'i', 'v', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'i',
-  'v', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'i', 'v',
-  's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd',
-  'i', 'v', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'e', 'x', 'p', 'a', 'n', 'd', 'q', 'i', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'q', 'i', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'q', 'i', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'i',
-  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd',
-  's', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a',
-  'n', 'd', 's', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-  'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'q', 'i', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'q',
-  'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
-  'd', 'l', 'o', 'a', 'd', 'q', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's', 'i', '1', '2',
-  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o',
-  'a', 'd', 's', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-  'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's', 'i', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd',
-  'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
-  'd', 'l', 'o', 'a', 'd', 'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd', 'f', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o',
-  'a', 'd', 's', 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-  'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's', 'f', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's',
-  'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
-  'd', 'l', 'o', 'a', 'd', 'd', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd', 'i', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o',
-  'a', 'd', 'd', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-  'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'h', 'i', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'h',
-  'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
-  'd', 'l', 'o', 'a', 'd', 'h', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'e', 'x', 'p', 'a', 'n', 'd', 'd', 'f', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'd', 'f', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'd', 'f', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'f',
-  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd',
-  's', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a',
-  'n', 'd', 's', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-  'p', 'a', 'n', 'd', 'd', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'e', 'x', 'p', 'a', 'n', 'd', 'd', 'i', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'd', 'i', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'h', 'i', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'h', 'i', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'h',
-  'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p',
-  'i', 'm', 'm', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f',
-  'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '2', '5', '6', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm',
-  'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u',
-  'p', 'i', 'm', 'm', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 's', 'd', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 's', 's',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's', 's', 'p', 'd',
-  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's',
-  's', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c',
-  'l', 'a', 's', 's', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'f', 'p', 'c', 'l', 'a', 's', 's', 'p', 's', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's', 's', 'p', 's', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's', 's', 'p', 's',
-  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's',
-  's', 's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's',
-  's', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p',
-  'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e',
-  'x', 'p', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e',
-  't', 'e', 'x', 'p', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'g', 'e', 't', 'e', 'x', 'p', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 's', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 's', '5', '1', '2',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 's', 'd', '1',
-  '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-  'e', 't', 'e', 'x', 'p', 's', 's', '1', '2', '8', '_', 'r', 'o', 'u', 'n',
-  'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p',
-  'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a',
-  'n', 't', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e',
-  't', 'm', 'a', 'n', 't', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p', 's', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p', 's', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p',
-  's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a',
-  'n', 't', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 's', 's', '_', 'r', 'o', 'u', 'n',
-  'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p', 'd', '5', '1', '2',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p', 's', '5', '1', '2', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'm', 'a', 'x', 's', 'd', '_', 'r', 'o', 'u', 'n',
-  'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 's', 's', '_', 'r', 'o',
-  'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 'd', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 's', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 'd', '_', 'r', 'o',
-  'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 's', '_',
-  'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l', 'p',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l', 'p', 's',
-  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l', 's', 'd', '_',
-  'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l', 's',
-  's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-  'd', 'd', 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-  'd', 'd', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-  'd', 'd', 'u', 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'a', 'd', 'd', 'u', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'e', 'r', 'm', 'v', 'a', 'r', 'd', 'f', '2', '5', '6', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'd', 'f', '5', '1', '2',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'd', 'i',
-  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a',
-  'r', 'd', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r',
-  'm', 'v', 'a', 'r', 'h', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'e', 'r', 'm', 'v', 'a', 'r', 'h', 'i', '2', '5', '6', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'h', 'i', '5', '1', '2',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'q', 'i',
-  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a',
-  'r', 'q', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r',
-  'm', 'v', 'a', 'r', 'q', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'e', 'r', 'm', 'v', 'a', 'r', 's', 'f', '5', '1', '2', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 's', 'i', '5', '1', '2',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w',
-  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'w',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd',
-  'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd',
-  'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd',
-  'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd',
-  'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'o', 'v', 'd', 'b', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'o', 'v', 'd', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'w', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'w', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'w', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'w', '1', '2', '8', 'm', 'e',
-  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'w', '2', '5',
-  '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd',
-  'w', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'o', 'v', 'q', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'o', 'v', 'q', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'o', 'v', 'q', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'o', 'v', 'q', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'o', 'v', 'q', 'b', '2', '5', '6', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '5', '1', '2', 'm', 'e',
-  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'd', '1', '2',
-  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'd', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'd', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'd', '1', '2',
-  '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q',
-  'd', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'o', 'v', 'q', 'd', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'o', 'v', 'q', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'o', 'v', 'q', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'o', 'v', 'q', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'o', 'v', 'q', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '2', '5', '6', 'm', 'e',
-  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '5', '1',
-  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'w',
-  'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'w',
-  'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'w',
-  'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'w',
-  'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'o', 'v', 'w', 'b', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'o', 'v', 'w', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'b', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'b', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'b', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'b', '1',
-  '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-  's', 'd', 'b', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'm', 'o', 'v', 's', 'd', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'w', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'w', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'w', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'w', '1',
-  '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-  's', 'd', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'm', 'o', 'v', 's', 'd', 'w', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'b', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'b', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'b', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'b', '1',
-  '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-  's', 'q', 'b', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'm', 'o', 'v', 's', 'q', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'd', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'd', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'd', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'd', '1',
-  '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-  's', 'q', 'd', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'm', 'o', 'v', 's', 'q', 'd', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'w', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'w', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'w', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'w', '1',
-  '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-  's', 'q', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'm', 'o', 'v', 's', 'q', 'w', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'w', 'b', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'w', 'b', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'w', 'b', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'w', 'b', '1',
-  '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-  's', 'w', 'b', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'm', 'o', 'v', 's', 'w', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'b', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'b', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd',
-  'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u',
-  's', 'd', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'm', 'o', 'v', 'u', 's', 'd', 'b', '2', '5', '6', 'm', 'e', 'm', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'b', '5', '1',
-  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u',
-  's', 'd', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-  'v', 'u', 's', 'd', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'm', 'o', 'v', 'u', 's', 'd', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '1', '2', '8', 'm', 'e', 'm',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '2',
-  '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-  'u', 's', 'd', 'w', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'b', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'b', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'b', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'b',
-  '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-  'v', 'u', 's', 'q', 'b', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'b', '5', '1', '2', 'm', 'e',
-  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd',
-  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's',
-  'q', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-  'u', 's', 'q', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'o', 'v', 'u', 's', 'q', 'd', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '2', '5', '6', 'm',
-  'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q',
-  'd', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'o', 'v', 'u', 's', 'q', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '1', '2', '8',
-  'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's',
-  'q', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'm', 'o', 'v', 'u', 's', 'q', 'w', '5', '1', '2', 'm', 'e', 'm', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'w', 'b', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'w', 'b', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'w',
-  'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u',
-  's', 'w', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'm', 'o', 'v', 'u', 's', 'w', 'b', '2', '5', '6', 'm', 'e', 'm', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'w', 'b', '5', '1',
-  '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'u', 'l',
-  't', 'i', 's', 'h', 'i', 'f', 't', 'q', 'b', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'm', 'u', 'l', 't', 'i', 's', 'h', 'i', 'f', 't',
-  'q', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'u',
-  'l', 't', 'i', 's', 'h', 'i', 'f', 't', 'q', 'b', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'd', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'r', 'o', 'l', 'd', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'r', 'o', 'l', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'r', 'o', 'l', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'r', 'o', 'l', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'r', 'o', 'l', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r',
-  'o', 'l', 'v', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r',
-  'o', 'l', 'v', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r',
-  'o', 'l', 'v', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r',
-  'o', 'l', 'v', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r',
-  'o', 'l', 'v', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r',
-  'o', 'l', 'v', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r',
-  'o', 'r', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o',
-  'r', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'q',
-  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'q', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'q', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'v', 'd', '1', '2',
-  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'v', 'd', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'v', 'd', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'v', 'q', '1', '2',
-  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'v', 'q', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r', 'v', 'q', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'b', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'w',
-  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l',
-  'o', 'g', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e',
-  'r', 'n', 'l', 'o', 'g', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd', '5', '1', '2', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q',
-  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l',
-  'o', 'g', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n',
-  'g', 'e', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a',
-  'n', 'g', 'e', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-  'a', 'n', 'g', 'e', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'r', 'a', 'n', 'g', 'e', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'r', 'a', 'n', 'g', 'e', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'r', 'a', 'n', 'g', 'e', 'p', 's', '5', '1', '2', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 's', 'd', '1', '2', '8', '_', 'r',
-  'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e',
-  's', 's', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 'd', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 'd', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 'd', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p',
-  's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c',
-  'e', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd',
-  'u', 'c', 'e', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-  'e', 'd', 'u', 'c', 'e', 's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e',
-  'd', 'u', 'c', 'e', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd',
-  's', 'c', 'a', 'l', 'e', 'p', 'd', '_', '1', '2', '8', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p', 'd', '_', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e',
-  'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l',
-  'e', 'p', 's', '_', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n',
-  'd', 's', 'c', 'a', 'l', 'e', 'p', 's', '_', '2', '5', '6', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p', 's', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 's', 'd', '_',
-  'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's',
-  'c', 'a', 'l', 'e', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 'd', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 'd', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 'd',
-  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f',
-  'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l',
-  'e', 'f', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-  'a', 'l', 'e', 'f', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  's', 'c', 'a', 'l', 'e', 'f', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 's', 's', '_', 'r',
-  'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't', 'p',
-  'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't', 'p',
-  'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't', 'p',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't', 'p',
-  's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't', 'p',
-  's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't', 'p',
-  's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't', 's',
-  'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q',
-  'r', 't', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 's', 't', 'o', 'r', 'e', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
-  'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'u',
-  'b', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'u', 'b',
-  's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
-  'u', 'b', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's', '2', 'p',
-  'h', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's', '2', 'p',
-  'h', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p',
-  's', '2', 'p', 'h', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-  'm', 'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p',
-  's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd',
-  'd', 's', 'd', '3', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd',
-  'd', 's', 's', '3', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd',
-  'd', 's', 'u', 'b', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd',
-  'd', 's', 'u', 'b', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p',
-  's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a',
-  'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-  'n', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 'd', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 's', '1', '2',
-  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p',
-  's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a',
-  'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-  'n', 'm', 's', 'u', 'b', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p',
-  's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's',
-  'u', 'b', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-  'n', 'm', 's', 'u', 'b', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 'd', 'p', 'b', 'u', 's', 'd', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'd', 'p', 'b', 'u', 's', 'd', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b', 'u', 's', 'd', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b', 'u', 's', 'd',
-  's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b',
-  'u', 's', 'd', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'd', 'p', 'b', 'u', 's', 'd', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 'd', 'p', 'w', 's', 's', 'd', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'd', 'p', 'w', 's', 's', 'd', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'w', 's', 's', 'd', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'w', 's', 's', 'd',
-  's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'w',
-  's', 's', 'd', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'd', 'p', 'w', 's', 's', 'd', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'd', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a',
-  'r', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-  'm', 'i', '2', 'v', 'a', 'r', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'h', 'i', '1', '2',
-  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v',
-  'a', 'r', 'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'h', 'i', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'p',
-  'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-  'i', '2', 'v', 'a', 'r', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'p', 'd', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v',
-  'a', 'r', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'p', 's', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'p',
-  's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-  'i', '2', 'v', 'a', 'r', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r',
-  'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-  'i', '2', 'v', 'a', 'r', 'q', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', 'i', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v',
-  'a', 'r', 'q', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'd', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'd', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2',
-  'v', 'a', 'r', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'h', 'i', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'h',
-  'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-  't', '2', 'v', 'a', 'r', 'h', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 'd', '1', '2',
-  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v',
-  'a', 'r', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 'd', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p',
-  's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-  't', '2', 'v', 'a', 'r', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 's', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v',
-  'a', 'r', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-  'r', 'm', 't', '2', 'v', 'a', 'r', 'q', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v',
-  'a', 'r', 'q', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', 'i', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q',
-  'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd',
-  'd', '5', '2', 'h', 'u', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u',
-  'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd',
-  'd', '5', '2', 'l', 'u', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u',
-  'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l',
-  'd', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h',
-  'l', 'd', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
-  'h', 'l', 'd', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  's', 'h', 'l', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'p', 's', 'h', 'l', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 's', 'h', 'l', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 's', 'h', 'l', 'd', 'w', '1', '2', '8', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'w', '2', '5', '6', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'w', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'd', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'd', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l',
-  'd', 'v', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
-  'h', 'l', 'd', 'v', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'p', 's', 'h', 'l', 'd', 'v', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'w', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'w', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'w', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'd', '1',
-  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'd',
-  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r',
-  'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h',
-  'r', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
-  'h', 'r', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  's', 'h', 'r', 'd', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'p', 's', 'h', 'r', 'd', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 's', 'h', 'r', 'd', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'd', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'd', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'd', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'q',
-  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd',
-  'v', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h',
-  'r', 'd', 'v', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  's', 'h', 'r', 'd', 'v', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 's', 'h', 'r', 'd', 'v', 'w', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'w', '5', '1', '2', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 's', 'h', 'u', 'f', 'b', 'i', 't', 'q', 'm',
-  'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'u',
-  'f', 'b', 'i', 't', 'q', 'm', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 's', 'h', 'u', 'f', 'b', 'i', 't', 'q', 'm', 'b', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd',
-  '1', '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd',
-  'd', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-  'm', 'a', 'd', 'd', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's',
-  '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd',
-  'd', 's', 'd', '3', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a',
-  'd', 'd', 's', 's', '3', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-  'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-  'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd',
-  's', 'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b',
-  'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-  'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's',
-  'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 'd', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 'd', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b',
-  'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-  's', 'u', 'b', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'f', 'm', 's', 'u', 'b', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 's', '5', '1', '2', '_',
-  'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 's', 'd', '3',
-  '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 's', 's',
-  '3', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'a',
-  'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's',
-  'u', 'b', 'a', 'd', 'd', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-  '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 's', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'a',
-  'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-  'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p',
-  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm',
-  's', 'u', 'b', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '2', '5', '6', '_', 'm', 'a',
-  's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '5', '1',
-  '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b',
-  's', 'd', '3', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's',
-  'u', 'b', 's', 's', '3', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x',
-  'u', 'p', 'i', 'm', 'm', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm',
-  'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x',
-  'u', 'p', 'i', 'm', 'm', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's', '2', '5', '6',
-  '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm',
-  'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x',
-  'u', 'p', 'i', 'm', 'm', 's', 'd', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f',
-  'i', 'x', 'u', 'p', 'i', 'm', 'm', 's', 's', '_', 'm', 'a', 's', 'k', 'z',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l',
-  'o', 'g', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't',
-  'e', 'r', 'n', 'l', 'o', 'g', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q',
-  '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd',
-  'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-  'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '5', '1', '2', '_', 'm', 'a',
-  's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's',
-  '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd',
-  'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-  'm', 'a', 'd', 'd', 's', 'd', '3', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'f', 'm', 'a', 'd', 'd', 's', 's', '3', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b',
-  'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-  'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '1',
-  '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd',
-  's', 'u', 'b', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '5', '1', '2', '_',
-  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b', 'u', 's', 'd', '1',
-  '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b', 'u',
-  's', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd',
-  'p', 'b', 'u', 's', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'd', 'p', 'b', 'u', 's', 'd', 's', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b', 'u', 's', 'd', 's', '2', '5',
-  '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'b', 'u', 's',
-  'd', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd',
-  'p', 'w', 's', 's', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'd', 'p', 'w', 's', 's', 'd', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'd', 'p', 'w', 's', 's', 'd', '5', '1', '2', '_',
-  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'w', 's', 's', 'd', 's',
-  '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'd', 'p', 'w',
-  's', 's', 'd', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'p', 'd', 'p', 'w', 's', 's', 'd', 's', '5', '1', '2', '_', 'm', 'a', 's',
-  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'd', '1',
-  '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't',
-  '2', 'v', 'a', 'r', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'd', '5', '1', '2', '_',
-  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a',
-  'r', 'h', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'h', 'i', '2', '5', '6', '_', 'm',
-  'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r',
-  'h', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-  'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 'd', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p',
-  'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-  'm', 't', '2', 'v', 'a', 'r', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 's',
-  '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-  't', '2', 'v', 'a', 'r', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 's', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't',
-  '2', 'v', 'a', 'r', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a',
-  'r', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-  'r', 'm', 't', '2', 'v', 'a', 'r', 'q', 'i', '1', '2', '8', '_', 'm', 'a',
-  's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q',
-  'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-  'm', 't', '2', 'v', 'a', 'r', 'q', 'i', '5', '1', '2', '_', 'm', 'a', 's',
-  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '1',
-  '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd',
-  '5', '2', 'h', 'u', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '5', '1', '2', '_',
-  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l',
-  'u', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-  'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd',
-  'v', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
-  'h', 'l', 'd', 'v', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 's', 'h', 'l', 'd', 'v', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'q', '1', '2', '8', '_',
-  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'q', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd',
-  'v', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
-  'h', 'l', 'd', 'v', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 's', 'h', 'l', 'd', 'v', 'w', '2', '5', '6', '_', 'm', 'a', 's',
-  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', 'v', 'w', '5', '1', '2', '_',
-  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'd', '1',
-  '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd',
-  'v', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
-  'h', 'r', 'd', 'v', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 's', 'h', 'r', 'd', 'v', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'q', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd', 'v', 'q', '5',
-  '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'r', 'd',
-  'v', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
-  'h', 'r', 'd', 'v', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 's', 'h', 'r', 'd', 'v', 'w', '5', '1', '2', '_', 'm', 'a', 's',
-  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w', '5', '1', '2', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'a', 'c', 'k', 's', 's', 'w', 'b', '5', '1', '2', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c',
-  'k', 'u', 's', 'd', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's',
-  'w', 'b', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'd', 'q', '5', '1', '2',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '5', '1', '2', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'u', 'l', 'h', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w',
-  '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '5', '1', '2', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'a', 'd', 'b', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'h', 'u', 'f',
-  'b', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', '5', '1', '2', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'l', 'l', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', '5', '1',
-  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 's', 'l', 'l', 'd', 'i', '5', '1', '2', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
-  'l', 'q', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', 'i', '5', '1',
-  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 's', 'l', 'l', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
-  'l', 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '8', 'h', 'i', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'l', 'l', 'v', '1', '6', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v',
-  '3', '2', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', '5', '1', '2', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'r', 'a', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', '2', '5',
-  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 's', 'r', 'a', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a',
-  'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', 'i', '5', '1', '2', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'r', 'a', 'q', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q',
-  'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', 'i', '5', '1', '2', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'r', 'a', 'w', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v',
-  '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', 'q', '1', '2', '8', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'r', 'a', 'v', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v',
-  '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '8', 'h', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-  'r', 'a', 'v', '1', '6', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '3', '2',
-  'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 's', 'r', 'l', 'd', '5', '1', '2', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-  'l', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'w', '5', '1', '2', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'r', 'l', 'd', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q',
-  'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'w', 'i', '5', '1', '2', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'r', 'l', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v',
-  '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '8', 'h', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-  'r', 'l', 'v', '1', '6', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '3', '2',
-  'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'r', 'c', 'p', '1', '4', 'p', 'd', '1', '2', '8', '_', 'm',
-  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 'p', 'd', '2', '5', '6', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 'p', 'd', '5', '1', '2',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 'p', 's', '1', '2',
-  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 'p', 's', '2',
-  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 'p', 's',
-  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 's',
-  'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 's', 's', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8', 'p', 'd', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'r', 'c', 'p', '2', '8', 'p', 's', '_', 'm', 'a', 's', 'k',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'r', 'c', 'p', '2', '8', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_',
-  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8', 's', 's', '_', 'r', 'o',
-  'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1',
-  '4', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q',
-  'r', 't', '1', '4', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'r', 's', 'q', 'r', 't', '1', '4', 'p', 'd', '5', '1', '2', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 'p', 's', '1', '2', '8',
-  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 'p', 's',
-  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1',
-  '4', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q',
-  'r', 't', '1', '4', 's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q',
-  'r', 't', '1', '4', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q',
-  'r', 't', '2', '8', 'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q',
-  'r', 't', '2', '8', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q',
-  'r', 't', '2', '8', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'r', 's', 'q', 'r', 't', '2', '8', 's', 's', '_', 'r', 'o',
-  'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e',
-  'r', 's', 'i', 'v', '8', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r',
-  's', 'i', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r',
-  's', 'i', 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's',
-  'i', 'v', '1', '6', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd',
-  'i', 'v', '8', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i',
-  'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i',
-  'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v',
-  '1', '6', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v',
-  '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '2',
-  'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '4', 'd',
-  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '4', 'd', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '4', 's', 'f', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '4', 's', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
-  'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '8', 's', 'f', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-  'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '8', 's', 'i', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a',
-  't', 't', 'e', 'r', 'p', 'f', 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't',
-  'e', 'r', 'p', 'f', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r',
-  'p', 'f', 'q', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'p', 'f',
-  'q', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '2',
-  'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '2', 'd',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '4', 'd', 'f',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '4', 'd', 'i', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '4', 's', 'f', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
-  'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '4', 's', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-  'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 's', 'f', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a',
-  't', 't', 'e', 'r', 's', 'i', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'o', 'm',
-  'i', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'c', 'o', 'm', 'i', 's', 's', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v',
-  't', 's', 'd', '2', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 'd',
-  '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 'd', '2', 'u', 's',
-  'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 'd', '2', 'u', 's', 'i', '6',
-  '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'c', 'v', 't', 's', 's', '2', 's', 'i', '3', '2', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'c', 'v', 't', 's', 's', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't',
-  's', 's', '2', 'u', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 's',
-  '2', 'u', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', 'v',
-  'a', 'r', 'p', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l',
-  'v', 'a', 'r', 'p', 's', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x', 't', 'r', '_',
-  'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'b', 'e', 'x', 't', 'r', '_', 'u', '6', '4', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b',
-  'z', 'h', 'i', '_', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'b', 'z', 'h', 'i', '_', 'd', 'i', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'd', 'e', 'p', '_', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'd', 'e', 'p', '_', 'd', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'e', 'x', 't', '_', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'x', 't', '_', 'd',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'c', 'l', 'f', 'l', 'u', 's', 'h', 'o', 'p', 't', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'l',
-  'r', 's', 's', 'b', 's', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'l', 'w', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'l', 'z',
-  'e', 'r', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'r', 'e', 'a', 'd', 'e', 'f', 'l', 'a', 'g', 's', '_',
-  'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'r', 'e', 'a', 'd', 'e', 'f', 'l', 'a', 'g', 's', '_',
-  'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'w', 'r', 'i', 't', 'e', 'e', 'f', 'l', 'a', 'g', 's',
-  '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'w', 'r', 'i', 't', 'e', 'e', 'f', 'l', 'a', 'g',
-  's', '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-  'a', 'd', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '2',
-  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'd', '3', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-  'm', 'a', 'd', 'd', 's', 's', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's',
-  'u', 'b', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p',
-  'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p',
-  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5',
-  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a',
-  'd', 'd', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'f', 'x', 'r', 's', 't', 'o', 'r', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'x',
-  'r', 's', 't', 'o', 'r', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'x', 's', 'a', 'v', 'e', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'f', 'x', 's', 'a', 'v', 'e', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 'c', 's', 's', 'p',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'i', 'n', 'c', 's', 's', 'p', 'q', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'l', 'w', 'p', 'c',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'l', 'w', 'p', 'i', 'n', 's', '3', '2', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'w', 'p', 'i',
-  'n', 's', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'l', 'w', 'p', 'v', 'a', 'l', '3', '2', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l',
-  'w', 'p', 'v', 'a', 'l', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'm', 'm', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'e',
-  'm', 'm', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'm', 'a', 's', 'k', 'm', 'o', 'v', 'q', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o',
-  'v', 'n', 't', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'a', 'c', 'k', 's', 's', 'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'w',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'a', 'd', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'a', 'd', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-  's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'u',
-  's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'l', 'i',
-  'g', 'n', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'n', 'd', 'n', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'a', 'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm',
-  'p', 'e', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 'q', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c',
-  'm', 'p', 'e', 'q', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'g', 't', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'c', 'm', 'p', 'g', 't', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'g', 't', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'e', 'c', '_', 'e', 'x', 't', '_', 'v', '4', 'h', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'e',
-  'c', '_', 's', 'e', 't', '_', 'v', '4', 'h', 'i', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd',
-  'd', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'm', 'a', 'x', 's', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'x',
-  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'm', 'i', 'n', 's', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'i', 'n', 'u',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'm', 'o', 'v', 'm', 's', 'k', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l',
-  'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l',
-  'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'o', 'r', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'a', 'd', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-  'l', 'l', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 's', 'r', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-  'r', 'a', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', 'i', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-  'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 's', 'r', 'l', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'r', 'l', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'r', 'l', 'w', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'b', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
-  'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 's', 'u', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'u', 'b', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'u', 'b', 'u', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'u', 'n', 'p', 'c', 'k', 'h', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u', 'n', 'p', 'c',
-  'k', 'h', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'h', 'w', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'u', 'n', 'p', 'c', 'k', 'l', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u', 'n', 'p', 'c',
-  'k', 'l', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'l', 'w', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'm', 'o', 'n', 'i', 't', 'o', 'r', 'x', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
-  'w', 'a', 'i', 't', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'l', 'm', 'u', 'l', 'q', 'd', 'q',
-  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'c', 'l', 'm', 'u', 'l', 'q', 'd', 'q', '2', '5',
-  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'c', 'l', 'm', 'u', 'l', 'q', 'd', 'q', '5', '1', '2', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'r', 'd', 'f', 's', 'b', 'a', 's', 'e', '3', '2', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'f', 's',
-  'b', 'a', 's', 'e', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'g', 's', 'b', 'a', 's', 'e',
-  '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'r', 'd', 'g', 's', 'b', 'a', 's', 'e', '6', '4', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-  'd', 'p', 'i', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'r', 'd', 'p', 'k', 'r', 'u', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'p',
-  'm', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'r', 'd', 's', 's', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 's', 's', 'p',
-  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'r', 'd', 't', 's', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 't', 's', 'c', 'p', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'r', 's', 't', 'o', 'r', 's', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'a', 'v', 'e', 'p', 'r',
-  'e', 'v', 's', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 's', 'e', 't', 's', 's', 'b', 's', 'y', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  's', 'h', 'a', '1', 'm', 's', 'g', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '1', 'm', 's',
-  'g', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 's', 'h', 'a', '1', 'n', 'e', 'x', 't', 'e', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h',
-  'a', '1', 'r', 'n', 'd', 's', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '2', '5', '6', 'm',
-  's', 'g', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 's', 'h', 'a', '2', '5', '6', 'm', 's', 'g', '2', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  's', 'h', 'a', '2', '5', '6', 'r', 'n', 'd', 's', '2', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'l', 'w',
-  'p', 'c', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'm', 'p', 's', 's', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'e',
-  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'c', 'o', 'm', 'i', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'g', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'o', 'm', 'i', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'l', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'c', 'o', 'm', 'i', 'n', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'p',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'c', 'v', 't', 'p', 'i', '2', 'p', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p',
-  'i', '2', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'p', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 's', 's', '2', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 's', '2', 's',
-  'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'p', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-  'v', 't', 't', 'p', 's', '2', 'p', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 's', 's',
-  '2', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'v', 't', 't', 's', 's', '2', 's', 'i', '6', '4',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'm', 'a', 'x', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 's', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i',
-  'n', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'm', 'i', 'n', 's', 's', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's',
-  'k', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 's', 'h', 'u', 'f', 'w', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', 'p',
-  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'r', 'c', 'p', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', 'p', 's',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'r', 's', 'q', 'r', 't', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'f', 'e', 'n', 'c', 'e',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 's', 'q', 'r', 't', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't', 's', 's', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'u', 'c', 'o', 'm', 'i', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'g', 'e',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'u', 'c', 'o', 'm', 'i', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'l',
-  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'u', 'c', 'o', 'm', 'i', 'l', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i',
-  'n', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'l', 'f', 'l', 'u', 's', 'h', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p',
-  's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd', 'e', 'q', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm',
-  'i', 's', 'd', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd', 'g', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'c', 'o', 'm', 'i', 's', 'd', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd',
-  'l', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd', 'n', 'e', 'q', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-  't', 'd', 'q', '2', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'v', 't', 'p', 'd', '2', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's',
-  '2', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'c', 'v', 't', 's', 'd', '2', 's', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-  't', 's', 'd', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 'd', '2',
-  's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'd', 'q', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-  't', 't', 'p', 's', '2', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 's', 'd', '2',
-  's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'c', 'v', 't', 't', 's', 'd', '2', 's', 'i', '6', '4', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'l', 'f', 'e', 'n', 'c', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'm', 'o', 'v', 'd',
-  'q', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'm', 'a', 'x', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 's', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'm', 'f', 'e', 'n', 'c', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i',
-  'n', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's', 'k', 'p', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-  'c', 'k', 's', 's', 'd', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's',
-  's', 'w', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'w', 'b',
-  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'b', '1', '2', '8', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'a', 'd', 'd', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's',
-  'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'w', '1', '2', '8',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'a', 'u', 's', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '1',
-  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'm', 'o', 'v', 'm', 's', 'k', 'b', '1', '2', '8', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'm', 'u', 'l', 'h', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h',
-  'u', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '1', '2',
-  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 's', 'a', 'd', 'b', 'w', '1', '2', '8', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
-  'l', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', '1', '2', '8', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'l', 'l', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', 'i',
-  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '1', '2', '8', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'l', 'l', 'w', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', '1',
-  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 's', 'r', 'a', 'w', '1', '2', '8', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-  'a', 'd', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', 'i', '1', '2',
-  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 's', 'r', 'l', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l',
-  'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'w', '1', '2', '8', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'r', 'l', 'd', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', 'i',
-  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 's', 'r', 'l', 'w', 'i', '1', '2', '8', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  's', 'u', 'b', 's', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w',
-  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '1', '2', '8', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'u', 'b', 'u', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't',
-  'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 's', 'q', 'r', 't', 's', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i',
-  's', 'd', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd', 'g', 'e', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'u', 'c', 'o', 'm', 'i', 's', 'd', 'g', 't', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i',
-  's', 'd', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd', 'l', 't', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'u', 'c', 'o', 'm', 'i', 's', 'd', 'n', 'e', 'q', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 's',
-  'u', 'b', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h',
-  'a', 'd', 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'h', 'a', 'd', 'd', 'p', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 's',
-  'u', 'b', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'h', 's', 'u', 'b', 'p', 's', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'd', 'd',
-  'q', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'm', 'o', 'n', 'i', 't', 'o', 'r', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'w', 'a', 'i',
-  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'b', 'l', 'e', 'n', 'd', 'v', 'p', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'l', 'e', 'n',
-  'd', 'v', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'd', 'p', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'p', 'p', 's', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'i', 'n', 's', 'e', 'r', 't', 'p', 's', '1', '2', '8', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'p', 's',
-  'a', 'd', 'b', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'd',
-  'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'b', 'l', 'e', 'n', 'd', 'v', 'b', '1', '2',
-  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'h', 'm', 'i', 'n', 'p', 'o', 's', 'u', 'w', '1', '2', '8',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'm', 'u', 'l', 'd', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
-  't', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'z', 'c', '1',
-  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 't', 'e', 's', 't', 'z', '1', '2', '8', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o',
-  'u', 'n', 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n', 'd', 'p', 's', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-  'o', 'u', 'n', 'd', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n', 'd', 's', 's', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'c', 'r', 'c', '3', '2', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'r', 'c', '3', '2', 's', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'c', 'r', 'c', '3', '2', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'r', 'c', '3', '2', 'd',
-  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', '1', '2', '8', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 'a', '1', '2', '8', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 'c', '1', '2', '8', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c',
-  'm', 'p', 'e', 's', 't', 'r', 'i', 'o', '1', '2', '8', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm',
-  'p', 'e', 's', 't', 'r', 'i', 's', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p',
-  'e', 's', 't', 'r', 'i', 'z', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e',
-  's', 't', 'r', 'm', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't',
-  'r', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't', 'r', 'i',
-  'a', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't', 'r', 'i', 'c',
-  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't', 'r', 'i', 'o', '1',
-  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't', 'r', 'i', 's', '1', '2',
-  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't', 'r', 'i', 'z', '1', '2', '8',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'c', 'm', 'p', 'i', 's', 't', 'r', 'm', '1', '2', '8', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e',
-  'x', 't', 'r', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'q', 'i', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's',
-  'e', 'r', 't', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'q', 'i', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-  'a', 'b', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'h', 'a', 'd', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'd',
-  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 's', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a',
-  'd', 'd', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 'h', 'a', 'd', 'd', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 'h', 's', 'u', 'b', 'd', '1', '2', '8', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's',
-  'u', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 's', 'w', '1', '2', '8',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'p', 'h', 's', 'u', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'w', '1',
-  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-  'a', 'd', 'd', 'u', 'b', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l',
-  'h', 'r', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '1', '2',
-  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'p', 's', 'h', 'u', 'f', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'h', 'u', 'f', 'b',
-  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'b', '\000', '_', '_', 'b', 'u',
-  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g',
-  'n', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-  'i', 'g', 'n', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'p', 's', 'i', 'g', 'n', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'u', 'b', 'b', 'o',
-  'r', 'r', 'o', 'w', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'u', 'b', 'b', 'o', 'r',
-  'r', 'o', 'w', '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x', 't', 'r', 'i', '_',
-  'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'b', 'e', 'x', 't', 'r', 'i', '_', 'u', '6', '4', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p',
-  'h', '2', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's', '2',
-  'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's', '2', 'p', 'h', '2', '5', '6',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'g', 'f', '2', 'p', '8', 'a', 'f', 'f', 'i', 'n', 'e', 'i', 'n',
-  'v', 'q', 'b', '_', 'v', '1', '6', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'g', 'f', '2', 'p',
-  '8', 'a', 'f', 'f', 'i', 'n', 'e', 'i', 'n', 'v', 'q', 'b', '_', 'v', '3',
-  '2', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'g', 'f', '2', 'p', '8', 'a', 'f', 'f', 'i', 'n',
-  'e', 'i', 'n', 'v', 'q', 'b', '_', 'v', '6', '4', 'q', 'i', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'g',
-  'f', '2', 'p', '8', 'a', 'f', 'f', 'i', 'n', 'e', 'q', 'b', '_', 'v', '1',
-  '6', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'g', 'f', '2', 'p', '8', 'a', 'f', 'f', 'i', 'n',
-  'e', 'q', 'b', '_', 'v', '3', '2', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'g', 'f', '2', 'p',
-  '8', 'a', 'f', 'f', 'i', 'n', 'e', 'q', 'b', '_', 'v', '6', '4', 'q', 'i',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'g', 'f', '2', 'p', '8', 'm', 'u', 'l', 'b', '_', 'v', '1', '6',
-  'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'g', 'f', '2', 'p', '8', 'm', 'u', 'l', 'b', '_', 'v',
-  '3', '2', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-  'i', 'a', '3', '2', '_', 'v', 'g', 'f', '2', 'p', '8', 'm', 'u', 'l', 'b',
-  '_', 'v', '6', '4', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'f', 's', 'b', 'a', 's', 'e',
-  '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'w', 'r', 'f', 's', 'b', 'a', 's', 'e', '6', '4', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w',
-  'r', 'g', 's', 'b', 'a', 's', 'e', '3', '2', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'g', 's', 'b',
-  'a', 's', 'e', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'p', 'k', 'r', 'u', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r',
-  's', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'w', 'r', 's', 's', 'q', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'u', 's', 's',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'w', 'r', 'u', 's', 's', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'x', 'a', 'b', 'o', 'r', 't',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'x', 'b', 'e', 'g', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'x', 'e', 'n', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-  'r', 'c', 'z', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 'p', 'd', '2', '5',
-  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'f', 'r', 'c', 'z', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z',
-  'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 's', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'f', 'r', 'c', 'z', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'b', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'p', 'c', 'o', 'm', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'q', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'c', 'o', 'm', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'u', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'p', 'c', 'o', 'm', 'u', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'u', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'c', 'o', 'm', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', '2',
-  'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', '2', 'p', 'd', '2', '5',
-  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', '2', 'p', 's', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'e', 'r', 'm', 'i', 'l', '2', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h',
-  'a', 'd', 'd', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'b', 'q', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'h', 'a', 'd', 'd', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd',
-  'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u', 'b', 'd', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'h', 'a', 'd', 'd', 'u', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u',
-  'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u', 'd', 'q', '\000', '_', '_',
-  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-  'h', 'a', 'd', 'd', 'u', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u',
-  'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'w', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h',
-  'a', 'd', 'd', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 's', 'u', 'b', 'b', 'w', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 'h', 's', 'u', 'b', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 's', 'u', 'b',
-  'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'd', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-  'a', 'c', 's', 'd', 'q', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'd', 'q',
-  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's', 'd', 'd', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-  'a', 'c', 's', 's', 'd', 'q', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's',
-  'd', 'q', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-  'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's', 'w', 'd', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'p', 'm', 'a', 'c', 's', 's', 'w', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's',
-  'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'w', 'w', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-  'a', 'd', 'c', 's', 's', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'c', 's',
-  'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-  '3', '2', '_', 'v', 'p', 'p', 'e', 'r', 'm', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 'r', 'o', 't', 'b', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't',
-  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 'r', 'o', 't', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't',
-  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 'r', 'o', 't', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't',
-  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 'r', 'o', 't', 'w', 'i', '\000', '_', '_', 'b', 'u', 'i',
-  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'a',
-  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-  '2', '_', 'v', 'p', 's', 'h', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'a', 'q',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-  '_', 'v', 'p', 's', 'h', 'a', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'b', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-  'v', 'p', 's', 'h', 'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'q', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-  'p', 's', 'h', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-  '_', 'i', 'a', '3', '2', '_', 'x', 't', 'e', 's', 't', '\000', '_', '_', 'b',
-  'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'i', 't', 'r', 'e', 'v', '\000', '_',
-  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g', 'e', 't', 'i', 'd', '\000',
-  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g', 'e', 't', 'p', 's',
-  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 'e', 't', 'p',
-  's', '\000',
-  };
-
-  struct BuiltinEntry {
-    Intrinsic::ID IntrinID;
-    unsigned StrTabOffset;
-    const char *getName() const {
-      return &BuiltinNames[StrTabOffset];
-    }
-    bool operator<(StringRef RHS) const {
-      return strncmp(getName(), RHS.data(), RHS.size()) < 0;
-    }
-  };
-  StringRef TargetPrefix(TargetPrefixStr);
-
-  /* Target Independent Builtins */ {
-    static const BuiltinEntry Names[] = {
-      {Intrinsic::adjust_trampoline, 0}, // __builtin_adjust_trampoline
-      {Intrinsic::debugtrap, 28}, // __builtin_debugtrap
-      {Intrinsic::flt_rounds, 70}, // __builtin_flt_rounds
-      {Intrinsic::init_trampoline, 91}, // __builtin_init_trampoline
-      {Intrinsic::objectsize, 117}, // __builtin_object_size
-      {Intrinsic::stackrestore, 139}, // __builtin_stack_restore
-      {Intrinsic::stacksave, 163}, // __builtin_stack_save
-      {Intrinsic::thread_pointer, 184}, // __builtin_thread_pointer
-      {Intrinsic::trap, 209}, // __builtin_trap
-      {Intrinsic::eh_unwind_init, 48}, // __builtin_unwind_init
-    };
-    auto I = std::lower_bound(std::begin(Names),
-                              std::end(Names),
-                              BuiltinNameStr);
-    if (I != std::end(Names) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "aarch64") {
-    static const BuiltinEntry aarch64Names[] = {
-      {Intrinsic::aarch64_dmb, 224}, // __builtin_arm_dmb
-      {Intrinsic::aarch64_dsb, 242}, // __builtin_arm_dsb
-      {Intrinsic::aarch64_isb, 260}, // __builtin_arm_isb
-    };
-    auto I = std::lower_bound(std::begin(aarch64Names),
-                              std::end(aarch64Names),
-                              BuiltinNameStr);
-    if (I != std::end(aarch64Names) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "amdgcn") {
-    static const BuiltinEntry amdgcnNames[] = {
-      {Intrinsic::amdgcn_buffer_wbinvl1, 278}, // __builtin_amdgcn_buffer_wbinvl1
-      {Intrinsic::amdgcn_buffer_wbinvl1_sc, 310}, // __builtin_amdgcn_buffer_wbinvl1_sc
-      {Intrinsic::amdgcn_buffer_wbinvl1_vol, 345}, // __builtin_amdgcn_buffer_wbinvl1_vol
-      {Intrinsic::amdgcn_cubeid, 381}, // __builtin_amdgcn_cubeid
-      {Intrinsic::amdgcn_cubema, 405}, // __builtin_amdgcn_cubema
-      {Intrinsic::amdgcn_cubesc, 429}, // __builtin_amdgcn_cubesc
-      {Intrinsic::amdgcn_cubetc, 453}, // __builtin_amdgcn_cubetc
-      {Intrinsic::amdgcn_cvt_pk_u8_f32, 477}, // __builtin_amdgcn_cvt_pk_u8_f32
-      {Intrinsic::amdgcn_dispatch_id, 508}, // __builtin_amdgcn_dispatch_id
-      {Intrinsic::amdgcn_dispatch_ptr, 537}, // __builtin_amdgcn_dispatch_ptr
-      {Intrinsic::amdgcn_ds_bpermute, 567}, // __builtin_amdgcn_ds_bpermute
-      {Intrinsic::amdgcn_ds_fadd, 596}, // __builtin_amdgcn_ds_fadd
-      {Intrinsic::amdgcn_ds_fmax, 621}, // __builtin_amdgcn_ds_fmax
-      {Intrinsic::amdgcn_ds_fmin, 646}, // __builtin_amdgcn_ds_fmin
-      {Intrinsic::amdgcn_ds_permute, 671}, // __builtin_amdgcn_ds_permute
-      {Intrinsic::amdgcn_ds_swizzle, 699}, // __builtin_amdgcn_ds_swizzle
-      {Intrinsic::amdgcn_fmed3, 727}, // __builtin_amdgcn_fmed3
-      {Intrinsic::amdgcn_fmul_legacy, 750}, // __builtin_amdgcn_fmul_legacy
-      {Intrinsic::amdgcn_groupstaticsize, 779}, // __builtin_amdgcn_groupstaticsize
-      {Intrinsic::amdgcn_implicit_buffer_ptr, 812}, // __builtin_amdgcn_implicit_buffer_ptr
-      {Intrinsic::amdgcn_implicitarg_ptr, 849}, // __builtin_amdgcn_implicitarg_ptr
-      {Intrinsic::amdgcn_interp_mov, 882}, // __builtin_amdgcn_interp_mov
-      {Intrinsic::amdgcn_interp_p1, 910}, // __builtin_amdgcn_interp_p1
-      {Intrinsic::amdgcn_interp_p2, 937}, // __builtin_amdgcn_interp_p2
-      {Intrinsic::amdgcn_kernarg_segment_ptr, 964}, // __builtin_amdgcn_kernarg_segment_ptr
-      {Intrinsic::amdgcn_lerp, 1001}, // __builtin_amdgcn_lerp
-      {Intrinsic::amdgcn_mbcnt_hi, 1023}, // __builtin_amdgcn_mbcnt_hi
-      {Intrinsic::amdgcn_mbcnt_lo, 1049}, // __builtin_amdgcn_mbcnt_lo
-      {Intrinsic::amdgcn_mqsad_pk_u16_u8, 1075}, // __builtin_amdgcn_mqsad_pk_u16_u8
-      {Intrinsic::amdgcn_mqsad_u32_u8, 1108}, // __builtin_amdgcn_mqsad_u32_u8
-      {Intrinsic::amdgcn_msad_u8, 1138}, // __builtin_amdgcn_msad_u8
-      {Intrinsic::amdgcn_qsad_pk_u16_u8, 1163}, // __builtin_amdgcn_qsad_pk_u16_u8
-      {Intrinsic::amdgcn_queue_ptr, 1195}, // __builtin_amdgcn_queue_ptr
-      {Intrinsic::amdgcn_rcp_legacy, 1222}, // __builtin_amdgcn_rcp_legacy
-      {Intrinsic::amdgcn_readfirstlane, 1250}, // __builtin_amdgcn_readfirstlane
-      {Intrinsic::amdgcn_readlane, 1281}, // __builtin_amdgcn_readlane
-      {Intrinsic::amdgcn_rsq_legacy, 1307}, // __builtin_amdgcn_rsq_legacy
-      {Intrinsic::amdgcn_s_barrier, 1335}, // __builtin_amdgcn_s_barrier
-      {Intrinsic::amdgcn_s_dcache_inv, 1362}, // __builtin_amdgcn_s_dcache_inv
-      {Intrinsic::amdgcn_s_dcache_inv_vol, 1392}, // __builtin_amdgcn_s_dcache_inv_vol
-      {Intrinsic::amdgcn_s_dcache_wb, 1426}, // __builtin_amdgcn_s_dcache_wb
-      {Intrinsic::amdgcn_s_dcache_wb_vol, 1455}, // __builtin_amdgcn_s_dcache_wb_vol
-      {Intrinsic::amdgcn_s_decperflevel, 1488}, // __builtin_amdgcn_s_decperflevel
-      {Intrinsic::amdgcn_s_getpc, 1520}, // __builtin_amdgcn_s_getpc
-      {Intrinsic::amdgcn_s_getreg, 1545}, // __builtin_amdgcn_s_getreg
-      {Intrinsic::amdgcn_s_incperflevel, 1571}, // __builtin_amdgcn_s_incperflevel
-      {Intrinsic::amdgcn_s_memrealtime, 1603}, // __builtin_amdgcn_s_memrealtime
-      {Intrinsic::amdgcn_s_memtime, 1634}, // __builtin_amdgcn_s_memtime
-      {Intrinsic::amdgcn_s_sendmsg, 1661}, // __builtin_amdgcn_s_sendmsg
-      {Intrinsic::amdgcn_s_sendmsghalt, 1688}, // __builtin_amdgcn_s_sendmsghalt
-      {Intrinsic::amdgcn_s_sleep, 1719}, // __builtin_amdgcn_s_sleep
-      {Intrinsic::amdgcn_s_waitcnt, 1744}, // __builtin_amdgcn_s_waitcnt
-      {Intrinsic::amdgcn_sad_hi_u8, 1771}, // __builtin_amdgcn_sad_hi_u8
-      {Intrinsic::amdgcn_sad_u16, 1798}, // __builtin_amdgcn_sad_u16
-      {Intrinsic::amdgcn_sad_u8, 1823}, // __builtin_amdgcn_sad_u8
-      {Intrinsic::amdgcn_wave_barrier, 1847}, // __builtin_amdgcn_wave_barrier
-      {Intrinsic::amdgcn_workgroup_id_x, 1877}, // __builtin_amdgcn_workgroup_id_x
-      {Intrinsic::amdgcn_workgroup_id_y, 1909}, // __builtin_amdgcn_workgroup_id_y
-      {Intrinsic::amdgcn_workgroup_id_z, 1941}, // __builtin_amdgcn_workgroup_id_z
-      {Intrinsic::amdgcn_writelane, 1973}, // __builtin_amdgcn_writelane
-    };
-    auto I = std::lower_bound(std::begin(amdgcnNames),
-                              std::end(amdgcnNames),
-                              BuiltinNameStr);
-    if (I != std::end(amdgcnNames) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "arm") {
-    static const BuiltinEntry armNames[] = {
-      {Intrinsic::arm_cdp, 2000}, // __builtin_arm_cdp
-      {Intrinsic::arm_cdp2, 2018}, // __builtin_arm_cdp2
-      {Intrinsic::arm_dmb, 224}, // __builtin_arm_dmb
-      {Intrinsic::arm_dsb, 242}, // __builtin_arm_dsb
-      {Intrinsic::arm_get_fpscr, 2037}, // __builtin_arm_get_fpscr
-      {Intrinsic::arm_isb, 260}, // __builtin_arm_isb
-      {Intrinsic::arm_ldc, 2061}, // __builtin_arm_ldc
-      {Intrinsic::arm_ldc2, 2079}, // __builtin_arm_ldc2
-      {Intrinsic::arm_ldc2l, 2098}, // __builtin_arm_ldc2l
-      {Intrinsic::arm_ldcl, 2118}, // __builtin_arm_ldcl
-      {Intrinsic::arm_mcr, 2137}, // __builtin_arm_mcr
-      {Intrinsic::arm_mcr2, 2155}, // __builtin_arm_mcr2
-      {Intrinsic::arm_mrc, 2174}, // __builtin_arm_mrc
-      {Intrinsic::arm_mrc2, 2192}, // __builtin_arm_mrc2
-      {Intrinsic::arm_qadd, 2211}, // __builtin_arm_qadd
-      {Intrinsic::arm_qadd16, 2230}, // __builtin_arm_qadd16
-      {Intrinsic::arm_qadd8, 2251}, // __builtin_arm_qadd8
-      {Intrinsic::arm_qasx, 2271}, // __builtin_arm_qasx
-      {Intrinsic::arm_qsax, 2290}, // __builtin_arm_qsax
-      {Intrinsic::arm_qsub, 2309}, // __builtin_arm_qsub
-      {Intrinsic::arm_qsub16, 2328}, // __builtin_arm_qsub16
-      {Intrinsic::arm_qsub8, 2349}, // __builtin_arm_qsub8
-      {Intrinsic::arm_sadd16, 2369}, // __builtin_arm_sadd16
-      {Intrinsic::arm_sadd8, 2390}, // __builtin_arm_sadd8
-      {Intrinsic::arm_sasx, 2410}, // __builtin_arm_sasx
-      {Intrinsic::arm_sel, 2429}, // __builtin_arm_sel
-      {Intrinsic::arm_set_fpscr, 2447}, // __builtin_arm_set_fpscr
-      {Intrinsic::arm_shadd16, 2471}, // __builtin_arm_shadd16
-      {Intrinsic::arm_shadd8, 2493}, // __builtin_arm_shadd8
-      {Intrinsic::arm_shasx, 2514}, // __builtin_arm_shasx
-      {Intrinsic::arm_shsax, 2534}, // __builtin_arm_shsax
-      {Intrinsic::arm_shsub16, 2554}, // __builtin_arm_shsub16
-      {Intrinsic::arm_shsub8, 2576}, // __builtin_arm_shsub8
-      {Intrinsic::arm_smlabb, 2597}, // __builtin_arm_smlabb
-      {Intrinsic::arm_smlabt, 2618}, // __builtin_arm_smlabt
-      {Intrinsic::arm_smlad, 2639}, // __builtin_arm_smlad
-      {Intrinsic::arm_smladx, 2659}, // __builtin_arm_smladx
-      {Intrinsic::arm_smlald, 2680}, // __builtin_arm_smlald
-      {Intrinsic::arm_smlaldx, 2701}, // __builtin_arm_smlaldx
-      {Intrinsic::arm_smlatb, 2723}, // __builtin_arm_smlatb
-      {Intrinsic::arm_smlatt, 2744}, // __builtin_arm_smlatt
-      {Intrinsic::arm_smlawb, 2765}, // __builtin_arm_smlawb
-      {Intrinsic::arm_smlawt, 2786}, // __builtin_arm_smlawt
-      {Intrinsic::arm_smlsd, 2807}, // __builtin_arm_smlsd
-      {Intrinsic::arm_smlsdx, 2827}, // __builtin_arm_smlsdx
-      {Intrinsic::arm_smlsld, 2848}, // __builtin_arm_smlsld
-      {Intrinsic::arm_smlsldx, 2869}, // __builtin_arm_smlsldx
-      {Intrinsic::arm_smuad, 2891}, // __builtin_arm_smuad
-      {Intrinsic::arm_smuadx, 2911}, // __builtin_arm_smuadx
-      {Intrinsic::arm_smulbb, 2932}, // __builtin_arm_smulbb
-      {Intrinsic::arm_smulbt, 2953}, // __builtin_arm_smulbt
-      {Intrinsic::arm_smultb, 2974}, // __builtin_arm_smultb
-      {Intrinsic::arm_smultt, 2995}, // __builtin_arm_smultt
-      {Intrinsic::arm_smulwb, 3016}, // __builtin_arm_smulwb
-      {Intrinsic::arm_smulwt, 3037}, // __builtin_arm_smulwt
-      {Intrinsic::arm_smusd, 3058}, // __builtin_arm_smusd
-      {Intrinsic::arm_smusdx, 3078}, // __builtin_arm_smusdx
-      {Intrinsic::arm_ssat, 3099}, // __builtin_arm_ssat
-      {Intrinsic::arm_ssat16, 3118}, // __builtin_arm_ssat16
-      {Intrinsic::arm_ssax, 3139}, // __builtin_arm_ssax
-      {Intrinsic::arm_ssub16, 3158}, // __builtin_arm_ssub16
-      {Intrinsic::arm_ssub8, 3179}, // __builtin_arm_ssub8
-      {Intrinsic::arm_stc, 3199}, // __builtin_arm_stc
-      {Intrinsic::arm_stc2, 3217}, // __builtin_arm_stc2
-      {Intrinsic::arm_stc2l, 3236}, // __builtin_arm_stc2l
-      {Intrinsic::arm_stcl, 3256}, // __builtin_arm_stcl
-      {Intrinsic::arm_sxtab16, 3275}, // __builtin_arm_sxtab16
-      {Intrinsic::arm_sxtb16, 3297}, // __builtin_arm_sxtb16
-      {Intrinsic::arm_uadd16, 3318}, // __builtin_arm_uadd16
-      {Intrinsic::arm_uadd8, 3339}, // __builtin_arm_uadd8
-      {Intrinsic::arm_uasx, 3359}, // __builtin_arm_uasx
-      {Intrinsic::arm_uhadd16, 3378}, // __builtin_arm_uhadd16
-      {Intrinsic::arm_uhadd8, 3400}, // __builtin_arm_uhadd8
-      {Intrinsic::arm_uhasx, 3421}, // __builtin_arm_uhasx
-      {Intrinsic::arm_uhsax, 3441}, // __builtin_arm_uhsax
-      {Intrinsic::arm_uhsub16, 3461}, // __builtin_arm_uhsub16
-      {Intrinsic::arm_uhsub8, 3483}, // __builtin_arm_uhsub8
-      {Intrinsic::arm_uqadd16, 3504}, // __builtin_arm_uqadd16
-      {Intrinsic::arm_uqadd8, 3526}, // __builtin_arm_uqadd8
-      {Intrinsic::arm_uqasx, 3547}, // __builtin_arm_uqasx
-      {Intrinsic::arm_uqsax, 3567}, // __builtin_arm_uqsax
-      {Intrinsic::arm_uqsub16, 3587}, // __builtin_arm_uqsub16
-      {Intrinsic::arm_uqsub8, 3609}, // __builtin_arm_uqsub8
-      {Intrinsic::arm_usad8, 3630}, // __builtin_arm_usad8
-      {Intrinsic::arm_usada8, 3650}, // __builtin_arm_usada8
-      {Intrinsic::arm_usat, 3671}, // __builtin_arm_usat
-      {Intrinsic::arm_usat16, 3690}, // __builtin_arm_usat16
-      {Intrinsic::arm_usax, 3711}, // __builtin_arm_usax
-      {Intrinsic::arm_usub16, 3730}, // __builtin_arm_usub16
-      {Intrinsic::arm_usub8, 3751}, // __builtin_arm_usub8
-      {Intrinsic::arm_uxtab16, 3771}, // __builtin_arm_uxtab16
-      {Intrinsic::arm_uxtb16, 3793}, // __builtin_arm_uxtb16
-    };
-    auto I = std::lower_bound(std::begin(armNames),
-                              std::end(armNames),
-                              BuiltinNameStr);
-    if (I != std::end(armNames) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "bpf") {
-    static const BuiltinEntry bpfNames[] = {
-      {Intrinsic::bpf_load_byte, 3814}, // __builtin_bpf_load_byte
-      {Intrinsic::bpf_load_half, 3838}, // __builtin_bpf_load_half
-      {Intrinsic::bpf_load_word, 3862}, // __builtin_bpf_load_word
-      {Intrinsic::bpf_pseudo, 3886}, // __builtin_bpf_pseudo
-    };
-    auto I = std::lower_bound(std::begin(bpfNames),
-                              std::end(bpfNames),
-                              BuiltinNameStr);
-    if (I != std::end(bpfNames) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "hexagon") {
-    static const BuiltinEntry hexagonNames[] = {
-      {Intrinsic::hexagon_A2_abs, 3907}, // __builtin_HEXAGON_A2_abs
-      {Intrinsic::hexagon_A2_absp, 3932}, // __builtin_HEXAGON_A2_absp
-      {Intrinsic::hexagon_A2_abssat, 3958}, // __builtin_HEXAGON_A2_abssat
-      {Intrinsic::hexagon_A2_add, 3986}, // __builtin_HEXAGON_A2_add
-      {Intrinsic::hexagon_A2_addh_h16_hh, 4011}, // __builtin_HEXAGON_A2_addh_h16_hh
-      {Intrinsic::hexagon_A2_addh_h16_hl, 4044}, // __builtin_HEXAGON_A2_addh_h16_hl
-      {Intrinsic::hexagon_A2_addh_h16_lh, 4077}, // __builtin_HEXAGON_A2_addh_h16_lh
-      {Intrinsic::hexagon_A2_addh_h16_ll, 4110}, // __builtin_HEXAGON_A2_addh_h16_ll
-      {Intrinsic::hexagon_A2_addh_h16_sat_hh, 4143}, // __builtin_HEXAGON_A2_addh_h16_sat_hh
-      {Intrinsic::hexagon_A2_addh_h16_sat_hl, 4180}, // __builtin_HEXAGON_A2_addh_h16_sat_hl
-      {Intrinsic::hexagon_A2_addh_h16_sat_lh, 4217}, // __builtin_HEXAGON_A2_addh_h16_sat_lh
-      {Intrinsic::hexagon_A2_addh_h16_sat_ll, 4254}, // __builtin_HEXAGON_A2_addh_h16_sat_ll
-      {Intrinsic::hexagon_A2_addh_l16_hl, 4291}, // __builtin_HEXAGON_A2_addh_l16_hl
-      {Intrinsic::hexagon_A2_addh_l16_ll, 4324}, // __builtin_HEXAGON_A2_addh_l16_ll
-      {Intrinsic::hexagon_A2_addh_l16_sat_hl, 4357}, // __builtin_HEXAGON_A2_addh_l16_sat_hl
-      {Intrinsic::hexagon_A2_addh_l16_sat_ll, 4394}, // __builtin_HEXAGON_A2_addh_l16_sat_ll
-      {Intrinsic::hexagon_A2_addi, 4431}, // __builtin_HEXAGON_A2_addi
-      {Intrinsic::hexagon_A2_addp, 4457}, // __builtin_HEXAGON_A2_addp
-      {Intrinsic::hexagon_A2_addpsat, 4483}, // __builtin_HEXAGON_A2_addpsat
-      {Intrinsic::hexagon_A2_addsat, 4512}, // __builtin_HEXAGON_A2_addsat
-      {Intrinsic::hexagon_A2_addsp, 4540}, // __builtin_HEXAGON_A2_addsp
-      {Intrinsic::hexagon_A2_and, 4567}, // __builtin_HEXAGON_A2_and
-      {Intrinsic::hexagon_A2_andir, 4592}, // __builtin_HEXAGON_A2_andir
-      {Intrinsic::hexagon_A2_andp, 4619}, // __builtin_HEXAGON_A2_andp
-      {Intrinsic::hexagon_A2_aslh, 4645}, // __builtin_HEXAGON_A2_aslh
-      {Intrinsic::hexagon_A2_asrh, 4671}, // __builtin_HEXAGON_A2_asrh
-      {Intrinsic::hexagon_A2_combine_hh, 4697}, // __builtin_HEXAGON_A2_combine_hh
-      {Intrinsic::hexagon_A2_combine_hl, 4729}, // __builtin_HEXAGON_A2_combine_hl
-      {Intrinsic::hexagon_A2_combine_lh, 4761}, // __builtin_HEXAGON_A2_combine_lh
-      {Intrinsic::hexagon_A2_combine_ll, 4793}, // __builtin_HEXAGON_A2_combine_ll
-      {Intrinsic::hexagon_A2_combineii, 4825}, // __builtin_HEXAGON_A2_combineii
-      {Intrinsic::hexagon_A2_combinew, 4856}, // __builtin_HEXAGON_A2_combinew
-      {Intrinsic::hexagon_A2_max, 4886}, // __builtin_HEXAGON_A2_max
-      {Intrinsic::hexagon_A2_maxp, 4911}, // __builtin_HEXAGON_A2_maxp
-      {Intrinsic::hexagon_A2_maxu, 4937}, // __builtin_HEXAGON_A2_maxu
-      {Intrinsic::hexagon_A2_maxup, 4963}, // __builtin_HEXAGON_A2_maxup
-      {Intrinsic::hexagon_A2_min, 4990}, // __builtin_HEXAGON_A2_min
-      {Intrinsic::hexagon_A2_minp, 5015}, // __builtin_HEXAGON_A2_minp
-      {Intrinsic::hexagon_A2_minu, 5041}, // __builtin_HEXAGON_A2_minu
-      {Intrinsic::hexagon_A2_minup, 5067}, // __builtin_HEXAGON_A2_minup
-      {Intrinsic::hexagon_A2_neg, 5094}, // __builtin_HEXAGON_A2_neg
-      {Intrinsic::hexagon_A2_negp, 5119}, // __builtin_HEXAGON_A2_negp
-      {Intrinsic::hexagon_A2_negsat, 5145}, // __builtin_HEXAGON_A2_negsat
-      {Intrinsic::hexagon_A2_not, 5173}, // __builtin_HEXAGON_A2_not
-      {Intrinsic::hexagon_A2_notp, 5198}, // __builtin_HEXAGON_A2_notp
-      {Intrinsic::hexagon_A2_or, 5224}, // __builtin_HEXAGON_A2_or
-      {Intrinsic::hexagon_A2_orir, 5248}, // __builtin_HEXAGON_A2_orir
-      {Intrinsic::hexagon_A2_orp, 5274}, // __builtin_HEXAGON_A2_orp
-      {Intrinsic::hexagon_A2_roundsat, 5299}, // __builtin_HEXAGON_A2_roundsat
-      {Intrinsic::hexagon_A2_sat, 5329}, // __builtin_HEXAGON_A2_sat
-      {Intrinsic::hexagon_A2_satb, 5354}, // __builtin_HEXAGON_A2_satb
-      {Intrinsic::hexagon_A2_sath, 5380}, // __builtin_HEXAGON_A2_sath
-      {Intrinsic::hexagon_A2_satub, 5406}, // __builtin_HEXAGON_A2_satub
-      {Intrinsic::hexagon_A2_satuh, 5433}, // __builtin_HEXAGON_A2_satuh
-      {Intrinsic::hexagon_A2_sub, 5460}, // __builtin_HEXAGON_A2_sub
-      {Intrinsic::hexagon_A2_subh_h16_hh, 5485}, // __builtin_HEXAGON_A2_subh_h16_hh
-      {Intrinsic::hexagon_A2_subh_h16_hl, 5518}, // __builtin_HEXAGON_A2_subh_h16_hl
-      {Intrinsic::hexagon_A2_subh_h16_lh, 5551}, // __builtin_HEXAGON_A2_subh_h16_lh
-      {Intrinsic::hexagon_A2_subh_h16_ll, 5584}, // __builtin_HEXAGON_A2_subh_h16_ll
-      {Intrinsic::hexagon_A2_subh_h16_sat_hh, 5617}, // __builtin_HEXAGON_A2_subh_h16_sat_hh
-      {Intrinsic::hexagon_A2_subh_h16_sat_hl, 5654}, // __builtin_HEXAGON_A2_subh_h16_sat_hl
-      {Intrinsic::hexagon_A2_subh_h16_sat_lh, 5691}, // __builtin_HEXAGON_A2_subh_h16_sat_lh
-      {Intrinsic::hexagon_A2_subh_h16_sat_ll, 5728}, // __builtin_HEXAGON_A2_subh_h16_sat_ll
-      {Intrinsic::hexagon_A2_subh_l16_hl, 5765}, // __builtin_HEXAGON_A2_subh_l16_hl
-      {Intrinsic::hexagon_A2_subh_l16_ll, 5798}, // __builtin_HEXAGON_A2_subh_l16_ll
-      {Intrinsic::hexagon_A2_subh_l16_sat_hl, 5831}, // __builtin_HEXAGON_A2_subh_l16_sat_hl
-      {Intrinsic::hexagon_A2_subh_l16_sat_ll, 5868}, // __builtin_HEXAGON_A2_subh_l16_sat_ll
-      {Intrinsic::hexagon_A2_subp, 5905}, // __builtin_HEXAGON_A2_subp
-      {Intrinsic::hexagon_A2_subri, 5931}, // __builtin_HEXAGON_A2_subri
-      {Intrinsic::hexagon_A2_subsat, 5958}, // __builtin_HEXAGON_A2_subsat
-      {Intrinsic::hexagon_A2_svaddh, 5986}, // __builtin_HEXAGON_A2_svaddh
-      {Intrinsic::hexagon_A2_svaddhs, 6014}, // __builtin_HEXAGON_A2_svaddhs
-      {Intrinsic::hexagon_A2_svadduhs, 6043}, // __builtin_HEXAGON_A2_svadduhs
-      {Intrinsic::hexagon_A2_svavgh, 6073}, // __builtin_HEXAGON_A2_svavgh
-      {Intrinsic::hexagon_A2_svavghs, 6101}, // __builtin_HEXAGON_A2_svavghs
-      {Intrinsic::hexagon_A2_svnavgh, 6130}, // __builtin_HEXAGON_A2_svnavgh
-      {Intrinsic::hexagon_A2_svsubh, 6159}, // __builtin_HEXAGON_A2_svsubh
-      {Intrinsic::hexagon_A2_svsubhs, 6187}, // __builtin_HEXAGON_A2_svsubhs
-      {Intrinsic::hexagon_A2_svsubuhs, 6216}, // __builtin_HEXAGON_A2_svsubuhs
-      {Intrinsic::hexagon_A2_swiz, 6246}, // __builtin_HEXAGON_A2_swiz
-      {Intrinsic::hexagon_A2_sxtb, 6272}, // __builtin_HEXAGON_A2_sxtb
-      {Intrinsic::hexagon_A2_sxth, 6298}, // __builtin_HEXAGON_A2_sxth
-      {Intrinsic::hexagon_A2_sxtw, 6324}, // __builtin_HEXAGON_A2_sxtw
-      {Intrinsic::hexagon_A2_tfr, 6350}, // __builtin_HEXAGON_A2_tfr
-      {Intrinsic::hexagon_A2_tfrih, 6375}, // __builtin_HEXAGON_A2_tfrih
-      {Intrinsic::hexagon_A2_tfril, 6402}, // __builtin_HEXAGON_A2_tfril
-      {Intrinsic::hexagon_A2_tfrp, 6429}, // __builtin_HEXAGON_A2_tfrp
-      {Intrinsic::hexagon_A2_tfrpi, 6455}, // __builtin_HEXAGON_A2_tfrpi
-      {Intrinsic::hexagon_A2_tfrsi, 6482}, // __builtin_HEXAGON_A2_tfrsi
-      {Intrinsic::hexagon_A2_vabsh, 6509}, // __builtin_HEXAGON_A2_vabsh
-      {Intrinsic::hexagon_A2_vabshsat, 6536}, // __builtin_HEXAGON_A2_vabshsat
-      {Intrinsic::hexagon_A2_vabsw, 6566}, // __builtin_HEXAGON_A2_vabsw
-      {Intrinsic::hexagon_A2_vabswsat, 6593}, // __builtin_HEXAGON_A2_vabswsat
-      {Intrinsic::hexagon_A2_vaddb_map, 6623}, // __builtin_HEXAGON_A2_vaddb_map
-      {Intrinsic::hexagon_A2_vaddh, 6654}, // __builtin_HEXAGON_A2_vaddh
-      {Intrinsic::hexagon_A2_vaddhs, 6681}, // __builtin_HEXAGON_A2_vaddhs
-      {Intrinsic::hexagon_A2_vaddub, 6709}, // __builtin_HEXAGON_A2_vaddub
-      {Intrinsic::hexagon_A2_vaddubs, 6737}, // __builtin_HEXAGON_A2_vaddubs
-      {Intrinsic::hexagon_A2_vadduhs, 6766}, // __builtin_HEXAGON_A2_vadduhs
-      {Intrinsic::hexagon_A2_vaddw, 6795}, // __builtin_HEXAGON_A2_vaddw
-      {Intrinsic::hexagon_A2_vaddws, 6822}, // __builtin_HEXAGON_A2_vaddws
-      {Intrinsic::hexagon_A2_vavgh, 6850}, // __builtin_HEXAGON_A2_vavgh
-      {Intrinsic::hexagon_A2_vavghcr, 6877}, // __builtin_HEXAGON_A2_vavghcr
-      {Intrinsic::hexagon_A2_vavghr, 6906}, // __builtin_HEXAGON_A2_vavghr
-      {Intrinsic::hexagon_A2_vavgub, 6934}, // __builtin_HEXAGON_A2_vavgub
-      {Intrinsic::hexagon_A2_vavgubr, 6962}, // __builtin_HEXAGON_A2_vavgubr
-      {Intrinsic::hexagon_A2_vavguh, 6991}, // __builtin_HEXAGON_A2_vavguh
-      {Intrinsic::hexagon_A2_vavguhr, 7019}, // __builtin_HEXAGON_A2_vavguhr
-      {Intrinsic::hexagon_A2_vavguw, 7048}, // __builtin_HEXAGON_A2_vavguw
-      {Intrinsic::hexagon_A2_vavguwr, 7076}, // __builtin_HEXAGON_A2_vavguwr
-      {Intrinsic::hexagon_A2_vavgw, 7105}, // __builtin_HEXAGON_A2_vavgw
-      {Intrinsic::hexagon_A2_vavgwcr, 7132}, // __builtin_HEXAGON_A2_vavgwcr
-      {Intrinsic::hexagon_A2_vavgwr, 7161}, // __builtin_HEXAGON_A2_vavgwr
-      {Intrinsic::hexagon_A2_vcmpbeq, 7189}, // __builtin_HEXAGON_A2_vcmpbeq
-      {Intrinsic::hexagon_A2_vcmpbgtu, 7218}, // __builtin_HEXAGON_A2_vcmpbgtu
-      {Intrinsic::hexagon_A2_vcmpheq, 7248}, // __builtin_HEXAGON_A2_vcmpheq
-      {Intrinsic::hexagon_A2_vcmphgt, 7277}, // __builtin_HEXAGON_A2_vcmphgt
-      {Intrinsic::hexagon_A2_vcmphgtu, 7306}, // __builtin_HEXAGON_A2_vcmphgtu
-      {Intrinsic::hexagon_A2_vcmpweq, 7336}, // __builtin_HEXAGON_A2_vcmpweq
-      {Intrinsic::hexagon_A2_vcmpwgt, 7365}, // __builtin_HEXAGON_A2_vcmpwgt
-      {Intrinsic::hexagon_A2_vcmpwgtu, 7394}, // __builtin_HEXAGON_A2_vcmpwgtu
-      {Intrinsic::hexagon_A2_vconj, 7424}, // __builtin_HEXAGON_A2_vconj
-      {Intrinsic::hexagon_A2_vmaxb, 7451}, // __builtin_HEXAGON_A2_vmaxb
-      {Intrinsic::hexagon_A2_vmaxh, 7478}, // __builtin_HEXAGON_A2_vmaxh
-      {Intrinsic::hexagon_A2_vmaxub, 7505}, // __builtin_HEXAGON_A2_vmaxub
-      {Intrinsic::hexagon_A2_vmaxuh, 7533}, // __builtin_HEXAGON_A2_vmaxuh
-      {Intrinsic::hexagon_A2_vmaxuw, 7561}, // __builtin_HEXAGON_A2_vmaxuw
-      {Intrinsic::hexagon_A2_vmaxw, 7589}, // __builtin_HEXAGON_A2_vmaxw
-      {Intrinsic::hexagon_A2_vminb, 7616}, // __builtin_HEXAGON_A2_vminb
-      {Intrinsic::hexagon_A2_vminh, 7643}, // __builtin_HEXAGON_A2_vminh
-      {Intrinsic::hexagon_A2_vminub, 7670}, // __builtin_HEXAGON_A2_vminub
-      {Intrinsic::hexagon_A2_vminuh, 7698}, // __builtin_HEXAGON_A2_vminuh
-      {Intrinsic::hexagon_A2_vminuw, 7726}, // __builtin_HEXAGON_A2_vminuw
-      {Intrinsic::hexagon_A2_vminw, 7754}, // __builtin_HEXAGON_A2_vminw
-      {Intrinsic::hexagon_A2_vnavgh, 7781}, // __builtin_HEXAGON_A2_vnavgh
-      {Intrinsic::hexagon_A2_vnavghcr, 7809}, // __builtin_HEXAGON_A2_vnavghcr
-      {Intrinsic::hexagon_A2_vnavghr, 7839}, // __builtin_HEXAGON_A2_vnavghr
-      {Intrinsic::hexagon_A2_vnavgw, 7868}, // __builtin_HEXAGON_A2_vnavgw
-      {Intrinsic::hexagon_A2_vnavgwcr, 7896}, // __builtin_HEXAGON_A2_vnavgwcr
-      {Intrinsic::hexagon_A2_vnavgwr, 7926}, // __builtin_HEXAGON_A2_vnavgwr
-      {Intrinsic::hexagon_A2_vraddub, 7955}, // __builtin_HEXAGON_A2_vraddub
-      {Intrinsic::hexagon_A2_vraddub_acc, 7984}, // __builtin_HEXAGON_A2_vraddub_acc
-      {Intrinsic::hexagon_A2_vrsadub, 8017}, // __builtin_HEXAGON_A2_vrsadub
-      {Intrinsic::hexagon_A2_vrsadub_acc, 8046}, // __builtin_HEXAGON_A2_vrsadub_acc
-      {Intrinsic::hexagon_A2_vsubb_map, 8079}, // __builtin_HEXAGON_A2_vsubb_map
-      {Intrinsic::hexagon_A2_vsubh, 8110}, // __builtin_HEXAGON_A2_vsubh
-      {Intrinsic::hexagon_A2_vsubhs, 8137}, // __builtin_HEXAGON_A2_vsubhs
-      {Intrinsic::hexagon_A2_vsubub, 8165}, // __builtin_HEXAGON_A2_vsubub
-      {Intrinsic::hexagon_A2_vsububs, 8193}, // __builtin_HEXAGON_A2_vsububs
-      {Intrinsic::hexagon_A2_vsubuhs, 8222}, // __builtin_HEXAGON_A2_vsubuhs
-      {Intrinsic::hexagon_A2_vsubw, 8251}, // __builtin_HEXAGON_A2_vsubw
-      {Intrinsic::hexagon_A2_vsubws, 8278}, // __builtin_HEXAGON_A2_vsubws
-      {Intrinsic::hexagon_A2_xor, 8306}, // __builtin_HEXAGON_A2_xor
-      {Intrinsic::hexagon_A2_xorp, 8331}, // __builtin_HEXAGON_A2_xorp
-      {Intrinsic::hexagon_A2_zxtb, 8357}, // __builtin_HEXAGON_A2_zxtb
-      {Intrinsic::hexagon_A2_zxth, 8383}, // __builtin_HEXAGON_A2_zxth
-      {Intrinsic::hexagon_A4_andn, 8409}, // __builtin_HEXAGON_A4_andn
-      {Intrinsic::hexagon_A4_andnp, 8435}, // __builtin_HEXAGON_A4_andnp
-      {Intrinsic::hexagon_A4_bitsplit, 8462}, // __builtin_HEXAGON_A4_bitsplit
-      {Intrinsic::hexagon_A4_bitspliti, 8492}, // __builtin_HEXAGON_A4_bitspliti
-      {Intrinsic::hexagon_A4_boundscheck, 8523}, // __builtin_HEXAGON_A4_boundscheck
-      {Intrinsic::hexagon_A4_cmpbeq, 8556}, // __builtin_HEXAGON_A4_cmpbeq
-      {Intrinsic::hexagon_A4_cmpbeqi, 8584}, // __builtin_HEXAGON_A4_cmpbeqi
-      {Intrinsic::hexagon_A4_cmpbgt, 8613}, // __builtin_HEXAGON_A4_cmpbgt
-      {Intrinsic::hexagon_A4_cmpbgti, 8641}, // __builtin_HEXAGON_A4_cmpbgti
-      {Intrinsic::hexagon_A4_cmpbgtu, 8670}, // __builtin_HEXAGON_A4_cmpbgtu
-      {Intrinsic::hexagon_A4_cmpbgtui, 8699}, // __builtin_HEXAGON_A4_cmpbgtui
-      {Intrinsic::hexagon_A4_cmpheq, 8729}, // __builtin_HEXAGON_A4_cmpheq
-      {Intrinsic::hexagon_A4_cmpheqi, 8757}, // __builtin_HEXAGON_A4_cmpheqi
-      {Intrinsic::hexagon_A4_cmphgt, 8786}, // __builtin_HEXAGON_A4_cmphgt
-      {Intrinsic::hexagon_A4_cmphgti, 8814}, // __builtin_HEXAGON_A4_cmphgti
-      {Intrinsic::hexagon_A4_cmphgtu, 8843}, // __builtin_HEXAGON_A4_cmphgtu
-      {Intrinsic::hexagon_A4_cmphgtui, 8872}, // __builtin_HEXAGON_A4_cmphgtui
-      {Intrinsic::hexagon_A4_combineir, 8902}, // __builtin_HEXAGON_A4_combineir
-      {Intrinsic::hexagon_A4_combineri, 8933}, // __builtin_HEXAGON_A4_combineri
-      {Intrinsic::hexagon_A4_cround_ri, 8964}, // __builtin_HEXAGON_A4_cround_ri
-      {Intrinsic::hexagon_A4_cround_rr, 8995}, // __builtin_HEXAGON_A4_cround_rr
-      {Intrinsic::hexagon_A4_modwrapu, 9026}, // __builtin_HEXAGON_A4_modwrapu
-      {Intrinsic::hexagon_A4_orn, 9056}, // __builtin_HEXAGON_A4_orn
-      {Intrinsic::hexagon_A4_ornp, 9081}, // __builtin_HEXAGON_A4_ornp
-      {Intrinsic::hexagon_A4_rcmpeq, 9107}, // __builtin_HEXAGON_A4_rcmpeq
-      {Intrinsic::hexagon_A4_rcmpeqi, 9135}, // __builtin_HEXAGON_A4_rcmpeqi
-      {Intrinsic::hexagon_A4_rcmpneq, 9164}, // __builtin_HEXAGON_A4_rcmpneq
-      {Intrinsic::hexagon_A4_rcmpneqi, 9193}, // __builtin_HEXAGON_A4_rcmpneqi
-      {Intrinsic::hexagon_A4_round_ri, 9223}, // __builtin_HEXAGON_A4_round_ri
-      {Intrinsic::hexagon_A4_round_ri_sat, 9253}, // __builtin_HEXAGON_A4_round_ri_sat
-      {Intrinsic::hexagon_A4_round_rr, 9287}, // __builtin_HEXAGON_A4_round_rr
-      {Intrinsic::hexagon_A4_round_rr_sat, 9317}, // __builtin_HEXAGON_A4_round_rr_sat
-      {Intrinsic::hexagon_A4_tlbmatch, 9351}, // __builtin_HEXAGON_A4_tlbmatch
-      {Intrinsic::hexagon_A4_vcmpbeq_any, 9381}, // __builtin_HEXAGON_A4_vcmpbeq_any
-      {Intrinsic::hexagon_A4_vcmpbeqi, 9414}, // __builtin_HEXAGON_A4_vcmpbeqi
-      {Intrinsic::hexagon_A4_vcmpbgt, 9444}, // __builtin_HEXAGON_A4_vcmpbgt
-      {Intrinsic::hexagon_A4_vcmpbgti, 9473}, // __builtin_HEXAGON_A4_vcmpbgti
-      {Intrinsic::hexagon_A4_vcmpbgtui, 9503}, // __builtin_HEXAGON_A4_vcmpbgtui
-      {Intrinsic::hexagon_A4_vcmpheqi, 9534}, // __builtin_HEXAGON_A4_vcmpheqi
-      {Intrinsic::hexagon_A4_vcmphgti, 9564}, // __builtin_HEXAGON_A4_vcmphgti
-      {Intrinsic::hexagon_A4_vcmphgtui, 9594}, // __builtin_HEXAGON_A4_vcmphgtui
-      {Intrinsic::hexagon_A4_vcmpweqi, 9625}, // __builtin_HEXAGON_A4_vcmpweqi
-      {Intrinsic::hexagon_A4_vcmpwgti, 9655}, // __builtin_HEXAGON_A4_vcmpwgti
-      {Intrinsic::hexagon_A4_vcmpwgtui, 9685}, // __builtin_HEXAGON_A4_vcmpwgtui
-      {Intrinsic::hexagon_A4_vrmaxh, 9716}, // __builtin_HEXAGON_A4_vrmaxh
-      {Intrinsic::hexagon_A4_vrmaxuh, 9744}, // __builtin_HEXAGON_A4_vrmaxuh
-      {Intrinsic::hexagon_A4_vrmaxuw, 9773}, // __builtin_HEXAGON_A4_vrmaxuw
-      {Intrinsic::hexagon_A4_vrmaxw, 9802}, // __builtin_HEXAGON_A4_vrmaxw
-      {Intrinsic::hexagon_A4_vrminh, 9830}, // __builtin_HEXAGON_A4_vrminh
-      {Intrinsic::hexagon_A4_vrminuh, 9858}, // __builtin_HEXAGON_A4_vrminuh
-      {Intrinsic::hexagon_A4_vrminuw, 9887}, // __builtin_HEXAGON_A4_vrminuw
-      {Intrinsic::hexagon_A4_vrminw, 9916}, // __builtin_HEXAGON_A4_vrminw
-      {Intrinsic::hexagon_A5_vaddhubs, 9944}, // __builtin_HEXAGON_A5_vaddhubs
-      {Intrinsic::hexagon_A6_vcmpbeq_notany, 9974}, // __builtin_HEXAGON_A6_vcmpbeq_notany
-      {Intrinsic::hexagon_A6_vcmpbeq_notany_128B, 10010}, // __builtin_HEXAGON_A6_vcmpbeq_notany_128B
-      {Intrinsic::hexagon_C2_all8, 10051}, // __builtin_HEXAGON_C2_all8
-      {Intrinsic::hexagon_C2_and, 10077}, // __builtin_HEXAGON_C2_and
-      {Intrinsic::hexagon_C2_andn, 10102}, // __builtin_HEXAGON_C2_andn
-      {Intrinsic::hexagon_C2_any8, 10128}, // __builtin_HEXAGON_C2_any8
-      {Intrinsic::hexagon_C2_bitsclr, 10154}, // __builtin_HEXAGON_C2_bitsclr
-      {Intrinsic::hexagon_C2_bitsclri, 10183}, // __builtin_HEXAGON_C2_bitsclri
-      {Intrinsic::hexagon_C2_bitsset, 10213}, // __builtin_HEXAGON_C2_bitsset
-      {Intrinsic::hexagon_C2_cmpeq, 10242}, // __builtin_HEXAGON_C2_cmpeq
-      {Intrinsic::hexagon_C2_cmpeqi, 10269}, // __builtin_HEXAGON_C2_cmpeqi
-      {Intrinsic::hexagon_C2_cmpeqp, 10297}, // __builtin_HEXAGON_C2_cmpeqp
-      {Intrinsic::hexagon_C2_cmpgei, 10325}, // __builtin_HEXAGON_C2_cmpgei
-      {Intrinsic::hexagon_C2_cmpgeui, 10353}, // __builtin_HEXAGON_C2_cmpgeui
-      {Intrinsic::hexagon_C2_cmpgt, 10382}, // __builtin_HEXAGON_C2_cmpgt
-      {Intrinsic::hexagon_C2_cmpgti, 10409}, // __builtin_HEXAGON_C2_cmpgti
-      {Intrinsic::hexagon_C2_cmpgtp, 10437}, // __builtin_HEXAGON_C2_cmpgtp
-      {Intrinsic::hexagon_C2_cmpgtu, 10465}, // __builtin_HEXAGON_C2_cmpgtu
-      {Intrinsic::hexagon_C2_cmpgtui, 10493}, // __builtin_HEXAGON_C2_cmpgtui
-      {Intrinsic::hexagon_C2_cmpgtup, 10522}, // __builtin_HEXAGON_C2_cmpgtup
-      {Intrinsic::hexagon_C2_cmplt, 10551}, // __builtin_HEXAGON_C2_cmplt
-      {Intrinsic::hexagon_C2_cmpltu, 10578}, // __builtin_HEXAGON_C2_cmpltu
-      {Intrinsic::hexagon_C2_mask, 10606}, // __builtin_HEXAGON_C2_mask
-      {Intrinsic::hexagon_C2_mux, 10632}, // __builtin_HEXAGON_C2_mux
-      {Intrinsic::hexagon_C2_muxii, 10657}, // __builtin_HEXAGON_C2_muxii
-      {Intrinsic::hexagon_C2_muxir, 10684}, // __builtin_HEXAGON_C2_muxir
-      {Intrinsic::hexagon_C2_muxri, 10711}, // __builtin_HEXAGON_C2_muxri
-      {Intrinsic::hexagon_C2_not, 10738}, // __builtin_HEXAGON_C2_not
-      {Intrinsic::hexagon_C2_or, 10763}, // __builtin_HEXAGON_C2_or
-      {Intrinsic::hexagon_C2_orn, 10787}, // __builtin_HEXAGON_C2_orn
-      {Intrinsic::hexagon_C2_pxfer_map, 10812}, // __builtin_HEXAGON_C2_pxfer_map
-      {Intrinsic::hexagon_C2_tfrpr, 10843}, // __builtin_HEXAGON_C2_tfrpr
-      {Intrinsic::hexagon_C2_tfrrp, 10870}, // __builtin_HEXAGON_C2_tfrrp
-      {Intrinsic::hexagon_C2_vitpack, 10897}, // __builtin_HEXAGON_C2_vitpack
-      {Intrinsic::hexagon_C2_vmux, 10926}, // __builtin_HEXAGON_C2_vmux
-      {Intrinsic::hexagon_C2_xor, 10952}, // __builtin_HEXAGON_C2_xor
-      {Intrinsic::hexagon_C4_and_and, 10977}, // __builtin_HEXAGON_C4_and_and
-      {Intrinsic::hexagon_C4_and_andn, 11006}, // __builtin_HEXAGON_C4_and_andn
-      {Intrinsic::hexagon_C4_and_or, 11036}, // __builtin_HEXAGON_C4_and_or
-      {Intrinsic::hexagon_C4_and_orn, 11064}, // __builtin_HEXAGON_C4_and_orn
-      {Intrinsic::hexagon_C4_cmplte, 11093}, // __builtin_HEXAGON_C4_cmplte
-      {Intrinsic::hexagon_C4_cmpltei, 11121}, // __builtin_HEXAGON_C4_cmpltei
-      {Intrinsic::hexagon_C4_cmplteu, 11150}, // __builtin_HEXAGON_C4_cmplteu
-      {Intrinsic::hexagon_C4_cmplteui, 11179}, // __builtin_HEXAGON_C4_cmplteui
-      {Intrinsic::hexagon_C4_cmpneq, 11209}, // __builtin_HEXAGON_C4_cmpneq
-      {Intrinsic::hexagon_C4_cmpneqi, 11237}, // __builtin_HEXAGON_C4_cmpneqi
-      {Intrinsic::hexagon_C4_fastcorner9, 11266}, // __builtin_HEXAGON_C4_fastcorner9
-      {Intrinsic::hexagon_C4_fastcorner9_not, 11299}, // __builtin_HEXAGON_C4_fastcorner9_not
-      {Intrinsic::hexagon_C4_nbitsclr, 11336}, // __builtin_HEXAGON_C4_nbitsclr
-      {Intrinsic::hexagon_C4_nbitsclri, 11366}, // __builtin_HEXAGON_C4_nbitsclri
-      {Intrinsic::hexagon_C4_nbitsset, 11397}, // __builtin_HEXAGON_C4_nbitsset
-      {Intrinsic::hexagon_C4_or_and, 11427}, // __builtin_HEXAGON_C4_or_and
-      {Intrinsic::hexagon_C4_or_andn, 11455}, // __builtin_HEXAGON_C4_or_andn
-      {Intrinsic::hexagon_C4_or_or, 11484}, // __builtin_HEXAGON_C4_or_or
-      {Intrinsic::hexagon_C4_or_orn, 11511}, // __builtin_HEXAGON_C4_or_orn
-      {Intrinsic::hexagon_F2_conv_d2df, 11539}, // __builtin_HEXAGON_F2_conv_d2df
-      {Intrinsic::hexagon_F2_conv_d2sf, 11570}, // __builtin_HEXAGON_F2_conv_d2sf
-      {Intrinsic::hexagon_F2_conv_df2d, 11601}, // __builtin_HEXAGON_F2_conv_df2d
-      {Intrinsic::hexagon_F2_conv_df2d_chop, 11632}, // __builtin_HEXAGON_F2_conv_df2d_chop
-      {Intrinsic::hexagon_F2_conv_df2sf, 11668}, // __builtin_HEXAGON_F2_conv_df2sf
-      {Intrinsic::hexagon_F2_conv_df2ud, 11700}, // __builtin_HEXAGON_F2_conv_df2ud
-      {Intrinsic::hexagon_F2_conv_df2ud_chop, 11732}, // __builtin_HEXAGON_F2_conv_df2ud_chop
-      {Intrinsic::hexagon_F2_conv_df2uw, 11769}, // __builtin_HEXAGON_F2_conv_df2uw
-      {Intrinsic::hexagon_F2_conv_df2uw_chop, 11801}, // __builtin_HEXAGON_F2_conv_df2uw_chop
-      {Intrinsic::hexagon_F2_conv_df2w, 11838}, // __builtin_HEXAGON_F2_conv_df2w
-      {Intrinsic::hexagon_F2_conv_df2w_chop, 11869}, // __builtin_HEXAGON_F2_conv_df2w_chop
-      {Intrinsic::hexagon_F2_conv_sf2d, 11905}, // __builtin_HEXAGON_F2_conv_sf2d
-      {Intrinsic::hexagon_F2_conv_sf2d_chop, 11936}, // __builtin_HEXAGON_F2_conv_sf2d_chop
-      {Intrinsic::hexagon_F2_conv_sf2df, 11972}, // __builtin_HEXAGON_F2_conv_sf2df
-      {Intrinsic::hexagon_F2_conv_sf2ud, 12004}, // __builtin_HEXAGON_F2_conv_sf2ud
-      {Intrinsic::hexagon_F2_conv_sf2ud_chop, 12036}, // __builtin_HEXAGON_F2_conv_sf2ud_chop
-      {Intrinsic::hexagon_F2_conv_sf2uw, 12073}, // __builtin_HEXAGON_F2_conv_sf2uw
-      {Intrinsic::hexagon_F2_conv_sf2uw_chop, 12105}, // __builtin_HEXAGON_F2_conv_sf2uw_chop
-      {Intrinsic::hexagon_F2_conv_sf2w, 12142}, // __builtin_HEXAGON_F2_conv_sf2w
-      {Intrinsic::hexagon_F2_conv_sf2w_chop, 12173}, // __builtin_HEXAGON_F2_conv_sf2w_chop
-      {Intrinsic::hexagon_F2_conv_ud2df, 12209}, // __builtin_HEXAGON_F2_conv_ud2df
-      {Intrinsic::hexagon_F2_conv_ud2sf, 12241}, // __builtin_HEXAGON_F2_conv_ud2sf
-      {Intrinsic::hexagon_F2_conv_uw2df, 12273}, // __builtin_HEXAGON_F2_conv_uw2df
-      {Intrinsic::hexagon_F2_conv_uw2sf, 12305}, // __builtin_HEXAGON_F2_conv_uw2sf
-      {Intrinsic::hexagon_F2_conv_w2df, 12337}, // __builtin_HEXAGON_F2_conv_w2df
-      {Intrinsic::hexagon_F2_conv_w2sf, 12368}, // __builtin_HEXAGON_F2_conv_w2sf
-      {Intrinsic::hexagon_F2_dfclass, 12399}, // __builtin_HEXAGON_F2_dfclass
-      {Intrinsic::hexagon_F2_dfcmpeq, 12428}, // __builtin_HEXAGON_F2_dfcmpeq
-      {Intrinsic::hexagon_F2_dfcmpge, 12457}, // __builtin_HEXAGON_F2_dfcmpge
-      {Intrinsic::hexagon_F2_dfcmpgt, 12486}, // __builtin_HEXAGON_F2_dfcmpgt
-      {Intrinsic::hexagon_F2_dfcmpuo, 12515}, // __builtin_HEXAGON_F2_dfcmpuo
-      {Intrinsic::hexagon_F2_dfimm_n, 12544}, // __builtin_HEXAGON_F2_dfimm_n
-      {Intrinsic::hexagon_F2_dfimm_p, 12573}, // __builtin_HEXAGON_F2_dfimm_p
-      {Intrinsic::hexagon_F2_sfadd, 12602}, // __builtin_HEXAGON_F2_sfadd
-      {Intrinsic::hexagon_F2_sfclass, 12629}, // __builtin_HEXAGON_F2_sfclass
-      {Intrinsic::hexagon_F2_sfcmpeq, 12658}, // __builtin_HEXAGON_F2_sfcmpeq
-      {Intrinsic::hexagon_F2_sfcmpge, 12687}, // __builtin_HEXAGON_F2_sfcmpge
-      {Intrinsic::hexagon_F2_sfcmpgt, 12716}, // __builtin_HEXAGON_F2_sfcmpgt
-      {Intrinsic::hexagon_F2_sfcmpuo, 12745}, // __builtin_HEXAGON_F2_sfcmpuo
-      {Intrinsic::hexagon_F2_sffixupd, 12774}, // __builtin_HEXAGON_F2_sffixupd
-      {Intrinsic::hexagon_F2_sffixupn, 12804}, // __builtin_HEXAGON_F2_sffixupn
-      {Intrinsic::hexagon_F2_sffixupr, 12834}, // __builtin_HEXAGON_F2_sffixupr
-      {Intrinsic::hexagon_F2_sffma, 12864}, // __builtin_HEXAGON_F2_sffma
-      {Intrinsic::hexagon_F2_sffma_lib, 12891}, // __builtin_HEXAGON_F2_sffma_lib
-      {Intrinsic::hexagon_F2_sffma_sc, 12922}, // __builtin_HEXAGON_F2_sffma_sc
-      {Intrinsic::hexagon_F2_sffms, 12952}, // __builtin_HEXAGON_F2_sffms
-      {Intrinsic::hexagon_F2_sffms_lib, 12979}, // __builtin_HEXAGON_F2_sffms_lib
-      {Intrinsic::hexagon_F2_sfimm_n, 13010}, // __builtin_HEXAGON_F2_sfimm_n
-      {Intrinsic::hexagon_F2_sfimm_p, 13039}, // __builtin_HEXAGON_F2_sfimm_p
-      {Intrinsic::hexagon_F2_sfmax, 13068}, // __builtin_HEXAGON_F2_sfmax
-      {Intrinsic::hexagon_F2_sfmin, 13095}, // __builtin_HEXAGON_F2_sfmin
-      {Intrinsic::hexagon_F2_sfmpy, 13122}, // __builtin_HEXAGON_F2_sfmpy
-      {Intrinsic::hexagon_F2_sfsub, 13149}, // __builtin_HEXAGON_F2_sfsub
-      {Intrinsic::hexagon_L2_loadw_locked, 13176}, // __builtin_HEXAGON_L2_loadw_locked
-      {Intrinsic::hexagon_L4_loadd_locked, 13210}, // __builtin_HEXAGON_L4_loadd_locked
-      {Intrinsic::hexagon_M2_acci, 13244}, // __builtin_HEXAGON_M2_acci
-      {Intrinsic::hexagon_M2_accii, 13270}, // __builtin_HEXAGON_M2_accii
-      {Intrinsic::hexagon_M2_cmaci_s0, 13297}, // __builtin_HEXAGON_M2_cmaci_s0
-      {Intrinsic::hexagon_M2_cmacr_s0, 13327}, // __builtin_HEXAGON_M2_cmacr_s0
-      {Intrinsic::hexagon_M2_cmacs_s0, 13357}, // __builtin_HEXAGON_M2_cmacs_s0
-      {Intrinsic::hexagon_M2_cmacs_s1, 13387}, // __builtin_HEXAGON_M2_cmacs_s1
-      {Intrinsic::hexagon_M2_cmacsc_s0, 13417}, // __builtin_HEXAGON_M2_cmacsc_s0
-      {Intrinsic::hexagon_M2_cmacsc_s1, 13448}, // __builtin_HEXAGON_M2_cmacsc_s1
-      {Intrinsic::hexagon_M2_cmpyi_s0, 13479}, // __builtin_HEXAGON_M2_cmpyi_s0
-      {Intrinsic::hexagon_M2_cmpyr_s0, 13509}, // __builtin_HEXAGON_M2_cmpyr_s0
-      {Intrinsic::hexagon_M2_cmpyrs_s0, 13539}, // __builtin_HEXAGON_M2_cmpyrs_s0
-      {Intrinsic::hexagon_M2_cmpyrs_s1, 13570}, // __builtin_HEXAGON_M2_cmpyrs_s1
-      {Intrinsic::hexagon_M2_cmpyrsc_s0, 13601}, // __builtin_HEXAGON_M2_cmpyrsc_s0
-      {Intrinsic::hexagon_M2_cmpyrsc_s1, 13633}, // __builtin_HEXAGON_M2_cmpyrsc_s1
-      {Intrinsic::hexagon_M2_cmpys_s0, 13665}, // __builtin_HEXAGON_M2_cmpys_s0
-      {Intrinsic::hexagon_M2_cmpys_s1, 13695}, // __builtin_HEXAGON_M2_cmpys_s1
-      {Intrinsic::hexagon_M2_cmpysc_s0, 13725}, // __builtin_HEXAGON_M2_cmpysc_s0
-      {Intrinsic::hexagon_M2_cmpysc_s1, 13756}, // __builtin_HEXAGON_M2_cmpysc_s1
-      {Intrinsic::hexagon_M2_cnacs_s0, 13787}, // __builtin_HEXAGON_M2_cnacs_s0
-      {Intrinsic::hexagon_M2_cnacs_s1, 13817}, // __builtin_HEXAGON_M2_cnacs_s1
-      {Intrinsic::hexagon_M2_cnacsc_s0, 13847}, // __builtin_HEXAGON_M2_cnacsc_s0
-      {Intrinsic::hexagon_M2_cnacsc_s1, 13878}, // __builtin_HEXAGON_M2_cnacsc_s1
-      {Intrinsic::hexagon_M2_dpmpyss_acc_s0, 13909}, // __builtin_HEXAGON_M2_dpmpyss_acc_s0
-      {Intrinsic::hexagon_M2_dpmpyss_nac_s0, 13945}, // __builtin_HEXAGON_M2_dpmpyss_nac_s0
-      {Intrinsic::hexagon_M2_dpmpyss_rnd_s0, 13981}, // __builtin_HEXAGON_M2_dpmpyss_rnd_s0
-      {Intrinsic::hexagon_M2_dpmpyss_s0, 14017}, // __builtin_HEXAGON_M2_dpmpyss_s0
-      {Intrinsic::hexagon_M2_dpmpyuu_acc_s0, 14049}, // __builtin_HEXAGON_M2_dpmpyuu_acc_s0
-      {Intrinsic::hexagon_M2_dpmpyuu_nac_s0, 14085}, // __builtin_HEXAGON_M2_dpmpyuu_nac_s0
-      {Intrinsic::hexagon_M2_dpmpyuu_s0, 14121}, // __builtin_HEXAGON_M2_dpmpyuu_s0
-      {Intrinsic::hexagon_M2_hmmpyh_rs1, 14153}, // __builtin_HEXAGON_M2_hmmpyh_rs1
-      {Intrinsic::hexagon_M2_hmmpyh_s1, 14185}, // __builtin_HEXAGON_M2_hmmpyh_s1
-      {Intrinsic::hexagon_M2_hmmpyl_rs1, 14216}, // __builtin_HEXAGON_M2_hmmpyl_rs1
-      {Intrinsic::hexagon_M2_hmmpyl_s1, 14248}, // __builtin_HEXAGON_M2_hmmpyl_s1
-      {Intrinsic::hexagon_M2_maci, 14279}, // __builtin_HEXAGON_M2_maci
-      {Intrinsic::hexagon_M2_macsin, 14305}, // __builtin_HEXAGON_M2_macsin
-      {Intrinsic::hexagon_M2_macsip, 14333}, // __builtin_HEXAGON_M2_macsip
-      {Intrinsic::hexagon_M2_mmachs_rs0, 14361}, // __builtin_HEXAGON_M2_mmachs_rs0
-      {Intrinsic::hexagon_M2_mmachs_rs1, 14393}, // __builtin_HEXAGON_M2_mmachs_rs1
-      {Intrinsic::hexagon_M2_mmachs_s0, 14425}, // __builtin_HEXAGON_M2_mmachs_s0
-      {Intrinsic::hexagon_M2_mmachs_s1, 14456}, // __builtin_HEXAGON_M2_mmachs_s1
-      {Intrinsic::hexagon_M2_mmacls_rs0, 14487}, // __builtin_HEXAGON_M2_mmacls_rs0
-      {Intrinsic::hexagon_M2_mmacls_rs1, 14519}, // __builtin_HEXAGON_M2_mmacls_rs1
-      {Intrinsic::hexagon_M2_mmacls_s0, 14551}, // __builtin_HEXAGON_M2_mmacls_s0
-      {Intrinsic::hexagon_M2_mmacls_s1, 14582}, // __builtin_HEXAGON_M2_mmacls_s1
-      {Intrinsic::hexagon_M2_mmacuhs_rs0, 14613}, // __builtin_HEXAGON_M2_mmacuhs_rs0
-      {Intrinsic::hexagon_M2_mmacuhs_rs1, 14646}, // __builtin_HEXAGON_M2_mmacuhs_rs1
-      {Intrinsic::hexagon_M2_mmacuhs_s0, 14679}, // __builtin_HEXAGON_M2_mmacuhs_s0
-      {Intrinsic::hexagon_M2_mmacuhs_s1, 14711}, // __builtin_HEXAGON_M2_mmacuhs_s1
-      {Intrinsic::hexagon_M2_mmaculs_rs0, 14743}, // __builtin_HEXAGON_M2_mmaculs_rs0
-      {Intrinsic::hexagon_M2_mmaculs_rs1, 14776}, // __builtin_HEXAGON_M2_mmaculs_rs1
-      {Intrinsic::hexagon_M2_mmaculs_s0, 14809}, // __builtin_HEXAGON_M2_mmaculs_s0
-      {Intrinsic::hexagon_M2_mmaculs_s1, 14841}, // __builtin_HEXAGON_M2_mmaculs_s1
-      {Intrinsic::hexagon_M2_mmpyh_rs0, 14873}, // __builtin_HEXAGON_M2_mmpyh_rs0
-      {Intrinsic::hexagon_M2_mmpyh_rs1, 14904}, // __builtin_HEXAGON_M2_mmpyh_rs1
-      {Intrinsic::hexagon_M2_mmpyh_s0, 14935}, // __builtin_HEXAGON_M2_mmpyh_s0
-      {Intrinsic::hexagon_M2_mmpyh_s1, 14965}, // __builtin_HEXAGON_M2_mmpyh_s1
-      {Intrinsic::hexagon_M2_mmpyl_rs0, 14995}, // __builtin_HEXAGON_M2_mmpyl_rs0
-      {Intrinsic::hexagon_M2_mmpyl_rs1, 15026}, // __builtin_HEXAGON_M2_mmpyl_rs1
-      {Intrinsic::hexagon_M2_mmpyl_s0, 15057}, // __builtin_HEXAGON_M2_mmpyl_s0
-      {Intrinsic::hexagon_M2_mmpyl_s1, 15087}, // __builtin_HEXAGON_M2_mmpyl_s1
-      {Intrinsic::hexagon_M2_mmpyuh_rs0, 15117}, // __builtin_HEXAGON_M2_mmpyuh_rs0
-      {Intrinsic::hexagon_M2_mmpyuh_rs1, 15149}, // __builtin_HEXAGON_M2_mmpyuh_rs1
-      {Intrinsic::hexagon_M2_mmpyuh_s0, 15181}, // __builtin_HEXAGON_M2_mmpyuh_s0
-      {Intrinsic::hexagon_M2_mmpyuh_s1, 15212}, // __builtin_HEXAGON_M2_mmpyuh_s1
-      {Intrinsic::hexagon_M2_mmpyul_rs0, 15243}, // __builtin_HEXAGON_M2_mmpyul_rs0
-      {Intrinsic::hexagon_M2_mmpyul_rs1, 15275}, // __builtin_HEXAGON_M2_mmpyul_rs1
-      {Intrinsic::hexagon_M2_mmpyul_s0, 15307}, // __builtin_HEXAGON_M2_mmpyul_s0
-      {Intrinsic::hexagon_M2_mmpyul_s1, 15338}, // __builtin_HEXAGON_M2_mmpyul_s1
-      {Intrinsic::hexagon_M2_mpy_acc_hh_s0, 15369}, // __builtin_HEXAGON_M2_mpy_acc_hh_s0
-      {Intrinsic::hexagon_M2_mpy_acc_hh_s1, 15404}, // __builtin_HEXAGON_M2_mpy_acc_hh_s1
-      {Intrinsic::hexagon_M2_mpy_acc_hl_s0, 15439}, // __builtin_HEXAGON_M2_mpy_acc_hl_s0
-      {Intrinsic::hexagon_M2_mpy_acc_hl_s1, 15474}, // __builtin_HEXAGON_M2_mpy_acc_hl_s1
-      {Intrinsic::hexagon_M2_mpy_acc_lh_s0, 15509}, // __builtin_HEXAGON_M2_mpy_acc_lh_s0
-      {Intrinsic::hexagon_M2_mpy_acc_lh_s1, 15544}, // __builtin_HEXAGON_M2_mpy_acc_lh_s1
-      {Intrinsic::hexagon_M2_mpy_acc_ll_s0, 15579}, // __builtin_HEXAGON_M2_mpy_acc_ll_s0
-      {Intrinsic::hexagon_M2_mpy_acc_ll_s1, 15614}, // __builtin_HEXAGON_M2_mpy_acc_ll_s1
-      {Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0, 15649}, // __builtin_HEXAGON_M2_mpy_acc_sat_hh_s0
-      {Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1, 15688}, // __builtin_HEXAGON_M2_mpy_acc_sat_hh_s1
-      {Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0, 15727}, // __builtin_HEXAGON_M2_mpy_acc_sat_hl_s0
-      {Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1, 15766}, // __builtin_HEXAGON_M2_mpy_acc_sat_hl_s1
-      {Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0, 15805}, // __builtin_HEXAGON_M2_mpy_acc_sat_lh_s0
-      {Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1, 15844}, // __builtin_HEXAGON_M2_mpy_acc_sat_lh_s1
-      {Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0, 15883}, // __builtin_HEXAGON_M2_mpy_acc_sat_ll_s0
-      {Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1, 15922}, // __builtin_HEXAGON_M2_mpy_acc_sat_ll_s1
-      {Intrinsic::hexagon_M2_mpy_hh_s0, 15961}, // __builtin_HEXAGON_M2_mpy_hh_s0
-      {Intrinsic::hexagon_M2_mpy_hh_s1, 15992}, // __builtin_HEXAGON_M2_mpy_hh_s1
-      {Intrinsic::hexagon_M2_mpy_hl_s0, 16023}, // __builtin_HEXAGON_M2_mpy_hl_s0
-      {Intrinsic::hexagon_M2_mpy_hl_s1, 16054}, // __builtin_HEXAGON_M2_mpy_hl_s1
-      {Intrinsic::hexagon_M2_mpy_lh_s0, 16085}, // __builtin_HEXAGON_M2_mpy_lh_s0
-      {Intrinsic::hexagon_M2_mpy_lh_s1, 16116}, // __builtin_HEXAGON_M2_mpy_lh_s1
-      {Intrinsic::hexagon_M2_mpy_ll_s0, 16147}, // __builtin_HEXAGON_M2_mpy_ll_s0
-      {Intrinsic::hexagon_M2_mpy_ll_s1, 16178}, // __builtin_HEXAGON_M2_mpy_ll_s1
-      {Intrinsic::hexagon_M2_mpy_nac_hh_s0, 16209}, // __builtin_HEXAGON_M2_mpy_nac_hh_s0
-      {Intrinsic::hexagon_M2_mpy_nac_hh_s1, 16244}, // __builtin_HEXAGON_M2_mpy_nac_hh_s1
-      {Intrinsic::hexagon_M2_mpy_nac_hl_s0, 16279}, // __builtin_HEXAGON_M2_mpy_nac_hl_s0
-      {Intrinsic::hexagon_M2_mpy_nac_hl_s1, 16314}, // __builtin_HEXAGON_M2_mpy_nac_hl_s1
-      {Intrinsic::hexagon_M2_mpy_nac_lh_s0, 16349}, // __builtin_HEXAGON_M2_mpy_nac_lh_s0
-      {Intrinsic::hexagon_M2_mpy_nac_lh_s1, 16384}, // __builtin_HEXAGON_M2_mpy_nac_lh_s1
-      {Intrinsic::hexagon_M2_mpy_nac_ll_s0, 16419}, // __builtin_HEXAGON_M2_mpy_nac_ll_s0
-      {Intrinsic::hexagon_M2_mpy_nac_ll_s1, 16454}, // __builtin_HEXAGON_M2_mpy_nac_ll_s1
-      {Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0, 16489}, // __builtin_HEXAGON_M2_mpy_nac_sat_hh_s0
-      {Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1, 16528}, // __builtin_HEXAGON_M2_mpy_nac_sat_hh_s1
-      {Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0, 16567}, // __builtin_HEXAGON_M2_mpy_nac_sat_hl_s0
-      {Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1, 16606}, // __builtin_HEXAGON_M2_mpy_nac_sat_hl_s1
-      {Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0, 16645}, // __builtin_HEXAGON_M2_mpy_nac_sat_lh_s0
-      {Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1, 16684}, // __builtin_HEXAGON_M2_mpy_nac_sat_lh_s1
-      {Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0, 16723}, // __builtin_HEXAGON_M2_mpy_nac_sat_ll_s0
-      {Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1, 16762}, // __builtin_HEXAGON_M2_mpy_nac_sat_ll_s1
-      {Intrinsic::hexagon_M2_mpy_rnd_hh_s0, 16801}, // __builtin_HEXAGON_M2_mpy_rnd_hh_s0
-      {Intrinsic::hexagon_M2_mpy_rnd_hh_s1, 16836}, // __builtin_HEXAGON_M2_mpy_rnd_hh_s1
-      {Intrinsic::hexagon_M2_mpy_rnd_hl_s0, 16871}, // __builtin_HEXAGON_M2_mpy_rnd_hl_s0
-      {Intrinsic::hexagon_M2_mpy_rnd_hl_s1, 16906}, // __builtin_HEXAGON_M2_mpy_rnd_hl_s1
-      {Intrinsic::hexagon_M2_mpy_rnd_lh_s0, 16941}, // __builtin_HEXAGON_M2_mpy_rnd_lh_s0
-      {Intrinsic::hexagon_M2_mpy_rnd_lh_s1, 16976}, // __builtin_HEXAGON_M2_mpy_rnd_lh_s1
-      {Intrinsic::hexagon_M2_mpy_rnd_ll_s0, 17011}, // __builtin_HEXAGON_M2_mpy_rnd_ll_s0
-      {Intrinsic::hexagon_M2_mpy_rnd_ll_s1, 17046}, // __builtin_HEXAGON_M2_mpy_rnd_ll_s1
-      {Intrinsic::hexagon_M2_mpy_sat_hh_s0, 17081}, // __builtin_HEXAGON_M2_mpy_sat_hh_s0
-      {Intrinsic::hexagon_M2_mpy_sat_hh_s1, 17116}, // __builtin_HEXAGON_M2_mpy_sat_hh_s1
-      {Intrinsic::hexagon_M2_mpy_sat_hl_s0, 17151}, // __builtin_HEXAGON_M2_mpy_sat_hl_s0
-      {Intrinsic::hexagon_M2_mpy_sat_hl_s1, 17186}, // __builtin_HEXAGON_M2_mpy_sat_hl_s1
-      {Intrinsic::hexagon_M2_mpy_sat_lh_s0, 17221}, // __builtin_HEXAGON_M2_mpy_sat_lh_s0
-      {Intrinsic::hexagon_M2_mpy_sat_lh_s1, 17256}, // __builtin_HEXAGON_M2_mpy_sat_lh_s1
-      {Intrinsic::hexagon_M2_mpy_sat_ll_s0, 17291}, // __builtin_HEXAGON_M2_mpy_sat_ll_s0
-      {Intrinsic::hexagon_M2_mpy_sat_ll_s1, 17326}, // __builtin_HEXAGON_M2_mpy_sat_ll_s1
-      {Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0, 17361}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s0
-      {Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1, 17400}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s1
-      {Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0, 17439}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s0
-      {Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1, 17478}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s1
-      {Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0, 17517}, // __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s0
-      {Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1, 17556}, // __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s1
-      {Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0, 17595}, // __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s0
-      {Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1, 17634}, // __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s1
-      {Intrinsic::hexagon_M2_mpy_up, 17673}, // __builtin_HEXAGON_M2_mpy_up
-      {Intrinsic::hexagon_M2_mpy_up_s1, 17701}, // __builtin_HEXAGON_M2_mpy_up_s1
-      {Intrinsic::hexagon_M2_mpy_up_s1_sat, 17732}, // __builtin_HEXAGON_M2_mpy_up_s1_sat
-      {Intrinsic::hexagon_M2_mpyd_acc_hh_s0, 17767}, // __builtin_HEXAGON_M2_mpyd_acc_hh_s0
-      {Intrinsic::hexagon_M2_mpyd_acc_hh_s1, 17803}, // __builtin_HEXAGON_M2_mpyd_acc_hh_s1
-      {Intrinsic::hexagon_M2_mpyd_acc_hl_s0, 17839}, // __builtin_HEXAGON_M2_mpyd_acc_hl_s0
-      {Intrinsic::hexagon_M2_mpyd_acc_hl_s1, 17875}, // __builtin_HEXAGON_M2_mpyd_acc_hl_s1
-      {Intrinsic::hexagon_M2_mpyd_acc_lh_s0, 17911}, // __builtin_HEXAGON_M2_mpyd_acc_lh_s0
-      {Intrinsic::hexagon_M2_mpyd_acc_lh_s1, 17947}, // __builtin_HEXAGON_M2_mpyd_acc_lh_s1
-      {Intrinsic::hexagon_M2_mpyd_acc_ll_s0, 17983}, // __builtin_HEXAGON_M2_mpyd_acc_ll_s0
-      {Intrinsic::hexagon_M2_mpyd_acc_ll_s1, 18019}, // __builtin_HEXAGON_M2_mpyd_acc_ll_s1
-      {Intrinsic::hexagon_M2_mpyd_hh_s0, 18055}, // __builtin_HEXAGON_M2_mpyd_hh_s0
-      {Intrinsic::hexagon_M2_mpyd_hh_s1, 18087}, // __builtin_HEXAGON_M2_mpyd_hh_s1
-      {Intrinsic::hexagon_M2_mpyd_hl_s0, 18119}, // __builtin_HEXAGON_M2_mpyd_hl_s0
-      {Intrinsic::hexagon_M2_mpyd_hl_s1, 18151}, // __builtin_HEXAGON_M2_mpyd_hl_s1
-      {Intrinsic::hexagon_M2_mpyd_lh_s0, 18183}, // __builtin_HEXAGON_M2_mpyd_lh_s0
-      {Intrinsic::hexagon_M2_mpyd_lh_s1, 18215}, // __builtin_HEXAGON_M2_mpyd_lh_s1
-      {Intrinsic::hexagon_M2_mpyd_ll_s0, 18247}, // __builtin_HEXAGON_M2_mpyd_ll_s0
-      {Intrinsic::hexagon_M2_mpyd_ll_s1, 18279}, // __builtin_HEXAGON_M2_mpyd_ll_s1
-      {Intrinsic::hexagon_M2_mpyd_nac_hh_s0, 18311}, // __builtin_HEXAGON_M2_mpyd_nac_hh_s0
-      {Intrinsic::hexagon_M2_mpyd_nac_hh_s1, 18347}, // __builtin_HEXAGON_M2_mpyd_nac_hh_s1
-      {Intrinsic::hexagon_M2_mpyd_nac_hl_s0, 18383}, // __builtin_HEXAGON_M2_mpyd_nac_hl_s0
-      {Intrinsic::hexagon_M2_mpyd_nac_hl_s1, 18419}, // __builtin_HEXAGON_M2_mpyd_nac_hl_s1
-      {Intrinsic::hexagon_M2_mpyd_nac_lh_s0, 18455}, // __builtin_HEXAGON_M2_mpyd_nac_lh_s0
-      {Intrinsic::hexagon_M2_mpyd_nac_lh_s1, 18491}, // __builtin_HEXAGON_M2_mpyd_nac_lh_s1
-      {Intrinsic::hexagon_M2_mpyd_nac_ll_s0, 18527}, // __builtin_HEXAGON_M2_mpyd_nac_ll_s0
-      {Intrinsic::hexagon_M2_mpyd_nac_ll_s1, 18563}, // __builtin_HEXAGON_M2_mpyd_nac_ll_s1
-      {Intrinsic::hexagon_M2_mpyd_rnd_hh_s0, 18599}, // __builtin_HEXAGON_M2_mpyd_rnd_hh_s0
-      {Intrinsic::hexagon_M2_mpyd_rnd_hh_s1, 18635}, // __builtin_HEXAGON_M2_mpyd_rnd_hh_s1
-      {Intrinsic::hexagon_M2_mpyd_rnd_hl_s0, 18671}, // __builtin_HEXAGON_M2_mpyd_rnd_hl_s0
-      {Intrinsic::hexagon_M2_mpyd_rnd_hl_s1, 18707}, // __builtin_HEXAGON_M2_mpyd_rnd_hl_s1
-      {Intrinsic::hexagon_M2_mpyd_rnd_lh_s0, 18743}, // __builtin_HEXAGON_M2_mpyd_rnd_lh_s0
-      {Intrinsic::hexagon_M2_mpyd_rnd_lh_s1, 18779}, // __builtin_HEXAGON_M2_mpyd_rnd_lh_s1
-      {Intrinsic::hexagon_M2_mpyd_rnd_ll_s0, 18815}, // __builtin_HEXAGON_M2_mpyd_rnd_ll_s0
-      {Intrinsic::hexagon_M2_mpyd_rnd_ll_s1, 18851}, // __builtin_HEXAGON_M2_mpyd_rnd_ll_s1
-      {Intrinsic::hexagon_M2_mpyi, 18887}, // __builtin_HEXAGON_M2_mpyi
-      {Intrinsic::hexagon_M2_mpysmi, 18913}, // __builtin_HEXAGON_M2_mpysmi
-      {Intrinsic::hexagon_M2_mpysu_up, 18941}, // __builtin_HEXAGON_M2_mpysu_up
-      {Intrinsic::hexagon_M2_mpyu_acc_hh_s0, 18971}, // __builtin_HEXAGON_M2_mpyu_acc_hh_s0
-      {Intrinsic::hexagon_M2_mpyu_acc_hh_s1, 19007}, // __builtin_HEXAGON_M2_mpyu_acc_hh_s1
-      {Intrinsic::hexagon_M2_mpyu_acc_hl_s0, 19043}, // __builtin_HEXAGON_M2_mpyu_acc_hl_s0
-      {Intrinsic::hexagon_M2_mpyu_acc_hl_s1, 19079}, // __builtin_HEXAGON_M2_mpyu_acc_hl_s1
-      {Intrinsic::hexagon_M2_mpyu_acc_lh_s0, 19115}, // __builtin_HEXAGON_M2_mpyu_acc_lh_s0
-      {Intrinsic::hexagon_M2_mpyu_acc_lh_s1, 19151}, // __builtin_HEXAGON_M2_mpyu_acc_lh_s1
-      {Intrinsic::hexagon_M2_mpyu_acc_ll_s0, 19187}, // __builtin_HEXAGON_M2_mpyu_acc_ll_s0
-      {Intrinsic::hexagon_M2_mpyu_acc_ll_s1, 19223}, // __builtin_HEXAGON_M2_mpyu_acc_ll_s1
-      {Intrinsic::hexagon_M2_mpyu_hh_s0, 19259}, // __builtin_HEXAGON_M2_mpyu_hh_s0
-      {Intrinsic::hexagon_M2_mpyu_hh_s1, 19291}, // __builtin_HEXAGON_M2_mpyu_hh_s1
-      {Intrinsic::hexagon_M2_mpyu_hl_s0, 19323}, // __builtin_HEXAGON_M2_mpyu_hl_s0
-      {Intrinsic::hexagon_M2_mpyu_hl_s1, 19355}, // __builtin_HEXAGON_M2_mpyu_hl_s1
-      {Intrinsic::hexagon_M2_mpyu_lh_s0, 19387}, // __builtin_HEXAGON_M2_mpyu_lh_s0
-      {Intrinsic::hexagon_M2_mpyu_lh_s1, 19419}, // __builtin_HEXAGON_M2_mpyu_lh_s1
-      {Intrinsic::hexagon_M2_mpyu_ll_s0, 19451}, // __builtin_HEXAGON_M2_mpyu_ll_s0
-      {Intrinsic::hexagon_M2_mpyu_ll_s1, 19483}, // __builtin_HEXAGON_M2_mpyu_ll_s1
-      {Intrinsic::hexagon_M2_mpyu_nac_hh_s0, 19515}, // __builtin_HEXAGON_M2_mpyu_nac_hh_s0
-      {Intrinsic::hexagon_M2_mpyu_nac_hh_s1, 19551}, // __builtin_HEXAGON_M2_mpyu_nac_hh_s1
-      {Intrinsic::hexagon_M2_mpyu_nac_hl_s0, 19587}, // __builtin_HEXAGON_M2_mpyu_nac_hl_s0
-      {Intrinsic::hexagon_M2_mpyu_nac_hl_s1, 19623}, // __builtin_HEXAGON_M2_mpyu_nac_hl_s1
-      {Intrinsic::hexagon_M2_mpyu_nac_lh_s0, 19659}, // __builtin_HEXAGON_M2_mpyu_nac_lh_s0
-      {Intrinsic::hexagon_M2_mpyu_nac_lh_s1, 19695}, // __builtin_HEXAGON_M2_mpyu_nac_lh_s1
-      {Intrinsic::hexagon_M2_mpyu_nac_ll_s0, 19731}, // __builtin_HEXAGON_M2_mpyu_nac_ll_s0
-      {Intrinsic::hexagon_M2_mpyu_nac_ll_s1, 19767}, // __builtin_HEXAGON_M2_mpyu_nac_ll_s1
-      {Intrinsic::hexagon_M2_mpyu_up, 19803}, // __builtin_HEXAGON_M2_mpyu_up
-      {Intrinsic::hexagon_M2_mpyud_acc_hh_s0, 19832}, // __builtin_HEXAGON_M2_mpyud_acc_hh_s0
-      {Intrinsic::hexagon_M2_mpyud_acc_hh_s1, 19869}, // __builtin_HEXAGON_M2_mpyud_acc_hh_s1
-      {Intrinsic::hexagon_M2_mpyud_acc_hl_s0, 19906}, // __builtin_HEXAGON_M2_mpyud_acc_hl_s0
-      {Intrinsic::hexagon_M2_mpyud_acc_hl_s1, 19943}, // __builtin_HEXAGON_M2_mpyud_acc_hl_s1
-      {Intrinsic::hexagon_M2_mpyud_acc_lh_s0, 19980}, // __builtin_HEXAGON_M2_mpyud_acc_lh_s0
-      {Intrinsic::hexagon_M2_mpyud_acc_lh_s1, 20017}, // __builtin_HEXAGON_M2_mpyud_acc_lh_s1
-      {Intrinsic::hexagon_M2_mpyud_acc_ll_s0, 20054}, // __builtin_HEXAGON_M2_mpyud_acc_ll_s0
-      {Intrinsic::hexagon_M2_mpyud_acc_ll_s1, 20091}, // __builtin_HEXAGON_M2_mpyud_acc_ll_s1
-      {Intrinsic::hexagon_M2_mpyud_hh_s0, 20128}, // __builtin_HEXAGON_M2_mpyud_hh_s0
-      {Intrinsic::hexagon_M2_mpyud_hh_s1, 20161}, // __builtin_HEXAGON_M2_mpyud_hh_s1
-      {Intrinsic::hexagon_M2_mpyud_hl_s0, 20194}, // __builtin_HEXAGON_M2_mpyud_hl_s0
-      {Intrinsic::hexagon_M2_mpyud_hl_s1, 20227}, // __builtin_HEXAGON_M2_mpyud_hl_s1
-      {Intrinsic::hexagon_M2_mpyud_lh_s0, 20260}, // __builtin_HEXAGON_M2_mpyud_lh_s0
-      {Intrinsic::hexagon_M2_mpyud_lh_s1, 20293}, // __builtin_HEXAGON_M2_mpyud_lh_s1
-      {Intrinsic::hexagon_M2_mpyud_ll_s0, 20326}, // __builtin_HEXAGON_M2_mpyud_ll_s0
-      {Intrinsic::hexagon_M2_mpyud_ll_s1, 20359}, // __builtin_HEXAGON_M2_mpyud_ll_s1
-      {Intrinsic::hexagon_M2_mpyud_nac_hh_s0, 20392}, // __builtin_HEXAGON_M2_mpyud_nac_hh_s0
-      {Intrinsic::hexagon_M2_mpyud_nac_hh_s1, 20429}, // __builtin_HEXAGON_M2_mpyud_nac_hh_s1
-      {Intrinsic::hexagon_M2_mpyud_nac_hl_s0, 20466}, // __builtin_HEXAGON_M2_mpyud_nac_hl_s0
-      {Intrinsic::hexagon_M2_mpyud_nac_hl_s1, 20503}, // __builtin_HEXAGON_M2_mpyud_nac_hl_s1
-      {Intrinsic::hexagon_M2_mpyud_nac_lh_s0, 20540}, // __builtin_HEXAGON_M2_mpyud_nac_lh_s0
-      {Intrinsic::hexagon_M2_mpyud_nac_lh_s1, 20577}, // __builtin_HEXAGON_M2_mpyud_nac_lh_s1
-      {Intrinsic::hexagon_M2_mpyud_nac_ll_s0, 20614}, // __builtin_HEXAGON_M2_mpyud_nac_ll_s0
-      {Intrinsic::hexagon_M2_mpyud_nac_ll_s1, 20651}, // __builtin_HEXAGON_M2_mpyud_nac_ll_s1
-      {Intrinsic::hexagon_M2_mpyui, 20688}, // __builtin_HEXAGON_M2_mpyui
-      {Intrinsic::hexagon_M2_nacci, 20715}, // __builtin_HEXAGON_M2_nacci
-      {Intrinsic::hexagon_M2_naccii, 20742}, // __builtin_HEXAGON_M2_naccii
-      {Intrinsic::hexagon_M2_subacc, 20770}, // __builtin_HEXAGON_M2_subacc
-      {Intrinsic::hexagon_M2_vabsdiffh, 20798}, // __builtin_HEXAGON_M2_vabsdiffh
-      {Intrinsic::hexagon_M2_vabsdiffw, 20829}, // __builtin_HEXAGON_M2_vabsdiffw
-      {Intrinsic::hexagon_M2_vcmac_s0_sat_i, 20860}, // __builtin_HEXAGON_M2_vcmac_s0_sat_i
-      {Intrinsic::hexagon_M2_vcmac_s0_sat_r, 20896}, // __builtin_HEXAGON_M2_vcmac_s0_sat_r
-      {Intrinsic::hexagon_M2_vcmpy_s0_sat_i, 20932}, // __builtin_HEXAGON_M2_vcmpy_s0_sat_i
-      {Intrinsic::hexagon_M2_vcmpy_s0_sat_r, 20968}, // __builtin_HEXAGON_M2_vcmpy_s0_sat_r
-      {Intrinsic::hexagon_M2_vcmpy_s1_sat_i, 21004}, // __builtin_HEXAGON_M2_vcmpy_s1_sat_i
-      {Intrinsic::hexagon_M2_vcmpy_s1_sat_r, 21040}, // __builtin_HEXAGON_M2_vcmpy_s1_sat_r
-      {Intrinsic::hexagon_M2_vdmacs_s0, 21076}, // __builtin_HEXAGON_M2_vdmacs_s0
-      {Intrinsic::hexagon_M2_vdmacs_s1, 21107}, // __builtin_HEXAGON_M2_vdmacs_s1
-      {Intrinsic::hexagon_M2_vdmpyrs_s0, 21138}, // __builtin_HEXAGON_M2_vdmpyrs_s0
-      {Intrinsic::hexagon_M2_vdmpyrs_s1, 21170}, // __builtin_HEXAGON_M2_vdmpyrs_s1
-      {Intrinsic::hexagon_M2_vdmpys_s0, 21202}, // __builtin_HEXAGON_M2_vdmpys_s0
-      {Intrinsic::hexagon_M2_vdmpys_s1, 21233}, // __builtin_HEXAGON_M2_vdmpys_s1
-      {Intrinsic::hexagon_M2_vmac2, 21264}, // __builtin_HEXAGON_M2_vmac2
-      {Intrinsic::hexagon_M2_vmac2es, 21291}, // __builtin_HEXAGON_M2_vmac2es
-      {Intrinsic::hexagon_M2_vmac2es_s0, 21320}, // __builtin_HEXAGON_M2_vmac2es_s0
-      {Intrinsic::hexagon_M2_vmac2es_s1, 21352}, // __builtin_HEXAGON_M2_vmac2es_s1
-      {Intrinsic::hexagon_M2_vmac2s_s0, 21384}, // __builtin_HEXAGON_M2_vmac2s_s0
-      {Intrinsic::hexagon_M2_vmac2s_s1, 21415}, // __builtin_HEXAGON_M2_vmac2s_s1
-      {Intrinsic::hexagon_M2_vmac2su_s0, 21446}, // __builtin_HEXAGON_M2_vmac2su_s0
-      {Intrinsic::hexagon_M2_vmac2su_s1, 21478}, // __builtin_HEXAGON_M2_vmac2su_s1
-      {Intrinsic::hexagon_M2_vmpy2es_s0, 21510}, // __builtin_HEXAGON_M2_vmpy2es_s0
-      {Intrinsic::hexagon_M2_vmpy2es_s1, 21542}, // __builtin_HEXAGON_M2_vmpy2es_s1
-      {Intrinsic::hexagon_M2_vmpy2s_s0, 21574}, // __builtin_HEXAGON_M2_vmpy2s_s0
-      {Intrinsic::hexagon_M2_vmpy2s_s0pack, 21605}, // __builtin_HEXAGON_M2_vmpy2s_s0pack
-      {Intrinsic::hexagon_M2_vmpy2s_s1, 21640}, // __builtin_HEXAGON_M2_vmpy2s_s1
-      {Intrinsic::hexagon_M2_vmpy2s_s1pack, 21671}, // __builtin_HEXAGON_M2_vmpy2s_s1pack
-      {Intrinsic::hexagon_M2_vmpy2su_s0, 21706}, // __builtin_HEXAGON_M2_vmpy2su_s0
-      {Intrinsic::hexagon_M2_vmpy2su_s1, 21738}, // __builtin_HEXAGON_M2_vmpy2su_s1
-      {Intrinsic::hexagon_M2_vraddh, 21770}, // __builtin_HEXAGON_M2_vraddh
-      {Intrinsic::hexagon_M2_vradduh, 21798}, // __builtin_HEXAGON_M2_vradduh
-      {Intrinsic::hexagon_M2_vrcmaci_s0, 21827}, // __builtin_HEXAGON_M2_vrcmaci_s0
-      {Intrinsic::hexagon_M2_vrcmaci_s0c, 21859}, // __builtin_HEXAGON_M2_vrcmaci_s0c
-      {Intrinsic::hexagon_M2_vrcmacr_s0, 21892}, // __builtin_HEXAGON_M2_vrcmacr_s0
-      {Intrinsic::hexagon_M2_vrcmacr_s0c, 21924}, // __builtin_HEXAGON_M2_vrcmacr_s0c
-      {Intrinsic::hexagon_M2_vrcmpyi_s0, 21957}, // __builtin_HEXAGON_M2_vrcmpyi_s0
-      {Intrinsic::hexagon_M2_vrcmpyi_s0c, 21989}, // __builtin_HEXAGON_M2_vrcmpyi_s0c
-      {Intrinsic::hexagon_M2_vrcmpyr_s0, 22022}, // __builtin_HEXAGON_M2_vrcmpyr_s0
-      {Intrinsic::hexagon_M2_vrcmpyr_s0c, 22054}, // __builtin_HEXAGON_M2_vrcmpyr_s0c
-      {Intrinsic::hexagon_M2_vrcmpys_acc_s1, 22087}, // __builtin_HEXAGON_M2_vrcmpys_acc_s1
-      {Intrinsic::hexagon_M2_vrcmpys_s1, 22123}, // __builtin_HEXAGON_M2_vrcmpys_s1
-      {Intrinsic::hexagon_M2_vrcmpys_s1rp, 22155}, // __builtin_HEXAGON_M2_vrcmpys_s1rp
-      {Intrinsic::hexagon_M2_vrmac_s0, 22189}, // __builtin_HEXAGON_M2_vrmac_s0
-      {Intrinsic::hexagon_M2_vrmpy_s0, 22219}, // __builtin_HEXAGON_M2_vrmpy_s0
-      {Intrinsic::hexagon_M2_xor_xacc, 22249}, // __builtin_HEXAGON_M2_xor_xacc
-      {Intrinsic::hexagon_M4_and_and, 22279}, // __builtin_HEXAGON_M4_and_and
-      {Intrinsic::hexagon_M4_and_andn, 22308}, // __builtin_HEXAGON_M4_and_andn
-      {Intrinsic::hexagon_M4_and_or, 22338}, // __builtin_HEXAGON_M4_and_or
-      {Intrinsic::hexagon_M4_and_xor, 22366}, // __builtin_HEXAGON_M4_and_xor
-      {Intrinsic::hexagon_M4_cmpyi_wh, 22395}, // __builtin_HEXAGON_M4_cmpyi_wh
-      {Intrinsic::hexagon_M4_cmpyi_whc, 22425}, // __builtin_HEXAGON_M4_cmpyi_whc
-      {Intrinsic::hexagon_M4_cmpyr_wh, 22456}, // __builtin_HEXAGON_M4_cmpyr_wh
-      {Intrinsic::hexagon_M4_cmpyr_whc, 22486}, // __builtin_HEXAGON_M4_cmpyr_whc
-      {Intrinsic::hexagon_M4_mac_up_s1_sat, 22517}, // __builtin_HEXAGON_M4_mac_up_s1_sat
-      {Intrinsic::hexagon_M4_mpyri_addi, 22552}, // __builtin_HEXAGON_M4_mpyri_addi
-      {Intrinsic::hexagon_M4_mpyri_addr, 22584}, // __builtin_HEXAGON_M4_mpyri_addr
-      {Intrinsic::hexagon_M4_mpyri_addr_u2, 22616}, // __builtin_HEXAGON_M4_mpyri_addr_u2
-      {Intrinsic::hexagon_M4_mpyrr_addi, 22651}, // __builtin_HEXAGON_M4_mpyrr_addi
-      {Intrinsic::hexagon_M4_mpyrr_addr, 22683}, // __builtin_HEXAGON_M4_mpyrr_addr
-      {Intrinsic::hexagon_M4_nac_up_s1_sat, 22715}, // __builtin_HEXAGON_M4_nac_up_s1_sat
-      {Intrinsic::hexagon_M4_or_and, 22750}, // __builtin_HEXAGON_M4_or_and
-      {Intrinsic::hexagon_M4_or_andn, 22778}, // __builtin_HEXAGON_M4_or_andn
-      {Intrinsic::hexagon_M4_or_or, 22807}, // __builtin_HEXAGON_M4_or_or
-      {Intrinsic::hexagon_M4_or_xor, 22834}, // __builtin_HEXAGON_M4_or_xor
-      {Intrinsic::hexagon_M4_pmpyw, 22862}, // __builtin_HEXAGON_M4_pmpyw
-      {Intrinsic::hexagon_M4_pmpyw_acc, 22889}, // __builtin_HEXAGON_M4_pmpyw_acc
-      {Intrinsic::hexagon_M4_vpmpyh, 22920}, // __builtin_HEXAGON_M4_vpmpyh
-      {Intrinsic::hexagon_M4_vpmpyh_acc, 22948}, // __builtin_HEXAGON_M4_vpmpyh_acc
-      {Intrinsic::hexagon_M4_vrmpyeh_acc_s0, 22980}, // __builtin_HEXAGON_M4_vrmpyeh_acc_s0
-      {Intrinsic::hexagon_M4_vrmpyeh_acc_s1, 23016}, // __builtin_HEXAGON_M4_vrmpyeh_acc_s1
-      {Intrinsic::hexagon_M4_vrmpyeh_s0, 23052}, // __builtin_HEXAGON_M4_vrmpyeh_s0
-      {Intrinsic::hexagon_M4_vrmpyeh_s1, 23084}, // __builtin_HEXAGON_M4_vrmpyeh_s1
-      {Intrinsic::hexagon_M4_vrmpyoh_acc_s0, 23116}, // __builtin_HEXAGON_M4_vrmpyoh_acc_s0
-      {Intrinsic::hexagon_M4_vrmpyoh_acc_s1, 23152}, // __builtin_HEXAGON_M4_vrmpyoh_acc_s1
-      {Intrinsic::hexagon_M4_vrmpyoh_s0, 23188}, // __builtin_HEXAGON_M4_vrmpyoh_s0
-      {Intrinsic::hexagon_M4_vrmpyoh_s1, 23220}, // __builtin_HEXAGON_M4_vrmpyoh_s1
-      {Intrinsic::hexagon_M4_xor_and, 23252}, // __builtin_HEXAGON_M4_xor_and
-      {Intrinsic::hexagon_M4_xor_andn, 23281}, // __builtin_HEXAGON_M4_xor_andn
-      {Intrinsic::hexagon_M4_xor_or, 23311}, // __builtin_HEXAGON_M4_xor_or
-      {Intrinsic::hexagon_M4_xor_xacc, 23339}, // __builtin_HEXAGON_M4_xor_xacc
-      {Intrinsic::hexagon_M5_vdmacbsu, 23369}, // __builtin_HEXAGON_M5_vdmacbsu
-      {Intrinsic::hexagon_M5_vdmpybsu, 23399}, // __builtin_HEXAGON_M5_vdmpybsu
-      {Intrinsic::hexagon_M5_vmacbsu, 23429}, // __builtin_HEXAGON_M5_vmacbsu
-      {Intrinsic::hexagon_M5_vmacbuu, 23458}, // __builtin_HEXAGON_M5_vmacbuu
-      {Intrinsic::hexagon_M5_vmpybsu, 23487}, // __builtin_HEXAGON_M5_vmpybsu
-      {Intrinsic::hexagon_M5_vmpybuu, 23516}, // __builtin_HEXAGON_M5_vmpybuu
-      {Intrinsic::hexagon_M5_vrmacbsu, 23545}, // __builtin_HEXAGON_M5_vrmacbsu
-      {Intrinsic::hexagon_M5_vrmacbuu, 23575}, // __builtin_HEXAGON_M5_vrmacbuu
-      {Intrinsic::hexagon_M5_vrmpybsu, 23605}, // __builtin_HEXAGON_M5_vrmpybsu
-      {Intrinsic::hexagon_M5_vrmpybuu, 23635}, // __builtin_HEXAGON_M5_vrmpybuu
-      {Intrinsic::hexagon_M6_vabsdiffb, 23665}, // __builtin_HEXAGON_M6_vabsdiffb
-      {Intrinsic::hexagon_M6_vabsdiffub, 23696}, // __builtin_HEXAGON_M6_vabsdiffub
-      {Intrinsic::hexagon_S2_addasl_rrri, 23728}, // __builtin_HEXAGON_S2_addasl_rrri
-      {Intrinsic::hexagon_S2_asl_i_p, 23761}, // __builtin_HEXAGON_S2_asl_i_p
-      {Intrinsic::hexagon_S2_asl_i_p_acc, 23790}, // __builtin_HEXAGON_S2_asl_i_p_acc
-      {Intrinsic::hexagon_S2_asl_i_p_and, 23823}, // __builtin_HEXAGON_S2_asl_i_p_and
-      {Intrinsic::hexagon_S2_asl_i_p_nac, 23856}, // __builtin_HEXAGON_S2_asl_i_p_nac
-      {Intrinsic::hexagon_S2_asl_i_p_or, 23889}, // __builtin_HEXAGON_S2_asl_i_p_or
-      {Intrinsic::hexagon_S2_asl_i_p_xacc, 23921}, // __builtin_HEXAGON_S2_asl_i_p_xacc
-      {Intrinsic::hexagon_S2_asl_i_r, 23955}, // __builtin_HEXAGON_S2_asl_i_r
-      {Intrinsic::hexagon_S2_asl_i_r_acc, 23984}, // __builtin_HEXAGON_S2_asl_i_r_acc
-      {Intrinsic::hexagon_S2_asl_i_r_and, 24017}, // __builtin_HEXAGON_S2_asl_i_r_and
-      {Intrinsic::hexagon_S2_asl_i_r_nac, 24050}, // __builtin_HEXAGON_S2_asl_i_r_nac
-      {Intrinsic::hexagon_S2_asl_i_r_or, 24083}, // __builtin_HEXAGON_S2_asl_i_r_or
-      {Intrinsic::hexagon_S2_asl_i_r_sat, 24115}, // __builtin_HEXAGON_S2_asl_i_r_sat
-      {Intrinsic::hexagon_S2_asl_i_r_xacc, 24148}, // __builtin_HEXAGON_S2_asl_i_r_xacc
-      {Intrinsic::hexagon_S2_asl_i_vh, 24182}, // __builtin_HEXAGON_S2_asl_i_vh
-      {Intrinsic::hexagon_S2_asl_i_vw, 24212}, // __builtin_HEXAGON_S2_asl_i_vw
-      {Intrinsic::hexagon_S2_asl_r_p, 24242}, // __builtin_HEXAGON_S2_asl_r_p
-      {Intrinsic::hexagon_S2_asl_r_p_acc, 24271}, // __builtin_HEXAGON_S2_asl_r_p_acc
-      {Intrinsic::hexagon_S2_asl_r_p_and, 24304}, // __builtin_HEXAGON_S2_asl_r_p_and
-      {Intrinsic::hexagon_S2_asl_r_p_nac, 24337}, // __builtin_HEXAGON_S2_asl_r_p_nac
-      {Intrinsic::hexagon_S2_asl_r_p_or, 24370}, // __builtin_HEXAGON_S2_asl_r_p_or
-      {Intrinsic::hexagon_S2_asl_r_p_xor, 24402}, // __builtin_HEXAGON_S2_asl_r_p_xor
-      {Intrinsic::hexagon_S2_asl_r_r, 24435}, // __builtin_HEXAGON_S2_asl_r_r
-      {Intrinsic::hexagon_S2_asl_r_r_acc, 24464}, // __builtin_HEXAGON_S2_asl_r_r_acc
-      {Intrinsic::hexagon_S2_asl_r_r_and, 24497}, // __builtin_HEXAGON_S2_asl_r_r_and
-      {Intrinsic::hexagon_S2_asl_r_r_nac, 24530}, // __builtin_HEXAGON_S2_asl_r_r_nac
-      {Intrinsic::hexagon_S2_asl_r_r_or, 24563}, // __builtin_HEXAGON_S2_asl_r_r_or
-      {Intrinsic::hexagon_S2_asl_r_r_sat, 24595}, // __builtin_HEXAGON_S2_asl_r_r_sat
-      {Intrinsic::hexagon_S2_asl_r_vh, 24628}, // __builtin_HEXAGON_S2_asl_r_vh
-      {Intrinsic::hexagon_S2_asl_r_vw, 24658}, // __builtin_HEXAGON_S2_asl_r_vw
-      {Intrinsic::hexagon_S2_asr_i_p, 24688}, // __builtin_HEXAGON_S2_asr_i_p
-      {Intrinsic::hexagon_S2_asr_i_p_acc, 24717}, // __builtin_HEXAGON_S2_asr_i_p_acc
-      {Intrinsic::hexagon_S2_asr_i_p_and, 24750}, // __builtin_HEXAGON_S2_asr_i_p_and
-      {Intrinsic::hexagon_S2_asr_i_p_nac, 24783}, // __builtin_HEXAGON_S2_asr_i_p_nac
-      {Intrinsic::hexagon_S2_asr_i_p_or, 24816}, // __builtin_HEXAGON_S2_asr_i_p_or
-      {Intrinsic::hexagon_S2_asr_i_p_rnd, 24848}, // __builtin_HEXAGON_S2_asr_i_p_rnd
-      {Intrinsic::hexagon_S2_asr_i_p_rnd_goodsyntax, 24881}, // __builtin_HEXAGON_S2_asr_i_p_rnd_goodsyntax
-      {Intrinsic::hexagon_S2_asr_i_r, 24925}, // __builtin_HEXAGON_S2_asr_i_r
-      {Intrinsic::hexagon_S2_asr_i_r_acc, 24954}, // __builtin_HEXAGON_S2_asr_i_r_acc
-      {Intrinsic::hexagon_S2_asr_i_r_and, 24987}, // __builtin_HEXAGON_S2_asr_i_r_and
-      {Intrinsic::hexagon_S2_asr_i_r_nac, 25020}, // __builtin_HEXAGON_S2_asr_i_r_nac
-      {Intrinsic::hexagon_S2_asr_i_r_or, 25053}, // __builtin_HEXAGON_S2_asr_i_r_or
-      {Intrinsic::hexagon_S2_asr_i_r_rnd, 25085}, // __builtin_HEXAGON_S2_asr_i_r_rnd
-      {Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax, 25118}, // __builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax
-      {Intrinsic::hexagon_S2_asr_i_svw_trun, 25162}, // __builtin_HEXAGON_S2_asr_i_svw_trun
-      {Intrinsic::hexagon_S2_asr_i_vh, 25198}, // __builtin_HEXAGON_S2_asr_i_vh
-      {Intrinsic::hexagon_S2_asr_i_vw, 25228}, // __builtin_HEXAGON_S2_asr_i_vw
-      {Intrinsic::hexagon_S2_asr_r_p, 25258}, // __builtin_HEXAGON_S2_asr_r_p
-      {Intrinsic::hexagon_S2_asr_r_p_acc, 25287}, // __builtin_HEXAGON_S2_asr_r_p_acc
-      {Intrinsic::hexagon_S2_asr_r_p_and, 25320}, // __builtin_HEXAGON_S2_asr_r_p_and
-      {Intrinsic::hexagon_S2_asr_r_p_nac, 25353}, // __builtin_HEXAGON_S2_asr_r_p_nac
-      {Intrinsic::hexagon_S2_asr_r_p_or, 25386}, // __builtin_HEXAGON_S2_asr_r_p_or
-      {Intrinsic::hexagon_S2_asr_r_p_xor, 25418}, // __builtin_HEXAGON_S2_asr_r_p_xor
-      {Intrinsic::hexagon_S2_asr_r_r, 25451}, // __builtin_HEXAGON_S2_asr_r_r
-      {Intrinsic::hexagon_S2_asr_r_r_acc, 25480}, // __builtin_HEXAGON_S2_asr_r_r_acc
-      {Intrinsic::hexagon_S2_asr_r_r_and, 25513}, // __builtin_HEXAGON_S2_asr_r_r_and
-      {Intrinsic::hexagon_S2_asr_r_r_nac, 25546}, // __builtin_HEXAGON_S2_asr_r_r_nac
-      {Intrinsic::hexagon_S2_asr_r_r_or, 25579}, // __builtin_HEXAGON_S2_asr_r_r_or
-      {Intrinsic::hexagon_S2_asr_r_r_sat, 25611}, // __builtin_HEXAGON_S2_asr_r_r_sat
-      {Intrinsic::hexagon_S2_asr_r_svw_trun, 25644}, // __builtin_HEXAGON_S2_asr_r_svw_trun
-      {Intrinsic::hexagon_S2_asr_r_vh, 25680}, // __builtin_HEXAGON_S2_asr_r_vh
-      {Intrinsic::hexagon_S2_asr_r_vw, 25710}, // __builtin_HEXAGON_S2_asr_r_vw
-      {Intrinsic::hexagon_S2_brev, 25740}, // __builtin_HEXAGON_S2_brev
-      {Intrinsic::hexagon_S2_brevp, 25766}, // __builtin_HEXAGON_S2_brevp
-      {Intrinsic::hexagon_S2_cabacencbin, 25793}, // __builtin_HEXAGON_S2_cabacencbin
-      {Intrinsic::hexagon_S2_cl0, 25826}, // __builtin_HEXAGON_S2_cl0
-      {Intrinsic::hexagon_S2_cl0p, 25851}, // __builtin_HEXAGON_S2_cl0p
-      {Intrinsic::hexagon_S2_cl1, 25877}, // __builtin_HEXAGON_S2_cl1
-      {Intrinsic::hexagon_S2_cl1p, 25902}, // __builtin_HEXAGON_S2_cl1p
-      {Intrinsic::hexagon_S2_clb, 25928}, // __builtin_HEXAGON_S2_clb
-      {Intrinsic::hexagon_S2_clbnorm, 25953}, // __builtin_HEXAGON_S2_clbnorm
-      {Intrinsic::hexagon_S2_clbp, 25982}, // __builtin_HEXAGON_S2_clbp
-      {Intrinsic::hexagon_S2_clrbit_i, 26008}, // __builtin_HEXAGON_S2_clrbit_i
-      {Intrinsic::hexagon_S2_clrbit_r, 26038}, // __builtin_HEXAGON_S2_clrbit_r
-      {Intrinsic::hexagon_S2_ct0, 26068}, // __builtin_HEXAGON_S2_ct0
-      {Intrinsic::hexagon_S2_ct0p, 26093}, // __builtin_HEXAGON_S2_ct0p
-      {Intrinsic::hexagon_S2_ct1, 26119}, // __builtin_HEXAGON_S2_ct1
-      {Intrinsic::hexagon_S2_ct1p, 26144}, // __builtin_HEXAGON_S2_ct1p
-      {Intrinsic::hexagon_S2_deinterleave, 26170}, // __builtin_HEXAGON_S2_deinterleave
-      {Intrinsic::hexagon_S2_extractu, 26204}, // __builtin_HEXAGON_S2_extractu
-      {Intrinsic::hexagon_S2_extractu_rp, 26234}, // __builtin_HEXAGON_S2_extractu_rp
-      {Intrinsic::hexagon_S2_extractup, 26267}, // __builtin_HEXAGON_S2_extractup
-      {Intrinsic::hexagon_S2_extractup_rp, 26298}, // __builtin_HEXAGON_S2_extractup_rp
-      {Intrinsic::hexagon_S2_insert, 26332}, // __builtin_HEXAGON_S2_insert
-      {Intrinsic::hexagon_S2_insert_rp, 26360}, // __builtin_HEXAGON_S2_insert_rp
-      {Intrinsic::hexagon_S2_insertp, 26391}, // __builtin_HEXAGON_S2_insertp
-      {Intrinsic::hexagon_S2_insertp_rp, 26420}, // __builtin_HEXAGON_S2_insertp_rp
-      {Intrinsic::hexagon_S2_interleave, 26452}, // __builtin_HEXAGON_S2_interleave
-      {Intrinsic::hexagon_S2_lfsp, 26484}, // __builtin_HEXAGON_S2_lfsp
-      {Intrinsic::hexagon_S2_lsl_r_p, 26510}, // __builtin_HEXAGON_S2_lsl_r_p
-      {Intrinsic::hexagon_S2_lsl_r_p_acc, 26539}, // __builtin_HEXAGON_S2_lsl_r_p_acc
-      {Intrinsic::hexagon_S2_lsl_r_p_and, 26572}, // __builtin_HEXAGON_S2_lsl_r_p_and
-      {Intrinsic::hexagon_S2_lsl_r_p_nac, 26605}, // __builtin_HEXAGON_S2_lsl_r_p_nac
-      {Intrinsic::hexagon_S2_lsl_r_p_or, 26638}, // __builtin_HEXAGON_S2_lsl_r_p_or
-      {Intrinsic::hexagon_S2_lsl_r_p_xor, 26670}, // __builtin_HEXAGON_S2_lsl_r_p_xor
-      {Intrinsic::hexagon_S2_lsl_r_r, 26703}, // __builtin_HEXAGON_S2_lsl_r_r
-      {Intrinsic::hexagon_S2_lsl_r_r_acc, 26732}, // __builtin_HEXAGON_S2_lsl_r_r_acc
-      {Intrinsic::hexagon_S2_lsl_r_r_and, 26765}, // __builtin_HEXAGON_S2_lsl_r_r_and
-      {Intrinsic::hexagon_S2_lsl_r_r_nac, 26798}, // __builtin_HEXAGON_S2_lsl_r_r_nac
-      {Intrinsic::hexagon_S2_lsl_r_r_or, 26831}, // __builtin_HEXAGON_S2_lsl_r_r_or
-      {Intrinsic::hexagon_S2_lsl_r_vh, 26863}, // __builtin_HEXAGON_S2_lsl_r_vh
-      {Intrinsic::hexagon_S2_lsl_r_vw, 26893}, // __builtin_HEXAGON_S2_lsl_r_vw
-      {Intrinsic::hexagon_S2_lsr_i_p, 26923}, // __builtin_HEXAGON_S2_lsr_i_p
-      {Intrinsic::hexagon_S2_lsr_i_p_acc, 26952}, // __builtin_HEXAGON_S2_lsr_i_p_acc
-      {Intrinsic::hexagon_S2_lsr_i_p_and, 26985}, // __builtin_HEXAGON_S2_lsr_i_p_and
-      {Intrinsic::hexagon_S2_lsr_i_p_nac, 27018}, // __builtin_HEXAGON_S2_lsr_i_p_nac
-      {Intrinsic::hexagon_S2_lsr_i_p_or, 27051}, // __builtin_HEXAGON_S2_lsr_i_p_or
-      {Intrinsic::hexagon_S2_lsr_i_p_xacc, 27083}, // __builtin_HEXAGON_S2_lsr_i_p_xacc
-      {Intrinsic::hexagon_S2_lsr_i_r, 27117}, // __builtin_HEXAGON_S2_lsr_i_r
-      {Intrinsic::hexagon_S2_lsr_i_r_acc, 27146}, // __builtin_HEXAGON_S2_lsr_i_r_acc
-      {Intrinsic::hexagon_S2_lsr_i_r_and, 27179}, // __builtin_HEXAGON_S2_lsr_i_r_and
-      {Intrinsic::hexagon_S2_lsr_i_r_nac, 27212}, // __builtin_HEXAGON_S2_lsr_i_r_nac
-      {Intrinsic::hexagon_S2_lsr_i_r_or, 27245}, // __builtin_HEXAGON_S2_lsr_i_r_or
-      {Intrinsic::hexagon_S2_lsr_i_r_xacc, 27277}, // __builtin_HEXAGON_S2_lsr_i_r_xacc
-      {Intrinsic::hexagon_S2_lsr_i_vh, 27311}, // __builtin_HEXAGON_S2_lsr_i_vh
-      {Intrinsic::hexagon_S2_lsr_i_vw, 27341}, // __builtin_HEXAGON_S2_lsr_i_vw
-      {Intrinsic::hexagon_S2_lsr_r_p, 27371}, // __builtin_HEXAGON_S2_lsr_r_p
-      {Intrinsic::hexagon_S2_lsr_r_p_acc, 27400}, // __builtin_HEXAGON_S2_lsr_r_p_acc
-      {Intrinsic::hexagon_S2_lsr_r_p_and, 27433}, // __builtin_HEXAGON_S2_lsr_r_p_and
-      {Intrinsic::hexagon_S2_lsr_r_p_nac, 27466}, // __builtin_HEXAGON_S2_lsr_r_p_nac
-      {Intrinsic::hexagon_S2_lsr_r_p_or, 27499}, // __builtin_HEXAGON_S2_lsr_r_p_or
-      {Intrinsic::hexagon_S2_lsr_r_p_xor, 27531}, // __builtin_HEXAGON_S2_lsr_r_p_xor
-      {Intrinsic::hexagon_S2_lsr_r_r, 27564}, // __builtin_HEXAGON_S2_lsr_r_r
-      {Intrinsic::hexagon_S2_lsr_r_r_acc, 27593}, // __builtin_HEXAGON_S2_lsr_r_r_acc
-      {Intrinsic::hexagon_S2_lsr_r_r_and, 27626}, // __builtin_HEXAGON_S2_lsr_r_r_and
-      {Intrinsic::hexagon_S2_lsr_r_r_nac, 27659}, // __builtin_HEXAGON_S2_lsr_r_r_nac
-      {Intrinsic::hexagon_S2_lsr_r_r_or, 27692}, // __builtin_HEXAGON_S2_lsr_r_r_or
-      {Intrinsic::hexagon_S2_lsr_r_vh, 27724}, // __builtin_HEXAGON_S2_lsr_r_vh
-      {Intrinsic::hexagon_S2_lsr_r_vw, 27754}, // __builtin_HEXAGON_S2_lsr_r_vw
-      {Intrinsic::hexagon_S2_packhl, 27784}, // __builtin_HEXAGON_S2_packhl
-      {Intrinsic::hexagon_S2_parityp, 27812}, // __builtin_HEXAGON_S2_parityp
-      {Intrinsic::hexagon_S2_setbit_i, 27841}, // __builtin_HEXAGON_S2_setbit_i
-      {Intrinsic::hexagon_S2_setbit_r, 27871}, // __builtin_HEXAGON_S2_setbit_r
-      {Intrinsic::hexagon_S2_shuffeb, 27901}, // __builtin_HEXAGON_S2_shuffeb
-      {Intrinsic::hexagon_S2_shuffeh, 27930}, // __builtin_HEXAGON_S2_shuffeh
-      {Intrinsic::hexagon_S2_shuffob, 27959}, // __builtin_HEXAGON_S2_shuffob
-      {Intrinsic::hexagon_S2_shuffoh, 27988}, // __builtin_HEXAGON_S2_shuffoh
-      {Intrinsic::hexagon_S2_storew_locked, 28114}, // __builtin_HEXAGON_S2_storew_locked
-      {Intrinsic::hexagon_S2_svsathb, 28149}, // __builtin_HEXAGON_S2_svsathb
-      {Intrinsic::hexagon_S2_svsathub, 28178}, // __builtin_HEXAGON_S2_svsathub
-      {Intrinsic::hexagon_S2_tableidxb_goodsyntax, 28208}, // __builtin_HEXAGON_S2_tableidxb_goodsyntax
-      {Intrinsic::hexagon_S2_tableidxd_goodsyntax, 28250}, // __builtin_HEXAGON_S2_tableidxd_goodsyntax
-      {Intrinsic::hexagon_S2_tableidxh_goodsyntax, 28292}, // __builtin_HEXAGON_S2_tableidxh_goodsyntax
-      {Intrinsic::hexagon_S2_tableidxw_goodsyntax, 28334}, // __builtin_HEXAGON_S2_tableidxw_goodsyntax
-      {Intrinsic::hexagon_S2_togglebit_i, 28376}, // __builtin_HEXAGON_S2_togglebit_i
-      {Intrinsic::hexagon_S2_togglebit_r, 28409}, // __builtin_HEXAGON_S2_togglebit_r
-      {Intrinsic::hexagon_S2_tstbit_i, 28442}, // __builtin_HEXAGON_S2_tstbit_i
-      {Intrinsic::hexagon_S2_tstbit_r, 28472}, // __builtin_HEXAGON_S2_tstbit_r
-      {Intrinsic::hexagon_S2_valignib, 28502}, // __builtin_HEXAGON_S2_valignib
-      {Intrinsic::hexagon_S2_valignrb, 28532}, // __builtin_HEXAGON_S2_valignrb
-      {Intrinsic::hexagon_S2_vcnegh, 28562}, // __builtin_HEXAGON_S2_vcnegh
-      {Intrinsic::hexagon_S2_vcrotate, 28590}, // __builtin_HEXAGON_S2_vcrotate
-      {Intrinsic::hexagon_S2_vrcnegh, 28620}, // __builtin_HEXAGON_S2_vrcnegh
-      {Intrinsic::hexagon_S2_vrndpackwh, 28649}, // __builtin_HEXAGON_S2_vrndpackwh
-      {Intrinsic::hexagon_S2_vrndpackwhs, 28681}, // __builtin_HEXAGON_S2_vrndpackwhs
-      {Intrinsic::hexagon_S2_vsathb, 28714}, // __builtin_HEXAGON_S2_vsathb
-      {Intrinsic::hexagon_S2_vsathb_nopack, 28742}, // __builtin_HEXAGON_S2_vsathb_nopack
-      {Intrinsic::hexagon_S2_vsathub, 28777}, // __builtin_HEXAGON_S2_vsathub
-      {Intrinsic::hexagon_S2_vsathub_nopack, 28806}, // __builtin_HEXAGON_S2_vsathub_nopack
-      {Intrinsic::hexagon_S2_vsatwh, 28842}, // __builtin_HEXAGON_S2_vsatwh
-      {Intrinsic::hexagon_S2_vsatwh_nopack, 28870}, // __builtin_HEXAGON_S2_vsatwh_nopack
-      {Intrinsic::hexagon_S2_vsatwuh, 28905}, // __builtin_HEXAGON_S2_vsatwuh
-      {Intrinsic::hexagon_S2_vsatwuh_nopack, 28934}, // __builtin_HEXAGON_S2_vsatwuh_nopack
-      {Intrinsic::hexagon_S2_vsplatrb, 28970}, // __builtin_HEXAGON_S2_vsplatrb
-      {Intrinsic::hexagon_S2_vsplatrh, 29000}, // __builtin_HEXAGON_S2_vsplatrh
-      {Intrinsic::hexagon_S2_vspliceib, 29030}, // __builtin_HEXAGON_S2_vspliceib
-      {Intrinsic::hexagon_S2_vsplicerb, 29061}, // __builtin_HEXAGON_S2_vsplicerb
-      {Intrinsic::hexagon_S2_vsxtbh, 29092}, // __builtin_HEXAGON_S2_vsxtbh
-      {Intrinsic::hexagon_S2_vsxthw, 29120}, // __builtin_HEXAGON_S2_vsxthw
-      {Intrinsic::hexagon_S2_vtrunehb, 29148}, // __builtin_HEXAGON_S2_vtrunehb
-      {Intrinsic::hexagon_S2_vtrunewh, 29178}, // __builtin_HEXAGON_S2_vtrunewh
-      {Intrinsic::hexagon_S2_vtrunohb, 29208}, // __builtin_HEXAGON_S2_vtrunohb
-      {Intrinsic::hexagon_S2_vtrunowh, 29238}, // __builtin_HEXAGON_S2_vtrunowh
-      {Intrinsic::hexagon_S2_vzxtbh, 29268}, // __builtin_HEXAGON_S2_vzxtbh
-      {Intrinsic::hexagon_S2_vzxthw, 29296}, // __builtin_HEXAGON_S2_vzxthw
-      {Intrinsic::hexagon_S4_addaddi, 29324}, // __builtin_HEXAGON_S4_addaddi
-      {Intrinsic::hexagon_S4_addi_asl_ri, 29353}, // __builtin_HEXAGON_S4_addi_asl_ri
-      {Intrinsic::hexagon_S4_addi_lsr_ri, 29386}, // __builtin_HEXAGON_S4_addi_lsr_ri
-      {Intrinsic::hexagon_S4_andi_asl_ri, 29419}, // __builtin_HEXAGON_S4_andi_asl_ri
-      {Intrinsic::hexagon_S4_andi_lsr_ri, 29452}, // __builtin_HEXAGON_S4_andi_lsr_ri
-      {Intrinsic::hexagon_S4_clbaddi, 29485}, // __builtin_HEXAGON_S4_clbaddi
-      {Intrinsic::hexagon_S4_clbpaddi, 29514}, // __builtin_HEXAGON_S4_clbpaddi
-      {Intrinsic::hexagon_S4_clbpnorm, 29544}, // __builtin_HEXAGON_S4_clbpnorm
-      {Intrinsic::hexagon_S4_extract, 29574}, // __builtin_HEXAGON_S4_extract
-      {Intrinsic::hexagon_S4_extract_rp, 29603}, // __builtin_HEXAGON_S4_extract_rp
-      {Intrinsic::hexagon_S4_extractp, 29635}, // __builtin_HEXAGON_S4_extractp
-      {Intrinsic::hexagon_S4_extractp_rp, 29665}, // __builtin_HEXAGON_S4_extractp_rp
-      {Intrinsic::hexagon_S4_lsli, 29698}, // __builtin_HEXAGON_S4_lsli
-      {Intrinsic::hexagon_S4_ntstbit_i, 29724}, // __builtin_HEXAGON_S4_ntstbit_i
-      {Intrinsic::hexagon_S4_ntstbit_r, 29755}, // __builtin_HEXAGON_S4_ntstbit_r
-      {Intrinsic::hexagon_S4_or_andi, 29786}, // __builtin_HEXAGON_S4_or_andi
-      {Intrinsic::hexagon_S4_or_andix, 29815}, // __builtin_HEXAGON_S4_or_andix
-      {Intrinsic::hexagon_S4_or_ori, 29845}, // __builtin_HEXAGON_S4_or_ori
-      {Intrinsic::hexagon_S4_ori_asl_ri, 29873}, // __builtin_HEXAGON_S4_ori_asl_ri
-      {Intrinsic::hexagon_S4_ori_lsr_ri, 29905}, // __builtin_HEXAGON_S4_ori_lsr_ri
-      {Intrinsic::hexagon_S4_parity, 29937}, // __builtin_HEXAGON_S4_parity
-      {Intrinsic::hexagon_S4_stored_locked, 29965}, // __builtin_HEXAGON_S4_stored_locked
-      {Intrinsic::hexagon_S4_subaddi, 30000}, // __builtin_HEXAGON_S4_subaddi
-      {Intrinsic::hexagon_S4_subi_asl_ri, 30029}, // __builtin_HEXAGON_S4_subi_asl_ri
-      {Intrinsic::hexagon_S4_subi_lsr_ri, 30062}, // __builtin_HEXAGON_S4_subi_lsr_ri
-      {Intrinsic::hexagon_S4_vrcrotate, 30095}, // __builtin_HEXAGON_S4_vrcrotate
-      {Intrinsic::hexagon_S4_vrcrotate_acc, 30126}, // __builtin_HEXAGON_S4_vrcrotate_acc
-      {Intrinsic::hexagon_S4_vxaddsubh, 30161}, // __builtin_HEXAGON_S4_vxaddsubh
-      {Intrinsic::hexagon_S4_vxaddsubhr, 30192}, // __builtin_HEXAGON_S4_vxaddsubhr
-      {Intrinsic::hexagon_S4_vxaddsubw, 30224}, // __builtin_HEXAGON_S4_vxaddsubw
-      {Intrinsic::hexagon_S4_vxsubaddh, 30255}, // __builtin_HEXAGON_S4_vxsubaddh
-      {Intrinsic::hexagon_S4_vxsubaddhr, 30286}, // __builtin_HEXAGON_S4_vxsubaddhr
-      {Intrinsic::hexagon_S4_vxsubaddw, 30318}, // __builtin_HEXAGON_S4_vxsubaddw
-      {Intrinsic::hexagon_S5_asrhub_rnd_sat_goodsyntax, 30349}, // __builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax
-      {Intrinsic::hexagon_S5_asrhub_sat, 30396}, // __builtin_HEXAGON_S5_asrhub_sat
-      {Intrinsic::hexagon_S5_popcountp, 30428}, // __builtin_HEXAGON_S5_popcountp
-      {Intrinsic::hexagon_S5_vasrhrnd_goodsyntax, 30459}, // __builtin_HEXAGON_S5_vasrhrnd_goodsyntax
-      {Intrinsic::hexagon_S6_rol_i_p, 30500}, // __builtin_HEXAGON_S6_rol_i_p
-      {Intrinsic::hexagon_S6_rol_i_p_acc, 30529}, // __builtin_HEXAGON_S6_rol_i_p_acc
-      {Intrinsic::hexagon_S6_rol_i_p_and, 30562}, // __builtin_HEXAGON_S6_rol_i_p_and
-      {Intrinsic::hexagon_S6_rol_i_p_nac, 30595}, // __builtin_HEXAGON_S6_rol_i_p_nac
-      {Intrinsic::hexagon_S6_rol_i_p_or, 30628}, // __builtin_HEXAGON_S6_rol_i_p_or
-      {Intrinsic::hexagon_S6_rol_i_p_xacc, 30660}, // __builtin_HEXAGON_S6_rol_i_p_xacc
-      {Intrinsic::hexagon_S6_rol_i_r, 30694}, // __builtin_HEXAGON_S6_rol_i_r
-      {Intrinsic::hexagon_S6_rol_i_r_acc, 30723}, // __builtin_HEXAGON_S6_rol_i_r_acc
-      {Intrinsic::hexagon_S6_rol_i_r_and, 30756}, // __builtin_HEXAGON_S6_rol_i_r_and
-      {Intrinsic::hexagon_S6_rol_i_r_nac, 30789}, // __builtin_HEXAGON_S6_rol_i_r_nac
-      {Intrinsic::hexagon_S6_rol_i_r_or, 30822}, // __builtin_HEXAGON_S6_rol_i_r_or
-      {Intrinsic::hexagon_S6_rol_i_r_xacc, 30854}, // __builtin_HEXAGON_S6_rol_i_r_xacc
-      {Intrinsic::hexagon_S6_vsplatrbp, 30888}, // __builtin_HEXAGON_S6_vsplatrbp
-      {Intrinsic::hexagon_S6_vtrunehb_ppp, 30919}, // __builtin_HEXAGON_S6_vtrunehb_ppp
-      {Intrinsic::hexagon_S6_vtrunohb_ppp, 30953}, // __builtin_HEXAGON_S6_vtrunohb_ppp
-      {Intrinsic::hexagon_V6_extractw, 30987}, // __builtin_HEXAGON_V6_extractw
-      {Intrinsic::hexagon_V6_extractw_128B, 31017}, // __builtin_HEXAGON_V6_extractw_128B
-      {Intrinsic::hexagon_V6_hi, 31052}, // __builtin_HEXAGON_V6_hi
-      {Intrinsic::hexagon_V6_hi_128B, 31076}, // __builtin_HEXAGON_V6_hi_128B
-      {Intrinsic::hexagon_V6_lo, 31105}, // __builtin_HEXAGON_V6_lo
-      {Intrinsic::hexagon_V6_lo_128B, 31129}, // __builtin_HEXAGON_V6_lo_128B
-      {Intrinsic::hexagon_V6_lvsplatb, 31158}, // __builtin_HEXAGON_V6_lvsplatb
-      {Intrinsic::hexagon_V6_lvsplatb_128B, 31188}, // __builtin_HEXAGON_V6_lvsplatb_128B
-      {Intrinsic::hexagon_V6_lvsplath, 31223}, // __builtin_HEXAGON_V6_lvsplath
-      {Intrinsic::hexagon_V6_lvsplath_128B, 31253}, // __builtin_HEXAGON_V6_lvsplath_128B
-      {Intrinsic::hexagon_V6_lvsplatw, 31288}, // __builtin_HEXAGON_V6_lvsplatw
-      {Intrinsic::hexagon_V6_lvsplatw_128B, 31318}, // __builtin_HEXAGON_V6_lvsplatw_128B
-      {Intrinsic::hexagon_V6_pred_and, 31353}, // __builtin_HEXAGON_V6_pred_and
-      {Intrinsic::hexagon_V6_pred_and_128B, 31383}, // __builtin_HEXAGON_V6_pred_and_128B
-      {Intrinsic::hexagon_V6_pred_and_n, 31418}, // __builtin_HEXAGON_V6_pred_and_n
-      {Intrinsic::hexagon_V6_pred_and_n_128B, 31450}, // __builtin_HEXAGON_V6_pred_and_n_128B
-      {Intrinsic::hexagon_V6_pred_not, 31487}, // __builtin_HEXAGON_V6_pred_not
-      {Intrinsic::hexagon_V6_pred_not_128B, 31517}, // __builtin_HEXAGON_V6_pred_not_128B
-      {Intrinsic::hexagon_V6_pred_or, 31552}, // __builtin_HEXAGON_V6_pred_or
-      {Intrinsic::hexagon_V6_pred_or_128B, 31581}, // __builtin_HEXAGON_V6_pred_or_128B
-      {Intrinsic::hexagon_V6_pred_or_n, 31615}, // __builtin_HEXAGON_V6_pred_or_n
-      {Intrinsic::hexagon_V6_pred_or_n_128B, 31646}, // __builtin_HEXAGON_V6_pred_or_n_128B
-      {Intrinsic::hexagon_V6_pred_scalar2, 31682}, // __builtin_HEXAGON_V6_pred_scalar2
-      {Intrinsic::hexagon_V6_pred_scalar2_128B, 31716}, // __builtin_HEXAGON_V6_pred_scalar2_128B
-      {Intrinsic::hexagon_V6_pred_scalar2v2, 31755}, // __builtin_HEXAGON_V6_pred_scalar2v2
-      {Intrinsic::hexagon_V6_pred_scalar2v2_128B, 31791}, // __builtin_HEXAGON_V6_pred_scalar2v2_128B
-      {Intrinsic::hexagon_V6_pred_xor, 31832}, // __builtin_HEXAGON_V6_pred_xor
-      {Intrinsic::hexagon_V6_pred_xor_128B, 31862}, // __builtin_HEXAGON_V6_pred_xor_128B
-      {Intrinsic::hexagon_V6_shuffeqh, 31897}, // __builtin_HEXAGON_V6_shuffeqh
-      {Intrinsic::hexagon_V6_shuffeqh_128B, 31927}, // __builtin_HEXAGON_V6_shuffeqh_128B
-      {Intrinsic::hexagon_V6_shuffeqw, 31962}, // __builtin_HEXAGON_V6_shuffeqw
-      {Intrinsic::hexagon_V6_shuffeqw_128B, 31992}, // __builtin_HEXAGON_V6_shuffeqw_128B
-      {Intrinsic::hexagon_V6_vS32b_nqpred_ai, 32027}, // __builtin_HEXAGON_V6_vS32b_nqpred_ai
-      {Intrinsic::hexagon_V6_vS32b_nqpred_ai_128B, 32064}, // __builtin_HEXAGON_V6_vS32b_nqpred_ai_128B
-      {Intrinsic::hexagon_V6_vS32b_nt_nqpred_ai, 32106}, // __builtin_HEXAGON_V6_vS32b_nt_nqpred_ai
-      {Intrinsic::hexagon_V6_vS32b_nt_nqpred_ai_128B, 32146}, // __builtin_HEXAGON_V6_vS32b_nt_nqpred_ai_128B
-      {Intrinsic::hexagon_V6_vS32b_nt_qpred_ai, 32191}, // __builtin_HEXAGON_V6_vS32b_nt_qpred_ai
-      {Intrinsic::hexagon_V6_vS32b_nt_qpred_ai_128B, 32230}, // __builtin_HEXAGON_V6_vS32b_nt_qpred_ai_128B
-      {Intrinsic::hexagon_V6_vS32b_qpred_ai, 32274}, // __builtin_HEXAGON_V6_vS32b_qpred_ai
-      {Intrinsic::hexagon_V6_vS32b_qpred_ai_128B, 32310}, // __builtin_HEXAGON_V6_vS32b_qpred_ai_128B
-      {Intrinsic::hexagon_V6_vabsb, 32351}, // __builtin_HEXAGON_V6_vabsb
-      {Intrinsic::hexagon_V6_vabsb_128B, 32378}, // __builtin_HEXAGON_V6_vabsb_128B
-      {Intrinsic::hexagon_V6_vabsb_sat, 32410}, // __builtin_HEXAGON_V6_vabsb_sat
-      {Intrinsic::hexagon_V6_vabsb_sat_128B, 32441}, // __builtin_HEXAGON_V6_vabsb_sat_128B
-      {Intrinsic::hexagon_V6_vabsdiffh, 32477}, // __builtin_HEXAGON_V6_vabsdiffh
-      {Intrinsic::hexagon_V6_vabsdiffh_128B, 32508}, // __builtin_HEXAGON_V6_vabsdiffh_128B
-      {Intrinsic::hexagon_V6_vabsdiffub, 32544}, // __builtin_HEXAGON_V6_vabsdiffub
-      {Intrinsic::hexagon_V6_vabsdiffub_128B, 32576}, // __builtin_HEXAGON_V6_vabsdiffub_128B
-      {Intrinsic::hexagon_V6_vabsdiffuh, 32613}, // __builtin_HEXAGON_V6_vabsdiffuh
-      {Intrinsic::hexagon_V6_vabsdiffuh_128B, 32645}, // __builtin_HEXAGON_V6_vabsdiffuh_128B
-      {Intrinsic::hexagon_V6_vabsdiffw, 32682}, // __builtin_HEXAGON_V6_vabsdiffw
-      {Intrinsic::hexagon_V6_vabsdiffw_128B, 32713}, // __builtin_HEXAGON_V6_vabsdiffw_128B
-      {Intrinsic::hexagon_V6_vabsh, 32749}, // __builtin_HEXAGON_V6_vabsh
-      {Intrinsic::hexagon_V6_vabsh_128B, 32776}, // __builtin_HEXAGON_V6_vabsh_128B
-      {Intrinsic::hexagon_V6_vabsh_sat, 32808}, // __builtin_HEXAGON_V6_vabsh_sat
-      {Intrinsic::hexagon_V6_vabsh_sat_128B, 32839}, // __builtin_HEXAGON_V6_vabsh_sat_128B
-      {Intrinsic::hexagon_V6_vabsw, 32875}, // __builtin_HEXAGON_V6_vabsw
-      {Intrinsic::hexagon_V6_vabsw_128B, 32902}, // __builtin_HEXAGON_V6_vabsw_128B
-      {Intrinsic::hexagon_V6_vabsw_sat, 32934}, // __builtin_HEXAGON_V6_vabsw_sat
-      {Intrinsic::hexagon_V6_vabsw_sat_128B, 32965}, // __builtin_HEXAGON_V6_vabsw_sat_128B
-      {Intrinsic::hexagon_V6_vaddb, 33001}, // __builtin_HEXAGON_V6_vaddb
-      {Intrinsic::hexagon_V6_vaddb_128B, 33028}, // __builtin_HEXAGON_V6_vaddb_128B
-      {Intrinsic::hexagon_V6_vaddb_dv, 33060}, // __builtin_HEXAGON_V6_vaddb_dv
-      {Intrinsic::hexagon_V6_vaddb_dv_128B, 33090}, // __builtin_HEXAGON_V6_vaddb_dv_128B
-      {Intrinsic::hexagon_V6_vaddbnq, 33125}, // __builtin_HEXAGON_V6_vaddbnq
-      {Intrinsic::hexagon_V6_vaddbnq_128B, 33154}, // __builtin_HEXAGON_V6_vaddbnq_128B
-      {Intrinsic::hexagon_V6_vaddbq, 33188}, // __builtin_HEXAGON_V6_vaddbq
-      {Intrinsic::hexagon_V6_vaddbq_128B, 33216}, // __builtin_HEXAGON_V6_vaddbq_128B
-      {Intrinsic::hexagon_V6_vaddbsat, 33249}, // __builtin_HEXAGON_V6_vaddbsat
-      {Intrinsic::hexagon_V6_vaddbsat_128B, 33279}, // __builtin_HEXAGON_V6_vaddbsat_128B
-      {Intrinsic::hexagon_V6_vaddbsat_dv, 33314}, // __builtin_HEXAGON_V6_vaddbsat_dv
-      {Intrinsic::hexagon_V6_vaddbsat_dv_128B, 33347}, // __builtin_HEXAGON_V6_vaddbsat_dv_128B
-      {Intrinsic::hexagon_V6_vaddclbh, 33452}, // __builtin_HEXAGON_V6_vaddclbh
-      {Intrinsic::hexagon_V6_vaddclbh_128B, 33482}, // __builtin_HEXAGON_V6_vaddclbh_128B
-      {Intrinsic::hexagon_V6_vaddclbw, 33517}, // __builtin_HEXAGON_V6_vaddclbw
-      {Intrinsic::hexagon_V6_vaddclbw_128B, 33547}, // __builtin_HEXAGON_V6_vaddclbw_128B
-      {Intrinsic::hexagon_V6_vaddh, 33582}, // __builtin_HEXAGON_V6_vaddh
-      {Intrinsic::hexagon_V6_vaddh_128B, 33609}, // __builtin_HEXAGON_V6_vaddh_128B
-      {Intrinsic::hexagon_V6_vaddh_dv, 33641}, // __builtin_HEXAGON_V6_vaddh_dv
-      {Intrinsic::hexagon_V6_vaddh_dv_128B, 33671}, // __builtin_HEXAGON_V6_vaddh_dv_128B
-      {Intrinsic::hexagon_V6_vaddhnq, 33706}, // __builtin_HEXAGON_V6_vaddhnq
-      {Intrinsic::hexagon_V6_vaddhnq_128B, 33735}, // __builtin_HEXAGON_V6_vaddhnq_128B
-      {Intrinsic::hexagon_V6_vaddhq, 33769}, // __builtin_HEXAGON_V6_vaddhq
-      {Intrinsic::hexagon_V6_vaddhq_128B, 33797}, // __builtin_HEXAGON_V6_vaddhq_128B
-      {Intrinsic::hexagon_V6_vaddhsat, 33830}, // __builtin_HEXAGON_V6_vaddhsat
-      {Intrinsic::hexagon_V6_vaddhsat_128B, 33860}, // __builtin_HEXAGON_V6_vaddhsat_128B
-      {Intrinsic::hexagon_V6_vaddhsat_dv, 33895}, // __builtin_HEXAGON_V6_vaddhsat_dv
-      {Intrinsic::hexagon_V6_vaddhsat_dv_128B, 33928}, // __builtin_HEXAGON_V6_vaddhsat_dv_128B
-      {Intrinsic::hexagon_V6_vaddhw, 33966}, // __builtin_HEXAGON_V6_vaddhw
-      {Intrinsic::hexagon_V6_vaddhw_128B, 33994}, // __builtin_HEXAGON_V6_vaddhw_128B
-      {Intrinsic::hexagon_V6_vaddhw_acc, 34027}, // __builtin_HEXAGON_V6_vaddhw_acc
-      {Intrinsic::hexagon_V6_vaddhw_acc_128B, 34059}, // __builtin_HEXAGON_V6_vaddhw_acc_128B
-      {Intrinsic::hexagon_V6_vaddubh, 34096}, // __builtin_HEXAGON_V6_vaddubh
-      {Intrinsic::hexagon_V6_vaddubh_128B, 34125}, // __builtin_HEXAGON_V6_vaddubh_128B
-      {Intrinsic::hexagon_V6_vaddubh_acc, 34159}, // __builtin_HEXAGON_V6_vaddubh_acc
-      {Intrinsic::hexagon_V6_vaddubh_acc_128B, 34192}, // __builtin_HEXAGON_V6_vaddubh_acc_128B
-      {Intrinsic::hexagon_V6_vaddubsat, 34230}, // __builtin_HEXAGON_V6_vaddubsat
-      {Intrinsic::hexagon_V6_vaddubsat_128B, 34261}, // __builtin_HEXAGON_V6_vaddubsat_128B
-      {Intrinsic::hexagon_V6_vaddubsat_dv, 34297}, // __builtin_HEXAGON_V6_vaddubsat_dv
-      {Intrinsic::hexagon_V6_vaddubsat_dv_128B, 34331}, // __builtin_HEXAGON_V6_vaddubsat_dv_128B
-      {Intrinsic::hexagon_V6_vaddububb_sat, 34370}, // __builtin_HEXAGON_V6_vaddububb_sat
-      {Intrinsic::hexagon_V6_vaddububb_sat_128B, 34405}, // __builtin_HEXAGON_V6_vaddububb_sat_128B
-      {Intrinsic::hexagon_V6_vadduhsat, 34445}, // __builtin_HEXAGON_V6_vadduhsat
-      {Intrinsic::hexagon_V6_vadduhsat_128B, 34476}, // __builtin_HEXAGON_V6_vadduhsat_128B
-      {Intrinsic::hexagon_V6_vadduhsat_dv, 34512}, // __builtin_HEXAGON_V6_vadduhsat_dv
-      {Intrinsic::hexagon_V6_vadduhsat_dv_128B, 34546}, // __builtin_HEXAGON_V6_vadduhsat_dv_128B
-      {Intrinsic::hexagon_V6_vadduhw, 34585}, // __builtin_HEXAGON_V6_vadduhw
-      {Intrinsic::hexagon_V6_vadduhw_128B, 34614}, // __builtin_HEXAGON_V6_vadduhw_128B
-      {Intrinsic::hexagon_V6_vadduhw_acc, 34648}, // __builtin_HEXAGON_V6_vadduhw_acc
-      {Intrinsic::hexagon_V6_vadduhw_acc_128B, 34681}, // __builtin_HEXAGON_V6_vadduhw_acc_128B
-      {Intrinsic::hexagon_V6_vadduwsat, 34719}, // __builtin_HEXAGON_V6_vadduwsat
-      {Intrinsic::hexagon_V6_vadduwsat_128B, 34750}, // __builtin_HEXAGON_V6_vadduwsat_128B
-      {Intrinsic::hexagon_V6_vadduwsat_dv, 34786}, // __builtin_HEXAGON_V6_vadduwsat_dv
-      {Intrinsic::hexagon_V6_vadduwsat_dv_128B, 34820}, // __builtin_HEXAGON_V6_vadduwsat_dv_128B
-      {Intrinsic::hexagon_V6_vaddw, 34859}, // __builtin_HEXAGON_V6_vaddw
-      {Intrinsic::hexagon_V6_vaddw_128B, 34886}, // __builtin_HEXAGON_V6_vaddw_128B
-      {Intrinsic::hexagon_V6_vaddw_dv, 34918}, // __builtin_HEXAGON_V6_vaddw_dv
-      {Intrinsic::hexagon_V6_vaddw_dv_128B, 34948}, // __builtin_HEXAGON_V6_vaddw_dv_128B
-      {Intrinsic::hexagon_V6_vaddwnq, 34983}, // __builtin_HEXAGON_V6_vaddwnq
-      {Intrinsic::hexagon_V6_vaddwnq_128B, 35012}, // __builtin_HEXAGON_V6_vaddwnq_128B
-      {Intrinsic::hexagon_V6_vaddwq, 35046}, // __builtin_HEXAGON_V6_vaddwq
-      {Intrinsic::hexagon_V6_vaddwq_128B, 35074}, // __builtin_HEXAGON_V6_vaddwq_128B
-      {Intrinsic::hexagon_V6_vaddwsat, 35107}, // __builtin_HEXAGON_V6_vaddwsat
-      {Intrinsic::hexagon_V6_vaddwsat_128B, 35137}, // __builtin_HEXAGON_V6_vaddwsat_128B
-      {Intrinsic::hexagon_V6_vaddwsat_dv, 35172}, // __builtin_HEXAGON_V6_vaddwsat_dv
-      {Intrinsic::hexagon_V6_vaddwsat_dv_128B, 35205}, // __builtin_HEXAGON_V6_vaddwsat_dv_128B
-      {Intrinsic::hexagon_V6_valignb, 35243}, // __builtin_HEXAGON_V6_valignb
-      {Intrinsic::hexagon_V6_valignb_128B, 35272}, // __builtin_HEXAGON_V6_valignb_128B
-      {Intrinsic::hexagon_V6_valignbi, 35306}, // __builtin_HEXAGON_V6_valignbi
-      {Intrinsic::hexagon_V6_valignbi_128B, 35336}, // __builtin_HEXAGON_V6_valignbi_128B
-      {Intrinsic::hexagon_V6_vand, 35371}, // __builtin_HEXAGON_V6_vand
-      {Intrinsic::hexagon_V6_vand_128B, 35397}, // __builtin_HEXAGON_V6_vand_128B
-      {Intrinsic::hexagon_V6_vandnqrt, 35428}, // __builtin_HEXAGON_V6_vandnqrt
-      {Intrinsic::hexagon_V6_vandnqrt_128B, 35458}, // __builtin_HEXAGON_V6_vandnqrt_128B
-      {Intrinsic::hexagon_V6_vandnqrt_acc, 35493}, // __builtin_HEXAGON_V6_vandnqrt_acc
-      {Intrinsic::hexagon_V6_vandnqrt_acc_128B, 35527}, // __builtin_HEXAGON_V6_vandnqrt_acc_128B
-      {Intrinsic::hexagon_V6_vandqrt, 35566}, // __builtin_HEXAGON_V6_vandqrt
-      {Intrinsic::hexagon_V6_vandqrt_128B, 35595}, // __builtin_HEXAGON_V6_vandqrt_128B
-      {Intrinsic::hexagon_V6_vandqrt_acc, 35629}, // __builtin_HEXAGON_V6_vandqrt_acc
-      {Intrinsic::hexagon_V6_vandqrt_acc_128B, 35662}, // __builtin_HEXAGON_V6_vandqrt_acc_128B
-      {Intrinsic::hexagon_V6_vandvnqv, 35700}, // __builtin_HEXAGON_V6_vandvnqv
-      {Intrinsic::hexagon_V6_vandvnqv_128B, 35730}, // __builtin_HEXAGON_V6_vandvnqv_128B
-      {Intrinsic::hexagon_V6_vandvqv, 35765}, // __builtin_HEXAGON_V6_vandvqv
-      {Intrinsic::hexagon_V6_vandvqv_128B, 35794}, // __builtin_HEXAGON_V6_vandvqv_128B
-      {Intrinsic::hexagon_V6_vandvrt, 35828}, // __builtin_HEXAGON_V6_vandvrt
-      {Intrinsic::hexagon_V6_vandvrt_128B, 35857}, // __builtin_HEXAGON_V6_vandvrt_128B
-      {Intrinsic::hexagon_V6_vandvrt_acc, 35891}, // __builtin_HEXAGON_V6_vandvrt_acc
-      {Intrinsic::hexagon_V6_vandvrt_acc_128B, 35924}, // __builtin_HEXAGON_V6_vandvrt_acc_128B
-      {Intrinsic::hexagon_V6_vaslh, 35962}, // __builtin_HEXAGON_V6_vaslh
-      {Intrinsic::hexagon_V6_vaslh_128B, 35989}, // __builtin_HEXAGON_V6_vaslh_128B
-      {Intrinsic::hexagon_V6_vaslh_acc, 36021}, // __builtin_HEXAGON_V6_vaslh_acc
-      {Intrinsic::hexagon_V6_vaslh_acc_128B, 36052}, // __builtin_HEXAGON_V6_vaslh_acc_128B
-      {Intrinsic::hexagon_V6_vaslhv, 36088}, // __builtin_HEXAGON_V6_vaslhv
-      {Intrinsic::hexagon_V6_vaslhv_128B, 36116}, // __builtin_HEXAGON_V6_vaslhv_128B
-      {Intrinsic::hexagon_V6_vaslw, 36149}, // __builtin_HEXAGON_V6_vaslw
-      {Intrinsic::hexagon_V6_vaslw_128B, 36176}, // __builtin_HEXAGON_V6_vaslw_128B
-      {Intrinsic::hexagon_V6_vaslw_acc, 36208}, // __builtin_HEXAGON_V6_vaslw_acc
-      {Intrinsic::hexagon_V6_vaslw_acc_128B, 36239}, // __builtin_HEXAGON_V6_vaslw_acc_128B
-      {Intrinsic::hexagon_V6_vaslwv, 36275}, // __builtin_HEXAGON_V6_vaslwv
-      {Intrinsic::hexagon_V6_vaslwv_128B, 36303}, // __builtin_HEXAGON_V6_vaslwv_128B
-      {Intrinsic::hexagon_V6_vasrh, 36336}, // __builtin_HEXAGON_V6_vasrh
-      {Intrinsic::hexagon_V6_vasrh_128B, 36363}, // __builtin_HEXAGON_V6_vasrh_128B
-      {Intrinsic::hexagon_V6_vasrh_acc, 36395}, // __builtin_HEXAGON_V6_vasrh_acc
-      {Intrinsic::hexagon_V6_vasrh_acc_128B, 36426}, // __builtin_HEXAGON_V6_vasrh_acc_128B
-      {Intrinsic::hexagon_V6_vasrhbrndsat, 36462}, // __builtin_HEXAGON_V6_vasrhbrndsat
-      {Intrinsic::hexagon_V6_vasrhbrndsat_128B, 36496}, // __builtin_HEXAGON_V6_vasrhbrndsat_128B
-      {Intrinsic::hexagon_V6_vasrhbsat, 36535}, // __builtin_HEXAGON_V6_vasrhbsat
-      {Intrinsic::hexagon_V6_vasrhbsat_128B, 36566}, // __builtin_HEXAGON_V6_vasrhbsat_128B
-      {Intrinsic::hexagon_V6_vasrhubrndsat, 36602}, // __builtin_HEXAGON_V6_vasrhubrndsat
-      {Intrinsic::hexagon_V6_vasrhubrndsat_128B, 36637}, // __builtin_HEXAGON_V6_vasrhubrndsat_128B
-      {Intrinsic::hexagon_V6_vasrhubsat, 36677}, // __builtin_HEXAGON_V6_vasrhubsat
-      {Intrinsic::hexagon_V6_vasrhubsat_128B, 36709}, // __builtin_HEXAGON_V6_vasrhubsat_128B
-      {Intrinsic::hexagon_V6_vasrhv, 36746}, // __builtin_HEXAGON_V6_vasrhv
-      {Intrinsic::hexagon_V6_vasrhv_128B, 36774}, // __builtin_HEXAGON_V6_vasrhv_128B
-      {Intrinsic::hexagon_V6_vasruhubrndsat, 36807}, // __builtin_HEXAGON_V6_vasruhubrndsat
-      {Intrinsic::hexagon_V6_vasruhubrndsat_128B, 36843}, // __builtin_HEXAGON_V6_vasruhubrndsat_128B
-      {Intrinsic::hexagon_V6_vasruhubsat, 36884}, // __builtin_HEXAGON_V6_vasruhubsat
-      {Intrinsic::hexagon_V6_vasruhubsat_128B, 36917}, // __builtin_HEXAGON_V6_vasruhubsat_128B
-      {Intrinsic::hexagon_V6_vasruwuhrndsat, 36955}, // __builtin_HEXAGON_V6_vasruwuhrndsat
-      {Intrinsic::hexagon_V6_vasruwuhrndsat_128B, 36991}, // __builtin_HEXAGON_V6_vasruwuhrndsat_128B
-      {Intrinsic::hexagon_V6_vasruwuhsat, 37032}, // __builtin_HEXAGON_V6_vasruwuhsat
-      {Intrinsic::hexagon_V6_vasruwuhsat_128B, 37065}, // __builtin_HEXAGON_V6_vasruwuhsat_128B
-      {Intrinsic::hexagon_V6_vasrw, 37103}, // __builtin_HEXAGON_V6_vasrw
-      {Intrinsic::hexagon_V6_vasrw_128B, 37130}, // __builtin_HEXAGON_V6_vasrw_128B
-      {Intrinsic::hexagon_V6_vasrw_acc, 37162}, // __builtin_HEXAGON_V6_vasrw_acc
-      {Intrinsic::hexagon_V6_vasrw_acc_128B, 37193}, // __builtin_HEXAGON_V6_vasrw_acc_128B
-      {Intrinsic::hexagon_V6_vasrwh, 37229}, // __builtin_HEXAGON_V6_vasrwh
-      {Intrinsic::hexagon_V6_vasrwh_128B, 37257}, // __builtin_HEXAGON_V6_vasrwh_128B
-      {Intrinsic::hexagon_V6_vasrwhrndsat, 37290}, // __builtin_HEXAGON_V6_vasrwhrndsat
-      {Intrinsic::hexagon_V6_vasrwhrndsat_128B, 37324}, // __builtin_HEXAGON_V6_vasrwhrndsat_128B
-      {Intrinsic::hexagon_V6_vasrwhsat, 37363}, // __builtin_HEXAGON_V6_vasrwhsat
-      {Intrinsic::hexagon_V6_vasrwhsat_128B, 37394}, // __builtin_HEXAGON_V6_vasrwhsat_128B
-      {Intrinsic::hexagon_V6_vasrwuhrndsat, 37430}, // __builtin_HEXAGON_V6_vasrwuhrndsat
-      {Intrinsic::hexagon_V6_vasrwuhrndsat_128B, 37465}, // __builtin_HEXAGON_V6_vasrwuhrndsat_128B
-      {Intrinsic::hexagon_V6_vasrwuhsat, 37505}, // __builtin_HEXAGON_V6_vasrwuhsat
-      {Intrinsic::hexagon_V6_vasrwuhsat_128B, 37537}, // __builtin_HEXAGON_V6_vasrwuhsat_128B
-      {Intrinsic::hexagon_V6_vasrwv, 37574}, // __builtin_HEXAGON_V6_vasrwv
-      {Intrinsic::hexagon_V6_vasrwv_128B, 37602}, // __builtin_HEXAGON_V6_vasrwv_128B
-      {Intrinsic::hexagon_V6_vassign, 37635}, // __builtin_HEXAGON_V6_vassign
-      {Intrinsic::hexagon_V6_vassign_128B, 37664}, // __builtin_HEXAGON_V6_vassign_128B
-      {Intrinsic::hexagon_V6_vassignp, 37698}, // __builtin_HEXAGON_V6_vassignp
-      {Intrinsic::hexagon_V6_vassignp_128B, 37728}, // __builtin_HEXAGON_V6_vassignp_128B
-      {Intrinsic::hexagon_V6_vavgb, 37763}, // __builtin_HEXAGON_V6_vavgb
-      {Intrinsic::hexagon_V6_vavgb_128B, 37790}, // __builtin_HEXAGON_V6_vavgb_128B
-      {Intrinsic::hexagon_V6_vavgbrnd, 37822}, // __builtin_HEXAGON_V6_vavgbrnd
-      {Intrinsic::hexagon_V6_vavgbrnd_128B, 37852}, // __builtin_HEXAGON_V6_vavgbrnd_128B
-      {Intrinsic::hexagon_V6_vavgh, 37887}, // __builtin_HEXAGON_V6_vavgh
-      {Intrinsic::hexagon_V6_vavgh_128B, 37914}, // __builtin_HEXAGON_V6_vavgh_128B
-      {Intrinsic::hexagon_V6_vavghrnd, 37946}, // __builtin_HEXAGON_V6_vavghrnd
-      {Intrinsic::hexagon_V6_vavghrnd_128B, 37976}, // __builtin_HEXAGON_V6_vavghrnd_128B
-      {Intrinsic::hexagon_V6_vavgub, 38011}, // __builtin_HEXAGON_V6_vavgub
-      {Intrinsic::hexagon_V6_vavgub_128B, 38039}, // __builtin_HEXAGON_V6_vavgub_128B
-      {Intrinsic::hexagon_V6_vavgubrnd, 38072}, // __builtin_HEXAGON_V6_vavgubrnd
-      {Intrinsic::hexagon_V6_vavgubrnd_128B, 38103}, // __builtin_HEXAGON_V6_vavgubrnd_128B
-      {Intrinsic::hexagon_V6_vavguh, 38139}, // __builtin_HEXAGON_V6_vavguh
-      {Intrinsic::hexagon_V6_vavguh_128B, 38167}, // __builtin_HEXAGON_V6_vavguh_128B
-      {Intrinsic::hexagon_V6_vavguhrnd, 38200}, // __builtin_HEXAGON_V6_vavguhrnd
-      {Intrinsic::hexagon_V6_vavguhrnd_128B, 38231}, // __builtin_HEXAGON_V6_vavguhrnd_128B
-      {Intrinsic::hexagon_V6_vavguw, 38267}, // __builtin_HEXAGON_V6_vavguw
-      {Intrinsic::hexagon_V6_vavguw_128B, 38295}, // __builtin_HEXAGON_V6_vavguw_128B
-      {Intrinsic::hexagon_V6_vavguwrnd, 38328}, // __builtin_HEXAGON_V6_vavguwrnd
-      {Intrinsic::hexagon_V6_vavguwrnd_128B, 38359}, // __builtin_HEXAGON_V6_vavguwrnd_128B
-      {Intrinsic::hexagon_V6_vavgw, 38395}, // __builtin_HEXAGON_V6_vavgw
-      {Intrinsic::hexagon_V6_vavgw_128B, 38422}, // __builtin_HEXAGON_V6_vavgw_128B
-      {Intrinsic::hexagon_V6_vavgwrnd, 38454}, // __builtin_HEXAGON_V6_vavgwrnd
-      {Intrinsic::hexagon_V6_vavgwrnd_128B, 38484}, // __builtin_HEXAGON_V6_vavgwrnd_128B
-      {Intrinsic::hexagon_V6_vcl0h, 38519}, // __builtin_HEXAGON_V6_vcl0h
-      {Intrinsic::hexagon_V6_vcl0h_128B, 38546}, // __builtin_HEXAGON_V6_vcl0h_128B
-      {Intrinsic::hexagon_V6_vcl0w, 38578}, // __builtin_HEXAGON_V6_vcl0w
-      {Intrinsic::hexagon_V6_vcl0w_128B, 38605}, // __builtin_HEXAGON_V6_vcl0w_128B
-      {Intrinsic::hexagon_V6_vcombine, 38637}, // __builtin_HEXAGON_V6_vcombine
-      {Intrinsic::hexagon_V6_vcombine_128B, 38667}, // __builtin_HEXAGON_V6_vcombine_128B
-      {Intrinsic::hexagon_V6_vd0, 38702}, // __builtin_HEXAGON_V6_vd0
-      {Intrinsic::hexagon_V6_vd0_128B, 38727}, // __builtin_HEXAGON_V6_vd0_128B
-      {Intrinsic::hexagon_V6_vdd0, 38757}, // __builtin_HEXAGON_V6_vdd0
-      {Intrinsic::hexagon_V6_vdd0_128B, 38783}, // __builtin_HEXAGON_V6_vdd0_128B
-      {Intrinsic::hexagon_V6_vdealb, 38814}, // __builtin_HEXAGON_V6_vdealb
-      {Intrinsic::hexagon_V6_vdealb4w, 38875}, // __builtin_HEXAGON_V6_vdealb4w
-      {Intrinsic::hexagon_V6_vdealb4w_128B, 38905}, // __builtin_HEXAGON_V6_vdealb4w_128B
-      {Intrinsic::hexagon_V6_vdealb_128B, 38842}, // __builtin_HEXAGON_V6_vdealb_128B
-      {Intrinsic::hexagon_V6_vdealh, 38940}, // __builtin_HEXAGON_V6_vdealh
-      {Intrinsic::hexagon_V6_vdealh_128B, 38968}, // __builtin_HEXAGON_V6_vdealh_128B
-      {Intrinsic::hexagon_V6_vdealvdd, 39001}, // __builtin_HEXAGON_V6_vdealvdd
-      {Intrinsic::hexagon_V6_vdealvdd_128B, 39031}, // __builtin_HEXAGON_V6_vdealvdd_128B
-      {Intrinsic::hexagon_V6_vdelta, 39066}, // __builtin_HEXAGON_V6_vdelta
-      {Intrinsic::hexagon_V6_vdelta_128B, 39094}, // __builtin_HEXAGON_V6_vdelta_128B
-      {Intrinsic::hexagon_V6_vdmpybus, 39127}, // __builtin_HEXAGON_V6_vdmpybus
-      {Intrinsic::hexagon_V6_vdmpybus_128B, 39157}, // __builtin_HEXAGON_V6_vdmpybus_128B
-      {Intrinsic::hexagon_V6_vdmpybus_acc, 39192}, // __builtin_HEXAGON_V6_vdmpybus_acc
-      {Intrinsic::hexagon_V6_vdmpybus_acc_128B, 39226}, // __builtin_HEXAGON_V6_vdmpybus_acc_128B
-      {Intrinsic::hexagon_V6_vdmpybus_dv, 39265}, // __builtin_HEXAGON_V6_vdmpybus_dv
-      {Intrinsic::hexagon_V6_vdmpybus_dv_128B, 39298}, // __builtin_HEXAGON_V6_vdmpybus_dv_128B
-      {Intrinsic::hexagon_V6_vdmpybus_dv_acc, 39336}, // __builtin_HEXAGON_V6_vdmpybus_dv_acc
-      {Intrinsic::hexagon_V6_vdmpybus_dv_acc_128B, 39373}, // __builtin_HEXAGON_V6_vdmpybus_dv_acc_128B
-      {Intrinsic::hexagon_V6_vdmpyhb, 39415}, // __builtin_HEXAGON_V6_vdmpyhb
-      {Intrinsic::hexagon_V6_vdmpyhb_128B, 39444}, // __builtin_HEXAGON_V6_vdmpyhb_128B
-      {Intrinsic::hexagon_V6_vdmpyhb_acc, 39478}, // __builtin_HEXAGON_V6_vdmpyhb_acc
-      {Intrinsic::hexagon_V6_vdmpyhb_acc_128B, 39511}, // __builtin_HEXAGON_V6_vdmpyhb_acc_128B
-      {Intrinsic::hexagon_V6_vdmpyhb_dv, 39549}, // __builtin_HEXAGON_V6_vdmpyhb_dv
-      {Intrinsic::hexagon_V6_vdmpyhb_dv_128B, 39581}, // __builtin_HEXAGON_V6_vdmpyhb_dv_128B
-      {Intrinsic::hexagon_V6_vdmpyhb_dv_acc, 39618}, // __builtin_HEXAGON_V6_vdmpyhb_dv_acc
-      {Intrinsic::hexagon_V6_vdmpyhb_dv_acc_128B, 39654}, // __builtin_HEXAGON_V6_vdmpyhb_dv_acc_128B
-      {Intrinsic::hexagon_V6_vdmpyhisat, 39695}, // __builtin_HEXAGON_V6_vdmpyhisat
-      {Intrinsic::hexagon_V6_vdmpyhisat_128B, 39727}, // __builtin_HEXAGON_V6_vdmpyhisat_128B
-      {Intrinsic::hexagon_V6_vdmpyhisat_acc, 39764}, // __builtin_HEXAGON_V6_vdmpyhisat_acc
-      {Intrinsic::hexagon_V6_vdmpyhisat_acc_128B, 39800}, // __builtin_HEXAGON_V6_vdmpyhisat_acc_128B
-      {Intrinsic::hexagon_V6_vdmpyhsat, 39841}, // __builtin_HEXAGON_V6_vdmpyhsat
-      {Intrinsic::hexagon_V6_vdmpyhsat_128B, 39872}, // __builtin_HEXAGON_V6_vdmpyhsat_128B
-      {Intrinsic::hexagon_V6_vdmpyhsat_acc, 39908}, // __builtin_HEXAGON_V6_vdmpyhsat_acc
-      {Intrinsic::hexagon_V6_vdmpyhsat_acc_128B, 39943}, // __builtin_HEXAGON_V6_vdmpyhsat_acc_128B
-      {Intrinsic::hexagon_V6_vdmpyhsuisat, 39983}, // __builtin_HEXAGON_V6_vdmpyhsuisat
-      {Intrinsic::hexagon_V6_vdmpyhsuisat_128B, 40017}, // __builtin_HEXAGON_V6_vdmpyhsuisat_128B
-      {Intrinsic::hexagon_V6_vdmpyhsuisat_acc, 40056}, // __builtin_HEXAGON_V6_vdmpyhsuisat_acc
-      {Intrinsic::hexagon_V6_vdmpyhsuisat_acc_128B, 40094}, // __builtin_HEXAGON_V6_vdmpyhsuisat_acc_128B
-      {Intrinsic::hexagon_V6_vdmpyhsusat, 40137}, // __builtin_HEXAGON_V6_vdmpyhsusat
-      {Intrinsic::hexagon_V6_vdmpyhsusat_128B, 40170}, // __builtin_HEXAGON_V6_vdmpyhsusat_128B
-      {Intrinsic::hexagon_V6_vdmpyhsusat_acc, 40208}, // __builtin_HEXAGON_V6_vdmpyhsusat_acc
-      {Intrinsic::hexagon_V6_vdmpyhsusat_acc_128B, 40245}, // __builtin_HEXAGON_V6_vdmpyhsusat_acc_128B
-      {Intrinsic::hexagon_V6_vdmpyhvsat, 40287}, // __builtin_HEXAGON_V6_vdmpyhvsat
-      {Intrinsic::hexagon_V6_vdmpyhvsat_128B, 40319}, // __builtin_HEXAGON_V6_vdmpyhvsat_128B
-      {Intrinsic::hexagon_V6_vdmpyhvsat_acc, 40356}, // __builtin_HEXAGON_V6_vdmpyhvsat_acc
-      {Intrinsic::hexagon_V6_vdmpyhvsat_acc_128B, 40392}, // __builtin_HEXAGON_V6_vdmpyhvsat_acc_128B
-      {Intrinsic::hexagon_V6_vdsaduh, 40433}, // __builtin_HEXAGON_V6_vdsaduh
-      {Intrinsic::hexagon_V6_vdsaduh_128B, 40462}, // __builtin_HEXAGON_V6_vdsaduh_128B
-      {Intrinsic::hexagon_V6_vdsaduh_acc, 40496}, // __builtin_HEXAGON_V6_vdsaduh_acc
-      {Intrinsic::hexagon_V6_vdsaduh_acc_128B, 40529}, // __builtin_HEXAGON_V6_vdsaduh_acc_128B
-      {Intrinsic::hexagon_V6_veqb, 40567}, // __builtin_HEXAGON_V6_veqb
-      {Intrinsic::hexagon_V6_veqb_128B, 40593}, // __builtin_HEXAGON_V6_veqb_128B
-      {Intrinsic::hexagon_V6_veqb_and, 40624}, // __builtin_HEXAGON_V6_veqb_and
-      {Intrinsic::hexagon_V6_veqb_and_128B, 40654}, // __builtin_HEXAGON_V6_veqb_and_128B
-      {Intrinsic::hexagon_V6_veqb_or, 40689}, // __builtin_HEXAGON_V6_veqb_or
-      {Intrinsic::hexagon_V6_veqb_or_128B, 40718}, // __builtin_HEXAGON_V6_veqb_or_128B
-      {Intrinsic::hexagon_V6_veqb_xor, 40752}, // __builtin_HEXAGON_V6_veqb_xor
-      {Intrinsic::hexagon_V6_veqb_xor_128B, 40782}, // __builtin_HEXAGON_V6_veqb_xor_128B
-      {Intrinsic::hexagon_V6_veqh, 40817}, // __builtin_HEXAGON_V6_veqh
-      {Intrinsic::hexagon_V6_veqh_128B, 40843}, // __builtin_HEXAGON_V6_veqh_128B
-      {Intrinsic::hexagon_V6_veqh_and, 40874}, // __builtin_HEXAGON_V6_veqh_and
-      {Intrinsic::hexagon_V6_veqh_and_128B, 40904}, // __builtin_HEXAGON_V6_veqh_and_128B
-      {Intrinsic::hexagon_V6_veqh_or, 40939}, // __builtin_HEXAGON_V6_veqh_or
-      {Intrinsic::hexagon_V6_veqh_or_128B, 40968}, // __builtin_HEXAGON_V6_veqh_or_128B
-      {Intrinsic::hexagon_V6_veqh_xor, 41002}, // __builtin_HEXAGON_V6_veqh_xor
-      {Intrinsic::hexagon_V6_veqh_xor_128B, 41032}, // __builtin_HEXAGON_V6_veqh_xor_128B
-      {Intrinsic::hexagon_V6_veqw, 41067}, // __builtin_HEXAGON_V6_veqw
-      {Intrinsic::hexagon_V6_veqw_128B, 41093}, // __builtin_HEXAGON_V6_veqw_128B
-      {Intrinsic::hexagon_V6_veqw_and, 41124}, // __builtin_HEXAGON_V6_veqw_and
-      {Intrinsic::hexagon_V6_veqw_and_128B, 41154}, // __builtin_HEXAGON_V6_veqw_and_128B
-      {Intrinsic::hexagon_V6_veqw_or, 41189}, // __builtin_HEXAGON_V6_veqw_or
-      {Intrinsic::hexagon_V6_veqw_or_128B, 41218}, // __builtin_HEXAGON_V6_veqw_or_128B
-      {Intrinsic::hexagon_V6_veqw_xor, 41252}, // __builtin_HEXAGON_V6_veqw_xor
-      {Intrinsic::hexagon_V6_veqw_xor_128B, 41282}, // __builtin_HEXAGON_V6_veqw_xor_128B
-      {Intrinsic::hexagon_V6_vgathermh, 41317}, // __builtin_HEXAGON_V6_vgathermh
-      {Intrinsic::hexagon_V6_vgathermh_128B, 41348}, // __builtin_HEXAGON_V6_vgathermh_128B
-      {Intrinsic::hexagon_V6_vgathermhq, 41384}, // __builtin_HEXAGON_V6_vgathermhq
-      {Intrinsic::hexagon_V6_vgathermhq_128B, 41416}, // __builtin_HEXAGON_V6_vgathermhq_128B
-      {Intrinsic::hexagon_V6_vgathermhw, 41453}, // __builtin_HEXAGON_V6_vgathermhw
-      {Intrinsic::hexagon_V6_vgathermhw_128B, 41485}, // __builtin_HEXAGON_V6_vgathermhw_128B
-      {Intrinsic::hexagon_V6_vgathermhwq, 41522}, // __builtin_HEXAGON_V6_vgathermhwq
-      {Intrinsic::hexagon_V6_vgathermhwq_128B, 41555}, // __builtin_HEXAGON_V6_vgathermhwq_128B
-      {Intrinsic::hexagon_V6_vgathermw, 41593}, // __builtin_HEXAGON_V6_vgathermw
-      {Intrinsic::hexagon_V6_vgathermw_128B, 41624}, // __builtin_HEXAGON_V6_vgathermw_128B
-      {Intrinsic::hexagon_V6_vgathermwq, 41660}, // __builtin_HEXAGON_V6_vgathermwq
-      {Intrinsic::hexagon_V6_vgathermwq_128B, 41692}, // __builtin_HEXAGON_V6_vgathermwq_128B
-      {Intrinsic::hexagon_V6_vgtb, 41729}, // __builtin_HEXAGON_V6_vgtb
-      {Intrinsic::hexagon_V6_vgtb_128B, 41755}, // __builtin_HEXAGON_V6_vgtb_128B
-      {Intrinsic::hexagon_V6_vgtb_and, 41786}, // __builtin_HEXAGON_V6_vgtb_and
-      {Intrinsic::hexagon_V6_vgtb_and_128B, 41816}, // __builtin_HEXAGON_V6_vgtb_and_128B
-      {Intrinsic::hexagon_V6_vgtb_or, 41851}, // __builtin_HEXAGON_V6_vgtb_or
-      {Intrinsic::hexagon_V6_vgtb_or_128B, 41880}, // __builtin_HEXAGON_V6_vgtb_or_128B
-      {Intrinsic::hexagon_V6_vgtb_xor, 41914}, // __builtin_HEXAGON_V6_vgtb_xor
-      {Intrinsic::hexagon_V6_vgtb_xor_128B, 41944}, // __builtin_HEXAGON_V6_vgtb_xor_128B
-      {Intrinsic::hexagon_V6_vgth, 41979}, // __builtin_HEXAGON_V6_vgth
-      {Intrinsic::hexagon_V6_vgth_128B, 42005}, // __builtin_HEXAGON_V6_vgth_128B
-      {Intrinsic::hexagon_V6_vgth_and, 42036}, // __builtin_HEXAGON_V6_vgth_and
-      {Intrinsic::hexagon_V6_vgth_and_128B, 42066}, // __builtin_HEXAGON_V6_vgth_and_128B
-      {Intrinsic::hexagon_V6_vgth_or, 42101}, // __builtin_HEXAGON_V6_vgth_or
-      {Intrinsic::hexagon_V6_vgth_or_128B, 42130}, // __builtin_HEXAGON_V6_vgth_or_128B
-      {Intrinsic::hexagon_V6_vgth_xor, 42164}, // __builtin_HEXAGON_V6_vgth_xor
-      {Intrinsic::hexagon_V6_vgth_xor_128B, 42194}, // __builtin_HEXAGON_V6_vgth_xor_128B
-      {Intrinsic::hexagon_V6_vgtub, 42229}, // __builtin_HEXAGON_V6_vgtub
-      {Intrinsic::hexagon_V6_vgtub_128B, 42256}, // __builtin_HEXAGON_V6_vgtub_128B
-      {Intrinsic::hexagon_V6_vgtub_and, 42288}, // __builtin_HEXAGON_V6_vgtub_and
-      {Intrinsic::hexagon_V6_vgtub_and_128B, 42319}, // __builtin_HEXAGON_V6_vgtub_and_128B
-      {Intrinsic::hexagon_V6_vgtub_or, 42355}, // __builtin_HEXAGON_V6_vgtub_or
-      {Intrinsic::hexagon_V6_vgtub_or_128B, 42385}, // __builtin_HEXAGON_V6_vgtub_or_128B
-      {Intrinsic::hexagon_V6_vgtub_xor, 42420}, // __builtin_HEXAGON_V6_vgtub_xor
-      {Intrinsic::hexagon_V6_vgtub_xor_128B, 42451}, // __builtin_HEXAGON_V6_vgtub_xor_128B
-      {Intrinsic::hexagon_V6_vgtuh, 42487}, // __builtin_HEXAGON_V6_vgtuh
-      {Intrinsic::hexagon_V6_vgtuh_128B, 42514}, // __builtin_HEXAGON_V6_vgtuh_128B
-      {Intrinsic::hexagon_V6_vgtuh_and, 42546}, // __builtin_HEXAGON_V6_vgtuh_and
-      {Intrinsic::hexagon_V6_vgtuh_and_128B, 42577}, // __builtin_HEXAGON_V6_vgtuh_and_128B
-      {Intrinsic::hexagon_V6_vgtuh_or, 42613}, // __builtin_HEXAGON_V6_vgtuh_or
-      {Intrinsic::hexagon_V6_vgtuh_or_128B, 42643}, // __builtin_HEXAGON_V6_vgtuh_or_128B
-      {Intrinsic::hexagon_V6_vgtuh_xor, 42678}, // __builtin_HEXAGON_V6_vgtuh_xor
-      {Intrinsic::hexagon_V6_vgtuh_xor_128B, 42709}, // __builtin_HEXAGON_V6_vgtuh_xor_128B
-      {Intrinsic::hexagon_V6_vgtuw, 42745}, // __builtin_HEXAGON_V6_vgtuw
-      {Intrinsic::hexagon_V6_vgtuw_128B, 42772}, // __builtin_HEXAGON_V6_vgtuw_128B
-      {Intrinsic::hexagon_V6_vgtuw_and, 42804}, // __builtin_HEXAGON_V6_vgtuw_and
-      {Intrinsic::hexagon_V6_vgtuw_and_128B, 42835}, // __builtin_HEXAGON_V6_vgtuw_and_128B
-      {Intrinsic::hexagon_V6_vgtuw_or, 42871}, // __builtin_HEXAGON_V6_vgtuw_or
-      {Intrinsic::hexagon_V6_vgtuw_or_128B, 42901}, // __builtin_HEXAGON_V6_vgtuw_or_128B
-      {Intrinsic::hexagon_V6_vgtuw_xor, 42936}, // __builtin_HEXAGON_V6_vgtuw_xor
-      {Intrinsic::hexagon_V6_vgtuw_xor_128B, 42967}, // __builtin_HEXAGON_V6_vgtuw_xor_128B
-      {Intrinsic::hexagon_V6_vgtw, 43003}, // __builtin_HEXAGON_V6_vgtw
-      {Intrinsic::hexagon_V6_vgtw_128B, 43029}, // __builtin_HEXAGON_V6_vgtw_128B
-      {Intrinsic::hexagon_V6_vgtw_and, 43060}, // __builtin_HEXAGON_V6_vgtw_and
-      {Intrinsic::hexagon_V6_vgtw_and_128B, 43090}, // __builtin_HEXAGON_V6_vgtw_and_128B
-      {Intrinsic::hexagon_V6_vgtw_or, 43125}, // __builtin_HEXAGON_V6_vgtw_or
-      {Intrinsic::hexagon_V6_vgtw_or_128B, 43154}, // __builtin_HEXAGON_V6_vgtw_or_128B
-      {Intrinsic::hexagon_V6_vgtw_xor, 43188}, // __builtin_HEXAGON_V6_vgtw_xor
-      {Intrinsic::hexagon_V6_vgtw_xor_128B, 43218}, // __builtin_HEXAGON_V6_vgtw_xor_128B
-      {Intrinsic::hexagon_V6_vinsertwr, 43253}, // __builtin_HEXAGON_V6_vinsertwr
-      {Intrinsic::hexagon_V6_vinsertwr_128B, 43284}, // __builtin_HEXAGON_V6_vinsertwr_128B
-      {Intrinsic::hexagon_V6_vlalignb, 43320}, // __builtin_HEXAGON_V6_vlalignb
-      {Intrinsic::hexagon_V6_vlalignb_128B, 43350}, // __builtin_HEXAGON_V6_vlalignb_128B
-      {Intrinsic::hexagon_V6_vlalignbi, 43385}, // __builtin_HEXAGON_V6_vlalignbi
-      {Intrinsic::hexagon_V6_vlalignbi_128B, 43416}, // __builtin_HEXAGON_V6_vlalignbi_128B
-      {Intrinsic::hexagon_V6_vlsrb, 43452}, // __builtin_HEXAGON_V6_vlsrb
-      {Intrinsic::hexagon_V6_vlsrb_128B, 43479}, // __builtin_HEXAGON_V6_vlsrb_128B
-      {Intrinsic::hexagon_V6_vlsrh, 43511}, // __builtin_HEXAGON_V6_vlsrh
-      {Intrinsic::hexagon_V6_vlsrh_128B, 43538}, // __builtin_HEXAGON_V6_vlsrh_128B
-      {Intrinsic::hexagon_V6_vlsrhv, 43570}, // __builtin_HEXAGON_V6_vlsrhv
-      {Intrinsic::hexagon_V6_vlsrhv_128B, 43598}, // __builtin_HEXAGON_V6_vlsrhv_128B
-      {Intrinsic::hexagon_V6_vlsrw, 43631}, // __builtin_HEXAGON_V6_vlsrw
-      {Intrinsic::hexagon_V6_vlsrw_128B, 43658}, // __builtin_HEXAGON_V6_vlsrw_128B
-      {Intrinsic::hexagon_V6_vlsrwv, 43690}, // __builtin_HEXAGON_V6_vlsrwv
-      {Intrinsic::hexagon_V6_vlsrwv_128B, 43718}, // __builtin_HEXAGON_V6_vlsrwv_128B
-      {Intrinsic::hexagon_V6_vlut4, 43751}, // __builtin_HEXAGON_V6_vlut4
-      {Intrinsic::hexagon_V6_vlut4_128B, 43778}, // __builtin_HEXAGON_V6_vlut4_128B
-      {Intrinsic::hexagon_V6_vlutvvb, 43810}, // __builtin_HEXAGON_V6_vlutvvb
-      {Intrinsic::hexagon_V6_vlutvvb_128B, 43839}, // __builtin_HEXAGON_V6_vlutvvb_128B
-      {Intrinsic::hexagon_V6_vlutvvb_nm, 43873}, // __builtin_HEXAGON_V6_vlutvvb_nm
-      {Intrinsic::hexagon_V6_vlutvvb_nm_128B, 43905}, // __builtin_HEXAGON_V6_vlutvvb_nm_128B
-      {Intrinsic::hexagon_V6_vlutvvb_oracc, 43942}, // __builtin_HEXAGON_V6_vlutvvb_oracc
-      {Intrinsic::hexagon_V6_vlutvvb_oracc_128B, 43977}, // __builtin_HEXAGON_V6_vlutvvb_oracc_128B
-      {Intrinsic::hexagon_V6_vlutvvb_oracci, 44017}, // __builtin_HEXAGON_V6_vlutvvb_oracci
-      {Intrinsic::hexagon_V6_vlutvvb_oracci_128B, 44053}, // __builtin_HEXAGON_V6_vlutvvb_oracci_128B
-      {Intrinsic::hexagon_V6_vlutvvbi, 44094}, // __builtin_HEXAGON_V6_vlutvvbi
-      {Intrinsic::hexagon_V6_vlutvvbi_128B, 44124}, // __builtin_HEXAGON_V6_vlutvvbi_128B
-      {Intrinsic::hexagon_V6_vlutvwh, 44159}, // __builtin_HEXAGON_V6_vlutvwh
-      {Intrinsic::hexagon_V6_vlutvwh_128B, 44188}, // __builtin_HEXAGON_V6_vlutvwh_128B
-      {Intrinsic::hexagon_V6_vlutvwh_nm, 44222}, // __builtin_HEXAGON_V6_vlutvwh_nm
-      {Intrinsic::hexagon_V6_vlutvwh_nm_128B, 44254}, // __builtin_HEXAGON_V6_vlutvwh_nm_128B
-      {Intrinsic::hexagon_V6_vlutvwh_oracc, 44291}, // __builtin_HEXAGON_V6_vlutvwh_oracc
-      {Intrinsic::hexagon_V6_vlutvwh_oracc_128B, 44326}, // __builtin_HEXAGON_V6_vlutvwh_oracc_128B
-      {Intrinsic::hexagon_V6_vlutvwh_oracci, 44366}, // __builtin_HEXAGON_V6_vlutvwh_oracci
-      {Intrinsic::hexagon_V6_vlutvwh_oracci_128B, 44402}, // __builtin_HEXAGON_V6_vlutvwh_oracci_128B
-      {Intrinsic::hexagon_V6_vlutvwhi, 44443}, // __builtin_HEXAGON_V6_vlutvwhi
-      {Intrinsic::hexagon_V6_vlutvwhi_128B, 44473}, // __builtin_HEXAGON_V6_vlutvwhi_128B
-      {Intrinsic::hexagon_V6_vmaskedstorenq, 44508}, // __builtin_HEXAGON_V6_vmaskedstorenq
-      {Intrinsic::hexagon_V6_vmaskedstorenq_128B, 44544}, // __builtin_HEXAGON_V6_vmaskedstorenq_128B
-      {Intrinsic::hexagon_V6_vmaskedstorentnq, 44585}, // __builtin_HEXAGON_V6_vmaskedstorentnq
-      {Intrinsic::hexagon_V6_vmaskedstorentnq_128B, 44623}, // __builtin_HEXAGON_V6_vmaskedstorentnq_128B
-      {Intrinsic::hexagon_V6_vmaskedstorentq, 44666}, // __builtin_HEXAGON_V6_vmaskedstorentq
-      {Intrinsic::hexagon_V6_vmaskedstorentq_128B, 44703}, // __builtin_HEXAGON_V6_vmaskedstorentq_128B
-      {Intrinsic::hexagon_V6_vmaskedstoreq, 44745}, // __builtin_HEXAGON_V6_vmaskedstoreq
-      {Intrinsic::hexagon_V6_vmaskedstoreq_128B, 44780}, // __builtin_HEXAGON_V6_vmaskedstoreq_128B
-      {Intrinsic::hexagon_V6_vmaxb, 44820}, // __builtin_HEXAGON_V6_vmaxb
-      {Intrinsic::hexagon_V6_vmaxb_128B, 44847}, // __builtin_HEXAGON_V6_vmaxb_128B
-      {Intrinsic::hexagon_V6_vmaxh, 44879}, // __builtin_HEXAGON_V6_vmaxh
-      {Intrinsic::hexagon_V6_vmaxh_128B, 44906}, // __builtin_HEXAGON_V6_vmaxh_128B
-      {Intrinsic::hexagon_V6_vmaxub, 44938}, // __builtin_HEXAGON_V6_vmaxub
-      {Intrinsic::hexagon_V6_vmaxub_128B, 44966}, // __builtin_HEXAGON_V6_vmaxub_128B
-      {Intrinsic::hexagon_V6_vmaxuh, 44999}, // __builtin_HEXAGON_V6_vmaxuh
-      {Intrinsic::hexagon_V6_vmaxuh_128B, 45027}, // __builtin_HEXAGON_V6_vmaxuh_128B
-      {Intrinsic::hexagon_V6_vmaxw, 45060}, // __builtin_HEXAGON_V6_vmaxw
-      {Intrinsic::hexagon_V6_vmaxw_128B, 45087}, // __builtin_HEXAGON_V6_vmaxw_128B
-      {Intrinsic::hexagon_V6_vminb, 45119}, // __builtin_HEXAGON_V6_vminb
-      {Intrinsic::hexagon_V6_vminb_128B, 45146}, // __builtin_HEXAGON_V6_vminb_128B
-      {Intrinsic::hexagon_V6_vminh, 45178}, // __builtin_HEXAGON_V6_vminh
-      {Intrinsic::hexagon_V6_vminh_128B, 45205}, // __builtin_HEXAGON_V6_vminh_128B
-      {Intrinsic::hexagon_V6_vminub, 45237}, // __builtin_HEXAGON_V6_vminub
-      {Intrinsic::hexagon_V6_vminub_128B, 45265}, // __builtin_HEXAGON_V6_vminub_128B
-      {Intrinsic::hexagon_V6_vminuh, 45298}, // __builtin_HEXAGON_V6_vminuh
-      {Intrinsic::hexagon_V6_vminuh_128B, 45326}, // __builtin_HEXAGON_V6_vminuh_128B
-      {Intrinsic::hexagon_V6_vminw, 45359}, // __builtin_HEXAGON_V6_vminw
-      {Intrinsic::hexagon_V6_vminw_128B, 45386}, // __builtin_HEXAGON_V6_vminw_128B
-      {Intrinsic::hexagon_V6_vmpabus, 45418}, // __builtin_HEXAGON_V6_vmpabus
-      {Intrinsic::hexagon_V6_vmpabus_128B, 45447}, // __builtin_HEXAGON_V6_vmpabus_128B
-      {Intrinsic::hexagon_V6_vmpabus_acc, 45481}, // __builtin_HEXAGON_V6_vmpabus_acc
-      {Intrinsic::hexagon_V6_vmpabus_acc_128B, 45514}, // __builtin_HEXAGON_V6_vmpabus_acc_128B
-      {Intrinsic::hexagon_V6_vmpabusv, 45552}, // __builtin_HEXAGON_V6_vmpabusv
-      {Intrinsic::hexagon_V6_vmpabusv_128B, 45582}, // __builtin_HEXAGON_V6_vmpabusv_128B
-      {Intrinsic::hexagon_V6_vmpabuu, 45617}, // __builtin_HEXAGON_V6_vmpabuu
-      {Intrinsic::hexagon_V6_vmpabuu_128B, 45646}, // __builtin_HEXAGON_V6_vmpabuu_128B
-      {Intrinsic::hexagon_V6_vmpabuu_acc, 45680}, // __builtin_HEXAGON_V6_vmpabuu_acc
-      {Intrinsic::hexagon_V6_vmpabuu_acc_128B, 45713}, // __builtin_HEXAGON_V6_vmpabuu_acc_128B
-      {Intrinsic::hexagon_V6_vmpabuuv, 45751}, // __builtin_HEXAGON_V6_vmpabuuv
-      {Intrinsic::hexagon_V6_vmpabuuv_128B, 45781}, // __builtin_HEXAGON_V6_vmpabuuv_128B
-      {Intrinsic::hexagon_V6_vmpahb, 45816}, // __builtin_HEXAGON_V6_vmpahb
-      {Intrinsic::hexagon_V6_vmpahb_128B, 45844}, // __builtin_HEXAGON_V6_vmpahb_128B
-      {Intrinsic::hexagon_V6_vmpahb_acc, 45877}, // __builtin_HEXAGON_V6_vmpahb_acc
-      {Intrinsic::hexagon_V6_vmpahb_acc_128B, 45909}, // __builtin_HEXAGON_V6_vmpahb_acc_128B
-      {Intrinsic::hexagon_V6_vmpahhsat, 45946}, // __builtin_HEXAGON_V6_vmpahhsat
-      {Intrinsic::hexagon_V6_vmpahhsat_128B, 45977}, // __builtin_HEXAGON_V6_vmpahhsat_128B
-      {Intrinsic::hexagon_V6_vmpauhb, 46013}, // __builtin_HEXAGON_V6_vmpauhb
-      {Intrinsic::hexagon_V6_vmpauhb_128B, 46042}, // __builtin_HEXAGON_V6_vmpauhb_128B
-      {Intrinsic::hexagon_V6_vmpauhb_acc, 46076}, // __builtin_HEXAGON_V6_vmpauhb_acc
-      {Intrinsic::hexagon_V6_vmpauhb_acc_128B, 46109}, // __builtin_HEXAGON_V6_vmpauhb_acc_128B
-      {Intrinsic::hexagon_V6_vmpauhuhsat, 46147}, // __builtin_HEXAGON_V6_vmpauhuhsat
-      {Intrinsic::hexagon_V6_vmpauhuhsat_128B, 46180}, // __builtin_HEXAGON_V6_vmpauhuhsat_128B
-      {Intrinsic::hexagon_V6_vmpsuhuhsat, 46218}, // __builtin_HEXAGON_V6_vmpsuhuhsat
-      {Intrinsic::hexagon_V6_vmpsuhuhsat_128B, 46251}, // __builtin_HEXAGON_V6_vmpsuhuhsat_128B
-      {Intrinsic::hexagon_V6_vmpybus, 46289}, // __builtin_HEXAGON_V6_vmpybus
-      {Intrinsic::hexagon_V6_vmpybus_128B, 46318}, // __builtin_HEXAGON_V6_vmpybus_128B
-      {Intrinsic::hexagon_V6_vmpybus_acc, 46352}, // __builtin_HEXAGON_V6_vmpybus_acc
-      {Intrinsic::hexagon_V6_vmpybus_acc_128B, 46385}, // __builtin_HEXAGON_V6_vmpybus_acc_128B
-      {Intrinsic::hexagon_V6_vmpybusv, 46423}, // __builtin_HEXAGON_V6_vmpybusv
-      {Intrinsic::hexagon_V6_vmpybusv_128B, 46453}, // __builtin_HEXAGON_V6_vmpybusv_128B
-      {Intrinsic::hexagon_V6_vmpybusv_acc, 46488}, // __builtin_HEXAGON_V6_vmpybusv_acc
-      {Intrinsic::hexagon_V6_vmpybusv_acc_128B, 46522}, // __builtin_HEXAGON_V6_vmpybusv_acc_128B
-      {Intrinsic::hexagon_V6_vmpybv, 46561}, // __builtin_HEXAGON_V6_vmpybv
-      {Intrinsic::hexagon_V6_vmpybv_128B, 46589}, // __builtin_HEXAGON_V6_vmpybv_128B
-      {Intrinsic::hexagon_V6_vmpybv_acc, 46622}, // __builtin_HEXAGON_V6_vmpybv_acc
-      {Intrinsic::hexagon_V6_vmpybv_acc_128B, 46654}, // __builtin_HEXAGON_V6_vmpybv_acc_128B
-      {Intrinsic::hexagon_V6_vmpyewuh, 46691}, // __builtin_HEXAGON_V6_vmpyewuh
-      {Intrinsic::hexagon_V6_vmpyewuh_128B, 46721}, // __builtin_HEXAGON_V6_vmpyewuh_128B
-      {Intrinsic::hexagon_V6_vmpyewuh_64, 46756}, // __builtin_HEXAGON_V6_vmpyewuh_64
-      {Intrinsic::hexagon_V6_vmpyewuh_64_128B, 46789}, // __builtin_HEXAGON_V6_vmpyewuh_64_128B
-      {Intrinsic::hexagon_V6_vmpyh, 46827}, // __builtin_HEXAGON_V6_vmpyh
-      {Intrinsic::hexagon_V6_vmpyh_128B, 46854}, // __builtin_HEXAGON_V6_vmpyh_128B
-      {Intrinsic::hexagon_V6_vmpyh_acc, 46886}, // __builtin_HEXAGON_V6_vmpyh_acc
-      {Intrinsic::hexagon_V6_vmpyh_acc_128B, 46917}, // __builtin_HEXAGON_V6_vmpyh_acc_128B
-      {Intrinsic::hexagon_V6_vmpyhsat_acc, 46953}, // __builtin_HEXAGON_V6_vmpyhsat_acc
-      {Intrinsic::hexagon_V6_vmpyhsat_acc_128B, 46987}, // __builtin_HEXAGON_V6_vmpyhsat_acc_128B
-      {Intrinsic::hexagon_V6_vmpyhsrs, 47026}, // __builtin_HEXAGON_V6_vmpyhsrs
-      {Intrinsic::hexagon_V6_vmpyhsrs_128B, 47056}, // __builtin_HEXAGON_V6_vmpyhsrs_128B
-      {Intrinsic::hexagon_V6_vmpyhss, 47091}, // __builtin_HEXAGON_V6_vmpyhss
-      {Intrinsic::hexagon_V6_vmpyhss_128B, 47120}, // __builtin_HEXAGON_V6_vmpyhss_128B
-      {Intrinsic::hexagon_V6_vmpyhus, 47154}, // __builtin_HEXAGON_V6_vmpyhus
-      {Intrinsic::hexagon_V6_vmpyhus_128B, 47183}, // __builtin_HEXAGON_V6_vmpyhus_128B
-      {Intrinsic::hexagon_V6_vmpyhus_acc, 47217}, // __builtin_HEXAGON_V6_vmpyhus_acc
-      {Intrinsic::hexagon_V6_vmpyhus_acc_128B, 47250}, // __builtin_HEXAGON_V6_vmpyhus_acc_128B
-      {Intrinsic::hexagon_V6_vmpyhv, 47288}, // __builtin_HEXAGON_V6_vmpyhv
-      {Intrinsic::hexagon_V6_vmpyhv_128B, 47316}, // __builtin_HEXAGON_V6_vmpyhv_128B
-      {Intrinsic::hexagon_V6_vmpyhv_acc, 47349}, // __builtin_HEXAGON_V6_vmpyhv_acc
-      {Intrinsic::hexagon_V6_vmpyhv_acc_128B, 47381}, // __builtin_HEXAGON_V6_vmpyhv_acc_128B
-      {Intrinsic::hexagon_V6_vmpyhvsrs, 47418}, // __builtin_HEXAGON_V6_vmpyhvsrs
-      {Intrinsic::hexagon_V6_vmpyhvsrs_128B, 47449}, // __builtin_HEXAGON_V6_vmpyhvsrs_128B
-      {Intrinsic::hexagon_V6_vmpyieoh, 47485}, // __builtin_HEXAGON_V6_vmpyieoh
-      {Intrinsic::hexagon_V6_vmpyieoh_128B, 47515}, // __builtin_HEXAGON_V6_vmpyieoh_128B
-      {Intrinsic::hexagon_V6_vmpyiewh_acc, 47550}, // __builtin_HEXAGON_V6_vmpyiewh_acc
-      {Intrinsic::hexagon_V6_vmpyiewh_acc_128B, 47584}, // __builtin_HEXAGON_V6_vmpyiewh_acc_128B
-      {Intrinsic::hexagon_V6_vmpyiewuh, 47623}, // __builtin_HEXAGON_V6_vmpyiewuh
-      {Intrinsic::hexagon_V6_vmpyiewuh_128B, 47654}, // __builtin_HEXAGON_V6_vmpyiewuh_128B
-      {Intrinsic::hexagon_V6_vmpyiewuh_acc, 47690}, // __builtin_HEXAGON_V6_vmpyiewuh_acc
-      {Intrinsic::hexagon_V6_vmpyiewuh_acc_128B, 47725}, // __builtin_HEXAGON_V6_vmpyiewuh_acc_128B
-      {Intrinsic::hexagon_V6_vmpyih, 47765}, // __builtin_HEXAGON_V6_vmpyih
-      {Intrinsic::hexagon_V6_vmpyih_128B, 47793}, // __builtin_HEXAGON_V6_vmpyih_128B
-      {Intrinsic::hexagon_V6_vmpyih_acc, 47826}, // __builtin_HEXAGON_V6_vmpyih_acc
-      {Intrinsic::hexagon_V6_vmpyih_acc_128B, 47858}, // __builtin_HEXAGON_V6_vmpyih_acc_128B
-      {Intrinsic::hexagon_V6_vmpyihb, 47895}, // __builtin_HEXAGON_V6_vmpyihb
-      {Intrinsic::hexagon_V6_vmpyihb_128B, 47924}, // __builtin_HEXAGON_V6_vmpyihb_128B
-      {Intrinsic::hexagon_V6_vmpyihb_acc, 47958}, // __builtin_HEXAGON_V6_vmpyihb_acc
-      {Intrinsic::hexagon_V6_vmpyihb_acc_128B, 47991}, // __builtin_HEXAGON_V6_vmpyihb_acc_128B
-      {Intrinsic::hexagon_V6_vmpyiowh, 48029}, // __builtin_HEXAGON_V6_vmpyiowh
-      {Intrinsic::hexagon_V6_vmpyiowh_128B, 48059}, // __builtin_HEXAGON_V6_vmpyiowh_128B
-      {Intrinsic::hexagon_V6_vmpyiwb, 48094}, // __builtin_HEXAGON_V6_vmpyiwb
-      {Intrinsic::hexagon_V6_vmpyiwb_128B, 48123}, // __builtin_HEXAGON_V6_vmpyiwb_128B
-      {Intrinsic::hexagon_V6_vmpyiwb_acc, 48157}, // __builtin_HEXAGON_V6_vmpyiwb_acc
-      {Intrinsic::hexagon_V6_vmpyiwb_acc_128B, 48190}, // __builtin_HEXAGON_V6_vmpyiwb_acc_128B
-      {Intrinsic::hexagon_V6_vmpyiwh, 48228}, // __builtin_HEXAGON_V6_vmpyiwh
-      {Intrinsic::hexagon_V6_vmpyiwh_128B, 48257}, // __builtin_HEXAGON_V6_vmpyiwh_128B
-      {Intrinsic::hexagon_V6_vmpyiwh_acc, 48291}, // __builtin_HEXAGON_V6_vmpyiwh_acc
-      {Intrinsic::hexagon_V6_vmpyiwh_acc_128B, 48324}, // __builtin_HEXAGON_V6_vmpyiwh_acc_128B
-      {Intrinsic::hexagon_V6_vmpyiwub, 48362}, // __builtin_HEXAGON_V6_vmpyiwub
-      {Intrinsic::hexagon_V6_vmpyiwub_128B, 48392}, // __builtin_HEXAGON_V6_vmpyiwub_128B
-      {Intrinsic::hexagon_V6_vmpyiwub_acc, 48427}, // __builtin_HEXAGON_V6_vmpyiwub_acc
-      {Intrinsic::hexagon_V6_vmpyiwub_acc_128B, 48461}, // __builtin_HEXAGON_V6_vmpyiwub_acc_128B
-      {Intrinsic::hexagon_V6_vmpyowh, 48500}, // __builtin_HEXAGON_V6_vmpyowh
-      {Intrinsic::hexagon_V6_vmpyowh_128B, 48529}, // __builtin_HEXAGON_V6_vmpyowh_128B
-      {Intrinsic::hexagon_V6_vmpyowh_64_acc, 48563}, // __builtin_HEXAGON_V6_vmpyowh_64_acc
-      {Intrinsic::hexagon_V6_vmpyowh_64_acc_128B, 48599}, // __builtin_HEXAGON_V6_vmpyowh_64_acc_128B
-      {Intrinsic::hexagon_V6_vmpyowh_rnd, 48640}, // __builtin_HEXAGON_V6_vmpyowh_rnd
-      {Intrinsic::hexagon_V6_vmpyowh_rnd_128B, 48673}, // __builtin_HEXAGON_V6_vmpyowh_rnd_128B
-      {Intrinsic::hexagon_V6_vmpyowh_rnd_sacc, 48711}, // __builtin_HEXAGON_V6_vmpyowh_rnd_sacc
-      {Intrinsic::hexagon_V6_vmpyowh_rnd_sacc_128B, 48749}, // __builtin_HEXAGON_V6_vmpyowh_rnd_sacc_128B
-      {Intrinsic::hexagon_V6_vmpyowh_sacc, 48792}, // __builtin_HEXAGON_V6_vmpyowh_sacc
-      {Intrinsic::hexagon_V6_vmpyowh_sacc_128B, 48826}, // __builtin_HEXAGON_V6_vmpyowh_sacc_128B
-      {Intrinsic::hexagon_V6_vmpyub, 48865}, // __builtin_HEXAGON_V6_vmpyub
-      {Intrinsic::hexagon_V6_vmpyub_128B, 48893}, // __builtin_HEXAGON_V6_vmpyub_128B
-      {Intrinsic::hexagon_V6_vmpyub_acc, 48926}, // __builtin_HEXAGON_V6_vmpyub_acc
-      {Intrinsic::hexagon_V6_vmpyub_acc_128B, 48958}, // __builtin_HEXAGON_V6_vmpyub_acc_128B
-      {Intrinsic::hexagon_V6_vmpyubv, 48995}, // __builtin_HEXAGON_V6_vmpyubv
-      {Intrinsic::hexagon_V6_vmpyubv_128B, 49024}, // __builtin_HEXAGON_V6_vmpyubv_128B
-      {Intrinsic::hexagon_V6_vmpyubv_acc, 49058}, // __builtin_HEXAGON_V6_vmpyubv_acc
-      {Intrinsic::hexagon_V6_vmpyubv_acc_128B, 49091}, // __builtin_HEXAGON_V6_vmpyubv_acc_128B
-      {Intrinsic::hexagon_V6_vmpyuh, 49129}, // __builtin_HEXAGON_V6_vmpyuh
-      {Intrinsic::hexagon_V6_vmpyuh_128B, 49157}, // __builtin_HEXAGON_V6_vmpyuh_128B
-      {Intrinsic::hexagon_V6_vmpyuh_acc, 49190}, // __builtin_HEXAGON_V6_vmpyuh_acc
-      {Intrinsic::hexagon_V6_vmpyuh_acc_128B, 49222}, // __builtin_HEXAGON_V6_vmpyuh_acc_128B
-      {Intrinsic::hexagon_V6_vmpyuhe, 49259}, // __builtin_HEXAGON_V6_vmpyuhe
-      {Intrinsic::hexagon_V6_vmpyuhe_128B, 49288}, // __builtin_HEXAGON_V6_vmpyuhe_128B
-      {Intrinsic::hexagon_V6_vmpyuhe_acc, 49322}, // __builtin_HEXAGON_V6_vmpyuhe_acc
-      {Intrinsic::hexagon_V6_vmpyuhe_acc_128B, 49355}, // __builtin_HEXAGON_V6_vmpyuhe_acc_128B
-      {Intrinsic::hexagon_V6_vmpyuhv, 49393}, // __builtin_HEXAGON_V6_vmpyuhv
-      {Intrinsic::hexagon_V6_vmpyuhv_128B, 49422}, // __builtin_HEXAGON_V6_vmpyuhv_128B
-      {Intrinsic::hexagon_V6_vmpyuhv_acc, 49456}, // __builtin_HEXAGON_V6_vmpyuhv_acc
-      {Intrinsic::hexagon_V6_vmpyuhv_acc_128B, 49489}, // __builtin_HEXAGON_V6_vmpyuhv_acc_128B
-      {Intrinsic::hexagon_V6_vmux, 49527}, // __builtin_HEXAGON_V6_vmux
-      {Intrinsic::hexagon_V6_vmux_128B, 49553}, // __builtin_HEXAGON_V6_vmux_128B
-      {Intrinsic::hexagon_V6_vnavgb, 49584}, // __builtin_HEXAGON_V6_vnavgb
-      {Intrinsic::hexagon_V6_vnavgb_128B, 49612}, // __builtin_HEXAGON_V6_vnavgb_128B
-      {Intrinsic::hexagon_V6_vnavgh, 49645}, // __builtin_HEXAGON_V6_vnavgh
-      {Intrinsic::hexagon_V6_vnavgh_128B, 49673}, // __builtin_HEXAGON_V6_vnavgh_128B
-      {Intrinsic::hexagon_V6_vnavgub, 49706}, // __builtin_HEXAGON_V6_vnavgub
-      {Intrinsic::hexagon_V6_vnavgub_128B, 49735}, // __builtin_HEXAGON_V6_vnavgub_128B
-      {Intrinsic::hexagon_V6_vnavgw, 49769}, // __builtin_HEXAGON_V6_vnavgw
-      {Intrinsic::hexagon_V6_vnavgw_128B, 49797}, // __builtin_HEXAGON_V6_vnavgw_128B
-      {Intrinsic::hexagon_V6_vnormamth, 49830}, // __builtin_HEXAGON_V6_vnormamth
-      {Intrinsic::hexagon_V6_vnormamth_128B, 49861}, // __builtin_HEXAGON_V6_vnormamth_128B
-      {Intrinsic::hexagon_V6_vnormamtw, 49897}, // __builtin_HEXAGON_V6_vnormamtw
-      {Intrinsic::hexagon_V6_vnormamtw_128B, 49928}, // __builtin_HEXAGON_V6_vnormamtw_128B
-      {Intrinsic::hexagon_V6_vnot, 49964}, // __builtin_HEXAGON_V6_vnot
-      {Intrinsic::hexagon_V6_vnot_128B, 49990}, // __builtin_HEXAGON_V6_vnot_128B
-      {Intrinsic::hexagon_V6_vor, 50021}, // __builtin_HEXAGON_V6_vor
-      {Intrinsic::hexagon_V6_vor_128B, 50046}, // __builtin_HEXAGON_V6_vor_128B
-      {Intrinsic::hexagon_V6_vpackeb, 50076}, // __builtin_HEXAGON_V6_vpackeb
-      {Intrinsic::hexagon_V6_vpackeb_128B, 50105}, // __builtin_HEXAGON_V6_vpackeb_128B
-      {Intrinsic::hexagon_V6_vpackeh, 50139}, // __builtin_HEXAGON_V6_vpackeh
-      {Intrinsic::hexagon_V6_vpackeh_128B, 50168}, // __builtin_HEXAGON_V6_vpackeh_128B
-      {Intrinsic::hexagon_V6_vpackhb_sat, 50202}, // __builtin_HEXAGON_V6_vpackhb_sat
-      {Intrinsic::hexagon_V6_vpackhb_sat_128B, 50235}, // __builtin_HEXAGON_V6_vpackhb_sat_128B
-      {Intrinsic::hexagon_V6_vpackhub_sat, 50273}, // __builtin_HEXAGON_V6_vpackhub_sat
-      {Intrinsic::hexagon_V6_vpackhub_sat_128B, 50307}, // __builtin_HEXAGON_V6_vpackhub_sat_128B
-      {Intrinsic::hexagon_V6_vpackob, 50346}, // __builtin_HEXAGON_V6_vpackob
-      {Intrinsic::hexagon_V6_vpackob_128B, 50375}, // __builtin_HEXAGON_V6_vpackob_128B
-      {Intrinsic::hexagon_V6_vpackoh, 50409}, // __builtin_HEXAGON_V6_vpackoh
-      {Intrinsic::hexagon_V6_vpackoh_128B, 50438}, // __builtin_HEXAGON_V6_vpackoh_128B
-      {Intrinsic::hexagon_V6_vpackwh_sat, 50472}, // __builtin_HEXAGON_V6_vpackwh_sat
-      {Intrinsic::hexagon_V6_vpackwh_sat_128B, 50505}, // __builtin_HEXAGON_V6_vpackwh_sat_128B
-      {Intrinsic::hexagon_V6_vpackwuh_sat, 50543}, // __builtin_HEXAGON_V6_vpackwuh_sat
-      {Intrinsic::hexagon_V6_vpackwuh_sat_128B, 50577}, // __builtin_HEXAGON_V6_vpackwuh_sat_128B
-      {Intrinsic::hexagon_V6_vpopcounth, 50616}, // __builtin_HEXAGON_V6_vpopcounth
-      {Intrinsic::hexagon_V6_vpopcounth_128B, 50648}, // __builtin_HEXAGON_V6_vpopcounth_128B
-      {Intrinsic::hexagon_V6_vprefixqb, 50685}, // __builtin_HEXAGON_V6_vprefixqb
-      {Intrinsic::hexagon_V6_vprefixqb_128B, 50716}, // __builtin_HEXAGON_V6_vprefixqb_128B
-      {Intrinsic::hexagon_V6_vprefixqh, 50752}, // __builtin_HEXAGON_V6_vprefixqh
-      {Intrinsic::hexagon_V6_vprefixqh_128B, 50783}, // __builtin_HEXAGON_V6_vprefixqh_128B
-      {Intrinsic::hexagon_V6_vprefixqw, 50819}, // __builtin_HEXAGON_V6_vprefixqw
-      {Intrinsic::hexagon_V6_vprefixqw_128B, 50850}, // __builtin_HEXAGON_V6_vprefixqw_128B
-      {Intrinsic::hexagon_V6_vrdelta, 50886}, // __builtin_HEXAGON_V6_vrdelta
-      {Intrinsic::hexagon_V6_vrdelta_128B, 50915}, // __builtin_HEXAGON_V6_vrdelta_128B
-      {Intrinsic::hexagon_V6_vrmpybub_rtt, 50949}, // __builtin_HEXAGON_V6_vrmpybub_rtt
-      {Intrinsic::hexagon_V6_vrmpybub_rtt_128B, 50983}, // __builtin_HEXAGON_V6_vrmpybub_rtt_128B
-      {Intrinsic::hexagon_V6_vrmpybub_rtt_acc, 51022}, // __builtin_HEXAGON_V6_vrmpybub_rtt_acc
-      {Intrinsic::hexagon_V6_vrmpybub_rtt_acc_128B, 51060}, // __builtin_HEXAGON_V6_vrmpybub_rtt_acc_128B
-      {Intrinsic::hexagon_V6_vrmpybus, 51103}, // __builtin_HEXAGON_V6_vrmpybus
-      {Intrinsic::hexagon_V6_vrmpybus_128B, 51133}, // __builtin_HEXAGON_V6_vrmpybus_128B
-      {Intrinsic::hexagon_V6_vrmpybus_acc, 51168}, // __builtin_HEXAGON_V6_vrmpybus_acc
-      {Intrinsic::hexagon_V6_vrmpybus_acc_128B, 51202}, // __builtin_HEXAGON_V6_vrmpybus_acc_128B
-      {Intrinsic::hexagon_V6_vrmpybusi, 51241}, // __builtin_HEXAGON_V6_vrmpybusi
-      {Intrinsic::hexagon_V6_vrmpybusi_128B, 51272}, // __builtin_HEXAGON_V6_vrmpybusi_128B
-      {Intrinsic::hexagon_V6_vrmpybusi_acc, 51308}, // __builtin_HEXAGON_V6_vrmpybusi_acc
-      {Intrinsic::hexagon_V6_vrmpybusi_acc_128B, 51343}, // __builtin_HEXAGON_V6_vrmpybusi_acc_128B
-      {Intrinsic::hexagon_V6_vrmpybusv, 51383}, // __builtin_HEXAGON_V6_vrmpybusv
-      {Intrinsic::hexagon_V6_vrmpybusv_128B, 51414}, // __builtin_HEXAGON_V6_vrmpybusv_128B
-      {Intrinsic::hexagon_V6_vrmpybusv_acc, 51450}, // __builtin_HEXAGON_V6_vrmpybusv_acc
-      {Intrinsic::hexagon_V6_vrmpybusv_acc_128B, 51485}, // __builtin_HEXAGON_V6_vrmpybusv_acc_128B
-      {Intrinsic::hexagon_V6_vrmpybv, 51525}, // __builtin_HEXAGON_V6_vrmpybv
-      {Intrinsic::hexagon_V6_vrmpybv_128B, 51554}, // __builtin_HEXAGON_V6_vrmpybv_128B
-      {Intrinsic::hexagon_V6_vrmpybv_acc, 51588}, // __builtin_HEXAGON_V6_vrmpybv_acc
-      {Intrinsic::hexagon_V6_vrmpybv_acc_128B, 51621}, // __builtin_HEXAGON_V6_vrmpybv_acc_128B
-      {Intrinsic::hexagon_V6_vrmpyub, 51659}, // __builtin_HEXAGON_V6_vrmpyub
-      {Intrinsic::hexagon_V6_vrmpyub_128B, 51688}, // __builtin_HEXAGON_V6_vrmpyub_128B
-      {Intrinsic::hexagon_V6_vrmpyub_acc, 51722}, // __builtin_HEXAGON_V6_vrmpyub_acc
-      {Intrinsic::hexagon_V6_vrmpyub_acc_128B, 51755}, // __builtin_HEXAGON_V6_vrmpyub_acc_128B
-      {Intrinsic::hexagon_V6_vrmpyub_rtt, 51793}, // __builtin_HEXAGON_V6_vrmpyub_rtt
-      {Intrinsic::hexagon_V6_vrmpyub_rtt_128B, 51826}, // __builtin_HEXAGON_V6_vrmpyub_rtt_128B
-      {Intrinsic::hexagon_V6_vrmpyub_rtt_acc, 51864}, // __builtin_HEXAGON_V6_vrmpyub_rtt_acc
-      {Intrinsic::hexagon_V6_vrmpyub_rtt_acc_128B, 51901}, // __builtin_HEXAGON_V6_vrmpyub_rtt_acc_128B
-      {Intrinsic::hexagon_V6_vrmpyubi, 51943}, // __builtin_HEXAGON_V6_vrmpyubi
-      {Intrinsic::hexagon_V6_vrmpyubi_128B, 51973}, // __builtin_HEXAGON_V6_vrmpyubi_128B
-      {Intrinsic::hexagon_V6_vrmpyubi_acc, 52008}, // __builtin_HEXAGON_V6_vrmpyubi_acc
-      {Intrinsic::hexagon_V6_vrmpyubi_acc_128B, 52042}, // __builtin_HEXAGON_V6_vrmpyubi_acc_128B
-      {Intrinsic::hexagon_V6_vrmpyubv, 52081}, // __builtin_HEXAGON_V6_vrmpyubv
-      {Intrinsic::hexagon_V6_vrmpyubv_128B, 52111}, // __builtin_HEXAGON_V6_vrmpyubv_128B
-      {Intrinsic::hexagon_V6_vrmpyubv_acc, 52146}, // __builtin_HEXAGON_V6_vrmpyubv_acc
-      {Intrinsic::hexagon_V6_vrmpyubv_acc_128B, 52180}, // __builtin_HEXAGON_V6_vrmpyubv_acc_128B
-      {Intrinsic::hexagon_V6_vror, 52219}, // __builtin_HEXAGON_V6_vror
-      {Intrinsic::hexagon_V6_vror_128B, 52245}, // __builtin_HEXAGON_V6_vror_128B
-      {Intrinsic::hexagon_V6_vroundhb, 52276}, // __builtin_HEXAGON_V6_vroundhb
-      {Intrinsic::hexagon_V6_vroundhb_128B, 52306}, // __builtin_HEXAGON_V6_vroundhb_128B
-      {Intrinsic::hexagon_V6_vroundhub, 52341}, // __builtin_HEXAGON_V6_vroundhub
-      {Intrinsic::hexagon_V6_vroundhub_128B, 52372}, // __builtin_HEXAGON_V6_vroundhub_128B
-      {Intrinsic::hexagon_V6_vrounduhub, 52408}, // __builtin_HEXAGON_V6_vrounduhub
-      {Intrinsic::hexagon_V6_vrounduhub_128B, 52440}, // __builtin_HEXAGON_V6_vrounduhub_128B
-      {Intrinsic::hexagon_V6_vrounduwuh, 52477}, // __builtin_HEXAGON_V6_vrounduwuh
-      {Intrinsic::hexagon_V6_vrounduwuh_128B, 52509}, // __builtin_HEXAGON_V6_vrounduwuh_128B
-      {Intrinsic::hexagon_V6_vroundwh, 52546}, // __builtin_HEXAGON_V6_vroundwh
-      {Intrinsic::hexagon_V6_vroundwh_128B, 52576}, // __builtin_HEXAGON_V6_vroundwh_128B
-      {Intrinsic::hexagon_V6_vroundwuh, 52611}, // __builtin_HEXAGON_V6_vroundwuh
-      {Intrinsic::hexagon_V6_vroundwuh_128B, 52642}, // __builtin_HEXAGON_V6_vroundwuh_128B
-      {Intrinsic::hexagon_V6_vrsadubi, 52678}, // __builtin_HEXAGON_V6_vrsadubi
-      {Intrinsic::hexagon_V6_vrsadubi_128B, 52708}, // __builtin_HEXAGON_V6_vrsadubi_128B
-      {Intrinsic::hexagon_V6_vrsadubi_acc, 52743}, // __builtin_HEXAGON_V6_vrsadubi_acc
-      {Intrinsic::hexagon_V6_vrsadubi_acc_128B, 52777}, // __builtin_HEXAGON_V6_vrsadubi_acc_128B
-      {Intrinsic::hexagon_V6_vsathub, 52816}, // __builtin_HEXAGON_V6_vsathub
-      {Intrinsic::hexagon_V6_vsathub_128B, 52845}, // __builtin_HEXAGON_V6_vsathub_128B
-      {Intrinsic::hexagon_V6_vsatuwuh, 52879}, // __builtin_HEXAGON_V6_vsatuwuh
-      {Intrinsic::hexagon_V6_vsatuwuh_128B, 52909}, // __builtin_HEXAGON_V6_vsatuwuh_128B
-      {Intrinsic::hexagon_V6_vsatwh, 52944}, // __builtin_HEXAGON_V6_vsatwh
-      {Intrinsic::hexagon_V6_vsatwh_128B, 52972}, // __builtin_HEXAGON_V6_vsatwh_128B
-      {Intrinsic::hexagon_V6_vsb, 53005}, // __builtin_HEXAGON_V6_vsb
-      {Intrinsic::hexagon_V6_vsb_128B, 53030}, // __builtin_HEXAGON_V6_vsb_128B
-      {Intrinsic::hexagon_V6_vscattermh, 53060}, // __builtin_HEXAGON_V6_vscattermh
-      {Intrinsic::hexagon_V6_vscattermh_128B, 53092}, // __builtin_HEXAGON_V6_vscattermh_128B
-      {Intrinsic::hexagon_V6_vscattermh_add, 53129}, // __builtin_HEXAGON_V6_vscattermh_add
-      {Intrinsic::hexagon_V6_vscattermh_add_128B, 53165}, // __builtin_HEXAGON_V6_vscattermh_add_128B
-      {Intrinsic::hexagon_V6_vscattermhq, 53206}, // __builtin_HEXAGON_V6_vscattermhq
-      {Intrinsic::hexagon_V6_vscattermhq_128B, 53239}, // __builtin_HEXAGON_V6_vscattermhq_128B
-      {Intrinsic::hexagon_V6_vscattermhw, 53277}, // __builtin_HEXAGON_V6_vscattermhw
-      {Intrinsic::hexagon_V6_vscattermhw_128B, 53310}, // __builtin_HEXAGON_V6_vscattermhw_128B
-      {Intrinsic::hexagon_V6_vscattermhw_add, 53348}, // __builtin_HEXAGON_V6_vscattermhw_add
-      {Intrinsic::hexagon_V6_vscattermhw_add_128B, 53385}, // __builtin_HEXAGON_V6_vscattermhw_add_128B
-      {Intrinsic::hexagon_V6_vscattermhwq, 53427}, // __builtin_HEXAGON_V6_vscattermhwq
-      {Intrinsic::hexagon_V6_vscattermhwq_128B, 53461}, // __builtin_HEXAGON_V6_vscattermhwq_128B
-      {Intrinsic::hexagon_V6_vscattermw, 53500}, // __builtin_HEXAGON_V6_vscattermw
-      {Intrinsic::hexagon_V6_vscattermw_128B, 53532}, // __builtin_HEXAGON_V6_vscattermw_128B
-      {Intrinsic::hexagon_V6_vscattermw_add, 53569}, // __builtin_HEXAGON_V6_vscattermw_add
-      {Intrinsic::hexagon_V6_vscattermw_add_128B, 53605}, // __builtin_HEXAGON_V6_vscattermw_add_128B
-      {Intrinsic::hexagon_V6_vscattermwq, 53646}, // __builtin_HEXAGON_V6_vscattermwq
-      {Intrinsic::hexagon_V6_vscattermwq_128B, 53679}, // __builtin_HEXAGON_V6_vscattermwq_128B
-      {Intrinsic::hexagon_V6_vsh, 53717}, // __builtin_HEXAGON_V6_vsh
-      {Intrinsic::hexagon_V6_vsh_128B, 53742}, // __builtin_HEXAGON_V6_vsh_128B
-      {Intrinsic::hexagon_V6_vshufeh, 53772}, // __builtin_HEXAGON_V6_vshufeh
-      {Intrinsic::hexagon_V6_vshufeh_128B, 53801}, // __builtin_HEXAGON_V6_vshufeh_128B
-      {Intrinsic::hexagon_V6_vshuffb, 53835}, // __builtin_HEXAGON_V6_vshuffb
-      {Intrinsic::hexagon_V6_vshuffb_128B, 53864}, // __builtin_HEXAGON_V6_vshuffb_128B
-      {Intrinsic::hexagon_V6_vshuffeb, 53898}, // __builtin_HEXAGON_V6_vshuffeb
-      {Intrinsic::hexagon_V6_vshuffeb_128B, 53928}, // __builtin_HEXAGON_V6_vshuffeb_128B
-      {Intrinsic::hexagon_V6_vshuffh, 53963}, // __builtin_HEXAGON_V6_vshuffh
-      {Intrinsic::hexagon_V6_vshuffh_128B, 53992}, // __builtin_HEXAGON_V6_vshuffh_128B
-      {Intrinsic::hexagon_V6_vshuffob, 54026}, // __builtin_HEXAGON_V6_vshuffob
-      {Intrinsic::hexagon_V6_vshuffob_128B, 54056}, // __builtin_HEXAGON_V6_vshuffob_128B
-      {Intrinsic::hexagon_V6_vshuffvdd, 54091}, // __builtin_HEXAGON_V6_vshuffvdd
-      {Intrinsic::hexagon_V6_vshuffvdd_128B, 54122}, // __builtin_HEXAGON_V6_vshuffvdd_128B
-      {Intrinsic::hexagon_V6_vshufoeb, 54158}, // __builtin_HEXAGON_V6_vshufoeb
-      {Intrinsic::hexagon_V6_vshufoeb_128B, 54188}, // __builtin_HEXAGON_V6_vshufoeb_128B
-      {Intrinsic::hexagon_V6_vshufoeh, 54223}, // __builtin_HEXAGON_V6_vshufoeh
-      {Intrinsic::hexagon_V6_vshufoeh_128B, 54253}, // __builtin_HEXAGON_V6_vshufoeh_128B
-      {Intrinsic::hexagon_V6_vshufoh, 54288}, // __builtin_HEXAGON_V6_vshufoh
-      {Intrinsic::hexagon_V6_vshufoh_128B, 54317}, // __builtin_HEXAGON_V6_vshufoh_128B
-      {Intrinsic::hexagon_V6_vsubb, 54351}, // __builtin_HEXAGON_V6_vsubb
-      {Intrinsic::hexagon_V6_vsubb_128B, 54378}, // __builtin_HEXAGON_V6_vsubb_128B
-      {Intrinsic::hexagon_V6_vsubb_dv, 54410}, // __builtin_HEXAGON_V6_vsubb_dv
-      {Intrinsic::hexagon_V6_vsubb_dv_128B, 54440}, // __builtin_HEXAGON_V6_vsubb_dv_128B
-      {Intrinsic::hexagon_V6_vsubbnq, 54475}, // __builtin_HEXAGON_V6_vsubbnq
-      {Intrinsic::hexagon_V6_vsubbnq_128B, 54504}, // __builtin_HEXAGON_V6_vsubbnq_128B
-      {Intrinsic::hexagon_V6_vsubbq, 54538}, // __builtin_HEXAGON_V6_vsubbq
-      {Intrinsic::hexagon_V6_vsubbq_128B, 54566}, // __builtin_HEXAGON_V6_vsubbq_128B
-      {Intrinsic::hexagon_V6_vsubbsat, 54599}, // __builtin_HEXAGON_V6_vsubbsat
-      {Intrinsic::hexagon_V6_vsubbsat_128B, 54629}, // __builtin_HEXAGON_V6_vsubbsat_128B
-      {Intrinsic::hexagon_V6_vsubbsat_dv, 54664}, // __builtin_HEXAGON_V6_vsubbsat_dv
-      {Intrinsic::hexagon_V6_vsubbsat_dv_128B, 54697}, // __builtin_HEXAGON_V6_vsubbsat_dv_128B
-      {Intrinsic::hexagon_V6_vsubh, 54802}, // __builtin_HEXAGON_V6_vsubh
-      {Intrinsic::hexagon_V6_vsubh_128B, 54829}, // __builtin_HEXAGON_V6_vsubh_128B
-      {Intrinsic::hexagon_V6_vsubh_dv, 54861}, // __builtin_HEXAGON_V6_vsubh_dv
-      {Intrinsic::hexagon_V6_vsubh_dv_128B, 54891}, // __builtin_HEXAGON_V6_vsubh_dv_128B
-      {Intrinsic::hexagon_V6_vsubhnq, 54926}, // __builtin_HEXAGON_V6_vsubhnq
-      {Intrinsic::hexagon_V6_vsubhnq_128B, 54955}, // __builtin_HEXAGON_V6_vsubhnq_128B
-      {Intrinsic::hexagon_V6_vsubhq, 54989}, // __builtin_HEXAGON_V6_vsubhq
-      {Intrinsic::hexagon_V6_vsubhq_128B, 55017}, // __builtin_HEXAGON_V6_vsubhq_128B
-      {Intrinsic::hexagon_V6_vsubhsat, 55050}, // __builtin_HEXAGON_V6_vsubhsat
-      {Intrinsic::hexagon_V6_vsubhsat_128B, 55080}, // __builtin_HEXAGON_V6_vsubhsat_128B
-      {Intrinsic::hexagon_V6_vsubhsat_dv, 55115}, // __builtin_HEXAGON_V6_vsubhsat_dv
-      {Intrinsic::hexagon_V6_vsubhsat_dv_128B, 55148}, // __builtin_HEXAGON_V6_vsubhsat_dv_128B
-      {Intrinsic::hexagon_V6_vsubhw, 55186}, // __builtin_HEXAGON_V6_vsubhw
-      {Intrinsic::hexagon_V6_vsubhw_128B, 55214}, // __builtin_HEXAGON_V6_vsubhw_128B
-      {Intrinsic::hexagon_V6_vsububh, 55247}, // __builtin_HEXAGON_V6_vsububh
-      {Intrinsic::hexagon_V6_vsububh_128B, 55276}, // __builtin_HEXAGON_V6_vsububh_128B
-      {Intrinsic::hexagon_V6_vsububsat, 55310}, // __builtin_HEXAGON_V6_vsububsat
-      {Intrinsic::hexagon_V6_vsububsat_128B, 55341}, // __builtin_HEXAGON_V6_vsububsat_128B
-      {Intrinsic::hexagon_V6_vsububsat_dv, 55377}, // __builtin_HEXAGON_V6_vsububsat_dv
-      {Intrinsic::hexagon_V6_vsububsat_dv_128B, 55411}, // __builtin_HEXAGON_V6_vsububsat_dv_128B
-      {Intrinsic::hexagon_V6_vsubububb_sat, 55450}, // __builtin_HEXAGON_V6_vsubububb_sat
-      {Intrinsic::hexagon_V6_vsubububb_sat_128B, 55485}, // __builtin_HEXAGON_V6_vsubububb_sat_128B
-      {Intrinsic::hexagon_V6_vsubuhsat, 55525}, // __builtin_HEXAGON_V6_vsubuhsat
-      {Intrinsic::hexagon_V6_vsubuhsat_128B, 55556}, // __builtin_HEXAGON_V6_vsubuhsat_128B
-      {Intrinsic::hexagon_V6_vsubuhsat_dv, 55592}, // __builtin_HEXAGON_V6_vsubuhsat_dv
-      {Intrinsic::hexagon_V6_vsubuhsat_dv_128B, 55626}, // __builtin_HEXAGON_V6_vsubuhsat_dv_128B
-      {Intrinsic::hexagon_V6_vsubuhw, 55665}, // __builtin_HEXAGON_V6_vsubuhw
-      {Intrinsic::hexagon_V6_vsubuhw_128B, 55694}, // __builtin_HEXAGON_V6_vsubuhw_128B
-      {Intrinsic::hexagon_V6_vsubuwsat, 55728}, // __builtin_HEXAGON_V6_vsubuwsat
-      {Intrinsic::hexagon_V6_vsubuwsat_128B, 55759}, // __builtin_HEXAGON_V6_vsubuwsat_128B
-      {Intrinsic::hexagon_V6_vsubuwsat_dv, 55795}, // __builtin_HEXAGON_V6_vsubuwsat_dv
-      {Intrinsic::hexagon_V6_vsubuwsat_dv_128B, 55829}, // __builtin_HEXAGON_V6_vsubuwsat_dv_128B
-      {Intrinsic::hexagon_V6_vsubw, 55868}, // __builtin_HEXAGON_V6_vsubw
-      {Intrinsic::hexagon_V6_vsubw_128B, 55895}, // __builtin_HEXAGON_V6_vsubw_128B
-      {Intrinsic::hexagon_V6_vsubw_dv, 55927}, // __builtin_HEXAGON_V6_vsubw_dv
-      {Intrinsic::hexagon_V6_vsubw_dv_128B, 55957}, // __builtin_HEXAGON_V6_vsubw_dv_128B
-      {Intrinsic::hexagon_V6_vsubwnq, 55992}, // __builtin_HEXAGON_V6_vsubwnq
-      {Intrinsic::hexagon_V6_vsubwnq_128B, 56021}, // __builtin_HEXAGON_V6_vsubwnq_128B
-      {Intrinsic::hexagon_V6_vsubwq, 56055}, // __builtin_HEXAGON_V6_vsubwq
-      {Intrinsic::hexagon_V6_vsubwq_128B, 56083}, // __builtin_HEXAGON_V6_vsubwq_128B
-      {Intrinsic::hexagon_V6_vsubwsat, 56116}, // __builtin_HEXAGON_V6_vsubwsat
-      {Intrinsic::hexagon_V6_vsubwsat_128B, 56146}, // __builtin_HEXAGON_V6_vsubwsat_128B
-      {Intrinsic::hexagon_V6_vsubwsat_dv, 56181}, // __builtin_HEXAGON_V6_vsubwsat_dv
-      {Intrinsic::hexagon_V6_vsubwsat_dv_128B, 56214}, // __builtin_HEXAGON_V6_vsubwsat_dv_128B
-      {Intrinsic::hexagon_V6_vswap, 56252}, // __builtin_HEXAGON_V6_vswap
-      {Intrinsic::hexagon_V6_vswap_128B, 56279}, // __builtin_HEXAGON_V6_vswap_128B
-      {Intrinsic::hexagon_V6_vtmpyb, 56311}, // __builtin_HEXAGON_V6_vtmpyb
-      {Intrinsic::hexagon_V6_vtmpyb_128B, 56339}, // __builtin_HEXAGON_V6_vtmpyb_128B
-      {Intrinsic::hexagon_V6_vtmpyb_acc, 56372}, // __builtin_HEXAGON_V6_vtmpyb_acc
-      {Intrinsic::hexagon_V6_vtmpyb_acc_128B, 56404}, // __builtin_HEXAGON_V6_vtmpyb_acc_128B
-      {Intrinsic::hexagon_V6_vtmpybus, 56441}, // __builtin_HEXAGON_V6_vtmpybus
-      {Intrinsic::hexagon_V6_vtmpybus_128B, 56471}, // __builtin_HEXAGON_V6_vtmpybus_128B
-      {Intrinsic::hexagon_V6_vtmpybus_acc, 56506}, // __builtin_HEXAGON_V6_vtmpybus_acc
-      {Intrinsic::hexagon_V6_vtmpybus_acc_128B, 56540}, // __builtin_HEXAGON_V6_vtmpybus_acc_128B
-      {Intrinsic::hexagon_V6_vtmpyhb, 56579}, // __builtin_HEXAGON_V6_vtmpyhb
-      {Intrinsic::hexagon_V6_vtmpyhb_128B, 56608}, // __builtin_HEXAGON_V6_vtmpyhb_128B
-      {Intrinsic::hexagon_V6_vtmpyhb_acc, 56642}, // __builtin_HEXAGON_V6_vtmpyhb_acc
-      {Intrinsic::hexagon_V6_vtmpyhb_acc_128B, 56675}, // __builtin_HEXAGON_V6_vtmpyhb_acc_128B
-      {Intrinsic::hexagon_V6_vunpackb, 56713}, // __builtin_HEXAGON_V6_vunpackb
-      {Intrinsic::hexagon_V6_vunpackb_128B, 56743}, // __builtin_HEXAGON_V6_vunpackb_128B
-      {Intrinsic::hexagon_V6_vunpackh, 56778}, // __builtin_HEXAGON_V6_vunpackh
-      {Intrinsic::hexagon_V6_vunpackh_128B, 56808}, // __builtin_HEXAGON_V6_vunpackh_128B
-      {Intrinsic::hexagon_V6_vunpackob, 56843}, // __builtin_HEXAGON_V6_vunpackob
-      {Intrinsic::hexagon_V6_vunpackob_128B, 56874}, // __builtin_HEXAGON_V6_vunpackob_128B
-      {Intrinsic::hexagon_V6_vunpackoh, 56910}, // __builtin_HEXAGON_V6_vunpackoh
-      {Intrinsic::hexagon_V6_vunpackoh_128B, 56941}, // __builtin_HEXAGON_V6_vunpackoh_128B
-      {Intrinsic::hexagon_V6_vunpackub, 56977}, // __builtin_HEXAGON_V6_vunpackub
-      {Intrinsic::hexagon_V6_vunpackub_128B, 57008}, // __builtin_HEXAGON_V6_vunpackub_128B
-      {Intrinsic::hexagon_V6_vunpackuh, 57044}, // __builtin_HEXAGON_V6_vunpackuh
-      {Intrinsic::hexagon_V6_vunpackuh_128B, 57075}, // __builtin_HEXAGON_V6_vunpackuh_128B
-      {Intrinsic::hexagon_V6_vxor, 57111}, // __builtin_HEXAGON_V6_vxor
-      {Intrinsic::hexagon_V6_vxor_128B, 57137}, // __builtin_HEXAGON_V6_vxor_128B
-      {Intrinsic::hexagon_V6_vzb, 57168}, // __builtin_HEXAGON_V6_vzb
-      {Intrinsic::hexagon_V6_vzb_128B, 57193}, // __builtin_HEXAGON_V6_vzb_128B
-      {Intrinsic::hexagon_V6_vzh, 57223}, // __builtin_HEXAGON_V6_vzh
-      {Intrinsic::hexagon_V6_vzh_128B, 57248}, // __builtin_HEXAGON_V6_vzh_128B
-      {Intrinsic::hexagon_Y2_dccleana, 57278}, // __builtin_HEXAGON_Y2_dccleana
-      {Intrinsic::hexagon_Y2_dccleaninva, 57308}, // __builtin_HEXAGON_Y2_dccleaninva
-      {Intrinsic::hexagon_Y2_dcinva, 57341}, // __builtin_HEXAGON_Y2_dcinva
-      {Intrinsic::hexagon_Y2_dczeroa, 57369}, // __builtin_HEXAGON_Y2_dczeroa
-      {Intrinsic::hexagon_Y4_l2fetch, 57398}, // __builtin_HEXAGON_Y4_l2fetch
-      {Intrinsic::hexagon_Y5_l2fetch, 57427}, // __builtin_HEXAGON_Y5_l2fetch
-      {Intrinsic::hexagon_prefetch, 57693}, // __builtin_HEXAGON_prefetch
-      {Intrinsic::hexagon_V6_vaddcarry, 33385}, // __builtin_HEXAGON_v6_vaddcarry
-      {Intrinsic::hexagon_V6_vaddcarry_128B, 33416}, // __builtin_HEXAGON_v6_vaddcarry_128B
-      {Intrinsic::hexagon_V6_vsubcarry, 54735}, // __builtin_HEXAGON_v6_vsubcarry
-      {Intrinsic::hexagon_V6_vsubcarry_128B, 54766}, // __builtin_HEXAGON_v6_vsubcarry_128B
-      {Intrinsic::hexagon_mm256i_vaddw, 57669}, // __builtin__mm256i_vaddw
-      {Intrinsic::hexagon_S2_storerb_pbr, 28017}, // __builtin_brev_stb
-      {Intrinsic::hexagon_S2_storerd_pbr, 28036}, // __builtin_brev_std
-      {Intrinsic::hexagon_S2_storerh_pbr, 28076}, // __builtin_brev_sth
-      {Intrinsic::hexagon_S2_storerf_pbr, 28055}, // __builtin_brev_sthhi
-      {Intrinsic::hexagon_S2_storeri_pbr, 28095}, // __builtin_brev_stw
-      {Intrinsic::hexagon_circ_ldb, 57456}, // __builtin_circ_ldb
-      {Intrinsic::hexagon_circ_ldd, 57475}, // __builtin_circ_ldd
-      {Intrinsic::hexagon_circ_ldh, 57494}, // __builtin_circ_ldh
-      {Intrinsic::hexagon_circ_ldub, 57513}, // __builtin_circ_ldub
-      {Intrinsic::hexagon_circ_lduh, 57533}, // __builtin_circ_lduh
-      {Intrinsic::hexagon_circ_ldw, 57553}, // __builtin_circ_ldw
-      {Intrinsic::hexagon_circ_stb, 57572}, // __builtin_circ_stb
-      {Intrinsic::hexagon_circ_std, 57591}, // __builtin_circ_std
-      {Intrinsic::hexagon_circ_sth, 57610}, // __builtin_circ_sth
-      {Intrinsic::hexagon_circ_sthhi, 57629}, // __builtin_circ_sthhi
-      {Intrinsic::hexagon_circ_stw, 57650}, // __builtin_circ_stw
-    };
-    auto I = std::lower_bound(std::begin(hexagonNames),
-                              std::end(hexagonNames),
-                              BuiltinNameStr);
-    if (I != std::end(hexagonNames) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "mips") {
-    static const BuiltinEntry mipsNames[] = {
-      {Intrinsic::mips_absq_s_ph, 57720}, // __builtin_mips_absq_s_ph
-      {Intrinsic::mips_absq_s_qb, 57745}, // __builtin_mips_absq_s_qb
-      {Intrinsic::mips_absq_s_w, 57770}, // __builtin_mips_absq_s_w
-      {Intrinsic::mips_addq_ph, 57882}, // __builtin_mips_addq_ph
-      {Intrinsic::mips_addq_s_ph, 57905}, // __builtin_mips_addq_s_ph
-      {Intrinsic::mips_addq_s_w, 57930}, // __builtin_mips_addq_s_w
-      {Intrinsic::mips_addqh_ph, 57954}, // __builtin_mips_addqh_ph
-      {Intrinsic::mips_addqh_r_ph, 57978}, // __builtin_mips_addqh_r_ph
-      {Intrinsic::mips_addqh_r_w, 58004}, // __builtin_mips_addqh_r_w
-      {Intrinsic::mips_addqh_w, 58029}, // __builtin_mips_addqh_w
-      {Intrinsic::mips_addsc, 58328}, // __builtin_mips_addsc
-      {Intrinsic::mips_addu_ph, 58349}, // __builtin_mips_addu_ph
-      {Intrinsic::mips_addu_qb, 58372}, // __builtin_mips_addu_qb
-      {Intrinsic::mips_addu_s_ph, 58395}, // __builtin_mips_addu_s_ph
-      {Intrinsic::mips_addu_s_qb, 58420}, // __builtin_mips_addu_s_qb
-      {Intrinsic::mips_adduh_qb, 58445}, // __builtin_mips_adduh_qb
-      {Intrinsic::mips_adduh_r_qb, 58469}, // __builtin_mips_adduh_r_qb
-      {Intrinsic::mips_addwc, 58667}, // __builtin_mips_addwc
-      {Intrinsic::mips_append, 58729}, // __builtin_mips_append
-      {Intrinsic::mips_balign, 59295}, // __builtin_mips_balign
-      {Intrinsic::mips_bitrev, 59849}, // __builtin_mips_bitrev
-      {Intrinsic::mips_bposge32, 60227}, // __builtin_mips_bposge32
-      {Intrinsic::mips_cmp_eq_ph, 61466}, // __builtin_mips_cmp_eq_ph
-      {Intrinsic::mips_cmp_le_ph, 61491}, // __builtin_mips_cmp_le_ph
-      {Intrinsic::mips_cmp_lt_ph, 61516}, // __builtin_mips_cmp_lt_ph
-      {Intrinsic::mips_cmpgdu_eq_qb, 61541}, // __builtin_mips_cmpgdu_eq_qb
-      {Intrinsic::mips_cmpgdu_le_qb, 61569}, // __builtin_mips_cmpgdu_le_qb
-      {Intrinsic::mips_cmpgdu_lt_qb, 61597}, // __builtin_mips_cmpgdu_lt_qb
-      {Intrinsic::mips_cmpgu_eq_qb, 61625}, // __builtin_mips_cmpgu_eq_qb
-      {Intrinsic::mips_cmpgu_le_qb, 61652}, // __builtin_mips_cmpgu_le_qb
-      {Intrinsic::mips_cmpgu_lt_qb, 61679}, // __builtin_mips_cmpgu_lt_qb
-      {Intrinsic::mips_cmpu_eq_qb, 61706}, // __builtin_mips_cmpu_eq_qb
-      {Intrinsic::mips_cmpu_le_qb, 61732}, // __builtin_mips_cmpu_le_qb
-      {Intrinsic::mips_cmpu_lt_qb, 61758}, // __builtin_mips_cmpu_lt_qb
-      {Intrinsic::mips_dlsa, 62165}, // __builtin_mips_dlsa
-      {Intrinsic::mips_dpa_w_ph, 62323}, // __builtin_mips_dpa_w_ph
-      {Intrinsic::mips_dpaq_s_w_ph, 62491}, // __builtin_mips_dpaq_s_w_ph
-      {Intrinsic::mips_dpaq_sa_l_w, 62518}, // __builtin_mips_dpaq_sa_l_w
-      {Intrinsic::mips_dpaqx_s_w_ph, 62545}, // __builtin_mips_dpaqx_s_w_ph
-      {Intrinsic::mips_dpaqx_sa_w_ph, 62573}, // __builtin_mips_dpaqx_sa_w_ph
-      {Intrinsic::mips_dpau_h_qbl, 62602}, // __builtin_mips_dpau_h_qbl
-      {Intrinsic::mips_dpau_h_qbr, 62628}, // __builtin_mips_dpau_h_qbr
-      {Intrinsic::mips_dpax_w_ph, 62654}, // __builtin_mips_dpax_w_ph
-      {Intrinsic::mips_dps_w_ph, 62679}, // __builtin_mips_dps_w_ph
-      {Intrinsic::mips_dpsq_s_w_ph, 62703}, // __builtin_mips_dpsq_s_w_ph
-      {Intrinsic::mips_dpsq_sa_l_w, 62730}, // __builtin_mips_dpsq_sa_l_w
-      {Intrinsic::mips_dpsqx_s_w_ph, 62757}, // __builtin_mips_dpsqx_s_w_ph
-      {Intrinsic::mips_dpsqx_sa_w_ph, 62785}, // __builtin_mips_dpsqx_sa_w_ph
-      {Intrinsic::mips_dpsu_h_qbl, 62814}, // __builtin_mips_dpsu_h_qbl
-      {Intrinsic::mips_dpsu_h_qbr, 62840}, // __builtin_mips_dpsu_h_qbr
-      {Intrinsic::mips_dpsx_w_ph, 63010}, // __builtin_mips_dpsx_w_ph
-      {Intrinsic::mips_extp, 63035}, // __builtin_mips_extp
-      {Intrinsic::mips_extpdp, 63055}, // __builtin_mips_extpdp
-      {Intrinsic::mips_extr_r_w, 63077}, // __builtin_mips_extr_r_w
-      {Intrinsic::mips_extr_rs_w, 63101}, // __builtin_mips_extr_rs_w
-      {Intrinsic::mips_extr_s_h, 63126}, // __builtin_mips_extr_s_h
-      {Intrinsic::mips_extr_w, 63150}, // __builtin_mips_extr_w
-      {Intrinsic::mips_insv, 66202}, // __builtin_mips_insv
-      {Intrinsic::mips_lbux, 66310}, // __builtin_mips_lbux
-      {Intrinsic::mips_lhx, 66486}, // __builtin_mips_lhx
-      {Intrinsic::mips_lsa, 66505}, // __builtin_mips_lsa
-      {Intrinsic::mips_lwx, 66524}, // __builtin_mips_lwx
-      {Intrinsic::mips_madd, 66543}, // __builtin_mips_madd
-      {Intrinsic::mips_maddu, 66657}, // __builtin_mips_maddu
-      {Intrinsic::mips_maq_s_w_phl, 66766}, // __builtin_mips_maq_s_w_phl
-      {Intrinsic::mips_maq_s_w_phr, 66793}, // __builtin_mips_maq_s_w_phr
-      {Intrinsic::mips_maq_sa_w_phl, 66820}, // __builtin_mips_maq_sa_w_phl
-      {Intrinsic::mips_maq_sa_w_phr, 66848}, // __builtin_mips_maq_sa_w_phr
-      {Intrinsic::mips_modsub, 67948}, // __builtin_mips_modsub
-      {Intrinsic::mips_msub, 67991}, // __builtin_mips_msub
-      {Intrinsic::mips_msubu, 68105}, // __builtin_mips_msubu
-      {Intrinsic::mips_mthlip, 68214}, // __builtin_mips_mthlip
-      {Intrinsic::mips_mul_ph, 68236}, // __builtin_mips_mul_ph
-      {Intrinsic::mips_mul_s_ph, 68302}, // __builtin_mips_mul_s_ph
-      {Intrinsic::mips_muleq_s_w_phl, 68326}, // __builtin_mips_muleq_s_w_phl
-      {Intrinsic::mips_muleq_s_w_phr, 68355}, // __builtin_mips_muleq_s_w_phr
-      {Intrinsic::mips_muleu_s_ph_qbl, 68384}, // __builtin_mips_muleu_s_ph_qbl
-      {Intrinsic::mips_muleu_s_ph_qbr, 68414}, // __builtin_mips_muleu_s_ph_qbr
-      {Intrinsic::mips_mulq_rs_ph, 68444}, // __builtin_mips_mulq_rs_ph
-      {Intrinsic::mips_mulq_rs_w, 68470}, // __builtin_mips_mulq_rs_w
-      {Intrinsic::mips_mulq_s_ph, 68495}, // __builtin_mips_mulq_s_ph
-      {Intrinsic::mips_mulq_s_w, 68520}, // __builtin_mips_mulq_s_w
-      {Intrinsic::mips_mulsa_w_ph, 68590}, // __builtin_mips_mulsa_w_ph
-      {Intrinsic::mips_mulsaq_s_w_ph, 68616}, // __builtin_mips_mulsaq_s_w_ph
-      {Intrinsic::mips_mult, 68645}, // __builtin_mips_mult
-      {Intrinsic::mips_multu, 68665}, // __builtin_mips_multu
-      {Intrinsic::mips_packrl_ph, 69018}, // __builtin_mips_packrl_ph
-      {Intrinsic::mips_pick_ph, 69303}, // __builtin_mips_pick_ph
-      {Intrinsic::mips_pick_qb, 69326}, // __builtin_mips_pick_qb
-      {Intrinsic::mips_preceq_w_phl, 69349}, // __builtin_mips_preceq_w_phl
-      {Intrinsic::mips_preceq_w_phr, 69377}, // __builtin_mips_preceq_w_phr
-      {Intrinsic::mips_precequ_ph_qbl, 69405}, // __builtin_mips_precequ_ph_qbl
-      {Intrinsic::mips_precequ_ph_qbla, 69435}, // __builtin_mips_precequ_ph_qbla
-      {Intrinsic::mips_precequ_ph_qbr, 69466}, // __builtin_mips_precequ_ph_qbr
-      {Intrinsic::mips_precequ_ph_qbra, 69496}, // __builtin_mips_precequ_ph_qbra
-      {Intrinsic::mips_preceu_ph_qbl, 69527}, // __builtin_mips_preceu_ph_qbl
-      {Intrinsic::mips_preceu_ph_qbla, 69556}, // __builtin_mips_preceu_ph_qbla
-      {Intrinsic::mips_preceu_ph_qbr, 69586}, // __builtin_mips_preceu_ph_qbr
-      {Intrinsic::mips_preceu_ph_qbra, 69615}, // __builtin_mips_preceu_ph_qbra
-      {Intrinsic::mips_precr_qb_ph, 69645}, // __builtin_mips_precr_qb_ph
-      {Intrinsic::mips_precr_sra_ph_w, 69672}, // __builtin_mips_precr_sra_ph_w
-      {Intrinsic::mips_precr_sra_r_ph_w, 69702}, // __builtin_mips_precr_sra_r_ph_w
-      {Intrinsic::mips_precrq_ph_w, 69734}, // __builtin_mips_precrq_ph_w
-      {Intrinsic::mips_precrq_qb_ph, 69761}, // __builtin_mips_precrq_qb_ph
-      {Intrinsic::mips_precrq_rs_ph_w, 69789}, // __builtin_mips_precrq_rs_ph_w
-      {Intrinsic::mips_precrqu_s_qb_ph, 69819}, // __builtin_mips_precrqu_s_qb_ph
-      {Intrinsic::mips_prepend, 69850}, // __builtin_mips_prepend
-      {Intrinsic::mips_raddu_w_qb, 69873}, // __builtin_mips_raddu_w_qb
-      {Intrinsic::mips_rddsp, 69899}, // __builtin_mips_rddsp
-      {Intrinsic::mips_repl_ph, 69920}, // __builtin_mips_repl_ph
-      {Intrinsic::mips_repl_qb, 69943}, // __builtin_mips_repl_qb
-      {Intrinsic::mips_shilo, 70202}, // __builtin_mips_shilo
-      {Intrinsic::mips_shll_ph, 70223}, // __builtin_mips_shll_ph
-      {Intrinsic::mips_shll_qb, 70246}, // __builtin_mips_shll_qb
-      {Intrinsic::mips_shll_s_ph, 70269}, // __builtin_mips_shll_s_ph
-      {Intrinsic::mips_shll_s_w, 70294}, // __builtin_mips_shll_s_w
-      {Intrinsic::mips_shra_ph, 70318}, // __builtin_mips_shra_ph
-      {Intrinsic::mips_shra_qb, 70341}, // __builtin_mips_shra_qb
-      {Intrinsic::mips_shra_r_ph, 70364}, // __builtin_mips_shra_r_ph
-      {Intrinsic::mips_shra_r_qb, 70389}, // __builtin_mips_shra_r_qb
-      {Intrinsic::mips_shra_r_w, 70414}, // __builtin_mips_shra_r_w
-      {Intrinsic::mips_shrl_ph, 70438}, // __builtin_mips_shrl_ph
-      {Intrinsic::mips_shrl_qb, 70461}, // __builtin_mips_shrl_qb
-      {Intrinsic::mips_subq_ph, 71740}, // __builtin_mips_subq_ph
-      {Intrinsic::mips_subq_s_ph, 71763}, // __builtin_mips_subq_s_ph
-      {Intrinsic::mips_subq_s_w, 71788}, // __builtin_mips_subq_s_w
-      {Intrinsic::mips_subqh_ph, 71812}, // __builtin_mips_subqh_ph
-      {Intrinsic::mips_subqh_r_ph, 71836}, // __builtin_mips_subqh_r_ph
-      {Intrinsic::mips_subqh_r_w, 71862}, // __builtin_mips_subqh_r_w
-      {Intrinsic::mips_subqh_w, 71887}, // __builtin_mips_subqh_w
-      {Intrinsic::mips_subu_ph, 72294}, // __builtin_mips_subu_ph
-      {Intrinsic::mips_subu_qb, 72317}, // __builtin_mips_subu_qb
-      {Intrinsic::mips_subu_s_ph, 72340}, // __builtin_mips_subu_s_ph
-      {Intrinsic::mips_subu_s_qb, 72365}, // __builtin_mips_subu_s_qb
-      {Intrinsic::mips_subuh_qb, 72390}, // __builtin_mips_subuh_qb
-      {Intrinsic::mips_subuh_r_qb, 72414}, // __builtin_mips_subuh_r_qb
-      {Intrinsic::mips_wrdsp, 72696}, // __builtin_mips_wrdsp
-      {Intrinsic::mips_add_a_b, 57794}, // __builtin_msa_add_a_b
-      {Intrinsic::mips_add_a_d, 57816}, // __builtin_msa_add_a_d
-      {Intrinsic::mips_add_a_h, 57838}, // __builtin_msa_add_a_h
-      {Intrinsic::mips_add_a_w, 57860}, // __builtin_msa_add_a_w
-      {Intrinsic::mips_adds_a_b, 58052}, // __builtin_msa_adds_a_b
-      {Intrinsic::mips_adds_a_d, 58075}, // __builtin_msa_adds_a_d
-      {Intrinsic::mips_adds_a_h, 58098}, // __builtin_msa_adds_a_h
-      {Intrinsic::mips_adds_a_w, 58121}, // __builtin_msa_adds_a_w
-      {Intrinsic::mips_adds_s_b, 58144}, // __builtin_msa_adds_s_b
-      {Intrinsic::mips_adds_s_d, 58167}, // __builtin_msa_adds_s_d
-      {Intrinsic::mips_adds_s_h, 58190}, // __builtin_msa_adds_s_h
-      {Intrinsic::mips_adds_s_w, 58213}, // __builtin_msa_adds_s_w
-      {Intrinsic::mips_adds_u_b, 58236}, // __builtin_msa_adds_u_b
-      {Intrinsic::mips_adds_u_d, 58259}, // __builtin_msa_adds_u_d
-      {Intrinsic::mips_adds_u_h, 58282}, // __builtin_msa_adds_u_h
-      {Intrinsic::mips_adds_u_w, 58305}, // __builtin_msa_adds_u_w
-      {Intrinsic::mips_addv_b, 58495}, // __builtin_msa_addv_b
-      {Intrinsic::mips_addv_d, 58516}, // __builtin_msa_addv_d
-      {Intrinsic::mips_addv_h, 58537}, // __builtin_msa_addv_h
-      {Intrinsic::mips_addv_w, 58558}, // __builtin_msa_addv_w
-      {Intrinsic::mips_addvi_b, 58579}, // __builtin_msa_addvi_b
-      {Intrinsic::mips_addvi_d, 58601}, // __builtin_msa_addvi_d
-      {Intrinsic::mips_addvi_h, 58623}, // __builtin_msa_addvi_h
-      {Intrinsic::mips_addvi_w, 58645}, // __builtin_msa_addvi_w
-      {Intrinsic::mips_and_v, 58688}, // __builtin_msa_and_v
-      {Intrinsic::mips_andi_b, 58708}, // __builtin_msa_andi_b
-      {Intrinsic::mips_asub_s_b, 58751}, // __builtin_msa_asub_s_b
-      {Intrinsic::mips_asub_s_d, 58774}, // __builtin_msa_asub_s_d
-      {Intrinsic::mips_asub_s_h, 58797}, // __builtin_msa_asub_s_h
-      {Intrinsic::mips_asub_s_w, 58820}, // __builtin_msa_asub_s_w
-      {Intrinsic::mips_asub_u_b, 58843}, // __builtin_msa_asub_u_b
-      {Intrinsic::mips_asub_u_d, 58866}, // __builtin_msa_asub_u_d
-      {Intrinsic::mips_asub_u_h, 58889}, // __builtin_msa_asub_u_h
-      {Intrinsic::mips_asub_u_w, 58912}, // __builtin_msa_asub_u_w
-      {Intrinsic::mips_ave_s_b, 58935}, // __builtin_msa_ave_s_b
-      {Intrinsic::mips_ave_s_d, 58957}, // __builtin_msa_ave_s_d
-      {Intrinsic::mips_ave_s_h, 58979}, // __builtin_msa_ave_s_h
-      {Intrinsic::mips_ave_s_w, 59001}, // __builtin_msa_ave_s_w
-      {Intrinsic::mips_ave_u_b, 59023}, // __builtin_msa_ave_u_b
-      {Intrinsic::mips_ave_u_d, 59045}, // __builtin_msa_ave_u_d
-      {Intrinsic::mips_ave_u_h, 59067}, // __builtin_msa_ave_u_h
-      {Intrinsic::mips_ave_u_w, 59089}, // __builtin_msa_ave_u_w
-      {Intrinsic::mips_aver_s_b, 59111}, // __builtin_msa_aver_s_b
-      {Intrinsic::mips_aver_s_d, 59134}, // __builtin_msa_aver_s_d
-      {Intrinsic::mips_aver_s_h, 59157}, // __builtin_msa_aver_s_h
-      {Intrinsic::mips_aver_s_w, 59180}, // __builtin_msa_aver_s_w
-      {Intrinsic::mips_aver_u_b, 59203}, // __builtin_msa_aver_u_b
-      {Intrinsic::mips_aver_u_d, 59226}, // __builtin_msa_aver_u_d
-      {Intrinsic::mips_aver_u_h, 59249}, // __builtin_msa_aver_u_h
-      {Intrinsic::mips_aver_u_w, 59272}, // __builtin_msa_aver_u_w
-      {Intrinsic::mips_bclr_b, 59317}, // __builtin_msa_bclr_b
-      {Intrinsic::mips_bclr_d, 59338}, // __builtin_msa_bclr_d
-      {Intrinsic::mips_bclr_h, 59359}, // __builtin_msa_bclr_h
-      {Intrinsic::mips_bclr_w, 59380}, // __builtin_msa_bclr_w
-      {Intrinsic::mips_bclri_b, 59401}, // __builtin_msa_bclri_b
-      {Intrinsic::mips_bclri_d, 59423}, // __builtin_msa_bclri_d
-      {Intrinsic::mips_bclri_h, 59445}, // __builtin_msa_bclri_h
-      {Intrinsic::mips_bclri_w, 59467}, // __builtin_msa_bclri_w
-      {Intrinsic::mips_binsl_b, 59489}, // __builtin_msa_binsl_b
-      {Intrinsic::mips_binsl_d, 59511}, // __builtin_msa_binsl_d
-      {Intrinsic::mips_binsl_h, 59533}, // __builtin_msa_binsl_h
-      {Intrinsic::mips_binsl_w, 59555}, // __builtin_msa_binsl_w
-      {Intrinsic::mips_binsli_b, 59577}, // __builtin_msa_binsli_b
-      {Intrinsic::mips_binsli_d, 59600}, // __builtin_msa_binsli_d
-      {Intrinsic::mips_binsli_h, 59623}, // __builtin_msa_binsli_h
-      {Intrinsic::mips_binsli_w, 59646}, // __builtin_msa_binsli_w
-      {Intrinsic::mips_binsr_b, 59669}, // __builtin_msa_binsr_b
-      {Intrinsic::mips_binsr_d, 59691}, // __builtin_msa_binsr_d
-      {Intrinsic::mips_binsr_h, 59713}, // __builtin_msa_binsr_h
-      {Intrinsic::mips_binsr_w, 59735}, // __builtin_msa_binsr_w
-      {Intrinsic::mips_binsri_b, 59757}, // __builtin_msa_binsri_b
-      {Intrinsic::mips_binsri_d, 59780}, // __builtin_msa_binsri_d
-      {Intrinsic::mips_binsri_h, 59803}, // __builtin_msa_binsri_h
-      {Intrinsic::mips_binsri_w, 59826}, // __builtin_msa_binsri_w
-      {Intrinsic::mips_bmnz_v, 59871}, // __builtin_msa_bmnz_v
-      {Intrinsic::mips_bmnzi_b, 59892}, // __builtin_msa_bmnzi_b
-      {Intrinsic::mips_bmz_v, 59914}, // __builtin_msa_bmz_v
-      {Intrinsic::mips_bmzi_b, 59934}, // __builtin_msa_bmzi_b
-      {Intrinsic::mips_bneg_b, 59955}, // __builtin_msa_bneg_b
-      {Intrinsic::mips_bneg_d, 59976}, // __builtin_msa_bneg_d
-      {Intrinsic::mips_bneg_h, 59997}, // __builtin_msa_bneg_h
-      {Intrinsic::mips_bneg_w, 60018}, // __builtin_msa_bneg_w
-      {Intrinsic::mips_bnegi_b, 60039}, // __builtin_msa_bnegi_b
-      {Intrinsic::mips_bnegi_d, 60061}, // __builtin_msa_bnegi_d
-      {Intrinsic::mips_bnegi_h, 60083}, // __builtin_msa_bnegi_h
-      {Intrinsic::mips_bnegi_w, 60105}, // __builtin_msa_bnegi_w
-      {Intrinsic::mips_bnz_b, 60127}, // __builtin_msa_bnz_b
-      {Intrinsic::mips_bnz_d, 60147}, // __builtin_msa_bnz_d
-      {Intrinsic::mips_bnz_h, 60167}, // __builtin_msa_bnz_h
-      {Intrinsic::mips_bnz_v, 60187}, // __builtin_msa_bnz_v
-      {Intrinsic::mips_bnz_w, 60207}, // __builtin_msa_bnz_w
-      {Intrinsic::mips_bsel_v, 60251}, // __builtin_msa_bsel_v
-      {Intrinsic::mips_bseli_b, 60272}, // __builtin_msa_bseli_b
-      {Intrinsic::mips_bset_b, 60294}, // __builtin_msa_bset_b
-      {Intrinsic::mips_bset_d, 60315}, // __builtin_msa_bset_d
-      {Intrinsic::mips_bset_h, 60336}, // __builtin_msa_bset_h
-      {Intrinsic::mips_bset_w, 60357}, // __builtin_msa_bset_w
-      {Intrinsic::mips_bseti_b, 60378}, // __builtin_msa_bseti_b
-      {Intrinsic::mips_bseti_d, 60400}, // __builtin_msa_bseti_d
-      {Intrinsic::mips_bseti_h, 60422}, // __builtin_msa_bseti_h
-      {Intrinsic::mips_bseti_w, 60444}, // __builtin_msa_bseti_w
-      {Intrinsic::mips_bz_b, 60466}, // __builtin_msa_bz_b
-      {Intrinsic::mips_bz_d, 60485}, // __builtin_msa_bz_d
-      {Intrinsic::mips_bz_h, 60504}, // __builtin_msa_bz_h
-      {Intrinsic::mips_bz_v, 60523}, // __builtin_msa_bz_v
-      {Intrinsic::mips_bz_w, 60542}, // __builtin_msa_bz_w
-      {Intrinsic::mips_ceq_b, 60561}, // __builtin_msa_ceq_b
-      {Intrinsic::mips_ceq_d, 60581}, // __builtin_msa_ceq_d
-      {Intrinsic::mips_ceq_h, 60601}, // __builtin_msa_ceq_h
-      {Intrinsic::mips_ceq_w, 60621}, // __builtin_msa_ceq_w
-      {Intrinsic::mips_ceqi_b, 60641}, // __builtin_msa_ceqi_b
-      {Intrinsic::mips_ceqi_d, 60662}, // __builtin_msa_ceqi_d
-      {Intrinsic::mips_ceqi_h, 60683}, // __builtin_msa_ceqi_h
-      {Intrinsic::mips_ceqi_w, 60704}, // __builtin_msa_ceqi_w
-      {Intrinsic::mips_cfcmsa, 60725}, // __builtin_msa_cfcmsa
-      {Intrinsic::mips_cle_s_b, 60746}, // __builtin_msa_cle_s_b
-      {Intrinsic::mips_cle_s_d, 60768}, // __builtin_msa_cle_s_d
-      {Intrinsic::mips_cle_s_h, 60790}, // __builtin_msa_cle_s_h
-      {Intrinsic::mips_cle_s_w, 60812}, // __builtin_msa_cle_s_w
-      {Intrinsic::mips_cle_u_b, 60834}, // __builtin_msa_cle_u_b
-      {Intrinsic::mips_cle_u_d, 60856}, // __builtin_msa_cle_u_d
-      {Intrinsic::mips_cle_u_h, 60878}, // __builtin_msa_cle_u_h
-      {Intrinsic::mips_cle_u_w, 60900}, // __builtin_msa_cle_u_w
-      {Intrinsic::mips_clei_s_b, 60922}, // __builtin_msa_clei_s_b
-      {Intrinsic::mips_clei_s_d, 60945}, // __builtin_msa_clei_s_d
-      {Intrinsic::mips_clei_s_h, 60968}, // __builtin_msa_clei_s_h
-      {Intrinsic::mips_clei_s_w, 60991}, // __builtin_msa_clei_s_w
-      {Intrinsic::mips_clei_u_b, 61014}, // __builtin_msa_clei_u_b
-      {Intrinsic::mips_clei_u_d, 61037}, // __builtin_msa_clei_u_d
-      {Intrinsic::mips_clei_u_h, 61060}, // __builtin_msa_clei_u_h
-      {Intrinsic::mips_clei_u_w, 61083}, // __builtin_msa_clei_u_w
-      {Intrinsic::mips_clt_s_b, 61106}, // __builtin_msa_clt_s_b
-      {Intrinsic::mips_clt_s_d, 61128}, // __builtin_msa_clt_s_d
-      {Intrinsic::mips_clt_s_h, 61150}, // __builtin_msa_clt_s_h
-      {Intrinsic::mips_clt_s_w, 61172}, // __builtin_msa_clt_s_w
-      {Intrinsic::mips_clt_u_b, 61194}, // __builtin_msa_clt_u_b
-      {Intrinsic::mips_clt_u_d, 61216}, // __builtin_msa_clt_u_d
-      {Intrinsic::mips_clt_u_h, 61238}, // __builtin_msa_clt_u_h
-      {Intrinsic::mips_clt_u_w, 61260}, // __builtin_msa_clt_u_w
-      {Intrinsic::mips_clti_s_b, 61282}, // __builtin_msa_clti_s_b
-      {Intrinsic::mips_clti_s_d, 61305}, // __builtin_msa_clti_s_d
-      {Intrinsic::mips_clti_s_h, 61328}, // __builtin_msa_clti_s_h
-      {Intrinsic::mips_clti_s_w, 61351}, // __builtin_msa_clti_s_w
-      {Intrinsic::mips_clti_u_b, 61374}, // __builtin_msa_clti_u_b
-      {Intrinsic::mips_clti_u_d, 61397}, // __builtin_msa_clti_u_d
-      {Intrinsic::mips_clti_u_h, 61420}, // __builtin_msa_clti_u_h
-      {Intrinsic::mips_clti_u_w, 61443}, // __builtin_msa_clti_u_w
-      {Intrinsic::mips_copy_s_b, 61784}, // __builtin_msa_copy_s_b
-      {Intrinsic::mips_copy_s_d, 61807}, // __builtin_msa_copy_s_d
-      {Intrinsic::mips_copy_s_h, 61830}, // __builtin_msa_copy_s_h
-      {Intrinsic::mips_copy_s_w, 61853}, // __builtin_msa_copy_s_w
-      {Intrinsic::mips_copy_u_b, 61876}, // __builtin_msa_copy_u_b
-      {Intrinsic::mips_copy_u_d, 61899}, // __builtin_msa_copy_u_d
-      {Intrinsic::mips_copy_u_h, 61922}, // __builtin_msa_copy_u_h
-      {Intrinsic::mips_copy_u_w, 61945}, // __builtin_msa_copy_u_w
-      {Intrinsic::mips_ctcmsa, 61968}, // __builtin_msa_ctcmsa
-      {Intrinsic::mips_div_s_b, 61989}, // __builtin_msa_div_s_b
-      {Intrinsic::mips_div_s_d, 62011}, // __builtin_msa_div_s_d
-      {Intrinsic::mips_div_s_h, 62033}, // __builtin_msa_div_s_h
-      {Intrinsic::mips_div_s_w, 62055}, // __builtin_msa_div_s_w
-      {Intrinsic::mips_div_u_b, 62077}, // __builtin_msa_div_u_b
-      {Intrinsic::mips_div_u_d, 62099}, // __builtin_msa_div_u_d
-      {Intrinsic::mips_div_u_h, 62121}, // __builtin_msa_div_u_h
-      {Intrinsic::mips_div_u_w, 62143}, // __builtin_msa_div_u_w
-      {Intrinsic::mips_dotp_s_d, 62185}, // __builtin_msa_dotp_s_d
-      {Intrinsic::mips_dotp_s_h, 62208}, // __builtin_msa_dotp_s_h
-      {Intrinsic::mips_dotp_s_w, 62231}, // __builtin_msa_dotp_s_w
-      {Intrinsic::mips_dotp_u_d, 62254}, // __builtin_msa_dotp_u_d
-      {Intrinsic::mips_dotp_u_h, 62277}, // __builtin_msa_dotp_u_h
-      {Intrinsic::mips_dotp_u_w, 62300}, // __builtin_msa_dotp_u_w
-      {Intrinsic::mips_dpadd_s_d, 62347}, // __builtin_msa_dpadd_s_d
-      {Intrinsic::mips_dpadd_s_h, 62371}, // __builtin_msa_dpadd_s_h
-      {Intrinsic::mips_dpadd_s_w, 62395}, // __builtin_msa_dpadd_s_w
-      {Intrinsic::mips_dpadd_u_d, 62419}, // __builtin_msa_dpadd_u_d
-      {Intrinsic::mips_dpadd_u_h, 62443}, // __builtin_msa_dpadd_u_h
-      {Intrinsic::mips_dpadd_u_w, 62467}, // __builtin_msa_dpadd_u_w
-      {Intrinsic::mips_dpsub_s_d, 62866}, // __builtin_msa_dpsub_s_d
-      {Intrinsic::mips_dpsub_s_h, 62890}, // __builtin_msa_dpsub_s_h
-      {Intrinsic::mips_dpsub_s_w, 62914}, // __builtin_msa_dpsub_s_w
-      {Intrinsic::mips_dpsub_u_d, 62938}, // __builtin_msa_dpsub_u_d
-      {Intrinsic::mips_dpsub_u_h, 62962}, // __builtin_msa_dpsub_u_h
-      {Intrinsic::mips_dpsub_u_w, 62986}, // __builtin_msa_dpsub_u_w
-      {Intrinsic::mips_fadd_d, 63172}, // __builtin_msa_fadd_d
-      {Intrinsic::mips_fadd_w, 63193}, // __builtin_msa_fadd_w
-      {Intrinsic::mips_fcaf_d, 63214}, // __builtin_msa_fcaf_d
-      {Intrinsic::mips_fcaf_w, 63235}, // __builtin_msa_fcaf_w
-      {Intrinsic::mips_fceq_d, 63256}, // __builtin_msa_fceq_d
-      {Intrinsic::mips_fceq_w, 63277}, // __builtin_msa_fceq_w
-      {Intrinsic::mips_fclass_d, 63298}, // __builtin_msa_fclass_d
-      {Intrinsic::mips_fclass_w, 63321}, // __builtin_msa_fclass_w
-      {Intrinsic::mips_fcle_d, 63344}, // __builtin_msa_fcle_d
-      {Intrinsic::mips_fcle_w, 63365}, // __builtin_msa_fcle_w
-      {Intrinsic::mips_fclt_d, 63386}, // __builtin_msa_fclt_d
-      {Intrinsic::mips_fclt_w, 63407}, // __builtin_msa_fclt_w
-      {Intrinsic::mips_fcne_d, 63428}, // __builtin_msa_fcne_d
-      {Intrinsic::mips_fcne_w, 63449}, // __builtin_msa_fcne_w
-      {Intrinsic::mips_fcor_d, 63470}, // __builtin_msa_fcor_d
-      {Intrinsic::mips_fcor_w, 63491}, // __builtin_msa_fcor_w
-      {Intrinsic::mips_fcueq_d, 63512}, // __builtin_msa_fcueq_d
-      {Intrinsic::mips_fcueq_w, 63534}, // __builtin_msa_fcueq_w
-      {Intrinsic::mips_fcule_d, 63556}, // __builtin_msa_fcule_d
-      {Intrinsic::mips_fcule_w, 63578}, // __builtin_msa_fcule_w
-      {Intrinsic::mips_fcult_d, 63600}, // __builtin_msa_fcult_d
-      {Intrinsic::mips_fcult_w, 63622}, // __builtin_msa_fcult_w
-      {Intrinsic::mips_fcun_d, 63644}, // __builtin_msa_fcun_d
-      {Intrinsic::mips_fcun_w, 63665}, // __builtin_msa_fcun_w
-      {Intrinsic::mips_fcune_d, 63686}, // __builtin_msa_fcune_d
-      {Intrinsic::mips_fcune_w, 63708}, // __builtin_msa_fcune_w
-      {Intrinsic::mips_fdiv_d, 63730}, // __builtin_msa_fdiv_d
-      {Intrinsic::mips_fdiv_w, 63751}, // __builtin_msa_fdiv_w
-      {Intrinsic::mips_fexdo_h, 63772}, // __builtin_msa_fexdo_h
-      {Intrinsic::mips_fexdo_w, 63794}, // __builtin_msa_fexdo_w
-      {Intrinsic::mips_fexp2_d, 63816}, // __builtin_msa_fexp2_d
-      {Intrinsic::mips_fexp2_w, 63838}, // __builtin_msa_fexp2_w
-      {Intrinsic::mips_fexupl_d, 63860}, // __builtin_msa_fexupl_d
-      {Intrinsic::mips_fexupl_w, 63883}, // __builtin_msa_fexupl_w
-      {Intrinsic::mips_fexupr_d, 63906}, // __builtin_msa_fexupr_d
-      {Intrinsic::mips_fexupr_w, 63929}, // __builtin_msa_fexupr_w
-      {Intrinsic::mips_ffint_s_d, 63952}, // __builtin_msa_ffint_s_d
-      {Intrinsic::mips_ffint_s_w, 63976}, // __builtin_msa_ffint_s_w
-      {Intrinsic::mips_ffint_u_d, 64000}, // __builtin_msa_ffint_u_d
-      {Intrinsic::mips_ffint_u_w, 64024}, // __builtin_msa_ffint_u_w
-      {Intrinsic::mips_ffql_d, 64048}, // __builtin_msa_ffql_d
-      {Intrinsic::mips_ffql_w, 64069}, // __builtin_msa_ffql_w
-      {Intrinsic::mips_ffqr_d, 64090}, // __builtin_msa_ffqr_d
-      {Intrinsic::mips_ffqr_w, 64111}, // __builtin_msa_ffqr_w
-      {Intrinsic::mips_fill_b, 64132}, // __builtin_msa_fill_b
-      {Intrinsic::mips_fill_d, 64153}, // __builtin_msa_fill_d
-      {Intrinsic::mips_fill_h, 64174}, // __builtin_msa_fill_h
-      {Intrinsic::mips_fill_w, 64195}, // __builtin_msa_fill_w
-      {Intrinsic::mips_flog2_d, 64216}, // __builtin_msa_flog2_d
-      {Intrinsic::mips_flog2_w, 64238}, // __builtin_msa_flog2_w
-      {Intrinsic::mips_fmadd_d, 64260}, // __builtin_msa_fmadd_d
-      {Intrinsic::mips_fmadd_w, 64282}, // __builtin_msa_fmadd_w
-      {Intrinsic::mips_fmax_a_d, 64304}, // __builtin_msa_fmax_a_d
-      {Intrinsic::mips_fmax_a_w, 64327}, // __builtin_msa_fmax_a_w
-      {Intrinsic::mips_fmax_d, 64350}, // __builtin_msa_fmax_d
-      {Intrinsic::mips_fmax_w, 64371}, // __builtin_msa_fmax_w
-      {Intrinsic::mips_fmin_a_d, 64392}, // __builtin_msa_fmin_a_d
-      {Intrinsic::mips_fmin_a_w, 64415}, // __builtin_msa_fmin_a_w
-      {Intrinsic::mips_fmin_d, 64438}, // __builtin_msa_fmin_d
-      {Intrinsic::mips_fmin_w, 64459}, // __builtin_msa_fmin_w
-      {Intrinsic::mips_fmsub_d, 64480}, // __builtin_msa_fmsub_d
-      {Intrinsic::mips_fmsub_w, 64502}, // __builtin_msa_fmsub_w
-      {Intrinsic::mips_fmul_d, 64524}, // __builtin_msa_fmul_d
-      {Intrinsic::mips_fmul_w, 64545}, // __builtin_msa_fmul_w
-      {Intrinsic::mips_frcp_d, 64566}, // __builtin_msa_frcp_d
-      {Intrinsic::mips_frcp_w, 64587}, // __builtin_msa_frcp_w
-      {Intrinsic::mips_frint_d, 64608}, // __builtin_msa_frint_d
-      {Intrinsic::mips_frint_w, 64630}, // __builtin_msa_frint_w
-      {Intrinsic::mips_frsqrt_d, 64652}, // __builtin_msa_frsqrt_d
-      {Intrinsic::mips_frsqrt_w, 64675}, // __builtin_msa_frsqrt_w
-      {Intrinsic::mips_fsaf_d, 64698}, // __builtin_msa_fsaf_d
-      {Intrinsic::mips_fsaf_w, 64719}, // __builtin_msa_fsaf_w
-      {Intrinsic::mips_fseq_d, 64740}, // __builtin_msa_fseq_d
-      {Intrinsic::mips_fseq_w, 64761}, // __builtin_msa_fseq_w
-      {Intrinsic::mips_fsle_d, 64782}, // __builtin_msa_fsle_d
-      {Intrinsic::mips_fsle_w, 64803}, // __builtin_msa_fsle_w
-      {Intrinsic::mips_fslt_d, 64824}, // __builtin_msa_fslt_d
-      {Intrinsic::mips_fslt_w, 64845}, // __builtin_msa_fslt_w
-      {Intrinsic::mips_fsne_d, 64866}, // __builtin_msa_fsne_d
-      {Intrinsic::mips_fsne_w, 64887}, // __builtin_msa_fsne_w
-      {Intrinsic::mips_fsor_d, 64908}, // __builtin_msa_fsor_d
-      {Intrinsic::mips_fsor_w, 64929}, // __builtin_msa_fsor_w
-      {Intrinsic::mips_fsqrt_d, 64950}, // __builtin_msa_fsqrt_d
-      {Intrinsic::mips_fsqrt_w, 64972}, // __builtin_msa_fsqrt_w
-      {Intrinsic::mips_fsub_d, 64994}, // __builtin_msa_fsub_d
-      {Intrinsic::mips_fsub_w, 65015}, // __builtin_msa_fsub_w
-      {Intrinsic::mips_fsueq_d, 65036}, // __builtin_msa_fsueq_d
-      {Intrinsic::mips_fsueq_w, 65058}, // __builtin_msa_fsueq_w
-      {Intrinsic::mips_fsule_d, 65080}, // __builtin_msa_fsule_d
-      {Intrinsic::mips_fsule_w, 65102}, // __builtin_msa_fsule_w
-      {Intrinsic::mips_fsult_d, 65124}, // __builtin_msa_fsult_d
-      {Intrinsic::mips_fsult_w, 65146}, // __builtin_msa_fsult_w
-      {Intrinsic::mips_fsun_d, 65168}, // __builtin_msa_fsun_d
-      {Intrinsic::mips_fsun_w, 65189}, // __builtin_msa_fsun_w
-      {Intrinsic::mips_fsune_d, 65210}, // __builtin_msa_fsune_d
-      {Intrinsic::mips_fsune_w, 65232}, // __builtin_msa_fsune_w
-      {Intrinsic::mips_ftint_s_d, 65254}, // __builtin_msa_ftint_s_d
-      {Intrinsic::mips_ftint_s_w, 65278}, // __builtin_msa_ftint_s_w
-      {Intrinsic::mips_ftint_u_d, 65302}, // __builtin_msa_ftint_u_d
-      {Intrinsic::mips_ftint_u_w, 65326}, // __builtin_msa_ftint_u_w
-      {Intrinsic::mips_ftq_h, 65350}, // __builtin_msa_ftq_h
-      {Intrinsic::mips_ftq_w, 65370}, // __builtin_msa_ftq_w
-      {Intrinsic::mips_ftrunc_s_d, 65390}, // __builtin_msa_ftrunc_s_d
-      {Intrinsic::mips_ftrunc_s_w, 65415}, // __builtin_msa_ftrunc_s_w
-      {Intrinsic::mips_ftrunc_u_d, 65440}, // __builtin_msa_ftrunc_u_d
-      {Intrinsic::mips_ftrunc_u_w, 65465}, // __builtin_msa_ftrunc_u_w
-      {Intrinsic::mips_hadd_s_d, 65490}, // __builtin_msa_hadd_s_d
-      {Intrinsic::mips_hadd_s_h, 65513}, // __builtin_msa_hadd_s_h
-      {Intrinsic::mips_hadd_s_w, 65536}, // __builtin_msa_hadd_s_w
-      {Intrinsic::mips_hadd_u_d, 65559}, // __builtin_msa_hadd_u_d
-      {Intrinsic::mips_hadd_u_h, 65582}, // __builtin_msa_hadd_u_h
-      {Intrinsic::mips_hadd_u_w, 65605}, // __builtin_msa_hadd_u_w
-      {Intrinsic::mips_hsub_s_d, 65628}, // __builtin_msa_hsub_s_d
-      {Intrinsic::mips_hsub_s_h, 65651}, // __builtin_msa_hsub_s_h
-      {Intrinsic::mips_hsub_s_w, 65674}, // __builtin_msa_hsub_s_w
-      {Intrinsic::mips_hsub_u_d, 65697}, // __builtin_msa_hsub_u_d
-      {Intrinsic::mips_hsub_u_h, 65720}, // __builtin_msa_hsub_u_h
-      {Intrinsic::mips_hsub_u_w, 65743}, // __builtin_msa_hsub_u_w
-      {Intrinsic::mips_ilvev_b, 65766}, // __builtin_msa_ilvev_b
-      {Intrinsic::mips_ilvev_d, 65788}, // __builtin_msa_ilvev_d
-      {Intrinsic::mips_ilvev_h, 65810}, // __builtin_msa_ilvev_h
-      {Intrinsic::mips_ilvev_w, 65832}, // __builtin_msa_ilvev_w
-      {Intrinsic::mips_ilvl_b, 65854}, // __builtin_msa_ilvl_b
-      {Intrinsic::mips_ilvl_d, 65875}, // __builtin_msa_ilvl_d
-      {Intrinsic::mips_ilvl_h, 65896}, // __builtin_msa_ilvl_h
-      {Intrinsic::mips_ilvl_w, 65917}, // __builtin_msa_ilvl_w
-      {Intrinsic::mips_ilvod_b, 65938}, // __builtin_msa_ilvod_b
-      {Intrinsic::mips_ilvod_d, 65960}, // __builtin_msa_ilvod_d
-      {Intrinsic::mips_ilvod_h, 65982}, // __builtin_msa_ilvod_h
-      {Intrinsic::mips_ilvod_w, 66004}, // __builtin_msa_ilvod_w
-      {Intrinsic::mips_ilvr_b, 66026}, // __builtin_msa_ilvr_b
-      {Intrinsic::mips_ilvr_d, 66047}, // __builtin_msa_ilvr_d
-      {Intrinsic::mips_ilvr_h, 66068}, // __builtin_msa_ilvr_h
-      {Intrinsic::mips_ilvr_w, 66089}, // __builtin_msa_ilvr_w
-      {Intrinsic::mips_insert_b, 66110}, // __builtin_msa_insert_b
-      {Intrinsic::mips_insert_d, 66133}, // __builtin_msa_insert_d
-      {Intrinsic::mips_insert_h, 66156}, // __builtin_msa_insert_h
-      {Intrinsic::mips_insert_w, 66179}, // __builtin_msa_insert_w
-      {Intrinsic::mips_insve_b, 66222}, // __builtin_msa_insve_b
-      {Intrinsic::mips_insve_d, 66244}, // __builtin_msa_insve_d
-      {Intrinsic::mips_insve_h, 66266}, // __builtin_msa_insve_h
-      {Intrinsic::mips_insve_w, 66288}, // __builtin_msa_insve_w
-      {Intrinsic::mips_ld_b, 66330}, // __builtin_msa_ld_b
-      {Intrinsic::mips_ld_d, 66349}, // __builtin_msa_ld_d
-      {Intrinsic::mips_ld_h, 66368}, // __builtin_msa_ld_h
-      {Intrinsic::mips_ld_w, 66387}, // __builtin_msa_ld_w
-      {Intrinsic::mips_ldi_b, 66406}, // __builtin_msa_ldi_b
-      {Intrinsic::mips_ldi_d, 66426}, // __builtin_msa_ldi_d
-      {Intrinsic::mips_ldi_h, 66446}, // __builtin_msa_ldi_h
-      {Intrinsic::mips_ldi_w, 66466}, // __builtin_msa_ldi_w
-      {Intrinsic::mips_madd_q_h, 66563}, // __builtin_msa_madd_q_h
-      {Intrinsic::mips_madd_q_w, 66586}, // __builtin_msa_madd_q_w
-      {Intrinsic::mips_maddr_q_h, 66609}, // __builtin_msa_maddr_q_h
-      {Intrinsic::mips_maddr_q_w, 66633}, // __builtin_msa_maddr_q_w
-      {Intrinsic::mips_maddv_b, 66678}, // __builtin_msa_maddv_b
-      {Intrinsic::mips_maddv_d, 66700}, // __builtin_msa_maddv_d
-      {Intrinsic::mips_maddv_h, 66722}, // __builtin_msa_maddv_h
-      {Intrinsic::mips_maddv_w, 66744}, // __builtin_msa_maddv_w
-      {Intrinsic::mips_max_a_b, 66876}, // __builtin_msa_max_a_b
-      {Intrinsic::mips_max_a_d, 66898}, // __builtin_msa_max_a_d
-      {Intrinsic::mips_max_a_h, 66920}, // __builtin_msa_max_a_h
-      {Intrinsic::mips_max_a_w, 66942}, // __builtin_msa_max_a_w
-      {Intrinsic::mips_max_s_b, 66964}, // __builtin_msa_max_s_b
-      {Intrinsic::mips_max_s_d, 66986}, // __builtin_msa_max_s_d
-      {Intrinsic::mips_max_s_h, 67008}, // __builtin_msa_max_s_h
-      {Intrinsic::mips_max_s_w, 67030}, // __builtin_msa_max_s_w
-      {Intrinsic::mips_max_u_b, 67052}, // __builtin_msa_max_u_b
-      {Intrinsic::mips_max_u_d, 67074}, // __builtin_msa_max_u_d
-      {Intrinsic::mips_max_u_h, 67096}, // __builtin_msa_max_u_h
-      {Intrinsic::mips_max_u_w, 67118}, // __builtin_msa_max_u_w
-      {Intrinsic::mips_maxi_s_b, 67140}, // __builtin_msa_maxi_s_b
-      {Intrinsic::mips_maxi_s_d, 67163}, // __builtin_msa_maxi_s_d
-      {Intrinsic::mips_maxi_s_h, 67186}, // __builtin_msa_maxi_s_h
-      {Intrinsic::mips_maxi_s_w, 67209}, // __builtin_msa_maxi_s_w
-      {Intrinsic::mips_maxi_u_b, 67232}, // __builtin_msa_maxi_u_b
-      {Intrinsic::mips_maxi_u_d, 67255}, // __builtin_msa_maxi_u_d
-      {Intrinsic::mips_maxi_u_h, 67278}, // __builtin_msa_maxi_u_h
-      {Intrinsic::mips_maxi_u_w, 67301}, // __builtin_msa_maxi_u_w
-      {Intrinsic::mips_min_a_b, 67324}, // __builtin_msa_min_a_b
-      {Intrinsic::mips_min_a_d, 67346}, // __builtin_msa_min_a_d
-      {Intrinsic::mips_min_a_h, 67368}, // __builtin_msa_min_a_h
-      {Intrinsic::mips_min_a_w, 67390}, // __builtin_msa_min_a_w
-      {Intrinsic::mips_min_s_b, 67412}, // __builtin_msa_min_s_b
-      {Intrinsic::mips_min_s_d, 67434}, // __builtin_msa_min_s_d
-      {Intrinsic::mips_min_s_h, 67456}, // __builtin_msa_min_s_h
-      {Intrinsic::mips_min_s_w, 67478}, // __builtin_msa_min_s_w
-      {Intrinsic::mips_min_u_b, 67500}, // __builtin_msa_min_u_b
-      {Intrinsic::mips_min_u_d, 67522}, // __builtin_msa_min_u_d
-      {Intrinsic::mips_min_u_h, 67544}, // __builtin_msa_min_u_h
-      {Intrinsic::mips_min_u_w, 67566}, // __builtin_msa_min_u_w
-      {Intrinsic::mips_mini_s_b, 67588}, // __builtin_msa_mini_s_b
-      {Intrinsic::mips_mini_s_d, 67611}, // __builtin_msa_mini_s_d
-      {Intrinsic::mips_mini_s_h, 67634}, // __builtin_msa_mini_s_h
-      {Intrinsic::mips_mini_s_w, 67657}, // __builtin_msa_mini_s_w
-      {Intrinsic::mips_mini_u_b, 67680}, // __builtin_msa_mini_u_b
-      {Intrinsic::mips_mini_u_d, 67703}, // __builtin_msa_mini_u_d
-      {Intrinsic::mips_mini_u_h, 67726}, // __builtin_msa_mini_u_h
-      {Intrinsic::mips_mini_u_w, 67749}, // __builtin_msa_mini_u_w
-      {Intrinsic::mips_mod_s_b, 67772}, // __builtin_msa_mod_s_b
-      {Intrinsic::mips_mod_s_d, 67794}, // __builtin_msa_mod_s_d
-      {Intrinsic::mips_mod_s_h, 67816}, // __builtin_msa_mod_s_h
-      {Intrinsic::mips_mod_s_w, 67838}, // __builtin_msa_mod_s_w
-      {Intrinsic::mips_mod_u_b, 67860}, // __builtin_msa_mod_u_b
-      {Intrinsic::mips_mod_u_d, 67882}, // __builtin_msa_mod_u_d
-      {Intrinsic::mips_mod_u_h, 67904}, // __builtin_msa_mod_u_h
-      {Intrinsic::mips_mod_u_w, 67926}, // __builtin_msa_mod_u_w
-      {Intrinsic::mips_move_v, 67970}, // __builtin_msa_move_v
-      {Intrinsic::mips_msub_q_h, 68011}, // __builtin_msa_msub_q_h
-      {Intrinsic::mips_msub_q_w, 68034}, // __builtin_msa_msub_q_w
-      {Intrinsic::mips_msubr_q_h, 68057}, // __builtin_msa_msubr_q_h
-      {Intrinsic::mips_msubr_q_w, 68081}, // __builtin_msa_msubr_q_w
-      {Intrinsic::mips_msubv_b, 68126}, // __builtin_msa_msubv_b
-      {Intrinsic::mips_msubv_d, 68148}, // __builtin_msa_msubv_d
-      {Intrinsic::mips_msubv_h, 68170}, // __builtin_msa_msubv_h
-      {Intrinsic::mips_msubv_w, 68192}, // __builtin_msa_msubv_w
-      {Intrinsic::mips_mul_q_h, 68258}, // __builtin_msa_mul_q_h
-      {Intrinsic::mips_mul_q_w, 68280}, // __builtin_msa_mul_q_w
-      {Intrinsic::mips_mulr_q_h, 68544}, // __builtin_msa_mulr_q_h
-      {Intrinsic::mips_mulr_q_w, 68567}, // __builtin_msa_mulr_q_w
-      {Intrinsic::mips_mulv_b, 68686}, // __builtin_msa_mulv_b
-      {Intrinsic::mips_mulv_d, 68707}, // __builtin_msa_mulv_d
-      {Intrinsic::mips_mulv_h, 68728}, // __builtin_msa_mulv_h
-      {Intrinsic::mips_mulv_w, 68749}, // __builtin_msa_mulv_w
-      {Intrinsic::mips_nloc_b, 68770}, // __builtin_msa_nloc_b
-      {Intrinsic::mips_nloc_d, 68791}, // __builtin_msa_nloc_d
-      {Intrinsic::mips_nloc_h, 68812}, // __builtin_msa_nloc_h
-      {Intrinsic::mips_nloc_w, 68833}, // __builtin_msa_nloc_w
-      {Intrinsic::mips_nlzc_b, 68854}, // __builtin_msa_nlzc_b
-      {Intrinsic::mips_nlzc_d, 68875}, // __builtin_msa_nlzc_d
-      {Intrinsic::mips_nlzc_h, 68896}, // __builtin_msa_nlzc_h
-      {Intrinsic::mips_nlzc_w, 68917}, // __builtin_msa_nlzc_w
-      {Intrinsic::mips_nor_v, 68938}, // __builtin_msa_nor_v
-      {Intrinsic::mips_nori_b, 68958}, // __builtin_msa_nori_b
-      {Intrinsic::mips_or_v, 68979}, // __builtin_msa_or_v
-      {Intrinsic::mips_ori_b, 68998}, // __builtin_msa_ori_b
-      {Intrinsic::mips_pckev_b, 69043}, // __builtin_msa_pckev_b
-      {Intrinsic::mips_pckev_d, 69065}, // __builtin_msa_pckev_d
-      {Intrinsic::mips_pckev_h, 69087}, // __builtin_msa_pckev_h
-      {Intrinsic::mips_pckev_w, 69109}, // __builtin_msa_pckev_w
-      {Intrinsic::mips_pckod_b, 69131}, // __builtin_msa_pckod_b
-      {Intrinsic::mips_pckod_d, 69153}, // __builtin_msa_pckod_d
-      {Intrinsic::mips_pckod_h, 69175}, // __builtin_msa_pckod_h
-      {Intrinsic::mips_pckod_w, 69197}, // __builtin_msa_pckod_w
-      {Intrinsic::mips_pcnt_b, 69219}, // __builtin_msa_pcnt_b
-      {Intrinsic::mips_pcnt_d, 69240}, // __builtin_msa_pcnt_d
-      {Intrinsic::mips_pcnt_h, 69261}, // __builtin_msa_pcnt_h
-      {Intrinsic::mips_pcnt_w, 69282}, // __builtin_msa_pcnt_w
-      {Intrinsic::mips_sat_s_b, 69966}, // __builtin_msa_sat_s_b
-      {Intrinsic::mips_sat_s_d, 69988}, // __builtin_msa_sat_s_d
-      {Intrinsic::mips_sat_s_h, 70010}, // __builtin_msa_sat_s_h
-      {Intrinsic::mips_sat_s_w, 70032}, // __builtin_msa_sat_s_w
-      {Intrinsic::mips_sat_u_b, 70054}, // __builtin_msa_sat_u_b
-      {Intrinsic::mips_sat_u_d, 70076}, // __builtin_msa_sat_u_d
-      {Intrinsic::mips_sat_u_h, 70098}, // __builtin_msa_sat_u_h
-      {Intrinsic::mips_sat_u_w, 70120}, // __builtin_msa_sat_u_w
-      {Intrinsic::mips_shf_b, 70142}, // __builtin_msa_shf_b
-      {Intrinsic::mips_shf_h, 70162}, // __builtin_msa_shf_h
-      {Intrinsic::mips_shf_w, 70182}, // __builtin_msa_shf_w
-      {Intrinsic::mips_sld_b, 70484}, // __builtin_msa_sld_b
-      {Intrinsic::mips_sld_d, 70504}, // __builtin_msa_sld_d
-      {Intrinsic::mips_sld_h, 70524}, // __builtin_msa_sld_h
-      {Intrinsic::mips_sld_w, 70544}, // __builtin_msa_sld_w
-      {Intrinsic::mips_sldi_b, 70564}, // __builtin_msa_sldi_b
-      {Intrinsic::mips_sldi_d, 70585}, // __builtin_msa_sldi_d
-      {Intrinsic::mips_sldi_h, 70606}, // __builtin_msa_sldi_h
-      {Intrinsic::mips_sldi_w, 70627}, // __builtin_msa_sldi_w
-      {Intrinsic::mips_sll_b, 70648}, // __builtin_msa_sll_b
-      {Intrinsic::mips_sll_d, 70668}, // __builtin_msa_sll_d
-      {Intrinsic::mips_sll_h, 70688}, // __builtin_msa_sll_h
-      {Intrinsic::mips_sll_w, 70708}, // __builtin_msa_sll_w
-      {Intrinsic::mips_slli_b, 70728}, // __builtin_msa_slli_b
-      {Intrinsic::mips_slli_d, 70749}, // __builtin_msa_slli_d
-      {Intrinsic::mips_slli_h, 70770}, // __builtin_msa_slli_h
-      {Intrinsic::mips_slli_w, 70791}, // __builtin_msa_slli_w
-      {Intrinsic::mips_splat_b, 70812}, // __builtin_msa_splat_b
-      {Intrinsic::mips_splat_d, 70834}, // __builtin_msa_splat_d
-      {Intrinsic::mips_splat_h, 70856}, // __builtin_msa_splat_h
-      {Intrinsic::mips_splat_w, 70878}, // __builtin_msa_splat_w
-      {Intrinsic::mips_splati_b, 70900}, // __builtin_msa_splati_b
-      {Intrinsic::mips_splati_d, 70923}, // __builtin_msa_splati_d
-      {Intrinsic::mips_splati_h, 70946}, // __builtin_msa_splati_h
-      {Intrinsic::mips_splati_w, 70969}, // __builtin_msa_splati_w
-      {Intrinsic::mips_sra_b, 70992}, // __builtin_msa_sra_b
-      {Intrinsic::mips_sra_d, 71012}, // __builtin_msa_sra_d
-      {Intrinsic::mips_sra_h, 71032}, // __builtin_msa_sra_h
-      {Intrinsic::mips_sra_w, 71052}, // __builtin_msa_sra_w
-      {Intrinsic::mips_srai_b, 71072}, // __builtin_msa_srai_b
-      {Intrinsic::mips_srai_d, 71093}, // __builtin_msa_srai_d
-      {Intrinsic::mips_srai_h, 71114}, // __builtin_msa_srai_h
-      {Intrinsic::mips_srai_w, 71135}, // __builtin_msa_srai_w
-      {Intrinsic::mips_srar_b, 71156}, // __builtin_msa_srar_b
-      {Intrinsic::mips_srar_d, 71177}, // __builtin_msa_srar_d
-      {Intrinsic::mips_srar_h, 71198}, // __builtin_msa_srar_h
-      {Intrinsic::mips_srar_w, 71219}, // __builtin_msa_srar_w
-      {Intrinsic::mips_srari_b, 71240}, // __builtin_msa_srari_b
-      {Intrinsic::mips_srari_d, 71262}, // __builtin_msa_srari_d
-      {Intrinsic::mips_srari_h, 71284}, // __builtin_msa_srari_h
-      {Intrinsic::mips_srari_w, 71306}, // __builtin_msa_srari_w
-      {Intrinsic::mips_srl_b, 71328}, // __builtin_msa_srl_b
-      {Intrinsic::mips_srl_d, 71348}, // __builtin_msa_srl_d
-      {Intrinsic::mips_srl_h, 71368}, // __builtin_msa_srl_h
-      {Intrinsic::mips_srl_w, 71388}, // __builtin_msa_srl_w
-      {Intrinsic::mips_srli_b, 71408}, // __builtin_msa_srli_b
-      {Intrinsic::mips_srli_d, 71429}, // __builtin_msa_srli_d
-      {Intrinsic::mips_srli_h, 71450}, // __builtin_msa_srli_h
-      {Intrinsic::mips_srli_w, 71471}, // __builtin_msa_srli_w
-      {Intrinsic::mips_srlr_b, 71492}, // __builtin_msa_srlr_b
-      {Intrinsic::mips_srlr_d, 71513}, // __builtin_msa_srlr_d
-      {Intrinsic::mips_srlr_h, 71534}, // __builtin_msa_srlr_h
-      {Intrinsic::mips_srlr_w, 71555}, // __builtin_msa_srlr_w
-      {Intrinsic::mips_srlri_b, 71576}, // __builtin_msa_srlri_b
-      {Intrinsic::mips_srlri_d, 71598}, // __builtin_msa_srlri_d
-      {Intrinsic::mips_srlri_h, 71620}, // __builtin_msa_srlri_h
-      {Intrinsic::mips_srlri_w, 71642}, // __builtin_msa_srlri_w
-      {Intrinsic::mips_st_b, 71664}, // __builtin_msa_st_b
-      {Intrinsic::mips_st_d, 71683}, // __builtin_msa_st_d
-      {Intrinsic::mips_st_h, 71702}, // __builtin_msa_st_h
-      {Intrinsic::mips_st_w, 71721}, // __builtin_msa_st_w
-      {Intrinsic::mips_subs_s_b, 71910}, // __builtin_msa_subs_s_b
-      {Intrinsic::mips_subs_s_d, 71933}, // __builtin_msa_subs_s_d
-      {Intrinsic::mips_subs_s_h, 71956}, // __builtin_msa_subs_s_h
-      {Intrinsic::mips_subs_s_w, 71979}, // __builtin_msa_subs_s_w
-      {Intrinsic::mips_subs_u_b, 72002}, // __builtin_msa_subs_u_b
-      {Intrinsic::mips_subs_u_d, 72025}, // __builtin_msa_subs_u_d
-      {Intrinsic::mips_subs_u_h, 72048}, // __builtin_msa_subs_u_h
-      {Intrinsic::mips_subs_u_w, 72071}, // __builtin_msa_subs_u_w
-      {Intrinsic::mips_subsus_u_b, 72094}, // __builtin_msa_subsus_u_b
-      {Intrinsic::mips_subsus_u_d, 72119}, // __builtin_msa_subsus_u_d
-      {Intrinsic::mips_subsus_u_h, 72144}, // __builtin_msa_subsus_u_h
-      {Intrinsic::mips_subsus_u_w, 72169}, // __builtin_msa_subsus_u_w
-      {Intrinsic::mips_subsuu_s_b, 72194}, // __builtin_msa_subsuu_s_b
-      {Intrinsic::mips_subsuu_s_d, 72219}, // __builtin_msa_subsuu_s_d
-      {Intrinsic::mips_subsuu_s_h, 72244}, // __builtin_msa_subsuu_s_h
-      {Intrinsic::mips_subsuu_s_w, 72269}, // __builtin_msa_subsuu_s_w
-      {Intrinsic::mips_subv_b, 72440}, // __builtin_msa_subv_b
-      {Intrinsic::mips_subv_d, 72461}, // __builtin_msa_subv_d
-      {Intrinsic::mips_subv_h, 72482}, // __builtin_msa_subv_h
-      {Intrinsic::mips_subv_w, 72503}, // __builtin_msa_subv_w
-      {Intrinsic::mips_subvi_b, 72524}, // __builtin_msa_subvi_b
-      {Intrinsic::mips_subvi_d, 72546}, // __builtin_msa_subvi_d
-      {Intrinsic::mips_subvi_h, 72568}, // __builtin_msa_subvi_h
-      {Intrinsic::mips_subvi_w, 72590}, // __builtin_msa_subvi_w
-      {Intrinsic::mips_vshf_b, 72612}, // __builtin_msa_vshf_b
-      {Intrinsic::mips_vshf_d, 72633}, // __builtin_msa_vshf_d
-      {Intrinsic::mips_vshf_h, 72654}, // __builtin_msa_vshf_h
-      {Intrinsic::mips_vshf_w, 72675}, // __builtin_msa_vshf_w
-      {Intrinsic::mips_xor_v, 72717}, // __builtin_msa_xor_v
-      {Intrinsic::mips_xori_b, 72737}, // __builtin_msa_xori_b
-    };
-    auto I = std::lower_bound(std::begin(mipsNames),
-                              std::end(mipsNames),
-                              BuiltinNameStr);
-    if (I != std::end(mipsNames) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "nvvm") {
-    static const BuiltinEntry nvvmNames[] = {
-      {Intrinsic::nvvm_add_rm_d, 72758}, // __nvvm_add_rm_d
-      {Intrinsic::nvvm_add_rm_f, 72774}, // __nvvm_add_rm_f
-      {Intrinsic::nvvm_add_rm_ftz_f, 72790}, // __nvvm_add_rm_ftz_f
-      {Intrinsic::nvvm_add_rn_d, 72810}, // __nvvm_add_rn_d
-      {Intrinsic::nvvm_add_rn_f, 72826}, // __nvvm_add_rn_f
-      {Intrinsic::nvvm_add_rn_ftz_f, 72842}, // __nvvm_add_rn_ftz_f
-      {Intrinsic::nvvm_add_rp_d, 72862}, // __nvvm_add_rp_d
-      {Intrinsic::nvvm_add_rp_f, 72878}, // __nvvm_add_rp_f
-      {Intrinsic::nvvm_add_rp_ftz_f, 72894}, // __nvvm_add_rp_ftz_f
-      {Intrinsic::nvvm_add_rz_d, 72914}, // __nvvm_add_rz_d
-      {Intrinsic::nvvm_add_rz_f, 72930}, // __nvvm_add_rz_f
-      {Intrinsic::nvvm_add_rz_ftz_f, 72946}, // __nvvm_add_rz_ftz_f
-      {Intrinsic::nvvm_barrier, 73003}, // __nvvm_bar
-      {Intrinsic::nvvm_barrier0_and, 73085}, // __nvvm_bar0_and
-      {Intrinsic::nvvm_barrier0_or, 73101}, // __nvvm_bar0_or
-      {Intrinsic::nvvm_barrier0_popc, 73116}, // __nvvm_bar0_popc
-      {Intrinsic::nvvm_barrier_n, 73014}, // __nvvm_bar_n
-      {Intrinsic::nvvm_bar_sync, 72966}, // __nvvm_bar_sync
-      {Intrinsic::nvvm_bar_warp_sync, 72982}, // __nvvm_bar_warp_sync
-      {Intrinsic::nvvm_barrier_sync, 73027}, // __nvvm_barrier_sync
-      {Intrinsic::nvvm_barrier_sync_cnt, 73047}, // __nvvm_barrier_sync_cnt
-      {Intrinsic::nvvm_bitcast_d2ll, 73133}, // __nvvm_bitcast_d2ll
-      {Intrinsic::nvvm_bitcast_f2i, 73153}, // __nvvm_bitcast_f2i
-      {Intrinsic::nvvm_bitcast_i2f, 73172}, // __nvvm_bitcast_i2f
-      {Intrinsic::nvvm_bitcast_ll2d, 73191}, // __nvvm_bitcast_ll2d
-      {Intrinsic::nvvm_ceil_d, 73211}, // __nvvm_ceil_d
-      {Intrinsic::nvvm_ceil_f, 73225}, // __nvvm_ceil_f
-      {Intrinsic::nvvm_ceil_ftz_f, 73239}, // __nvvm_ceil_ftz_f
-      {Intrinsic::nvvm_cos_approx_f, 73257}, // __nvvm_cos_approx_f
-      {Intrinsic::nvvm_cos_approx_ftz_f, 73277}, // __nvvm_cos_approx_ftz_f
-      {Intrinsic::nvvm_d2f_rm, 73301}, // __nvvm_d2f_rm
-      {Intrinsic::nvvm_d2f_rm_ftz, 73315}, // __nvvm_d2f_rm_ftz
-      {Intrinsic::nvvm_d2f_rn, 73333}, // __nvvm_d2f_rn
-      {Intrinsic::nvvm_d2f_rn_ftz, 73347}, // __nvvm_d2f_rn_ftz
-      {Intrinsic::nvvm_d2f_rp, 73365}, // __nvvm_d2f_rp
-      {Intrinsic::nvvm_d2f_rp_ftz, 73379}, // __nvvm_d2f_rp_ftz
-      {Intrinsic::nvvm_d2f_rz, 73397}, // __nvvm_d2f_rz
-      {Intrinsic::nvvm_d2f_rz_ftz, 73411}, // __nvvm_d2f_rz_ftz
-      {Intrinsic::nvvm_d2i_hi, 73429}, // __nvvm_d2i_hi
-      {Intrinsic::nvvm_d2i_lo, 73443}, // __nvvm_d2i_lo
-      {Intrinsic::nvvm_d2i_rm, 73457}, // __nvvm_d2i_rm
-      {Intrinsic::nvvm_d2i_rn, 73471}, // __nvvm_d2i_rn
-      {Intrinsic::nvvm_d2i_rp, 73485}, // __nvvm_d2i_rp
-      {Intrinsic::nvvm_d2i_rz, 73499}, // __nvvm_d2i_rz
-      {Intrinsic::nvvm_d2ll_rm, 73513}, // __nvvm_d2ll_rm
-      {Intrinsic::nvvm_d2ll_rn, 73528}, // __nvvm_d2ll_rn
-      {Intrinsic::nvvm_d2ll_rp, 73543}, // __nvvm_d2ll_rp
-      {Intrinsic::nvvm_d2ll_rz, 73558}, // __nvvm_d2ll_rz
-      {Intrinsic::nvvm_d2ui_rm, 73573}, // __nvvm_d2ui_rm
-      {Intrinsic::nvvm_d2ui_rn, 73588}, // __nvvm_d2ui_rn
-      {Intrinsic::nvvm_d2ui_rp, 73603}, // __nvvm_d2ui_rp
-      {Intrinsic::nvvm_d2ui_rz, 73618}, // __nvvm_d2ui_rz
-      {Intrinsic::nvvm_d2ull_rm, 73633}, // __nvvm_d2ull_rm
-      {Intrinsic::nvvm_d2ull_rn, 73649}, // __nvvm_d2ull_rn
-      {Intrinsic::nvvm_d2ull_rp, 73665}, // __nvvm_d2ull_rp
-      {Intrinsic::nvvm_d2ull_rz, 73681}, // __nvvm_d2ull_rz
-      {Intrinsic::nvvm_div_approx_f, 73697}, // __nvvm_div_approx_f
-      {Intrinsic::nvvm_div_approx_ftz_f, 73717}, // __nvvm_div_approx_ftz_f
-      {Intrinsic::nvvm_div_rm_d, 73741}, // __nvvm_div_rm_d
-      {Intrinsic::nvvm_div_rm_f, 73757}, // __nvvm_div_rm_f
-      {Intrinsic::nvvm_div_rm_ftz_f, 73773}, // __nvvm_div_rm_ftz_f
-      {Intrinsic::nvvm_div_rn_d, 73793}, // __nvvm_div_rn_d
-      {Intrinsic::nvvm_div_rn_f, 73809}, // __nvvm_div_rn_f
-      {Intrinsic::nvvm_div_rn_ftz_f, 73825}, // __nvvm_div_rn_ftz_f
-      {Intrinsic::nvvm_div_rp_d, 73845}, // __nvvm_div_rp_d
-      {Intrinsic::nvvm_div_rp_f, 73861}, // __nvvm_div_rp_f
-      {Intrinsic::nvvm_div_rp_ftz_f, 73877}, // __nvvm_div_rp_ftz_f
-      {Intrinsic::nvvm_div_rz_d, 73897}, // __nvvm_div_rz_d
-      {Intrinsic::nvvm_div_rz_f, 73913}, // __nvvm_div_rz_f
-      {Intrinsic::nvvm_div_rz_ftz_f, 73929}, // __nvvm_div_rz_ftz_f
-      {Intrinsic::nvvm_ex2_approx_d, 73949}, // __nvvm_ex2_approx_d
-      {Intrinsic::nvvm_ex2_approx_f, 73969}, // __nvvm_ex2_approx_f
-      {Intrinsic::nvvm_ex2_approx_ftz_f, 73989}, // __nvvm_ex2_approx_ftz_f
-      {Intrinsic::nvvm_f2h_rn, 74013}, // __nvvm_f2h_rn
-      {Intrinsic::nvvm_f2h_rn_ftz, 74027}, // __nvvm_f2h_rn_ftz
-      {Intrinsic::nvvm_f2i_rm, 74045}, // __nvvm_f2i_rm
-      {Intrinsic::nvvm_f2i_rm_ftz, 74059}, // __nvvm_f2i_rm_ftz
-      {Intrinsic::nvvm_f2i_rn, 74077}, // __nvvm_f2i_rn
-      {Intrinsic::nvvm_f2i_rn_ftz, 74091}, // __nvvm_f2i_rn_ftz
-      {Intrinsic::nvvm_f2i_rp, 74109}, // __nvvm_f2i_rp
-      {Intrinsic::nvvm_f2i_rp_ftz, 74123}, // __nvvm_f2i_rp_ftz
-      {Intrinsic::nvvm_f2i_rz, 74141}, // __nvvm_f2i_rz
-      {Intrinsic::nvvm_f2i_rz_ftz, 74155}, // __nvvm_f2i_rz_ftz
-      {Intrinsic::nvvm_f2ll_rm, 74173}, // __nvvm_f2ll_rm
-      {Intrinsic::nvvm_f2ll_rm_ftz, 74188}, // __nvvm_f2ll_rm_ftz
-      {Intrinsic::nvvm_f2ll_rn, 74207}, // __nvvm_f2ll_rn
-      {Intrinsic::nvvm_f2ll_rn_ftz, 74222}, // __nvvm_f2ll_rn_ftz
-      {Intrinsic::nvvm_f2ll_rp, 74241}, // __nvvm_f2ll_rp
-      {Intrinsic::nvvm_f2ll_rp_ftz, 74256}, // __nvvm_f2ll_rp_ftz
-      {Intrinsic::nvvm_f2ll_rz, 74275}, // __nvvm_f2ll_rz
-      {Intrinsic::nvvm_f2ll_rz_ftz, 74290}, // __nvvm_f2ll_rz_ftz
-      {Intrinsic::nvvm_f2ui_rm, 74309}, // __nvvm_f2ui_rm
-      {Intrinsic::nvvm_f2ui_rm_ftz, 74324}, // __nvvm_f2ui_rm_ftz
-      {Intrinsic::nvvm_f2ui_rn, 74343}, // __nvvm_f2ui_rn
-      {Intrinsic::nvvm_f2ui_rn_ftz, 74358}, // __nvvm_f2ui_rn_ftz
-      {Intrinsic::nvvm_f2ui_rp, 74377}, // __nvvm_f2ui_rp
-      {Intrinsic::nvvm_f2ui_rp_ftz, 74392}, // __nvvm_f2ui_rp_ftz
-      {Intrinsic::nvvm_f2ui_rz, 74411}, // __nvvm_f2ui_rz
-      {Intrinsic::nvvm_f2ui_rz_ftz, 74426}, // __nvvm_f2ui_rz_ftz
-      {Intrinsic::nvvm_f2ull_rm, 74445}, // __nvvm_f2ull_rm
-      {Intrinsic::nvvm_f2ull_rm_ftz, 74461}, // __nvvm_f2ull_rm_ftz
-      {Intrinsic::nvvm_f2ull_rn, 74481}, // __nvvm_f2ull_rn
-      {Intrinsic::nvvm_f2ull_rn_ftz, 74497}, // __nvvm_f2ull_rn_ftz
-      {Intrinsic::nvvm_f2ull_rp, 74517}, // __nvvm_f2ull_rp
-      {Intrinsic::nvvm_f2ull_rp_ftz, 74533}, // __nvvm_f2ull_rp_ftz
-      {Intrinsic::nvvm_f2ull_rz, 74553}, // __nvvm_f2ull_rz
-      {Intrinsic::nvvm_f2ull_rz_ftz, 74569}, // __nvvm_f2ull_rz_ftz
-      {Intrinsic::nvvm_fabs_d, 74589}, // __nvvm_fabs_d
-      {Intrinsic::nvvm_fabs_f, 74603}, // __nvvm_fabs_f
-      {Intrinsic::nvvm_fabs_ftz_f, 74617}, // __nvvm_fabs_ftz_f
-      {Intrinsic::nvvm_floor_d, 74635}, // __nvvm_floor_d
-      {Intrinsic::nvvm_floor_f, 74650}, // __nvvm_floor_f
-      {Intrinsic::nvvm_floor_ftz_f, 74665}, // __nvvm_floor_ftz_f
-      {Intrinsic::nvvm_fma_rm_d, 74684}, // __nvvm_fma_rm_d
-      {Intrinsic::nvvm_fma_rm_f, 74700}, // __nvvm_fma_rm_f
-      {Intrinsic::nvvm_fma_rm_ftz_f, 74716}, // __nvvm_fma_rm_ftz_f
-      {Intrinsic::nvvm_fma_rn_d, 74736}, // __nvvm_fma_rn_d
-      {Intrinsic::nvvm_fma_rn_f, 74752}, // __nvvm_fma_rn_f
-      {Intrinsic::nvvm_fma_rn_ftz_f, 74768}, // __nvvm_fma_rn_ftz_f
-      {Intrinsic::nvvm_fma_rp_d, 74788}, // __nvvm_fma_rp_d
-      {Intrinsic::nvvm_fma_rp_f, 74804}, // __nvvm_fma_rp_f
-      {Intrinsic::nvvm_fma_rp_ftz_f, 74820}, // __nvvm_fma_rp_ftz_f
-      {Intrinsic::nvvm_fma_rz_d, 74840}, // __nvvm_fma_rz_d
-      {Intrinsic::nvvm_fma_rz_f, 74856}, // __nvvm_fma_rz_f
-      {Intrinsic::nvvm_fma_rz_ftz_f, 74872}, // __nvvm_fma_rz_ftz_f
-      {Intrinsic::nvvm_fmax_d, 74892}, // __nvvm_fmax_d
-      {Intrinsic::nvvm_fmax_f, 74906}, // __nvvm_fmax_f
-      {Intrinsic::nvvm_fmax_ftz_f, 74920}, // __nvvm_fmax_ftz_f
-      {Intrinsic::nvvm_fmin_d, 74938}, // __nvvm_fmin_d
-      {Intrinsic::nvvm_fmin_f, 74952}, // __nvvm_fmin_f
-      {Intrinsic::nvvm_fmin_ftz_f, 74966}, // __nvvm_fmin_ftz_f
-      {Intrinsic::nvvm_fns, 74984}, // __nvvm_fns
-      {Intrinsic::nvvm_i2d_rm, 74995}, // __nvvm_i2d_rm
-      {Intrinsic::nvvm_i2d_rn, 75009}, // __nvvm_i2d_rn
-      {Intrinsic::nvvm_i2d_rp, 75023}, // __nvvm_i2d_rp
-      {Intrinsic::nvvm_i2d_rz, 75037}, // __nvvm_i2d_rz
-      {Intrinsic::nvvm_i2f_rm, 75051}, // __nvvm_i2f_rm
-      {Intrinsic::nvvm_i2f_rn, 75065}, // __nvvm_i2f_rn
-      {Intrinsic::nvvm_i2f_rp, 75079}, // __nvvm_i2f_rp
-      {Intrinsic::nvvm_i2f_rz, 75093}, // __nvvm_i2f_rz
-      {Intrinsic::nvvm_isspacep_const, 75107}, // __nvvm_isspacep_const
-      {Intrinsic::nvvm_isspacep_global, 75129}, // __nvvm_isspacep_global
-      {Intrinsic::nvvm_isspacep_local, 75152}, // __nvvm_isspacep_local
-      {Intrinsic::nvvm_isspacep_shared, 75174}, // __nvvm_isspacep_shared
-      {Intrinsic::nvvm_istypep_sampler, 75197}, // __nvvm_istypep_sampler
-      {Intrinsic::nvvm_istypep_surface, 75220}, // __nvvm_istypep_surface
-      {Intrinsic::nvvm_istypep_texture, 75243}, // __nvvm_istypep_texture
-      {Intrinsic::nvvm_lg2_approx_d, 75266}, // __nvvm_lg2_approx_d
-      {Intrinsic::nvvm_lg2_approx_f, 75286}, // __nvvm_lg2_approx_f
-      {Intrinsic::nvvm_lg2_approx_ftz_f, 75306}, // __nvvm_lg2_approx_ftz_f
-      {Intrinsic::nvvm_ll2d_rm, 75330}, // __nvvm_ll2d_rm
-      {Intrinsic::nvvm_ll2d_rn, 75345}, // __nvvm_ll2d_rn
-      {Intrinsic::nvvm_ll2d_rp, 75360}, // __nvvm_ll2d_rp
-      {Intrinsic::nvvm_ll2d_rz, 75375}, // __nvvm_ll2d_rz
-      {Intrinsic::nvvm_ll2f_rm, 75390}, // __nvvm_ll2f_rm
-      {Intrinsic::nvvm_ll2f_rn, 75405}, // __nvvm_ll2f_rn
-      {Intrinsic::nvvm_ll2f_rp, 75420}, // __nvvm_ll2f_rp
-      {Intrinsic::nvvm_ll2f_rz, 75435}, // __nvvm_ll2f_rz
-      {Intrinsic::nvvm_lohi_i2d, 75450}, // __nvvm_lohi_i2d
-      {Intrinsic::nvvm_match_any_sync_i32, 75466}, // __nvvm_match_any_sync_i32
-      {Intrinsic::nvvm_match_any_sync_i64, 75492}, // __nvvm_match_any_sync_i64
-      {Intrinsic::nvvm_membar_cta, 75518}, // __nvvm_membar_cta
-      {Intrinsic::nvvm_membar_gl, 75536}, // __nvvm_membar_gl
-      {Intrinsic::nvvm_membar_sys, 75553}, // __nvvm_membar_sys
-      {Intrinsic::nvvm_mul24_i, 75779}, // __nvvm_mul24_i
-      {Intrinsic::nvvm_mul24_ui, 75794}, // __nvvm_mul24_ui
-      {Intrinsic::nvvm_mul_rm_d, 75571}, // __nvvm_mul_rm_d
-      {Intrinsic::nvvm_mul_rm_f, 75587}, // __nvvm_mul_rm_f
-      {Intrinsic::nvvm_mul_rm_ftz_f, 75603}, // __nvvm_mul_rm_ftz_f
-      {Intrinsic::nvvm_mul_rn_d, 75623}, // __nvvm_mul_rn_d
-      {Intrinsic::nvvm_mul_rn_f, 75639}, // __nvvm_mul_rn_f
-      {Intrinsic::nvvm_mul_rn_ftz_f, 75655}, // __nvvm_mul_rn_ftz_f
-      {Intrinsic::nvvm_mul_rp_d, 75675}, // __nvvm_mul_rp_d
-      {Intrinsic::nvvm_mul_rp_f, 75691}, // __nvvm_mul_rp_f
-      {Intrinsic::nvvm_mul_rp_ftz_f, 75707}, // __nvvm_mul_rp_ftz_f
-      {Intrinsic::nvvm_mul_rz_d, 75727}, // __nvvm_mul_rz_d
-      {Intrinsic::nvvm_mul_rz_f, 75743}, // __nvvm_mul_rz_f
-      {Intrinsic::nvvm_mul_rz_ftz_f, 75759}, // __nvvm_mul_rz_ftz_f
-      {Intrinsic::nvvm_mulhi_i, 75810}, // __nvvm_mulhi_i
-      {Intrinsic::nvvm_mulhi_ll, 75825}, // __nvvm_mulhi_ll
-      {Intrinsic::nvvm_mulhi_ui, 75841}, // __nvvm_mulhi_ui
-      {Intrinsic::nvvm_mulhi_ull, 75857}, // __nvvm_mulhi_ull
-      {Intrinsic::nvvm_prmt, 75874}, // __nvvm_prmt
-      {Intrinsic::nvvm_rcp_approx_ftz_d, 75886}, // __nvvm_rcp_approx_ftz_d
-      {Intrinsic::nvvm_rcp_rm_d, 75910}, // __nvvm_rcp_rm_d
-      {Intrinsic::nvvm_rcp_rm_f, 75926}, // __nvvm_rcp_rm_f
-      {Intrinsic::nvvm_rcp_rm_ftz_f, 75942}, // __nvvm_rcp_rm_ftz_f
-      {Intrinsic::nvvm_rcp_rn_d, 75962}, // __nvvm_rcp_rn_d
-      {Intrinsic::nvvm_rcp_rn_f, 75978}, // __nvvm_rcp_rn_f
-      {Intrinsic::nvvm_rcp_rn_ftz_f, 75994}, // __nvvm_rcp_rn_ftz_f
-      {Intrinsic::nvvm_rcp_rp_d, 76014}, // __nvvm_rcp_rp_d
-      {Intrinsic::nvvm_rcp_rp_f, 76030}, // __nvvm_rcp_rp_f
-      {Intrinsic::nvvm_rcp_rp_ftz_f, 76046}, // __nvvm_rcp_rp_ftz_f
-      {Intrinsic::nvvm_rcp_rz_d, 76066}, // __nvvm_rcp_rz_d
-      {Intrinsic::nvvm_rcp_rz_f, 76082}, // __nvvm_rcp_rz_f
-      {Intrinsic::nvvm_rcp_rz_ftz_f, 76098}, // __nvvm_rcp_rz_ftz_f
-      {Intrinsic::nvvm_read_ptx_sreg_clock, 76118}, // __nvvm_read_ptx_sreg_clock
-      {Intrinsic::nvvm_read_ptx_sreg_clock64, 76145}, // __nvvm_read_ptx_sreg_clock64
-      {Intrinsic::nvvm_read_ptx_sreg_ctaid_w, 76174}, // __nvvm_read_ptx_sreg_ctaid_w
-      {Intrinsic::nvvm_read_ptx_sreg_ctaid_x, 76203}, // __nvvm_read_ptx_sreg_ctaid_x
-      {Intrinsic::nvvm_read_ptx_sreg_ctaid_y, 76232}, // __nvvm_read_ptx_sreg_ctaid_y
-      {Intrinsic::nvvm_read_ptx_sreg_ctaid_z, 76261}, // __nvvm_read_ptx_sreg_ctaid_z
-      {Intrinsic::nvvm_read_ptx_sreg_envreg0, 76290}, // __nvvm_read_ptx_sreg_envreg0
-      {Intrinsic::nvvm_read_ptx_sreg_envreg1, 76319}, // __nvvm_read_ptx_sreg_envreg1
-      {Intrinsic::nvvm_read_ptx_sreg_envreg10, 76348}, // __nvvm_read_ptx_sreg_envreg10
-      {Intrinsic::nvvm_read_ptx_sreg_envreg11, 76378}, // __nvvm_read_ptx_sreg_envreg11
-      {Intrinsic::nvvm_read_ptx_sreg_envreg12, 76408}, // __nvvm_read_ptx_sreg_envreg12
-      {Intrinsic::nvvm_read_ptx_sreg_envreg13, 76438}, // __nvvm_read_ptx_sreg_envreg13
-      {Intrinsic::nvvm_read_ptx_sreg_envreg14, 76468}, // __nvvm_read_ptx_sreg_envreg14
-      {Intrinsic::nvvm_read_ptx_sreg_envreg15, 76498}, // __nvvm_read_ptx_sreg_envreg15
-      {Intrinsic::nvvm_read_ptx_sreg_envreg16, 76528}, // __nvvm_read_ptx_sreg_envreg16
-      {Intrinsic::nvvm_read_ptx_sreg_envreg17, 76558}, // __nvvm_read_ptx_sreg_envreg17
-      {Intrinsic::nvvm_read_ptx_sreg_envreg18, 76588}, // __nvvm_read_ptx_sreg_envreg18
-      {Intrinsic::nvvm_read_ptx_sreg_envreg19, 76618}, // __nvvm_read_ptx_sreg_envreg19
-      {Intrinsic::nvvm_read_ptx_sreg_envreg2, 76648}, // __nvvm_read_ptx_sreg_envreg2
-      {Intrinsic::nvvm_read_ptx_sreg_envreg20, 76677}, // __nvvm_read_ptx_sreg_envreg20
-      {Intrinsic::nvvm_read_ptx_sreg_envreg21, 76707}, // __nvvm_read_ptx_sreg_envreg21
-      {Intrinsic::nvvm_read_ptx_sreg_envreg22, 76737}, // __nvvm_read_ptx_sreg_envreg22
-      {Intrinsic::nvvm_read_ptx_sreg_envreg23, 76767}, // __nvvm_read_ptx_sreg_envreg23
-      {Intrinsic::nvvm_read_ptx_sreg_envreg24, 76797}, // __nvvm_read_ptx_sreg_envreg24
-      {Intrinsic::nvvm_read_ptx_sreg_envreg25, 76827}, // __nvvm_read_ptx_sreg_envreg25
-      {Intrinsic::nvvm_read_ptx_sreg_envreg26, 76857}, // __nvvm_read_ptx_sreg_envreg26
-      {Intrinsic::nvvm_read_ptx_sreg_envreg27, 76887}, // __nvvm_read_ptx_sreg_envreg27
-      {Intrinsic::nvvm_read_ptx_sreg_envreg28, 76917}, // __nvvm_read_ptx_sreg_envreg28
-      {Intrinsic::nvvm_read_ptx_sreg_envreg29, 76947}, // __nvvm_read_ptx_sreg_envreg29
-      {Intrinsic::nvvm_read_ptx_sreg_envreg3, 76977}, // __nvvm_read_ptx_sreg_envreg3
-      {Intrinsic::nvvm_read_ptx_sreg_envreg30, 77006}, // __nvvm_read_ptx_sreg_envreg30
-      {Intrinsic::nvvm_read_ptx_sreg_envreg31, 77036}, // __nvvm_read_ptx_sreg_envreg31
-      {Intrinsic::nvvm_read_ptx_sreg_envreg4, 77066}, // __nvvm_read_ptx_sreg_envreg4
-      {Intrinsic::nvvm_read_ptx_sreg_envreg5, 77095}, // __nvvm_read_ptx_sreg_envreg5
-      {Intrinsic::nvvm_read_ptx_sreg_envreg6, 77124}, // __nvvm_read_ptx_sreg_envreg6
-      {Intrinsic::nvvm_read_ptx_sreg_envreg7, 77153}, // __nvvm_read_ptx_sreg_envreg7
-      {Intrinsic::nvvm_read_ptx_sreg_envreg8, 77182}, // __nvvm_read_ptx_sreg_envreg8
-      {Intrinsic::nvvm_read_ptx_sreg_envreg9, 77211}, // __nvvm_read_ptx_sreg_envreg9
-      {Intrinsic::nvvm_read_ptx_sreg_gridid, 77240}, // __nvvm_read_ptx_sreg_gridid
-      {Intrinsic::nvvm_read_ptx_sreg_laneid, 77268}, // __nvvm_read_ptx_sreg_laneid
-      {Intrinsic::nvvm_read_ptx_sreg_lanemask_eq, 77296}, // __nvvm_read_ptx_sreg_lanemask_eq
-      {Intrinsic::nvvm_read_ptx_sreg_lanemask_ge, 77329}, // __nvvm_read_ptx_sreg_lanemask_ge
-      {Intrinsic::nvvm_read_ptx_sreg_lanemask_gt, 77362}, // __nvvm_read_ptx_sreg_lanemask_gt
-      {Intrinsic::nvvm_read_ptx_sreg_lanemask_le, 77395}, // __nvvm_read_ptx_sreg_lanemask_le
-      {Intrinsic::nvvm_read_ptx_sreg_lanemask_lt, 77428}, // __nvvm_read_ptx_sreg_lanemask_lt
-      {Intrinsic::nvvm_read_ptx_sreg_nctaid_w, 77461}, // __nvvm_read_ptx_sreg_nctaid_w
-      {Intrinsic::nvvm_read_ptx_sreg_nctaid_x, 77491}, // __nvvm_read_ptx_sreg_nctaid_x
-      {Intrinsic::nvvm_read_ptx_sreg_nctaid_y, 77521}, // __nvvm_read_ptx_sreg_nctaid_y
-      {Intrinsic::nvvm_read_ptx_sreg_nctaid_z, 77551}, // __nvvm_read_ptx_sreg_nctaid_z
-      {Intrinsic::nvvm_read_ptx_sreg_nsmid, 77581}, // __nvvm_read_ptx_sreg_nsmid
-      {Intrinsic::nvvm_read_ptx_sreg_ntid_w, 77608}, // __nvvm_read_ptx_sreg_ntid_w
-      {Intrinsic::nvvm_read_ptx_sreg_ntid_x, 77636}, // __nvvm_read_ptx_sreg_ntid_x
-      {Intrinsic::nvvm_read_ptx_sreg_ntid_y, 77664}, // __nvvm_read_ptx_sreg_ntid_y
-      {Intrinsic::nvvm_read_ptx_sreg_ntid_z, 77692}, // __nvvm_read_ptx_sreg_ntid_z
-      {Intrinsic::nvvm_read_ptx_sreg_nwarpid, 77720}, // __nvvm_read_ptx_sreg_nwarpid
-      {Intrinsic::nvvm_read_ptx_sreg_pm0, 77749}, // __nvvm_read_ptx_sreg_pm0
-      {Intrinsic::nvvm_read_ptx_sreg_pm1, 77774}, // __nvvm_read_ptx_sreg_pm1
-      {Intrinsic::nvvm_read_ptx_sreg_pm2, 77799}, // __nvvm_read_ptx_sreg_pm2
-      {Intrinsic::nvvm_read_ptx_sreg_pm3, 77824}, // __nvvm_read_ptx_sreg_pm3
-      {Intrinsic::nvvm_read_ptx_sreg_smid, 77849}, // __nvvm_read_ptx_sreg_smid
-      {Intrinsic::nvvm_read_ptx_sreg_tid_w, 77875}, // __nvvm_read_ptx_sreg_tid_w
-      {Intrinsic::nvvm_read_ptx_sreg_tid_x, 77902}, // __nvvm_read_ptx_sreg_tid_x
-      {Intrinsic::nvvm_read_ptx_sreg_tid_y, 77929}, // __nvvm_read_ptx_sreg_tid_y
-      {Intrinsic::nvvm_read_ptx_sreg_tid_z, 77956}, // __nvvm_read_ptx_sreg_tid_z
-      {Intrinsic::nvvm_read_ptx_sreg_warpid, 77983}, // __nvvm_read_ptx_sreg_warpid
-      {Intrinsic::nvvm_read_ptx_sreg_warpsize, 78011}, // __nvvm_read_ptx_sreg_warpsize
-      {Intrinsic::nvvm_rotate_b32, 78041}, // __nvvm_rotate_b32
-      {Intrinsic::nvvm_rotate_b64, 78059}, // __nvvm_rotate_b64
-      {Intrinsic::nvvm_rotate_right_b64, 78077}, // __nvvm_rotate_right_b64
-      {Intrinsic::nvvm_round_d, 78101}, // __nvvm_round_d
-      {Intrinsic::nvvm_round_f, 78116}, // __nvvm_round_f
-      {Intrinsic::nvvm_round_ftz_f, 78131}, // __nvvm_round_ftz_f
-      {Intrinsic::nvvm_rsqrt_approx_d, 78150}, // __nvvm_rsqrt_approx_d
-      {Intrinsic::nvvm_rsqrt_approx_f, 78172}, // __nvvm_rsqrt_approx_f
-      {Intrinsic::nvvm_rsqrt_approx_ftz_f, 78194}, // __nvvm_rsqrt_approx_ftz_f
-      {Intrinsic::nvvm_sad_i, 78220}, // __nvvm_sad_i
-      {Intrinsic::nvvm_sad_ui, 78233}, // __nvvm_sad_ui
-      {Intrinsic::nvvm_saturate_d, 78247}, // __nvvm_saturate_d
-      {Intrinsic::nvvm_saturate_f, 78265}, // __nvvm_saturate_f
-      {Intrinsic::nvvm_saturate_ftz_f, 78283}, // __nvvm_saturate_ftz_f
-      {Intrinsic::nvvm_shfl_bfly_f32, 78305}, // __nvvm_shfl_bfly_f32
-      {Intrinsic::nvvm_shfl_bfly_i32, 78326}, // __nvvm_shfl_bfly_i32
-      {Intrinsic::nvvm_shfl_down_f32, 78347}, // __nvvm_shfl_down_f32
-      {Intrinsic::nvvm_shfl_down_i32, 78368}, // __nvvm_shfl_down_i32
-      {Intrinsic::nvvm_shfl_idx_f32, 78389}, // __nvvm_shfl_idx_f32
-      {Intrinsic::nvvm_shfl_idx_i32, 78409}, // __nvvm_shfl_idx_i32
-      {Intrinsic::nvvm_shfl_sync_bfly_f32, 78429}, // __nvvm_shfl_sync_bfly_f32
-      {Intrinsic::nvvm_shfl_sync_bfly_i32, 78455}, // __nvvm_shfl_sync_bfly_i32
-      {Intrinsic::nvvm_shfl_sync_down_f32, 78481}, // __nvvm_shfl_sync_down_f32
-      {Intrinsic::nvvm_shfl_sync_down_i32, 78507}, // __nvvm_shfl_sync_down_i32
-      {Intrinsic::nvvm_shfl_sync_idx_f32, 78533}, // __nvvm_shfl_sync_idx_f32
-      {Intrinsic::nvvm_shfl_sync_idx_i32, 78558}, // __nvvm_shfl_sync_idx_i32
-      {Intrinsic::nvvm_shfl_sync_up_f32, 78583}, // __nvvm_shfl_sync_up_f32
-      {Intrinsic::nvvm_shfl_sync_up_i32, 78607}, // __nvvm_shfl_sync_up_i32
-      {Intrinsic::nvvm_shfl_up_f32, 78631}, // __nvvm_shfl_up_f32
-      {Intrinsic::nvvm_shfl_up_i32, 78650}, // __nvvm_shfl_up_i32
-      {Intrinsic::nvvm_sin_approx_f, 78669}, // __nvvm_sin_approx_f
-      {Intrinsic::nvvm_sin_approx_ftz_f, 78689}, // __nvvm_sin_approx_ftz_f
-      {Intrinsic::nvvm_sqrt_approx_f, 78713}, // __nvvm_sqrt_approx_f
-      {Intrinsic::nvvm_sqrt_approx_ftz_f, 78734}, // __nvvm_sqrt_approx_ftz_f
-      {Intrinsic::nvvm_sqrt_f, 78759}, // __nvvm_sqrt_f
-      {Intrinsic::nvvm_sqrt_rm_d, 78773}, // __nvvm_sqrt_rm_d
-      {Intrinsic::nvvm_sqrt_rm_f, 78790}, // __nvvm_sqrt_rm_f
-      {Intrinsic::nvvm_sqrt_rm_ftz_f, 78807}, // __nvvm_sqrt_rm_ftz_f
-      {Intrinsic::nvvm_sqrt_rn_d, 78828}, // __nvvm_sqrt_rn_d
-      {Intrinsic::nvvm_sqrt_rn_f, 78845}, // __nvvm_sqrt_rn_f
-      {Intrinsic::nvvm_sqrt_rn_ftz_f, 78862}, // __nvvm_sqrt_rn_ftz_f
-      {Intrinsic::nvvm_sqrt_rp_d, 78883}, // __nvvm_sqrt_rp_d
-      {Intrinsic::nvvm_sqrt_rp_f, 78900}, // __nvvm_sqrt_rp_f
-      {Intrinsic::nvvm_sqrt_rp_ftz_f, 78917}, // __nvvm_sqrt_rp_ftz_f
-      {Intrinsic::nvvm_sqrt_rz_d, 78938}, // __nvvm_sqrt_rz_d
-      {Intrinsic::nvvm_sqrt_rz_f, 78955}, // __nvvm_sqrt_rz_f
-      {Intrinsic::nvvm_sqrt_rz_ftz_f, 78972}, // __nvvm_sqrt_rz_ftz_f
-      {Intrinsic::nvvm_suq_array_size, 78993}, // __nvvm_suq_array_size
-      {Intrinsic::nvvm_suq_channel_data_type, 79015}, // __nvvm_suq_channel_data_type
-      {Intrinsic::nvvm_suq_channel_order, 79044}, // __nvvm_suq_channel_order
-      {Intrinsic::nvvm_suq_depth, 79069}, // __nvvm_suq_depth
-      {Intrinsic::nvvm_suq_height, 79086}, // __nvvm_suq_height
-      {Intrinsic::nvvm_suq_width, 79104}, // __nvvm_suq_width
-      {Intrinsic::nvvm_sust_b_1d_array_i16_clamp, 79121}, // __nvvm_sust_b_1d_array_i16_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_i16_trap, 79154}, // __nvvm_sust_b_1d_array_i16_trap
-      {Intrinsic::nvvm_sust_b_1d_array_i16_zero, 79186}, // __nvvm_sust_b_1d_array_i16_zero
-      {Intrinsic::nvvm_sust_b_1d_array_i32_clamp, 79218}, // __nvvm_sust_b_1d_array_i32_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_i32_trap, 79251}, // __nvvm_sust_b_1d_array_i32_trap
-      {Intrinsic::nvvm_sust_b_1d_array_i32_zero, 79283}, // __nvvm_sust_b_1d_array_i32_zero
-      {Intrinsic::nvvm_sust_b_1d_array_i64_clamp, 79315}, // __nvvm_sust_b_1d_array_i64_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_i64_trap, 79348}, // __nvvm_sust_b_1d_array_i64_trap
-      {Intrinsic::nvvm_sust_b_1d_array_i64_zero, 79380}, // __nvvm_sust_b_1d_array_i64_zero
-      {Intrinsic::nvvm_sust_b_1d_array_i8_clamp, 79412}, // __nvvm_sust_b_1d_array_i8_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_i8_trap, 79444}, // __nvvm_sust_b_1d_array_i8_trap
-      {Intrinsic::nvvm_sust_b_1d_array_i8_zero, 79475}, // __nvvm_sust_b_1d_array_i8_zero
-      {Intrinsic::nvvm_sust_b_1d_array_v2i16_clamp, 79506}, // __nvvm_sust_b_1d_array_v2i16_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_v2i16_trap, 79541}, // __nvvm_sust_b_1d_array_v2i16_trap
-      {Intrinsic::nvvm_sust_b_1d_array_v2i16_zero, 79575}, // __nvvm_sust_b_1d_array_v2i16_zero
-      {Intrinsic::nvvm_sust_b_1d_array_v2i32_clamp, 79609}, // __nvvm_sust_b_1d_array_v2i32_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_v2i32_trap, 79644}, // __nvvm_sust_b_1d_array_v2i32_trap
-      {Intrinsic::nvvm_sust_b_1d_array_v2i32_zero, 79678}, // __nvvm_sust_b_1d_array_v2i32_zero
-      {Intrinsic::nvvm_sust_b_1d_array_v2i64_clamp, 79712}, // __nvvm_sust_b_1d_array_v2i64_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_v2i64_trap, 79747}, // __nvvm_sust_b_1d_array_v2i64_trap
-      {Intrinsic::nvvm_sust_b_1d_array_v2i64_zero, 79781}, // __nvvm_sust_b_1d_array_v2i64_zero
-      {Intrinsic::nvvm_sust_b_1d_array_v2i8_clamp, 79815}, // __nvvm_sust_b_1d_array_v2i8_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_v2i8_trap, 79849}, // __nvvm_sust_b_1d_array_v2i8_trap
-      {Intrinsic::nvvm_sust_b_1d_array_v2i8_zero, 79882}, // __nvvm_sust_b_1d_array_v2i8_zero
-      {Intrinsic::nvvm_sust_b_1d_array_v4i16_clamp, 79915}, // __nvvm_sust_b_1d_array_v4i16_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_v4i16_trap, 79950}, // __nvvm_sust_b_1d_array_v4i16_trap
-      {Intrinsic::nvvm_sust_b_1d_array_v4i16_zero, 79984}, // __nvvm_sust_b_1d_array_v4i16_zero
-      {Intrinsic::nvvm_sust_b_1d_array_v4i32_clamp, 80018}, // __nvvm_sust_b_1d_array_v4i32_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_v4i32_trap, 80053}, // __nvvm_sust_b_1d_array_v4i32_trap
-      {Intrinsic::nvvm_sust_b_1d_array_v4i32_zero, 80087}, // __nvvm_sust_b_1d_array_v4i32_zero
-      {Intrinsic::nvvm_sust_b_1d_array_v4i8_clamp, 80121}, // __nvvm_sust_b_1d_array_v4i8_clamp
-      {Intrinsic::nvvm_sust_b_1d_array_v4i8_trap, 80155}, // __nvvm_sust_b_1d_array_v4i8_trap
-      {Intrinsic::nvvm_sust_b_1d_array_v4i8_zero, 80188}, // __nvvm_sust_b_1d_array_v4i8_zero
-      {Intrinsic::nvvm_sust_b_1d_i16_clamp, 80221}, // __nvvm_sust_b_1d_i16_clamp
-      {Intrinsic::nvvm_sust_b_1d_i16_trap, 80248}, // __nvvm_sust_b_1d_i16_trap
-      {Intrinsic::nvvm_sust_b_1d_i16_zero, 80274}, // __nvvm_sust_b_1d_i16_zero
-      {Intrinsic::nvvm_sust_b_1d_i32_clamp, 80300}, // __nvvm_sust_b_1d_i32_clamp
-      {Intrinsic::nvvm_sust_b_1d_i32_trap, 80327}, // __nvvm_sust_b_1d_i32_trap
-      {Intrinsic::nvvm_sust_b_1d_i32_zero, 80353}, // __nvvm_sust_b_1d_i32_zero
-      {Intrinsic::nvvm_sust_b_1d_i64_clamp, 80379}, // __nvvm_sust_b_1d_i64_clamp
-      {Intrinsic::nvvm_sust_b_1d_i64_trap, 80406}, // __nvvm_sust_b_1d_i64_trap
-      {Intrinsic::nvvm_sust_b_1d_i64_zero, 80432}, // __nvvm_sust_b_1d_i64_zero
-      {Intrinsic::nvvm_sust_b_1d_i8_clamp, 80458}, // __nvvm_sust_b_1d_i8_clamp
-      {Intrinsic::nvvm_sust_b_1d_i8_trap, 80484}, // __nvvm_sust_b_1d_i8_trap
-      {Intrinsic::nvvm_sust_b_1d_i8_zero, 80509}, // __nvvm_sust_b_1d_i8_zero
-      {Intrinsic::nvvm_sust_b_1d_v2i16_clamp, 80534}, // __nvvm_sust_b_1d_v2i16_clamp
-      {Intrinsic::nvvm_sust_b_1d_v2i16_trap, 80563}, // __nvvm_sust_b_1d_v2i16_trap
-      {Intrinsic::nvvm_sust_b_1d_v2i16_zero, 80591}, // __nvvm_sust_b_1d_v2i16_zero
-      {Intrinsic::nvvm_sust_b_1d_v2i32_clamp, 80619}, // __nvvm_sust_b_1d_v2i32_clamp
-      {Intrinsic::nvvm_sust_b_1d_v2i32_trap, 80648}, // __nvvm_sust_b_1d_v2i32_trap
-      {Intrinsic::nvvm_sust_b_1d_v2i32_zero, 80676}, // __nvvm_sust_b_1d_v2i32_zero
-      {Intrinsic::nvvm_sust_b_1d_v2i64_clamp, 80704}, // __nvvm_sust_b_1d_v2i64_clamp
-      {Intrinsic::nvvm_sust_b_1d_v2i64_trap, 80733}, // __nvvm_sust_b_1d_v2i64_trap
-      {Intrinsic::nvvm_sust_b_1d_v2i64_zero, 80761}, // __nvvm_sust_b_1d_v2i64_zero
-      {Intrinsic::nvvm_sust_b_1d_v2i8_clamp, 80789}, // __nvvm_sust_b_1d_v2i8_clamp
-      {Intrinsic::nvvm_sust_b_1d_v2i8_trap, 80817}, // __nvvm_sust_b_1d_v2i8_trap
-      {Intrinsic::nvvm_sust_b_1d_v2i8_zero, 80844}, // __nvvm_sust_b_1d_v2i8_zero
-      {Intrinsic::nvvm_sust_b_1d_v4i16_clamp, 80871}, // __nvvm_sust_b_1d_v4i16_clamp
-      {Intrinsic::nvvm_sust_b_1d_v4i16_trap, 80900}, // __nvvm_sust_b_1d_v4i16_trap
-      {Intrinsic::nvvm_sust_b_1d_v4i16_zero, 80928}, // __nvvm_sust_b_1d_v4i16_zero
-      {Intrinsic::nvvm_sust_b_1d_v4i32_clamp, 80956}, // __nvvm_sust_b_1d_v4i32_clamp
-      {Intrinsic::nvvm_sust_b_1d_v4i32_trap, 80985}, // __nvvm_sust_b_1d_v4i32_trap
-      {Intrinsic::nvvm_sust_b_1d_v4i32_zero, 81013}, // __nvvm_sust_b_1d_v4i32_zero
-      {Intrinsic::nvvm_sust_b_1d_v4i8_clamp, 81041}, // __nvvm_sust_b_1d_v4i8_clamp
-      {Intrinsic::nvvm_sust_b_1d_v4i8_trap, 81069}, // __nvvm_sust_b_1d_v4i8_trap
-      {Intrinsic::nvvm_sust_b_1d_v4i8_zero, 81096}, // __nvvm_sust_b_1d_v4i8_zero
-      {Intrinsic::nvvm_sust_b_2d_array_i16_clamp, 81123}, // __nvvm_sust_b_2d_array_i16_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_i16_trap, 81156}, // __nvvm_sust_b_2d_array_i16_trap
-      {Intrinsic::nvvm_sust_b_2d_array_i16_zero, 81188}, // __nvvm_sust_b_2d_array_i16_zero
-      {Intrinsic::nvvm_sust_b_2d_array_i32_clamp, 81220}, // __nvvm_sust_b_2d_array_i32_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_i32_trap, 81253}, // __nvvm_sust_b_2d_array_i32_trap
-      {Intrinsic::nvvm_sust_b_2d_array_i32_zero, 81285}, // __nvvm_sust_b_2d_array_i32_zero
-      {Intrinsic::nvvm_sust_b_2d_array_i64_clamp, 81317}, // __nvvm_sust_b_2d_array_i64_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_i64_trap, 81350}, // __nvvm_sust_b_2d_array_i64_trap
-      {Intrinsic::nvvm_sust_b_2d_array_i64_zero, 81382}, // __nvvm_sust_b_2d_array_i64_zero
-      {Intrinsic::nvvm_sust_b_2d_array_i8_clamp, 81414}, // __nvvm_sust_b_2d_array_i8_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_i8_trap, 81446}, // __nvvm_sust_b_2d_array_i8_trap
-      {Intrinsic::nvvm_sust_b_2d_array_i8_zero, 81477}, // __nvvm_sust_b_2d_array_i8_zero
-      {Intrinsic::nvvm_sust_b_2d_array_v2i16_clamp, 81508}, // __nvvm_sust_b_2d_array_v2i16_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_v2i16_trap, 81543}, // __nvvm_sust_b_2d_array_v2i16_trap
-      {Intrinsic::nvvm_sust_b_2d_array_v2i16_zero, 81577}, // __nvvm_sust_b_2d_array_v2i16_zero
-      {Intrinsic::nvvm_sust_b_2d_array_v2i32_clamp, 81611}, // __nvvm_sust_b_2d_array_v2i32_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_v2i32_trap, 81646}, // __nvvm_sust_b_2d_array_v2i32_trap
-      {Intrinsic::nvvm_sust_b_2d_array_v2i32_zero, 81680}, // __nvvm_sust_b_2d_array_v2i32_zero
-      {Intrinsic::nvvm_sust_b_2d_array_v2i64_clamp, 81714}, // __nvvm_sust_b_2d_array_v2i64_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_v2i64_trap, 81749}, // __nvvm_sust_b_2d_array_v2i64_trap
-      {Intrinsic::nvvm_sust_b_2d_array_v2i64_zero, 81783}, // __nvvm_sust_b_2d_array_v2i64_zero
-      {Intrinsic::nvvm_sust_b_2d_array_v2i8_clamp, 81817}, // __nvvm_sust_b_2d_array_v2i8_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_v2i8_trap, 81851}, // __nvvm_sust_b_2d_array_v2i8_trap
-      {Intrinsic::nvvm_sust_b_2d_array_v2i8_zero, 81884}, // __nvvm_sust_b_2d_array_v2i8_zero
-      {Intrinsic::nvvm_sust_b_2d_array_v4i16_clamp, 81917}, // __nvvm_sust_b_2d_array_v4i16_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_v4i16_trap, 81952}, // __nvvm_sust_b_2d_array_v4i16_trap
-      {Intrinsic::nvvm_sust_b_2d_array_v4i16_zero, 81986}, // __nvvm_sust_b_2d_array_v4i16_zero
-      {Intrinsic::nvvm_sust_b_2d_array_v4i32_clamp, 82020}, // __nvvm_sust_b_2d_array_v4i32_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_v4i32_trap, 82055}, // __nvvm_sust_b_2d_array_v4i32_trap
-      {Intrinsic::nvvm_sust_b_2d_array_v4i32_zero, 82089}, // __nvvm_sust_b_2d_array_v4i32_zero
-      {Intrinsic::nvvm_sust_b_2d_array_v4i8_clamp, 82123}, // __nvvm_sust_b_2d_array_v4i8_clamp
-      {Intrinsic::nvvm_sust_b_2d_array_v4i8_trap, 82157}, // __nvvm_sust_b_2d_array_v4i8_trap
-      {Intrinsic::nvvm_sust_b_2d_array_v4i8_zero, 82190}, // __nvvm_sust_b_2d_array_v4i8_zero
-      {Intrinsic::nvvm_sust_b_2d_i16_clamp, 82223}, // __nvvm_sust_b_2d_i16_clamp
-      {Intrinsic::nvvm_sust_b_2d_i16_trap, 82250}, // __nvvm_sust_b_2d_i16_trap
-      {Intrinsic::nvvm_sust_b_2d_i16_zero, 82276}, // __nvvm_sust_b_2d_i16_zero
-      {Intrinsic::nvvm_sust_b_2d_i32_clamp, 82302}, // __nvvm_sust_b_2d_i32_clamp
-      {Intrinsic::nvvm_sust_b_2d_i32_trap, 82329}, // __nvvm_sust_b_2d_i32_trap
-      {Intrinsic::nvvm_sust_b_2d_i32_zero, 82355}, // __nvvm_sust_b_2d_i32_zero
-      {Intrinsic::nvvm_sust_b_2d_i64_clamp, 82381}, // __nvvm_sust_b_2d_i64_clamp
-      {Intrinsic::nvvm_sust_b_2d_i64_trap, 82408}, // __nvvm_sust_b_2d_i64_trap
-      {Intrinsic::nvvm_sust_b_2d_i64_zero, 82434}, // __nvvm_sust_b_2d_i64_zero
-      {Intrinsic::nvvm_sust_b_2d_i8_clamp, 82460}, // __nvvm_sust_b_2d_i8_clamp
-      {Intrinsic::nvvm_sust_b_2d_i8_trap, 82486}, // __nvvm_sust_b_2d_i8_trap
-      {Intrinsic::nvvm_sust_b_2d_i8_zero, 82511}, // __nvvm_sust_b_2d_i8_zero
-      {Intrinsic::nvvm_sust_b_2d_v2i16_clamp, 82536}, // __nvvm_sust_b_2d_v2i16_clamp
-      {Intrinsic::nvvm_sust_b_2d_v2i16_trap, 82565}, // __nvvm_sust_b_2d_v2i16_trap
-      {Intrinsic::nvvm_sust_b_2d_v2i16_zero, 82593}, // __nvvm_sust_b_2d_v2i16_zero
-      {Intrinsic::nvvm_sust_b_2d_v2i32_clamp, 82621}, // __nvvm_sust_b_2d_v2i32_clamp
-      {Intrinsic::nvvm_sust_b_2d_v2i32_trap, 82650}, // __nvvm_sust_b_2d_v2i32_trap
-      {Intrinsic::nvvm_sust_b_2d_v2i32_zero, 82678}, // __nvvm_sust_b_2d_v2i32_zero
-      {Intrinsic::nvvm_sust_b_2d_v2i64_clamp, 82706}, // __nvvm_sust_b_2d_v2i64_clamp
-      {Intrinsic::nvvm_sust_b_2d_v2i64_trap, 82735}, // __nvvm_sust_b_2d_v2i64_trap
-      {Intrinsic::nvvm_sust_b_2d_v2i64_zero, 82763}, // __nvvm_sust_b_2d_v2i64_zero
-      {Intrinsic::nvvm_sust_b_2d_v2i8_clamp, 82791}, // __nvvm_sust_b_2d_v2i8_clamp
-      {Intrinsic::nvvm_sust_b_2d_v2i8_trap, 82819}, // __nvvm_sust_b_2d_v2i8_trap
-      {Intrinsic::nvvm_sust_b_2d_v2i8_zero, 82846}, // __nvvm_sust_b_2d_v2i8_zero
-      {Intrinsic::nvvm_sust_b_2d_v4i16_clamp, 82873}, // __nvvm_sust_b_2d_v4i16_clamp
-      {Intrinsic::nvvm_sust_b_2d_v4i16_trap, 82902}, // __nvvm_sust_b_2d_v4i16_trap
-      {Intrinsic::nvvm_sust_b_2d_v4i16_zero, 82930}, // __nvvm_sust_b_2d_v4i16_zero
-      {Intrinsic::nvvm_sust_b_2d_v4i32_clamp, 82958}, // __nvvm_sust_b_2d_v4i32_clamp
-      {Intrinsic::nvvm_sust_b_2d_v4i32_trap, 82987}, // __nvvm_sust_b_2d_v4i32_trap
-      {Intrinsic::nvvm_sust_b_2d_v4i32_zero, 83015}, // __nvvm_sust_b_2d_v4i32_zero
-      {Intrinsic::nvvm_sust_b_2d_v4i8_clamp, 83043}, // __nvvm_sust_b_2d_v4i8_clamp
-      {Intrinsic::nvvm_sust_b_2d_v4i8_trap, 83071}, // __nvvm_sust_b_2d_v4i8_trap
-      {Intrinsic::nvvm_sust_b_2d_v4i8_zero, 83098}, // __nvvm_sust_b_2d_v4i8_zero
-      {Intrinsic::nvvm_sust_b_3d_i16_clamp, 83125}, // __nvvm_sust_b_3d_i16_clamp
-      {Intrinsic::nvvm_sust_b_3d_i16_trap, 83152}, // __nvvm_sust_b_3d_i16_trap
-      {Intrinsic::nvvm_sust_b_3d_i16_zero, 83178}, // __nvvm_sust_b_3d_i16_zero
-      {Intrinsic::nvvm_sust_b_3d_i32_clamp, 83204}, // __nvvm_sust_b_3d_i32_clamp
-      {Intrinsic::nvvm_sust_b_3d_i32_trap, 83231}, // __nvvm_sust_b_3d_i32_trap
-      {Intrinsic::nvvm_sust_b_3d_i32_zero, 83257}, // __nvvm_sust_b_3d_i32_zero
-      {Intrinsic::nvvm_sust_b_3d_i64_clamp, 83283}, // __nvvm_sust_b_3d_i64_clamp
-      {Intrinsic::nvvm_sust_b_3d_i64_trap, 83310}, // __nvvm_sust_b_3d_i64_trap
-      {Intrinsic::nvvm_sust_b_3d_i64_zero, 83336}, // __nvvm_sust_b_3d_i64_zero
-      {Intrinsic::nvvm_sust_b_3d_i8_clamp, 83362}, // __nvvm_sust_b_3d_i8_clamp
-      {Intrinsic::nvvm_sust_b_3d_i8_trap, 83388}, // __nvvm_sust_b_3d_i8_trap
-      {Intrinsic::nvvm_sust_b_3d_i8_zero, 83413}, // __nvvm_sust_b_3d_i8_zero
-      {Intrinsic::nvvm_sust_b_3d_v2i16_clamp, 83438}, // __nvvm_sust_b_3d_v2i16_clamp
-      {Intrinsic::nvvm_sust_b_3d_v2i16_trap, 83467}, // __nvvm_sust_b_3d_v2i16_trap
-      {Intrinsic::nvvm_sust_b_3d_v2i16_zero, 83495}, // __nvvm_sust_b_3d_v2i16_zero
-      {Intrinsic::nvvm_sust_b_3d_v2i32_clamp, 83523}, // __nvvm_sust_b_3d_v2i32_clamp
-      {Intrinsic::nvvm_sust_b_3d_v2i32_trap, 83552}, // __nvvm_sust_b_3d_v2i32_trap
-      {Intrinsic::nvvm_sust_b_3d_v2i32_zero, 83580}, // __nvvm_sust_b_3d_v2i32_zero
-      {Intrinsic::nvvm_sust_b_3d_v2i64_clamp, 83608}, // __nvvm_sust_b_3d_v2i64_clamp
-      {Intrinsic::nvvm_sust_b_3d_v2i64_trap, 83637}, // __nvvm_sust_b_3d_v2i64_trap
-      {Intrinsic::nvvm_sust_b_3d_v2i64_zero, 83665}, // __nvvm_sust_b_3d_v2i64_zero
-      {Intrinsic::nvvm_sust_b_3d_v2i8_clamp, 83693}, // __nvvm_sust_b_3d_v2i8_clamp
-      {Intrinsic::nvvm_sust_b_3d_v2i8_trap, 83721}, // __nvvm_sust_b_3d_v2i8_trap
-      {Intrinsic::nvvm_sust_b_3d_v2i8_zero, 83748}, // __nvvm_sust_b_3d_v2i8_zero
-      {Intrinsic::nvvm_sust_b_3d_v4i16_clamp, 83775}, // __nvvm_sust_b_3d_v4i16_clamp
-      {Intrinsic::nvvm_sust_b_3d_v4i16_trap, 83804}, // __nvvm_sust_b_3d_v4i16_trap
-      {Intrinsic::nvvm_sust_b_3d_v4i16_zero, 83832}, // __nvvm_sust_b_3d_v4i16_zero
-      {Intrinsic::nvvm_sust_b_3d_v4i32_clamp, 83860}, // __nvvm_sust_b_3d_v4i32_clamp
-      {Intrinsic::nvvm_sust_b_3d_v4i32_trap, 83889}, // __nvvm_sust_b_3d_v4i32_trap
-      {Intrinsic::nvvm_sust_b_3d_v4i32_zero, 83917}, // __nvvm_sust_b_3d_v4i32_zero
-      {Intrinsic::nvvm_sust_b_3d_v4i8_clamp, 83945}, // __nvvm_sust_b_3d_v4i8_clamp
-      {Intrinsic::nvvm_sust_b_3d_v4i8_trap, 83973}, // __nvvm_sust_b_3d_v4i8_trap
-      {Intrinsic::nvvm_sust_b_3d_v4i8_zero, 84000}, // __nvvm_sust_b_3d_v4i8_zero
-      {Intrinsic::nvvm_sust_p_1d_array_i16_trap, 84027}, // __nvvm_sust_p_1d_array_i16_trap
-      {Intrinsic::nvvm_sust_p_1d_array_i32_trap, 84059}, // __nvvm_sust_p_1d_array_i32_trap
-      {Intrinsic::nvvm_sust_p_1d_array_i8_trap, 84091}, // __nvvm_sust_p_1d_array_i8_trap
-      {Intrinsic::nvvm_sust_p_1d_array_v2i16_trap, 84122}, // __nvvm_sust_p_1d_array_v2i16_trap
-      {Intrinsic::nvvm_sust_p_1d_array_v2i32_trap, 84156}, // __nvvm_sust_p_1d_array_v2i32_trap
-      {Intrinsic::nvvm_sust_p_1d_array_v2i8_trap, 84190}, // __nvvm_sust_p_1d_array_v2i8_trap
-      {Intrinsic::nvvm_sust_p_1d_array_v4i16_trap, 84223}, // __nvvm_sust_p_1d_array_v4i16_trap
-      {Intrinsic::nvvm_sust_p_1d_array_v4i32_trap, 84257}, // __nvvm_sust_p_1d_array_v4i32_trap
-      {Intrinsic::nvvm_sust_p_1d_array_v4i8_trap, 84291}, // __nvvm_sust_p_1d_array_v4i8_trap
-      {Intrinsic::nvvm_sust_p_1d_i16_trap, 84324}, // __nvvm_sust_p_1d_i16_trap
-      {Intrinsic::nvvm_sust_p_1d_i32_trap, 84350}, // __nvvm_sust_p_1d_i32_trap
-      {Intrinsic::nvvm_sust_p_1d_i8_trap, 84376}, // __nvvm_sust_p_1d_i8_trap
-      {Intrinsic::nvvm_sust_p_1d_v2i16_trap, 84401}, // __nvvm_sust_p_1d_v2i16_trap
-      {Intrinsic::nvvm_sust_p_1d_v2i32_trap, 84429}, // __nvvm_sust_p_1d_v2i32_trap
-      {Intrinsic::nvvm_sust_p_1d_v2i8_trap, 84457}, // __nvvm_sust_p_1d_v2i8_trap
-      {Intrinsic::nvvm_sust_p_1d_v4i16_trap, 84484}, // __nvvm_sust_p_1d_v4i16_trap
-      {Intrinsic::nvvm_sust_p_1d_v4i32_trap, 84512}, // __nvvm_sust_p_1d_v4i32_trap
-      {Intrinsic::nvvm_sust_p_1d_v4i8_trap, 84540}, // __nvvm_sust_p_1d_v4i8_trap
-      {Intrinsic::nvvm_sust_p_2d_array_i16_trap, 84567}, // __nvvm_sust_p_2d_array_i16_trap
-      {Intrinsic::nvvm_sust_p_2d_array_i32_trap, 84599}, // __nvvm_sust_p_2d_array_i32_trap
-      {Intrinsic::nvvm_sust_p_2d_array_i8_trap, 84631}, // __nvvm_sust_p_2d_array_i8_trap
-      {Intrinsic::nvvm_sust_p_2d_array_v2i16_trap, 84662}, // __nvvm_sust_p_2d_array_v2i16_trap
-      {Intrinsic::nvvm_sust_p_2d_array_v2i32_trap, 84696}, // __nvvm_sust_p_2d_array_v2i32_trap
-      {Intrinsic::nvvm_sust_p_2d_array_v2i8_trap, 84730}, // __nvvm_sust_p_2d_array_v2i8_trap
-      {Intrinsic::nvvm_sust_p_2d_array_v4i16_trap, 84763}, // __nvvm_sust_p_2d_array_v4i16_trap
-      {Intrinsic::nvvm_sust_p_2d_array_v4i32_trap, 84797}, // __nvvm_sust_p_2d_array_v4i32_trap
-      {Intrinsic::nvvm_sust_p_2d_array_v4i8_trap, 84831}, // __nvvm_sust_p_2d_array_v4i8_trap
-      {Intrinsic::nvvm_sust_p_2d_i16_trap, 84864}, // __nvvm_sust_p_2d_i16_trap
-      {Intrinsic::nvvm_sust_p_2d_i32_trap, 84890}, // __nvvm_sust_p_2d_i32_trap
-      {Intrinsic::nvvm_sust_p_2d_i8_trap, 84916}, // __nvvm_sust_p_2d_i8_trap
-      {Intrinsic::nvvm_sust_p_2d_v2i16_trap, 84941}, // __nvvm_sust_p_2d_v2i16_trap
-      {Intrinsic::nvvm_sust_p_2d_v2i32_trap, 84969}, // __nvvm_sust_p_2d_v2i32_trap
-      {Intrinsic::nvvm_sust_p_2d_v2i8_trap, 84997}, // __nvvm_sust_p_2d_v2i8_trap
-      {Intrinsic::nvvm_sust_p_2d_v4i16_trap, 85024}, // __nvvm_sust_p_2d_v4i16_trap
-      {Intrinsic::nvvm_sust_p_2d_v4i32_trap, 85052}, // __nvvm_sust_p_2d_v4i32_trap
-      {Intrinsic::nvvm_sust_p_2d_v4i8_trap, 85080}, // __nvvm_sust_p_2d_v4i8_trap
-      {Intrinsic::nvvm_sust_p_3d_i16_trap, 85107}, // __nvvm_sust_p_3d_i16_trap
-      {Intrinsic::nvvm_sust_p_3d_i32_trap, 85133}, // __nvvm_sust_p_3d_i32_trap
-      {Intrinsic::nvvm_sust_p_3d_i8_trap, 85159}, // __nvvm_sust_p_3d_i8_trap
-      {Intrinsic::nvvm_sust_p_3d_v2i16_trap, 85184}, // __nvvm_sust_p_3d_v2i16_trap
-      {Intrinsic::nvvm_sust_p_3d_v2i32_trap, 85212}, // __nvvm_sust_p_3d_v2i32_trap
-      {Intrinsic::nvvm_sust_p_3d_v2i8_trap, 85240}, // __nvvm_sust_p_3d_v2i8_trap
-      {Intrinsic::nvvm_sust_p_3d_v4i16_trap, 85267}, // __nvvm_sust_p_3d_v4i16_trap
-      {Intrinsic::nvvm_sust_p_3d_v4i32_trap, 85295}, // __nvvm_sust_p_3d_v4i32_trap
-      {Intrinsic::nvvm_sust_p_3d_v4i8_trap, 85323}, // __nvvm_sust_p_3d_v4i8_trap
-      {Intrinsic::nvvm_swap_lo_hi_b64, 85350}, // __nvvm_swap_lo_hi_b64
-      {Intrinsic::nvvm_trunc_d, 85372}, // __nvvm_trunc_d
-      {Intrinsic::nvvm_trunc_f, 85387}, // __nvvm_trunc_f
-      {Intrinsic::nvvm_trunc_ftz_f, 85402}, // __nvvm_trunc_ftz_f
-      {Intrinsic::nvvm_txq_array_size, 85421}, // __nvvm_txq_array_size
-      {Intrinsic::nvvm_txq_channel_data_type, 85443}, // __nvvm_txq_channel_data_type
-      {Intrinsic::nvvm_txq_channel_order, 85472}, // __nvvm_txq_channel_order
-      {Intrinsic::nvvm_txq_depth, 85497}, // __nvvm_txq_depth
-      {Intrinsic::nvvm_txq_height, 85514}, // __nvvm_txq_height
-      {Intrinsic::nvvm_txq_num_mipmap_levels, 85532}, // __nvvm_txq_num_mipmap_levels
-      {Intrinsic::nvvm_txq_num_samples, 85561}, // __nvvm_txq_num_samples
-      {Intrinsic::nvvm_txq_width, 85584}, // __nvvm_txq_width
-      {Intrinsic::nvvm_ui2d_rm, 85601}, // __nvvm_ui2d_rm
-      {Intrinsic::nvvm_ui2d_rn, 85616}, // __nvvm_ui2d_rn
-      {Intrinsic::nvvm_ui2d_rp, 85631}, // __nvvm_ui2d_rp
-      {Intrinsic::nvvm_ui2d_rz, 85646}, // __nvvm_ui2d_rz
-      {Intrinsic::nvvm_ui2f_rm, 85661}, // __nvvm_ui2f_rm
-      {Intrinsic::nvvm_ui2f_rn, 85676}, // __nvvm_ui2f_rn
-      {Intrinsic::nvvm_ui2f_rp, 85691}, // __nvvm_ui2f_rp
-      {Intrinsic::nvvm_ui2f_rz, 85706}, // __nvvm_ui2f_rz
-      {Intrinsic::nvvm_ull2d_rm, 85721}, // __nvvm_ull2d_rm
-      {Intrinsic::nvvm_ull2d_rn, 85737}, // __nvvm_ull2d_rn
-      {Intrinsic::nvvm_ull2d_rp, 85753}, // __nvvm_ull2d_rp
-      {Intrinsic::nvvm_ull2d_rz, 85769}, // __nvvm_ull2d_rz
-      {Intrinsic::nvvm_ull2f_rm, 85785}, // __nvvm_ull2f_rm
-      {Intrinsic::nvvm_ull2f_rn, 85801}, // __nvvm_ull2f_rn
-      {Intrinsic::nvvm_ull2f_rp, 85817}, // __nvvm_ull2f_rp
-      {Intrinsic::nvvm_ull2f_rz, 85833}, // __nvvm_ull2f_rz
-      {Intrinsic::nvvm_vote_all, 85849}, // __nvvm_vote_all
-      {Intrinsic::nvvm_vote_all_sync, 85865}, // __nvvm_vote_all_sync
-      {Intrinsic::nvvm_vote_any, 85886}, // __nvvm_vote_any
-      {Intrinsic::nvvm_vote_any_sync, 85902}, // __nvvm_vote_any_sync
-      {Intrinsic::nvvm_vote_ballot, 85923}, // __nvvm_vote_ballot
-      {Intrinsic::nvvm_vote_ballot_sync, 85942}, // __nvvm_vote_ballot_sync
-      {Intrinsic::nvvm_vote_uni, 85966}, // __nvvm_vote_uni
-      {Intrinsic::nvvm_vote_uni_sync, 85982}, // __nvvm_vote_uni_sync
-      {Intrinsic::nvvm_barrier0, 73071}, // __syncthreads
-    };
-    auto I = std::lower_bound(std::begin(nvvmNames),
-                              std::end(nvvmNames),
-                              BuiltinNameStr);
-    if (I != std::end(nvvmNames) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "ppc") {
-    static const BuiltinEntry ppcNames[] = {
-      {Intrinsic::ppc_altivec_crypto_vcipher, 86003}, // __builtin_altivec_crypto_vcipher
-      {Intrinsic::ppc_altivec_crypto_vcipherlast, 86036}, // __builtin_altivec_crypto_vcipherlast
-      {Intrinsic::ppc_altivec_crypto_vncipher, 86073}, // __builtin_altivec_crypto_vncipher
-      {Intrinsic::ppc_altivec_crypto_vncipherlast, 86107}, // __builtin_altivec_crypto_vncipherlast
-      {Intrinsic::ppc_altivec_crypto_vpermxor, 86145}, // __builtin_altivec_crypto_vpermxor
-      {Intrinsic::ppc_altivec_crypto_vpmsumb, 86179}, // __builtin_altivec_crypto_vpmsumb
-      {Intrinsic::ppc_altivec_crypto_vpmsumd, 86212}, // __builtin_altivec_crypto_vpmsumd
-      {Intrinsic::ppc_altivec_crypto_vpmsumh, 86245}, // __builtin_altivec_crypto_vpmsumh
-      {Intrinsic::ppc_altivec_crypto_vpmsumw, 86278}, // __builtin_altivec_crypto_vpmsumw
-      {Intrinsic::ppc_altivec_crypto_vsbox, 86311}, // __builtin_altivec_crypto_vsbox
-      {Intrinsic::ppc_altivec_crypto_vshasigmad, 86342}, // __builtin_altivec_crypto_vshasigmad
-      {Intrinsic::ppc_altivec_crypto_vshasigmaw, 86378}, // __builtin_altivec_crypto_vshasigmaw
-      {Intrinsic::ppc_altivec_dss, 86414}, // __builtin_altivec_dss
-      {Intrinsic::ppc_altivec_dssall, 86436}, // __builtin_altivec_dssall
-      {Intrinsic::ppc_altivec_dst, 86461}, // __builtin_altivec_dst
-      {Intrinsic::ppc_altivec_dstst, 86483}, // __builtin_altivec_dstst
-      {Intrinsic::ppc_altivec_dststt, 86507}, // __builtin_altivec_dststt
-      {Intrinsic::ppc_altivec_dstt, 86532}, // __builtin_altivec_dstt
-      {Intrinsic::ppc_altivec_mfvscr, 86555}, // __builtin_altivec_mfvscr
-      {Intrinsic::ppc_altivec_mtvscr, 86580}, // __builtin_altivec_mtvscr
-      {Intrinsic::ppc_altivec_vabsdub, 86605}, // __builtin_altivec_vabsdub
-      {Intrinsic::ppc_altivec_vabsduh, 86631}, // __builtin_altivec_vabsduh
-      {Intrinsic::ppc_altivec_vabsduw, 86657}, // __builtin_altivec_vabsduw
-      {Intrinsic::ppc_altivec_vaddcuq, 86683}, // __builtin_altivec_vaddcuq
-      {Intrinsic::ppc_altivec_vaddcuw, 86709}, // __builtin_altivec_vaddcuw
-      {Intrinsic::ppc_altivec_vaddecuq, 86735}, // __builtin_altivec_vaddecuq
-      {Intrinsic::ppc_altivec_vaddeuqm, 86762}, // __builtin_altivec_vaddeuqm
-      {Intrinsic::ppc_altivec_vaddsbs, 86789}, // __builtin_altivec_vaddsbs
-      {Intrinsic::ppc_altivec_vaddshs, 86815}, // __builtin_altivec_vaddshs
-      {Intrinsic::ppc_altivec_vaddsws, 86841}, // __builtin_altivec_vaddsws
-      {Intrinsic::ppc_altivec_vaddubs, 86867}, // __builtin_altivec_vaddubs
-      {Intrinsic::ppc_altivec_vadduhs, 86893}, // __builtin_altivec_vadduhs
-      {Intrinsic::ppc_altivec_vadduws, 86919}, // __builtin_altivec_vadduws
-      {Intrinsic::ppc_altivec_vavgsb, 86945}, // __builtin_altivec_vavgsb
-      {Intrinsic::ppc_altivec_vavgsh, 86970}, // __builtin_altivec_vavgsh
-      {Intrinsic::ppc_altivec_vavgsw, 86995}, // __builtin_altivec_vavgsw
-      {Intrinsic::ppc_altivec_vavgub, 87020}, // __builtin_altivec_vavgub
-      {Intrinsic::ppc_altivec_vavguh, 87045}, // __builtin_altivec_vavguh
-      {Intrinsic::ppc_altivec_vavguw, 87070}, // __builtin_altivec_vavguw
-      {Intrinsic::ppc_altivec_vbpermq, 87095}, // __builtin_altivec_vbpermq
-      {Intrinsic::ppc_altivec_vcfsx, 87121}, // __builtin_altivec_vcfsx
-      {Intrinsic::ppc_altivec_vcfux, 87145}, // __builtin_altivec_vcfux
-      {Intrinsic::ppc_altivec_vclzlsbb, 87169}, // __builtin_altivec_vclzlsbb
-      {Intrinsic::ppc_altivec_vcmpbfp, 87196}, // __builtin_altivec_vcmpbfp
-      {Intrinsic::ppc_altivec_vcmpbfp_p, 87222}, // __builtin_altivec_vcmpbfp_p
-      {Intrinsic::ppc_altivec_vcmpeqfp, 87250}, // __builtin_altivec_vcmpeqfp
-      {Intrinsic::ppc_altivec_vcmpeqfp_p, 87277}, // __builtin_altivec_vcmpeqfp_p
-      {Intrinsic::ppc_altivec_vcmpequb, 87306}, // __builtin_altivec_vcmpequb
-      {Intrinsic::ppc_altivec_vcmpequb_p, 87333}, // __builtin_altivec_vcmpequb_p
-      {Intrinsic::ppc_altivec_vcmpequd, 87362}, // __builtin_altivec_vcmpequd
-      {Intrinsic::ppc_altivec_vcmpequd_p, 87389}, // __builtin_altivec_vcmpequd_p
-      {Intrinsic::ppc_altivec_vcmpequh, 87418}, // __builtin_altivec_vcmpequh
-      {Intrinsic::ppc_altivec_vcmpequh_p, 87445}, // __builtin_altivec_vcmpequh_p
-      {Intrinsic::ppc_altivec_vcmpequw, 87474}, // __builtin_altivec_vcmpequw
-      {Intrinsic::ppc_altivec_vcmpequw_p, 87501}, // __builtin_altivec_vcmpequw_p
-      {Intrinsic::ppc_altivec_vcmpgefp, 87530}, // __builtin_altivec_vcmpgefp
-      {Intrinsic::ppc_altivec_vcmpgefp_p, 87557}, // __builtin_altivec_vcmpgefp_p
-      {Intrinsic::ppc_altivec_vcmpgtfp, 87586}, // __builtin_altivec_vcmpgtfp
-      {Intrinsic::ppc_altivec_vcmpgtfp_p, 87613}, // __builtin_altivec_vcmpgtfp_p
-      {Intrinsic::ppc_altivec_vcmpgtsb, 87642}, // __builtin_altivec_vcmpgtsb
-      {Intrinsic::ppc_altivec_vcmpgtsb_p, 87669}, // __builtin_altivec_vcmpgtsb_p
-      {Intrinsic::ppc_altivec_vcmpgtsd, 87698}, // __builtin_altivec_vcmpgtsd
-      {Intrinsic::ppc_altivec_vcmpgtsd_p, 87725}, // __builtin_altivec_vcmpgtsd_p
-      {Intrinsic::ppc_altivec_vcmpgtsh, 87754}, // __builtin_altivec_vcmpgtsh
-      {Intrinsic::ppc_altivec_vcmpgtsh_p, 87781}, // __builtin_altivec_vcmpgtsh_p
-      {Intrinsic::ppc_altivec_vcmpgtsw, 87810}, // __builtin_altivec_vcmpgtsw
-      {Intrinsic::ppc_altivec_vcmpgtsw_p, 87837}, // __builtin_altivec_vcmpgtsw_p
-      {Intrinsic::ppc_altivec_vcmpgtub, 87866}, // __builtin_altivec_vcmpgtub
-      {Intrinsic::ppc_altivec_vcmpgtub_p, 87893}, // __builtin_altivec_vcmpgtub_p
-      {Intrinsic::ppc_altivec_vcmpgtud, 87922}, // __builtin_altivec_vcmpgtud
-      {Intrinsic::ppc_altivec_vcmpgtud_p, 87949}, // __builtin_altivec_vcmpgtud_p
-      {Intrinsic::ppc_altivec_vcmpgtuh, 87978}, // __builtin_altivec_vcmpgtuh
-      {Intrinsic::ppc_altivec_vcmpgtuh_p, 88005}, // __builtin_altivec_vcmpgtuh_p
-      {Intrinsic::ppc_altivec_vcmpgtuw, 88034}, // __builtin_altivec_vcmpgtuw
-      {Intrinsic::ppc_altivec_vcmpgtuw_p, 88061}, // __builtin_altivec_vcmpgtuw_p
-      {Intrinsic::ppc_altivec_vcmpneb, 88090}, // __builtin_altivec_vcmpneb
-      {Intrinsic::ppc_altivec_vcmpneb_p, 88116}, // __builtin_altivec_vcmpneb_p
-      {Intrinsic::ppc_altivec_vcmpneh, 88144}, // __builtin_altivec_vcmpneh
-      {Intrinsic::ppc_altivec_vcmpneh_p, 88170}, // __builtin_altivec_vcmpneh_p
-      {Intrinsic::ppc_altivec_vcmpnew, 88198}, // __builtin_altivec_vcmpnew
-      {Intrinsic::ppc_altivec_vcmpnew_p, 88224}, // __builtin_altivec_vcmpnew_p
-      {Intrinsic::ppc_altivec_vcmpnezb, 88252}, // __builtin_altivec_vcmpnezb
-      {Intrinsic::ppc_altivec_vcmpnezb_p, 88279}, // __builtin_altivec_vcmpnezb_p
-      {Intrinsic::ppc_altivec_vcmpnezh, 88308}, // __builtin_altivec_vcmpnezh
-      {Intrinsic::ppc_altivec_vcmpnezh_p, 88335}, // __builtin_altivec_vcmpnezh_p
-      {Intrinsic::ppc_altivec_vcmpnezw, 88364}, // __builtin_altivec_vcmpnezw
-      {Intrinsic::ppc_altivec_vcmpnezw_p, 88391}, // __builtin_altivec_vcmpnezw_p
-      {Intrinsic::ppc_altivec_vctsxs, 88420}, // __builtin_altivec_vctsxs
-      {Intrinsic::ppc_altivec_vctuxs, 88445}, // __builtin_altivec_vctuxs
-      {Intrinsic::ppc_altivec_vctzlsbb, 88470}, // __builtin_altivec_vctzlsbb
-      {Intrinsic::ppc_altivec_vexptefp, 88497}, // __builtin_altivec_vexptefp
-      {Intrinsic::ppc_altivec_vgbbd, 88524}, // __builtin_altivec_vgbbd
-      {Intrinsic::ppc_altivec_vlogefp, 88548}, // __builtin_altivec_vlogefp
-      {Intrinsic::ppc_altivec_vmaddfp, 88574}, // __builtin_altivec_vmaddfp
-      {Intrinsic::ppc_altivec_vmaxfp, 88600}, // __builtin_altivec_vmaxfp
-      {Intrinsic::ppc_altivec_vmaxsb, 88625}, // __builtin_altivec_vmaxsb
-      {Intrinsic::ppc_altivec_vmaxsd, 88650}, // __builtin_altivec_vmaxsd
-      {Intrinsic::ppc_altivec_vmaxsh, 88675}, // __builtin_altivec_vmaxsh
-      {Intrinsic::ppc_altivec_vmaxsw, 88700}, // __builtin_altivec_vmaxsw
-      {Intrinsic::ppc_altivec_vmaxub, 88725}, // __builtin_altivec_vmaxub
-      {Intrinsic::ppc_altivec_vmaxud, 88750}, // __builtin_altivec_vmaxud
-      {Intrinsic::ppc_altivec_vmaxuh, 88775}, // __builtin_altivec_vmaxuh
-      {Intrinsic::ppc_altivec_vmaxuw, 88800}, // __builtin_altivec_vmaxuw
-      {Intrinsic::ppc_altivec_vmhaddshs, 88825}, // __builtin_altivec_vmhaddshs
-      {Intrinsic::ppc_altivec_vmhraddshs, 88853}, // __builtin_altivec_vmhraddshs
-      {Intrinsic::ppc_altivec_vminfp, 88882}, // __builtin_altivec_vminfp
-      {Intrinsic::ppc_altivec_vminsb, 88907}, // __builtin_altivec_vminsb
-      {Intrinsic::ppc_altivec_vminsd, 88932}, // __builtin_altivec_vminsd
-      {Intrinsic::ppc_altivec_vminsh, 88957}, // __builtin_altivec_vminsh
-      {Intrinsic::ppc_altivec_vminsw, 88982}, // __builtin_altivec_vminsw
-      {Intrinsic::ppc_altivec_vminub, 89007}, // __builtin_altivec_vminub
-      {Intrinsic::ppc_altivec_vminud, 89032}, // __builtin_altivec_vminud
-      {Intrinsic::ppc_altivec_vminuh, 89057}, // __builtin_altivec_vminuh
-      {Intrinsic::ppc_altivec_vminuw, 89082}, // __builtin_altivec_vminuw
-      {Intrinsic::ppc_altivec_vmladduhm, 89107}, // __builtin_altivec_vmladduhm
-      {Intrinsic::ppc_altivec_vmsummbm, 89135}, // __builtin_altivec_vmsummbm
-      {Intrinsic::ppc_altivec_vmsumshm, 89162}, // __builtin_altivec_vmsumshm
-      {Intrinsic::ppc_altivec_vmsumshs, 89189}, // __builtin_altivec_vmsumshs
-      {Intrinsic::ppc_altivec_vmsumubm, 89216}, // __builtin_altivec_vmsumubm
-      {Intrinsic::ppc_altivec_vmsumuhm, 89243}, // __builtin_altivec_vmsumuhm
-      {Intrinsic::ppc_altivec_vmsumuhs, 89270}, // __builtin_altivec_vmsumuhs
-      {Intrinsic::ppc_altivec_vmulesb, 89297}, // __builtin_altivec_vmulesb
-      {Intrinsic::ppc_altivec_vmulesh, 89323}, // __builtin_altivec_vmulesh
-      {Intrinsic::ppc_altivec_vmulesw, 89349}, // __builtin_altivec_vmulesw
-      {Intrinsic::ppc_altivec_vmuleub, 89375}, // __builtin_altivec_vmuleub
-      {Intrinsic::ppc_altivec_vmuleuh, 89401}, // __builtin_altivec_vmuleuh
-      {Intrinsic::ppc_altivec_vmuleuw, 89427}, // __builtin_altivec_vmuleuw
-      {Intrinsic::ppc_altivec_vmulosb, 89453}, // __builtin_altivec_vmulosb
-      {Intrinsic::ppc_altivec_vmulosh, 89479}, // __builtin_altivec_vmulosh
-      {Intrinsic::ppc_altivec_vmulosw, 89505}, // __builtin_altivec_vmulosw
-      {Intrinsic::ppc_altivec_vmuloub, 89531}, // __builtin_altivec_vmuloub
-      {Intrinsic::ppc_altivec_vmulouh, 89557}, // __builtin_altivec_vmulouh
-      {Intrinsic::ppc_altivec_vmulouw, 89583}, // __builtin_altivec_vmulouw
-      {Intrinsic::ppc_altivec_vnmsubfp, 89609}, // __builtin_altivec_vnmsubfp
-      {Intrinsic::ppc_altivec_vperm, 89636}, // __builtin_altivec_vperm_4si
-      {Intrinsic::ppc_altivec_vpkpx, 89664}, // __builtin_altivec_vpkpx
-      {Intrinsic::ppc_altivec_vpksdss, 89688}, // __builtin_altivec_vpksdss
-      {Intrinsic::ppc_altivec_vpksdus, 89714}, // __builtin_altivec_vpksdus
-      {Intrinsic::ppc_altivec_vpkshss, 89740}, // __builtin_altivec_vpkshss
-      {Intrinsic::ppc_altivec_vpkshus, 89766}, // __builtin_altivec_vpkshus
-      {Intrinsic::ppc_altivec_vpkswss, 89792}, // __builtin_altivec_vpkswss
-      {Intrinsic::ppc_altivec_vpkswus, 89818}, // __builtin_altivec_vpkswus
-      {Intrinsic::ppc_altivec_vpkudus, 89844}, // __builtin_altivec_vpkudus
-      {Intrinsic::ppc_altivec_vpkuhus, 89870}, // __builtin_altivec_vpkuhus
-      {Intrinsic::ppc_altivec_vpkuwus, 89896}, // __builtin_altivec_vpkuwus
-      {Intrinsic::ppc_altivec_vprtybd, 89922}, // __builtin_altivec_vprtybd
-      {Intrinsic::ppc_altivec_vprtybq, 89948}, // __builtin_altivec_vprtybq
-      {Intrinsic::ppc_altivec_vprtybw, 89974}, // __builtin_altivec_vprtybw
-      {Intrinsic::ppc_altivec_vrefp, 90000}, // __builtin_altivec_vrefp
-      {Intrinsic::ppc_altivec_vrfim, 90024}, // __builtin_altivec_vrfim
-      {Intrinsic::ppc_altivec_vrfin, 90048}, // __builtin_altivec_vrfin
-      {Intrinsic::ppc_altivec_vrfip, 90072}, // __builtin_altivec_vrfip
-      {Intrinsic::ppc_altivec_vrfiz, 90096}, // __builtin_altivec_vrfiz
-      {Intrinsic::ppc_altivec_vrlb, 90120}, // __builtin_altivec_vrlb
-      {Intrinsic::ppc_altivec_vrld, 90143}, // __builtin_altivec_vrld
-      {Intrinsic::ppc_altivec_vrldmi, 90166}, // __builtin_altivec_vrldmi
-      {Intrinsic::ppc_altivec_vrldnm, 90191}, // __builtin_altivec_vrldnm
-      {Intrinsic::ppc_altivec_vrlh, 90216}, // __builtin_altivec_vrlh
-      {Intrinsic::ppc_altivec_vrlw, 90239}, // __builtin_altivec_vrlw
-      {Intrinsic::ppc_altivec_vrlwmi, 90262}, // __builtin_altivec_vrlwmi
-      {Intrinsic::ppc_altivec_vrlwnm, 90287}, // __builtin_altivec_vrlwnm
-      {Intrinsic::ppc_altivec_vrsqrtefp, 90312}, // __builtin_altivec_vrsqrtefp
-      {Intrinsic::ppc_altivec_vsel, 90340}, // __builtin_altivec_vsel_4si
-      {Intrinsic::ppc_altivec_vsl, 90367}, // __builtin_altivec_vsl
-      {Intrinsic::ppc_altivec_vslb, 90389}, // __builtin_altivec_vslb
-      {Intrinsic::ppc_altivec_vslh, 90412}, // __builtin_altivec_vslh
-      {Intrinsic::ppc_altivec_vslo, 90435}, // __builtin_altivec_vslo
-      {Intrinsic::ppc_altivec_vslv, 90458}, // __builtin_altivec_vslv
-      {Intrinsic::ppc_altivec_vslw, 90481}, // __builtin_altivec_vslw
-      {Intrinsic::ppc_altivec_vsr, 90504}, // __builtin_altivec_vsr
-      {Intrinsic::ppc_altivec_vsrab, 90526}, // __builtin_altivec_vsrab
-      {Intrinsic::ppc_altivec_vsrah, 90550}, // __builtin_altivec_vsrah
-      {Intrinsic::ppc_altivec_vsraw, 90574}, // __builtin_altivec_vsraw
-      {Intrinsic::ppc_altivec_vsrb, 90598}, // __builtin_altivec_vsrb
-      {Intrinsic::ppc_altivec_vsrh, 90621}, // __builtin_altivec_vsrh
-      {Intrinsic::ppc_altivec_vsro, 90644}, // __builtin_altivec_vsro
-      {Intrinsic::ppc_altivec_vsrv, 90667}, // __builtin_altivec_vsrv
-      {Intrinsic::ppc_altivec_vsrw, 90690}, // __builtin_altivec_vsrw
-      {Intrinsic::ppc_altivec_vsubcuq, 90713}, // __builtin_altivec_vsubcuq
-      {Intrinsic::ppc_altivec_vsubcuw, 90739}, // __builtin_altivec_vsubcuw
-      {Intrinsic::ppc_altivec_vsubecuq, 90765}, // __builtin_altivec_vsubecuq
-      {Intrinsic::ppc_altivec_vsubeuqm, 90792}, // __builtin_altivec_vsubeuqm
-      {Intrinsic::ppc_altivec_vsubsbs, 90819}, // __builtin_altivec_vsubsbs
-      {Intrinsic::ppc_altivec_vsubshs, 90845}, // __builtin_altivec_vsubshs
-      {Intrinsic::ppc_altivec_vsubsws, 90871}, // __builtin_altivec_vsubsws
-      {Intrinsic::ppc_altivec_vsububs, 90897}, // __builtin_altivec_vsububs
-      {Intrinsic::ppc_altivec_vsubuhs, 90923}, // __builtin_altivec_vsubuhs
-      {Intrinsic::ppc_altivec_vsubuws, 90949}, // __builtin_altivec_vsubuws
-      {Intrinsic::ppc_altivec_vsum2sws, 90975}, // __builtin_altivec_vsum2sws
-      {Intrinsic::ppc_altivec_vsum4sbs, 91002}, // __builtin_altivec_vsum4sbs
-      {Intrinsic::ppc_altivec_vsum4shs, 91029}, // __builtin_altivec_vsum4shs
-      {Intrinsic::ppc_altivec_vsum4ubs, 91056}, // __builtin_altivec_vsum4ubs
-      {Intrinsic::ppc_altivec_vsumsws, 91083}, // __builtin_altivec_vsumsws
-      {Intrinsic::ppc_altivec_vupkhpx, 91109}, // __builtin_altivec_vupkhpx
-      {Intrinsic::ppc_altivec_vupkhsb, 91135}, // __builtin_altivec_vupkhsb
-      {Intrinsic::ppc_altivec_vupkhsh, 91161}, // __builtin_altivec_vupkhsh
-      {Intrinsic::ppc_altivec_vupkhsw, 91187}, // __builtin_altivec_vupkhsw
-      {Intrinsic::ppc_altivec_vupklpx, 91213}, // __builtin_altivec_vupklpx
-      {Intrinsic::ppc_altivec_vupklsb, 91239}, // __builtin_altivec_vupklsb
-      {Intrinsic::ppc_altivec_vupklsh, 91265}, // __builtin_altivec_vupklsh
-      {Intrinsic::ppc_altivec_vupklsw, 91291}, // __builtin_altivec_vupklsw
-      {Intrinsic::ppc_bpermd, 91317}, // __builtin_bpermd
-      {Intrinsic::ppc_divde, 91334}, // __builtin_divde
-      {Intrinsic::ppc_divdeu, 91350}, // __builtin_divdeu
-      {Intrinsic::ppc_divwe, 91367}, // __builtin_divwe
-      {Intrinsic::ppc_divweu, 91383}, // __builtin_divweu
-      {Intrinsic::ppc_get_texasr, 91400}, // __builtin_get_texasr
-      {Intrinsic::ppc_get_texasru, 91421}, // __builtin_get_texasru
-      {Intrinsic::ppc_get_tfhar, 91443}, // __builtin_get_tfhar
-      {Intrinsic::ppc_get_tfiar, 91463}, // __builtin_get_tfiar
-      {Intrinsic::ppc_qpx_qvfabs, 91483}, // __builtin_qpx_qvfabs
-      {Intrinsic::ppc_qpx_qvfadd, 91504}, // __builtin_qpx_qvfadd
-      {Intrinsic::ppc_qpx_qvfadds, 91525}, // __builtin_qpx_qvfadds
-      {Intrinsic::ppc_qpx_qvfcfid, 91547}, // __builtin_qpx_qvfcfid
-      {Intrinsic::ppc_qpx_qvfcfids, 91569}, // __builtin_qpx_qvfcfids
-      {Intrinsic::ppc_qpx_qvfcfidu, 91592}, // __builtin_qpx_qvfcfidu
-      {Intrinsic::ppc_qpx_qvfcfidus, 91615}, // __builtin_qpx_qvfcfidus
-      {Intrinsic::ppc_qpx_qvfcmpeq, 91639}, // __builtin_qpx_qvfcmpeq
-      {Intrinsic::ppc_qpx_qvfcmpgt, 91662}, // __builtin_qpx_qvfcmpgt
-      {Intrinsic::ppc_qpx_qvfcmplt, 91685}, // __builtin_qpx_qvfcmplt
-      {Intrinsic::ppc_qpx_qvfcpsgn, 91708}, // __builtin_qpx_qvfcpsgn
-      {Intrinsic::ppc_qpx_qvfctid, 91731}, // __builtin_qpx_qvfctid
-      {Intrinsic::ppc_qpx_qvfctidu, 91753}, // __builtin_qpx_qvfctidu
-      {Intrinsic::ppc_qpx_qvfctiduz, 91776}, // __builtin_qpx_qvfctiduz
-      {Intrinsic::ppc_qpx_qvfctidz, 91800}, // __builtin_qpx_qvfctidz
-      {Intrinsic::ppc_qpx_qvfctiw, 91823}, // __builtin_qpx_qvfctiw
-      {Intrinsic::ppc_qpx_qvfctiwu, 91845}, // __builtin_qpx_qvfctiwu
-      {Intrinsic::ppc_qpx_qvfctiwuz, 91868}, // __builtin_qpx_qvfctiwuz
-      {Intrinsic::ppc_qpx_qvfctiwz, 91892}, // __builtin_qpx_qvfctiwz
-      {Intrinsic::ppc_qpx_qvflogical, 91915}, // __builtin_qpx_qvflogical
-      {Intrinsic::ppc_qpx_qvfmadd, 91940}, // __builtin_qpx_qvfmadd
-      {Intrinsic::ppc_qpx_qvfmadds, 91962}, // __builtin_qpx_qvfmadds
-      {Intrinsic::ppc_qpx_qvfmsub, 91985}, // __builtin_qpx_qvfmsub
-      {Intrinsic::ppc_qpx_qvfmsubs, 92007}, // __builtin_qpx_qvfmsubs
-      {Intrinsic::ppc_qpx_qvfmul, 92030}, // __builtin_qpx_qvfmul
-      {Intrinsic::ppc_qpx_qvfmuls, 92051}, // __builtin_qpx_qvfmuls
-      {Intrinsic::ppc_qpx_qvfnabs, 92073}, // __builtin_qpx_qvfnabs
-      {Intrinsic::ppc_qpx_qvfneg, 92095}, // __builtin_qpx_qvfneg
-      {Intrinsic::ppc_qpx_qvfnmadd, 92116}, // __builtin_qpx_qvfnmadd
-      {Intrinsic::ppc_qpx_qvfnmadds, 92139}, // __builtin_qpx_qvfnmadds
-      {Intrinsic::ppc_qpx_qvfnmsub, 92163}, // __builtin_qpx_qvfnmsub
-      {Intrinsic::ppc_qpx_qvfnmsubs, 92186}, // __builtin_qpx_qvfnmsubs
-      {Intrinsic::ppc_qpx_qvfperm, 92210}, // __builtin_qpx_qvfperm
-      {Intrinsic::ppc_qpx_qvfre, 92232}, // __builtin_qpx_qvfre
-      {Intrinsic::ppc_qpx_qvfres, 92252}, // __builtin_qpx_qvfres
-      {Intrinsic::ppc_qpx_qvfrim, 92273}, // __builtin_qpx_qvfrim
-      {Intrinsic::ppc_qpx_qvfrin, 92294}, // __builtin_qpx_qvfrin
-      {Intrinsic::ppc_qpx_qvfrip, 92315}, // __builtin_qpx_qvfrip
-      {Intrinsic::ppc_qpx_qvfriz, 92336}, // __builtin_qpx_qvfriz
-      {Intrinsic::ppc_qpx_qvfrsp, 92357}, // __builtin_qpx_qvfrsp
-      {Intrinsic::ppc_qpx_qvfrsqrte, 92378}, // __builtin_qpx_qvfrsqrte
-      {Intrinsic::ppc_qpx_qvfrsqrtes, 92402}, // __builtin_qpx_qvfrsqrtes
-      {Intrinsic::ppc_qpx_qvfsel, 92427}, // __builtin_qpx_qvfsel
-      {Intrinsic::ppc_qpx_qvfsub, 92448}, // __builtin_qpx_qvfsub
-      {Intrinsic::ppc_qpx_qvfsubs, 92469}, // __builtin_qpx_qvfsubs
-      {Intrinsic::ppc_qpx_qvftstnan, 92491}, // __builtin_qpx_qvftstnan
-      {Intrinsic::ppc_qpx_qvfxmadd, 92515}, // __builtin_qpx_qvfxmadd
-      {Intrinsic::ppc_qpx_qvfxmadds, 92538}, // __builtin_qpx_qvfxmadds
-      {Intrinsic::ppc_qpx_qvfxmul, 92562}, // __builtin_qpx_qvfxmul
-      {Intrinsic::ppc_qpx_qvfxmuls, 92584}, // __builtin_qpx_qvfxmuls
-      {Intrinsic::ppc_qpx_qvfxxcpnmadd, 92607}, // __builtin_qpx_qvfxxcpnmadd
-      {Intrinsic::ppc_qpx_qvfxxcpnmadds, 92634}, // __builtin_qpx_qvfxxcpnmadds
-      {Intrinsic::ppc_qpx_qvfxxmadd, 92662}, // __builtin_qpx_qvfxxmadd
-      {Intrinsic::ppc_qpx_qvfxxmadds, 92686}, // __builtin_qpx_qvfxxmadds
-      {Intrinsic::ppc_qpx_qvfxxnpmadd, 92711}, // __builtin_qpx_qvfxxnpmadd
-      {Intrinsic::ppc_qpx_qvfxxnpmadds, 92737}, // __builtin_qpx_qvfxxnpmadds
-      {Intrinsic::ppc_qpx_qvgpci, 92764}, // __builtin_qpx_qvgpci
-      {Intrinsic::ppc_qpx_qvlfcd, 92785}, // __builtin_qpx_qvlfcd
-      {Intrinsic::ppc_qpx_qvlfcda, 92806}, // __builtin_qpx_qvlfcda
-      {Intrinsic::ppc_qpx_qvlfcs, 92828}, // __builtin_qpx_qvlfcs
-      {Intrinsic::ppc_qpx_qvlfcsa, 92849}, // __builtin_qpx_qvlfcsa
-      {Intrinsic::ppc_qpx_qvlfd, 92871}, // __builtin_qpx_qvlfd
-      {Intrinsic::ppc_qpx_qvlfda, 92891}, // __builtin_qpx_qvlfda
-      {Intrinsic::ppc_qpx_qvlfiwa, 92912}, // __builtin_qpx_qvlfiwa
-      {Intrinsic::ppc_qpx_qvlfiwaa, 92934}, // __builtin_qpx_qvlfiwaa
-      {Intrinsic::ppc_qpx_qvlfiwz, 92957}, // __builtin_qpx_qvlfiwz
-      {Intrinsic::ppc_qpx_qvlfiwza, 92979}, // __builtin_qpx_qvlfiwza
-      {Intrinsic::ppc_qpx_qvlfs, 93002}, // __builtin_qpx_qvlfs
-      {Intrinsic::ppc_qpx_qvlfsa, 93022}, // __builtin_qpx_qvlfsa
-      {Intrinsic::ppc_qpx_qvlpcld, 93043}, // __builtin_qpx_qvlpcld
-      {Intrinsic::ppc_qpx_qvlpcls, 93065}, // __builtin_qpx_qvlpcls
-      {Intrinsic::ppc_qpx_qvlpcrd, 93087}, // __builtin_qpx_qvlpcrd
-      {Intrinsic::ppc_qpx_qvlpcrs, 93109}, // __builtin_qpx_qvlpcrs
-      {Intrinsic::ppc_qpx_qvstfcd, 93131}, // __builtin_qpx_qvstfcd
-      {Intrinsic::ppc_qpx_qvstfcda, 93153}, // __builtin_qpx_qvstfcda
-      {Intrinsic::ppc_qpx_qvstfcs, 93176}, // __builtin_qpx_qvstfcs
-      {Intrinsic::ppc_qpx_qvstfcsa, 93198}, // __builtin_qpx_qvstfcsa
-      {Intrinsic::ppc_qpx_qvstfd, 93221}, // __builtin_qpx_qvstfd
-      {Intrinsic::ppc_qpx_qvstfda, 93242}, // __builtin_qpx_qvstfda
-      {Intrinsic::ppc_qpx_qvstfiw, 93264}, // __builtin_qpx_qvstfiw
-      {Intrinsic::ppc_qpx_qvstfiwa, 93286}, // __builtin_qpx_qvstfiwa
-      {Intrinsic::ppc_qpx_qvstfs, 93309}, // __builtin_qpx_qvstfs
-      {Intrinsic::ppc_qpx_qvstfsa, 93330}, // __builtin_qpx_qvstfsa
-      {Intrinsic::ppc_set_texasr, 93352}, // __builtin_set_texasr
-      {Intrinsic::ppc_set_texasru, 93373}, // __builtin_set_texasru
-      {Intrinsic::ppc_set_tfhar, 93395}, // __builtin_set_tfhar
-      {Intrinsic::ppc_set_tfiar, 93415}, // __builtin_set_tfiar
-      {Intrinsic::ppc_tabort, 93435}, // __builtin_tabort
-      {Intrinsic::ppc_tabortdc, 93452}, // __builtin_tabortdc
-      {Intrinsic::ppc_tabortdci, 93471}, // __builtin_tabortdci
-      {Intrinsic::ppc_tabortwc, 93491}, // __builtin_tabortwc
-      {Intrinsic::ppc_tabortwci, 93510}, // __builtin_tabortwci
-      {Intrinsic::ppc_tbegin, 93530}, // __builtin_tbegin
-      {Intrinsic::ppc_tcheck, 93547}, // __builtin_tcheck
-      {Intrinsic::ppc_tend, 93564}, // __builtin_tend
-      {Intrinsic::ppc_tendall, 93579}, // __builtin_tendall
-      {Intrinsic::ppc_trechkpt, 93597}, // __builtin_trechkpt
-      {Intrinsic::ppc_treclaim, 93616}, // __builtin_treclaim
-      {Intrinsic::ppc_tresume, 93635}, // __builtin_tresume
-      {Intrinsic::ppc_tsr, 93653}, // __builtin_tsr
-      {Intrinsic::ppc_tsuspend, 93667}, // __builtin_tsuspend
-      {Intrinsic::ppc_ttest, 93686}, // __builtin_ttest
-      {Intrinsic::ppc_vsx_xsmaxdp, 93702}, // __builtin_vsx_xsmaxdp
-      {Intrinsic::ppc_vsx_xsmindp, 93724}, // __builtin_vsx_xsmindp
-      {Intrinsic::ppc_vsx_xvcmpeqdp, 93746}, // __builtin_vsx_xvcmpeqdp
-      {Intrinsic::ppc_vsx_xvcmpeqdp_p, 93770}, // __builtin_vsx_xvcmpeqdp_p
-      {Intrinsic::ppc_vsx_xvcmpeqsp, 93796}, // __builtin_vsx_xvcmpeqsp
-      {Intrinsic::ppc_vsx_xvcmpeqsp_p, 93820}, // __builtin_vsx_xvcmpeqsp_p
-      {Intrinsic::ppc_vsx_xvcmpgedp, 93846}, // __builtin_vsx_xvcmpgedp
-      {Intrinsic::ppc_vsx_xvcmpgedp_p, 93870}, // __builtin_vsx_xvcmpgedp_p
-      {Intrinsic::ppc_vsx_xvcmpgesp, 93896}, // __builtin_vsx_xvcmpgesp
-      {Intrinsic::ppc_vsx_xvcmpgesp_p, 93920}, // __builtin_vsx_xvcmpgesp_p
-      {Intrinsic::ppc_vsx_xvcmpgtdp, 93946}, // __builtin_vsx_xvcmpgtdp
-      {Intrinsic::ppc_vsx_xvcmpgtdp_p, 93970}, // __builtin_vsx_xvcmpgtdp_p
-      {Intrinsic::ppc_vsx_xvcmpgtsp, 93996}, // __builtin_vsx_xvcmpgtsp
-      {Intrinsic::ppc_vsx_xvcmpgtsp_p, 94020}, // __builtin_vsx_xvcmpgtsp_p
-      {Intrinsic::ppc_vsx_xvcvdpsp, 94046}, // __builtin_vsx_xvcvdpsp
-      {Intrinsic::ppc_vsx_xvcvdpsxws, 94069}, // __builtin_vsx_xvcvdpsxws
-      {Intrinsic::ppc_vsx_xvcvdpuxws, 94094}, // __builtin_vsx_xvcvdpuxws
-      {Intrinsic::ppc_vsx_xvcvhpsp, 94119}, // __builtin_vsx_xvcvhpsp
-      {Intrinsic::ppc_vsx_xvcvspdp, 94142}, // __builtin_vsx_xvcvspdp
-      {Intrinsic::ppc_vsx_xvcvsphp, 94165}, // __builtin_vsx_xvcvsphp
-      {Intrinsic::ppc_vsx_xvcvsxdsp, 94188}, // __builtin_vsx_xvcvsxdsp
-      {Intrinsic::ppc_vsx_xvcvsxwdp, 94212}, // __builtin_vsx_xvcvsxwdp
-      {Intrinsic::ppc_vsx_xvcvuxdsp, 94236}, // __builtin_vsx_xvcvuxdsp
-      {Intrinsic::ppc_vsx_xvcvuxwdp, 94260}, // __builtin_vsx_xvcvuxwdp
-      {Intrinsic::ppc_vsx_xvdivdp, 94284}, // __builtin_vsx_xvdivdp
-      {Intrinsic::ppc_vsx_xvdivsp, 94306}, // __builtin_vsx_xvdivsp
-      {Intrinsic::ppc_vsx_xviexpdp, 94328}, // __builtin_vsx_xviexpdp
-      {Intrinsic::ppc_vsx_xviexpsp, 94351}, // __builtin_vsx_xviexpsp
-      {Intrinsic::ppc_vsx_xvmaxdp, 94374}, // __builtin_vsx_xvmaxdp
-      {Intrinsic::ppc_vsx_xvmaxsp, 94396}, // __builtin_vsx_xvmaxsp
-      {Intrinsic::ppc_vsx_xvmindp, 94418}, // __builtin_vsx_xvmindp
-      {Intrinsic::ppc_vsx_xvminsp, 94440}, // __builtin_vsx_xvminsp
-      {Intrinsic::ppc_vsx_xvredp, 94462}, // __builtin_vsx_xvredp
-      {Intrinsic::ppc_vsx_xvresp, 94483}, // __builtin_vsx_xvresp
-      {Intrinsic::ppc_vsx_xvrsqrtedp, 94504}, // __builtin_vsx_xvrsqrtedp
-      {Intrinsic::ppc_vsx_xvrsqrtesp, 94529}, // __builtin_vsx_xvrsqrtesp
-      {Intrinsic::ppc_vsx_xvtstdcdp, 94554}, // __builtin_vsx_xvtstdcdp
-      {Intrinsic::ppc_vsx_xvtstdcsp, 94578}, // __builtin_vsx_xvtstdcsp
-      {Intrinsic::ppc_vsx_xvxexpdp, 94602}, // __builtin_vsx_xvxexpdp
-      {Intrinsic::ppc_vsx_xvxexpsp, 94625}, // __builtin_vsx_xvxexpsp
-      {Intrinsic::ppc_vsx_xvxsigdp, 94648}, // __builtin_vsx_xvxsigdp
-      {Intrinsic::ppc_vsx_xvxsigsp, 94671}, // __builtin_vsx_xvxsigsp
-      {Intrinsic::ppc_vsx_xxextractuw, 94694}, // __builtin_vsx_xxextractuw
-      {Intrinsic::ppc_vsx_xxinsertw, 94720}, // __builtin_vsx_xxinsertw
-      {Intrinsic::ppc_vsx_xxleqv, 94744}, // __builtin_vsx_xxleqv
-    };
-    auto I = std::lower_bound(std::begin(ppcNames),
-                              std::end(ppcNames),
-                              BuiltinNameStr);
-    if (I != std::end(ppcNames) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "r600") {
-    static const BuiltinEntry r600Names[] = {
-      {Intrinsic::r600_group_barrier, 94765}, // __builtin_r600_group_barrier
-      {Intrinsic::r600_implicitarg_ptr, 94794}, // __builtin_r600_implicitarg_ptr
-      {Intrinsic::r600_rat_store_typed, 94825}, // __builtin_r600_rat_store_typed
-      {Intrinsic::r600_read_global_size_x, 94856}, // __builtin_r600_read_global_size_x
-      {Intrinsic::r600_read_global_size_y, 94890}, // __builtin_r600_read_global_size_y
-      {Intrinsic::r600_read_global_size_z, 94924}, // __builtin_r600_read_global_size_z
-      {Intrinsic::r600_read_ngroups_x, 94958}, // __builtin_r600_read_ngroups_x
-      {Intrinsic::r600_read_ngroups_y, 94988}, // __builtin_r600_read_ngroups_y
-      {Intrinsic::r600_read_ngroups_z, 95018}, // __builtin_r600_read_ngroups_z
-      {Intrinsic::r600_read_tgid_x, 95048}, // __builtin_r600_read_tgid_x
-      {Intrinsic::r600_read_tgid_y, 95075}, // __builtin_r600_read_tgid_y
-      {Intrinsic::r600_read_tgid_z, 95102}, // __builtin_r600_read_tgid_z
-    };
-    auto I = std::lower_bound(std::begin(r600Names),
-                              std::end(r600Names),
-                              BuiltinNameStr);
-    if (I != std::end(r600Names) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "s390") {
-    static const BuiltinEntry s390Names[] = {
-      {Intrinsic::s390_efpc, 95129}, // __builtin_s390_efpc
-      {Intrinsic::s390_lcbb, 95176}, // __builtin_s390_lcbb
-      {Intrinsic::s390_sfpc, 95216}, // __builtin_s390_sfpc
-      {Intrinsic::s390_vaccb, 95236}, // __builtin_s390_vaccb
-      {Intrinsic::s390_vacccq, 95257}, // __builtin_s390_vacccq
-      {Intrinsic::s390_vaccf, 95279}, // __builtin_s390_vaccf
-      {Intrinsic::s390_vaccg, 95300}, // __builtin_s390_vaccg
-      {Intrinsic::s390_vacch, 95321}, // __builtin_s390_vacch
-      {Intrinsic::s390_vaccq, 95342}, // __builtin_s390_vaccq
-      {Intrinsic::s390_vacq, 95363}, // __builtin_s390_vacq
-      {Intrinsic::s390_vaq, 95383}, // __builtin_s390_vaq
-      {Intrinsic::s390_vavgb, 95402}, // __builtin_s390_vavgb
-      {Intrinsic::s390_vavgf, 95423}, // __builtin_s390_vavgf
-      {Intrinsic::s390_vavgg, 95444}, // __builtin_s390_vavgg
-      {Intrinsic::s390_vavgh, 95465}, // __builtin_s390_vavgh
-      {Intrinsic::s390_vavglb, 95486}, // __builtin_s390_vavglb
-      {Intrinsic::s390_vavglf, 95508}, // __builtin_s390_vavglf
-      {Intrinsic::s390_vavglg, 95530}, // __builtin_s390_vavglg
-      {Intrinsic::s390_vavglh, 95552}, // __builtin_s390_vavglh
-      {Intrinsic::s390_vbperm, 95574}, // __builtin_s390_vbperm
-      {Intrinsic::s390_vcksm, 95596}, // __builtin_s390_vcksm
-      {Intrinsic::s390_verimb, 95617}, // __builtin_s390_verimb
-      {Intrinsic::s390_verimf, 95639}, // __builtin_s390_verimf
-      {Intrinsic::s390_verimg, 95661}, // __builtin_s390_verimg
-      {Intrinsic::s390_verimh, 95683}, // __builtin_s390_verimh
-      {Intrinsic::s390_verllb, 95705}, // __builtin_s390_verllb
-      {Intrinsic::s390_verllf, 95727}, // __builtin_s390_verllf
-      {Intrinsic::s390_verllg, 95749}, // __builtin_s390_verllg
-      {Intrinsic::s390_verllh, 95771}, // __builtin_s390_verllh
-      {Intrinsic::s390_verllvb, 95793}, // __builtin_s390_verllvb
-      {Intrinsic::s390_verllvf, 95816}, // __builtin_s390_verllvf
-      {Intrinsic::s390_verllvg, 95839}, // __builtin_s390_verllvg
-      {Intrinsic::s390_verllvh, 95862}, // __builtin_s390_verllvh
-      {Intrinsic::s390_vfaeb, 95885}, // __builtin_s390_vfaeb
-      {Intrinsic::s390_vfaef, 95906}, // __builtin_s390_vfaef
-      {Intrinsic::s390_vfaeh, 95927}, // __builtin_s390_vfaeh
-      {Intrinsic::s390_vfaezb, 95948}, // __builtin_s390_vfaezb
-      {Intrinsic::s390_vfaezf, 95970}, // __builtin_s390_vfaezf
-      {Intrinsic::s390_vfaezh, 95992}, // __builtin_s390_vfaezh
-      {Intrinsic::s390_vfeeb, 96014}, // __builtin_s390_vfeeb
-      {Intrinsic::s390_vfeef, 96035}, // __builtin_s390_vfeef
-      {Intrinsic::s390_vfeeh, 96056}, // __builtin_s390_vfeeh
-      {Intrinsic::s390_vfeezb, 96077}, // __builtin_s390_vfeezb
-      {Intrinsic::s390_vfeezf, 96099}, // __builtin_s390_vfeezf
-      {Intrinsic::s390_vfeezh, 96121}, // __builtin_s390_vfeezh
-      {Intrinsic::s390_vfeneb, 96143}, // __builtin_s390_vfeneb
-      {Intrinsic::s390_vfenef, 96165}, // __builtin_s390_vfenef
-      {Intrinsic::s390_vfeneh, 96187}, // __builtin_s390_vfeneh
-      {Intrinsic::s390_vfenezb, 96209}, // __builtin_s390_vfenezb
-      {Intrinsic::s390_vfenezf, 96232}, // __builtin_s390_vfenezf
-      {Intrinsic::s390_vfenezh, 96255}, // __builtin_s390_vfenezh
-      {Intrinsic::s390_vgfmab, 96278}, // __builtin_s390_vgfmab
-      {Intrinsic::s390_vgfmaf, 96300}, // __builtin_s390_vgfmaf
-      {Intrinsic::s390_vgfmag, 96322}, // __builtin_s390_vgfmag
-      {Intrinsic::s390_vgfmah, 96344}, // __builtin_s390_vgfmah
-      {Intrinsic::s390_vgfmb, 96366}, // __builtin_s390_vgfmb
-      {Intrinsic::s390_vgfmf, 96387}, // __builtin_s390_vgfmf
-      {Intrinsic::s390_vgfmg, 96408}, // __builtin_s390_vgfmg
-      {Intrinsic::s390_vgfmh, 96429}, // __builtin_s390_vgfmh
-      {Intrinsic::s390_vistrb, 96450}, // __builtin_s390_vistrb
-      {Intrinsic::s390_vistrf, 96472}, // __builtin_s390_vistrf
-      {Intrinsic::s390_vistrh, 96494}, // __builtin_s390_vistrh
-      {Intrinsic::s390_vlbb, 96516}, // __builtin_s390_vlbb
-      {Intrinsic::s390_vll, 96536}, // __builtin_s390_vll
-      {Intrinsic::s390_vlrl, 96555}, // __builtin_s390_vlrl
-      {Intrinsic::s390_vmaeb, 96575}, // __builtin_s390_vmaeb
-      {Intrinsic::s390_vmaef, 96596}, // __builtin_s390_vmaef
-      {Intrinsic::s390_vmaeh, 96617}, // __builtin_s390_vmaeh
-      {Intrinsic::s390_vmahb, 96638}, // __builtin_s390_vmahb
-      {Intrinsic::s390_vmahf, 96659}, // __builtin_s390_vmahf
-      {Intrinsic::s390_vmahh, 96680}, // __builtin_s390_vmahh
-      {Intrinsic::s390_vmaleb, 96701}, // __builtin_s390_vmaleb
-      {Intrinsic::s390_vmalef, 96723}, // __builtin_s390_vmalef
-      {Intrinsic::s390_vmaleh, 96745}, // __builtin_s390_vmaleh
-      {Intrinsic::s390_vmalhb, 96767}, // __builtin_s390_vmalhb
-      {Intrinsic::s390_vmalhf, 96789}, // __builtin_s390_vmalhf
-      {Intrinsic::s390_vmalhh, 96811}, // __builtin_s390_vmalhh
-      {Intrinsic::s390_vmalob, 96833}, // __builtin_s390_vmalob
-      {Intrinsic::s390_vmalof, 96855}, // __builtin_s390_vmalof
-      {Intrinsic::s390_vmaloh, 96877}, // __builtin_s390_vmaloh
-      {Intrinsic::s390_vmaob, 96899}, // __builtin_s390_vmaob
-      {Intrinsic::s390_vmaof, 96920}, // __builtin_s390_vmaof
-      {Intrinsic::s390_vmaoh, 96941}, // __builtin_s390_vmaoh
-      {Intrinsic::s390_vmeb, 96962}, // __builtin_s390_vmeb
-      {Intrinsic::s390_vmef, 96982}, // __builtin_s390_vmef
-      {Intrinsic::s390_vmeh, 97002}, // __builtin_s390_vmeh
-      {Intrinsic::s390_vmhb, 97022}, // __builtin_s390_vmhb
-      {Intrinsic::s390_vmhf, 97042}, // __builtin_s390_vmhf
-      {Intrinsic::s390_vmhh, 97062}, // __builtin_s390_vmhh
-      {Intrinsic::s390_vmleb, 97082}, // __builtin_s390_vmleb
-      {Intrinsic::s390_vmlef, 97103}, // __builtin_s390_vmlef
-      {Intrinsic::s390_vmleh, 97124}, // __builtin_s390_vmleh
-      {Intrinsic::s390_vmlhb, 97145}, // __builtin_s390_vmlhb
-      {Intrinsic::s390_vmlhf, 97166}, // __builtin_s390_vmlhf
-      {Intrinsic::s390_vmlhh, 97187}, // __builtin_s390_vmlhh
-      {Intrinsic::s390_vmlob, 97208}, // __builtin_s390_vmlob
-      {Intrinsic::s390_vmlof, 97229}, // __builtin_s390_vmlof
-      {Intrinsic::s390_vmloh, 97250}, // __builtin_s390_vmloh
-      {Intrinsic::s390_vmob, 97271}, // __builtin_s390_vmob
-      {Intrinsic::s390_vmof, 97291}, // __builtin_s390_vmof
-      {Intrinsic::s390_vmoh, 97311}, // __builtin_s390_vmoh
-      {Intrinsic::s390_vmslg, 97331}, // __builtin_s390_vmslg
-      {Intrinsic::s390_vpdi, 97352}, // __builtin_s390_vpdi
-      {Intrinsic::s390_vperm, 97372}, // __builtin_s390_vperm
-      {Intrinsic::s390_vpklsf, 97393}, // __builtin_s390_vpklsf
-      {Intrinsic::s390_vpklsg, 97415}, // __builtin_s390_vpklsg
-      {Intrinsic::s390_vpklsh, 97437}, // __builtin_s390_vpklsh
-      {Intrinsic::s390_vpksf, 97459}, // __builtin_s390_vpksf
-      {Intrinsic::s390_vpksg, 97480}, // __builtin_s390_vpksg
-      {Intrinsic::s390_vpksh, 97501}, // __builtin_s390_vpksh
-      {Intrinsic::s390_vsbcbiq, 97522}, // __builtin_s390_vsbcbiq
-      {Intrinsic::s390_vsbiq, 97545}, // __builtin_s390_vsbiq
-      {Intrinsic::s390_vscbib, 97566}, // __builtin_s390_vscbib
-      {Intrinsic::s390_vscbif, 97588}, // __builtin_s390_vscbif
-      {Intrinsic::s390_vscbig, 97610}, // __builtin_s390_vscbig
-      {Intrinsic::s390_vscbih, 97632}, // __builtin_s390_vscbih
-      {Intrinsic::s390_vscbiq, 97654}, // __builtin_s390_vscbiq
-      {Intrinsic::s390_vsl, 97676}, // __builtin_s390_vsl
-      {Intrinsic::s390_vslb, 97695}, // __builtin_s390_vslb
-      {Intrinsic::s390_vsldb, 97715}, // __builtin_s390_vsldb
-      {Intrinsic::s390_vsq, 97736}, // __builtin_s390_vsq
-      {Intrinsic::s390_vsra, 97755}, // __builtin_s390_vsra
-      {Intrinsic::s390_vsrab, 97775}, // __builtin_s390_vsrab
-      {Intrinsic::s390_vsrl, 97796}, // __builtin_s390_vsrl
-      {Intrinsic::s390_vsrlb, 97816}, // __builtin_s390_vsrlb
-      {Intrinsic::s390_vstl, 97837}, // __builtin_s390_vstl
-      {Intrinsic::s390_vstrcb, 97857}, // __builtin_s390_vstrcb
-      {Intrinsic::s390_vstrcf, 97879}, // __builtin_s390_vstrcf
-      {Intrinsic::s390_vstrch, 97901}, // __builtin_s390_vstrch
-      {Intrinsic::s390_vstrczb, 97923}, // __builtin_s390_vstrczb
-      {Intrinsic::s390_vstrczf, 97946}, // __builtin_s390_vstrczf
-      {Intrinsic::s390_vstrczh, 97969}, // __builtin_s390_vstrczh
-      {Intrinsic::s390_vstrl, 97992}, // __builtin_s390_vstrl
-      {Intrinsic::s390_vsumb, 98013}, // __builtin_s390_vsumb
-      {Intrinsic::s390_vsumgf, 98034}, // __builtin_s390_vsumgf
-      {Intrinsic::s390_vsumgh, 98056}, // __builtin_s390_vsumgh
-      {Intrinsic::s390_vsumh, 98078}, // __builtin_s390_vsumh
-      {Intrinsic::s390_vsumqf, 98099}, // __builtin_s390_vsumqf
-      {Intrinsic::s390_vsumqg, 98121}, // __builtin_s390_vsumqg
-      {Intrinsic::s390_vtm, 98143}, // __builtin_s390_vtm
-      {Intrinsic::s390_vuphb, 98162}, // __builtin_s390_vuphb
-      {Intrinsic::s390_vuphf, 98183}, // __builtin_s390_vuphf
-      {Intrinsic::s390_vuphh, 98204}, // __builtin_s390_vuphh
-      {Intrinsic::s390_vuplb, 98225}, // __builtin_s390_vuplb
-      {Intrinsic::s390_vuplf, 98246}, // __builtin_s390_vuplf
-      {Intrinsic::s390_vuplhb, 98267}, // __builtin_s390_vuplhb
-      {Intrinsic::s390_vuplhf, 98289}, // __builtin_s390_vuplhf
-      {Intrinsic::s390_vuplhh, 98311}, // __builtin_s390_vuplhh
-      {Intrinsic::s390_vuplhw, 98333}, // __builtin_s390_vuplhw
-      {Intrinsic::s390_vupllb, 98355}, // __builtin_s390_vupllb
-      {Intrinsic::s390_vupllf, 98377}, // __builtin_s390_vupllf
-      {Intrinsic::s390_vupllh, 98399}, // __builtin_s390_vupllh
-      {Intrinsic::s390_tend, 93564}, // __builtin_tend
-      {Intrinsic::s390_ppa_txassist, 95196}, // __builtin_tx_assist
-      {Intrinsic::s390_etnd, 95149}, // __builtin_tx_nesting_depth
-    };
-    auto I = std::lower_bound(std::begin(s390Names),
-                              std::end(s390Names),
-                              BuiltinNameStr);
-    if (I != std::end(s390Names) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "x86") {
-    static const BuiltinEntry x86Names[] = {
-      {Intrinsic::x86_addcarry_u32, 98929}, // __builtin_ia32_addcarry_u32
-      {Intrinsic::x86_addcarry_u64, 98957}, // __builtin_ia32_addcarry_u64
-      {Intrinsic::x86_addcarryx_u32, 98985}, // __builtin_ia32_addcarryx_u32
-      {Intrinsic::x86_addcarryx_u64, 99014}, // __builtin_ia32_addcarryx_u64
-      {Intrinsic::x86_avx512_mask_add_pd_512, 104566}, // __builtin_ia32_addpd512_mask
-      {Intrinsic::x86_avx512_mask_add_ps_512, 104595}, // __builtin_ia32_addps512_mask
-      {Intrinsic::x86_avx512_mask_add_sd_round, 104624}, // __builtin_ia32_addsd_round_mask
-      {Intrinsic::x86_avx512_mask_add_ss_round, 104656}, // __builtin_ia32_addss_round_mask
-      {Intrinsic::x86_sse3_addsub_pd, 135056}, // __builtin_ia32_addsubpd
-      {Intrinsic::x86_avx_addsub_pd_256, 99426}, // __builtin_ia32_addsubpd256
-      {Intrinsic::x86_sse3_addsub_ps, 135080}, // __builtin_ia32_addsubps
-      {Intrinsic::x86_avx_addsub_ps_256, 99453}, // __builtin_ia32_addsubps256
-      {Intrinsic::x86_aesni_aesdec, 99043}, // __builtin_ia32_aesdec128
-      {Intrinsic::x86_aesni_aesdec_256, 99068}, // __builtin_ia32_aesdec256
-      {Intrinsic::x86_aesni_aesdec_512, 99093}, // __builtin_ia32_aesdec512
-      {Intrinsic::x86_aesni_aesdeclast, 99118}, // __builtin_ia32_aesdeclast128
-      {Intrinsic::x86_aesni_aesdeclast_256, 99147}, // __builtin_ia32_aesdeclast256
-      {Intrinsic::x86_aesni_aesdeclast_512, 99176}, // __builtin_ia32_aesdeclast512
-      {Intrinsic::x86_aesni_aesenc, 99205}, // __builtin_ia32_aesenc128
-      {Intrinsic::x86_aesni_aesenc_256, 99230}, // __builtin_ia32_aesenc256
-      {Intrinsic::x86_aesni_aesenc_512, 99255}, // __builtin_ia32_aesenc512
-      {Intrinsic::x86_aesni_aesenclast, 99280}, // __builtin_ia32_aesenclast128
-      {Intrinsic::x86_aesni_aesenclast_256, 99309}, // __builtin_ia32_aesenclast256
-      {Intrinsic::x86_aesni_aesenclast_512, 99338}, // __builtin_ia32_aesenclast512
-      {Intrinsic::x86_aesni_aesimc, 99367}, // __builtin_ia32_aesimc128
-      {Intrinsic::x86_aesni_aeskeygenassist, 99392}, // __builtin_ia32_aeskeygenassist128
-      {Intrinsic::x86_bmi_bextr_32, 129324}, // __builtin_ia32_bextr_u32
-      {Intrinsic::x86_bmi_bextr_64, 129349}, // __builtin_ia32_bextr_u64
-      {Intrinsic::x86_tbm_bextri_u32, 136958}, // __builtin_ia32_bextri_u32
-      {Intrinsic::x86_tbm_bextri_u64, 136984}, // __builtin_ia32_bextri_u64
-      {Intrinsic::x86_sse41_blendvpd, 135257}, // __builtin_ia32_blendvpd
-      {Intrinsic::x86_avx_blendv_pd_256, 99480}, // __builtin_ia32_blendvpd256
-      {Intrinsic::x86_sse41_blendvps, 135281}, // __builtin_ia32_blendvps
-      {Intrinsic::x86_avx_blendv_ps_256, 99507}, // __builtin_ia32_blendvps256
-      {Intrinsic::x86_avx512_broadcastmb_128, 103118}, // __builtin_ia32_broadcastmb128
-      {Intrinsic::x86_avx512_broadcastmb_256, 103148}, // __builtin_ia32_broadcastmb256
-      {Intrinsic::x86_avx512_broadcastmb_512, 103178}, // __builtin_ia32_broadcastmb512
-      {Intrinsic::x86_avx512_broadcastmw_128, 103208}, // __builtin_ia32_broadcastmw128
-      {Intrinsic::x86_avx512_broadcastmw_256, 103238}, // __builtin_ia32_broadcastmw256
-      {Intrinsic::x86_avx512_broadcastmw_512, 103268}, // __builtin_ia32_broadcastmw512
-      {Intrinsic::x86_bmi_bzhi_64, 129397}, // __builtin_ia32_bzhi_di
-      {Intrinsic::x86_bmi_bzhi_32, 129374}, // __builtin_ia32_bzhi_si
-      {Intrinsic::x86_sse2_clflush, 133369}, // __builtin_ia32_clflush
-      {Intrinsic::x86_clflushopt, 129512}, // __builtin_ia32_clflushopt
-      {Intrinsic::x86_clrssbsy, 129538}, // __builtin_ia32_clrssbsy
-      {Intrinsic::x86_clwb, 129562}, // __builtin_ia32_clwb
-      {Intrinsic::x86_clzero, 129582}, // __builtin_ia32_clzero
-      {Intrinsic::x86_sse2_cmp_sd, 133392}, // __builtin_ia32_cmpsd
-      {Intrinsic::x86_avx512_mask_cmp_sd, 104688}, // __builtin_ia32_cmpsd_mask
-      {Intrinsic::x86_sse_cmp_ss, 132544}, // __builtin_ia32_cmpss
-      {Intrinsic::x86_avx512_mask_cmp_ss, 104714}, // __builtin_ia32_cmpss_mask
-      {Intrinsic::x86_sse_comieq_ss, 132565}, // __builtin_ia32_comieq
-      {Intrinsic::x86_sse_comige_ss, 132587}, // __builtin_ia32_comige
-      {Intrinsic::x86_sse_comigt_ss, 132609}, // __builtin_ia32_comigt
-      {Intrinsic::x86_sse_comile_ss, 132631}, // __builtin_ia32_comile
-      {Intrinsic::x86_sse_comilt_ss, 132653}, // __builtin_ia32_comilt
-      {Intrinsic::x86_sse_comineq_ss, 132675}, // __builtin_ia32_comineq
-      {Intrinsic::x86_sse2_comieq_sd, 133413}, // __builtin_ia32_comisdeq
-      {Intrinsic::x86_sse2_comige_sd, 133437}, // __builtin_ia32_comisdge
-      {Intrinsic::x86_sse2_comigt_sd, 133461}, // __builtin_ia32_comisdgt
-      {Intrinsic::x86_sse2_comile_sd, 133485}, // __builtin_ia32_comisdle
-      {Intrinsic::x86_sse2_comilt_sd, 133509}, // __builtin_ia32_comisdlt
-      {Intrinsic::x86_sse2_comineq_sd, 133533}, // __builtin_ia32_comisdneq
-      {Intrinsic::x86_avx512_mask_compress_pd_128, 104944}, // __builtin_ia32_compressdf128_mask
-      {Intrinsic::x86_avx512_mask_compress_pd_256, 104978}, // __builtin_ia32_compressdf256_mask
-      {Intrinsic::x86_avx512_mask_compress_pd_512, 105012}, // __builtin_ia32_compressdf512_mask
-      {Intrinsic::x86_avx512_mask_compress_q_128, 105148}, // __builtin_ia32_compressdi128_mask
-      {Intrinsic::x86_avx512_mask_compress_q_256, 105182}, // __builtin_ia32_compressdi256_mask
-      {Intrinsic::x86_avx512_mask_compress_q_512, 105216}, // __builtin_ia32_compressdi512_mask
-      {Intrinsic::x86_avx512_mask_compress_w_128, 105952}, // __builtin_ia32_compresshi128_mask
-      {Intrinsic::x86_avx512_mask_compress_w_256, 105986}, // __builtin_ia32_compresshi256_mask
-      {Intrinsic::x86_avx512_mask_compress_w_512, 106020}, // __builtin_ia32_compresshi512_mask
-      {Intrinsic::x86_avx512_mask_compress_b_128, 104740}, // __builtin_ia32_compressqi128_mask
-      {Intrinsic::x86_avx512_mask_compress_b_256, 104774}, // __builtin_ia32_compressqi256_mask
-      {Intrinsic::x86_avx512_mask_compress_b_512, 104808}, // __builtin_ia32_compressqi512_mask
-      {Intrinsic::x86_avx512_mask_compress_ps_128, 105046}, // __builtin_ia32_compresssf128_mask
-      {Intrinsic::x86_avx512_mask_compress_ps_256, 105080}, // __builtin_ia32_compresssf256_mask
-      {Intrinsic::x86_avx512_mask_compress_ps_512, 105114}, // __builtin_ia32_compresssf512_mask
-      {Intrinsic::x86_avx512_mask_compress_d_128, 104842}, // __builtin_ia32_compresssi128_mask
-      {Intrinsic::x86_avx512_mask_compress_d_256, 104876}, // __builtin_ia32_compresssi256_mask
-      {Intrinsic::x86_avx512_mask_compress_d_512, 104910}, // __builtin_ia32_compresssi512_mask
-      {Intrinsic::x86_avx512_mask_compress_store_pd_128, 105484}, // __builtin_ia32_compressstoredf128_mask
-      {Intrinsic::x86_avx512_mask_compress_store_pd_256, 105523}, // __builtin_ia32_compressstoredf256_mask
-      {Intrinsic::x86_avx512_mask_compress_store_pd_512, 105562}, // __builtin_ia32_compressstoredf512_mask
-      {Intrinsic::x86_avx512_mask_compress_store_q_128, 105718}, // __builtin_ia32_compressstoredi128_mask
-      {Intrinsic::x86_avx512_mask_compress_store_q_256, 105757}, // __builtin_ia32_compressstoredi256_mask
-      {Intrinsic::x86_avx512_mask_compress_store_q_512, 105796}, // __builtin_ia32_compressstoredi512_mask
-      {Intrinsic::x86_avx512_mask_compress_store_w_128, 105835}, // __builtin_ia32_compressstorehi128_mask
-      {Intrinsic::x86_avx512_mask_compress_store_w_256, 105874}, // __builtin_ia32_compressstorehi256_mask
-      {Intrinsic::x86_avx512_mask_compress_store_w_512, 105913}, // __builtin_ia32_compressstorehi512_mask
-      {Intrinsic::x86_avx512_mask_compress_store_b_128, 105250}, // __builtin_ia32_compressstoreqi128_mask
-      {Intrinsic::x86_avx512_mask_compress_store_b_256, 105289}, // __builtin_ia32_compressstoreqi256_mask
-      {Intrinsic::x86_avx512_mask_compress_store_b_512, 105328}, // __builtin_ia32_compressstoreqi512_mask
-      {Intrinsic::x86_avx512_mask_compress_store_ps_128, 105601}, // __builtin_ia32_compressstoresf128_mask
-      {Intrinsic::x86_avx512_mask_compress_store_ps_256, 105640}, // __builtin_ia32_compressstoresf256_mask
-      {Intrinsic::x86_avx512_mask_compress_store_ps_512, 105679}, // __builtin_ia32_compressstoresf512_mask
-      {Intrinsic::x86_avx512_mask_compress_store_d_128, 105367}, // __builtin_ia32_compressstoresi128_mask
-      {Intrinsic::x86_avx512_mask_compress_store_d_256, 105406}, // __builtin_ia32_compressstoresi256_mask
-      {Intrinsic::x86_avx512_mask_compress_store_d_512, 105445}, // __builtin_ia32_compressstoresi512_mask
-      {Intrinsic::x86_sse42_crc32_64_64, 135744}, // __builtin_ia32_crc32di
-      {Intrinsic::x86_sse42_crc32_32_16, 135675}, // __builtin_ia32_crc32hi
-      {Intrinsic::x86_sse42_crc32_32_8, 135721}, // __builtin_ia32_crc32qi
-      {Intrinsic::x86_sse42_crc32_32_32, 135698}, // __builtin_ia32_crc32si
-      {Intrinsic::x86_sse2_cvtdq2ps, 133558}, // __builtin_ia32_cvtdq2ps
-      {Intrinsic::x86_avx_cvtdq2_ps_256, 99615}, // __builtin_ia32_cvtdq2ps256
-      {Intrinsic::x86_avx512_mask_cvtdq2ps_512, 106276}, // __builtin_ia32_cvtdq2ps512_mask
-      {Intrinsic::x86_sse2_cvtpd2dq, 133582}, // __builtin_ia32_cvtpd2dq
-      {Intrinsic::x86_avx512_mask_cvtpd2dq_128, 106308}, // __builtin_ia32_cvtpd2dq128_mask
-      {Intrinsic::x86_avx_cvt_pd2dq_256, 99561}, // __builtin_ia32_cvtpd2dq256
-      {Intrinsic::x86_avx512_mask_cvtpd2dq_512, 106340}, // __builtin_ia32_cvtpd2dq512_mask
-      {Intrinsic::x86_sse_cvtpd2pi, 132698}, // __builtin_ia32_cvtpd2pi
-      {Intrinsic::x86_sse2_cvtpd2ps, 133606}, // __builtin_ia32_cvtpd2ps
-      {Intrinsic::x86_avx_cvt_pd2_ps_256, 99534}, // __builtin_ia32_cvtpd2ps256
-      {Intrinsic::x86_avx512_mask_cvtpd2ps_512, 106401}, // __builtin_ia32_cvtpd2ps512_mask
-      {Intrinsic::x86_avx512_mask_cvtpd2ps, 106372}, // __builtin_ia32_cvtpd2ps_mask
-      {Intrinsic::x86_avx512_mask_cvtpd2qq_128, 106433}, // __builtin_ia32_cvtpd2qq128_mask
-      {Intrinsic::x86_avx512_mask_cvtpd2qq_256, 106465}, // __builtin_ia32_cvtpd2qq256_mask
-      {Intrinsic::x86_avx512_mask_cvtpd2qq_512, 106497}, // __builtin_ia32_cvtpd2qq512_mask
-      {Intrinsic::x86_avx512_mask_cvtpd2udq_128, 106529}, // __builtin_ia32_cvtpd2udq128_mask
-      {Intrinsic::x86_avx512_mask_cvtpd2udq_256, 106562}, // __builtin_ia32_cvtpd2udq256_mask
-      {Intrinsic::x86_avx512_mask_cvtpd2udq_512, 106595}, // __builtin_ia32_cvtpd2udq512_mask
-      {Intrinsic::x86_avx512_mask_cvtpd2uqq_128, 106628}, // __builtin_ia32_cvtpd2uqq128_mask
-      {Intrinsic::x86_avx512_mask_cvtpd2uqq_256, 106661}, // __builtin_ia32_cvtpd2uqq256_mask
-      {Intrinsic::x86_avx512_mask_cvtpd2uqq_512, 106694}, // __builtin_ia32_cvtpd2uqq512_mask
-      {Intrinsic::x86_sse_cvtpi2pd, 132722}, // __builtin_ia32_cvtpi2pd
-      {Intrinsic::x86_sse_cvtpi2ps, 132746}, // __builtin_ia32_cvtpi2ps
-      {Intrinsic::x86_sse2_cvtps2dq, 133630}, // __builtin_ia32_cvtps2dq
-      {Intrinsic::x86_avx512_mask_cvtps2dq_128, 106727}, // __builtin_ia32_cvtps2dq128_mask
-      {Intrinsic::x86_avx_cvt_ps2dq_256, 99588}, // __builtin_ia32_cvtps2dq256
-      {Intrinsic::x86_avx512_mask_cvtps2dq_256, 106759}, // __builtin_ia32_cvtps2dq256_mask
-      {Intrinsic::x86_avx512_mask_cvtps2dq_512, 106791}, // __builtin_ia32_cvtps2dq512_mask
-      {Intrinsic::x86_avx512_mask_cvtps2pd_512, 106823}, // __builtin_ia32_cvtps2pd512_mask
-      {Intrinsic::x86_sse_cvtps2pi, 132770}, // __builtin_ia32_cvtps2pi
-      {Intrinsic::x86_avx512_mask_cvtps2qq_128, 106855}, // __builtin_ia32_cvtps2qq128_mask
-      {Intrinsic::x86_avx512_mask_cvtps2qq_256, 106887}, // __builtin_ia32_cvtps2qq256_mask
-      {Intrinsic::x86_avx512_mask_cvtps2qq_512, 106919}, // __builtin_ia32_cvtps2qq512_mask
-      {Intrinsic::x86_avx512_mask_cvtps2udq_128, 106951}, // __builtin_ia32_cvtps2udq128_mask
-      {Intrinsic::x86_avx512_mask_cvtps2udq_256, 106984}, // __builtin_ia32_cvtps2udq256_mask
-      {Intrinsic::x86_avx512_mask_cvtps2udq_512, 107017}, // __builtin_ia32_cvtps2udq512_mask
-      {Intrinsic::x86_avx512_mask_cvtps2uqq_128, 107050}, // __builtin_ia32_cvtps2uqq128_mask
-      {Intrinsic::x86_avx512_mask_cvtps2uqq_256, 107083}, // __builtin_ia32_cvtps2uqq256_mask
-      {Intrinsic::x86_avx512_mask_cvtps2uqq_512, 107116}, // __builtin_ia32_cvtps2uqq512_mask
-      {Intrinsic::x86_avx512_mask_cvtqq2pd_128, 107149}, // __builtin_ia32_cvtqq2pd128_mask
-      {Intrinsic::x86_avx512_mask_cvtqq2pd_256, 107181}, // __builtin_ia32_cvtqq2pd256_mask
-      {Intrinsic::x86_avx512_mask_cvtqq2pd_512, 107213}, // __builtin_ia32_cvtqq2pd512_mask
-      {Intrinsic::x86_avx512_mask_cvtqq2ps_128, 107245}, // __builtin_ia32_cvtqq2ps128_mask
-      {Intrinsic::x86_avx512_mask_cvtqq2ps_256, 107277}, // __builtin_ia32_cvtqq2ps256_mask
-      {Intrinsic::x86_avx512_mask_cvtqq2ps_512, 107309}, // __builtin_ia32_cvtqq2ps512_mask
-      {Intrinsic::x86_sse2_cvtsd2si, 133654}, // __builtin_ia32_cvtsd2si
-      {Intrinsic::x86_sse2_cvtsd2si64, 133678}, // __builtin_ia32_cvtsd2si64
-      {Intrinsic::x86_sse2_cvtsd2ss, 133704}, // __builtin_ia32_cvtsd2ss
-      {Intrinsic::x86_avx512_mask_cvtsd2ss_round, 107341}, // __builtin_ia32_cvtsd2ss_round_mask
-      {Intrinsic::x86_avx512_cvtsi2sd64, 103298}, // __builtin_ia32_cvtsi2sd64
-      {Intrinsic::x86_avx512_cvtsi2ss32, 103324}, // __builtin_ia32_cvtsi2ss32
-      {Intrinsic::x86_avx512_cvtsi2ss64, 103350}, // __builtin_ia32_cvtsi2ss64
-      {Intrinsic::x86_avx512_mask_cvtss2sd_round, 107376}, // __builtin_ia32_cvtss2sd_round_mask
-      {Intrinsic::x86_sse_cvtss2si, 132794}, // __builtin_ia32_cvtss2si
-      {Intrinsic::x86_sse_cvtss2si64, 132818}, // __builtin_ia32_cvtss2si64
-      {Intrinsic::x86_sse2_cvttpd2dq, 133728}, // __builtin_ia32_cvttpd2dq
-      {Intrinsic::x86_avx512_mask_cvttpd2dq_128, 107411}, // __builtin_ia32_cvttpd2dq128_mask
-      {Intrinsic::x86_avx_cvtt_pd2dq_256, 99642}, // __builtin_ia32_cvttpd2dq256
-      {Intrinsic::x86_avx512_mask_cvttpd2dq_512, 107444}, // __builtin_ia32_cvttpd2dq512_mask
-      {Intrinsic::x86_sse_cvttpd2pi, 132844}, // __builtin_ia32_cvttpd2pi
-      {Intrinsic::x86_avx512_mask_cvttpd2qq_128, 107477}, // __builtin_ia32_cvttpd2qq128_mask
-      {Intrinsic::x86_avx512_mask_cvttpd2qq_256, 107510}, // __builtin_ia32_cvttpd2qq256_mask
-      {Intrinsic::x86_avx512_mask_cvttpd2qq_512, 107543}, // __builtin_ia32_cvttpd2qq512_mask
-      {Intrinsic::x86_avx512_mask_cvttpd2udq_128, 107576}, // __builtin_ia32_cvttpd2udq128_mask
-      {Intrinsic::x86_avx512_mask_cvttpd2udq_256, 107610}, // __builtin_ia32_cvttpd2udq256_mask
-      {Intrinsic::x86_avx512_mask_cvttpd2udq_512, 107644}, // __builtin_ia32_cvttpd2udq512_mask
-      {Intrinsic::x86_avx512_mask_cvttpd2uqq_128, 107678}, // __builtin_ia32_cvttpd2uqq128_mask
-      {Intrinsic::x86_avx512_mask_cvttpd2uqq_256, 107712}, // __builtin_ia32_cvttpd2uqq256_mask
-      {Intrinsic::x86_avx512_mask_cvttpd2uqq_512, 107746}, // __builtin_ia32_cvttpd2uqq512_mask
-      {Intrinsic::x86_sse2_cvttps2dq, 133753}, // __builtin_ia32_cvttps2dq
-      {Intrinsic::x86_avx_cvtt_ps2dq_256, 99670}, // __builtin_ia32_cvttps2dq256
-      {Intrinsic::x86_avx512_mask_cvttps2dq_512, 107780}, // __builtin_ia32_cvttps2dq512_mask
-      {Intrinsic::x86_sse_cvttps2pi, 132869}, // __builtin_ia32_cvttps2pi
-      {Intrinsic::x86_avx512_mask_cvttps2qq_128, 107813}, // __builtin_ia32_cvttps2qq128_mask
-      {Intrinsic::x86_avx512_mask_cvttps2qq_256, 107846}, // __builtin_ia32_cvttps2qq256_mask
-      {Intrinsic::x86_avx512_mask_cvttps2qq_512, 107879}, // __builtin_ia32_cvttps2qq512_mask
-      {Intrinsic::x86_avx512_mask_cvttps2udq_128, 107912}, // __builtin_ia32_cvttps2udq128_mask
-      {Intrinsic::x86_avx512_mask_cvttps2udq_256, 107946}, // __builtin_ia32_cvttps2udq256_mask
-      {Intrinsic::x86_avx512_mask_cvttps2udq_512, 107980}, // __builtin_ia32_cvttps2udq512_mask
-      {Intrinsic::x86_avx512_mask_cvttps2uqq_128, 108014}, // __builtin_ia32_cvttps2uqq128_mask
-      {Intrinsic::x86_avx512_mask_cvttps2uqq_256, 108048}, // __builtin_ia32_cvttps2uqq256_mask
-      {Intrinsic::x86_avx512_mask_cvttps2uqq_512, 108082}, // __builtin_ia32_cvttps2uqq512_mask
-      {Intrinsic::x86_sse2_cvttsd2si, 133778}, // __builtin_ia32_cvttsd2si
-      {Intrinsic::x86_sse2_cvttsd2si64, 133803}, // __builtin_ia32_cvttsd2si64
-      {Intrinsic::x86_sse_cvttss2si, 132894}, // __builtin_ia32_cvttss2si
-      {Intrinsic::x86_sse_cvttss2si64, 132919}, // __builtin_ia32_cvttss2si64
-      {Intrinsic::x86_avx512_mask_cvtudq2ps_128, 108116}, // __builtin_ia32_cvtudq2ps128_mask
-      {Intrinsic::x86_avx512_mask_cvtudq2ps_256, 108149}, // __builtin_ia32_cvtudq2ps256_mask
-      {Intrinsic::x86_avx512_mask_cvtudq2ps_512, 108182}, // __builtin_ia32_cvtudq2ps512_mask
-      {Intrinsic::x86_avx512_mask_cvtuqq2pd_128, 108215}, // __builtin_ia32_cvtuqq2pd128_mask
-      {Intrinsic::x86_avx512_mask_cvtuqq2pd_256, 108248}, // __builtin_ia32_cvtuqq2pd256_mask
-      {Intrinsic::x86_avx512_mask_cvtuqq2pd_512, 108281}, // __builtin_ia32_cvtuqq2pd512_mask
-      {Intrinsic::x86_avx512_mask_cvtuqq2ps_128, 108314}, // __builtin_ia32_cvtuqq2ps128_mask
-      {Intrinsic::x86_avx512_mask_cvtuqq2ps_256, 108347}, // __builtin_ia32_cvtuqq2ps256_mask
-      {Intrinsic::x86_avx512_mask_cvtuqq2ps_512, 108380}, // __builtin_ia32_cvtuqq2ps512_mask
-      {Intrinsic::x86_avx512_cvtusi2sd, 103604}, // __builtin_ia32_cvtusi2sd32
-      {Intrinsic::x86_avx512_cvtusi642sd, 103658}, // __builtin_ia32_cvtusi2sd64
-      {Intrinsic::x86_avx512_cvtusi2ss, 103631}, // __builtin_ia32_cvtusi2ss32
-      {Intrinsic::x86_avx512_cvtusi642ss, 103685}, // __builtin_ia32_cvtusi2ss64
-      {Intrinsic::x86_avx512_mask_dbpsadbw_128, 108413}, // __builtin_ia32_dbpsadbw128_mask
-      {Intrinsic::x86_avx512_mask_dbpsadbw_256, 108445}, // __builtin_ia32_dbpsadbw256_mask
-      {Intrinsic::x86_avx512_mask_dbpsadbw_512, 108477}, // __builtin_ia32_dbpsadbw512_mask
-      {Intrinsic::x86_avx512_mask_div_pd_512, 108509}, // __builtin_ia32_divpd512_mask
-      {Intrinsic::x86_avx512_mask_div_ps_512, 108538}, // __builtin_ia32_divps512_mask
-      {Intrinsic::x86_avx512_mask_div_sd_round, 108567}, // __builtin_ia32_divsd_round_mask
-      {Intrinsic::x86_avx512_mask_div_ss_round, 108599}, // __builtin_ia32_divss_round_mask
-      {Intrinsic::x86_sse41_dppd, 135305}, // __builtin_ia32_dppd
-      {Intrinsic::x86_sse41_dpps, 135325}, // __builtin_ia32_dpps
-      {Intrinsic::x86_avx_dp_ps_256, 99698}, // __builtin_ia32_dpps256
-      {Intrinsic::x86_mmx_emms, 130298}, // __builtin_ia32_emms
-      {Intrinsic::x86_avx512_exp2_pd, 103712}, // __builtin_ia32_exp2pd_mask
-      {Intrinsic::x86_avx512_exp2_ps, 103739}, // __builtin_ia32_exp2ps_mask
-      {Intrinsic::x86_avx512_mask_expand_pd_128, 109471}, // __builtin_ia32_expanddf128_mask
-      {Intrinsic::x86_avx512_mask_expand_pd_256, 109503}, // __builtin_ia32_expanddf256_mask
-      {Intrinsic::x86_avx512_mask_expand_pd_512, 109535}, // __builtin_ia32_expanddf512_mask
-      {Intrinsic::x86_avx512_mask_expand_q_128, 109663}, // __builtin_ia32_expanddi128_mask
-      {Intrinsic::x86_avx512_mask_expand_q_256, 109695}, // __builtin_ia32_expanddi256_mask
-      {Intrinsic::x86_avx512_mask_expand_q_512, 109727}, // __builtin_ia32_expanddi512_mask
-      {Intrinsic::x86_avx512_mask_expand_w_128, 109759}, // __builtin_ia32_expandhi128_mask
-      {Intrinsic::x86_avx512_mask_expand_w_256, 109791}, // __builtin_ia32_expandhi256_mask
-      {Intrinsic::x86_avx512_mask_expand_w_512, 109823}, // __builtin_ia32_expandhi512_mask
-      {Intrinsic::x86_avx512_mask_expand_load_pd_128, 109039}, // __builtin_ia32_expandloaddf128_mask
-      {Intrinsic::x86_avx512_mask_expand_load_pd_256, 109075}, // __builtin_ia32_expandloaddf256_mask
-      {Intrinsic::x86_avx512_mask_expand_load_pd_512, 109111}, // __builtin_ia32_expandloaddf512_mask
-      {Intrinsic::x86_avx512_mask_expand_load_q_128, 109255}, // __builtin_ia32_expandloaddi128_mask
-      {Intrinsic::x86_avx512_mask_expand_load_q_256, 109291}, // __builtin_ia32_expandloaddi256_mask
-      {Intrinsic::x86_avx512_mask_expand_load_q_512, 109327}, // __builtin_ia32_expandloaddi512_mask
-      {Intrinsic::x86_avx512_mask_expand_load_w_128, 109363}, // __builtin_ia32_expandloadhi128_mask
-      {Intrinsic::x86_avx512_mask_expand_load_w_256, 109399}, // __builtin_ia32_expandloadhi256_mask
-      {Intrinsic::x86_avx512_mask_expand_load_w_512, 109435}, // __builtin_ia32_expandloadhi512_mask
-      {Intrinsic::x86_avx512_mask_expand_load_b_128, 108823}, // __builtin_ia32_expandloadqi128_mask
-      {Intrinsic::x86_avx512_mask_expand_load_b_256, 108859}, // __builtin_ia32_expandloadqi256_mask
-      {Intrinsic::x86_avx512_mask_expand_load_b_512, 108895}, // __builtin_ia32_expandloadqi512_mask
-      {Intrinsic::x86_avx512_mask_expand_load_ps_128, 109147}, // __builtin_ia32_expandloadsf128_mask
-      {Intrinsic::x86_avx512_mask_expand_load_ps_256, 109183}, // __builtin_ia32_expandloadsf256_mask
-      {Intrinsic::x86_avx512_mask_expand_load_ps_512, 109219}, // __builtin_ia32_expandloadsf512_mask
-      {Intrinsic::x86_avx512_mask_expand_load_d_128, 108931}, // __builtin_ia32_expandloadsi128_mask
-      {Intrinsic::x86_avx512_mask_expand_load_d_256, 108967}, // __builtin_ia32_expandloadsi256_mask
-      {Intrinsic::x86_avx512_mask_expand_load_d_512, 109003}, // __builtin_ia32_expandloadsi512_mask
-      {Intrinsic::x86_avx512_mask_expand_b_128, 108631}, // __builtin_ia32_expandqi128_mask
-      {Intrinsic::x86_avx512_mask_expand_b_256, 108663}, // __builtin_ia32_expandqi256_mask
-      {Intrinsic::x86_avx512_mask_expand_b_512, 108695}, // __builtin_ia32_expandqi512_mask
-      {Intrinsic::x86_avx512_mask_expand_ps_128, 109567}, // __builtin_ia32_expandsf128_mask
-      {Intrinsic::x86_avx512_mask_expand_ps_256, 109599}, // __builtin_ia32_expandsf256_mask
-      {Intrinsic::x86_avx512_mask_expand_ps_512, 109631}, // __builtin_ia32_expandsf512_mask
-      {Intrinsic::x86_avx512_mask_expand_d_128, 108727}, // __builtin_ia32_expandsi128_mask
-      {Intrinsic::x86_avx512_mask_expand_d_256, 108759}, // __builtin_ia32_expandsi256_mask
-      {Intrinsic::x86_avx512_mask_expand_d_512, 108791}, // __builtin_ia32_expandsi512_mask
-      {Intrinsic::x86_sse4a_extrq, 136169}, // __builtin_ia32_extrq
-      {Intrinsic::x86_sse4a_extrqi, 136190}, // __builtin_ia32_extrqi
-      {Intrinsic::x86_mmx_femms, 130318}, // __builtin_ia32_femms
-      {Intrinsic::x86_avx512_mask_fixupimm_pd_128, 109855}, // __builtin_ia32_fixupimmpd128_mask
-      {Intrinsic::x86_avx512_maskz_fixupimm_pd_128, 123357}, // __builtin_ia32_fixupimmpd128_maskz
-      {Intrinsic::x86_avx512_mask_fixupimm_pd_256, 109889}, // __builtin_ia32_fixupimmpd256_mask
-      {Intrinsic::x86_avx512_maskz_fixupimm_pd_256, 123392}, // __builtin_ia32_fixupimmpd256_maskz
-      {Intrinsic::x86_avx512_mask_fixupimm_pd_512, 109923}, // __builtin_ia32_fixupimmpd512_mask
-      {Intrinsic::x86_avx512_maskz_fixupimm_pd_512, 123427}, // __builtin_ia32_fixupimmpd512_maskz
-      {Intrinsic::x86_avx512_mask_fixupimm_ps_128, 109957}, // __builtin_ia32_fixupimmps128_mask
-      {Intrinsic::x86_avx512_maskz_fixupimm_ps_128, 123462}, // __builtin_ia32_fixupimmps128_maskz
-      {Intrinsic::x86_avx512_mask_fixupimm_ps_256, 109991}, // __builtin_ia32_fixupimmps256_mask
-      {Intrinsic::x86_avx512_maskz_fixupimm_ps_256, 123497}, // __builtin_ia32_fixupimmps256_maskz
-      {Intrinsic::x86_avx512_mask_fixupimm_ps_512, 110025}, // __builtin_ia32_fixupimmps512_mask
-      {Intrinsic::x86_avx512_maskz_fixupimm_ps_512, 123532}, // __builtin_ia32_fixupimmps512_maskz
-      {Intrinsic::x86_avx512_mask_fixupimm_sd, 110059}, // __builtin_ia32_fixupimmsd_mask
-      {Intrinsic::x86_avx512_maskz_fixupimm_sd, 123567}, // __builtin_ia32_fixupimmsd_maskz
-      {Intrinsic::x86_avx512_mask_fixupimm_ss, 110090}, // __builtin_ia32_fixupimmss_mask
-      {Intrinsic::x86_avx512_maskz_fixupimm_ss, 123599}, // __builtin_ia32_fixupimmss_maskz
-      {Intrinsic::x86_avx512_mask_fpclass_pd_128, 110121}, // __builtin_ia32_fpclasspd128_mask
-      {Intrinsic::x86_avx512_mask_fpclass_pd_256, 110154}, // __builtin_ia32_fpclasspd256_mask
-      {Intrinsic::x86_avx512_mask_fpclass_pd_512, 110187}, // __builtin_ia32_fpclasspd512_mask
-      {Intrinsic::x86_avx512_mask_fpclass_ps_128, 110220}, // __builtin_ia32_fpclassps128_mask
-      {Intrinsic::x86_avx512_mask_fpclass_ps_256, 110253}, // __builtin_ia32_fpclassps256_mask
-      {Intrinsic::x86_avx512_mask_fpclass_ps_512, 110286}, // __builtin_ia32_fpclassps512_mask
-      {Intrinsic::x86_avx512_mask_fpclass_sd, 110319}, // __builtin_ia32_fpclasssd_mask
-      {Intrinsic::x86_avx512_mask_fpclass_ss, 110349}, // __builtin_ia32_fpclassss_mask
-      {Intrinsic::x86_fxrstor, 130040}, // __builtin_ia32_fxrstor
-      {Intrinsic::x86_fxrstor64, 130063}, // __builtin_ia32_fxrstor64
-      {Intrinsic::x86_fxsave, 130088}, // __builtin_ia32_fxsave
-      {Intrinsic::x86_fxsave64, 130110}, // __builtin_ia32_fxsave64
-      {Intrinsic::x86_avx512_gather3div2_df, 103994}, // __builtin_ia32_gather3div2df
-      {Intrinsic::x86_avx512_gather3div2_di, 104023}, // __builtin_ia32_gather3div2di
-      {Intrinsic::x86_avx512_gather3div4_df, 104052}, // __builtin_ia32_gather3div4df
-      {Intrinsic::x86_avx512_gather3div4_di, 104081}, // __builtin_ia32_gather3div4di
-      {Intrinsic::x86_avx512_gather3div4_sf, 104110}, // __builtin_ia32_gather3div4sf
-      {Intrinsic::x86_avx512_gather3div4_si, 104139}, // __builtin_ia32_gather3div4si
-      {Intrinsic::x86_avx512_gather3div8_sf, 104168}, // __builtin_ia32_gather3div8sf
-      {Intrinsic::x86_avx512_gather3div8_si, 104197}, // __builtin_ia32_gather3div8si
-      {Intrinsic::x86_avx512_gather3siv2_df, 104226}, // __builtin_ia32_gather3siv2df
-      {Intrinsic::x86_avx512_gather3siv2_di, 104255}, // __builtin_ia32_gather3siv2di
-      {Intrinsic::x86_avx512_gather3siv4_df, 104284}, // __builtin_ia32_gather3siv4df
-      {Intrinsic::x86_avx512_gather3siv4_di, 104313}, // __builtin_ia32_gather3siv4di
-      {Intrinsic::x86_avx512_gather3siv4_sf, 104342}, // __builtin_ia32_gather3siv4sf
-      {Intrinsic::x86_avx512_gather3siv4_si, 104371}, // __builtin_ia32_gather3siv4si
-      {Intrinsic::x86_avx512_gather3siv8_sf, 104400}, // __builtin_ia32_gather3siv8sf
-      {Intrinsic::x86_avx512_gather3siv8_si, 104429}, // __builtin_ia32_gather3siv8si
-      {Intrinsic::x86_avx2_gather_d_d, 100930}, // __builtin_ia32_gatherd_d
-      {Intrinsic::x86_avx2_gather_d_d_256, 100955}, // __builtin_ia32_gatherd_d256
-      {Intrinsic::x86_avx2_gather_d_pd, 100983}, // __builtin_ia32_gatherd_pd
-      {Intrinsic::x86_avx2_gather_d_pd_256, 101009}, // __builtin_ia32_gatherd_pd256
-      {Intrinsic::x86_avx2_gather_d_ps, 101038}, // __builtin_ia32_gatherd_ps
-      {Intrinsic::x86_avx2_gather_d_ps_256, 101064}, // __builtin_ia32_gatherd_ps256
-      {Intrinsic::x86_avx2_gather_d_q, 101093}, // __builtin_ia32_gatherd_q
-      {Intrinsic::x86_avx2_gather_d_q_256, 101118}, // __builtin_ia32_gatherd_q256
-      {Intrinsic::x86_avx512_gather_qps_512, 103965}, // __builtin_ia32_gatherdiv16sf
-      {Intrinsic::x86_avx512_gather_qpi_512, 103908}, // __builtin_ia32_gatherdiv16si
-      {Intrinsic::x86_avx512_gather_qpd_512, 103880}, // __builtin_ia32_gatherdiv8df
-      {Intrinsic::x86_avx512_gather_qpq_512, 103937}, // __builtin_ia32_gatherdiv8di
-      {Intrinsic::x86_avx512_gatherpf_dpd_512, 104458}, // __builtin_ia32_gatherpfdpd
-      {Intrinsic::x86_avx512_gatherpf_dps_512, 104485}, // __builtin_ia32_gatherpfdps
-      {Intrinsic::x86_avx512_gatherpf_qpd_512, 104512}, // __builtin_ia32_gatherpfqpd
-      {Intrinsic::x86_avx512_gatherpf_qps_512, 104539}, // __builtin_ia32_gatherpfqps
-      {Intrinsic::x86_avx2_gather_q_d, 101146}, // __builtin_ia32_gatherq_d
-      {Intrinsic::x86_avx2_gather_q_d_256, 101171}, // __builtin_ia32_gatherq_d256
-      {Intrinsic::x86_avx2_gather_q_pd, 101199}, // __builtin_ia32_gatherq_pd
-      {Intrinsic::x86_avx2_gather_q_pd_256, 101225}, // __builtin_ia32_gatherq_pd256
-      {Intrinsic::x86_avx2_gather_q_ps, 101254}, // __builtin_ia32_gatherq_ps
-      {Intrinsic::x86_avx2_gather_q_ps_256, 101280}, // __builtin_ia32_gatherq_ps256
-      {Intrinsic::x86_avx2_gather_q_q, 101309}, // __builtin_ia32_gatherq_q
-      {Intrinsic::x86_avx2_gather_q_q_256, 101334}, // __builtin_ia32_gatherq_q256
-      {Intrinsic::x86_avx512_gather_dps_512, 103851}, // __builtin_ia32_gathersiv16sf
-      {Intrinsic::x86_avx512_gather_dpi_512, 103794}, // __builtin_ia32_gathersiv16si
-      {Intrinsic::x86_avx512_gather_dpd_512, 103766}, // __builtin_ia32_gathersiv8df
-      {Intrinsic::x86_avx512_gather_dpq_512, 103823}, // __builtin_ia32_gathersiv8di
-      {Intrinsic::x86_avx512_mask_getexp_pd_128, 110379}, // __builtin_ia32_getexppd128_mask
-      {Intrinsic::x86_avx512_mask_getexp_pd_256, 110411}, // __builtin_ia32_getexppd256_mask
-      {Intrinsic::x86_avx512_mask_getexp_pd_512, 110443}, // __builtin_ia32_getexppd512_mask
-      {Intrinsic::x86_avx512_mask_getexp_ps_128, 110475}, // __builtin_ia32_getexpps128_mask
-      {Intrinsic::x86_avx512_mask_getexp_ps_256, 110507}, // __builtin_ia32_getexpps256_mask
-      {Intrinsic::x86_avx512_mask_getexp_ps_512, 110539}, // __builtin_ia32_getexpps512_mask
-      {Intrinsic::x86_avx512_mask_getexp_sd, 110571}, // __builtin_ia32_getexpsd128_round_mask
-      {Intrinsic::x86_avx512_mask_getexp_ss, 110609}, // __builtin_ia32_getexpss128_round_mask
-      {Intrinsic::x86_avx512_mask_getmant_pd_128, 110647}, // __builtin_ia32_getmantpd128_mask
-      {Intrinsic::x86_avx512_mask_getmant_pd_256, 110680}, // __builtin_ia32_getmantpd256_mask
-      {Intrinsic::x86_avx512_mask_getmant_pd_512, 110713}, // __builtin_ia32_getmantpd512_mask
-      {Intrinsic::x86_avx512_mask_getmant_ps_128, 110746}, // __builtin_ia32_getmantps128_mask
-      {Intrinsic::x86_avx512_mask_getmant_ps_256, 110779}, // __builtin_ia32_getmantps256_mask
-      {Intrinsic::x86_avx512_mask_getmant_ps_512, 110812}, // __builtin_ia32_getmantps512_mask
-      {Intrinsic::x86_avx512_mask_getmant_sd, 110845}, // __builtin_ia32_getmantsd_round_mask
-      {Intrinsic::x86_avx512_mask_getmant_ss, 110881}, // __builtin_ia32_getmantss_round_mask
-      {Intrinsic::x86_sse3_hadd_pd, 135104}, // __builtin_ia32_haddpd
-      {Intrinsic::x86_avx_hadd_pd_256, 99721}, // __builtin_ia32_haddpd256
-      {Intrinsic::x86_sse3_hadd_ps, 135126}, // __builtin_ia32_haddps
-      {Intrinsic::x86_avx_hadd_ps_256, 99746}, // __builtin_ia32_haddps256
-      {Intrinsic::x86_sse3_hsub_pd, 135148}, // __builtin_ia32_hsubpd
-      {Intrinsic::x86_avx_hsub_pd_256, 99771}, // __builtin_ia32_hsubpd256
-      {Intrinsic::x86_sse3_hsub_ps, 135170}, // __builtin_ia32_hsubps
-      {Intrinsic::x86_avx_hsub_ps_256, 99796}, // __builtin_ia32_hsubps256
-      {Intrinsic::x86_incsspd, 130134}, // __builtin_ia32_incsspd
-      {Intrinsic::x86_incsspq, 130157}, // __builtin_ia32_incsspq
-      {Intrinsic::x86_sse41_insertps, 135345}, // __builtin_ia32_insertps128
-      {Intrinsic::x86_sse4a_insertq, 136212}, // __builtin_ia32_insertq
-      {Intrinsic::x86_sse4a_insertqi, 136235}, // __builtin_ia32_insertqi
-      {Intrinsic::x86_sse3_ldu_dq, 135192}, // __builtin_ia32_lddqu
-      {Intrinsic::x86_avx_ldu_dq_256, 99821}, // __builtin_ia32_lddqu256
-      {Intrinsic::x86_sse2_lfence, 133830}, // __builtin_ia32_lfence
-      {Intrinsic::x86_llwpcb, 130180}, // __builtin_ia32_llwpcb
-      {Intrinsic::x86_lwpins32, 130202}, // __builtin_ia32_lwpins32
-      {Intrinsic::x86_lwpins64, 130226}, // __builtin_ia32_lwpins64
-      {Intrinsic::x86_lwpval32, 130250}, // __builtin_ia32_lwpval32
-      {Intrinsic::x86_lwpval64, 130274}, // __builtin_ia32_lwpval64
-      {Intrinsic::x86_avx2_maskload_d, 101362}, // __builtin_ia32_maskloadd
-      {Intrinsic::x86_avx2_maskload_d_256, 101387}, // __builtin_ia32_maskloadd256
-      {Intrinsic::x86_avx_maskload_pd, 99845}, // __builtin_ia32_maskloadpd
-      {Intrinsic::x86_avx_maskload_pd_256, 99871}, // __builtin_ia32_maskloadpd256
-      {Intrinsic::x86_avx_maskload_ps, 99900}, // __builtin_ia32_maskloadps
-      {Intrinsic::x86_avx_maskload_ps_256, 99926}, // __builtin_ia32_maskloadps256
-      {Intrinsic::x86_avx2_maskload_q, 101415}, // __builtin_ia32_maskloadq
-      {Intrinsic::x86_avx2_maskload_q_256, 101440}, // __builtin_ia32_maskloadq256
-      {Intrinsic::x86_sse2_maskmov_dqu, 133852}, // __builtin_ia32_maskmovdqu
-      {Intrinsic::x86_mmx_maskmovq, 130339}, // __builtin_ia32_maskmovq
-      {Intrinsic::x86_avx2_maskstore_d, 101468}, // __builtin_ia32_maskstored
-      {Intrinsic::x86_avx2_maskstore_d_256, 101494}, // __builtin_ia32_maskstored256
-      {Intrinsic::x86_avx_maskstore_pd, 99955}, // __builtin_ia32_maskstorepd
-      {Intrinsic::x86_avx_maskstore_pd_256, 99982}, // __builtin_ia32_maskstorepd256
-      {Intrinsic::x86_avx_maskstore_ps, 100012}, // __builtin_ia32_maskstoreps
-      {Intrinsic::x86_avx_maskstore_ps_256, 100039}, // __builtin_ia32_maskstoreps256
-      {Intrinsic::x86_avx2_maskstore_q, 101523}, // __builtin_ia32_maskstoreq
-      {Intrinsic::x86_avx2_maskstore_q_256, 101549}, // __builtin_ia32_maskstoreq256
-      {Intrinsic::x86_sse2_max_pd, 133878}, // __builtin_ia32_maxpd
-      {Intrinsic::x86_avx_max_pd_256, 100069}, // __builtin_ia32_maxpd256
-      {Intrinsic::x86_avx512_mask_max_pd_512, 110917}, // __builtin_ia32_maxpd512_mask
-      {Intrinsic::x86_sse_max_ps, 132946}, // __builtin_ia32_maxps
-      {Intrinsic::x86_avx_max_ps_256, 100093}, // __builtin_ia32_maxps256
-      {Intrinsic::x86_avx512_mask_max_ps_512, 110946}, // __builtin_ia32_maxps512_mask
-      {Intrinsic::x86_sse2_max_sd, 133899}, // __builtin_ia32_maxsd
-      {Intrinsic::x86_avx512_mask_max_sd_round, 110975}, // __builtin_ia32_maxsd_round_mask
-      {Intrinsic::x86_sse_max_ss, 132967}, // __builtin_ia32_maxss
-      {Intrinsic::x86_avx512_mask_max_ss_round, 111007}, // __builtin_ia32_maxss_round_mask
-      {Intrinsic::x86_sse2_mfence, 133920}, // __builtin_ia32_mfence
-      {Intrinsic::x86_sse2_min_pd, 133942}, // __builtin_ia32_minpd
-      {Intrinsic::x86_avx_min_pd_256, 100117}, // __builtin_ia32_minpd256
-      {Intrinsic::x86_avx512_mask_min_pd_512, 111039}, // __builtin_ia32_minpd512_mask
-      {Intrinsic::x86_sse_min_ps, 132988}, // __builtin_ia32_minps
-      {Intrinsic::x86_avx_min_ps_256, 100141}, // __builtin_ia32_minps256
-      {Intrinsic::x86_avx512_mask_min_ps_512, 111068}, // __builtin_ia32_minps512_mask
-      {Intrinsic::x86_sse2_min_sd, 133963}, // __builtin_ia32_minsd
-      {Intrinsic::x86_avx512_mask_min_sd_round, 111097}, // __builtin_ia32_minsd_round_mask
-      {Intrinsic::x86_sse_min_ss, 133009}, // __builtin_ia32_minss
-      {Intrinsic::x86_avx512_mask_min_ss_round, 111129}, // __builtin_ia32_minss_round_mask
-      {Intrinsic::x86_sse3_monitor, 135213}, // __builtin_ia32_monitor
-      {Intrinsic::x86_monitorx, 131885}, // __builtin_ia32_monitorx
-      {Intrinsic::x86_sse2_movmsk_pd, 133984}, // __builtin_ia32_movmskpd
-      {Intrinsic::x86_avx_movmsk_pd_256, 100165}, // __builtin_ia32_movmskpd256
-      {Intrinsic::x86_sse_movmsk_ps, 133030}, // __builtin_ia32_movmskps
-      {Intrinsic::x86_avx_movmsk_ps_256, 100192}, // __builtin_ia32_movmskps256
-      {Intrinsic::x86_mmx_movnt_dq, 130363}, // __builtin_ia32_movntq
-      {Intrinsic::x86_sse41_mpsadbw, 135372}, // __builtin_ia32_mpsadbw128
-      {Intrinsic::x86_avx2_mpsadbw, 101578}, // __builtin_ia32_mpsadbw256
-      {Intrinsic::x86_avx512_mask_mul_pd_512, 111161}, // __builtin_ia32_mulpd512_mask
-      {Intrinsic::x86_avx512_mask_mul_ps_512, 111190}, // __builtin_ia32_mulps512_mask
-      {Intrinsic::x86_avx512_mask_mul_sd_round, 111219}, // __builtin_ia32_mulsd_round_mask
-      {Intrinsic::x86_avx512_mask_mul_ss_round, 111251}, // __builtin_ia32_mulss_round_mask
-      {Intrinsic::x86_sse3_mwait, 135236}, // __builtin_ia32_mwait
-      {Intrinsic::x86_mwaitx, 131909}, // __builtin_ia32_mwaitx
-      {Intrinsic::x86_ssse3_pabs_b, 136259}, // __builtin_ia32_pabsb
-      {Intrinsic::x86_ssse3_pabs_d, 136280}, // __builtin_ia32_pabsd
-      {Intrinsic::x86_ssse3_pabs_w, 136301}, // __builtin_ia32_pabsw
-      {Intrinsic::x86_mmx_packssdw, 130385}, // __builtin_ia32_packssdw
-      {Intrinsic::x86_sse2_packssdw_128, 134008}, // __builtin_ia32_packssdw128
-      {Intrinsic::x86_avx2_packssdw, 101604}, // __builtin_ia32_packssdw256
-      {Intrinsic::x86_avx512_packssdw_512, 126183}, // __builtin_ia32_packssdw512
-      {Intrinsic::x86_mmx_packsswb, 130409}, // __builtin_ia32_packsswb
-      {Intrinsic::x86_sse2_packsswb_128, 134035}, // __builtin_ia32_packsswb128
-      {Intrinsic::x86_avx2_packsswb, 101631}, // __builtin_ia32_packsswb256
-      {Intrinsic::x86_avx512_packsswb_512, 126210}, // __builtin_ia32_packsswb512
-      {Intrinsic::x86_sse41_packusdw, 135398}, // __builtin_ia32_packusdw128
-      {Intrinsic::x86_avx2_packusdw, 101658}, // __builtin_ia32_packusdw256
-      {Intrinsic::x86_avx512_packusdw_512, 126237}, // __builtin_ia32_packusdw512
-      {Intrinsic::x86_mmx_packuswb, 130433}, // __builtin_ia32_packuswb
-      {Intrinsic::x86_sse2_packuswb_128, 134062}, // __builtin_ia32_packuswb128
-      {Intrinsic::x86_avx2_packuswb, 101685}, // __builtin_ia32_packuswb256
-      {Intrinsic::x86_avx512_packuswb_512, 126264}, // __builtin_ia32_packuswb512
-      {Intrinsic::x86_mmx_padd_b, 130457}, // __builtin_ia32_paddb
-      {Intrinsic::x86_mmx_padd_d, 130478}, // __builtin_ia32_paddd
-      {Intrinsic::x86_mmx_padd_q, 130499}, // __builtin_ia32_paddq
-      {Intrinsic::x86_mmx_padds_b, 130541}, // __builtin_ia32_paddsb
-      {Intrinsic::x86_sse2_padds_b, 134089}, // __builtin_ia32_paddsb128
-      {Intrinsic::x86_avx2_padds_b, 101712}, // __builtin_ia32_paddsb256
-      {Intrinsic::x86_avx512_mask_padds_b_512, 111283}, // __builtin_ia32_paddsb512_mask
-      {Intrinsic::x86_mmx_padds_w, 130563}, // __builtin_ia32_paddsw
-      {Intrinsic::x86_sse2_padds_w, 134114}, // __builtin_ia32_paddsw128
-      {Intrinsic::x86_avx2_padds_w, 101737}, // __builtin_ia32_paddsw256
-      {Intrinsic::x86_avx512_mask_padds_w_512, 111313}, // __builtin_ia32_paddsw512_mask
-      {Intrinsic::x86_mmx_paddus_b, 130585}, // __builtin_ia32_paddusb
-      {Intrinsic::x86_sse2_paddus_b, 134139}, // __builtin_ia32_paddusb128
-      {Intrinsic::x86_avx2_paddus_b, 101762}, // __builtin_ia32_paddusb256
-      {Intrinsic::x86_avx512_mask_paddus_b_512, 111343}, // __builtin_ia32_paddusb512_mask
-      {Intrinsic::x86_mmx_paddus_w, 130608}, // __builtin_ia32_paddusw
-      {Intrinsic::x86_sse2_paddus_w, 134165}, // __builtin_ia32_paddusw128
-      {Intrinsic::x86_avx2_paddus_w, 101788}, // __builtin_ia32_paddusw256
-      {Intrinsic::x86_avx512_mask_paddus_w_512, 111374}, // __builtin_ia32_paddusw512_mask
-      {Intrinsic::x86_mmx_padd_w, 130520}, // __builtin_ia32_paddw
-      {Intrinsic::x86_mmx_palignr_b, 130631}, // __builtin_ia32_palignr
-      {Intrinsic::x86_mmx_pand, 130654}, // __builtin_ia32_pand
-      {Intrinsic::x86_mmx_pandn, 130674}, // __builtin_ia32_pandn
-      {Intrinsic::x86_sse2_pause, 134191}, // __builtin_ia32_pause
-      {Intrinsic::x86_mmx_pavg_b, 130695}, // __builtin_ia32_pavgb
-      {Intrinsic::x86_3dnow_pavgusb, 98421}, // __builtin_ia32_pavgusb
-      {Intrinsic::x86_mmx_pavg_w, 130716}, // __builtin_ia32_pavgw
-      {Intrinsic::x86_sse41_pblendvb, 135425}, // __builtin_ia32_pblendvb128
-      {Intrinsic::x86_avx2_pblendvb, 101814}, // __builtin_ia32_pblendvb256
-      {Intrinsic::x86_pclmulqdq, 131931}, // __builtin_ia32_pclmulqdq128
-      {Intrinsic::x86_pclmulqdq_256, 131959}, // __builtin_ia32_pclmulqdq256
-      {Intrinsic::x86_pclmulqdq_512, 131987}, // __builtin_ia32_pclmulqdq512
-      {Intrinsic::x86_mmx_pcmpeq_b, 130737}, // __builtin_ia32_pcmpeqb
-      {Intrinsic::x86_mmx_pcmpeq_d, 130760}, // __builtin_ia32_pcmpeqd
-      {Intrinsic::x86_mmx_pcmpeq_w, 130783}, // __builtin_ia32_pcmpeqw
-      {Intrinsic::x86_sse42_pcmpestri128, 135767}, // __builtin_ia32_pcmpestri128
-      {Intrinsic::x86_sse42_pcmpestria128, 135795}, // __builtin_ia32_pcmpestria128
-      {Intrinsic::x86_sse42_pcmpestric128, 135824}, // __builtin_ia32_pcmpestric128
-      {Intrinsic::x86_sse42_pcmpestrio128, 135853}, // __builtin_ia32_pcmpestrio128
-      {Intrinsic::x86_sse42_pcmpestris128, 135882}, // __builtin_ia32_pcmpestris128
-      {Intrinsic::x86_sse42_pcmpestriz128, 135911}, // __builtin_ia32_pcmpestriz128
-      {Intrinsic::x86_sse42_pcmpestrm128, 135940}, // __builtin_ia32_pcmpestrm128
-      {Intrinsic::x86_mmx_pcmpgt_b, 130806}, // __builtin_ia32_pcmpgtb
-      {Intrinsic::x86_mmx_pcmpgt_d, 130829}, // __builtin_ia32_pcmpgtd
-      {Intrinsic::x86_mmx_pcmpgt_w, 130852}, // __builtin_ia32_pcmpgtw
-      {Intrinsic::x86_sse42_pcmpistri128, 135968}, // __builtin_ia32_pcmpistri128
-      {Intrinsic::x86_sse42_pcmpistria128, 135996}, // __builtin_ia32_pcmpistria128
-      {Intrinsic::x86_sse42_pcmpistric128, 136025}, // __builtin_ia32_pcmpistric128
-      {Intrinsic::x86_sse42_pcmpistrio128, 136054}, // __builtin_ia32_pcmpistrio128
-      {Intrinsic::x86_sse42_pcmpistris128, 136083}, // __builtin_ia32_pcmpistris128
-      {Intrinsic::x86_sse42_pcmpistriz128, 136112}, // __builtin_ia32_pcmpistriz128
-      {Intrinsic::x86_sse42_pcmpistrm128, 136141}, // __builtin_ia32_pcmpistrm128
-      {Intrinsic::x86_bmi_pdep_64, 129443}, // __builtin_ia32_pdep_di
-      {Intrinsic::x86_bmi_pdep_32, 129420}, // __builtin_ia32_pdep_si
-      {Intrinsic::x86_avx512_mask_permvar_df_256, 111405}, // __builtin_ia32_permvardf256_mask
-      {Intrinsic::x86_avx512_mask_permvar_df_512, 111438}, // __builtin_ia32_permvardf512_mask
-      {Intrinsic::x86_avx512_mask_permvar_di_256, 111471}, // __builtin_ia32_permvardi256_mask
-      {Intrinsic::x86_avx512_mask_permvar_di_512, 111504}, // __builtin_ia32_permvardi512_mask
-      {Intrinsic::x86_avx512_mask_permvar_hi_128, 111537}, // __builtin_ia32_permvarhi128_mask
-      {Intrinsic::x86_avx512_mask_permvar_hi_256, 111570}, // __builtin_ia32_permvarhi256_mask
-      {Intrinsic::x86_avx512_mask_permvar_hi_512, 111603}, // __builtin_ia32_permvarhi512_mask
-      {Intrinsic::x86_avx512_mask_permvar_qi_128, 111636}, // __builtin_ia32_permvarqi128_mask
-      {Intrinsic::x86_avx512_mask_permvar_qi_256, 111669}, // __builtin_ia32_permvarqi256_mask
-      {Intrinsic::x86_avx512_mask_permvar_qi_512, 111702}, // __builtin_ia32_permvarqi512_mask
-      {Intrinsic::x86_avx2_permps, 101869}, // __builtin_ia32_permvarsf256
-      {Intrinsic::x86_avx512_mask_permvar_sf_512, 111735}, // __builtin_ia32_permvarsf512_mask
-      {Intrinsic::x86_avx2_permd, 101841}, // __builtin_ia32_permvarsi256
-      {Intrinsic::x86_avx512_mask_permvar_si_512, 111768}, // __builtin_ia32_permvarsi512_mask
-      {Intrinsic::x86_bmi_pext_64, 129489}, // __builtin_ia32_pext_di
-      {Intrinsic::x86_bmi_pext_32, 129466}, // __builtin_ia32_pext_si
-      {Intrinsic::x86_3dnow_pf2id, 98444}, // __builtin_ia32_pf2id
-      {Intrinsic::x86_3dnowa_pf2iw, 98842}, // __builtin_ia32_pf2iw
-      {Intrinsic::x86_3dnow_pfacc, 98465}, // __builtin_ia32_pfacc
-      {Intrinsic::x86_3dnow_pfadd, 98486}, // __builtin_ia32_pfadd
-      {Intrinsic::x86_3dnow_pfcmpeq, 98507}, // __builtin_ia32_pfcmpeq
-      {Intrinsic::x86_3dnow_pfcmpge, 98530}, // __builtin_ia32_pfcmpge
-      {Intrinsic::x86_3dnow_pfcmpgt, 98553}, // __builtin_ia32_pfcmpgt
-      {Intrinsic::x86_3dnow_pfmax, 98576}, // __builtin_ia32_pfmax
-      {Intrinsic::x86_3dnow_pfmin, 98597}, // __builtin_ia32_pfmin
-      {Intrinsic::x86_3dnow_pfmul, 98618}, // __builtin_ia32_pfmul
-      {Intrinsic::x86_3dnowa_pfnacc, 98863}, // __builtin_ia32_pfnacc
-      {Intrinsic::x86_3dnowa_pfpnacc, 98885}, // __builtin_ia32_pfpnacc
-      {Intrinsic::x86_3dnow_pfrcp, 98639}, // __builtin_ia32_pfrcp
-      {Intrinsic::x86_3dnow_pfrcpit1, 98660}, // __builtin_ia32_pfrcpit1
-      {Intrinsic::x86_3dnow_pfrcpit2, 98684}, // __builtin_ia32_pfrcpit2
-      {Intrinsic::x86_3dnow_pfrsqit1, 98708}, // __builtin_ia32_pfrsqit1
-      {Intrinsic::x86_3dnow_pfrsqrt, 98732}, // __builtin_ia32_pfrsqrt
-      {Intrinsic::x86_3dnow_pfsub, 98755}, // __builtin_ia32_pfsub
-      {Intrinsic::x86_3dnow_pfsubr, 98776}, // __builtin_ia32_pfsubr
-      {Intrinsic::x86_ssse3_phadd_d, 136322}, // __builtin_ia32_phaddd
-      {Intrinsic::x86_ssse3_phadd_d_128, 136344}, // __builtin_ia32_phaddd128
-      {Intrinsic::x86_avx2_phadd_d, 101897}, // __builtin_ia32_phaddd256
-      {Intrinsic::x86_ssse3_phadd_sw, 136369}, // __builtin_ia32_phaddsw
-      {Intrinsic::x86_ssse3_phadd_sw_128, 136392}, // __builtin_ia32_phaddsw128
-      {Intrinsic::x86_avx2_phadd_sw, 101922}, // __builtin_ia32_phaddsw256
-      {Intrinsic::x86_ssse3_phadd_w, 136418}, // __builtin_ia32_phaddw
-      {Intrinsic::x86_ssse3_phadd_w_128, 136440}, // __builtin_ia32_phaddw128
-      {Intrinsic::x86_avx2_phadd_w, 101948}, // __builtin_ia32_phaddw256
-      {Intrinsic::x86_sse41_phminposuw, 135452}, // __builtin_ia32_phminposuw128
-      {Intrinsic::x86_ssse3_phsub_d, 136465}, // __builtin_ia32_phsubd
-      {Intrinsic::x86_ssse3_phsub_d_128, 136487}, // __builtin_ia32_phsubd128
-      {Intrinsic::x86_avx2_phsub_d, 101973}, // __builtin_ia32_phsubd256
-      {Intrinsic::x86_ssse3_phsub_sw, 136512}, // __builtin_ia32_phsubsw
-      {Intrinsic::x86_ssse3_phsub_sw_128, 136535}, // __builtin_ia32_phsubsw128
-      {Intrinsic::x86_avx2_phsub_sw, 101998}, // __builtin_ia32_phsubsw256
-      {Intrinsic::x86_ssse3_phsub_w, 136561}, // __builtin_ia32_phsubw
-      {Intrinsic::x86_ssse3_phsub_w_128, 136583}, // __builtin_ia32_phsubw128
-      {Intrinsic::x86_avx2_phsub_w, 102024}, // __builtin_ia32_phsubw256
-      {Intrinsic::x86_3dnow_pi2fd, 98798}, // __builtin_ia32_pi2fd
-      {Intrinsic::x86_3dnowa_pi2fw, 98908}, // __builtin_ia32_pi2fw
-      {Intrinsic::x86_ssse3_pmadd_ub_sw, 136608}, // __builtin_ia32_pmaddubsw
-      {Intrinsic::x86_ssse3_pmadd_ub_sw_128, 136633}, // __builtin_ia32_pmaddubsw128
-      {Intrinsic::x86_avx2_pmadd_ub_sw, 102049}, // __builtin_ia32_pmaddubsw256
-      {Intrinsic::x86_avx512_mask_pmaddubs_w_512, 111801}, // __builtin_ia32_pmaddubsw512_mask
-      {Intrinsic::x86_mmx_pmadd_wd, 130931}, // __builtin_ia32_pmaddwd
-      {Intrinsic::x86_sse2_pmadd_wd, 134212}, // __builtin_ia32_pmaddwd128
-      {Intrinsic::x86_avx2_pmadd_wd, 102077}, // __builtin_ia32_pmaddwd256
-      {Intrinsic::x86_avx512_mask_pmaddw_d_512, 111834}, // __builtin_ia32_pmaddwd512_mask
-      {Intrinsic::x86_mmx_pmaxs_w, 130954}, // __builtin_ia32_pmaxsw
-      {Intrinsic::x86_mmx_pmaxu_b, 130976}, // __builtin_ia32_pmaxub
-      {Intrinsic::x86_mmx_pmins_w, 130998}, // __builtin_ia32_pminsw
-      {Intrinsic::x86_mmx_pminu_b, 131020}, // __builtin_ia32_pminub
-      {Intrinsic::x86_avx512_mask_pmov_db_128, 111865}, // __builtin_ia32_pmovdb128_mask
-      {Intrinsic::x86_avx512_mask_pmov_db_mem_128, 111955}, // __builtin_ia32_pmovdb128mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_db_256, 111895}, // __builtin_ia32_pmovdb256_mask
-      {Intrinsic::x86_avx512_mask_pmov_db_mem_256, 111988}, // __builtin_ia32_pmovdb256mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_db_512, 111925}, // __builtin_ia32_pmovdb512_mask
-      {Intrinsic::x86_avx512_mask_pmov_db_mem_512, 112021}, // __builtin_ia32_pmovdb512mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_dw_128, 112054}, // __builtin_ia32_pmovdw128_mask
-      {Intrinsic::x86_avx512_mask_pmov_dw_mem_128, 112144}, // __builtin_ia32_pmovdw128mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_dw_256, 112084}, // __builtin_ia32_pmovdw256_mask
-      {Intrinsic::x86_avx512_mask_pmov_dw_mem_256, 112177}, // __builtin_ia32_pmovdw256mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_dw_512, 112114}, // __builtin_ia32_pmovdw512_mask
-      {Intrinsic::x86_avx512_mask_pmov_dw_mem_512, 112210}, // __builtin_ia32_pmovdw512mem_mask
-      {Intrinsic::x86_mmx_pmovmskb, 131042}, // __builtin_ia32_pmovmskb
-      {Intrinsic::x86_sse2_pmovmskb_128, 134238}, // __builtin_ia32_pmovmskb128
-      {Intrinsic::x86_avx2_pmovmskb, 102103}, // __builtin_ia32_pmovmskb256
-      {Intrinsic::x86_avx512_mask_pmov_qb_128, 112243}, // __builtin_ia32_pmovqb128_mask
-      {Intrinsic::x86_avx512_mask_pmov_qb_mem_128, 112333}, // __builtin_ia32_pmovqb128mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_qb_256, 112273}, // __builtin_ia32_pmovqb256_mask
-      {Intrinsic::x86_avx512_mask_pmov_qb_mem_256, 112366}, // __builtin_ia32_pmovqb256mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_qb_512, 112303}, // __builtin_ia32_pmovqb512_mask
-      {Intrinsic::x86_avx512_mask_pmov_qb_mem_512, 112399}, // __builtin_ia32_pmovqb512mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_qd_128, 112432}, // __builtin_ia32_pmovqd128_mask
-      {Intrinsic::x86_avx512_mask_pmov_qd_mem_128, 112522}, // __builtin_ia32_pmovqd128mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_qd_256, 112462}, // __builtin_ia32_pmovqd256_mask
-      {Intrinsic::x86_avx512_mask_pmov_qd_mem_256, 112555}, // __builtin_ia32_pmovqd256mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_qd_512, 112492}, // __builtin_ia32_pmovqd512_mask
-      {Intrinsic::x86_avx512_mask_pmov_qd_mem_512, 112588}, // __builtin_ia32_pmovqd512mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_qw_128, 112621}, // __builtin_ia32_pmovqw128_mask
-      {Intrinsic::x86_avx512_mask_pmov_qw_mem_128, 112711}, // __builtin_ia32_pmovqw128mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_qw_256, 112651}, // __builtin_ia32_pmovqw256_mask
-      {Intrinsic::x86_avx512_mask_pmov_qw_mem_256, 112744}, // __builtin_ia32_pmovqw256mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_qw_512, 112681}, // __builtin_ia32_pmovqw512_mask
-      {Intrinsic::x86_avx512_mask_pmov_qw_mem_512, 112777}, // __builtin_ia32_pmovqw512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_db_128, 112999}, // __builtin_ia32_pmovsdb128_mask
-      {Intrinsic::x86_avx512_mask_pmovs_db_mem_128, 113092}, // __builtin_ia32_pmovsdb128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_db_256, 113030}, // __builtin_ia32_pmovsdb256_mask
-      {Intrinsic::x86_avx512_mask_pmovs_db_mem_256, 113126}, // __builtin_ia32_pmovsdb256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_db_512, 113061}, // __builtin_ia32_pmovsdb512_mask
-      {Intrinsic::x86_avx512_mask_pmovs_db_mem_512, 113160}, // __builtin_ia32_pmovsdb512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_dw_128, 113194}, // __builtin_ia32_pmovsdw128_mask
-      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_128, 113287}, // __builtin_ia32_pmovsdw128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_dw_256, 113225}, // __builtin_ia32_pmovsdw256_mask
-      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_256, 113321}, // __builtin_ia32_pmovsdw256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_dw_512, 113256}, // __builtin_ia32_pmovsdw512_mask
-      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_512, 113355}, // __builtin_ia32_pmovsdw512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qb_128, 113389}, // __builtin_ia32_pmovsqb128_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_128, 113482}, // __builtin_ia32_pmovsqb128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qb_256, 113420}, // __builtin_ia32_pmovsqb256_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_256, 113516}, // __builtin_ia32_pmovsqb256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qb_512, 113451}, // __builtin_ia32_pmovsqb512_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_512, 113550}, // __builtin_ia32_pmovsqb512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qd_128, 113584}, // __builtin_ia32_pmovsqd128_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_128, 113677}, // __builtin_ia32_pmovsqd128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qd_256, 113615}, // __builtin_ia32_pmovsqd256_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_256, 113711}, // __builtin_ia32_pmovsqd256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qd_512, 113646}, // __builtin_ia32_pmovsqd512_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_512, 113745}, // __builtin_ia32_pmovsqd512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qw_128, 113779}, // __builtin_ia32_pmovsqw128_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_128, 113872}, // __builtin_ia32_pmovsqw128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qw_256, 113810}, // __builtin_ia32_pmovsqw256_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_256, 113906}, // __builtin_ia32_pmovsqw256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qw_512, 113841}, // __builtin_ia32_pmovsqw512_mask
-      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_512, 113940}, // __builtin_ia32_pmovsqw512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_wb_128, 113974}, // __builtin_ia32_pmovswb128_mask
-      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_128, 114067}, // __builtin_ia32_pmovswb128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_wb_256, 114005}, // __builtin_ia32_pmovswb256_mask
-      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_256, 114101}, // __builtin_ia32_pmovswb256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovs_wb_512, 114036}, // __builtin_ia32_pmovswb512_mask
-      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_512, 114135}, // __builtin_ia32_pmovswb512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_db_128, 114169}, // __builtin_ia32_pmovusdb128_mask
-      {Intrinsic::x86_avx512_mask_pmovus_db_mem_128, 114265}, // __builtin_ia32_pmovusdb128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_db_256, 114201}, // __builtin_ia32_pmovusdb256_mask
-      {Intrinsic::x86_avx512_mask_pmovus_db_mem_256, 114300}, // __builtin_ia32_pmovusdb256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_db_512, 114233}, // __builtin_ia32_pmovusdb512_mask
-      {Intrinsic::x86_avx512_mask_pmovus_db_mem_512, 114335}, // __builtin_ia32_pmovusdb512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_dw_128, 114370}, // __builtin_ia32_pmovusdw128_mask
-      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_128, 114466}, // __builtin_ia32_pmovusdw128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_dw_256, 114402}, // __builtin_ia32_pmovusdw256_mask
-      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_256, 114501}, // __builtin_ia32_pmovusdw256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_dw_512, 114434}, // __builtin_ia32_pmovusdw512_mask
-      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_512, 114536}, // __builtin_ia32_pmovusdw512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qb_128, 114571}, // __builtin_ia32_pmovusqb128_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_128, 114667}, // __builtin_ia32_pmovusqb128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qb_256, 114603}, // __builtin_ia32_pmovusqb256_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_256, 114702}, // __builtin_ia32_pmovusqb256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qb_512, 114635}, // __builtin_ia32_pmovusqb512_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_512, 114737}, // __builtin_ia32_pmovusqb512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qd_128, 114772}, // __builtin_ia32_pmovusqd128_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_128, 114868}, // __builtin_ia32_pmovusqd128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qd_256, 114804}, // __builtin_ia32_pmovusqd256_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_256, 114903}, // __builtin_ia32_pmovusqd256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qd_512, 114836}, // __builtin_ia32_pmovusqd512_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_512, 114938}, // __builtin_ia32_pmovusqd512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qw_128, 114973}, // __builtin_ia32_pmovusqw128_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_128, 115069}, // __builtin_ia32_pmovusqw128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qw_256, 115005}, // __builtin_ia32_pmovusqw256_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_256, 115104}, // __builtin_ia32_pmovusqw256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qw_512, 115037}, // __builtin_ia32_pmovusqw512_mask
-      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_512, 115139}, // __builtin_ia32_pmovusqw512mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_wb_128, 115174}, // __builtin_ia32_pmovuswb128_mask
-      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_128, 115270}, // __builtin_ia32_pmovuswb128mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_wb_256, 115206}, // __builtin_ia32_pmovuswb256_mask
-      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_256, 115305}, // __builtin_ia32_pmovuswb256mem_mask
-      {Intrinsic::x86_avx512_mask_pmovus_wb_512, 115238}, // __builtin_ia32_pmovuswb512_mask
-      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_512, 115340}, // __builtin_ia32_pmovuswb512mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_wb_128, 112810}, // __builtin_ia32_pmovwb128_mask
-      {Intrinsic::x86_avx512_mask_pmov_wb_mem_128, 112900}, // __builtin_ia32_pmovwb128mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_wb_256, 112840}, // __builtin_ia32_pmovwb256_mask
-      {Intrinsic::x86_avx512_mask_pmov_wb_mem_256, 112933}, // __builtin_ia32_pmovwb256mem_mask
-      {Intrinsic::x86_avx512_mask_pmov_wb_512, 112870}, // __builtin_ia32_pmovwb512_mask
-      {Intrinsic::x86_avx512_mask_pmov_wb_mem_512, 112966}, // __builtin_ia32_pmovwb512mem_mask
-      {Intrinsic::x86_sse41_pmuldq, 135481}, // __builtin_ia32_pmuldq128
-      {Intrinsic::x86_avx2_pmul_dq, 102130}, // __builtin_ia32_pmuldq256
-      {Intrinsic::x86_avx512_pmul_dq_512, 126291}, // __builtin_ia32_pmuldq512
-      {Intrinsic::x86_ssse3_pmul_hr_sw, 136661}, // __builtin_ia32_pmulhrsw
-      {Intrinsic::x86_ssse3_pmul_hr_sw_128, 136685}, // __builtin_ia32_pmulhrsw128
-      {Intrinsic::x86_avx2_pmul_hr_sw, 102155}, // __builtin_ia32_pmulhrsw256
-      {Intrinsic::x86_avx512_pmul_hr_sw_512, 126316}, // __builtin_ia32_pmulhrsw512
-      {Intrinsic::x86_3dnow_pmulhrw, 98819}, // __builtin_ia32_pmulhrw
-      {Intrinsic::x86_mmx_pmulhu_w, 131088}, // __builtin_ia32_pmulhuw
-      {Intrinsic::x86_sse2_pmulhu_w, 134290}, // __builtin_ia32_pmulhuw128
-      {Intrinsic::x86_avx2_pmulhu_w, 102207}, // __builtin_ia32_pmulhuw256
-      {Intrinsic::x86_avx512_pmulhu_w_512, 126368}, // __builtin_ia32_pmulhuw512
-      {Intrinsic::x86_mmx_pmulh_w, 131066}, // __builtin_ia32_pmulhw
-      {Intrinsic::x86_sse2_pmulh_w, 134265}, // __builtin_ia32_pmulhw128
-      {Intrinsic::x86_avx2_pmulh_w, 102182}, // __builtin_ia32_pmulhw256
-      {Intrinsic::x86_avx512_pmulh_w_512, 126343}, // __builtin_ia32_pmulhw512
-      {Intrinsic::x86_mmx_pmull_w, 131111}, // __builtin_ia32_pmullw
-      {Intrinsic::x86_mmx_pmulu_dq, 131133}, // __builtin_ia32_pmuludq
-      {Intrinsic::x86_sse2_pmulu_dq, 134316}, // __builtin_ia32_pmuludq128
-      {Intrinsic::x86_avx2_pmulu_dq, 102233}, // __builtin_ia32_pmuludq256
-      {Intrinsic::x86_avx512_pmulu_dq_512, 126394}, // __builtin_ia32_pmuludq512
-      {Intrinsic::x86_mmx_por, 131156}, // __builtin_ia32_por
-      {Intrinsic::x86_avx512_mask_prol_d_128, 115489}, // __builtin_ia32_prold128_mask
-      {Intrinsic::x86_avx512_mask_prol_d_256, 115518}, // __builtin_ia32_prold256_mask
-      {Intrinsic::x86_avx512_mask_prol_d_512, 115547}, // __builtin_ia32_prold512_mask
-      {Intrinsic::x86_avx512_mask_prol_q_128, 115576}, // __builtin_ia32_prolq128_mask
-      {Intrinsic::x86_avx512_mask_prol_q_256, 115605}, // __builtin_ia32_prolq256_mask
-      {Intrinsic::x86_avx512_mask_prol_q_512, 115634}, // __builtin_ia32_prolq512_mask
-      {Intrinsic::x86_avx512_mask_prolv_d_128, 115663}, // __builtin_ia32_prolvd128_mask
-      {Intrinsic::x86_avx512_mask_prolv_d_256, 115693}, // __builtin_ia32_prolvd256_mask
-      {Intrinsic::x86_avx512_mask_prolv_d_512, 115723}, // __builtin_ia32_prolvd512_mask
-      {Intrinsic::x86_avx512_mask_prolv_q_128, 115753}, // __builtin_ia32_prolvq128_mask
-      {Intrinsic::x86_avx512_mask_prolv_q_256, 115783}, // __builtin_ia32_prolvq256_mask
-      {Intrinsic::x86_avx512_mask_prolv_q_512, 115813}, // __builtin_ia32_prolvq512_mask
-      {Intrinsic::x86_avx512_mask_pror_d_128, 115843}, // __builtin_ia32_prord128_mask
-      {Intrinsic::x86_avx512_mask_pror_d_256, 115872}, // __builtin_ia32_prord256_mask
-      {Intrinsic::x86_avx512_mask_pror_d_512, 115901}, // __builtin_ia32_prord512_mask
-      {Intrinsic::x86_avx512_mask_pror_q_128, 115930}, // __builtin_ia32_prorq128_mask
-      {Intrinsic::x86_avx512_mask_pror_q_256, 115959}, // __builtin_ia32_prorq256_mask
-      {Intrinsic::x86_avx512_mask_pror_q_512, 115988}, // __builtin_ia32_prorq512_mask
-      {Intrinsic::x86_avx512_mask_prorv_d_128, 116017}, // __builtin_ia32_prorvd128_mask
-      {Intrinsic::x86_avx512_mask_prorv_d_256, 116047}, // __builtin_ia32_prorvd256_mask
-      {Intrinsic::x86_avx512_mask_prorv_d_512, 116077}, // __builtin_ia32_prorvd512_mask
-      {Intrinsic::x86_avx512_mask_prorv_q_128, 116107}, // __builtin_ia32_prorvq128_mask
-      {Intrinsic::x86_avx512_mask_prorv_q_256, 116137}, // __builtin_ia32_prorvq256_mask
-      {Intrinsic::x86_avx512_mask_prorv_q_512, 116167}, // __builtin_ia32_prorvq512_mask
-      {Intrinsic::x86_mmx_psad_bw, 131175}, // __builtin_ia32_psadbw
-      {Intrinsic::x86_sse2_psad_bw, 134342}, // __builtin_ia32_psadbw128
-      {Intrinsic::x86_avx2_psad_bw, 102259}, // __builtin_ia32_psadbw256
-      {Intrinsic::x86_avx512_psad_bw_512, 126420}, // __builtin_ia32_psadbw512
-      {Intrinsic::x86_ssse3_pshuf_b, 136712}, // __builtin_ia32_pshufb
-      {Intrinsic::x86_ssse3_pshuf_b_128, 136734}, // __builtin_ia32_pshufb128
-      {Intrinsic::x86_avx2_pshuf_b, 102284}, // __builtin_ia32_pshufb256
-      {Intrinsic::x86_avx512_pshuf_b_512, 126445}, // __builtin_ia32_pshufb512
-      {Intrinsic::x86_sse_pshuf_w, 133054}, // __builtin_ia32_pshufw
-      {Intrinsic::x86_ssse3_psign_b, 136759}, // __builtin_ia32_psignb
-      {Intrinsic::x86_ssse3_psign_b_128, 136781}, // __builtin_ia32_psignb128
-      {Intrinsic::x86_avx2_psign_b, 102309}, // __builtin_ia32_psignb256
-      {Intrinsic::x86_ssse3_psign_d, 136806}, // __builtin_ia32_psignd
-      {Intrinsic::x86_ssse3_psign_d_128, 136828}, // __builtin_ia32_psignd128
-      {Intrinsic::x86_avx2_psign_d, 102334}, // __builtin_ia32_psignd256
-      {Intrinsic::x86_ssse3_psign_w, 136853}, // __builtin_ia32_psignw
-      {Intrinsic::x86_ssse3_psign_w_128, 136875}, // __builtin_ia32_psignw128
-      {Intrinsic::x86_avx2_psign_w, 102359}, // __builtin_ia32_psignw256
-      {Intrinsic::x86_mmx_psll_d, 131197}, // __builtin_ia32_pslld
-      {Intrinsic::x86_sse2_psll_d, 134367}, // __builtin_ia32_pslld128
-      {Intrinsic::x86_avx2_psll_d, 102384}, // __builtin_ia32_pslld256
-      {Intrinsic::x86_avx512_psll_d_512, 126470}, // __builtin_ia32_pslld512
-      {Intrinsic::x86_mmx_pslli_d, 131260}, // __builtin_ia32_pslldi
-      {Intrinsic::x86_sse2_pslli_d, 134439}, // __builtin_ia32_pslldi128
-      {Intrinsic::x86_avx2_pslli_d, 102456}, // __builtin_ia32_pslldi256
-      {Intrinsic::x86_avx512_pslli_d_512, 126542}, // __builtin_ia32_pslldi512
-      {Intrinsic::x86_mmx_psll_q, 131218}, // __builtin_ia32_psllq
-      {Intrinsic::x86_sse2_psll_q, 134391}, // __builtin_ia32_psllq128
-      {Intrinsic::x86_avx2_psll_q, 102408}, // __builtin_ia32_psllq256
-      {Intrinsic::x86_avx512_psll_q_512, 126494}, // __builtin_ia32_psllq512
-      {Intrinsic::x86_mmx_pslli_q, 131282}, // __builtin_ia32_psllqi
-      {Intrinsic::x86_sse2_pslli_q, 134464}, // __builtin_ia32_psllqi128
-      {Intrinsic::x86_avx2_pslli_q, 102481}, // __builtin_ia32_psllqi256
-      {Intrinsic::x86_avx512_pslli_q_512, 126567}, // __builtin_ia32_psllqi512
-      {Intrinsic::x86_avx512_psllv_w_256, 126690}, // __builtin_ia32_psllv16hi
-      {Intrinsic::x86_avx512_psllv_d_512, 126617}, // __builtin_ia32_psllv16si
-      {Intrinsic::x86_avx2_psllv_q, 102579}, // __builtin_ia32_psllv2di
-      {Intrinsic::x86_avx512_psllv_w_512, 126715}, // __builtin_ia32_psllv32hi
-      {Intrinsic::x86_avx2_psllv_q_256, 102603}, // __builtin_ia32_psllv4di
-      {Intrinsic::x86_avx2_psllv_d, 102531}, // __builtin_ia32_psllv4si
-      {Intrinsic::x86_avx512_psllv_q_512, 126642}, // __builtin_ia32_psllv8di
-      {Intrinsic::x86_avx512_psllv_w_128, 126666}, // __builtin_ia32_psllv8hi
-      {Intrinsic::x86_avx2_psllv_d_256, 102555}, // __builtin_ia32_psllv8si
-      {Intrinsic::x86_mmx_psll_w, 131239}, // __builtin_ia32_psllw
-      {Intrinsic::x86_sse2_psll_w, 134415}, // __builtin_ia32_psllw128
-      {Intrinsic::x86_avx2_psll_w, 102432}, // __builtin_ia32_psllw256
-      {Intrinsic::x86_avx512_psll_w_512, 126518}, // __builtin_ia32_psllw512
-      {Intrinsic::x86_mmx_pslli_w, 131304}, // __builtin_ia32_psllwi
-      {Intrinsic::x86_sse2_pslli_w, 134489}, // __builtin_ia32_psllwi128
-      {Intrinsic::x86_avx2_pslli_w, 102506}, // __builtin_ia32_psllwi256
-      {Intrinsic::x86_avx512_pslli_w_512, 126592}, // __builtin_ia32_psllwi512
-      {Intrinsic::x86_mmx_psra_d, 131326}, // __builtin_ia32_psrad
-      {Intrinsic::x86_sse2_psra_d, 134514}, // __builtin_ia32_psrad128
-      {Intrinsic::x86_avx2_psra_d, 102627}, // __builtin_ia32_psrad256
-      {Intrinsic::x86_avx512_psra_d_512, 126740}, // __builtin_ia32_psrad512
-      {Intrinsic::x86_mmx_psrai_d, 131368}, // __builtin_ia32_psradi
-      {Intrinsic::x86_sse2_psrai_d, 134562}, // __builtin_ia32_psradi128
-      {Intrinsic::x86_avx2_psrai_d, 102675}, // __builtin_ia32_psradi256
-      {Intrinsic::x86_avx512_psrai_d_512, 126860}, // __builtin_ia32_psradi512
-      {Intrinsic::x86_avx512_psra_q_128, 126764}, // __builtin_ia32_psraq128
-      {Intrinsic::x86_avx512_psra_q_256, 126788}, // __builtin_ia32_psraq256
-      {Intrinsic::x86_avx512_psra_q_512, 126812}, // __builtin_ia32_psraq512
-      {Intrinsic::x86_avx512_psrai_q_128, 126885}, // __builtin_ia32_psraqi128
-      {Intrinsic::x86_avx512_psrai_q_256, 126910}, // __builtin_ia32_psraqi256
-      {Intrinsic::x86_avx512_psrai_q_512, 126935}, // __builtin_ia32_psraqi512
-      {Intrinsic::x86_avx512_psrav_w_256, 127108}, // __builtin_ia32_psrav16hi
-      {Intrinsic::x86_avx512_psrav_d_512, 126985}, // __builtin_ia32_psrav16si
-      {Intrinsic::x86_avx512_psrav_w_512, 127133}, // __builtin_ia32_psrav32hi
-      {Intrinsic::x86_avx2_psrav_d, 102725}, // __builtin_ia32_psrav4si
-      {Intrinsic::x86_avx512_psrav_q_512, 127060}, // __builtin_ia32_psrav8di
-      {Intrinsic::x86_avx512_psrav_w_128, 127084}, // __builtin_ia32_psrav8hi
-      {Intrinsic::x86_avx2_psrav_d_256, 102749}, // __builtin_ia32_psrav8si
-      {Intrinsic::x86_avx512_psrav_q_128, 127010}, // __builtin_ia32_psravq128
-      {Intrinsic::x86_avx512_psrav_q_256, 127035}, // __builtin_ia32_psravq256
-      {Intrinsic::x86_mmx_psra_w, 131347}, // __builtin_ia32_psraw
-      {Intrinsic::x86_sse2_psra_w, 134538}, // __builtin_ia32_psraw128
-      {Intrinsic::x86_avx2_psra_w, 102651}, // __builtin_ia32_psraw256
-      {Intrinsic::x86_avx512_psra_w_512, 126836}, // __builtin_ia32_psraw512
-      {Intrinsic::x86_mmx_psrai_w, 131390}, // __builtin_ia32_psrawi
-      {Intrinsic::x86_sse2_psrai_w, 134587}, // __builtin_ia32_psrawi128
-      {Intrinsic::x86_avx2_psrai_w, 102700}, // __builtin_ia32_psrawi256
-      {Intrinsic::x86_avx512_psrai_w_512, 126960}, // __builtin_ia32_psrawi512
-      {Intrinsic::x86_mmx_psrl_d, 131412}, // __builtin_ia32_psrld
-      {Intrinsic::x86_sse2_psrl_d, 134612}, // __builtin_ia32_psrld128
-      {Intrinsic::x86_avx2_psrl_d, 102773}, // __builtin_ia32_psrld256
-      {Intrinsic::x86_avx512_psrl_d_512, 127158}, // __builtin_ia32_psrld512
-      {Intrinsic::x86_mmx_psrli_d, 131475}, // __builtin_ia32_psrldi
-      {Intrinsic::x86_sse2_psrli_d, 134684}, // __builtin_ia32_psrldi128
-      {Intrinsic::x86_avx2_psrli_d, 102845}, // __builtin_ia32_psrldi256
-      {Intrinsic::x86_avx512_psrli_d_512, 127230}, // __builtin_ia32_psrldi512
-      {Intrinsic::x86_mmx_psrl_q, 131433}, // __builtin_ia32_psrlq
-      {Intrinsic::x86_sse2_psrl_q, 134636}, // __builtin_ia32_psrlq128
-      {Intrinsic::x86_avx2_psrl_q, 102797}, // __builtin_ia32_psrlq256
-      {Intrinsic::x86_avx512_psrl_q_512, 127182}, // __builtin_ia32_psrlq512
-      {Intrinsic::x86_mmx_psrli_q, 131497}, // __builtin_ia32_psrlqi
-      {Intrinsic::x86_sse2_psrli_q, 134709}, // __builtin_ia32_psrlqi128
-      {Intrinsic::x86_avx2_psrli_q, 102870}, // __builtin_ia32_psrlqi256
-      {Intrinsic::x86_avx512_psrli_q_512, 127255}, // __builtin_ia32_psrlqi512
-      {Intrinsic::x86_avx512_psrlv_w_256, 127378}, // __builtin_ia32_psrlv16hi
-      {Intrinsic::x86_avx512_psrlv_d_512, 127305}, // __builtin_ia32_psrlv16si
-      {Intrinsic::x86_avx2_psrlv_q, 102968}, // __builtin_ia32_psrlv2di
-      {Intrinsic::x86_avx512_psrlv_w_512, 127403}, // __builtin_ia32_psrlv32hi
-      {Intrinsic::x86_avx2_psrlv_q_256, 102992}, // __builtin_ia32_psrlv4di
-      {Intrinsic::x86_avx2_psrlv_d, 102920}, // __builtin_ia32_psrlv4si
-      {Intrinsic::x86_avx512_psrlv_q_512, 127330}, // __builtin_ia32_psrlv8di
-      {Intrinsic::x86_avx512_psrlv_w_128, 127354}, // __builtin_ia32_psrlv8hi
-      {Intrinsic::x86_avx2_psrlv_d_256, 102944}, // __builtin_ia32_psrlv8si
-      {Intrinsic::x86_mmx_psrl_w, 131454}, // __builtin_ia32_psrlw
-      {Intrinsic::x86_sse2_psrl_w, 134660}, // __builtin_ia32_psrlw128
-      {Intrinsic::x86_avx2_psrl_w, 102821}, // __builtin_ia32_psrlw256
-      {Intrinsic::x86_avx512_psrl_w_512, 127206}, // __builtin_ia32_psrlw512
-      {Intrinsic::x86_mmx_psrli_w, 131519}, // __builtin_ia32_psrlwi
-      {Intrinsic::x86_sse2_psrli_w, 134734}, // __builtin_ia32_psrlwi128
-      {Intrinsic::x86_avx2_psrli_w, 102895}, // __builtin_ia32_psrlwi256
-      {Intrinsic::x86_avx512_psrli_w_512, 127280}, // __builtin_ia32_psrlwi512
-      {Intrinsic::x86_mmx_psub_b, 131541}, // __builtin_ia32_psubb
-      {Intrinsic::x86_mmx_psub_d, 131562}, // __builtin_ia32_psubd
-      {Intrinsic::x86_mmx_psub_q, 131583}, // __builtin_ia32_psubq
-      {Intrinsic::x86_mmx_psubs_b, 131625}, // __builtin_ia32_psubsb
-      {Intrinsic::x86_sse2_psubs_b, 134759}, // __builtin_ia32_psubsb128
-      {Intrinsic::x86_avx2_psubs_b, 103016}, // __builtin_ia32_psubsb256
-      {Intrinsic::x86_avx512_mask_psubs_b_512, 116197}, // __builtin_ia32_psubsb512_mask
-      {Intrinsic::x86_mmx_psubs_w, 131647}, // __builtin_ia32_psubsw
-      {Intrinsic::x86_sse2_psubs_w, 134784}, // __builtin_ia32_psubsw128
-      {Intrinsic::x86_avx2_psubs_w, 103041}, // __builtin_ia32_psubsw256
-      {Intrinsic::x86_avx512_mask_psubs_w_512, 116227}, // __builtin_ia32_psubsw512_mask
-      {Intrinsic::x86_mmx_psubus_b, 131669}, // __builtin_ia32_psubusb
-      {Intrinsic::x86_sse2_psubus_b, 134809}, // __builtin_ia32_psubusb128
-      {Intrinsic::x86_avx2_psubus_b, 103066}, // __builtin_ia32_psubusb256
-      {Intrinsic::x86_avx512_mask_psubus_b_512, 116257}, // __builtin_ia32_psubusb512_mask
-      {Intrinsic::x86_mmx_psubus_w, 131692}, // __builtin_ia32_psubusw
-      {Intrinsic::x86_sse2_psubus_w, 134835}, // __builtin_ia32_psubusw128
-      {Intrinsic::x86_avx2_psubus_w, 103092}, // __builtin_ia32_psubusw256
-      {Intrinsic::x86_avx512_mask_psubus_w_512, 116288}, // __builtin_ia32_psubusw512_mask
-      {Intrinsic::x86_mmx_psub_w, 131604}, // __builtin_ia32_psubw
-      {Intrinsic::x86_avx512_mask_pternlog_d_128, 116319}, // __builtin_ia32_pternlogd128_mask
-      {Intrinsic::x86_avx512_maskz_pternlog_d_128, 123631}, // __builtin_ia32_pternlogd128_maskz
-      {Intrinsic::x86_avx512_mask_pternlog_d_256, 116352}, // __builtin_ia32_pternlogd256_mask
-      {Intrinsic::x86_avx512_maskz_pternlog_d_256, 123665}, // __builtin_ia32_pternlogd256_maskz
-      {Intrinsic::x86_avx512_mask_pternlog_d_512, 116385}, // __builtin_ia32_pternlogd512_mask
-      {Intrinsic::x86_avx512_maskz_pternlog_d_512, 123699}, // __builtin_ia32_pternlogd512_maskz
-      {Intrinsic::x86_avx512_mask_pternlog_q_128, 116418}, // __builtin_ia32_pternlogq128_mask
-      {Intrinsic::x86_avx512_maskz_pternlog_q_128, 123733}, // __builtin_ia32_pternlogq128_maskz
-      {Intrinsic::x86_avx512_mask_pternlog_q_256, 116451}, // __builtin_ia32_pternlogq256_mask
-      {Intrinsic::x86_avx512_maskz_pternlog_q_256, 123767}, // __builtin_ia32_pternlogq256_maskz
-      {Intrinsic::x86_avx512_mask_pternlog_q_512, 116484}, // __builtin_ia32_pternlogq512_mask
-      {Intrinsic::x86_avx512_maskz_pternlog_q_512, 123801}, // __builtin_ia32_pternlogq512_maskz
-      {Intrinsic::x86_sse41_ptestc, 135506}, // __builtin_ia32_ptestc128
-      {Intrinsic::x86_avx_ptestc_256, 100219}, // __builtin_ia32_ptestc256
-      {Intrinsic::x86_sse41_ptestnzc, 135531}, // __builtin_ia32_ptestnzc128
-      {Intrinsic::x86_avx_ptestnzc_256, 100244}, // __builtin_ia32_ptestnzc256
-      {Intrinsic::x86_sse41_ptestz, 135558}, // __builtin_ia32_ptestz128
-      {Intrinsic::x86_avx_ptestz_256, 100271}, // __builtin_ia32_ptestz256
-      {Intrinsic::x86_mmx_punpckhbw, 131715}, // __builtin_ia32_punpckhbw
-      {Intrinsic::x86_mmx_punpckhdq, 131740}, // __builtin_ia32_punpckhdq
-      {Intrinsic::x86_mmx_punpckhwd, 131765}, // __builtin_ia32_punpckhwd
-      {Intrinsic::x86_mmx_punpcklbw, 131790}, // __builtin_ia32_punpcklbw
-      {Intrinsic::x86_mmx_punpckldq, 131815}, // __builtin_ia32_punpckldq
-      {Intrinsic::x86_mmx_punpcklwd, 131840}, // __builtin_ia32_punpcklwd
-      {Intrinsic::x86_mmx_pxor, 131865}, // __builtin_ia32_pxor
-      {Intrinsic::x86_avx512_mask_range_pd_128, 116517}, // __builtin_ia32_rangepd128_mask
-      {Intrinsic::x86_avx512_mask_range_pd_256, 116548}, // __builtin_ia32_rangepd256_mask
-      {Intrinsic::x86_avx512_mask_range_pd_512, 116579}, // __builtin_ia32_rangepd512_mask
-      {Intrinsic::x86_avx512_mask_range_ps_128, 116610}, // __builtin_ia32_rangeps128_mask
-      {Intrinsic::x86_avx512_mask_range_ps_256, 116641}, // __builtin_ia32_rangeps256_mask
-      {Intrinsic::x86_avx512_mask_range_ps_512, 116672}, // __builtin_ia32_rangeps512_mask
-      {Intrinsic::x86_avx512_mask_range_sd, 116703}, // __builtin_ia32_rangesd128_round_mask
-      {Intrinsic::x86_avx512_mask_range_ss, 116740}, // __builtin_ia32_rangess128_round_mask
-      {Intrinsic::x86_avx512_rcp14_pd_128, 127428}, // __builtin_ia32_rcp14pd128_mask
-      {Intrinsic::x86_avx512_rcp14_pd_256, 127459}, // __builtin_ia32_rcp14pd256_mask
-      {Intrinsic::x86_avx512_rcp14_pd_512, 127490}, // __builtin_ia32_rcp14pd512_mask
-      {Intrinsic::x86_avx512_rcp14_ps_128, 127521}, // __builtin_ia32_rcp14ps128_mask
-      {Intrinsic::x86_avx512_rcp14_ps_256, 127552}, // __builtin_ia32_rcp14ps256_mask
-      {Intrinsic::x86_avx512_rcp14_ps_512, 127583}, // __builtin_ia32_rcp14ps512_mask
-      {Intrinsic::x86_avx512_rcp14_sd, 127614}, // __builtin_ia32_rcp14sd_mask
-      {Intrinsic::x86_avx512_rcp14_ss, 127642}, // __builtin_ia32_rcp14ss_mask
-      {Intrinsic::x86_avx512_rcp28_pd, 127670}, // __builtin_ia32_rcp28pd_mask
-      {Intrinsic::x86_avx512_rcp28_ps, 127698}, // __builtin_ia32_rcp28ps_mask
-      {Intrinsic::x86_avx512_rcp28_sd, 127726}, // __builtin_ia32_rcp28sd_round_mask
-      {Intrinsic::x86_avx512_rcp28_ss, 127760}, // __builtin_ia32_rcp28ss_round_mask
-      {Intrinsic::x86_sse_rcp_ps, 133076}, // __builtin_ia32_rcpps
-      {Intrinsic::x86_avx_rcp_ps_256, 100296}, // __builtin_ia32_rcpps256
-      {Intrinsic::x86_sse_rcp_ss, 133097}, // __builtin_ia32_rcpss
-      {Intrinsic::x86_rdfsbase_32, 132015}, // __builtin_ia32_rdfsbase32
-      {Intrinsic::x86_rdfsbase_64, 132041}, // __builtin_ia32_rdfsbase64
-      {Intrinsic::x86_rdgsbase_32, 132067}, // __builtin_ia32_rdgsbase32
-      {Intrinsic::x86_rdgsbase_64, 132093}, // __builtin_ia32_rdgsbase64
-      {Intrinsic::x86_rdpid, 132119}, // __builtin_ia32_rdpid
-      {Intrinsic::x86_rdpkru, 132140}, // __builtin_ia32_rdpkru
-      {Intrinsic::x86_rdpmc, 132162}, // __builtin_ia32_rdpmc
-      {Intrinsic::x86_rdsspd, 132183}, // __builtin_ia32_rdsspd
-      {Intrinsic::x86_rdsspq, 132205}, // __builtin_ia32_rdsspq
-      {Intrinsic::x86_rdtsc, 132227}, // __builtin_ia32_rdtsc
-      {Intrinsic::x86_rdtscp, 132248}, // __builtin_ia32_rdtscp
-      {Intrinsic::x86_flags_read_u32, 129604}, // __builtin_ia32_readeflags_u32
-      {Intrinsic::x86_flags_read_u64, 129634}, // __builtin_ia32_readeflags_u64
-      {Intrinsic::x86_avx512_mask_reduce_pd_128, 116777}, // __builtin_ia32_reducepd128_mask
-      {Intrinsic::x86_avx512_mask_reduce_pd_256, 116809}, // __builtin_ia32_reducepd256_mask
-      {Intrinsic::x86_avx512_mask_reduce_pd_512, 116841}, // __builtin_ia32_reducepd512_mask
-      {Intrinsic::x86_avx512_mask_reduce_ps_128, 116873}, // __builtin_ia32_reduceps128_mask
-      {Intrinsic::x86_avx512_mask_reduce_ps_256, 116905}, // __builtin_ia32_reduceps256_mask
-      {Intrinsic::x86_avx512_mask_reduce_ps_512, 116937}, // __builtin_ia32_reduceps512_mask
-      {Intrinsic::x86_avx512_mask_reduce_sd, 116969}, // __builtin_ia32_reducesd_mask
-      {Intrinsic::x86_avx512_mask_reduce_ss, 116998}, // __builtin_ia32_reducess_mask
-      {Intrinsic::x86_avx512_mask_rndscale_pd_128, 117027}, // __builtin_ia32_rndscalepd_128_mask
-      {Intrinsic::x86_avx512_mask_rndscale_pd_256, 117062}, // __builtin_ia32_rndscalepd_256_mask
-      {Intrinsic::x86_avx512_mask_rndscale_pd_512, 117097}, // __builtin_ia32_rndscalepd_mask
-      {Intrinsic::x86_avx512_mask_rndscale_ps_128, 117128}, // __builtin_ia32_rndscaleps_128_mask
-      {Intrinsic::x86_avx512_mask_rndscale_ps_256, 117163}, // __builtin_ia32_rndscaleps_256_mask
-      {Intrinsic::x86_avx512_mask_rndscale_ps_512, 117198}, // __builtin_ia32_rndscaleps_mask
-      {Intrinsic::x86_avx512_mask_rndscale_sd, 117229}, // __builtin_ia32_rndscalesd_round_mask
-      {Intrinsic::x86_avx512_mask_rndscale_ss, 117266}, // __builtin_ia32_rndscaless_round_mask
-      {Intrinsic::x86_sse41_round_pd, 135583}, // __builtin_ia32_roundpd
-      {Intrinsic::x86_avx_round_pd_256, 100320}, // __builtin_ia32_roundpd256
-      {Intrinsic::x86_sse41_round_ps, 135606}, // __builtin_ia32_roundps
-      {Intrinsic::x86_avx_round_ps_256, 100346}, // __builtin_ia32_roundps256
-      {Intrinsic::x86_sse41_round_sd, 135629}, // __builtin_ia32_roundsd
-      {Intrinsic::x86_sse41_round_ss, 135652}, // __builtin_ia32_roundss
-      {Intrinsic::x86_avx512_rsqrt14_pd_128, 127794}, // __builtin_ia32_rsqrt14pd128_mask
-      {Intrinsic::x86_avx512_rsqrt14_pd_256, 127827}, // __builtin_ia32_rsqrt14pd256_mask
-      {Intrinsic::x86_avx512_rsqrt14_pd_512, 127860}, // __builtin_ia32_rsqrt14pd512_mask
-      {Intrinsic::x86_avx512_rsqrt14_ps_128, 127893}, // __builtin_ia32_rsqrt14ps128_mask
-      {Intrinsic::x86_avx512_rsqrt14_ps_256, 127926}, // __builtin_ia32_rsqrt14ps256_mask
-      {Intrinsic::x86_avx512_rsqrt14_ps_512, 127959}, // __builtin_ia32_rsqrt14ps512_mask
-      {Intrinsic::x86_avx512_rsqrt14_sd, 127992}, // __builtin_ia32_rsqrt14sd_mask
-      {Intrinsic::x86_avx512_rsqrt14_ss, 128022}, // __builtin_ia32_rsqrt14ss_mask
-      {Intrinsic::x86_avx512_rsqrt28_pd, 128052}, // __builtin_ia32_rsqrt28pd_mask
-      {Intrinsic::x86_avx512_rsqrt28_ps, 128082}, // __builtin_ia32_rsqrt28ps_mask
-      {Intrinsic::x86_avx512_rsqrt28_sd, 128112}, // __builtin_ia32_rsqrt28sd_round_mask
-      {Intrinsic::x86_avx512_rsqrt28_ss, 128148}, // __builtin_ia32_rsqrt28ss_round_mask
-      {Intrinsic::x86_sse_rsqrt_ps, 133118}, // __builtin_ia32_rsqrtps
-      {Intrinsic::x86_avx_rsqrt_ps_256, 100372}, // __builtin_ia32_rsqrtps256
-      {Intrinsic::x86_sse_rsqrt_ss, 133141}, // __builtin_ia32_rsqrtss
-      {Intrinsic::x86_rstorssp, 132270}, // __builtin_ia32_rstorssp
-      {Intrinsic::x86_saveprevssp, 132294}, // __builtin_ia32_saveprevssp
-      {Intrinsic::x86_avx512_mask_scalef_pd_128, 117303}, // __builtin_ia32_scalefpd128_mask
-      {Intrinsic::x86_avx512_mask_scalef_pd_256, 117335}, // __builtin_ia32_scalefpd256_mask
-      {Intrinsic::x86_avx512_mask_scalef_pd_512, 117367}, // __builtin_ia32_scalefpd512_mask
-      {Intrinsic::x86_avx512_mask_scalef_ps_128, 117399}, // __builtin_ia32_scalefps128_mask
-      {Intrinsic::x86_avx512_mask_scalef_ps_256, 117431}, // __builtin_ia32_scalefps256_mask
-      {Intrinsic::x86_avx512_mask_scalef_ps_512, 117463}, // __builtin_ia32_scalefps512_mask
-      {Intrinsic::x86_avx512_mask_scalef_sd, 117495}, // __builtin_ia32_scalefsd_round_mask
-      {Intrinsic::x86_avx512_mask_scalef_ss, 117530}, // __builtin_ia32_scalefss_round_mask
-      {Intrinsic::x86_avx512_scatter_qps_512, 128390}, // __builtin_ia32_scatterdiv16sf
-      {Intrinsic::x86_avx512_scatter_qpi_512, 128331}, // __builtin_ia32_scatterdiv16si
-      {Intrinsic::x86_avx512_scatterdiv2_df, 128420}, // __builtin_ia32_scatterdiv2df
-      {Intrinsic::x86_avx512_scatterdiv2_di, 128449}, // __builtin_ia32_scatterdiv2di
-      {Intrinsic::x86_avx512_scatterdiv4_df, 128478}, // __builtin_ia32_scatterdiv4df
-      {Intrinsic::x86_avx512_scatterdiv4_di, 128507}, // __builtin_ia32_scatterdiv4di
-      {Intrinsic::x86_avx512_scatterdiv4_sf, 128536}, // __builtin_ia32_scatterdiv4sf
-      {Intrinsic::x86_avx512_scatterdiv4_si, 128565}, // __builtin_ia32_scatterdiv4si
-      {Intrinsic::x86_avx512_scatter_qpd_512, 128302}, // __builtin_ia32_scatterdiv8df
-      {Intrinsic::x86_avx512_scatter_qpq_512, 128361}, // __builtin_ia32_scatterdiv8di
-      {Intrinsic::x86_avx512_scatterdiv8_sf, 128594}, // __builtin_ia32_scatterdiv8sf
-      {Intrinsic::x86_avx512_scatterdiv8_si, 128623}, // __builtin_ia32_scatterdiv8si
-      {Intrinsic::x86_avx512_scatterpf_dpd_512, 128652}, // __builtin_ia32_scatterpfdpd
-      {Intrinsic::x86_avx512_scatterpf_dps_512, 128680}, // __builtin_ia32_scatterpfdps
-      {Intrinsic::x86_avx512_scatterpf_qpd_512, 128708}, // __builtin_ia32_scatterpfqpd
-      {Intrinsic::x86_avx512_scatterpf_qps_512, 128736}, // __builtin_ia32_scatterpfqps
-      {Intrinsic::x86_avx512_scatter_dps_512, 128272}, // __builtin_ia32_scattersiv16sf
-      {Intrinsic::x86_avx512_scatter_dpi_512, 128213}, // __builtin_ia32_scattersiv16si
-      {Intrinsic::x86_avx512_scattersiv2_df, 128764}, // __builtin_ia32_scattersiv2df
-      {Intrinsic::x86_avx512_scattersiv2_di, 128793}, // __builtin_ia32_scattersiv2di
-      {Intrinsic::x86_avx512_scattersiv4_df, 128822}, // __builtin_ia32_scattersiv4df
-      {Intrinsic::x86_avx512_scattersiv4_di, 128851}, // __builtin_ia32_scattersiv4di
-      {Intrinsic::x86_avx512_scattersiv4_sf, 128880}, // __builtin_ia32_scattersiv4sf
-      {Intrinsic::x86_avx512_scattersiv4_si, 128909}, // __builtin_ia32_scattersiv4si
-      {Intrinsic::x86_avx512_scatter_dpd_512, 128184}, // __builtin_ia32_scattersiv8df
-      {Intrinsic::x86_avx512_scatter_dpq_512, 128243}, // __builtin_ia32_scattersiv8di
-      {Intrinsic::x86_avx512_scattersiv8_sf, 128938}, // __builtin_ia32_scattersiv8sf
-      {Intrinsic::x86_avx512_scattersiv8_si, 128967}, // __builtin_ia32_scattersiv8si
-      {Intrinsic::x86_setssbsy, 132321}, // __builtin_ia32_setssbsy
-      {Intrinsic::x86_sse_sfence, 133164}, // __builtin_ia32_sfence
-      {Intrinsic::x86_sha1msg1, 132345}, // __builtin_ia32_sha1msg1
-      {Intrinsic::x86_sha1msg2, 132369}, // __builtin_ia32_sha1msg2
-      {Intrinsic::x86_sha1nexte, 132393}, // __builtin_ia32_sha1nexte
-      {Intrinsic::x86_sha1rnds4, 132418}, // __builtin_ia32_sha1rnds4
-      {Intrinsic::x86_sha256msg1, 132443}, // __builtin_ia32_sha256msg1
-      {Intrinsic::x86_sha256msg2, 132469}, // __builtin_ia32_sha256msg2
-      {Intrinsic::x86_sha256rnds2, 132495}, // __builtin_ia32_sha256rnds2
-      {Intrinsic::x86_slwpcb, 132522}, // __builtin_ia32_slwpcb
-      {Intrinsic::x86_sse2_sqrt_pd, 134861}, // __builtin_ia32_sqrtpd
-      {Intrinsic::x86_avx512_mask_sqrt_pd_128, 117565}, // __builtin_ia32_sqrtpd128_mask
-      {Intrinsic::x86_avx_sqrt_pd_256, 100398}, // __builtin_ia32_sqrtpd256
-      {Intrinsic::x86_avx512_mask_sqrt_pd_256, 117595}, // __builtin_ia32_sqrtpd256_mask
-      {Intrinsic::x86_avx512_mask_sqrt_pd_512, 117625}, // __builtin_ia32_sqrtpd512_mask
-      {Intrinsic::x86_sse_sqrt_ps, 133186}, // __builtin_ia32_sqrtps
-      {Intrinsic::x86_avx512_mask_sqrt_ps_128, 117655}, // __builtin_ia32_sqrtps128_mask
-      {Intrinsic::x86_avx_sqrt_ps_256, 100423}, // __builtin_ia32_sqrtps256
-      {Intrinsic::x86_avx512_mask_sqrt_ps_256, 117685}, // __builtin_ia32_sqrtps256_mask
-      {Intrinsic::x86_avx512_mask_sqrt_ps_512, 117715}, // __builtin_ia32_sqrtps512_mask
-      {Intrinsic::x86_sse2_sqrt_sd, 134883}, // __builtin_ia32_sqrtsd
-      {Intrinsic::x86_avx512_mask_sqrt_sd, 117745}, // __builtin_ia32_sqrtsd_round_mask
-      {Intrinsic::x86_sse_sqrt_ss, 133208}, // __builtin_ia32_sqrtss
-      {Intrinsic::x86_avx512_mask_sqrt_ss, 117778}, // __builtin_ia32_sqrtss_round_mask
-      {Intrinsic::x86_avx512_mask_store_ss, 117811}, // __builtin_ia32_storess_mask
-      {Intrinsic::x86_subborrow_u32, 136900}, // __builtin_ia32_subborrow_u32
-      {Intrinsic::x86_subborrow_u64, 136929}, // __builtin_ia32_subborrow_u64
-      {Intrinsic::x86_avx512_mask_sub_pd_512, 117839}, // __builtin_ia32_subpd512_mask
-      {Intrinsic::x86_avx512_mask_sub_ps_512, 117868}, // __builtin_ia32_subps512_mask
-      {Intrinsic::x86_avx512_mask_sub_sd_round, 117897}, // __builtin_ia32_subsd_round_mask
-      {Intrinsic::x86_avx512_mask_sub_ss_round, 117929}, // __builtin_ia32_subss_round_mask
-      {Intrinsic::x86_sse_ucomieq_ss, 133230}, // __builtin_ia32_ucomieq
-      {Intrinsic::x86_sse_ucomige_ss, 133253}, // __builtin_ia32_ucomige
-      {Intrinsic::x86_sse_ucomigt_ss, 133276}, // __builtin_ia32_ucomigt
-      {Intrinsic::x86_sse_ucomile_ss, 133299}, // __builtin_ia32_ucomile
-      {Intrinsic::x86_sse_ucomilt_ss, 133322}, // __builtin_ia32_ucomilt
-      {Intrinsic::x86_sse_ucomineq_ss, 133345}, // __builtin_ia32_ucomineq
-      {Intrinsic::x86_sse2_ucomieq_sd, 134905}, // __builtin_ia32_ucomisdeq
-      {Intrinsic::x86_sse2_ucomige_sd, 134930}, // __builtin_ia32_ucomisdge
-      {Intrinsic::x86_sse2_ucomigt_sd, 134955}, // __builtin_ia32_ucomisdgt
-      {Intrinsic::x86_sse2_ucomile_sd, 134980}, // __builtin_ia32_ucomisdle
-      {Intrinsic::x86_sse2_ucomilt_sd, 135005}, // __builtin_ia32_ucomisdlt
-      {Intrinsic::x86_sse2_ucomineq_sd, 135030}, // __builtin_ia32_ucomisdneq
-      {Intrinsic::x86_avx512_vcomi_sd, 128996}, // __builtin_ia32_vcomisd
-      {Intrinsic::x86_avx512_vcomi_ss, 129019}, // __builtin_ia32_vcomiss
-      {Intrinsic::x86_vcvtph2ps_128, 137010}, // __builtin_ia32_vcvtph2ps
-      {Intrinsic::x86_vcvtph2ps_256, 137035}, // __builtin_ia32_vcvtph2ps256
-      {Intrinsic::x86_avx512_mask_vcvtph2ps_256, 117991}, // __builtin_ia32_vcvtph2ps256_mask
-      {Intrinsic::x86_avx512_mask_vcvtph2ps_512, 118024}, // __builtin_ia32_vcvtph2ps512_mask
-      {Intrinsic::x86_avx512_mask_vcvtph2ps_128, 117961}, // __builtin_ia32_vcvtph2ps_mask
-      {Intrinsic::x86_vcvtps2ph_128, 137063}, // __builtin_ia32_vcvtps2ph
-      {Intrinsic::x86_vcvtps2ph_256, 137088}, // __builtin_ia32_vcvtps2ph256
-      {Intrinsic::x86_avx512_mask_vcvtps2ph_256, 118087}, // __builtin_ia32_vcvtps2ph256_mask
-      {Intrinsic::x86_avx512_mask_vcvtps2ph_512, 118120}, // __builtin_ia32_vcvtps2ph512_mask
-      {Intrinsic::x86_avx512_mask_vcvtps2ph_128, 118057}, // __builtin_ia32_vcvtps2ph_mask
-      {Intrinsic::x86_avx512_vcvtsd2si32, 129042}, // __builtin_ia32_vcvtsd2si32
-      {Intrinsic::x86_avx512_vcvtsd2si64, 129069}, // __builtin_ia32_vcvtsd2si64
-      {Intrinsic::x86_avx512_vcvtsd2usi32, 129096}, // __builtin_ia32_vcvtsd2usi32
-      {Intrinsic::x86_avx512_vcvtsd2usi64, 129124}, // __builtin_ia32_vcvtsd2usi64
-      {Intrinsic::x86_avx512_vcvtss2si32, 129152}, // __builtin_ia32_vcvtss2si32
-      {Intrinsic::x86_avx512_vcvtss2si64, 129179}, // __builtin_ia32_vcvtss2si64
-      {Intrinsic::x86_avx512_vcvtss2usi32, 129206}, // __builtin_ia32_vcvtss2usi32
-      {Intrinsic::x86_avx512_vcvtss2usi64, 129234}, // __builtin_ia32_vcvtss2usi64
-      {Intrinsic::x86_avx512_cvttsd2si, 103376}, // __builtin_ia32_vcvttsd2si32
-      {Intrinsic::x86_avx512_cvttsd2si64, 103404}, // __builtin_ia32_vcvttsd2si64
-      {Intrinsic::x86_avx512_cvttsd2usi, 103432}, // __builtin_ia32_vcvttsd2usi32
-      {Intrinsic::x86_avx512_cvttsd2usi64, 103461}, // __builtin_ia32_vcvttsd2usi64
-      {Intrinsic::x86_avx512_cvttss2si, 103490}, // __builtin_ia32_vcvttss2si32
-      {Intrinsic::x86_avx512_cvttss2si64, 103518}, // __builtin_ia32_vcvttss2si64
-      {Intrinsic::x86_avx512_cvttss2usi, 103546}, // __builtin_ia32_vcvttss2usi32
-      {Intrinsic::x86_avx512_cvttss2usi64, 103575}, // __builtin_ia32_vcvttss2usi64
-      {Intrinsic::x86_mmx_pextr_w, 130875}, // __builtin_ia32_vec_ext_v4hi
-      {Intrinsic::x86_mmx_pinsr_w, 130903}, // __builtin_ia32_vec_set_v4hi
-      {Intrinsic::x86_fma_vfmadd_pd, 129726}, // __builtin_ia32_vfmaddpd
-      {Intrinsic::x86_avx512_mask_vfmadd_pd_128, 118153}, // __builtin_ia32_vfmaddpd128_mask
-      {Intrinsic::x86_avx512_mask3_vfmadd_pd_128, 122137}, // __builtin_ia32_vfmaddpd128_mask3
-      {Intrinsic::x86_avx512_maskz_vfmadd_pd_128, 123835}, // __builtin_ia32_vfmaddpd128_maskz
-      {Intrinsic::x86_fma_vfmadd_pd_256, 129750}, // __builtin_ia32_vfmaddpd256
-      {Intrinsic::x86_avx512_mask_vfmadd_pd_256, 118185}, // __builtin_ia32_vfmaddpd256_mask
-      {Intrinsic::x86_avx512_mask3_vfmadd_pd_256, 122170}, // __builtin_ia32_vfmaddpd256_mask3
-      {Intrinsic::x86_avx512_maskz_vfmadd_pd_256, 123868}, // __builtin_ia32_vfmaddpd256_maskz
-      {Intrinsic::x86_avx512_mask_vfmadd_pd_512, 118217}, // __builtin_ia32_vfmaddpd512_mask
-      {Intrinsic::x86_avx512_mask3_vfmadd_pd_512, 122203}, // __builtin_ia32_vfmaddpd512_mask3
-      {Intrinsic::x86_avx512_maskz_vfmadd_pd_512, 123901}, // __builtin_ia32_vfmaddpd512_maskz
-      {Intrinsic::x86_fma_vfmadd_ps, 129777}, // __builtin_ia32_vfmaddps
-      {Intrinsic::x86_avx512_mask_vfmadd_ps_128, 118249}, // __builtin_ia32_vfmaddps128_mask
-      {Intrinsic::x86_avx512_mask3_vfmadd_ps_128, 122236}, // __builtin_ia32_vfmaddps128_mask3
-      {Intrinsic::x86_avx512_maskz_vfmadd_ps_128, 123934}, // __builtin_ia32_vfmaddps128_maskz
-      {Intrinsic::x86_fma_vfmadd_ps_256, 129801}, // __builtin_ia32_vfmaddps256
-      {Intrinsic::x86_avx512_mask_vfmadd_ps_256, 118281}, // __builtin_ia32_vfmaddps256_mask
-      {Intrinsic::x86_avx512_mask3_vfmadd_ps_256, 122269}, // __builtin_ia32_vfmaddps256_mask3
-      {Intrinsic::x86_avx512_maskz_vfmadd_ps_256, 123967}, // __builtin_ia32_vfmaddps256_maskz
-      {Intrinsic::x86_avx512_mask_vfmadd_ps_512, 118313}, // __builtin_ia32_vfmaddps512_mask
-      {Intrinsic::x86_avx512_mask3_vfmadd_ps_512, 122302}, // __builtin_ia32_vfmaddps512_mask3
-      {Intrinsic::x86_avx512_maskz_vfmadd_ps_512, 124000}, // __builtin_ia32_vfmaddps512_maskz
-      {Intrinsic::x86_fma4_vfmadd_sd, 129992}, // __builtin_ia32_vfmaddsd
-      {Intrinsic::x86_fma_vfmadd_sd, 129828}, // __builtin_ia32_vfmaddsd3
-      {Intrinsic::x86_avx512_mask_vfmadd_sd, 118345}, // __builtin_ia32_vfmaddsd3_mask
-      {Intrinsic::x86_avx512_mask3_vfmadd_sd, 122335}, // __builtin_ia32_vfmaddsd3_mask3
-      {Intrinsic::x86_avx512_maskz_vfmadd_sd, 124033}, // __builtin_ia32_vfmaddsd3_maskz
-      {Intrinsic::x86_fma4_vfmadd_ss, 130016}, // __builtin_ia32_vfmaddss
-      {Intrinsic::x86_fma_vfmadd_ss, 129853}, // __builtin_ia32_vfmaddss3
-      {Intrinsic::x86_avx512_mask_vfmadd_ss, 118375}, // __builtin_ia32_vfmaddss3_mask
-      {Intrinsic::x86_avx512_mask3_vfmadd_ss, 122366}, // __builtin_ia32_vfmaddss3_mask3
-      {Intrinsic::x86_avx512_maskz_vfmadd_ss, 124064}, // __builtin_ia32_vfmaddss3_maskz
-      {Intrinsic::x86_fma_vfmaddsub_pd, 129878}, // __builtin_ia32_vfmaddsubpd
-      {Intrinsic::x86_avx512_mask_vfmaddsub_pd_128, 118405}, // __builtin_ia32_vfmaddsubpd128_mask
-      {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_128, 122397}, // __builtin_ia32_vfmaddsubpd128_mask3
-      {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_128, 124095}, // __builtin_ia32_vfmaddsubpd128_maskz
-      {Intrinsic::x86_fma_vfmaddsub_pd_256, 129905}, // __builtin_ia32_vfmaddsubpd256
-      {Intrinsic::x86_avx512_mask_vfmaddsub_pd_256, 118440}, // __builtin_ia32_vfmaddsubpd256_mask
-      {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_256, 122433}, // __builtin_ia32_vfmaddsubpd256_mask3
-      {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_256, 124131}, // __builtin_ia32_vfmaddsubpd256_maskz
-      {Intrinsic::x86_avx512_mask_vfmaddsub_pd_512, 118475}, // __builtin_ia32_vfmaddsubpd512_mask
-      {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_512, 122469}, // __builtin_ia32_vfmaddsubpd512_mask3
-      {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_512, 124167}, // __builtin_ia32_vfmaddsubpd512_maskz
-      {Intrinsic::x86_fma_vfmaddsub_ps, 129935}, // __builtin_ia32_vfmaddsubps
-      {Intrinsic::x86_avx512_mask_vfmaddsub_ps_128, 118510}, // __builtin_ia32_vfmaddsubps128_mask
-      {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_128, 122505}, // __builtin_ia32_vfmaddsubps128_mask3
-      {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_128, 124203}, // __builtin_ia32_vfmaddsubps128_maskz
-      {Intrinsic::x86_fma_vfmaddsub_ps_256, 129962}, // __builtin_ia32_vfmaddsubps256
-      {Intrinsic::x86_avx512_mask_vfmaddsub_ps_256, 118545}, // __builtin_ia32_vfmaddsubps256_mask
-      {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_256, 122541}, // __builtin_ia32_vfmaddsubps256_mask3
-      {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_256, 124239}, // __builtin_ia32_vfmaddsubps256_maskz
-      {Intrinsic::x86_avx512_mask_vfmaddsub_ps_512, 118580}, // __builtin_ia32_vfmaddsubps512_mask
-      {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_512, 122577}, // __builtin_ia32_vfmaddsubps512_mask3
-      {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_512, 124275}, // __builtin_ia32_vfmaddsubps512_maskz
-      {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_128, 122873}, // __builtin_ia32_vfmsubaddpd128_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_256, 122909}, // __builtin_ia32_vfmsubaddpd256_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_512, 122945}, // __builtin_ia32_vfmsubaddpd512_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_128, 122981}, // __builtin_ia32_vfmsubaddps128_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_256, 123017}, // __builtin_ia32_vfmsubaddps256_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_512, 123053}, // __builtin_ia32_vfmsubaddps512_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsub_pd_128, 122613}, // __builtin_ia32_vfmsubpd128_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsub_pd_256, 122646}, // __builtin_ia32_vfmsubpd256_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsub_pd_512, 122679}, // __builtin_ia32_vfmsubpd512_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsub_ps_128, 122712}, // __builtin_ia32_vfmsubps128_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsub_ps_256, 122745}, // __builtin_ia32_vfmsubps256_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsub_ps_512, 122778}, // __builtin_ia32_vfmsubps512_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsub_sd, 122811}, // __builtin_ia32_vfmsubsd3_mask3
-      {Intrinsic::x86_avx512_mask3_vfmsub_ss, 122842}, // __builtin_ia32_vfmsubss3_mask3
-      {Intrinsic::x86_avx512_mask_vfnmadd_pd_128, 118615}, // __builtin_ia32_vfnmaddpd128_mask
-      {Intrinsic::x86_avx512_mask_vfnmadd_pd_256, 118648}, // __builtin_ia32_vfnmaddpd256_mask
-      {Intrinsic::x86_avx512_mask_vfnmadd_pd_512, 118681}, // __builtin_ia32_vfnmaddpd512_mask
-      {Intrinsic::x86_avx512_mask_vfnmadd_ps_128, 118714}, // __builtin_ia32_vfnmaddps128_mask
-      {Intrinsic::x86_avx512_mask_vfnmadd_ps_256, 118747}, // __builtin_ia32_vfnmaddps256_mask
-      {Intrinsic::x86_avx512_mask_vfnmadd_ps_512, 118780}, // __builtin_ia32_vfnmaddps512_mask
-      {Intrinsic::x86_avx512_mask_vfnmsub_pd_128, 118813}, // __builtin_ia32_vfnmsubpd128_mask
-      {Intrinsic::x86_avx512_mask3_vfnmsub_pd_128, 123089}, // __builtin_ia32_vfnmsubpd128_mask3
-      {Intrinsic::x86_avx512_mask_vfnmsub_pd_256, 118846}, // __builtin_ia32_vfnmsubpd256_mask
-      {Intrinsic::x86_avx512_mask3_vfnmsub_pd_256, 123123}, // __builtin_ia32_vfnmsubpd256_mask3
-      {Intrinsic::x86_avx512_mask_vfnmsub_pd_512, 118879}, // __builtin_ia32_vfnmsubpd512_mask
-      {Intrinsic::x86_avx512_mask3_vfnmsub_pd_512, 123157}, // __builtin_ia32_vfnmsubpd512_mask3
-      {Intrinsic::x86_avx512_mask_vfnmsub_ps_128, 118912}, // __builtin_ia32_vfnmsubps128_mask
-      {Intrinsic::x86_avx512_mask3_vfnmsub_ps_128, 123191}, // __builtin_ia32_vfnmsubps128_mask3
-      {Intrinsic::x86_avx512_mask_vfnmsub_ps_256, 118945}, // __builtin_ia32_vfnmsubps256_mask
-      {Intrinsic::x86_avx512_mask3_vfnmsub_ps_256, 123225}, // __builtin_ia32_vfnmsubps256_mask3
-      {Intrinsic::x86_avx512_mask_vfnmsub_ps_512, 118978}, // __builtin_ia32_vfnmsubps512_mask
-      {Intrinsic::x86_avx512_mask3_vfnmsub_ps_512, 123259}, // __builtin_ia32_vfnmsubps512_mask3
-      {Intrinsic::x86_avx512_mask3_vfnmsub_sd, 123293}, // __builtin_ia32_vfnmsubsd3_mask3
-      {Intrinsic::x86_avx512_mask3_vfnmsub_ss, 123325}, // __builtin_ia32_vfnmsubss3_mask3
-      {Intrinsic::x86_xop_vfrcz_pd, 137713}, // __builtin_ia32_vfrczpd
-      {Intrinsic::x86_xop_vfrcz_pd_256, 137736}, // __builtin_ia32_vfrczpd256
-      {Intrinsic::x86_xop_vfrcz_ps, 137762}, // __builtin_ia32_vfrczps
-      {Intrinsic::x86_xop_vfrcz_ps_256, 137785}, // __builtin_ia32_vfrczps256
-      {Intrinsic::x86_xop_vfrcz_sd, 137811}, // __builtin_ia32_vfrczsd
-      {Intrinsic::x86_xop_vfrcz_ss, 137834}, // __builtin_ia32_vfrczss
-      {Intrinsic::x86_vgf2p8affineinvqb_128, 137116}, // __builtin_ia32_vgf2p8affineinvqb_v16qi
-      {Intrinsic::x86_vgf2p8affineinvqb_256, 137155}, // __builtin_ia32_vgf2p8affineinvqb_v32qi
-      {Intrinsic::x86_vgf2p8affineinvqb_512, 137194}, // __builtin_ia32_vgf2p8affineinvqb_v64qi
-      {Intrinsic::x86_vgf2p8affineqb_128, 137233}, // __builtin_ia32_vgf2p8affineqb_v16qi
-      {Intrinsic::x86_vgf2p8affineqb_256, 137269}, // __builtin_ia32_vgf2p8affineqb_v32qi
-      {Intrinsic::x86_vgf2p8affineqb_512, 137305}, // __builtin_ia32_vgf2p8affineqb_v64qi
-      {Intrinsic::x86_vgf2p8mulb_128, 137341}, // __builtin_ia32_vgf2p8mulb_v16qi
-      {Intrinsic::x86_vgf2p8mulb_256, 137373}, // __builtin_ia32_vgf2p8mulb_v32qi
-      {Intrinsic::x86_vgf2p8mulb_512, 137405}, // __builtin_ia32_vgf2p8mulb_v64qi
-      {Intrinsic::x86_xop_vpcomb, 137857}, // __builtin_ia32_vpcomb
-      {Intrinsic::x86_xop_vpcomd, 137879}, // __builtin_ia32_vpcomd
-      {Intrinsic::x86_xop_vpcomq, 137901}, // __builtin_ia32_vpcomq
-      {Intrinsic::x86_xop_vpcomub, 137923}, // __builtin_ia32_vpcomub
-      {Intrinsic::x86_xop_vpcomud, 137946}, // __builtin_ia32_vpcomud
-      {Intrinsic::x86_xop_vpcomuq, 137969}, // __builtin_ia32_vpcomuq
-      {Intrinsic::x86_xop_vpcomuw, 137992}, // __builtin_ia32_vpcomuw
-      {Intrinsic::x86_xop_vpcomw, 138015}, // __builtin_ia32_vpcomw
-      {Intrinsic::x86_avx512_mask_conflict_q_128, 106165}, // __builtin_ia32_vpconflictdi_128_mask
-      {Intrinsic::x86_avx512_mask_conflict_q_256, 106202}, // __builtin_ia32_vpconflictdi_256_mask
-      {Intrinsic::x86_avx512_mask_conflict_q_512, 106239}, // __builtin_ia32_vpconflictdi_512_mask
-      {Intrinsic::x86_avx512_mask_conflict_d_128, 106054}, // __builtin_ia32_vpconflictsi_128_mask
-      {Intrinsic::x86_avx512_mask_conflict_d_256, 106091}, // __builtin_ia32_vpconflictsi_256_mask
-      {Intrinsic::x86_avx512_mask_conflict_d_512, 106128}, // __builtin_ia32_vpconflictsi_512_mask
-      {Intrinsic::x86_avx512_mask_vpdpbusd_128, 119011}, // __builtin_ia32_vpdpbusd128_mask
-      {Intrinsic::x86_avx512_maskz_vpdpbusd_128, 124311}, // __builtin_ia32_vpdpbusd128_maskz
-      {Intrinsic::x86_avx512_mask_vpdpbusd_256, 119043}, // __builtin_ia32_vpdpbusd256_mask
-      {Intrinsic::x86_avx512_maskz_vpdpbusd_256, 124344}, // __builtin_ia32_vpdpbusd256_maskz
-      {Intrinsic::x86_avx512_mask_vpdpbusd_512, 119075}, // __builtin_ia32_vpdpbusd512_mask
-      {Intrinsic::x86_avx512_maskz_vpdpbusd_512, 124377}, // __builtin_ia32_vpdpbusd512_maskz
-      {Intrinsic::x86_avx512_mask_vpdpbusds_128, 119107}, // __builtin_ia32_vpdpbusds128_mask
-      {Intrinsic::x86_avx512_maskz_vpdpbusds_128, 124410}, // __builtin_ia32_vpdpbusds128_maskz
-      {Intrinsic::x86_avx512_mask_vpdpbusds_256, 119140}, // __builtin_ia32_vpdpbusds256_mask
-      {Intrinsic::x86_avx512_maskz_vpdpbusds_256, 124444}, // __builtin_ia32_vpdpbusds256_maskz
-      {Intrinsic::x86_avx512_mask_vpdpbusds_512, 119173}, // __builtin_ia32_vpdpbusds512_mask
-      {Intrinsic::x86_avx512_maskz_vpdpbusds_512, 124478}, // __builtin_ia32_vpdpbusds512_maskz
-      {Intrinsic::x86_avx512_mask_vpdpwssd_128, 119206}, // __builtin_ia32_vpdpwssd128_mask
-      {Intrinsic::x86_avx512_maskz_vpdpwssd_128, 124512}, // __builtin_ia32_vpdpwssd128_maskz
-      {Intrinsic::x86_avx512_mask_vpdpwssd_256, 119238}, // __builtin_ia32_vpdpwssd256_mask
-      {Intrinsic::x86_avx512_maskz_vpdpwssd_256, 124545}, // __builtin_ia32_vpdpwssd256_maskz
-      {Intrinsic::x86_avx512_mask_vpdpwssd_512, 119270}, // __builtin_ia32_vpdpwssd512_mask
-      {Intrinsic::x86_avx512_maskz_vpdpwssd_512, 124578}, // __builtin_ia32_vpdpwssd512_maskz
-      {Intrinsic::x86_avx512_mask_vpdpwssds_128, 119302}, // __builtin_ia32_vpdpwssds128_mask
-      {Intrinsic::x86_avx512_maskz_vpdpwssds_128, 124611}, // __builtin_ia32_vpdpwssds128_maskz
-      {Intrinsic::x86_avx512_mask_vpdpwssds_256, 119335}, // __builtin_ia32_vpdpwssds256_mask
-      {Intrinsic::x86_avx512_maskz_vpdpwssds_256, 124645}, // __builtin_ia32_vpdpwssds256_maskz
-      {Intrinsic::x86_avx512_mask_vpdpwssds_512, 119368}, // __builtin_ia32_vpdpwssds512_mask
-      {Intrinsic::x86_avx512_maskz_vpdpwssds_512, 124679}, // __builtin_ia32_vpdpwssds512_maskz
-      {Intrinsic::x86_avx512_mask_vpermi2var_d_128, 119401}, // __builtin_ia32_vpermi2vard128_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_d_256, 119436}, // __builtin_ia32_vpermi2vard256_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_d_512, 119471}, // __builtin_ia32_vpermi2vard512_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_hi_128, 119506}, // __builtin_ia32_vpermi2varhi128_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_hi_256, 119542}, // __builtin_ia32_vpermi2varhi256_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_hi_512, 119578}, // __builtin_ia32_vpermi2varhi512_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_pd_128, 119614}, // __builtin_ia32_vpermi2varpd128_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_pd_256, 119650}, // __builtin_ia32_vpermi2varpd256_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_pd_512, 119686}, // __builtin_ia32_vpermi2varpd512_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_ps_128, 119722}, // __builtin_ia32_vpermi2varps128_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_ps_256, 119758}, // __builtin_ia32_vpermi2varps256_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_ps_512, 119794}, // __builtin_ia32_vpermi2varps512_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_q_128, 119830}, // __builtin_ia32_vpermi2varq128_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_q_256, 119865}, // __builtin_ia32_vpermi2varq256_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_q_512, 119900}, // __builtin_ia32_vpermi2varq512_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_qi_128, 119935}, // __builtin_ia32_vpermi2varqi128_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_qi_256, 119971}, // __builtin_ia32_vpermi2varqi256_mask
-      {Intrinsic::x86_avx512_mask_vpermi2var_qi_512, 120007}, // __builtin_ia32_vpermi2varqi512_mask
-      {Intrinsic::x86_xop_vpermil2pd, 138037}, // __builtin_ia32_vpermil2pd
-      {Intrinsic::x86_xop_vpermil2pd_256, 138063}, // __builtin_ia32_vpermil2pd256
-      {Intrinsic::x86_xop_vpermil2ps, 138092}, // __builtin_ia32_vpermil2ps
-      {Intrinsic::x86_xop_vpermil2ps_256, 138118}, // __builtin_ia32_vpermil2ps256
-      {Intrinsic::x86_avx_vpermilvar_pd, 100448}, // __builtin_ia32_vpermilvarpd
-      {Intrinsic::x86_avx_vpermilvar_pd_256, 100476}, // __builtin_ia32_vpermilvarpd256
-      {Intrinsic::x86_avx512_vpermilvar_pd_512, 129262}, // __builtin_ia32_vpermilvarpd512
-      {Intrinsic::x86_avx_vpermilvar_ps, 100507}, // __builtin_ia32_vpermilvarps
-      {Intrinsic::x86_avx_vpermilvar_ps_256, 100535}, // __builtin_ia32_vpermilvarps256
-      {Intrinsic::x86_avx512_vpermilvar_ps_512, 129293}, // __builtin_ia32_vpermilvarps512
-      {Intrinsic::x86_avx512_mask_vpermt2var_d_128, 120043}, // __builtin_ia32_vpermt2vard128_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_d_128, 124713}, // __builtin_ia32_vpermt2vard128_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_d_256, 120078}, // __builtin_ia32_vpermt2vard256_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_d_256, 124749}, // __builtin_ia32_vpermt2vard256_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_d_512, 120113}, // __builtin_ia32_vpermt2vard512_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_d_512, 124785}, // __builtin_ia32_vpermt2vard512_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_hi_128, 120148}, // __builtin_ia32_vpermt2varhi128_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_hi_128, 124821}, // __builtin_ia32_vpermt2varhi128_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_hi_256, 120184}, // __builtin_ia32_vpermt2varhi256_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_hi_256, 124858}, // __builtin_ia32_vpermt2varhi256_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_hi_512, 120220}, // __builtin_ia32_vpermt2varhi512_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_hi_512, 124895}, // __builtin_ia32_vpermt2varhi512_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_pd_128, 120256}, // __builtin_ia32_vpermt2varpd128_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_pd_128, 124932}, // __builtin_ia32_vpermt2varpd128_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_pd_256, 120292}, // __builtin_ia32_vpermt2varpd256_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_pd_256, 124969}, // __builtin_ia32_vpermt2varpd256_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_pd_512, 120328}, // __builtin_ia32_vpermt2varpd512_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_pd_512, 125006}, // __builtin_ia32_vpermt2varpd512_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_ps_128, 120364}, // __builtin_ia32_vpermt2varps128_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_ps_128, 125043}, // __builtin_ia32_vpermt2varps128_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_ps_256, 120400}, // __builtin_ia32_vpermt2varps256_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_ps_256, 125080}, // __builtin_ia32_vpermt2varps256_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_ps_512, 120436}, // __builtin_ia32_vpermt2varps512_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_ps_512, 125117}, // __builtin_ia32_vpermt2varps512_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_q_128, 120472}, // __builtin_ia32_vpermt2varq128_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_q_128, 125154}, // __builtin_ia32_vpermt2varq128_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_q_256, 120507}, // __builtin_ia32_vpermt2varq256_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_q_256, 125190}, // __builtin_ia32_vpermt2varq256_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_q_512, 120542}, // __builtin_ia32_vpermt2varq512_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_q_512, 125226}, // __builtin_ia32_vpermt2varq512_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_qi_128, 120577}, // __builtin_ia32_vpermt2varqi128_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_qi_128, 125262}, // __builtin_ia32_vpermt2varqi128_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_qi_256, 120613}, // __builtin_ia32_vpermt2varqi256_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_qi_256, 125299}, // __builtin_ia32_vpermt2varqi256_maskz
-      {Intrinsic::x86_avx512_mask_vpermt2var_qi_512, 120649}, // __builtin_ia32_vpermt2varqi512_mask
-      {Intrinsic::x86_avx512_maskz_vpermt2var_qi_512, 125336}, // __builtin_ia32_vpermt2varqi512_maskz
-      {Intrinsic::x86_xop_vphaddbd, 138147}, // __builtin_ia32_vphaddbd
-      {Intrinsic::x86_xop_vphaddbq, 138171}, // __builtin_ia32_vphaddbq
-      {Intrinsic::x86_xop_vphaddbw, 138195}, // __builtin_ia32_vphaddbw
-      {Intrinsic::x86_xop_vphadddq, 138219}, // __builtin_ia32_vphadddq
-      {Intrinsic::x86_xop_vphaddubd, 138243}, // __builtin_ia32_vphaddubd
-      {Intrinsic::x86_xop_vphaddubq, 138268}, // __builtin_ia32_vphaddubq
-      {Intrinsic::x86_xop_vphaddubw, 138293}, // __builtin_ia32_vphaddubw
-      {Intrinsic::x86_xop_vphaddudq, 138318}, // __builtin_ia32_vphaddudq
-      {Intrinsic::x86_xop_vphadduwd, 138343}, // __builtin_ia32_vphadduwd
-      {Intrinsic::x86_xop_vphadduwq, 138368}, // __builtin_ia32_vphadduwq
-      {Intrinsic::x86_xop_vphaddwd, 138393}, // __builtin_ia32_vphaddwd
-      {Intrinsic::x86_xop_vphaddwq, 138417}, // __builtin_ia32_vphaddwq
-      {Intrinsic::x86_xop_vphsubbw, 138441}, // __builtin_ia32_vphsubbw
-      {Intrinsic::x86_xop_vphsubdq, 138465}, // __builtin_ia32_vphsubdq
-      {Intrinsic::x86_xop_vphsubwd, 138489}, // __builtin_ia32_vphsubwd
-      {Intrinsic::x86_xop_vpmacsdd, 138513}, // __builtin_ia32_vpmacsdd
-      {Intrinsic::x86_xop_vpmacsdqh, 138537}, // __builtin_ia32_vpmacsdqh
-      {Intrinsic::x86_xop_vpmacsdql, 138562}, // __builtin_ia32_vpmacsdql
-      {Intrinsic::x86_xop_vpmacssdd, 138587}, // __builtin_ia32_vpmacssdd
-      {Intrinsic::x86_xop_vpmacssdqh, 138612}, // __builtin_ia32_vpmacssdqh
-      {Intrinsic::x86_xop_vpmacssdql, 138638}, // __builtin_ia32_vpmacssdql
-      {Intrinsic::x86_xop_vpmacsswd, 138664}, // __builtin_ia32_vpmacsswd
-      {Intrinsic::x86_xop_vpmacssww, 138689}, // __builtin_ia32_vpmacssww
-      {Intrinsic::x86_xop_vpmacswd, 138714}, // __builtin_ia32_vpmacswd
-      {Intrinsic::x86_xop_vpmacsww, 138738}, // __builtin_ia32_vpmacsww
-      {Intrinsic::x86_xop_vpmadcsswd, 138762}, // __builtin_ia32_vpmadcsswd
-      {Intrinsic::x86_xop_vpmadcswd, 138788}, // __builtin_ia32_vpmadcswd
-      {Intrinsic::x86_avx512_mask_vpmadd52h_uq_128, 120685}, // __builtin_ia32_vpmadd52huq128_mask
-      {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_128, 125373}, // __builtin_ia32_vpmadd52huq128_maskz
-      {Intrinsic::x86_avx512_mask_vpmadd52h_uq_256, 120720}, // __builtin_ia32_vpmadd52huq256_mask
-      {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_256, 125409}, // __builtin_ia32_vpmadd52huq256_maskz
-      {Intrinsic::x86_avx512_mask_vpmadd52h_uq_512, 120755}, // __builtin_ia32_vpmadd52huq512_mask
-      {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_512, 125445}, // __builtin_ia32_vpmadd52huq512_maskz
-      {Intrinsic::x86_avx512_mask_vpmadd52l_uq_128, 120790}, // __builtin_ia32_vpmadd52luq128_mask
-      {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_128, 125481}, // __builtin_ia32_vpmadd52luq128_maskz
-      {Intrinsic::x86_avx512_mask_vpmadd52l_uq_256, 120825}, // __builtin_ia32_vpmadd52luq256_mask
-      {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_256, 125517}, // __builtin_ia32_vpmadd52luq256_maskz
-      {Intrinsic::x86_avx512_mask_vpmadd52l_uq_512, 120860}, // __builtin_ia32_vpmadd52luq512_mask
-      {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_512, 125553}, // __builtin_ia32_vpmadd52luq512_maskz
-      {Intrinsic::x86_avx512_mask_pmultishift_qb_128, 115375}, // __builtin_ia32_vpmultishiftqb128_mask
-      {Intrinsic::x86_avx512_mask_pmultishift_qb_256, 115413}, // __builtin_ia32_vpmultishiftqb256_mask
-      {Intrinsic::x86_avx512_mask_pmultishift_qb_512, 115451}, // __builtin_ia32_vpmultishiftqb512_mask
-      {Intrinsic::x86_xop_vpperm, 138813}, // __builtin_ia32_vpperm
-      {Intrinsic::x86_xop_vprotb, 138835}, // __builtin_ia32_vprotb
-      {Intrinsic::x86_xop_vprotbi, 138857}, // __builtin_ia32_vprotbi
-      {Intrinsic::x86_xop_vprotd, 138880}, // __builtin_ia32_vprotd
-      {Intrinsic::x86_xop_vprotdi, 138902}, // __builtin_ia32_vprotdi
-      {Intrinsic::x86_xop_vprotq, 138925}, // __builtin_ia32_vprotq
-      {Intrinsic::x86_xop_vprotqi, 138947}, // __builtin_ia32_vprotqi
-      {Intrinsic::x86_xop_vprotw, 138970}, // __builtin_ia32_vprotw
-      {Intrinsic::x86_xop_vprotwi, 138992}, // __builtin_ia32_vprotwi
-      {Intrinsic::x86_xop_vpshab, 139015}, // __builtin_ia32_vpshab
-      {Intrinsic::x86_xop_vpshad, 139037}, // __builtin_ia32_vpshad
-      {Intrinsic::x86_xop_vpshaq, 139059}, // __builtin_ia32_vpshaq
-      {Intrinsic::x86_xop_vpshaw, 139081}, // __builtin_ia32_vpshaw
-      {Intrinsic::x86_xop_vpshlb, 139103}, // __builtin_ia32_vpshlb
-      {Intrinsic::x86_xop_vpshld, 139125}, // __builtin_ia32_vpshld
-      {Intrinsic::x86_avx512_mask_vpshld_d_128, 120895}, // __builtin_ia32_vpshldd128_mask
-      {Intrinsic::x86_avx512_mask_vpshld_d_256, 120926}, // __builtin_ia32_vpshldd256_mask
-      {Intrinsic::x86_avx512_mask_vpshld_d_512, 120957}, // __builtin_ia32_vpshldd512_mask
-      {Intrinsic::x86_avx512_mask_vpshld_q_128, 120988}, // __builtin_ia32_vpshldq128_mask
-      {Intrinsic::x86_avx512_mask_vpshld_q_256, 121019}, // __builtin_ia32_vpshldq256_mask
-      {Intrinsic::x86_avx512_mask_vpshld_q_512, 121050}, // __builtin_ia32_vpshldq512_mask
-      {Intrinsic::x86_avx512_mask_vpshldv_d_128, 121174}, // __builtin_ia32_vpshldvd128_mask
-      {Intrinsic::x86_avx512_maskz_vpshldv_d_128, 125589}, // __builtin_ia32_vpshldvd128_maskz
-      {Intrinsic::x86_avx512_mask_vpshldv_d_256, 121206}, // __builtin_ia32_vpshldvd256_mask
-      {Intrinsic::x86_avx512_maskz_vpshldv_d_256, 125622}, // __builtin_ia32_vpshldvd256_maskz
-      {Intrinsic::x86_avx512_mask_vpshldv_d_512, 121238}, // __builtin_ia32_vpshldvd512_mask
-      {Intrinsic::x86_avx512_maskz_vpshldv_d_512, 125655}, // __builtin_ia32_vpshldvd512_maskz
-      {Intrinsic::x86_avx512_mask_vpshldv_q_128, 121270}, // __builtin_ia32_vpshldvq128_mask
-      {Intrinsic::x86_avx512_maskz_vpshldv_q_128, 125688}, // __builtin_ia32_vpshldvq128_maskz
-      {Intrinsic::x86_avx512_mask_vpshldv_q_256, 121302}, // __builtin_ia32_vpshldvq256_mask
-      {Intrinsic::x86_avx512_maskz_vpshldv_q_256, 125721}, // __builtin_ia32_vpshldvq256_maskz
-      {Intrinsic::x86_avx512_mask_vpshldv_q_512, 121334}, // __builtin_ia32_vpshldvq512_mask
-      {Intrinsic::x86_avx512_maskz_vpshldv_q_512, 125754}, // __builtin_ia32_vpshldvq512_maskz
-      {Intrinsic::x86_avx512_mask_vpshldv_w_128, 121366}, // __builtin_ia32_vpshldvw128_mask
-      {Intrinsic::x86_avx512_maskz_vpshldv_w_128, 125787}, // __builtin_ia32_vpshldvw128_maskz
-      {Intrinsic::x86_avx512_mask_vpshldv_w_256, 121398}, // __builtin_ia32_vpshldvw256_mask
-      {Intrinsic::x86_avx512_maskz_vpshldv_w_256, 125820}, // __builtin_ia32_vpshldvw256_maskz
-      {Intrinsic::x86_avx512_mask_vpshldv_w_512, 121430}, // __builtin_ia32_vpshldvw512_mask
-      {Intrinsic::x86_avx512_maskz_vpshldv_w_512, 125853}, // __builtin_ia32_vpshldvw512_maskz
-      {Intrinsic::x86_avx512_mask_vpshld_w_128, 121081}, // __builtin_ia32_vpshldw128_mask
-      {Intrinsic::x86_avx512_mask_vpshld_w_256, 121112}, // __builtin_ia32_vpshldw256_mask
-      {Intrinsic::x86_avx512_mask_vpshld_w_512, 121143}, // __builtin_ia32_vpshldw512_mask
-      {Intrinsic::x86_xop_vpshlq, 139147}, // __builtin_ia32_vpshlq
-      {Intrinsic::x86_xop_vpshlw, 139169}, // __builtin_ia32_vpshlw
-      {Intrinsic::x86_avx512_mask_vpshrd_d_128, 121462}, // __builtin_ia32_vpshrdd128_mask
-      {Intrinsic::x86_avx512_mask_vpshrd_d_256, 121493}, // __builtin_ia32_vpshrdd256_mask
-      {Intrinsic::x86_avx512_mask_vpshrd_d_512, 121524}, // __builtin_ia32_vpshrdd512_mask
-      {Intrinsic::x86_avx512_mask_vpshrd_q_128, 121555}, // __builtin_ia32_vpshrdq128_mask
-      {Intrinsic::x86_avx512_mask_vpshrd_q_256, 121586}, // __builtin_ia32_vpshrdq256_mask
-      {Intrinsic::x86_avx512_mask_vpshrd_q_512, 121617}, // __builtin_ia32_vpshrdq512_mask
-      {Intrinsic::x86_avx512_mask_vpshrdv_d_128, 121741}, // __builtin_ia32_vpshrdvd128_mask
-      {Intrinsic::x86_avx512_maskz_vpshrdv_d_128, 125886}, // __builtin_ia32_vpshrdvd128_maskz
-      {Intrinsic::x86_avx512_mask_vpshrdv_d_256, 121773}, // __builtin_ia32_vpshrdvd256_mask
-      {Intrinsic::x86_avx512_maskz_vpshrdv_d_256, 125919}, // __builtin_ia32_vpshrdvd256_maskz
-      {Intrinsic::x86_avx512_mask_vpshrdv_d_512, 121805}, // __builtin_ia32_vpshrdvd512_mask
-      {Intrinsic::x86_avx512_maskz_vpshrdv_d_512, 125952}, // __builtin_ia32_vpshrdvd512_maskz
-      {Intrinsic::x86_avx512_mask_vpshrdv_q_128, 121837}, // __builtin_ia32_vpshrdvq128_mask
-      {Intrinsic::x86_avx512_maskz_vpshrdv_q_128, 125985}, // __builtin_ia32_vpshrdvq128_maskz
-      {Intrinsic::x86_avx512_mask_vpshrdv_q_256, 121869}, // __builtin_ia32_vpshrdvq256_mask
-      {Intrinsic::x86_avx512_maskz_vpshrdv_q_256, 126018}, // __builtin_ia32_vpshrdvq256_maskz
-      {Intrinsic::x86_avx512_mask_vpshrdv_q_512, 121901}, // __builtin_ia32_vpshrdvq512_mask
-      {Intrinsic::x86_avx512_maskz_vpshrdv_q_512, 126051}, // __builtin_ia32_vpshrdvq512_maskz
-      {Intrinsic::x86_avx512_mask_vpshrdv_w_128, 121933}, // __builtin_ia32_vpshrdvw128_mask
-      {Intrinsic::x86_avx512_maskz_vpshrdv_w_128, 126084}, // __builtin_ia32_vpshrdvw128_maskz
-      {Intrinsic::x86_avx512_mask_vpshrdv_w_256, 121965}, // __builtin_ia32_vpshrdvw256_mask
-      {Intrinsic::x86_avx512_maskz_vpshrdv_w_256, 126117}, // __builtin_ia32_vpshrdvw256_maskz
-      {Intrinsic::x86_avx512_mask_vpshrdv_w_512, 121997}, // __builtin_ia32_vpshrdvw512_mask
-      {Intrinsic::x86_avx512_maskz_vpshrdv_w_512, 126150}, // __builtin_ia32_vpshrdvw512_maskz
-      {Intrinsic::x86_avx512_mask_vpshrd_w_128, 121648}, // __builtin_ia32_vpshrdw128_mask
-      {Intrinsic::x86_avx512_mask_vpshrd_w_256, 121679}, // __builtin_ia32_vpshrdw256_mask
-      {Intrinsic::x86_avx512_mask_vpshrd_w_512, 121710}, // __builtin_ia32_vpshrdw512_mask
-      {Intrinsic::x86_avx512_mask_vpshufbitqmb_128, 122029}, // __builtin_ia32_vpshufbitqmb128_mask
-      {Intrinsic::x86_avx512_mask_vpshufbitqmb_256, 122065}, // __builtin_ia32_vpshufbitqmb256_mask
-      {Intrinsic::x86_avx512_mask_vpshufbitqmb_512, 122101}, // __builtin_ia32_vpshufbitqmb512_mask
-      {Intrinsic::x86_avx_vtestc_pd, 100566}, // __builtin_ia32_vtestcpd
-      {Intrinsic::x86_avx_vtestc_pd_256, 100590}, // __builtin_ia32_vtestcpd256
-      {Intrinsic::x86_avx_vtestc_ps, 100617}, // __builtin_ia32_vtestcps
-      {Intrinsic::x86_avx_vtestc_ps_256, 100641}, // __builtin_ia32_vtestcps256
-      {Intrinsic::x86_avx_vtestnzc_pd, 100668}, // __builtin_ia32_vtestnzcpd
-      {Intrinsic::x86_avx_vtestnzc_pd_256, 100694}, // __builtin_ia32_vtestnzcpd256
-      {Intrinsic::x86_avx_vtestnzc_ps, 100723}, // __builtin_ia32_vtestnzcps
-      {Intrinsic::x86_avx_vtestnzc_ps_256, 100749}, // __builtin_ia32_vtestnzcps256
-      {Intrinsic::x86_avx_vtestz_pd, 100778}, // __builtin_ia32_vtestzpd
-      {Intrinsic::x86_avx_vtestz_pd_256, 100802}, // __builtin_ia32_vtestzpd256
-      {Intrinsic::x86_avx_vtestz_ps, 100829}, // __builtin_ia32_vtestzps
-      {Intrinsic::x86_avx_vtestz_ps_256, 100853}, // __builtin_ia32_vtestzps256
-      {Intrinsic::x86_avx_vzeroall, 100880}, // __builtin_ia32_vzeroall
-      {Intrinsic::x86_avx_vzeroupper, 100904}, // __builtin_ia32_vzeroupper
-      {Intrinsic::x86_wrfsbase_32, 137437}, // __builtin_ia32_wrfsbase32
-      {Intrinsic::x86_wrfsbase_64, 137463}, // __builtin_ia32_wrfsbase64
-      {Intrinsic::x86_wrgsbase_32, 137489}, // __builtin_ia32_wrgsbase32
-      {Intrinsic::x86_wrgsbase_64, 137515}, // __builtin_ia32_wrgsbase64
-      {Intrinsic::x86_flags_write_u32, 129664}, // __builtin_ia32_writeeflags_u32
-      {Intrinsic::x86_flags_write_u64, 129695}, // __builtin_ia32_writeeflags_u64
-      {Intrinsic::x86_wrpkru, 137541}, // __builtin_ia32_wrpkru
-      {Intrinsic::x86_wrssd, 137563}, // __builtin_ia32_wrssd
-      {Intrinsic::x86_wrssq, 137584}, // __builtin_ia32_wrssq
-      {Intrinsic::x86_wrussd, 137605}, // __builtin_ia32_wrussd
-      {Intrinsic::x86_wrussq, 137627}, // __builtin_ia32_wrussq
-      {Intrinsic::x86_xabort, 137649}, // __builtin_ia32_xabort
-      {Intrinsic::x86_xbegin, 137671}, // __builtin_ia32_xbegin
-      {Intrinsic::x86_xend, 137693}, // __builtin_ia32_xend
-      {Intrinsic::x86_xtest, 139191}, // __builtin_ia32_xtest
-    };
-    auto I = std::lower_bound(std::begin(x86Names),
-                              std::end(x86Names),
-                              BuiltinNameStr);
-    if (I != std::end(x86Names) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "xcore") {
-    static const BuiltinEntry xcoreNames[] = {
-      {Intrinsic::xcore_bitrev, 139212}, // __builtin_bitrev
-      {Intrinsic::xcore_getid, 139229}, // __builtin_getid
-      {Intrinsic::xcore_getps, 139245}, // __builtin_getps
-      {Intrinsic::xcore_setps, 139261}, // __builtin_setps
-    };
-    auto I = std::lower_bound(std::begin(xcoreNames),
-                              std::end(xcoreNames),
-                              BuiltinNameStr);
-    if (I != std::end(xcoreNames) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  return Intrinsic::not_intrinsic;
-}
-#endif
-
-// Get the LLVM intrinsic that corresponds to a builtin.
-// This is used by the C front-end.  The builtin name is passed
-// in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
-// in as TargetPrefix.  The result is assigned to 'IntrinsicID'.
-#ifdef GET_LLVM_INTRINSIC_FOR_MS_BUILTIN
-Intrinsic::ID Intrinsic::getIntrinsicForMSBuiltin(const char *TargetPrefixStr, StringRef BuiltinNameStr) {
-  static const char BuiltinNames[] = {
-  '_', '_', 'd', 'm', 'b', '\000', '_', '_', 'd', 's', 'b', '\000', '_', '_', 'i',
-  's', 'b', '\000', '_', 'M', 'o', 'v', 'e', 'F', 'r', 'o', 'm', 'C', 'o', 'p',
-  'r', 'o', 'c', 'e', 's', 's', 'o', 'r', '\000', '_', 'M', 'o', 'v', 'e', 'F',
-  'r', 'o', 'm', 'C', 'o', 'p', 'r', 'o', 'c', 'e', 's', 's', 'o', 'r', '2',
-  '\000',
-  };
-
-  struct BuiltinEntry {
-    Intrinsic::ID IntrinID;
-    unsigned StrTabOffset;
-    const char *getName() const {
-      return &BuiltinNames[StrTabOffset];
-    }
-    bool operator<(StringRef RHS) const {
-      return strncmp(getName(), RHS.data(), RHS.size()) < 0;
-    }
-  };
-  StringRef TargetPrefix(TargetPrefixStr);
-
-  if (TargetPrefix == "aarch64") {
-    static const BuiltinEntry aarch64Names[] = {
-      {Intrinsic::aarch64_dmb, 0}, // __dmb
-      {Intrinsic::aarch64_dsb, 6}, // __dsb
-      {Intrinsic::aarch64_isb, 12}, // __isb
-    };
-    auto I = std::lower_bound(std::begin(aarch64Names),
-                              std::end(aarch64Names),
-                              BuiltinNameStr);
-    if (I != std::end(aarch64Names) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  if (TargetPrefix == "arm") {
-    static const BuiltinEntry armNames[] = {
-      {Intrinsic::arm_mrc, 18}, // _MoveFromCoprocessor
-      {Intrinsic::arm_mrc2, 39}, // _MoveFromCoprocessor2
-      {Intrinsic::arm_dmb, 0}, // __dmb
-      {Intrinsic::arm_dsb, 6}, // __dsb
-      {Intrinsic::arm_isb, 12}, // __isb
-    };
-    auto I = std::lower_bound(std::begin(armNames),
-                              std::end(armNames),
-                              BuiltinNameStr);
-    if (I != std::end(armNames) &&
-        I->getName() == BuiltinNameStr)
-      return I->IntrinID;
-  }
-  return Intrinsic::not_intrinsic;
-}
-#endif
-
-#if defined(_MSC_VER) && defined(setjmp_undefined_for_msvc)
-// let's return it to _setjmp state
-#  pragma pop_macro("setjmp")
-#  undef setjmp_undefined_for_msvc
-#endif
-
diff --git a/linux-x64/clang/include/llvm/IR/Intrinsics.h b/linux-x64/clang/include/llvm/IR/Intrinsics.h
index fc79da7..e1e17f9 100644
--- a/linux-x64/clang/include/llvm/IR/Intrinsics.h
+++ b/linux-x64/clang/include/llvm/IR/Intrinsics.h
@@ -39,7 +39,7 @@
 
     // Get the intrinsic enums generated from Intrinsics.td
 #define GET_INTRINSIC_ENUM_VALUES
-#include "llvm/IR/Intrinsics.gen"
+#include "llvm/IR/IntrinsicEnums.inc"
 #undef GET_INTRINSIC_ENUM_VALUES
     , num_intrinsics
   };
@@ -97,7 +97,7 @@
   /// intrinsic. This is returned by getIntrinsicInfoTableEntries.
   struct IITDescriptor {
     enum IITDescriptorKind {
-      Void, VarArg, MMX, Token, Metadata, Half, Float, Double,
+      Void, VarArg, MMX, Token, Metadata, Half, Float, Double, Quad,
       Integer, Vector, Pointer, Struct,
       Argument, ExtendArgument, TruncArgument, HalfVecArgument,
       SameVecWidthArgument, PtrToArgument, PtrToElt, VecOfAnyPtrsToElt
diff --git a/linux-x64/clang/include/llvm/IR/Intrinsics.td b/linux-x64/clang/include/llvm/IR/Intrinsics.td
index fbb1c5c..0cec754 100644
--- a/linux-x64/clang/include/llvm/IR/Intrinsics.td
+++ b/linux-x64/clang/include/llvm/IR/Intrinsics.td
@@ -117,6 +117,7 @@
 
 class LLVMType<ValueType vt> {
   ValueType VT = vt;
+  int isAny = 0;
 }
 
 class LLVMQualPointerType<LLVMType elty, int addrspace>
@@ -131,6 +132,8 @@
 class LLVMAnyPointerType<LLVMType elty>
   : LLVMType<iPTRAny>{
   LLVMType ElTy = elty;
+
+  let isAny = 1;
 }
 
 // Match the type of another intrinsic parameter.  Number is an index into the
@@ -163,10 +166,12 @@
 class LLVMHalfElementsVectorType<int num> : LLVMMatchType<num>;
 
 def llvm_void_ty       : LLVMType<isVoid>;
-def llvm_any_ty        : LLVMType<Any>;
-def llvm_anyint_ty     : LLVMType<iAny>;
-def llvm_anyfloat_ty   : LLVMType<fAny>;
-def llvm_anyvector_ty  : LLVMType<vAny>;
+let isAny = 1 in {
+  def llvm_any_ty        : LLVMType<Any>;
+  def llvm_anyint_ty     : LLVMType<iAny>;
+  def llvm_anyfloat_ty   : LLVMType<fAny>;
+  def llvm_anyvector_ty  : LLVMType<vAny>;
+}
 def llvm_i1_ty         : LLVMType<i1>;
 def llvm_i8_ty         : LLVMType<i8>;
 def llvm_i16_ty        : LLVMType<i16>;
@@ -249,7 +254,6 @@
 
 def llvm_vararg_ty     : LLVMType<isVoid>;   // this means vararg here
 
-
 //===----------------------------------------------------------------------===//
 // Intrinsic Definitions.
 //===----------------------------------------------------------------------===//
@@ -537,7 +541,7 @@
                                                     [ LLVMMatchType<0>,
                                                       llvm_metadata_ty,
                                                       llvm_metadata_ty ]>;
-  def int_experimental_constrained_exp  : Intrinsic<[ llvm_anyfloat_ty ], 
+  def int_experimental_constrained_exp  : Intrinsic<[ llvm_anyfloat_ty ],
                                                     [ LLVMMatchType<0>,
                                                       llvm_metadata_ty,
                                                       llvm_metadata_ty ]>;
@@ -573,6 +577,10 @@
   def int_ctlz : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i1_ty]>;
   def int_cttz : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i1_ty]>;
   def int_bitreverse : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>]>;
+  def int_fshl : Intrinsic<[llvm_anyint_ty],
+      [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>]>;
+  def int_fshr : Intrinsic<[llvm_anyint_ty],
+      [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>]>;
 }
 
 //===------------------------ Debugger Intrinsics -------------------------===//
@@ -595,6 +603,8 @@
                                        [llvm_metadata_ty,
                                         llvm_metadata_ty,
                                         llvm_metadata_ty]>;
+  def int_dbg_label        : Intrinsic<[],
+                                       [llvm_metadata_ty]>;
 }
 
 //===------------------ Exception Handling Intrinsics----------------------===//
@@ -706,16 +716,26 @@
                                      llvm_anyptr_ty],
                                     [IntrArgMemOnly, NoCapture<2>]>;
 
-// invariant.group.barrier can't be marked with 'readnone' (IntrNoMem),
+// launder.invariant.group can't be marked with 'readnone' (IntrNoMem),
 // because it would cause CSE of two barriers with the same argument.
-// Readonly and argmemonly says that barrier only reads its argument and
-// it can be CSE only if memory didn't change between 2 barriers call,
-// which is valid.
+// Inaccessiblememonly says that the barrier doesn't read the argument,
+// but it changes state not accessible to this module. This way
+// we can DSE through the barrier because it doesn't read the value
+// after store. Although the barrier doesn't modify any memory it
+// can't be marked as readonly, because it would be possible to
+// CSE 2 barriers with store in between.
 // The argument also can't be marked with 'returned' attribute, because
 // it would remove barrier.
-def int_invariant_group_barrier : Intrinsic<[llvm_anyptr_ty],
+// Note that it is still experimental, which means that its semantics
+// might change in the future.
+def int_launder_invariant_group : Intrinsic<[llvm_anyptr_ty],
                                             [LLVMMatchType<0>],
-                                            [IntrReadMem, IntrArgMemOnly]>;
+                                            [IntrInaccessibleMemOnly, IntrSpeculatable]>;
+
+
+def int_strip_invariant_group : Intrinsic<[llvm_anyptr_ty],
+                                          [LLVMMatchType<0>],
+                                          [IntrSpeculatable, IntrNoMem]>;
 
 //===------------------------ Stackmap Intrinsics -------------------------===//
 //
@@ -768,6 +788,7 @@
 def int_coro_end : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty, llvm_i1_ty], []>;
 
 def int_coro_frame : Intrinsic<[llvm_ptr_ty], [], [IntrNoMem]>;
+def int_coro_noop : Intrinsic<[llvm_ptr_ty], [], [IntrNoMem]>;
 def int_coro_size : Intrinsic<[llvm_anyint_ty], [], [IntrNoMem]>;
 
 def int_coro_save : Intrinsic<[llvm_token_ty], [llvm_ptr_ty], []>;
@@ -887,6 +908,10 @@
 // Takes a pointer to a string and the length of the string.
 def int_xray_customevent : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty],
                                      [NoCapture<0>, ReadOnly<0>, IntrWriteMem]>;
+// Typed event logging for x-ray.
+// Takes a numeric type tag, a pointer to a string and the length of the string.
+def int_xray_typedevent : Intrinsic<[], [llvm_i16_ty, llvm_ptr_ty, llvm_i32_ty],
+                                        [NoCapture<1>, ReadOnly<1>, IntrWriteMem]>;
 //===----------------------------------------------------------------------===//
 
 //===------ Memory intrinsics with element-wise atomicity guarantees ------===//
diff --git a/linux-x64/clang/include/llvm/IR/IntrinsicsAArch64.td b/linux-x64/clang/include/llvm/IR/IntrinsicsAArch64.td
index 5034133..688e863 100644
--- a/linux-x64/clang/include/llvm/IR/IntrinsicsAArch64.td
+++ b/linux-x64/clang/include/llvm/IR/IntrinsicsAArch64.td
@@ -149,6 +149,11 @@
 
   class AdvSIMD_1Arg_Intrinsic
     : Intrinsic<[llvm_any_ty], [LLVMMatchType<0>], [IntrNoMem]>;
+
+  class AdvSIMD_Dot_Intrinsic
+    : Intrinsic<[llvm_anyvector_ty],
+                [LLVMMatchType<0>, llvm_anyvector_ty, LLVMMatchType<1>],
+                [IntrNoMem]>;
 }
 
 // Arithmetic ops
@@ -415,6 +420,10 @@
   // Scalar FP Inexact Narrowing
   def int_aarch64_sisd_fcvtxn : Intrinsic<[llvm_float_ty], [llvm_double_ty],
                                         [IntrNoMem]>;
+
+  // v8.2-A Dot Product
+  def int_aarch64_neon_udot : AdvSIMD_Dot_Intrinsic;
+  def int_aarch64_neon_sdot : AdvSIMD_Dot_Intrinsic;
 }
 
 let TargetPrefix = "aarch64" in {  // All intrinsics start with "llvm.aarch64.".
@@ -575,6 +584,14 @@
 def int_aarch64_neon_tbx4 : AdvSIMD_Tbx4_Intrinsic;
 
 let TargetPrefix = "aarch64" in {
+  class FPCR_Get_Intrinsic
+    : Intrinsic<[llvm_i64_ty], [], [IntrNoMem]>;
+}
+
+// FPCR
+def int_aarch64_get_fpcr : FPCR_Get_Intrinsic;
+
+let TargetPrefix = "aarch64" in {
   class Crypto_AES_DataKey_Intrinsic
     : Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
 
diff --git a/linux-x64/clang/include/llvm/IR/IntrinsicsAMDGPU.td b/linux-x64/clang/include/llvm/IR/IntrinsicsAMDGPU.td
index 408ab02..9f36141 100644
--- a/linux-x64/clang/include/llvm/IR/IntrinsicsAMDGPU.td
+++ b/linux-x64/clang/include/llvm/IR/IntrinsicsAMDGPU.td
@@ -17,6 +17,13 @@
 class AMDGPUReadPreloadRegisterIntrinsicNamed<string name>
   : Intrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrSpeculatable]>, GCCBuiltin<name>;
 
+// Used to tag image and resource intrinsics with information used to generate
+// mem operands.
+class AMDGPURsrcIntrinsic<int rsrcarg, bit isimage = 0> {
+  int RsrcArg = rsrcarg;
+  bit IsImage = isimage;
+}
+
 let TargetPrefix = "r600" in {
 
 multiclass AMDGPUReadPreloadRegisterIntrinsic_xyz {
@@ -69,6 +76,59 @@
   [llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem, IntrSpeculatable]
 >;
 
+def int_r600_store_stream_output : Intrinsic<
+  [], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []
+>;
+
+class TextureIntrinsicFloatInput : Intrinsic<[llvm_v4f32_ty], [
+  llvm_v4f32_ty, // Coord
+  llvm_i32_ty,   // offset_x
+  llvm_i32_ty,   // offset_y,
+  llvm_i32_ty,   // offset_z,
+  llvm_i32_ty,   // resource_id
+  llvm_i32_ty,   // samplerid
+  llvm_i32_ty,   // coord_type_x
+  llvm_i32_ty,   // coord_type_y
+  llvm_i32_ty,   // coord_type_z
+  llvm_i32_ty],  // coord_type_w
+  [IntrNoMem]
+>;
+
+class TextureIntrinsicInt32Input : Intrinsic<[llvm_v4i32_ty], [
+    llvm_v4i32_ty, // Coord
+    llvm_i32_ty,   // offset_x
+    llvm_i32_ty,   // offset_y,
+    llvm_i32_ty,   // offset_z,
+    llvm_i32_ty,   // resource_id
+    llvm_i32_ty,   // samplerid
+    llvm_i32_ty,   // coord_type_x
+    llvm_i32_ty,   // coord_type_y
+    llvm_i32_ty,   // coord_type_z
+    llvm_i32_ty],  // coord_type_w
+    [IntrNoMem]
+>;
+
+def int_r600_store_swizzle :
+  Intrinsic<[], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty], []
+>;
+
+def int_r600_tex : TextureIntrinsicFloatInput;
+def int_r600_texc : TextureIntrinsicFloatInput;
+def int_r600_txl : TextureIntrinsicFloatInput;
+def int_r600_txlc : TextureIntrinsicFloatInput;
+def int_r600_txb : TextureIntrinsicFloatInput;
+def int_r600_txbc : TextureIntrinsicFloatInput;
+def int_r600_txf : TextureIntrinsicInt32Input;
+def int_r600_txq : TextureIntrinsicInt32Input;
+def int_r600_ddx : TextureIntrinsicFloatInput;
+def int_r600_ddy : TextureIntrinsicFloatInput;
+
+def int_r600_dot4 : Intrinsic<[llvm_float_ty],
+  [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem, IntrSpeculatable]
+>;
+
+def int_r600_kill : Intrinsic<[], [llvm_float_ty], []>;
+
 } // End TargetPrefix = "r600"
 
 let TargetPrefix = "amdgcn" in {
@@ -300,6 +360,12 @@
   [IntrNoMem, IntrSpeculatable]
 >;
 
+// v_mad_f32|f16/v_mac_f32|f16, selected regardless of denorm support.
+def int_amdgcn_fmad_ftz :
+  Intrinsic<[llvm_anyfloat_ty],
+            [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>],
+            [IntrNoMem, IntrSpeculatable]
+>;
 
 // Fields should mirror atomicrmw
 class AMDGPUAtomicIncIntrin : Intrinsic<[llvm_anyint_ty],
@@ -326,169 +392,403 @@
     [IntrArgMemOnly, NoCapture<0>]
 >;
 
-def int_amdgcn_ds_fadd : AMDGPULDSF32Intrin<"__builtin_amdgcn_ds_fadd">;
-def int_amdgcn_ds_fmin : AMDGPULDSF32Intrin<"__builtin_amdgcn_ds_fmin">;
-def int_amdgcn_ds_fmax : AMDGPULDSF32Intrin<"__builtin_amdgcn_ds_fmax">;
+def int_amdgcn_ds_fadd : AMDGPULDSF32Intrin<"__builtin_amdgcn_ds_faddf">;
+def int_amdgcn_ds_fmin : AMDGPULDSF32Intrin<"__builtin_amdgcn_ds_fminf">;
+def int_amdgcn_ds_fmax : AMDGPULDSF32Intrin<"__builtin_amdgcn_ds_fmaxf">;
 
-class AMDGPUImageLoad<bit NoMem = 0> : Intrinsic <
-  [llvm_anyfloat_ty], // vdata(VGPR)
-  [llvm_anyint_ty,    // vaddr(VGPR)
-   llvm_anyint_ty,    // rsrc(SGPR)
-   llvm_i32_ty,       // dmask(imm)
-   llvm_i1_ty,        // glc(imm)
-   llvm_i1_ty,        // slc(imm)
-   llvm_i1_ty,        // lwe(imm)
-   llvm_i1_ty],       // da(imm)
-  !if(NoMem, [IntrNoMem], [IntrReadMem]), "",
-  !if(NoMem, [], [SDNPMemOperand])>;
+} // TargetPrefix = "amdgcn"
 
-def int_amdgcn_image_load : AMDGPUImageLoad;
-def int_amdgcn_image_load_mip : AMDGPUImageLoad;
-def int_amdgcn_image_getresinfo : AMDGPUImageLoad<1>;
+// New-style image intrinsics
 
-class AMDGPUImageStore : Intrinsic <
-  [],
-  [llvm_anyfloat_ty,  // vdata(VGPR)
-   llvm_anyint_ty,    // vaddr(VGPR)
-   llvm_anyint_ty,    // rsrc(SGPR)
-   llvm_i32_ty,       // dmask(imm)
-   llvm_i1_ty,        // glc(imm)
-   llvm_i1_ty,        // slc(imm)
-   llvm_i1_ty,        // lwe(imm)
-   llvm_i1_ty],       // da(imm)
-  [IntrWriteMem], "", [SDNPMemOperand]>;
+//////////////////////////////////////////////////////////////////////////
+// Dimension-aware image intrinsics framework
+//////////////////////////////////////////////////////////////////////////
 
-def int_amdgcn_image_store : AMDGPUImageStore;
-def int_amdgcn_image_store_mip : AMDGPUImageStore;
+// Helper class to represent (type, name) combinations of arguments. The
+// argument names are explanatory and used as DAG operand names for codegen
+// pattern matching.
+class AMDGPUArg<LLVMType ty, string name> {
+  LLVMType Type = ty;
+  string Name = name;
+}
 
-class AMDGPUImageSample<bit NoMem = 0> : Intrinsic <
-    [llvm_anyfloat_ty], // vdata(VGPR)
-    [llvm_anyfloat_ty,  // vaddr(VGPR)
-     llvm_anyint_ty,    // rsrc(SGPR)
-     llvm_v4i32_ty,     // sampler(SGPR)
-     llvm_i32_ty,       // dmask(imm)
-     llvm_i1_ty,        // unorm(imm)
-     llvm_i1_ty,        // glc(imm)
-     llvm_i1_ty,        // slc(imm)
-     llvm_i1_ty,        // lwe(imm)
-     llvm_i1_ty],       // da(imm)
-     !if(NoMem, [IntrNoMem], [IntrReadMem]), "",
-     !if(NoMem, [], [SDNPMemOperand])>;
+// Return [AMDGPUArg<basety, names[0]>, AMDGPUArg<LLVMMatchType<0>, names[1]>, ...]
+class makeArgList<list<string> names, LLVMType basety> {
+  list<AMDGPUArg> ret =
+    !listconcat([AMDGPUArg<basety, names[0]>],
+                !foreach(name, !tail(names), AMDGPUArg<LLVMMatchType<0>, name>));
+}
 
-// Basic sample
-def int_amdgcn_image_sample : AMDGPUImageSample;
-def int_amdgcn_image_sample_cl : AMDGPUImageSample;
-def int_amdgcn_image_sample_d : AMDGPUImageSample;
-def int_amdgcn_image_sample_d_cl : AMDGPUImageSample;
-def int_amdgcn_image_sample_l : AMDGPUImageSample;
-def int_amdgcn_image_sample_b : AMDGPUImageSample;
-def int_amdgcn_image_sample_b_cl : AMDGPUImageSample;
-def int_amdgcn_image_sample_lz : AMDGPUImageSample;
-def int_amdgcn_image_sample_cd : AMDGPUImageSample;
-def int_amdgcn_image_sample_cd_cl : AMDGPUImageSample;
+// Return arglist, with LLVMMatchType's references shifted by 'shift'.
+class arglistmatchshift<list<AMDGPUArg> arglist, int shift> {
+  list<AMDGPUArg> ret =
+    !foreach(arg, arglist,
+             !if(!isa<LLVMMatchType>(arg.Type),
+                 AMDGPUArg<LLVMMatchType<!add(!cast<LLVMMatchType>(arg.Type).Number, shift)>,
+                           arg.Name>,
+                 arg));
+}
 
-// Sample with comparison
-def int_amdgcn_image_sample_c : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_cl : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_d : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_d_cl : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_l : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_b : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_b_cl : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_lz : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_cd : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_cd_cl : AMDGPUImageSample;
+// Return the concatenation of the given arglists. LLVMMatchType's are adjusted
+// accordingly, and shifted by an additional 'shift'.
+class arglistconcat<list<list<AMDGPUArg>> arglists, int shift = 0> {
+  list<AMDGPUArg> ret =
+    !foldl([]<AMDGPUArg>, arglists, lhs, rhs,
+           !listconcat(
+             lhs,
+             arglistmatchshift<rhs,
+                               !add(shift, !foldl(0, lhs, a, b,
+                                                  !add(a, b.Type.isAny)))>.ret));
+}
 
-// Sample with offsets
-def int_amdgcn_image_sample_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_cl_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_d_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_d_cl_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_l_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_b_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_b_cl_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_lz_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_cd_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_cd_cl_o : AMDGPUImageSample;
+// Represent texture/image types / dimensionality.
+class AMDGPUDimProps<string name, list<string> coord_names, list<string> slice_names> {
+  AMDGPUDimProps Dim = !cast<AMDGPUDimProps>(NAME);
+  string Name = name; // e.g. "2darraymsaa"
+  bit DA = 0; // DA bit in MIMG encoding
 
-// Sample with comparison and offsets
-def int_amdgcn_image_sample_c_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_cl_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_d_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_d_cl_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_l_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_b_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_b_cl_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_lz_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_cd_o : AMDGPUImageSample;
-def int_amdgcn_image_sample_c_cd_cl_o : AMDGPUImageSample;
+  list<AMDGPUArg> CoordSliceArgs =
+    makeArgList<!listconcat(coord_names, slice_names), llvm_anyfloat_ty>.ret;
+  list<AMDGPUArg> CoordSliceIntArgs =
+    makeArgList<!listconcat(coord_names, slice_names), llvm_anyint_ty>.ret;
+  list<AMDGPUArg> GradientArgs =
+    makeArgList<!listconcat(!foreach(name, coord_names, "d" # name # "dh"),
+                            !foreach(name, coord_names, "d" # name # "dv")),
+                llvm_anyfloat_ty>.ret;
 
-// Basic gather4
-def int_amdgcn_image_gather4 : AMDGPUImageSample;
-def int_amdgcn_image_gather4_cl : AMDGPUImageSample;
-def int_amdgcn_image_gather4_l : AMDGPUImageSample;
-def int_amdgcn_image_gather4_b : AMDGPUImageSample;
-def int_amdgcn_image_gather4_b_cl : AMDGPUImageSample;
-def int_amdgcn_image_gather4_lz : AMDGPUImageSample;
+  bits<8> NumCoords = !size(CoordSliceArgs);
+  bits<8> NumGradients = !size(GradientArgs);
+}
 
-// Gather4 with comparison
-def int_amdgcn_image_gather4_c : AMDGPUImageSample;
-def int_amdgcn_image_gather4_c_cl : AMDGPUImageSample;
-def int_amdgcn_image_gather4_c_l : AMDGPUImageSample;
-def int_amdgcn_image_gather4_c_b : AMDGPUImageSample;
-def int_amdgcn_image_gather4_c_b_cl : AMDGPUImageSample;
-def int_amdgcn_image_gather4_c_lz : AMDGPUImageSample;
+def AMDGPUDim1D : AMDGPUDimProps<"1d", ["s"], []>;
+def AMDGPUDim2D : AMDGPUDimProps<"2d", ["s", "t"], []>;
+def AMDGPUDim3D : AMDGPUDimProps<"3d", ["s", "t", "r"], []>;
+let DA = 1 in {
+  def AMDGPUDimCube : AMDGPUDimProps<"cube", ["s", "t"], ["face"]>;
+  def AMDGPUDim1DArray : AMDGPUDimProps<"1darray", ["s"], ["slice"]>;
+  def AMDGPUDim2DArray : AMDGPUDimProps<"2darray", ["s", "t"], ["slice"]>;
+}
+def AMDGPUDim2DMsaa : AMDGPUDimProps<"2dmsaa", ["s", "t"], ["fragid"]>;
+let DA = 1 in {
+  def AMDGPUDim2DArrayMsaa : AMDGPUDimProps<"2darraymsaa", ["s", "t"], ["slice", "fragid"]>;
+}
 
-// Gather4 with offsets
-def int_amdgcn_image_gather4_o : AMDGPUImageSample;
-def int_amdgcn_image_gather4_cl_o : AMDGPUImageSample;
-def int_amdgcn_image_gather4_l_o : AMDGPUImageSample;
-def int_amdgcn_image_gather4_b_o : AMDGPUImageSample;
-def int_amdgcn_image_gather4_b_cl_o : AMDGPUImageSample;
-def int_amdgcn_image_gather4_lz_o : AMDGPUImageSample;
+def AMDGPUDims {
+  list<AMDGPUDimProps> NoMsaa = [AMDGPUDim1D, AMDGPUDim2D, AMDGPUDim3D,
+                                 AMDGPUDimCube, AMDGPUDim1DArray,
+                                 AMDGPUDim2DArray];
+  list<AMDGPUDimProps> Msaa = [AMDGPUDim2DMsaa, AMDGPUDim2DArrayMsaa];
+  list<AMDGPUDimProps> All = !listconcat(NoMsaa, Msaa);
+}
 
-// Gather4 with comparison and offsets
-def int_amdgcn_image_gather4_c_o : AMDGPUImageSample;
-def int_amdgcn_image_gather4_c_cl_o : AMDGPUImageSample;
-def int_amdgcn_image_gather4_c_l_o : AMDGPUImageSample;
-def int_amdgcn_image_gather4_c_b_o : AMDGPUImageSample;
-def int_amdgcn_image_gather4_c_b_cl_o : AMDGPUImageSample;
-def int_amdgcn_image_gather4_c_lz_o : AMDGPUImageSample;
+// Represent sample variants, i.e. _C, _O, _B, ... and combinations thereof.
+class AMDGPUSampleVariant<string ucmod, string lcmod, list<AMDGPUArg> extra_addr> {
+  string UpperCaseMod = ucmod;
+  string LowerCaseMod = lcmod;
 
-def int_amdgcn_image_getlod : AMDGPUImageSample<1>;
+  // {offset} {bias} {z-compare}
+  list<AMDGPUArg> ExtraAddrArgs = extra_addr;
+  bit Gradients = 0;
 
-class AMDGPUImageAtomic : Intrinsic <
-  [llvm_i32_ty],
-  [llvm_i32_ty,       // vdata(VGPR)
-   llvm_anyint_ty,    // vaddr(VGPR)
-   llvm_v8i32_ty,     // rsrc(SGPR)
-   llvm_i1_ty,        // r128(imm)
-   llvm_i1_ty,        // da(imm)
-   llvm_i1_ty],       // slc(imm)
-  [], "", [SDNPMemOperand]>;
+  // Name of the {lod} or {clamp} argument that is appended to the coordinates,
+  // if any.
+  string LodOrClamp = "";
+}
 
-def int_amdgcn_image_atomic_swap : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_add : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_sub : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_smin : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_umin : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_smax : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_umax : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_and : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_or : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_xor : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_inc : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_dec : AMDGPUImageAtomic;
-def int_amdgcn_image_atomic_cmpswap : Intrinsic <
-  [llvm_i32_ty],
-  [llvm_i32_ty,       // src(VGPR)
-   llvm_i32_ty,       // cmp(VGPR)
-   llvm_anyint_ty,    // vaddr(VGPR)
-   llvm_v8i32_ty,     // rsrc(SGPR)
-   llvm_i1_ty,        // r128(imm)
-   llvm_i1_ty,        // da(imm)
-   llvm_i1_ty],       // slc(imm)
-  [], "", [SDNPMemOperand]>;
+// AMDGPUSampleVariants: all variants supported by IMAGE_SAMPLE
+// AMDGPUSampleVariantsNoGradients: variants supported by IMAGE_GATHER4
+defset list<AMDGPUSampleVariant> AMDGPUSampleVariants = {
+  multiclass AMDGPUSampleHelper_Offset<string ucmod, string lcmod,
+                                       list<AMDGPUArg> extra_addr> {
+    def NAME#lcmod : AMDGPUSampleVariant<ucmod, lcmod, extra_addr>;
+    def NAME#lcmod#_o : AMDGPUSampleVariant<
+        ucmod#"_O", lcmod#"_o", !listconcat([AMDGPUArg<llvm_i32_ty, "offset">], extra_addr)>;
+  }
+
+  multiclass AMDGPUSampleHelper_Compare<string ucmod, string lcmod,
+                                        list<AMDGPUArg> extra_addr> {
+    defm NAME : AMDGPUSampleHelper_Offset<ucmod, lcmod, extra_addr>;
+    defm NAME : AMDGPUSampleHelper_Offset<
+        "_C"#ucmod, "_c"#lcmod, !listconcat(extra_addr, [AMDGPUArg<llvm_float_ty, "zcompare">])>;
+  }
+
+  multiclass AMDGPUSampleHelper_Clamp<string ucmod, string lcmod,
+                                      list<AMDGPUArg> extra_addr> {
+    defm NAME : AMDGPUSampleHelper_Compare<ucmod, lcmod, extra_addr>;
+    let LodOrClamp = "clamp" in
+    defm NAME : AMDGPUSampleHelper_Compare<ucmod#"_CL", lcmod#"_cl", extra_addr>;
+  }
+
+  defset list<AMDGPUSampleVariant> AMDGPUSampleVariantsNoGradients = {
+    defm AMDGPUSample : AMDGPUSampleHelper_Clamp<"", "", []>;
+    defm AMDGPUSample : AMDGPUSampleHelper_Clamp<
+        "_B", "_b", [AMDGPUArg<llvm_anyfloat_ty, "bias">]>;
+    let LodOrClamp = "lod" in
+    defm AMDGPUSample : AMDGPUSampleHelper_Compare<"_L", "_l", []>;
+    defm AMDGPUSample : AMDGPUSampleHelper_Compare<"_LZ", "_lz", []>;
+  }
+
+  let Gradients = 1 in {
+    defm AMDGPUSample : AMDGPUSampleHelper_Clamp<"_D", "_d", []>;
+    defm AMDGPUSample : AMDGPUSampleHelper_Clamp<"_CD", "_cd", []>;
+  }
+}
+
+// Helper class to capture the profile of a dimension-aware image intrinsic.
+// This information is used to generate the intrinsic's type and to inform
+// codegen pattern matching.
+class AMDGPUDimProfile<string opmod,
+                       AMDGPUDimProps dim> {
+  AMDGPUDimProps Dim = dim;
+  string OpMod = opmod; // the corresponding instruction is named IMAGE_OpMod
+
+  // These are entended to be overwritten by subclasses
+  bit IsSample = 0;
+  bit IsAtomic = 0;
+  list<LLVMType> RetTypes = [];
+  list<AMDGPUArg> DataArgs = [];
+  list<AMDGPUArg> ExtraAddrArgs = [];
+  bit Gradients = 0;
+  string LodClampMip = "";
+
+  int NumRetAndDataAnyTypes =
+    !foldl(0, !listconcat(RetTypes, !foreach(arg, DataArgs, arg.Type)), a, b,
+           !add(a, b.isAny));
+
+  list<AMDGPUArg> AddrArgs =
+    arglistconcat<[ExtraAddrArgs,
+                   !if(Gradients, dim.GradientArgs, []),
+                   !listconcat(!if(IsSample, dim.CoordSliceArgs, dim.CoordSliceIntArgs),
+                               !if(!eq(LodClampMip, ""),
+                                   []<AMDGPUArg>,
+                                   [AMDGPUArg<LLVMMatchType<0>, LodClampMip>]))],
+                  NumRetAndDataAnyTypes>.ret;
+  list<LLVMType> AddrTypes = !foreach(arg, AddrArgs, arg.Type);
+  list<AMDGPUArg> AddrDefaultArgs =
+    !foreach(arg, AddrArgs,
+             AMDGPUArg<!if(!or(arg.Type.isAny, !isa<LLVMMatchType>(arg.Type)),
+                           !if(IsSample, llvm_float_ty, llvm_i32_ty), arg.Type),
+                       arg.Name>);
+  list<AMDGPUArg> AddrA16Args =
+    !foreach(arg, AddrArgs,
+             AMDGPUArg<!if(!or(arg.Type.isAny, !isa<LLVMMatchType>(arg.Type)),
+                           !if(IsSample, llvm_half_ty, llvm_i16_ty), arg.Type),
+                       arg.Name>);
+}
+
+class AMDGPUDimProfileCopy<AMDGPUDimProfile base> : AMDGPUDimProfile<base.OpMod, base.Dim> {
+  let IsSample = base.IsSample;
+  let IsAtomic = base.IsAtomic;
+  let RetTypes = base.RetTypes;
+  let DataArgs = base.DataArgs;
+  let ExtraAddrArgs = base.ExtraAddrArgs;
+  let Gradients = base.Gradients;
+  let LodClampMip = base.LodClampMip;
+}
+
+class AMDGPUDimSampleProfile<string opmod,
+                             AMDGPUDimProps dim,
+                             AMDGPUSampleVariant sample> : AMDGPUDimProfile<opmod, dim> {
+  let IsSample = 1;
+  let RetTypes = [llvm_anyfloat_ty];
+  let ExtraAddrArgs = sample.ExtraAddrArgs;
+  let Gradients = sample.Gradients;
+  let LodClampMip = sample.LodOrClamp;
+}
+
+class AMDGPUDimNoSampleProfile<string opmod,
+                               AMDGPUDimProps dim,
+                               list<LLVMType> retty,
+                               list<AMDGPUArg> dataargs,
+                               bit Mip = 0> : AMDGPUDimProfile<opmod, dim> {
+  let RetTypes = retty;
+  let DataArgs = dataargs;
+  let LodClampMip = !if(Mip, "mip", "");
+}
+
+class AMDGPUDimAtomicProfile<string opmod,
+                             AMDGPUDimProps dim,
+                             list<AMDGPUArg> dataargs> : AMDGPUDimProfile<opmod, dim> {
+  let RetTypes = [llvm_anyint_ty];
+  let DataArgs = dataargs;
+  let IsAtomic = 1;
+}
+
+class AMDGPUDimGetResInfoProfile<AMDGPUDimProps dim> : AMDGPUDimProfile<"GET_RESINFO", dim> {
+  let RetTypes = [llvm_anyfloat_ty];
+  let DataArgs = [];
+  let AddrArgs = [AMDGPUArg<llvm_anyint_ty, "mip">];
+  let LodClampMip = "mip";
+}
+
+// All dimension-aware intrinsics are derived from this class.
+class AMDGPUImageDimIntrinsic<AMDGPUDimProfile P_,
+                              list<IntrinsicProperty> props,
+                              list<SDNodeProperty> sdnodeprops> : Intrinsic<
+    P_.RetTypes,        // vdata(VGPR) -- for load/atomic-with-return
+    !listconcat(
+      !foreach(arg, P_.DataArgs, arg.Type),      // vdata(VGPR) -- for store/atomic
+      !if(P_.IsAtomic, [], [llvm_i32_ty]),       // dmask(imm)
+      P_.AddrTypes,                              // vaddr(VGPR)
+      [llvm_v8i32_ty],                           // rsrc(SGPR)
+      !if(P_.IsSample, [llvm_v4i32_ty,           // samp(SGPR)
+                        llvm_i1_ty], []),        // unorm(imm)
+      [llvm_i32_ty,                              // texfailctrl(imm; bit 0 = tfe, bit 1 = lwe)
+       llvm_i32_ty]),                            // cachepolicy(imm; bit 0 = glc, bit 1 = slc)
+      props, "", sdnodeprops>,
+  AMDGPURsrcIntrinsic<!add(!size(P_.DataArgs), !size(P_.AddrTypes),
+                           !if(P_.IsAtomic, 0, 1)), 1> {
+  AMDGPUDimProfile P = P_;
+
+  AMDGPUImageDimIntrinsic Intr = !cast<AMDGPUImageDimIntrinsic>(NAME);
+
+  let TargetPrefix = "amdgcn";
+}
+
+// Marker class for intrinsics with a DMask that determines the returned
+// channels.
+class AMDGPUImageDMaskIntrinsic;
+
+defset list<AMDGPUImageDimIntrinsic> AMDGPUImageDimIntrinsics = {
+
+  //////////////////////////////////////////////////////////////////////////
+  // Load and store intrinsics
+  //////////////////////////////////////////////////////////////////////////
+  multiclass AMDGPUImageDimIntrinsicsNoMsaa<string opmod,
+                                            list<LLVMType> retty,
+                                            list<AMDGPUArg> dataargs,
+                                            list<IntrinsicProperty> props,
+                                            list<SDNodeProperty> sdnodeprops,
+                                            bit Mip = 0> {
+    foreach dim = AMDGPUDims.NoMsaa in {
+      def !strconcat(NAME, "_", dim.Name)
+        : AMDGPUImageDimIntrinsic<
+            AMDGPUDimNoSampleProfile<opmod, dim, retty, dataargs, Mip>,
+            props, sdnodeprops>;
+    }
+  }
+
+  multiclass AMDGPUImageDimIntrinsicsAll<string opmod,
+                                         list<LLVMType> retty,
+                                         list<AMDGPUArg> dataargs,
+                                         list<IntrinsicProperty> props,
+                                         list<SDNodeProperty> sdnodeprops,
+                                         bit Mip = 0> {
+    foreach dim = AMDGPUDims.All in {
+      def !strconcat(NAME, "_", dim.Name)
+        : AMDGPUImageDimIntrinsic<
+            AMDGPUDimNoSampleProfile<opmod, dim, retty, dataargs, Mip>,
+            props, sdnodeprops>;
+    }
+  }
+
+  defm int_amdgcn_image_load
+    : AMDGPUImageDimIntrinsicsAll<"LOAD", [llvm_anyfloat_ty], [], [IntrReadMem],
+                                  [SDNPMemOperand]>,
+      AMDGPUImageDMaskIntrinsic;
+  defm int_amdgcn_image_load_mip
+    : AMDGPUImageDimIntrinsicsNoMsaa<"LOAD_MIP", [llvm_anyfloat_ty], [],
+                                     [IntrReadMem], [SDNPMemOperand], 1>,
+      AMDGPUImageDMaskIntrinsic;
+
+  defm int_amdgcn_image_store : AMDGPUImageDimIntrinsicsAll<
+              "STORE", [], [AMDGPUArg<llvm_anyfloat_ty, "vdata">],
+              [IntrWriteMem], [SDNPMemOperand]>;
+  defm int_amdgcn_image_store_mip : AMDGPUImageDimIntrinsicsNoMsaa<
+              "STORE_MIP", [], [AMDGPUArg<llvm_anyfloat_ty, "vdata">],
+              [IntrWriteMem], [SDNPMemOperand], 1>;
+
+  //////////////////////////////////////////////////////////////////////////
+  // sample and getlod intrinsics
+  //////////////////////////////////////////////////////////////////////////
+  multiclass AMDGPUImageDimSampleDims<string opmod,
+                                      AMDGPUSampleVariant sample,
+                                      bit NoMem = 0> {
+    foreach dim = AMDGPUDims.NoMsaa in {
+      def !strconcat(NAME, "_", dim.Name) : AMDGPUImageDimIntrinsic<
+          AMDGPUDimSampleProfile<opmod, dim, sample>,
+          !if(NoMem, [IntrNoMem], [IntrReadMem]),
+          !if(NoMem, [], [SDNPMemOperand])>;
+    }
+  }
+
+  foreach sample = AMDGPUSampleVariants in {
+    defm int_amdgcn_image_sample # sample.LowerCaseMod
+      : AMDGPUImageDimSampleDims<"SAMPLE" # sample.UpperCaseMod, sample>,
+        AMDGPUImageDMaskIntrinsic;
+  }
+
+  defm int_amdgcn_image_getlod
+    : AMDGPUImageDimSampleDims<"GET_LOD", AMDGPUSample, 1>,
+      AMDGPUImageDMaskIntrinsic;
+
+  //////////////////////////////////////////////////////////////////////////
+  // getresinfo intrinsics
+  //////////////////////////////////////////////////////////////////////////
+  foreach dim = AMDGPUDims.All in {
+    def !strconcat("int_amdgcn_image_getresinfo_", dim.Name)
+      : AMDGPUImageDimIntrinsic<AMDGPUDimGetResInfoProfile<dim>, [IntrNoMem], []>,
+        AMDGPUImageDMaskIntrinsic;
+  }
+
+  //////////////////////////////////////////////////////////////////////////
+  // gather4 intrinsics
+  //////////////////////////////////////////////////////////////////////////
+  foreach sample = AMDGPUSampleVariantsNoGradients in {
+    foreach dim = [AMDGPUDim2D, AMDGPUDimCube, AMDGPUDim2DArray] in {
+      def int_amdgcn_image_gather4 # sample.LowerCaseMod # _ # dim.Name:
+          AMDGPUImageDimIntrinsic<
+              AMDGPUDimSampleProfile<"GATHER4" # sample.UpperCaseMod, dim, sample>,
+              [IntrReadMem], [SDNPMemOperand]>;
+    }
+  }
+}
+
+//////////////////////////////////////////////////////////////////////////
+// atomic intrinsics
+//////////////////////////////////////////////////////////////////////////
+defset list<AMDGPUImageDimIntrinsic> AMDGPUImageDimAtomicIntrinsics = {
+  multiclass AMDGPUImageDimAtomicX<string opmod, list<AMDGPUArg> dataargs> {
+    foreach dim = AMDGPUDims.All in {
+      def !strconcat(NAME, "_", dim.Name)
+        : AMDGPUImageDimIntrinsic<
+            AMDGPUDimAtomicProfile<opmod, dim, dataargs>,
+            [], [SDNPMemOperand]>;
+    }
+  }
+
+  multiclass AMDGPUImageDimAtomic<string opmod> {
+    defm "" : AMDGPUImageDimAtomicX<opmod, [AMDGPUArg<LLVMMatchType<0>, "vdata">]>;
+  }
+
+  defm int_amdgcn_image_atomic_swap : AMDGPUImageDimAtomic<"ATOMIC_SWAP">;
+  defm int_amdgcn_image_atomic_add : AMDGPUImageDimAtomic<"ATOMIC_ADD">;
+  defm int_amdgcn_image_atomic_sub : AMDGPUImageDimAtomic<"ATOMIC_SUB">;
+  defm int_amdgcn_image_atomic_smin : AMDGPUImageDimAtomic<"ATOMIC_SMIN">;
+  defm int_amdgcn_image_atomic_umin : AMDGPUImageDimAtomic<"ATOMIC_UMIN">;
+  defm int_amdgcn_image_atomic_smax : AMDGPUImageDimAtomic<"ATOMIC_SMAX">;
+  defm int_amdgcn_image_atomic_umax : AMDGPUImageDimAtomic<"ATOMIC_UMAX">;
+  defm int_amdgcn_image_atomic_and : AMDGPUImageDimAtomic<"ATOMIC_AND">;
+  defm int_amdgcn_image_atomic_or : AMDGPUImageDimAtomic<"ATOMIC_OR">;
+  defm int_amdgcn_image_atomic_xor : AMDGPUImageDimAtomic<"ATOMIC_XOR">;
+
+  // TODO: INC/DEC are weird: they seem to have a vdata argument in hardware,
+  //       even though it clearly shouldn't be needed
+  defm int_amdgcn_image_atomic_inc : AMDGPUImageDimAtomic<"ATOMIC_INC">;
+  defm int_amdgcn_image_atomic_dec : AMDGPUImageDimAtomic<"ATOMIC_DEC">;
+
+  defm int_amdgcn_image_atomic_cmpswap :
+      AMDGPUImageDimAtomicX<"ATOMIC_CMPSWAP", [AMDGPUArg<LLVMMatchType<0>, "src">,
+                                               AMDGPUArg<LLVMMatchType<0>, "cmp">]>;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Buffer intrinsics
+//////////////////////////////////////////////////////////////////////////
+
+let TargetPrefix = "amdgcn" in {
+
+defset list<AMDGPURsrcIntrinsic> AMDGPUBufferIntrinsics = {
 
 class AMDGPUBufferLoad : Intrinsic <
   [llvm_anyfloat_ty],
@@ -497,7 +797,8 @@
    llvm_i32_ty,       // offset(SGPR/VGPR/imm)
    llvm_i1_ty,        // glc(imm)
    llvm_i1_ty],       // slc(imm)
-  [IntrReadMem], "", [SDNPMemOperand]>;
+  [IntrReadMem], "", [SDNPMemOperand]>,
+  AMDGPURsrcIntrinsic<0>;
 def int_amdgcn_buffer_load_format : AMDGPUBufferLoad;
 def int_amdgcn_buffer_load : AMDGPUBufferLoad;
 
@@ -509,7 +810,8 @@
    llvm_i32_ty,       // offset(SGPR/VGPR/imm)
    llvm_i1_ty,        // glc(imm)
    llvm_i1_ty],       // slc(imm)
-  [IntrWriteMem], "", [SDNPMemOperand]>;
+  [IntrWriteMem], "", [SDNPMemOperand]>,
+  AMDGPURsrcIntrinsic<1>;
 def int_amdgcn_buffer_store_format : AMDGPUBufferStore;
 def int_amdgcn_buffer_store : AMDGPUBufferStore;
 
@@ -524,7 +826,8 @@
      llvm_i32_ty,     // nfmt(imm)
      llvm_i1_ty,     // glc(imm)
      llvm_i1_ty],    // slc(imm)
-    [IntrReadMem], "", [SDNPMemOperand]>;
+    [IntrReadMem], "", [SDNPMemOperand]>,
+  AMDGPURsrcIntrinsic<0>;
 
 def int_amdgcn_tbuffer_store : Intrinsic <
     [],
@@ -538,7 +841,8 @@
      llvm_i32_ty,    // nfmt(imm)
      llvm_i1_ty,     // glc(imm)
      llvm_i1_ty],    // slc(imm)
-    [IntrWriteMem], "", [SDNPMemOperand]>;
+    [IntrWriteMem], "", [SDNPMemOperand]>,
+  AMDGPURsrcIntrinsic<1>;
 
 class AMDGPUBufferAtomic : Intrinsic <
   [llvm_i32_ty],
@@ -547,7 +851,8 @@
    llvm_i32_ty,       // vindex(VGPR)
    llvm_i32_ty,       // offset(SGPR/VGPR/imm)
    llvm_i1_ty],       // slc(imm)
-  [], "", [SDNPMemOperand]>;
+  [], "", [SDNPMemOperand]>,
+  AMDGPURsrcIntrinsic<1, 0>;
 def int_amdgcn_buffer_atomic_swap : AMDGPUBufferAtomic;
 def int_amdgcn_buffer_atomic_add : AMDGPUBufferAtomic;
 def int_amdgcn_buffer_atomic_sub : AMDGPUBufferAtomic;
@@ -566,7 +871,10 @@
    llvm_i32_ty,       // vindex(VGPR)
    llvm_i32_ty,       // offset(SGPR/VGPR/imm)
    llvm_i1_ty],       // slc(imm)
-  [], "", [SDNPMemOperand]>;
+  [], "", [SDNPMemOperand]>,
+  AMDGPURsrcIntrinsic<2, 0>;
+
+} // defset AMDGPUBufferIntrinsics
 
 // Uses that do not set the done bit should set IntrWriteMem on the
 // call site.
@@ -879,6 +1187,116 @@
   GCCBuiltin<"__builtin_amdgcn_ds_bpermute">,
   Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent]>;
 
+//===----------------------------------------------------------------------===//
+// Deep learning intrinsics.
+//===----------------------------------------------------------------------===//
+
+// f32 %r = llvm.amdgcn.fdot2(v2f16 %a, v2f16 %b, f32 %c, i1 %clamp)
+//   %r = %a[0] * %b[0] + %a[1] * %b[1] + %c
+def int_amdgcn_fdot2 :
+  GCCBuiltin<"__builtin_amdgcn_fdot2">,
+  Intrinsic<
+    [llvm_float_ty], // %r
+    [
+      llvm_v2f16_ty, // %a
+      llvm_v2f16_ty, // %b
+      llvm_float_ty, // %c
+      llvm_i1_ty     // %clamp
+    ],
+    [IntrNoMem, IntrSpeculatable]
+  >;
+
+// i32 %r = llvm.amdgcn.sdot2(v2i16 %a, v2i16 %b, i32 %c, i1 %clamp)
+//   %r = %a[0] * %b[0] + %a[1] * %b[1] + %c
+def int_amdgcn_sdot2 :
+  GCCBuiltin<"__builtin_amdgcn_sdot2">,
+  Intrinsic<
+    [llvm_i32_ty], // %r
+    [
+      llvm_v2i16_ty, // %a
+      llvm_v2i16_ty, // %b
+      llvm_i32_ty,   // %c
+      llvm_i1_ty     // %clamp
+    ],
+    [IntrNoMem, IntrSpeculatable]
+  >;
+
+// u32 %r = llvm.amdgcn.udot2(v2u16 %a, v2u16 %b, u32 %c, i1 %clamp)
+//   %r = %a[0] * %b[0] + %a[1] * %b[1] + %c
+def int_amdgcn_udot2 :
+  GCCBuiltin<"__builtin_amdgcn_udot2">,
+  Intrinsic<
+    [llvm_i32_ty], // %r
+    [
+      llvm_v2i16_ty, // %a
+      llvm_v2i16_ty, // %b
+      llvm_i32_ty,   // %c
+      llvm_i1_ty     // %clamp
+    ],
+    [IntrNoMem, IntrSpeculatable]
+  >;
+
+// i32 %r = llvm.amdgcn.sdot4(v4i8 (as i32) %a, v4i8 (as i32) %b, i32 %c, i1 %clamp)
+//   %r = %a[0] * %b[0] + %a[1] * %b[1] + %a[2] * %b[2] + %a[3] * %b[3] + %c
+def int_amdgcn_sdot4 :
+  GCCBuiltin<"__builtin_amdgcn_sdot4">,
+  Intrinsic<
+    [llvm_i32_ty], // %r
+    [
+      llvm_i32_ty, // %a
+      llvm_i32_ty, // %b
+      llvm_i32_ty, // %c
+      llvm_i1_ty   // %clamp
+    ],
+    [IntrNoMem, IntrSpeculatable]
+  >;
+
+// u32 %r = llvm.amdgcn.udot4(v4u8 (as u32) %a, v4u8 (as u32) %b, u32 %c, i1 %clamp)
+//   %r = %a[0] * %b[0] + %a[1] * %b[1] + %a[2] * %b[2] + %a[3] * %b[3] + %c
+def int_amdgcn_udot4 :
+  GCCBuiltin<"__builtin_amdgcn_udot4">,
+  Intrinsic<
+    [llvm_i32_ty], // %r
+    [
+      llvm_i32_ty, // %a
+      llvm_i32_ty, // %b
+      llvm_i32_ty, // %c
+      llvm_i1_ty   // %clamp
+    ],
+    [IntrNoMem, IntrSpeculatable]
+  >;
+
+// i32 %r = llvm.amdgcn.sdot8(v8i4 (as i32) %a, v8i4 (as i32) %b, i32 %c, i1 %clamp)
+//   %r = %a[0] * %b[0] + %a[1] * %b[1] + %a[2] * %b[2] + %a[3] * %b[3] +
+//        %a[4] * %b[4] + %a[5] * %b[5] + %a[6] * %b[6] + %a[7] * %b[7] + %c
+def int_amdgcn_sdot8 :
+  GCCBuiltin<"__builtin_amdgcn_sdot8">,
+  Intrinsic<
+    [llvm_i32_ty], // %r
+    [
+      llvm_i32_ty, // %a
+      llvm_i32_ty, // %b
+      llvm_i32_ty, // %c
+      llvm_i1_ty   // %clamp
+    ],
+    [IntrNoMem, IntrSpeculatable]
+  >;
+
+// u32 %r = llvm.amdgcn.udot8(v8u4 (as u32) %a, v8u4 (as u32) %b, u32 %c, i1 %clamp)
+//   %r = %a[0] * %b[0] + %a[1] * %b[1] + %a[2] * %b[2] + %a[3] * %b[3] +
+//        %a[4] * %b[4] + %a[5] * %b[5] + %a[6] * %b[6] + %a[7] * %b[7] + %c
+def int_amdgcn_udot8 :
+  GCCBuiltin<"__builtin_amdgcn_udot8">,
+  Intrinsic<
+    [llvm_i32_ty], // %r
+    [
+      llvm_i32_ty, // %a
+      llvm_i32_ty, // %b
+      llvm_i32_ty, // %c
+      llvm_i1_ty   // %clamp
+    ],
+    [IntrNoMem, IntrSpeculatable]
+  >;
 
 //===----------------------------------------------------------------------===//
 // Special Intrinsics for backend internal use only. No frontend
diff --git a/linux-x64/clang/include/llvm/IR/IntrinsicsARM.td b/linux-x64/clang/include/llvm/IR/IntrinsicsARM.td
index fe38613..4e11f9c 100644
--- a/linux-x64/clang/include/llvm/IR/IntrinsicsARM.td
+++ b/linux-x64/clang/include/llvm/IR/IntrinsicsARM.td
@@ -275,7 +275,7 @@
    Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>;
 def int_arm_stcl : GCCBuiltin<"__builtin_arm_stcl">,
    Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>;
-def int_arm_stc2 : GCCBuiltin<"__builtin_arm_stc2">, 
+def int_arm_stc2 : GCCBuiltin<"__builtin_arm_stc2">,
    Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>;
 def int_arm_stc2l : GCCBuiltin<"__builtin_arm_stc2l">,
    Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>;
@@ -369,6 +369,10 @@
   : Intrinsic<[llvm_anyvector_ty],
               [LLVMMatchType<0>, LLVMTruncatedType<0>, LLVMTruncatedType<0>],
               [IntrNoMem]>;
+
+class Neon_1FloatArg_Intrinsic
+  : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem]>;
+
 class Neon_CvtFxToFP_Intrinsic
   : Intrinsic<[llvm_anyfloat_ty], [llvm_anyint_ty, llvm_i32_ty], [IntrNoMem]>;
 class Neon_CvtFPToFx_Intrinsic
@@ -591,8 +595,8 @@
 def int_arm_neon_vtbx3 : Neon_Tbl5Arg_Intrinsic;
 def int_arm_neon_vtbx4 : Neon_Tbl6Arg_Intrinsic;
 
-// Vector Rounding
-def int_arm_neon_vrintn : Neon_1Arg_Intrinsic;
+// Vector and Scalar Rounding.
+def int_arm_neon_vrintn : Neon_1FloatArg_Intrinsic;
 def int_arm_neon_vrintx : Neon_1Arg_Intrinsic;
 def int_arm_neon_vrinta : Neon_1Arg_Intrinsic;
 def int_arm_neon_vrintz : Neon_1Arg_Intrinsic;
@@ -616,6 +620,18 @@
                                   [llvm_anyptr_ty, llvm_i32_ty],
                                   [IntrReadMem, IntrArgMemOnly]>;
 
+def int_arm_neon_vld1x2 : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>],
+                                    [LLVMAnyPointerType<LLVMMatchType<0>>],
+                                    [IntrReadMem, IntrArgMemOnly]>;
+def int_arm_neon_vld1x3 : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>,
+                                     LLVMMatchType<0>],
+                                    [LLVMAnyPointerType<LLVMMatchType<0>>],
+                                    [IntrReadMem, IntrArgMemOnly]>;
+def int_arm_neon_vld1x4 : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>,
+                                     LLVMMatchType<0>, LLVMMatchType<0>],
+                                    [LLVMAnyPointerType<LLVMMatchType<0>>],
+                                    [IntrReadMem, IntrArgMemOnly]>;
+
 // Vector load N-element structure to one lane.
 // Source operands are: the address, the N input vectors (since only one
 // lane is assigned), the lane number, and the alignment.
@@ -636,6 +652,20 @@
                                        LLVMMatchType<0>, llvm_i32_ty,
                                        llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>;
 
+// Vector load N-element structure to all lanes.
+// Source operands are the address and alignment.
+def int_arm_neon_vld2dup : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>],
+                                     [llvm_anyptr_ty, llvm_i32_ty],
+                                     [IntrReadMem, IntrArgMemOnly]>;
+def int_arm_neon_vld3dup : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>,
+                                      LLVMMatchType<0>],
+                                     [llvm_anyptr_ty, llvm_i32_ty],
+                                     [IntrReadMem, IntrArgMemOnly]>;
+def int_arm_neon_vld4dup : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>,
+                                      LLVMMatchType<0>, LLVMMatchType<0>],
+                                     [llvm_anyptr_ty, llvm_i32_ty],
+                                     [IntrReadMem, IntrArgMemOnly]>;
+
 // Interleaving vector stores from N-element structures.
 // Source operands are: the address, the N vectors, and the alignment.
 def int_arm_neon_vst1 : Intrinsic<[],
@@ -655,6 +685,20 @@
                                    LLVMMatchType<1>, llvm_i32_ty],
                                   [IntrArgMemOnly]>;
 
+def int_arm_neon_vst1x2 : Intrinsic<[],
+                                    [llvm_anyptr_ty, llvm_anyvector_ty,
+                                     LLVMMatchType<1>],
+                                    [IntrArgMemOnly, NoCapture<0>]>;
+def int_arm_neon_vst1x3 : Intrinsic<[],
+                                    [llvm_anyptr_ty, llvm_anyvector_ty,
+                                     LLVMMatchType<1>, LLVMMatchType<1>],
+                                    [IntrArgMemOnly, NoCapture<0>]>;
+def int_arm_neon_vst1x4 : Intrinsic<[],
+                                    [llvm_anyptr_ty, llvm_anyvector_ty,
+                                     LLVMMatchType<1>, LLVMMatchType<1>,
+                                     LLVMMatchType<1>],
+                                    [IntrArgMemOnly, NoCapture<0>]>;
+
 // Vector store N-element structure from one lane.
 // Source operands are: the address, the N vectors, the lane number, and
 // the alignment.
@@ -713,4 +757,14 @@
 def int_arm_neon_sha256h2: SHA_3Arg_v4i32_Intrinsic;
 def int_arm_neon_sha256su1: SHA_3Arg_v4i32_Intrinsic;
 
+// Armv8.2-A dot product instructions
+class Neon_Dot_Intrinsic
+  : Intrinsic<[llvm_anyvector_ty],
+              [LLVMMatchType<0>, llvm_anyvector_ty,
+               LLVMMatchType<1>],
+              [IntrNoMem]>;
+def int_arm_neon_udot : Neon_Dot_Intrinsic;
+def int_arm_neon_sdot : Neon_Dot_Intrinsic;
+
+
 } // end TargetPrefix
diff --git a/linux-x64/clang/include/llvm/IR/IntrinsicsNVVM.td b/linux-x64/clang/include/llvm/IR/IntrinsicsNVVM.td
index 609aebd..7f694f6 100644
--- a/linux-x64/clang/include/llvm/IR/IntrinsicsNVVM.td
+++ b/linux-x64/clang/include/llvm/IR/IntrinsicsNVVM.td
@@ -3920,7 +3920,9 @@
 }
 
 multiclass NVVM_WMMA_LD {
+  defm _m32n8k16_load: NVVM_WMMA_LD_G<"m32n8k16">;
   defm _m16n16k16_load: NVVM_WMMA_LD_G<"m16n16k16">;
+  defm _m8n32k16_load: NVVM_WMMA_LD_G<"m8n32k16">;
 }
 
 defm int_nvvm_wmma: NVVM_WMMA_LD;
@@ -3947,7 +3949,7 @@
                    # !if(WithStride, ".stride", "")
                    # "." # Type>;
 
-multiclass NVVM_WMMA_STD_GLT<string Geometry, string Layout, 
+multiclass NVVM_WMMA_STD_GLT<string Geometry, string Layout,
                              string Type, LLVMType regty> {
   def _stride: NVVM_WMMA_STD_GLSTS<Geometry, Layout, Type, regty, 1>;
   def NAME:    NVVM_WMMA_STD_GLSTS<Geometry, Layout, Type, regty, 0>;
@@ -3963,7 +3965,9 @@
 }
 
 multiclass NVVM_WMMA_STD {
+  defm _m32n8k16_store:  NVVM_WMMA_STD_G<"m32n8k16">;
   defm _m16n16k16_store: NVVM_WMMA_STD_G<"m16n16k16">;
+  defm _m8n32k16_store:  NVVM_WMMA_STD_G<"m8n32k16">;
 }
 
 defm int_nvvm_wmma: NVVM_WMMA_STD;
@@ -4033,7 +4037,9 @@
 }
 
 multiclass NVVM_WMMA_MMA {
+  defm _m32n8k16_mma : NVVM_WMMA_MMA_G<"m32n8k16">;
   defm _m16n16k16_mma : NVVM_WMMA_MMA_G<"m16n16k16">;
+  defm _m8n32k16_mma : NVVM_WMMA_MMA_G<"m8n32k16">;
 }
 
 defm int_nvvm_wmma : NVVM_WMMA_MMA;
diff --git a/linux-x64/clang/include/llvm/IR/IntrinsicsPowerPC.td b/linux-x64/clang/include/llvm/IR/IntrinsicsPowerPC.td
index 6321bb8..3433aaa 100644
--- a/linux-x64/clang/include/llvm/IR/IntrinsicsPowerPC.td
+++ b/linux-x64/clang/include/llvm/IR/IntrinsicsPowerPC.td
@@ -1,10 +1,10 @@
 //===- IntrinsicsPowerPC.td - Defines PowerPC intrinsics ---*- tablegen -*-===//
-// 
+//
 //                     The LLVM Compiler Infrastructure
 //
 // This file is distributed under the University of Illinois Open Source
 // License. See LICENSE.TXT for details.
-// 
+//
 //===----------------------------------------------------------------------===//
 //
 // This file defines all of the PowerPC-specific intrinsics.
@@ -36,8 +36,12 @@
 
   // Intrinsics used to generate ctr-based loops. These should only be
   // generated by the PowerPC backend!
+  // The branch intrinsic is marked as NoDuplicate because loop rotation will
+  // attempt to duplicate it forming loops where a block reachable from one
+  // instance of it can contain another.
   def int_ppc_mtctr : Intrinsic<[], [llvm_anyint_ty], []>;
-  def int_ppc_is_decremented_ctr_nonzero : Intrinsic<[llvm_i1_ty], [], []>;
+  def int_ppc_is_decremented_ctr_nonzero :
+    Intrinsic<[llvm_i1_ty], [], [IntrNoDuplicate]>;
 
   // Intrinsics for [double]word extended forms of divide instructions
   def int_ppc_divwe : GCCBuiltin<"__builtin_divwe">,
@@ -57,6 +61,29 @@
   def int_ppc_bpermd : GCCBuiltin<"__builtin_bpermd">,
                        Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
                                  [IntrNoMem]>;
+
+  def int_ppc_truncf128_round_to_odd
+      : GCCBuiltin<"__builtin_truncf128_round_to_odd">,
+        Intrinsic <[llvm_double_ty], [llvm_f128_ty], [IntrNoMem]>;
+  def int_ppc_sqrtf128_round_to_odd
+      : GCCBuiltin<"__builtin_sqrtf128_round_to_odd">,
+        Intrinsic <[llvm_f128_ty], [llvm_f128_ty], [IntrNoMem]>;
+  def int_ppc_addf128_round_to_odd
+      : GCCBuiltin<"__builtin_addf128_round_to_odd">,
+        Intrinsic <[llvm_f128_ty], [llvm_f128_ty,llvm_f128_ty], [IntrNoMem]>;
+  def int_ppc_subf128_round_to_odd
+      : GCCBuiltin<"__builtin_subf128_round_to_odd">,
+        Intrinsic <[llvm_f128_ty], [llvm_f128_ty,llvm_f128_ty], [IntrNoMem]>;
+  def int_ppc_mulf128_round_to_odd
+      : GCCBuiltin<"__builtin_mulf128_round_to_odd">,
+        Intrinsic <[llvm_f128_ty], [llvm_f128_ty,llvm_f128_ty], [IntrNoMem]>;
+  def int_ppc_divf128_round_to_odd
+      : GCCBuiltin<"__builtin_divf128_round_to_odd">,
+        Intrinsic <[llvm_f128_ty], [llvm_f128_ty,llvm_f128_ty], [IntrNoMem]>;
+  def int_ppc_fmaf128_round_to_odd
+      : GCCBuiltin<"__builtin_fmaf128_round_to_odd">,
+        Intrinsic <[llvm_f128_ty], [llvm_f128_ty,llvm_f128_ty,llvm_f128_ty], [IntrNoMem]>;
+
 }
 
 
@@ -95,21 +122,21 @@
 
 /// PowerPC_Vec_BBB_Intrinsic - A PowerPC intrinsic that takes two v16i8
 /// vectors and returns one.  These intrinsics have no side effects.
-class PowerPC_Vec_BBB_Intrinsic<string GCCIntSuffix> 
+class PowerPC_Vec_BBB_Intrinsic<string GCCIntSuffix>
   : PowerPC_Vec_Intrinsic<GCCIntSuffix,
                           [llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
                           [IntrNoMem]>;
 
 /// PowerPC_Vec_HHH_Intrinsic - A PowerPC intrinsic that takes two v8i16
 /// vectors and returns one.  These intrinsics have no side effects.
-class PowerPC_Vec_HHH_Intrinsic<string GCCIntSuffix> 
+class PowerPC_Vec_HHH_Intrinsic<string GCCIntSuffix>
   : PowerPC_Vec_Intrinsic<GCCIntSuffix,
                           [llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
                           [IntrNoMem]>;
 
 /// PowerPC_Vec_WWW_Intrinsic - A PowerPC intrinsic that takes two v4i32
 /// vectors and returns one.  These intrinsics have no side effects.
-class PowerPC_Vec_WWW_Intrinsic<string GCCIntSuffix> 
+class PowerPC_Vec_WWW_Intrinsic<string GCCIntSuffix>
   : PowerPC_Vec_Intrinsic<GCCIntSuffix,
                           [llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
                           [IntrNoMem]>;
@@ -240,7 +267,7 @@
   def int_ppc_altivec_vcmpgtud : GCCBuiltin<"__builtin_altivec_vcmpgtud">,
               Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
                         [IntrNoMem]>;
-                                                
+
   def int_ppc_altivec_vcmpequw : GCCBuiltin<"__builtin_altivec_vcmpequw">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
                         [IntrNoMem]>;
@@ -256,7 +283,7 @@
   def int_ppc_altivec_vcmpnezw : GCCBuiltin<"__builtin_altivec_vcmpnezw">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
                         [IntrNoMem]>;
-                        
+
   def int_ppc_altivec_vcmpequh : GCCBuiltin<"__builtin_altivec_vcmpequh">,
               Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
                         [IntrNoMem]>;
@@ -328,7 +355,7 @@
   def int_ppc_altivec_vcmpnezw_p : GCCBuiltin<"__builtin_altivec_vcmpnezw_p">,
               Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4i32_ty,llvm_v4i32_ty],
                         [IntrNoMem]>;
-                        
+
   def int_ppc_altivec_vcmpequh_p : GCCBuiltin<"__builtin_altivec_vcmpequh_p">,
               Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v8i16_ty,llvm_v8i16_ty],
                         [IntrNoMem]>;
@@ -447,10 +474,10 @@
             Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
                        llvm_v4i32_ty], [IntrNoMem]>;
   def int_ppc_altivec_vmsumshs : GCCBuiltin<"__builtin_altivec_vmsumshs">,
-            Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty, 
+            Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
                        llvm_v4i32_ty], [IntrNoMem]>;
   def int_ppc_altivec_vmsumubm : GCCBuiltin<"__builtin_altivec_vmsumubm">,
-            Intrinsic<[llvm_v4i32_ty], [llvm_v16i8_ty, llvm_v16i8_ty, 
+            Intrinsic<[llvm_v4i32_ty], [llvm_v16i8_ty, llvm_v16i8_ty,
                        llvm_v4i32_ty], [IntrNoMem]>;
   def int_ppc_altivec_vmsumuhm : GCCBuiltin<"__builtin_altivec_vmsumuhm">,
             Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
@@ -517,7 +544,7 @@
 
   // Other multiplies.
   def int_ppc_altivec_vmladduhm : GCCBuiltin<"__builtin_altivec_vmladduhm">,
-            Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, 
+            Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
                        llvm_v8i16_ty], [IntrNoMem]>;
 
   // Packs.
@@ -599,21 +626,21 @@
 
   // Add Extended Quadword
   def int_ppc_altivec_vaddeuqm : GCCBuiltin<"__builtin_altivec_vaddeuqm">,
-              Intrinsic<[llvm_v1i128_ty], 
+              Intrinsic<[llvm_v1i128_ty],
                         [llvm_v1i128_ty, llvm_v1i128_ty, llvm_v1i128_ty],
                         [IntrNoMem]>;
   def int_ppc_altivec_vaddecuq : GCCBuiltin<"__builtin_altivec_vaddecuq">,
-              Intrinsic<[llvm_v1i128_ty], 
+              Intrinsic<[llvm_v1i128_ty],
                         [llvm_v1i128_ty, llvm_v1i128_ty, llvm_v1i128_ty],
                         [IntrNoMem]>;
 
   // Sub Extended Quadword
   def int_ppc_altivec_vsubeuqm : GCCBuiltin<"__builtin_altivec_vsubeuqm">,
-              Intrinsic<[llvm_v1i128_ty], 
+              Intrinsic<[llvm_v1i128_ty],
                         [llvm_v1i128_ty, llvm_v1i128_ty, llvm_v1i128_ty],
                         [IntrNoMem]>;
   def int_ppc_altivec_vsubecuq : GCCBuiltin<"__builtin_altivec_vsubecuq">,
-              Intrinsic<[llvm_v1i128_ty], 
+              Intrinsic<[llvm_v1i128_ty],
                         [llvm_v1i128_ty, llvm_v1i128_ty, llvm_v1i128_ty],
                         [IntrNoMem]>;
 }
@@ -630,7 +657,7 @@
 // Right Shifts.
 def int_ppc_altivec_vsr   : PowerPC_Vec_WWW_Intrinsic<"vsr">;
 def int_ppc_altivec_vsro  : PowerPC_Vec_WWW_Intrinsic<"vsro">;
-  
+
 def int_ppc_altivec_vsrb  : PowerPC_Vec_BBB_Intrinsic<"vsrb">;
 def int_ppc_altivec_vsrh  : PowerPC_Vec_HHH_Intrinsic<"vsrh">;
 def int_ppc_altivec_vsrw  : PowerPC_Vec_WWW_Intrinsic<"vsrw">;
@@ -652,10 +679,10 @@
               Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty], [IntrNoMem]>;
 
   def int_ppc_altivec_vperm : GCCBuiltin<"__builtin_altivec_vperm_4si">,
-              Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, 
+              Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty,
                          llvm_v4i32_ty, llvm_v16i8_ty], [IntrNoMem]>;
   def int_ppc_altivec_vsel : GCCBuiltin<"__builtin_altivec_vsel_4si">,
-              Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, 
+              Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty,
                          llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
   def int_ppc_altivec_vgbbd : GCCBuiltin<"__builtin_altivec_vgbbd">,
               Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>;
diff --git a/linux-x64/clang/include/llvm/IR/IntrinsicsWebAssembly.td b/linux-x64/clang/include/llvm/IR/IntrinsicsWebAssembly.td
index e9e5e53..c94972c 100644
--- a/linux-x64/clang/include/llvm/IR/IntrinsicsWebAssembly.td
+++ b/linux-x64/clang/include/llvm/IR/IntrinsicsWebAssembly.td
@@ -8,17 +8,23 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief This file defines all of the WebAssembly-specific intrinsics.
+/// This file defines all of the WebAssembly-specific intrinsics.
 ///
 //===----------------------------------------------------------------------===//
 
 let TargetPrefix = "wasm" in {  // All intrinsics start with "llvm.wasm.".
 
 // Query the current memory size, and increase the current memory size.
-// Note that mem.size is not IntrNoMem because it must be sequenced with
-// respect to mem.grow calls.
-// These are the new proposed names, which aren't yet official. Use at your own
-// risk.
+// Note that memory.size is not IntrNoMem because it must be sequenced with
+// respect to memory.grow calls.
+def int_wasm_memory_size : Intrinsic<[llvm_anyint_ty],
+                                     [llvm_i32_ty],
+                                     [IntrReadMem]>;
+def int_wasm_memory_grow : Intrinsic<[llvm_anyint_ty],
+                                     [llvm_i32_ty, LLVMMatchType<0>],
+                                     []>;
+
+// These are the old names.
 def int_wasm_mem_size : Intrinsic<[llvm_anyint_ty],
                                   [llvm_i32_ty],
                                   [IntrReadMem]>;
@@ -26,8 +32,7 @@
                                   [llvm_i32_ty, LLVMMatchType<0>],
                                   []>;
 
-// These are the existing names, which are currently official, but expected
-// to be deprecated in the future. They also lack the immediate field.
+// These are the old old names. They also lack the immediate field.
 def int_wasm_current_memory : Intrinsic<[llvm_anyint_ty], [], [IntrReadMem]>;
 def int_wasm_grow_memory : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>], []>;
 
@@ -42,7 +47,44 @@
 
 // Since wasm does not use landingpad instructions, these instructions return
 // exception pointer and selector values until we lower them in WasmEHPrepare.
-def int_wasm_get_exception : Intrinsic<[llvm_ptr_ty], [], [IntrHasSideEffects]>;
-def int_wasm_get_ehselector : Intrinsic<[llvm_i32_ty], [],
+def int_wasm_get_exception : Intrinsic<[llvm_ptr_ty], [llvm_token_ty],
+                                       [IntrHasSideEffects]>;
+def int_wasm_get_ehselector : Intrinsic<[llvm_i32_ty], [llvm_token_ty],
                                         [IntrHasSideEffects]>;
+
+// wasm.catch returns the pointer to the exception object caught by wasm 'catch'
+// instruction.
+def int_wasm_catch : Intrinsic<[llvm_ptr_ty], [llvm_i32_ty],
+                               [IntrHasSideEffects]>;
+
+// WebAssembly EH must maintain the landingpads in the order assigned to them
+// by WasmEHPrepare pass to generate landingpad table in EHStreamer. This is
+// used in order to give them the indices in WasmEHPrepare.
+def int_wasm_landingpad_index: Intrinsic<[], [llvm_i32_ty], [IntrNoMem]>;
+
+// Returns LSDA address of the current function.
+def int_wasm_lsda : Intrinsic<[llvm_ptr_ty], [], [IntrNoMem]>;
+
+//===----------------------------------------------------------------------===//
+// Atomic intrinsics
+//===----------------------------------------------------------------------===//
+
+// wait / notify
+def int_wasm_atomic_wait_i32 :
+  Intrinsic<[llvm_i32_ty],
+            [LLVMPointerType<llvm_i32_ty>, llvm_i32_ty, llvm_i64_ty],
+            [IntrInaccessibleMemOrArgMemOnly, ReadOnly<0>, NoCapture<0>,
+             IntrHasSideEffects],
+             "", [SDNPMemOperand]>;
+def int_wasm_atomic_wait_i64 :
+  Intrinsic<[llvm_i32_ty],
+            [LLVMPointerType<llvm_i64_ty>, llvm_i64_ty, llvm_i64_ty],
+            [IntrInaccessibleMemOrArgMemOnly, ReadOnly<0>, NoCapture<0>,
+             IntrHasSideEffects],
+             "", [SDNPMemOperand]>;
+def int_wasm_atomic_notify:
+  Intrinsic<[llvm_i64_ty], [LLVMPointerType<llvm_i32_ty>, llvm_i64_ty],
+            [IntrInaccessibleMemOnly, NoCapture<0>, IntrHasSideEffects], "",
+            [SDNPMemOperand]>;
+
 }
diff --git a/linux-x64/clang/include/llvm/IR/IntrinsicsX86.td b/linux-x64/clang/include/llvm/IR/IntrinsicsX86.td
index b0a9dc1..905afc1 100644
--- a/linux-x64/clang/include/llvm/IR/IntrinsicsX86.td
+++ b/linux-x64/clang/include/llvm/IR/IntrinsicsX86.td
@@ -180,12 +180,6 @@
 
 // Arithmetic ops
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_sse_sqrt_ss : GCCBuiltin<"__builtin_ia32_sqrtss">,
-              Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_sse_sqrt_ps : GCCBuiltin<"__builtin_ia32_sqrtps">,
-              Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty],
-                        [IntrNoMem]>;
   def int_x86_sse_rcp_ss : GCCBuiltin<"__builtin_ia32_rcpss">,
               Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty],
                         [IntrNoMem]>;
@@ -217,6 +211,8 @@
   def int_x86_sse_cmp_ss : GCCBuiltin<"__builtin_ia32_cmpss">,
               Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
                          llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>;
+  // NOTE: This comparison intrinsic is not used by clang as long as the
+  //       distinction in signaling behaviour is not implemented.
   def int_x86_sse_cmp_ps :
               Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
                          llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>;
@@ -269,12 +265,6 @@
               Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
   def int_x86_sse_cvttss2si64 : GCCBuiltin<"__builtin_ia32_cvttss2si64">,
               Intrinsic<[llvm_i64_ty], [llvm_v4f32_ty], [IntrNoMem]>;
-  def int_x86_sse_cvtsi2ss : // TODO: Remove this intrinsic.
-              Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
-                         llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_sse_cvtsi642ss : // TODO: Remove this intrinsic.
-              Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
-                         llvm_i64_ty], [IntrNoMem]>;
 
   def int_x86_sse_cvtps2pi : GCCBuiltin<"__builtin_ia32_cvtps2pi">,
               Intrinsic<[llvm_x86mmx_ty], [llvm_v4f32_ty], [IntrNoMem]>;
@@ -310,12 +300,6 @@
 
 // FP arithmetic ops
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_sse2_sqrt_sd : GCCBuiltin<"__builtin_ia32_sqrtsd">,
-              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_sse2_sqrt_pd : GCCBuiltin<"__builtin_ia32_sqrtpd">,
-              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty],
-                        [IntrNoMem]>;
   def int_x86_sse2_min_sd : GCCBuiltin<"__builtin_ia32_minsd">,
               Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
                          llvm_v2f64_ty], [IntrNoMem]>;
@@ -335,6 +319,8 @@
   def int_x86_sse2_cmp_sd : GCCBuiltin<"__builtin_ia32_cmpsd">,
               Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
                          llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>;
+  // NOTE: This comparison intrinsic is not used by clang as long as the
+  //       distinction in signaling behaviour is not implemented.
   def int_x86_sse2_cmp_pd :
               Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
                          llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>;
@@ -408,9 +394,6 @@
   def int_x86_sse2_pmulh_w : GCCBuiltin<"__builtin_ia32_pmulhw128">,
               Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty,
                          llvm_v8i16_ty], [IntrNoMem, Commutative]>;
-  def int_x86_sse2_pmulu_dq : GCCBuiltin<"__builtin_ia32_pmuludq128">,
-              Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty,
-                         llvm_v4i32_ty], [IntrNoMem, Commutative]>;
   def int_x86_sse2_pmadd_wd : GCCBuiltin<"__builtin_ia32_pmaddwd128">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty,
                          llvm_v8i16_ty], [IntrNoMem, Commutative]>;
@@ -474,8 +457,6 @@
 
 // Conversion ops
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_sse2_cvtdq2ps : GCCBuiltin<"__builtin_ia32_cvtdq2ps">,
-              Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
   def int_x86_sse2_cvtpd2dq : GCCBuiltin<"__builtin_ia32_cvtpd2dq">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty], [IntrNoMem]>;
   def int_x86_sse2_cvttpd2dq : GCCBuiltin<"__builtin_ia32_cvttpd2dq">,
@@ -494,18 +475,9 @@
               Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty], [IntrNoMem]>;
   def int_x86_sse2_cvttsd2si64 : GCCBuiltin<"__builtin_ia32_cvttsd2si64">,
               Intrinsic<[llvm_i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
-  def int_x86_sse2_cvtsi2sd : // TODO: Remove this intrinsic.
-              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
-                         llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_sse2_cvtsi642sd : // TODO: Remove this intrinsic.
-              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
-                         llvm_i64_ty], [IntrNoMem]>;
   def int_x86_sse2_cvtsd2ss : GCCBuiltin<"__builtin_ia32_cvtsd2ss">,
               Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
                          llvm_v2f64_ty], [IntrNoMem]>;
-  def int_x86_sse2_cvtss2sd : // TODO: Remove this intrinsic.
-              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
-                         llvm_v4f32_ty], [IntrNoMem]>;
   def int_x86_sse_cvtpd2pi : GCCBuiltin<"__builtin_ia32_cvtpd2pi">,
               Intrinsic<[llvm_x86mmx_ty], [llvm_v2f64_ty], [IntrNoMem]>;
   def int_x86_sse_cvttpd2pi: GCCBuiltin<"__builtin_ia32_cvttpd2pi">,
@@ -803,13 +775,6 @@
                         [IntrNoMem]>;
 }
 
-// Vector multiply
-let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_sse41_pmuldq          : GCCBuiltin<"__builtin_ia32_pmuldq128">,
-              Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
-                        [IntrNoMem, Commutative]>;
-}
-
 // Vector insert
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
   def int_x86_sse41_insertps       : GCCBuiltin<"__builtin_ia32_insertps128">,
@@ -988,11 +953,6 @@
         Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty,
                   llvm_v8f32_ty], [IntrNoMem]>;
 
-  def int_x86_avx_sqrt_pd_256 : GCCBuiltin<"__builtin_ia32_sqrtpd256">,
-        Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty], [IntrNoMem]>;
-  def int_x86_avx_sqrt_ps_256 : GCCBuiltin<"__builtin_ia32_sqrtps256">,
-        Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>;
-
   def int_x86_avx_rsqrt_ps_256 : GCCBuiltin<"__builtin_ia32_rsqrtps256">,
         Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>;
 
@@ -1039,325 +999,99 @@
         GCCBuiltin<"__builtin_ia32_vpermilvarps256">,
         Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_d_128 :
-       GCCBuiltin<"__builtin_ia32_vpermi2vard128_mask">,
-        Intrinsic<[llvm_v4i32_ty],
-        [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty],
-        [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_d_128 :
+       GCCBuiltin<"__builtin_ia32_vpermi2vard128">,
+       Intrinsic<[llvm_v4i32_ty],
+                 [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_d_256 :
-        GCCBuiltin<"__builtin_ia32_vpermi2vard256_mask">,
-          Intrinsic<[llvm_v8i32_ty],
-          [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_d_256 :
+        GCCBuiltin<"__builtin_ia32_vpermi2vard256">,
+        Intrinsic<[llvm_v8i32_ty],
+                  [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_d_512 :
-        GCCBuiltin<"__builtin_ia32_vpermi2vard512_mask">,
-          Intrinsic<[llvm_v16i32_ty],
-          [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_d_512 :
+        GCCBuiltin<"__builtin_ia32_vpermi2vard512">,
+        Intrinsic<[llvm_v16i32_ty],
+                  [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty],
+                  [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_hi_128 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varhi128_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-          [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_hi_128 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varhi128">,
+        Intrinsic<[llvm_v8i16_ty],
+                  [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_hi_256 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varhi256_mask">,
-          Intrinsic<[llvm_v16i16_ty],
-          [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_hi_256 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varhi256">,
+        Intrinsic<[llvm_v16i16_ty],
+                  [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty],
+                  [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_hi_512 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varhi512_mask">,
-          Intrinsic<[llvm_v32i16_ty],
-          [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_hi_512 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varhi512">,
+        Intrinsic<[llvm_v32i16_ty],
+                  [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty],
+                  [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_pd_128 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varpd128_mask">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_pd_128 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varpd128">,
+        Intrinsic<[llvm_v2f64_ty],
+                  [llvm_v2f64_ty, llvm_v2i64_ty, llvm_v2f64_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_pd_256 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varpd256_mask">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_pd_256 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varpd256">,
+        Intrinsic<[llvm_v4f64_ty],
+                  [llvm_v4f64_ty, llvm_v4i64_ty, llvm_v4f64_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_pd_512 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varpd512_mask">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8i64_ty, llvm_v8f64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_pd_512 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varpd512">,
+        Intrinsic<[llvm_v8f64_ty],
+                  [llvm_v8f64_ty, llvm_v8i64_ty, llvm_v8f64_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_ps_128 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varps128_mask">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_ps_128 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varps128">,
+        Intrinsic<[llvm_v4f32_ty],
+                  [llvm_v4f32_ty, llvm_v4i32_ty, llvm_v4f32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_ps_256 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varps256_mask">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_ps_256 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varps256">,
+        Intrinsic<[llvm_v8f32_ty],
+                  [llvm_v8f32_ty, llvm_v8i32_ty, llvm_v8f32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_ps_512 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varps512_mask">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16i32_ty, llvm_v16f32_ty, llvm_i16_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_ps_512 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varps512">,
+        Intrinsic<[llvm_v16f32_ty],
+                  [llvm_v16f32_ty, llvm_v16i32_ty, llvm_v16f32_ty],
+                  [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_q_128 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varq128_mask">,
-          Intrinsic<[llvm_v2i64_ty],
-          [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_q_128 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varq128">,
+        Intrinsic<[llvm_v2i64_ty],
+                  [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_q_256 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varq256_mask">,
-          Intrinsic<[llvm_v4i64_ty],
-          [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_q_256 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varq256">,
+        Intrinsic<[llvm_v4i64_ty],
+                  [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermi2var_q_512 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varq512_mask">,
-          Intrinsic<[llvm_v8i64_ty],
-          [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_q_512 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varq512">,
+        Intrinsic<[llvm_v8i64_ty],
+                  [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermt2var_d_512:
-        GCCBuiltin<"__builtin_ia32_vpermt2vard512_mask">,
-        Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty,
-                  llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_qi_128 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varqi128">,
+        Intrinsic<[llvm_v16i8_ty],
+                  [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermt2var_q_512:
-        GCCBuiltin<"__builtin_ia32_vpermt2varq512_mask">,
-        Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty,
-                  llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_qi_256 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varqi256">,
+        Intrinsic<[llvm_v32i8_ty],
+                  [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpermt2var_ps_512:
-        GCCBuiltin<"__builtin_ia32_vpermt2varps512_mask">,
-        Intrinsic<[llvm_v16f32_ty], [llvm_v16i32_ty,
-                  llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_pd_512:
-        GCCBuiltin<"__builtin_ia32_vpermt2varpd512_mask">,
-        Intrinsic<[llvm_v8f64_ty], [llvm_v8i64_ty,
-                  llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_d_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2vard128_mask">,
-          Intrinsic<[llvm_v4i32_ty],
-          [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_d_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2vard128_maskz">,
-          Intrinsic<[llvm_v4i32_ty],
-          [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_d_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2vard256_mask">,
-          Intrinsic<[llvm_v8i32_ty],
-          [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_d_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2vard256_maskz">,
-          Intrinsic<[llvm_v8i32_ty],
-          [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_d_512 :
-        GCCBuiltin<"__builtin_ia32_vpermt2vard512_maskz">,
-          Intrinsic<[llvm_v16i32_ty],
-          [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_hi_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varhi128_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-          [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_hi_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varhi128_maskz">,
-          Intrinsic<[llvm_v8i16_ty],
-          [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_hi_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varhi256_mask">,
-          Intrinsic<[llvm_v16i16_ty],
-          [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_hi_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varhi256_maskz">,
-          Intrinsic<[llvm_v16i16_ty],
-          [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_hi_512 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varhi512_mask">,
-          Intrinsic<[llvm_v32i16_ty],
-          [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_hi_512 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varhi512_maskz">,
-          Intrinsic<[llvm_v32i16_ty],
-          [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_pd_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varpd128_mask">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2i64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_pd_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varpd128_maskz">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2i64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_pd_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varpd256_mask">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4i64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_pd_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varpd256_maskz">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4i64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_pd_512 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varpd512_maskz">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8i64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_ps_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varps128_mask">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4i32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_ps_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varps128_maskz">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4i32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_ps_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varps256_mask">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8i32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_ps_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varps256_maskz">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8i32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_ps_512 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varps512_maskz">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16i32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_q_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varq128_mask">,
-          Intrinsic<[llvm_v2i64_ty],
-          [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_q_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varq128_maskz">,
-          Intrinsic<[llvm_v2i64_ty],
-          [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_q_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varq256_mask">,
-          Intrinsic<[llvm_v4i64_ty],
-          [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_q_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varq256_maskz">,
-          Intrinsic<[llvm_v4i64_ty],
-          [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_q_512 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varq512_maskz">,
-          Intrinsic<[llvm_v8i64_ty],
-          [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermi2var_qi_128 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varqi128_mask">,
-          Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty,
-          llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_qi_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varqi128_mask">,
-          Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty,
-          llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_qi_128 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varqi128_maskz">,
-          Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty,
-          llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermi2var_qi_256 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varqi256_mask">,
-          Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty,
-          llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_qi_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varqi256_mask">,
-          Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty,
-          llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_qi_256 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varqi256_maskz">,
-          Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty,
-          llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermi2var_qi_512 :
-        GCCBuiltin<"__builtin_ia32_vpermi2varqi512_mask">,
-          Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty,
-          llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpermt2var_qi_512 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varqi512_mask">,
-          Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty,
-          llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vpermt2var_qi_512 :
-        GCCBuiltin<"__builtin_ia32_vpermt2varqi512_maskz">,
-          Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty,
-          llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vpermi2var_qi_512 :
+        GCCBuiltin<"__builtin_ia32_vpermi2varqi512">,
+        Intrinsic<[llvm_v64i8_ty],
+                  [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty], [IntrNoMem]>;
 
   def int_x86_avx512_vpermilvar_pd_512 :
         GCCBuiltin<"__builtin_ia32_vpermilvarpd512">,
@@ -1456,8 +1190,6 @@
 
 // Vector convert
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_avx_cvtdq2_ps_256 : GCCBuiltin<"__builtin_ia32_cvtdq2ps256">,
-        Intrinsic<[llvm_v8f32_ty], [llvm_v8i32_ty], [IntrNoMem]>;
   def int_x86_avx_cvt_pd2_ps_256 : GCCBuiltin<"__builtin_ia32_cvtpd2ps256">,
         Intrinsic<[llvm_v4f32_ty], [llvm_v4f64_ty], [IntrNoMem]>;
   def int_x86_avx_cvt_ps2dq_256 : GCCBuiltin<"__builtin_ia32_cvtps2dq256">,
@@ -1518,29 +1250,23 @@
         Intrinsic<[llvm_i32_ty], [llvm_v4i64_ty,
                   llvm_v4i64_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_fpclass_pd_128 :
-         GCCBuiltin<"__builtin_ia32_fpclasspd128_mask">,
-          Intrinsic<[llvm_i8_ty], [llvm_v2f64_ty, llvm_i32_ty, llvm_i8_ty],
+  def int_x86_avx512_fpclass_pd_128 :
+          Intrinsic<[llvm_v2i1_ty], [llvm_v2f64_ty, llvm_i32_ty],
           [IntrNoMem]>;
-  def int_x86_avx512_mask_fpclass_pd_256 :
-         GCCBuiltin<"__builtin_ia32_fpclasspd256_mask">,
-          Intrinsic<[llvm_i8_ty], [llvm_v4f64_ty, llvm_i32_ty, llvm_i8_ty],
+  def int_x86_avx512_fpclass_pd_256 :
+          Intrinsic<[llvm_v4i1_ty], [llvm_v4f64_ty, llvm_i32_ty],
           [IntrNoMem]>;
-  def int_x86_avx512_mask_fpclass_pd_512 :
-         GCCBuiltin<"__builtin_ia32_fpclasspd512_mask">,
-          Intrinsic<[llvm_i8_ty], [llvm_v8f64_ty, llvm_i32_ty, llvm_i8_ty],
+  def int_x86_avx512_fpclass_pd_512 :
+          Intrinsic<[llvm_v8i1_ty], [llvm_v8f64_ty, llvm_i32_ty],
           [IntrNoMem]>;
-  def int_x86_avx512_mask_fpclass_ps_128 :
-         GCCBuiltin<"__builtin_ia32_fpclassps128_mask">,
-          Intrinsic<[llvm_i8_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_i8_ty],
+  def int_x86_avx512_fpclass_ps_128 :
+          Intrinsic<[llvm_v4i1_ty], [llvm_v4f32_ty, llvm_i32_ty],
           [IntrNoMem]>;
-  def int_x86_avx512_mask_fpclass_ps_256 :
-         GCCBuiltin<"__builtin_ia32_fpclassps256_mask">,
-          Intrinsic<[llvm_i8_ty], [llvm_v8f32_ty, llvm_i32_ty, llvm_i8_ty],
+  def int_x86_avx512_fpclass_ps_256 :
+          Intrinsic<[llvm_v8i1_ty], [llvm_v8f32_ty, llvm_i32_ty],
           [IntrNoMem]>;
-  def int_x86_avx512_mask_fpclass_ps_512 :
-         GCCBuiltin<"__builtin_ia32_fpclassps512_mask">,
-          Intrinsic<[llvm_i16_ty], [llvm_v16f32_ty, llvm_i32_ty, llvm_i16_ty],
+  def int_x86_avx512_fpclass_ps_512 :
+          Intrinsic<[llvm_v16i1_ty], [llvm_v16f32_ty, llvm_i32_ty],
           [IntrNoMem]>;
   def int_x86_avx512_mask_fpclass_sd :
          GCCBuiltin<"__builtin_ia32_fpclasssd_mask">,
@@ -1606,11 +1332,6 @@
         GCCBuiltin<"__builtin_ia32_maskstoreps256">,
         Intrinsic<[], [llvm_ptr_ty,
                   llvm_v8i32_ty, llvm_v8f32_ty], [IntrArgMemOnly]>;
-
-  def int_x86_avx512_mask_store_ss :
-        GCCBuiltin<"__builtin_ia32_storess_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v4f32_ty, llvm_i8_ty],
-                  [IntrArgMemOnly]>;
 }
 
 // BITALG bits shuffle
@@ -1667,12 +1388,6 @@
   def int_x86_avx2_pmulh_w : GCCBuiltin<"__builtin_ia32_pmulhw256">,
               Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty,
                          llvm_v16i16_ty], [IntrNoMem, Commutative]>;
-  def int_x86_avx2_pmulu_dq : GCCBuiltin<"__builtin_ia32_pmuludq256">,
-              Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty,
-                         llvm_v8i32_ty], [IntrNoMem, Commutative]>;
-  def int_x86_avx2_pmul_dq : GCCBuiltin<"__builtin_ia32_pmuldq256">,
-              Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty,
-                         llvm_v8i32_ty], [IntrNoMem, Commutative]>;
   def int_x86_avx2_pmadd_wd : GCCBuiltin<"__builtin_ia32_pmaddwd256">,
               Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty,
                          llvm_v16i16_ty], [IntrNoMem, Commutative]>;
@@ -2025,81 +1740,81 @@
               Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty],
                         [IntrNoMem]>;
 
-  def int_x86_avx512_mask_prorv_d_128 : GCCBuiltin<"__builtin_ia32_prorvd128_mask">,
+  def int_x86_avx512_prorv_d_128 : GCCBuiltin<"__builtin_ia32_prorvd128">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty,
-                         llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prorv_d_256 : GCCBuiltin<"__builtin_ia32_prorvd256_mask">,
+                         llvm_v4i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prorv_d_256 : GCCBuiltin<"__builtin_ia32_prorvd256">,
               Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty,
-                         llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prorv_d_512 : GCCBuiltin<"__builtin_ia32_prorvd512_mask">,
+                         llvm_v8i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prorv_d_512 : GCCBuiltin<"__builtin_ia32_prorvd512">,
               Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty,
-                         llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prorv_q_128 : GCCBuiltin<"__builtin_ia32_prorvq128_mask">,
+                         llvm_v16i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prorv_q_128 : GCCBuiltin<"__builtin_ia32_prorvq128">,
               Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty,
-                         llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prorv_q_256 : GCCBuiltin<"__builtin_ia32_prorvq256_mask">,
+                         llvm_v2i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_prorv_q_256 : GCCBuiltin<"__builtin_ia32_prorvq256">,
               Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty,
-                         llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prorv_q_512 : GCCBuiltin<"__builtin_ia32_prorvq512_mask">,
+                         llvm_v4i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_prorv_q_512 : GCCBuiltin<"__builtin_ia32_prorvq512">,
               Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty,
-                         llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>;
+                         llvm_v8i64_ty], [IntrNoMem]>;
 
-   def int_x86_avx512_mask_prol_d_128 : GCCBuiltin<"__builtin_ia32_prold128_mask">,
+   def int_x86_avx512_prol_d_128 : GCCBuiltin<"__builtin_ia32_prold128">,
               Intrinsic<[llvm_v4i32_ty] , [llvm_v4i32_ty,
-                         llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prol_d_256 : GCCBuiltin<"__builtin_ia32_prold256_mask">,
+                         llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prol_d_256 : GCCBuiltin<"__builtin_ia32_prold256">,
               Intrinsic<[llvm_v8i32_ty] , [llvm_v8i32_ty,
-                         llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prol_d_512 : GCCBuiltin<"__builtin_ia32_prold512_mask">,
+                         llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prol_d_512 : GCCBuiltin<"__builtin_ia32_prold512">,
               Intrinsic<[llvm_v16i32_ty] , [llvm_v16i32_ty,
-                         llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prol_q_128 : GCCBuiltin<"__builtin_ia32_prolq128_mask">,
+                         llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prol_q_128 : GCCBuiltin<"__builtin_ia32_prolq128">,
               Intrinsic<[llvm_v2i64_ty] , [llvm_v2i64_ty,
-                         llvm_i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prol_q_256 : GCCBuiltin<"__builtin_ia32_prolq256_mask">,
+                         llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prol_q_256 : GCCBuiltin<"__builtin_ia32_prolq256">,
               Intrinsic<[llvm_v4i64_ty] , [llvm_v4i64_ty,
-                         llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prol_q_512 : GCCBuiltin<"__builtin_ia32_prolq512_mask">,
+                         llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prol_q_512 : GCCBuiltin<"__builtin_ia32_prolq512">,
               Intrinsic<[llvm_v8i64_ty] , [llvm_v8i64_ty,
-                         llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>;
+                         llvm_i32_ty], [IntrNoMem]>;
 
 
-  def int_x86_avx512_mask_prolv_d_128 : GCCBuiltin<"__builtin_ia32_prolvd128_mask">,
+  def int_x86_avx512_prolv_d_128 : GCCBuiltin<"__builtin_ia32_prolvd128">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty,
-                         llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prolv_d_256 : GCCBuiltin<"__builtin_ia32_prolvd256_mask">,
+                         llvm_v4i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prolv_d_256 : GCCBuiltin<"__builtin_ia32_prolvd256">,
               Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty,
-                         llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prolv_d_512 : GCCBuiltin<"__builtin_ia32_prolvd512_mask">,
+                         llvm_v8i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prolv_d_512 : GCCBuiltin<"__builtin_ia32_prolvd512">,
               Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty,
-                         llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prolv_q_128 : GCCBuiltin<"__builtin_ia32_prolvq128_mask">,
+                         llvm_v16i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_prolv_q_128 : GCCBuiltin<"__builtin_ia32_prolvq128">,
               Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty,
-                         llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prolv_q_256 : GCCBuiltin<"__builtin_ia32_prolvq256_mask">,
+                         llvm_v2i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_prolv_q_256 : GCCBuiltin<"__builtin_ia32_prolvq256">,
               Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty,
-                         llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_prolv_q_512 : GCCBuiltin<"__builtin_ia32_prolvq512_mask">,
+                         llvm_v4i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_prolv_q_512 : GCCBuiltin<"__builtin_ia32_prolvq512">,
               Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty,
-                         llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_pror_d_128 : GCCBuiltin<"__builtin_ia32_prord128_mask">,
+                         llvm_v8i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_pror_d_128 : GCCBuiltin<"__builtin_ia32_prord128">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty,
-                         llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_pror_d_256 : GCCBuiltin<"__builtin_ia32_prord256_mask">,
+                         llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_pror_d_256 : GCCBuiltin<"__builtin_ia32_prord256">,
               Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty,
-                         llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_pror_d_512 : GCCBuiltin<"__builtin_ia32_prord512_mask">,
+                         llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_pror_d_512 : GCCBuiltin<"__builtin_ia32_prord512">,
               Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty,
-                         llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_pror_q_128 : GCCBuiltin<"__builtin_ia32_prorq128_mask">,
+                         llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_pror_q_128 : GCCBuiltin<"__builtin_ia32_prorq128">,
               Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty,
-                         llvm_i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_pror_q_256 : GCCBuiltin<"__builtin_ia32_prorq256_mask">,
+                         llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_pror_q_256 : GCCBuiltin<"__builtin_ia32_prorq256">,
               Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty,
-                         llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_pror_q_512 : GCCBuiltin<"__builtin_ia32_prorq512_mask">,
+                         llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_pror_q_512 : GCCBuiltin<"__builtin_ia32_prorq512">,
               Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty,
-                         llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>;
+                         llvm_i32_ty], [IntrNoMem]>;
 
 }
 
@@ -2188,754 +1903,115 @@
 // FMA3 and FMA4
 
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_fma_vfmadd_ss : GCCBuiltin<"__builtin_ia32_vfmaddss3">,
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmadd_sd : GCCBuiltin<"__builtin_ia32_vfmaddsd3">,
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma4_vfmadd_ss : GCCBuiltin<"__builtin_ia32_vfmaddss">,
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma4_vfmadd_sd : GCCBuiltin<"__builtin_ia32_vfmaddsd">,
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmadd_ps : GCCBuiltin<"__builtin_ia32_vfmaddps">,
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmadd_pd : GCCBuiltin<"__builtin_ia32_vfmaddpd">,
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmadd_ps_256 : GCCBuiltin<"__builtin_ia32_vfmaddps256">,
-              Intrinsic<[llvm_v8f32_ty],
-                        [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmadd_pd_256 : GCCBuiltin<"__builtin_ia32_vfmaddpd256">,
-              Intrinsic<[llvm_v4f64_ty],
-                        [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty],
-                        [IntrNoMem]>;
-
-  def int_x86_fma_vfmsub_ss : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmsub_sd : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmsub_ps : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmsub_pd : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmsub_ps_256 : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v8f32_ty],
-                        [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmsub_pd_256 : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f64_ty],
-                        [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmadd_ss : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmadd_sd : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmadd_ps : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmadd_pd : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmadd_ps_256 : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v8f32_ty],
-                        [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmadd_pd_256 : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f64_ty],
-                        [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmsub_ss : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmsub_sd : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmsub_ps : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmsub_pd : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmsub_ps_256 : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v8f32_ty],
-                        [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfnmsub_pd_256 : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f64_ty],
-                        [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmaddsub_ps : GCCBuiltin<"__builtin_ia32_vfmaddsubps">,
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmaddsub_pd : GCCBuiltin<"__builtin_ia32_vfmaddsubpd">,
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmaddsub_ps_256 :
-               GCCBuiltin<"__builtin_ia32_vfmaddsubps256">,
-              Intrinsic<[llvm_v8f32_ty],
-                        [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmaddsub_pd_256 :
-              GCCBuiltin<"__builtin_ia32_vfmaddsubpd256">,
-              Intrinsic<[llvm_v4f64_ty],
-                        [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmsubadd_ps : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f32_ty],
-                        [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmsubadd_pd : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v2f64_ty],
-                        [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmsubadd_ps_256 : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v8f32_ty],
-                        [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty],
-                        [IntrNoMem]>;
-  def int_x86_fma_vfmsubadd_pd_256 : // TODO: remove this intrinsic
-              Intrinsic<[llvm_v4f64_ty],
-                        [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty],
-                        [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmadd_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddpd128_mask">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmadd_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddpd128_mask3">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmadd_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddpd128_maskz">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmadd_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddpd256_mask">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmadd_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddpd256_mask3">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmadd_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddpd256_maskz">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmadd_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddpd512_mask">,
+  def int_x86_avx512_vfmadd_pd_512 :
           Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
+          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i32_ty],
+          [IntrNoMem]>;
 
-  def int_x86_avx512_mask3_vfmadd_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddpd512_mask3">,
+  def int_x86_avx512_vfmadd_ps_512 :
+          Intrinsic<[llvm_v16f32_ty],
+          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i32_ty],
+          [IntrNoMem]>;
+
+  // TODO: Can we use 2 vfmadds+shufflevector?
+  def int_x86_avx512_vfmaddsub_pd_512 :
           Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmadd_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddpd512_maskz">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmadd_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddps128_mask">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
+          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i32_ty],
           [IntrNoMem]>;
 
-  def int_x86_avx512_mask3_vfmadd_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddps128_mask3">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmadd_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddps128_maskz">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmadd_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddps256_mask">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmadd_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddps256_mask3">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmadd_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddps256_maskz">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmadd_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddps512_mask">,
+  def int_x86_avx512_vfmaddsub_ps_512 :
           Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmadd_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddps512_mask3">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmadd_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddps512_maskz">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmaddsub_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubpd128_mask">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
+          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i32_ty],
           [IntrNoMem]>;
 
-  def int_x86_avx512_mask3_vfmaddsub_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubpd128_mask3">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
+  def int_x86_avx512_vfmadd_f64 :
+          Intrinsic<[llvm_double_ty],
+                    [llvm_double_ty, llvm_double_ty, llvm_double_ty, llvm_i32_ty],
+                    [IntrNoMem]>;
+  def int_x86_avx512_vfmadd_f32 :
+          Intrinsic<[llvm_float_ty],
+                    [llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_i32_ty],
+                    [IntrNoMem]>;
 
-  def int_x86_avx512_maskz_vfmaddsub_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubpd128_maskz">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmaddsub_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubpd256_mask">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmaddsub_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubpd256_mask3">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmaddsub_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubpd256_maskz">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmaddsub_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubpd512_mask">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmaddsub_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubpd512_mask3">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmaddsub_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubpd512_maskz">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmaddsub_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubps128_mask">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmaddsub_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubps128_mask3">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmaddsub_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubps128_maskz">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmaddsub_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubps256_mask">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmaddsub_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubps256_mask3">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmaddsub_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubps256_maskz">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmaddsub_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubps512_mask">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmaddsub_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubps512_mask3">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmaddsub_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfmaddsubps512_maskz">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-
-  def int_x86_avx512_mask_vfmadd_sd :
-         GCCBuiltin<"__builtin_ia32_vfmaddsd3_mask">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfmadd_ss :
-         GCCBuiltin<"__builtin_ia32_vfmaddss3_mask">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmadd_sd :
-         GCCBuiltin<"__builtin_ia32_vfmaddsd3_maskz">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_vfmadd_ss :
-         GCCBuiltin<"__builtin_ia32_vfmaddss3_maskz">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmadd_sd :
-         GCCBuiltin<"__builtin_ia32_vfmaddsd3_mask3">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmadd_ss :
-         GCCBuiltin<"__builtin_ia32_vfmaddss3_mask3">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsub_sd :
-         GCCBuiltin<"__builtin_ia32_vfmsubsd3_mask3">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsub_ss :
-         GCCBuiltin<"__builtin_ia32_vfmsubss3_mask3">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsub_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfmsubpd128_mask3">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsub_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfmsubpd256_mask3">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsub_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfmsubpd512_mask3">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsub_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfmsubps128_mask3">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsub_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfmsubps256_mask3">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsub_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfmsubps512_mask3">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsubadd_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfmsubaddpd128_mask3">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsubadd_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfmsubaddpd256_mask3">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsubadd_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfmsubaddpd512_mask3">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsubadd_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfmsubaddps128_mask3">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsubadd_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfmsubaddps256_mask3">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfmsubadd_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfmsubaddps512_mask3">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmadd_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfnmaddpd128_mask">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmadd_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfnmaddpd256_mask">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmadd_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfnmaddpd512_mask">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmadd_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfnmaddps128_mask">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmadd_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfnmaddps256_mask">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmadd_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfnmaddps512_mask">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfnmsub_sd :
-         GCCBuiltin<"__builtin_ia32_vfnmsubsd3_mask3">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfnmsub_ss :
-         GCCBuiltin<"__builtin_ia32_vfnmsubss3_mask3">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmsub_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubpd128_mask">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfnmsub_pd_128 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubpd128_mask3">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmsub_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubpd256_mask">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfnmsub_pd_256 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubpd256_mask3">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmsub_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubpd512_mask">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfnmsub_pd_512 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubpd512_mask3">,
-          Intrinsic<[llvm_v8f64_ty],
-          [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty,  llvm_i8_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmsub_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubps128_mask">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfnmsub_ps_128 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubps128_mask3">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmsub_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubps256_mask">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfnmsub_ps_256 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubps256_mask3">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vfnmsub_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubps512_mask">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask3_vfnmsub_ps_512 :
-         GCCBuiltin<"__builtin_ia32_vfnmsubps512_mask3">,
-          Intrinsic<[llvm_v16f32_ty],
-          [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty,  llvm_i16_ty,
-          llvm_i32_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_vpmadd52h_uq_128 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52huq128_mask">,
+  def int_x86_avx512_vpmadd52h_uq_128 :
+              GCCBuiltin<"__builtin_ia32_vpmadd52huq128">,
               Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty,
-                         llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpmadd52h_uq_128 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52huq128_maskz">,
+                         llvm_v2i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpmadd52l_uq_128 :
+              GCCBuiltin<"__builtin_ia32_vpmadd52luq128">,
               Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty,
-                         llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpmadd52l_uq_128 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52luq128_mask">,
-              Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty,
-                         llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpmadd52l_uq_128 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52luq128_maskz">,
-              Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty,
-                         llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpmadd52h_uq_256 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52huq256_mask">,
+                         llvm_v2i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpmadd52h_uq_256 :
+              GCCBuiltin<"__builtin_ia32_vpmadd52huq256">,
               Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty,
-                         llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpmadd52h_uq_256 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52huq256_maskz">,
+                         llvm_v4i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpmadd52l_uq_256 :
+              GCCBuiltin<"__builtin_ia32_vpmadd52luq256">,
               Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty,
-                         llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpmadd52l_uq_256 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52luq256_mask">,
-              Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty,
-                         llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpmadd52l_uq_256 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52luq256_maskz">,
-              Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty,
-                         llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpmadd52h_uq_512 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52huq512_mask">,
+                         llvm_v4i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpmadd52h_uq_512 :
+              GCCBuiltin<"__builtin_ia32_vpmadd52huq512">,
               Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty,
-                         llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpmadd52h_uq_512 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52huq512_maskz">,
+                         llvm_v8i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpmadd52l_uq_512 :
+              GCCBuiltin<"__builtin_ia32_vpmadd52luq512">,
               Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty,
-                         llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpmadd52l_uq_512 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52luq512_mask">,
-              Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty,
-                         llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpmadd52l_uq_512 :
-              GCCBuiltin<"__builtin_ia32_vpmadd52luq512_maskz">,
-              Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty,
-                         llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>;
+                         llvm_v8i64_ty], [IntrNoMem]>;
 }
 
 // VNNI
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_avx512_mask_vpdpbusd_128 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusd128_mask">,
+  def int_x86_avx512_vpdpbusd_128 :
+              GCCBuiltin<"__builtin_ia32_vpdpbusd128">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
-                         llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpbusd_128 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusd128_maskz">,
-              Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
-                         llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpdpbusd_256 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusd256_mask">,
+                         llvm_v4i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpdpbusd_256 :
+              GCCBuiltin<"__builtin_ia32_vpdpbusd256">,
               Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty,
-                         llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpbusd_256 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusd256_maskz">,
-              Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty,
-                         llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpdpbusd_512 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusd512_mask">,
+                         llvm_v8i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpdpbusd_512 :
+              GCCBuiltin<"__builtin_ia32_vpdpbusd512">,
               Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty,
-                         llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpbusd_512 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusd512_maskz">,
-              Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty,
-                         llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
+                         llvm_v16i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpdpbusds_128 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusds128_mask">,
+  def int_x86_avx512_vpdpbusds_128 :
+              GCCBuiltin<"__builtin_ia32_vpdpbusds128">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
-                         llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpbusds_128 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusds128_maskz">,
-              Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
-                         llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpdpbusds_256 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusds256_mask">,
+                         llvm_v4i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpdpbusds_256 :
+              GCCBuiltin<"__builtin_ia32_vpdpbusds256">,
               Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty,
-                         llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpbusds_256 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusds256_maskz">,
-              Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty,
-                         llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpdpbusds_512 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusds512_mask">,
+                         llvm_v8i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpdpbusds_512 :
+              GCCBuiltin<"__builtin_ia32_vpdpbusds512">,
               Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty,
-                         llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpbusds_512 :
-              GCCBuiltin<"__builtin_ia32_vpdpbusds512_maskz">,
-              Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty,
-                         llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
+                         llvm_v16i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpdpwssd_128 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssd128_mask">,
+  def int_x86_avx512_vpdpwssd_128 :
+              GCCBuiltin<"__builtin_ia32_vpdpwssd128">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
-                         llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpwssd_128 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssd128_maskz">,
-              Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
-                         llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpdpwssd_256 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssd256_mask">,
+                         llvm_v4i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpdpwssd_256 :
+              GCCBuiltin<"__builtin_ia32_vpdpwssd256">,
               Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty,
-                         llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpwssd_256 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssd256_maskz">,
-              Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty,
-                         llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpdpwssd_512 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssd512_mask">,
+                         llvm_v8i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpdpwssd_512 :
+              GCCBuiltin<"__builtin_ia32_vpdpwssd512">,
               Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty,
-                         llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpwssd_512 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssd512_maskz">,
-              Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty,
-                         llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
+                         llvm_v16i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpdpwssds_128 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssds128_mask">,
+  def int_x86_avx512_vpdpwssds_128 :
+              GCCBuiltin<"__builtin_ia32_vpdpwssds128">,
               Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
-                         llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpwssds_128 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssds128_maskz">,
-              Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
-                         llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpdpwssds_256 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssds256_mask">,
+                         llvm_v4i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpdpwssds_256 :
+              GCCBuiltin<"__builtin_ia32_vpdpwssds256">,
               Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty,
-                         llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpwssds_256 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssds256_maskz">,
-              Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty,
-                         llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpdpwssds_512 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssds512_mask">,
+                         llvm_v8i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpdpwssds_512 :
+              GCCBuiltin<"__builtin_ia32_vpdpwssds512">,
               Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty,
-                         llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_maskz_vpdpwssds_512 :
-              GCCBuiltin<"__builtin_ia32_vpdpwssds512_maskz">,
-              Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty,
-                         llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>;
+                         llvm_v16i32_ty], [IntrNoMem]>;
 }
 
 //===----------------------------------------------------------------------===//
@@ -3383,48 +2459,42 @@
 }
 // Permute
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_avx512_mask_permvar_df_256 : GCCBuiltin<"__builtin_ia32_permvardf256_mask">,
+  def int_x86_avx512_permvar_df_256 : GCCBuiltin<"__builtin_ia32_permvardf256">,
               Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty,
-                        llvm_v4i64_ty, llvm_v4f64_ty, llvm_i8_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_df_512 : GCCBuiltin<"__builtin_ia32_permvardf512_mask">,
+                        llvm_v4i64_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_df_512 : GCCBuiltin<"__builtin_ia32_permvardf512">,
               Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty,
-                        llvm_v8i64_ty, llvm_v8f64_ty, llvm_i8_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_di_256 : GCCBuiltin<"__builtin_ia32_permvardi256_mask">,
+                        llvm_v8i64_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_di_256 : GCCBuiltin<"__builtin_ia32_permvardi256">,
               Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty,
-                        llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_di_512 : GCCBuiltin<"__builtin_ia32_permvardi512_mask">,
+                        llvm_v4i64_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_di_512 : GCCBuiltin<"__builtin_ia32_permvardi512">,
               Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty,
-                        llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_hi_128 : GCCBuiltin<"__builtin_ia32_permvarhi128_mask">,
+                        llvm_v8i64_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_hi_128 : GCCBuiltin<"__builtin_ia32_permvarhi128">,
               Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty,
-                        llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_hi_256 : GCCBuiltin<"__builtin_ia32_permvarhi256_mask">,
+                        llvm_v8i16_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_hi_256 : GCCBuiltin<"__builtin_ia32_permvarhi256">,
               Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty,
-                        llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_hi_512 : GCCBuiltin<"__builtin_ia32_permvarhi512_mask">,
+                        llvm_v16i16_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_hi_512 : GCCBuiltin<"__builtin_ia32_permvarhi512">,
               Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty,
-                        llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_qi_128 : GCCBuiltin<"__builtin_ia32_permvarqi128_mask">,
+                        llvm_v32i16_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_qi_128 : GCCBuiltin<"__builtin_ia32_permvarqi128">,
               Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty,
-                        llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_qi_256 : GCCBuiltin<"__builtin_ia32_permvarqi256_mask">,
+                        llvm_v16i8_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_qi_256 : GCCBuiltin<"__builtin_ia32_permvarqi256">,
               Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty,
-                        llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_qi_512 : GCCBuiltin<"__builtin_ia32_permvarqi512_mask">,
+                        llvm_v32i8_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_qi_512 : GCCBuiltin<"__builtin_ia32_permvarqi512">,
               Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty,
-                        llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_sf_256 : // TODO: Remove this intrinsic
-              Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty,
-                        llvm_v8i32_ty, llvm_v8f32_ty, llvm_i8_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_sf_512 : GCCBuiltin<"__builtin_ia32_permvarsf512_mask">,
+                        llvm_v64i8_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_sf_512 : GCCBuiltin<"__builtin_ia32_permvarsf512">,
               Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty,
-                        llvm_v16i32_ty, llvm_v16f32_ty, llvm_i16_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_si_256 : // TODO: Remove this intrinsic
-              Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty,
-                        llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty],  [IntrNoMem]>;
-  def int_x86_avx512_mask_permvar_si_512 : GCCBuiltin<"__builtin_ia32_permvarsi512_mask">,
+                        llvm_v16i32_ty],  [IntrNoMem]>;
+  def int_x86_avx512_permvar_si_512 : GCCBuiltin<"__builtin_ia32_permvarsi512">,
               Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty,
-                        llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty],  [IntrNoMem]>;
+                        llvm_v16i32_ty],  [IntrNoMem]>;
 }
 // Pack ops.
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
@@ -3741,9 +2811,6 @@
               Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>;
   def int_x86_avx512_cvttsd2usi64 : GCCBuiltin<"__builtin_ia32_vcvttsd2usi64">,
               Intrinsic<[llvm_i64_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_cvtusi2sd : GCCBuiltin<"__builtin_ia32_cvtusi2sd32">,
-              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
-                         llvm_i32_ty], [IntrNoMem]>;
   def int_x86_avx512_cvtusi642sd : GCCBuiltin<"__builtin_ia32_cvtusi2sd64">,
               Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
                          llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>;
@@ -3792,16 +2859,6 @@
 
 // Vector convert
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_avx512_mask_cvtdq2ps_128 : // TODO: remove this intrinsic
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4i32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_cvtdq2ps_256 : // TODO: remove this intrinsic
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8i32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
   def int_x86_avx512_mask_cvtdq2ps_512 :
         GCCBuiltin<"__builtin_ia32_cvtdq2ps512_mask">,
           Intrinsic<[llvm_v16f32_ty],
@@ -3814,22 +2871,12 @@
           [llvm_v2f64_ty, llvm_v4i32_ty,  llvm_i8_ty],
           [IntrNoMem]>;
 
-  def int_x86_avx512_mask_cvtpd2dq_256 : // TODO: remove this intrinsic
-          Intrinsic<[llvm_v4i32_ty],
-          [llvm_v4f64_ty, llvm_v4i32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
   def int_x86_avx512_mask_cvtpd2dq_512 :
         GCCBuiltin<"__builtin_ia32_cvtpd2dq512_mask">,
           Intrinsic<[llvm_v8i32_ty],
           [llvm_v8f64_ty, llvm_v8i32_ty,  llvm_i8_ty,  llvm_i32_ty],
           [IntrNoMem]>;
 
-  def int_x86_avx512_mask_cvtpd2ps_256 : // TODO: remove this intrinsic
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4f64_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
   def int_x86_avx512_mask_cvtpd2ps_512 :
         GCCBuiltin<"__builtin_ia32_cvtpd2ps512_mask">,
           Intrinsic<[llvm_v8f32_ty],
@@ -3926,16 +2973,6 @@
           [llvm_v16f32_ty, llvm_v16i32_ty,  llvm_i16_ty,  llvm_i32_ty],
           [IntrNoMem]>;
 
-  def int_x86_avx512_mask_cvtps2pd_128 : // FIXME: remove this intrinsic
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v4f32_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_cvtps2pd_256 : // FIXME: remove this intrinsic
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4f32_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
   def int_x86_avx512_mask_cvtps2pd_512 :
         GCCBuiltin<"__builtin_ia32_cvtps2pd512_mask">,
           Intrinsic<[llvm_v8f64_ty],
@@ -3996,18 +3033,6 @@
           [llvm_v8f32_ty, llvm_v8i64_ty,  llvm_i8_ty,  llvm_i32_ty],
           [IntrNoMem]>;
 
-  def int_x86_avx512_mask_cvtqq2pd_128 :
-        GCCBuiltin<"__builtin_ia32_cvtqq2pd128_mask">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2i64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_cvtqq2pd_256 :
-        GCCBuiltin<"__builtin_ia32_cvtqq2pd256_mask">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4i64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
   def int_x86_avx512_mask_cvtqq2pd_512 :
         GCCBuiltin<"__builtin_ia32_cvtqq2pd512_mask">,
           Intrinsic<[llvm_v8f64_ty],
@@ -4038,11 +3063,6 @@
           [llvm_v2f64_ty, llvm_v4i32_ty,  llvm_i8_ty],
           [IntrNoMem]>;
 
-  def int_x86_avx512_mask_cvttpd2dq_256 : // TODO: remove this intrinsic
-          Intrinsic<[llvm_v4i32_ty],
-          [llvm_v4f64_ty, llvm_v4i32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
   def int_x86_avx512_mask_cvttpd2dq_512 :
         GCCBuiltin<"__builtin_ia32_cvttpd2dq512_mask">,
           Intrinsic<[llvm_v8i32_ty],
@@ -4103,16 +3123,6 @@
           [llvm_v8f64_ty, llvm_v8i64_ty,  llvm_i8_ty,  llvm_i32_ty],
           [IntrNoMem]>;
 
-  def int_x86_avx512_mask_cvttps2dq_128 : // TODO: remove this intrinsic
-          Intrinsic<[llvm_v4i32_ty],
-          [llvm_v4f32_ty, llvm_v4i32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_cvttps2dq_256 : // TODO: remove this intrinsic
-          Intrinsic<[llvm_v8i32_ty],
-          [llvm_v8f32_ty, llvm_v8i32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
   def int_x86_avx512_mask_cvttps2dq_512 :
         GCCBuiltin<"__builtin_ia32_cvttps2dq512_mask">,
           Intrinsic<[llvm_v16i32_ty],
@@ -4173,36 +3183,12 @@
           [llvm_v8f32_ty, llvm_v8i64_ty,  llvm_i8_ty,  llvm_i32_ty],
           [IntrNoMem]>;
 
-  def int_x86_avx512_mask_cvtudq2ps_128 :
-        GCCBuiltin<"__builtin_ia32_cvtudq2ps128_mask">,
-          Intrinsic<[llvm_v4f32_ty],
-          [llvm_v4i32_ty, llvm_v4f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_cvtudq2ps_256 :
-        GCCBuiltin<"__builtin_ia32_cvtudq2ps256_mask">,
-          Intrinsic<[llvm_v8f32_ty],
-          [llvm_v8i32_ty, llvm_v8f32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
   def int_x86_avx512_mask_cvtudq2ps_512 :
         GCCBuiltin<"__builtin_ia32_cvtudq2ps512_mask">,
           Intrinsic<[llvm_v16f32_ty],
           [llvm_v16i32_ty, llvm_v16f32_ty,  llvm_i16_ty,  llvm_i32_ty],
           [IntrNoMem]>;
 
-  def int_x86_avx512_mask_cvtuqq2pd_128 :
-        GCCBuiltin<"__builtin_ia32_cvtuqq2pd128_mask">,
-          Intrinsic<[llvm_v2f64_ty],
-          [llvm_v2i64_ty, llvm_v2f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_cvtuqq2pd_256 :
-        GCCBuiltin<"__builtin_ia32_cvtuqq2pd256_mask">,
-          Intrinsic<[llvm_v4f64_ty],
-          [llvm_v4i64_ty, llvm_v4f64_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-
   def int_x86_avx512_mask_cvtuqq2pd_512 :
         GCCBuiltin<"__builtin_ia32_cvtuqq2pd512_mask">,
           Intrinsic<[llvm_v8f64_ty],
@@ -4285,13 +3271,6 @@
 
 // Vector load with broadcast
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  // TODO: Remove the broadcast intrinsics with no gcc builtin and autoupgrade
-  def int_x86_avx512_vbroadcast_ss_512 :
-        Intrinsic<[llvm_v16f32_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>;
-
-  def int_x86_avx512_vbroadcast_sd_512 :
-        Intrinsic<[llvm_v8f64_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>;
-
    def int_x86_avx512_broadcastmw_512 :
           GCCBuiltin<"__builtin_ia32_broadcastmw512">,
           Intrinsic<[llvm_v16i32_ty], [llvm_i16_ty], [IntrNoMem]>;
@@ -4315,42 +3294,43 @@
 // Arithmetic ops
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
 
-  def int_x86_avx512_mask_add_ps_512 : GCCBuiltin<"__builtin_ia32_addps512_mask">,
+  def int_x86_avx512_add_ps_512 : GCCBuiltin<"__builtin_ia32_addps512">,
           Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
-                     llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_add_pd_512 : GCCBuiltin<"__builtin_ia32_addpd512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_add_pd_512 : GCCBuiltin<"__builtin_ia32_addpd512">,
           Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty,
-                     llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_sub_ps_512 : GCCBuiltin<"__builtin_ia32_subps512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_sub_ps_512 : GCCBuiltin<"__builtin_ia32_subps512">,
           Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
-                     llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_sub_pd_512 : GCCBuiltin<"__builtin_ia32_subpd512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_sub_pd_512 : GCCBuiltin<"__builtin_ia32_subpd512">,
           Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty,
-                     llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_mul_ps_512 : GCCBuiltin<"__builtin_ia32_mulps512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_mul_ps_512 : GCCBuiltin<"__builtin_ia32_mulps512">,
           Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
-                     llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_mul_pd_512 : GCCBuiltin<"__builtin_ia32_mulpd512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_mul_pd_512 : GCCBuiltin<"__builtin_ia32_mulpd512">,
           Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty,
-                     llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_div_ps_512 : GCCBuiltin<"__builtin_ia32_divps512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_div_ps_512 : GCCBuiltin<"__builtin_ia32_divps512">,
           Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
-                     llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_div_pd_512 : GCCBuiltin<"__builtin_ia32_divpd512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_div_pd_512 : GCCBuiltin<"__builtin_ia32_divpd512">,
           Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty,
-                     llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_max_ps_512 : GCCBuiltin<"__builtin_ia32_maxps512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+
+  def int_x86_avx512_max_ps_512 : GCCBuiltin<"__builtin_ia32_maxps512">,
           Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
-                     llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_max_pd_512 : GCCBuiltin<"__builtin_ia32_maxpd512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_max_pd_512 : GCCBuiltin<"__builtin_ia32_maxpd512">,
           Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty,
-                     llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_min_ps_512 : GCCBuiltin<"__builtin_ia32_minps512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_min_ps_512 : GCCBuiltin<"__builtin_ia32_minps512">,
           Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
-                     llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_min_pd_512 : GCCBuiltin<"__builtin_ia32_minpd512_mask">,
+                     llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_min_pd_512 : GCCBuiltin<"__builtin_ia32_minpd512">,
           Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty,
-                     llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>;
+                     llvm_i32_ty], [IntrNoMem]>;
 
   def int_x86_avx512_mask_add_ss_round : GCCBuiltin<"__builtin_ia32_addss_round_mask">,
           Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty,
@@ -4438,31 +3418,17 @@
           Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
                     llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_sqrt_ss : GCCBuiltin<"__builtin_ia32_sqrtss_round_mask">,
+  def int_x86_avx512_mask_sqrt_ss :
         Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty,
                                     llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_sqrt_sd : GCCBuiltin<"__builtin_ia32_sqrtsd_round_mask">,
+  def int_x86_avx512_mask_sqrt_sd :
         Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty,
                                     llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_sqrt_pd_128 : GCCBuiltin<"__builtin_ia32_sqrtpd128_mask">,
-        Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty,
-                                    llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_sqrt_pd_256 : GCCBuiltin<"__builtin_ia32_sqrtpd256_mask">,
-        Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty,
-                                    llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_sqrt_pd_512 : GCCBuiltin<"__builtin_ia32_sqrtpd512_mask">,
-        Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty,
-                                    llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_sqrt_ps_128 : GCCBuiltin<"__builtin_ia32_sqrtps128_mask">,
-        Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty,
-                                     llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_sqrt_ps_256 : GCCBuiltin<"__builtin_ia32_sqrtps256_mask">,
-        Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty,
-                                     llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_sqrt_ps_512 : GCCBuiltin<"__builtin_ia32_sqrtps512_mask">,
-        Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
-                                     llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_sqrt_pd_512 :
+        Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_sqrt_ps_512 :
+        Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_i32_ty], [IntrNoMem]>;
   def int_x86_avx512_mask_fixupimm_pd_128 :
          GCCBuiltin<"__builtin_ia32_fixupimmpd128_mask">,
           Intrinsic<[llvm_v2f64_ty],
@@ -4783,60 +3749,33 @@
   def int_x86_avx512_mask_psubus_w_512 : GCCBuiltin<"__builtin_ia32_psubusw512_mask">,
           Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty,
                      llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_pmulu_dq_512 : GCCBuiltin<"__builtin_ia32_pmuludq512">,
-              Intrinsic<[llvm_v8i64_ty], [llvm_v16i32_ty, llvm_v16i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_pmul_dq_512 : GCCBuiltin<"__builtin_ia32_pmuldq512">,
-              Intrinsic<[llvm_v8i64_ty], [llvm_v16i32_ty, llvm_v16i32_ty], [IntrNoMem]>;
   def int_x86_avx512_pmulhu_w_512 : GCCBuiltin<"__builtin_ia32_pmulhuw512">,
               Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty,
                          llvm_v32i16_ty], [IntrNoMem, Commutative]>;
   def int_x86_avx512_pmulh_w_512 : GCCBuiltin<"__builtin_ia32_pmulhw512">,
               Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty,
                          llvm_v32i16_ty], [IntrNoMem, Commutative]>;
-  def int_x86_avx512_mask_pmaddw_d_128 : // FIXME: remove this intrinsic
-          Intrinsic<[llvm_v4i32_ty],
-          [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v4i32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-  def int_x86_avx512_mask_pmaddw_d_256 : // FIXME: remove this intrinsic
-          Intrinsic<[llvm_v8i32_ty],
-          [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v8i32_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-  def int_x86_avx512_mask_pmaddw_d_512 :
-         GCCBuiltin<"__builtin_ia32_pmaddwd512_mask">,
-          Intrinsic<[llvm_v16i32_ty],
-          [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v16i32_ty,  llvm_i16_ty],
-          [IntrNoMem]>;
-  def int_x86_avx512_mask_pmaddubs_w_128 : // FIXME: remove this intrinsic
+  def int_x86_avx512_pmaddw_d_512 : GCCBuiltin<"__builtin_ia32_pmaddwd512">,
+              Intrinsic<[llvm_v16i32_ty], [llvm_v32i16_ty,
+                         llvm_v32i16_ty], [IntrNoMem, Commutative]>;
+  def int_x86_avx512_pmaddubs_w_512 : GCCBuiltin<"__builtin_ia32_pmaddubsw512">,
+              Intrinsic<[llvm_v32i16_ty], [llvm_v64i8_ty,
+                         llvm_v64i8_ty], [IntrNoMem]>;
+
+  def int_x86_avx512_dbpsadbw_128 :
+         GCCBuiltin<"__builtin_ia32_dbpsadbw128">,
           Intrinsic<[llvm_v8i16_ty],
-          [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v8i16_ty,  llvm_i8_ty],
-          [IntrNoMem]>;
-  def int_x86_avx512_mask_pmaddubs_w_256 : // FIXME: remove this intrinsic
+                    [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
+
+  def int_x86_avx512_dbpsadbw_256 :
+         GCCBuiltin<"__builtin_ia32_dbpsadbw256">,
           Intrinsic<[llvm_v16i16_ty],
-          [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v16i16_ty,  llvm_i16_ty],
-          [IntrNoMem]>;
-  def int_x86_avx512_mask_pmaddubs_w_512 :
-         GCCBuiltin<"__builtin_ia32_pmaddubsw512_mask">,
+                    [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>;
+
+  def int_x86_avx512_dbpsadbw_512 :
+         GCCBuiltin<"__builtin_ia32_dbpsadbw512">,
           Intrinsic<[llvm_v32i16_ty],
-          [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v32i16_ty,  llvm_i32_ty],
-          [IntrNoMem]>;
-
-  def int_x86_avx512_mask_dbpsadbw_128 :
-         GCCBuiltin<"__builtin_ia32_dbpsadbw128_mask">,
-          Intrinsic<[llvm_v8i16_ty],
-          [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_v8i16_ty,
-           llvm_i8_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_dbpsadbw_256 :
-         GCCBuiltin<"__builtin_ia32_dbpsadbw256_mask">,
-          Intrinsic<[llvm_v16i16_ty],
-          [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty, llvm_v16i16_ty,
-           llvm_i16_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_dbpsadbw_512 :
-         GCCBuiltin<"__builtin_ia32_dbpsadbw512_mask">,
-          Intrinsic<[llvm_v32i16_ty],
-          [llvm_v64i8_ty, llvm_v64i8_ty, llvm_i32_ty, llvm_v32i16_ty,
-           llvm_i32_ty], [IntrNoMem]>;
+                    [llvm_v64i8_ty, llvm_v64i8_ty, llvm_i32_ty], [IntrNoMem]>;
 }
 
 // Gather and Scatter ops
@@ -5207,31 +4146,6 @@
         Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty,
                    llvm_i8_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_compress_store_ps_512 :
-                            GCCBuiltin<"__builtin_ia32_compressstoresf512_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v16f32_ty,
-                   llvm_i16_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_pd_512 :
-                            GCCBuiltin<"__builtin_ia32_compressstoredf512_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v8f64_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_ps_256 :
-                            GCCBuiltin<"__builtin_ia32_compressstoresf256_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v8f32_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_pd_256 :
-                            GCCBuiltin<"__builtin_ia32_compressstoredf256_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v4f64_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_ps_128 :
-                            GCCBuiltin<"__builtin_ia32_compressstoresf128_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v4f32_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_pd_128 :
-                            GCCBuiltin<"__builtin_ia32_compressstoredf128_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v2f64_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-
   def int_x86_avx512_mask_compress_d_512 :
                              GCCBuiltin<"__builtin_ia32_compresssi512_mask">,
         Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty,
@@ -5257,31 +4171,6 @@
         Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty,
                    llvm_i8_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_compress_store_d_512 :
-                            GCCBuiltin<"__builtin_ia32_compressstoresi512_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v16i32_ty,
-                   llvm_i16_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_q_512 :
-                            GCCBuiltin<"__builtin_ia32_compressstoredi512_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_d_256 :
-                            GCCBuiltin<"__builtin_ia32_compressstoresi256_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v8i32_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_q_256 :
-                            GCCBuiltin<"__builtin_ia32_compressstoredi256_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_d_128 :
-                            GCCBuiltin<"__builtin_ia32_compressstoresi128_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v4i32_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_q_128 :
-                            GCCBuiltin<"__builtin_ia32_compressstoredi128_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-
   def int_x86_avx512_mask_compress_b_512 :
                              GCCBuiltin<"__builtin_ia32_compressqi512_mask">,
         Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty,
@@ -5307,31 +4196,6 @@
         Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
                    llvm_i8_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_compress_store_b_512 :
-                            GCCBuiltin<"__builtin_ia32_compressstoreqi512_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v64i8_ty,
-                   llvm_i64_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_w_512 :
-                            GCCBuiltin<"__builtin_ia32_compressstorehi512_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v32i16_ty,
-                   llvm_i32_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_b_256 :
-                            GCCBuiltin<"__builtin_ia32_compressstoreqi256_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v32i8_ty,
-                   llvm_i32_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_w_256 :
-                            GCCBuiltin<"__builtin_ia32_compressstorehi256_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v16i16_ty,
-                   llvm_i16_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_b_128 :
-                            GCCBuiltin<"__builtin_ia32_compressstoreqi128_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v16i8_ty,
-                   llvm_i16_ty], [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_compress_store_w_128 :
-                            GCCBuiltin<"__builtin_ia32_compressstorehi128_mask">,
-        Intrinsic<[], [llvm_ptr_ty, llvm_v8i16_ty,
-                   llvm_i8_ty], [IntrArgMemOnly]>;
-
 // expand
   def int_x86_avx512_mask_expand_ps_512 :
                              GCCBuiltin<"__builtin_ia32_expandsf512_mask">,
@@ -5358,31 +4222,6 @@
         Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty,
                    llvm_i8_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_expand_load_ps_512 :
-                            GCCBuiltin<"__builtin_ia32_expandloadsf512_mask">,
-        Intrinsic<[llvm_v16f32_ty], [llvm_ptr_ty, llvm_v16f32_ty,
-                   llvm_i16_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_pd_512 :
-                            GCCBuiltin<"__builtin_ia32_expandloaddf512_mask">,
-        Intrinsic<[llvm_v8f64_ty], [llvm_ptr_ty, llvm_v8f64_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_ps_256 :
-                            GCCBuiltin<"__builtin_ia32_expandloadsf256_mask">,
-        Intrinsic<[llvm_v8f32_ty], [llvm_ptr_ty, llvm_v8f32_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_pd_256 :
-                            GCCBuiltin<"__builtin_ia32_expandloaddf256_mask">,
-        Intrinsic<[llvm_v4f64_ty], [llvm_ptr_ty, llvm_v4f64_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_ps_128 :
-                            GCCBuiltin<"__builtin_ia32_expandloadsf128_mask">,
-        Intrinsic<[llvm_v4f32_ty], [llvm_ptr_ty, llvm_v4f32_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_pd_128 :
-                            GCCBuiltin<"__builtin_ia32_expandloaddf128_mask">,
-        Intrinsic<[llvm_v2f64_ty], [llvm_ptr_ty, llvm_v2f64_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
-
   def int_x86_avx512_mask_expand_d_512 :
                              GCCBuiltin<"__builtin_ia32_expandsi512_mask">,
         Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty,
@@ -5408,31 +4247,6 @@
         Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty,
                    llvm_i8_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_expand_load_d_512 :
-                            GCCBuiltin<"__builtin_ia32_expandloadsi512_mask">,
-        Intrinsic<[llvm_v16i32_ty], [llvm_ptr_ty, llvm_v16i32_ty,
-                   llvm_i16_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_q_512 :
-                            GCCBuiltin<"__builtin_ia32_expandloaddi512_mask">,
-        Intrinsic<[llvm_v8i64_ty], [llvm_ptr_ty, llvm_v8i64_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_d_256 :
-                            GCCBuiltin<"__builtin_ia32_expandloadsi256_mask">,
-        Intrinsic<[llvm_v8i32_ty], [llvm_ptr_ty, llvm_v8i32_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_q_256 :
-                            GCCBuiltin<"__builtin_ia32_expandloaddi256_mask">,
-        Intrinsic<[llvm_v4i64_ty], [llvm_ptr_ty, llvm_v4i64_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_d_128 :
-                            GCCBuiltin<"__builtin_ia32_expandloadsi128_mask">,
-        Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty, llvm_v4i32_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_q_128 :
-                            GCCBuiltin<"__builtin_ia32_expandloaddi128_mask">,
-        Intrinsic<[llvm_v2i64_ty], [llvm_ptr_ty, llvm_v2i64_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
-
   def int_x86_avx512_mask_expand_b_512 :
                             GCCBuiltin<"__builtin_ia32_expandqi512_mask">,
         Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty,
@@ -5457,130 +4271,87 @@
                             GCCBuiltin<"__builtin_ia32_expandhi128_mask">,
         Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
                    llvm_i8_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_expand_load_b_512 :
-                            GCCBuiltin<"__builtin_ia32_expandloadqi512_mask">,
-        Intrinsic<[llvm_v64i8_ty], [llvm_ptr_ty, llvm_v64i8_ty,
-                   llvm_i64_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_w_512 :
-                            GCCBuiltin<"__builtin_ia32_expandloadhi512_mask">,
-        Intrinsic<[llvm_v32i16_ty], [llvm_ptr_ty, llvm_v32i16_ty,
-                   llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_b_256 :
-                            GCCBuiltin<"__builtin_ia32_expandloadqi256_mask">,
-        Intrinsic<[llvm_v32i8_ty], [llvm_ptr_ty, llvm_v32i8_ty,
-                   llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_w_256 :
-                            GCCBuiltin<"__builtin_ia32_expandloadhi256_mask">,
-        Intrinsic<[llvm_v16i16_ty], [llvm_ptr_ty, llvm_v16i16_ty,
-                   llvm_i16_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_b_128 :
-                            GCCBuiltin<"__builtin_ia32_expandloadqi128_mask">,
-        Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty, llvm_v16i8_ty,
-                   llvm_i16_ty], [IntrReadMem, IntrArgMemOnly]>;
-  def int_x86_avx512_mask_expand_load_w_128 :
-                            GCCBuiltin<"__builtin_ia32_expandloadhi128_mask">,
-        Intrinsic<[llvm_v8i16_ty], [llvm_ptr_ty, llvm_v8i16_ty,
-                   llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>;
 }
 
 // VBMI2 Concat & Shift
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_avx512_mask_vpshld_q_512 :
-        GCCBuiltin<"__builtin_ia32_vpshldq512_mask">,
+  def int_x86_avx512_vpshld_q_512 :
+        GCCBuiltin<"__builtin_ia32_vpshldq512">,
         Intrinsic<[llvm_v8i64_ty],
-                  [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty, llvm_v8i64_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshld_q_256 :
-        GCCBuiltin<"__builtin_ia32_vpshldq256_mask">,
+                  [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshld_q_256 :
+        GCCBuiltin<"__builtin_ia32_vpshldq256">,
         Intrinsic<[llvm_v4i64_ty],
-                  [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_v4i64_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshld_q_128 :
-        GCCBuiltin<"__builtin_ia32_vpshldq128_mask">,
+                  [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshld_q_128 :
+        GCCBuiltin<"__builtin_ia32_vpshldq128">,
         Intrinsic<[llvm_v2i64_ty],
-                  [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
+                  [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpshld_d_512 :
-        GCCBuiltin<"__builtin_ia32_vpshldd512_mask">,
+  def int_x86_avx512_vpshld_d_512 :
+        GCCBuiltin<"__builtin_ia32_vpshldd512">,
         Intrinsic<[llvm_v16i32_ty],
-                  [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty, llvm_v16i32_ty,
-                   llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshld_d_256 :
-        GCCBuiltin<"__builtin_ia32_vpshldd256_mask">,
+                  [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshld_d_256 :
+        GCCBuiltin<"__builtin_ia32_vpshldd256">,
         Intrinsic<[llvm_v8i32_ty],
-                  [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_v8i32_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshld_d_128 :
-        GCCBuiltin<"__builtin_ia32_vpshldd128_mask">,
+                  [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshld_d_128 :
+        GCCBuiltin<"__builtin_ia32_vpshldd128">,
         Intrinsic<[llvm_v4i32_ty],
-                  [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
+                  [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpshld_w_512 :
-        GCCBuiltin<"__builtin_ia32_vpshldw512_mask">,
+  def int_x86_avx512_vpshld_w_512 :
+        GCCBuiltin<"__builtin_ia32_vpshldw512">,
         Intrinsic<[llvm_v32i16_ty],
-                  [llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty, llvm_v32i16_ty,
-                   llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshld_w_256 :
-        GCCBuiltin<"__builtin_ia32_vpshldw256_mask">,
+                  [llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshld_w_256 :
+        GCCBuiltin<"__builtin_ia32_vpshldw256">,
         Intrinsic<[llvm_v16i16_ty],
-                  [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty, llvm_v16i16_ty,
-                   llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshld_w_128 :
-        GCCBuiltin<"__builtin_ia32_vpshldw128_mask">,
+                  [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshld_w_128 :
+        GCCBuiltin<"__builtin_ia32_vpshldw128">,
         Intrinsic<[llvm_v8i16_ty],
-                  [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty, llvm_v8i16_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
+                  [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpshrd_q_512 :
-        GCCBuiltin<"__builtin_ia32_vpshrdq512_mask">,
+  def int_x86_avx512_vpshrd_q_512 :
+        GCCBuiltin<"__builtin_ia32_vpshrdq512">,
         Intrinsic<[llvm_v8i64_ty],
-                  [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty, llvm_v8i64_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshrd_q_256 :
-        GCCBuiltin<"__builtin_ia32_vpshrdq256_mask">,
+                  [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshrd_q_256 :
+        GCCBuiltin<"__builtin_ia32_vpshrdq256">,
         Intrinsic<[llvm_v4i64_ty],
-                  [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_v4i64_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshrd_q_128 :
-        GCCBuiltin<"__builtin_ia32_vpshrdq128_mask">,
+                  [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshrd_q_128 :
+        GCCBuiltin<"__builtin_ia32_vpshrdq128">,
         Intrinsic<[llvm_v2i64_ty],
-                  [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
+                  [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpshrd_d_512 :
-        GCCBuiltin<"__builtin_ia32_vpshrdd512_mask">,
+  def int_x86_avx512_vpshrd_d_512 :
+        GCCBuiltin<"__builtin_ia32_vpshrdd512">,
         Intrinsic<[llvm_v16i32_ty],
-                  [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty, llvm_v16i32_ty,
-                   llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshrd_d_256 :
-        GCCBuiltin<"__builtin_ia32_vpshrdd256_mask">,
+                  [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshrd_d_256 :
+        GCCBuiltin<"__builtin_ia32_vpshrdd256">,
         Intrinsic<[llvm_v8i32_ty],
-                  [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_v8i32_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshrd_d_128 :
-        GCCBuiltin<"__builtin_ia32_vpshrdd128_mask">,
+                  [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshrd_d_128 :
+        GCCBuiltin<"__builtin_ia32_vpshrdd128">,
         Intrinsic<[llvm_v4i32_ty],
-                  [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
+                  [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_mask_vpshrd_w_512 :
-        GCCBuiltin<"__builtin_ia32_vpshrdw512_mask">,
+  def int_x86_avx512_vpshrd_w_512 :
+        GCCBuiltin<"__builtin_ia32_vpshrdw512">,
         Intrinsic<[llvm_v32i16_ty],
-                  [llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty, llvm_v32i16_ty,
-                   llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshrd_w_256 :
-        GCCBuiltin<"__builtin_ia32_vpshrdw256_mask">,
+                  [llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshrd_w_256 :
+        GCCBuiltin<"__builtin_ia32_vpshrdw256">,
         Intrinsic<[llvm_v16i16_ty],
-                  [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty, llvm_v16i16_ty,
-                   llvm_i16_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_vpshrd_w_128 :
-        GCCBuiltin<"__builtin_ia32_vpshrdw128_mask">,
+                  [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_vpshrd_w_128 :
+        GCCBuiltin<"__builtin_ia32_vpshrdw128">,
         Intrinsic<[llvm_v8i16_ty],
-                  [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty, llvm_v8i16_ty,
-                   llvm_i8_ty], [IntrNoMem]>;
+                  [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
 
   def int_x86_avx512_mask_vpshldv_w_128 :
         GCCBuiltin<"__builtin_ia32_vpshldvw128_mask">,
@@ -5886,7 +4657,6 @@
                     [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
                     [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_qw_512 :
-          GCCBuiltin<"__builtin_ia32_pmovqw512_mask">,
           Intrinsic<[llvm_v8i16_ty],
                     [llvm_v8i64_ty, llvm_v8i16_ty, llvm_i8_ty],
                     [IntrNoMem]>;
@@ -5945,8 +4715,7 @@
           Intrinsic<[],
                     [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty],
                     [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_pmov_qd_256 :
-          GCCBuiltin<"__builtin_ia32_pmovqd256_mask">,
+  def int_x86_avx512_mask_pmov_qd_256 : // FIXME: Replace with trunc+select.
           Intrinsic<[llvm_v4i32_ty],
                     [llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty],
                     [IntrNoMem]>;
@@ -5975,8 +4744,7 @@
           Intrinsic<[],
                     [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty],
                     [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_pmov_qd_512 :
-          GCCBuiltin<"__builtin_ia32_pmovqd512_mask">,
+  def int_x86_avx512_mask_pmov_qd_512 : // FIXME: Replace with trunc+select.
           Intrinsic<[llvm_v8i32_ty],
                     [llvm_v8i64_ty, llvm_v8i32_ty, llvm_i8_ty],
                     [IntrNoMem]>;
@@ -6066,7 +4834,6 @@
                     [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
                     [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_db_512 :
-          GCCBuiltin<"__builtin_ia32_pmovdb512_mask">,
           Intrinsic<[llvm_v16i8_ty],
                     [llvm_v16i32_ty, llvm_v16i8_ty, llvm_i16_ty],
                     [IntrNoMem]>;
@@ -6156,7 +4923,6 @@
                     [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty],
                     [IntrArgMemOnly]>;
   def int_x86_avx512_mask_pmov_dw_512 :
-          GCCBuiltin<"__builtin_ia32_pmovdw512_mask">,
           Intrinsic<[llvm_v16i16_ty],
                     [llvm_v16i32_ty, llvm_v16i16_ty, llvm_i16_ty],
                     [IntrNoMem]>;
@@ -6215,8 +4981,7 @@
           Intrinsic<[],
                     [llvm_ptr_ty, llvm_v8i16_ty, llvm_i8_ty],
                     [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_pmov_wb_256 :
-          GCCBuiltin<"__builtin_ia32_pmovwb256_mask">,
+  def int_x86_avx512_mask_pmov_wb_256 : // FIXME: Replace with trunc+select.
           Intrinsic<[llvm_v16i8_ty],
                     [llvm_v16i16_ty, llvm_v16i8_ty, llvm_i16_ty],
                     [IntrNoMem]>;
@@ -6245,8 +5010,7 @@
           Intrinsic<[],
                     [llvm_ptr_ty, llvm_v16i16_ty, llvm_i16_ty],
                     [IntrArgMemOnly]>;
-  def int_x86_avx512_mask_pmov_wb_512 :
-          GCCBuiltin<"__builtin_ia32_pmovwb512_mask">,
+  def int_x86_avx512_mask_pmov_wb_512 : // FIXME: Replace with trunc+select.
           Intrinsic<[llvm_v32i8_ty],
                     [llvm_v32i16_ty, llvm_v32i8_ty, llvm_i32_ty],
                     [IntrNoMem]>;
@@ -6279,97 +5043,63 @@
 
 // Bitwise ternary logic
 let TargetPrefix = "x86" in {
-  def int_x86_avx512_mask_pternlog_d_128 :
-          GCCBuiltin<"__builtin_ia32_pternlogd128_mask">,
+  def int_x86_avx512_pternlog_d_128 :
+          GCCBuiltin<"__builtin_ia32_pternlogd128">,
           Intrinsic<[llvm_v4i32_ty],
-                    [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty,
-                     llvm_i8_ty], [IntrNoMem]>;
+                    [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty],
+                    [IntrNoMem]>;
 
-  def int_x86_avx512_maskz_pternlog_d_128 :
-          GCCBuiltin<"__builtin_ia32_pternlogd128_maskz">,
-          Intrinsic<[llvm_v4i32_ty],
-                    [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty,
-                     llvm_i8_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_pternlog_d_256 :
-          GCCBuiltin<"__builtin_ia32_pternlogd256_mask">,
+  def int_x86_avx512_pternlog_d_256 :
+          GCCBuiltin<"__builtin_ia32_pternlogd256">,
           Intrinsic<[llvm_v8i32_ty],
-                    [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty,
-                     llvm_i8_ty], [IntrNoMem]>;
+                    [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty],
+                    [IntrNoMem]>;
 
-  def int_x86_avx512_maskz_pternlog_d_256 :
-          GCCBuiltin<"__builtin_ia32_pternlogd256_maskz">,
-          Intrinsic<[llvm_v8i32_ty],
-                    [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty,
-                     llvm_i8_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_pternlog_d_512 :
-          GCCBuiltin<"__builtin_ia32_pternlogd512_mask">,
+  def int_x86_avx512_pternlog_d_512 :
+          GCCBuiltin<"__builtin_ia32_pternlogd512">,
           Intrinsic<[llvm_v16i32_ty],
-                    [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty,
-                     llvm_i16_ty], [IntrNoMem]>;
+                    [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty,
+                     llvm_i32_ty], [IntrNoMem]>;
 
-  def int_x86_avx512_maskz_pternlog_d_512 :
-          GCCBuiltin<"__builtin_ia32_pternlogd512_maskz">,
-          Intrinsic<[llvm_v16i32_ty],
-                    [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty,
-                     llvm_i16_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_pternlog_q_128 :
-          GCCBuiltin<"__builtin_ia32_pternlogq128_mask">,
+  def int_x86_avx512_pternlog_q_128 :
+          GCCBuiltin<"__builtin_ia32_pternlogq128">,
           Intrinsic<[llvm_v2i64_ty],
-                    [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty,
-                     llvm_i8_ty], [IntrNoMem]>;
+                    [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty],
+                    [IntrNoMem]>;
 
-  def int_x86_avx512_maskz_pternlog_q_128 :
-          GCCBuiltin<"__builtin_ia32_pternlogq128_maskz">,
-          Intrinsic<[llvm_v2i64_ty],
-                    [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty,
-                     llvm_i8_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_pternlog_q_256 :
-          GCCBuiltin<"__builtin_ia32_pternlogq256_mask">,
+  def int_x86_avx512_pternlog_q_256 :
+          GCCBuiltin<"__builtin_ia32_pternlogq256">,
           Intrinsic<[llvm_v4i64_ty],
-                    [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty,
-                     llvm_i8_ty], [IntrNoMem]>;
+                    [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty],
+                    [IntrNoMem]>;
 
-  def int_x86_avx512_maskz_pternlog_q_256 :
-          GCCBuiltin<"__builtin_ia32_pternlogq256_maskz">,
-          Intrinsic<[llvm_v4i64_ty],
-                    [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty,
-                     llvm_i8_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_mask_pternlog_q_512 :
-          GCCBuiltin<"__builtin_ia32_pternlogq512_mask">,
+  def int_x86_avx512_pternlog_q_512 :
+          GCCBuiltin<"__builtin_ia32_pternlogq512">,
           Intrinsic<[llvm_v8i64_ty],
-                    [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty,
-                     llvm_i8_ty], [IntrNoMem]>;
-
-  def int_x86_avx512_maskz_pternlog_q_512 :
-          GCCBuiltin<"__builtin_ia32_pternlogq512_maskz">,
-          Intrinsic<[llvm_v8i64_ty],
-                    [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty,
-                     llvm_i8_ty], [IntrNoMem]>;
+                    [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty],
+                    [IntrNoMem]>;
 }
 
 // Misc.
 let TargetPrefix = "x86" in {
-  def int_x86_avx512_mask_cmp_ps_512 :
+  // NOTE: These comparison intrinsics are not used by clang as long as the
+  //       distinction in signaling behaviour is not implemented.
+  def int_x86_avx512_cmp_ps_512 :
               Intrinsic<[llvm_v16i1_ty], [llvm_v16f32_ty, llvm_v16f32_ty,
                          llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_cmp_pd_512 :
+  def int_x86_avx512_cmp_pd_512 :
               Intrinsic<[llvm_v8i1_ty], [llvm_v8f64_ty, llvm_v8f64_ty,
                          llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_cmp_ps_256 :
+  def int_x86_avx512_cmp_ps_256 :
               Intrinsic<[llvm_v8i1_ty], [llvm_v8f32_ty, llvm_v8f32_ty,
                          llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_cmp_pd_256 :
+  def int_x86_avx512_cmp_pd_256 :
               Intrinsic<[llvm_v4i1_ty], [llvm_v4f64_ty, llvm_v4f64_ty,
                          llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_cmp_ps_128 :
+  def int_x86_avx512_cmp_ps_128 :
             Intrinsic<[llvm_v4i1_ty], [llvm_v4f32_ty, llvm_v4f32_ty,
                        llvm_i32_ty], [IntrNoMem]>;
-  def int_x86_avx512_mask_cmp_pd_128 :
+  def int_x86_avx512_cmp_pd_128 :
             Intrinsic<[llvm_v2i1_ty], [llvm_v2f64_ty, llvm_v2f64_ty,
                        llvm_i32_ty], [IntrNoMem]>;
 
@@ -6421,3 +5151,65 @@
   def int_x86_clzero : GCCBuiltin<"__builtin_ia32_clzero">,
       Intrinsic<[], [llvm_ptr_ty], []>;
 }
+
+//===----------------------------------------------------------------------===//
+// Cache write back intrinsics
+
+let TargetPrefix = "x86" in {
+  // Write back and invalidate
+  def int_x86_wbinvd : GCCBuiltin<"__builtin_ia32_wbinvd">,
+      Intrinsic<[], [], []>;
+
+  // Write back no-invalidate
+  def int_x86_wbnoinvd : GCCBuiltin<"__builtin_ia32_wbnoinvd">,
+      Intrinsic<[], [], []>;
+}
+
+//===----------------------------------------------------------------------===//
+// Cache-line demote
+
+let TargetPrefix = "x86" in {
+  def int_x86_cldemote : GCCBuiltin<"__builtin_ia32_cldemote">,
+      Intrinsic<[], [llvm_ptr_ty], []>;
+}
+
+//===----------------------------------------------------------------------===//
+// Wait and pause enhancements
+let TargetPrefix = "x86" in {
+  def int_x86_umonitor : GCCBuiltin<"__builtin_ia32_umonitor">,
+              Intrinsic<[], [llvm_ptr_ty], []>;
+  def int_x86_umwait : GCCBuiltin<"__builtin_ia32_umwait">,
+              Intrinsic<[llvm_i8_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>;
+  def int_x86_tpause : GCCBuiltin<"__builtin_ia32_tpause">,
+              Intrinsic<[llvm_i8_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>;
+}
+
+//===----------------------------------------------------------------------===//
+// Direct Move Instructions
+
+let TargetPrefix = "x86" in {
+  def int_x86_directstore32 : GCCBuiltin<"__builtin_ia32_directstore_u32">,
+      Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty], []>;
+  def int_x86_directstore64 : GCCBuiltin<"__builtin_ia32_directstore_u64">,
+      Intrinsic<[], [llvm_ptr_ty, llvm_i64_ty], []>;
+  def int_x86_movdir64b : GCCBuiltin<"__builtin_ia32_movdir64b">,
+      Intrinsic<[], [llvm_ptr_ty, llvm_ptr_ty], []>;
+}
+
+//===----------------------------------------------------------------------===//
+// PTWrite - Write data to processor trace pocket
+
+let TargetPrefix = "x86" in {
+  def int_x86_ptwrite32 : GCCBuiltin<"__builtin_ia32_ptwrite32">,
+              Intrinsic<[], [llvm_i32_ty], []>;
+  def int_x86_ptwrite64 : GCCBuiltin<"__builtin_ia32_ptwrite64">,
+              Intrinsic<[], [llvm_i64_ty], []>;
+}
+
+//===----------------------------------------------------------------------===//
+// INVPCID - Invalidate Process-Context Identifier
+
+let TargetPrefix = "x86" in {
+  def int_x86_invpcid : GCCBuiltin<"__builtin_ia32_invpcid">,
+              Intrinsic<[], [llvm_i32_ty, llvm_ptr_ty], []>;
+}
diff --git a/linux-x64/clang/include/llvm/IR/LLVMContext.h b/linux-x64/clang/include/llvm/IR/LLVMContext.h
index 5778b41..ebd4455 100644
--- a/linux-x64/clang/include/llvm/IR/LLVMContext.h
+++ b/linux-x64/clang/include/llvm/IR/LLVMContext.h
@@ -229,23 +229,23 @@
   /// to caller.
   std::unique_ptr<DiagnosticHandler> getDiagnosticHandler();
 
-  /// \brief Return if a code hotness metric should be included in optimization
+  /// Return if a code hotness metric should be included in optimization
   /// diagnostics.
   bool getDiagnosticsHotnessRequested() const;
-  /// \brief Set if a code hotness metric should be included in optimization
+  /// Set if a code hotness metric should be included in optimization
   /// diagnostics.
   void setDiagnosticsHotnessRequested(bool Requested);
 
-  /// \brief Return the minimum hotness value a diagnostic would need in order
+  /// Return the minimum hotness value a diagnostic would need in order
   /// to be included in optimization diagnostics. If there is no minimum, this
   /// returns None.
   uint64_t getDiagnosticsHotnessThreshold() const;
 
-  /// \brief Set the minimum hotness value a diagnostic needs in order to be
+  /// Set the minimum hotness value a diagnostic needs in order to be
   /// included in optimization diagnostics.
   void setDiagnosticsHotnessThreshold(uint64_t Threshold);
 
-  /// \brief Return the YAML file used by the backend to save optimization
+  /// Return the YAML file used by the backend to save optimization
   /// diagnostics.  If null, diagnostics are not saved in a file but only
   /// emitted via the diagnostic handler.
   yaml::Output *getDiagnosticsOutputFile();
@@ -256,11 +256,11 @@
   /// set, the handler is invoked for each diagnostic message.
   void setDiagnosticsOutputFile(std::unique_ptr<yaml::Output> F);
 
-  /// \brief Get the prefix that should be printed in front of a diagnostic of
+  /// Get the prefix that should be printed in front of a diagnostic of
   ///        the given \p Severity
   static const char *getDiagnosticMessagePrefix(DiagnosticSeverity Severity);
 
-  /// \brief Report a message to the currently installed diagnostic handler.
+  /// Report a message to the currently installed diagnostic handler.
   ///
   /// This function returns, in particular in the case of error reporting
   /// (DI.Severity == \a DS_Error), so the caller should leave the compilation
@@ -272,7 +272,7 @@
   /// "warning: " for \a DS_Warning, and "note: " for \a DS_Note.
   void diagnose(const DiagnosticInfo &DI);
 
-  /// \brief Registers a yield callback with the given context.
+  /// Registers a yield callback with the given context.
   ///
   /// The yield callback function may be called by LLVM to transfer control back
   /// to the client that invoked the LLVM compilation. This can be used to yield
@@ -291,7 +291,7 @@
   /// control to LLVM. Other LLVM contexts are unaffected by this restriction.
   void setYieldCallback(YieldCallbackTy Callback, void *OpaqueHandle);
 
-  /// \brief Calls the yield callback (if applicable).
+  /// Calls the yield callback (if applicable).
   ///
   /// This transfers control of the current thread back to the client, which may
   /// suspend the current thread. Only call this method when LLVM doesn't hold
@@ -307,7 +307,7 @@
   void emitError(const Instruction *I, const Twine &ErrorStr);
   void emitError(const Twine &ErrorStr);
 
-  /// \brief Query for a debug option's value.
+  /// Query for a debug option's value.
   ///
   /// This function returns typed data populated from command line parsing.
   template <typename ValT, typename Base, ValT(Base::*Mem)>
@@ -315,9 +315,16 @@
     return OptionRegistry::instance().template get<ValT, Base, Mem>();
   }
 
-  /// \brief Access the object which manages optimization bisection for failure
-  /// analysis.
-  OptPassGate &getOptPassGate();
+  /// Access the object which can disable optional passes and individual
+  /// optimizations at compile time.
+  OptPassGate &getOptPassGate() const;
+
+  /// Set the object which can disable optional passes and individual
+  /// optimizations at compile time.
+  ///
+  /// The lifetime of the object must be guaranteed to extend as long as the
+  /// LLVMContext is used by compilation.
+  void setOptPassGate(OptPassGate&);
 
 private:
   // Module needs access to the add/removeModule methods.
diff --git a/linux-x64/clang/include/llvm/IR/LegacyPassManagers.h b/linux-x64/clang/include/llvm/IR/LegacyPassManagers.h
index 3dc4a77..f6752f2 100644
--- a/linux-x64/clang/include/llvm/IR/LegacyPassManagers.h
+++ b/linux-x64/clang/include/llvm/IR/LegacyPassManagers.h
@@ -285,7 +285,7 @@
   SpecificBumpPtrAllocator<AUFoldingSetNode> AUFoldingSetNodeAllocator;
 
   // Maps from a pass to it's associated entry in UniqueAnalysisUsages.  Does
-  // not own the storage associated with either key or value.. 
+  // not own the storage associated with either key or value..
   DenseMap<Pass *, AnalysisUsage*> AnUsageMap;
 
   /// Collection of PassInfo objects found via analysis IDs and in this top
@@ -403,6 +403,15 @@
       InheritedAnalysis[Index++] = (*I)->getAvailableAnalysis();
   }
 
+  /// Set the initial size of the module if the user has specified that they
+  /// want remarks for size.
+  /// Returns 0 if the remark was not requested.
+  unsigned initSizeRemarkInfo(Module &M);
+
+  /// Emit a remark signifying that the number of IR instructions in the module
+  /// changed.
+  void emitInstrCountChangedRemark(Pass *P, Module &M, unsigned CountBefore);
+
 protected:
   // Top level manager.
   PMTopLevelManager *TPM;
diff --git a/linux-x64/clang/include/llvm/IR/MDBuilder.h b/linux-x64/clang/include/llvm/IR/MDBuilder.h
index d5218ea..174616c 100644
--- a/linux-x64/clang/include/llvm/IR/MDBuilder.h
+++ b/linux-x64/clang/include/llvm/IR/MDBuilder.h
@@ -38,17 +38,17 @@
 public:
   MDBuilder(LLVMContext &context) : Context(context) {}
 
-  /// \brief Return the given string as metadata.
+  /// Return the given string as metadata.
   MDString *createString(StringRef Str);
 
-  /// \brief Return the given constant as metadata.
+  /// Return the given constant as metadata.
   ConstantAsMetadata *createConstant(Constant *C);
 
   //===------------------------------------------------------------------===//
   // FPMath metadata.
   //===------------------------------------------------------------------===//
 
-  /// \brief Return metadata with the given settings.  The special value 0.0
+  /// Return metadata with the given settings.  The special value 0.0
   /// for the Accuracy parameter indicates the default (maximal precision)
   /// setting.
   MDNode *createFPMath(float Accuracy);
@@ -57,10 +57,10 @@
   // Prof metadata.
   //===------------------------------------------------------------------===//
 
-  /// \brief Return metadata containing two branch weights.
+  /// Return metadata containing two branch weights.
   MDNode *createBranchWeights(uint32_t TrueWeight, uint32_t FalseWeight);
 
-  /// \brief Return metadata containing a number of branch weights.
+  /// Return metadata containing a number of branch weights.
   MDNode *createBranchWeights(ArrayRef<uint32_t> Weights);
 
   /// Return metadata specifying that a branch or switch is unpredictable.
@@ -80,17 +80,17 @@
   // Range metadata.
   //===------------------------------------------------------------------===//
 
-  /// \brief Return metadata describing the range [Lo, Hi).
+  /// Return metadata describing the range [Lo, Hi).
   MDNode *createRange(const APInt &Lo, const APInt &Hi);
 
-  /// \brief Return metadata describing the range [Lo, Hi).
+  /// Return metadata describing the range [Lo, Hi).
   MDNode *createRange(Constant *Lo, Constant *Hi);
 
   //===------------------------------------------------------------------===//
   // Callees metadata.
   //===------------------------------------------------------------------===//
 
-  /// \brief Return metadata indicating the possible callees of indirect
+  /// Return metadata indicating the possible callees of indirect
   /// calls.
   MDNode *createCallees(ArrayRef<Function *> Callees);
 
@@ -99,28 +99,28 @@
   //===------------------------------------------------------------------===//
 
 protected:
-  /// \brief Return metadata appropriate for a AA root node (scope or TBAA).
+  /// Return metadata appropriate for a AA root node (scope or TBAA).
   /// Each returned node is distinct from all other metadata and will never
   /// be identified (uniqued) with anything else.
   MDNode *createAnonymousAARoot(StringRef Name = StringRef(),
                                 MDNode *Extra = nullptr);
 
 public:
-  /// \brief Return metadata appropriate for a TBAA root node. Each returned
+  /// Return metadata appropriate for a TBAA root node. Each returned
   /// node is distinct from all other metadata and will never be identified
   /// (uniqued) with anything else.
   MDNode *createAnonymousTBAARoot() {
     return createAnonymousAARoot();
   }
 
-  /// \brief Return metadata appropriate for an alias scope domain node.
+  /// Return metadata appropriate for an alias scope domain node.
   /// Each returned node is distinct from all other metadata and will never
   /// be identified (uniqued) with anything else.
   MDNode *createAnonymousAliasScopeDomain(StringRef Name = StringRef()) {
     return createAnonymousAARoot(Name);
   }
 
-  /// \brief Return metadata appropriate for an alias scope root node.
+  /// Return metadata appropriate for an alias scope root node.
   /// Each returned node is distinct from all other metadata and will never
   /// be identified (uniqued) with anything else.
   MDNode *createAnonymousAliasScope(MDNode *Domain,
@@ -128,22 +128,22 @@
     return createAnonymousAARoot(Name, Domain);
   }
 
-  /// \brief Return metadata appropriate for a TBAA root node with the given
+  /// Return metadata appropriate for a TBAA root node with the given
   /// name.  This may be identified (uniqued) with other roots with the same
   /// name.
   MDNode *createTBAARoot(StringRef Name);
 
-  /// \brief Return metadata appropriate for an alias scope domain node with
+  /// Return metadata appropriate for an alias scope domain node with
   /// the given name. This may be identified (uniqued) with other roots with
   /// the same name.
   MDNode *createAliasScopeDomain(StringRef Name);
 
-  /// \brief Return metadata appropriate for an alias scope node with
+  /// Return metadata appropriate for an alias scope node with
   /// the given name. This may be identified (uniqued) with other scopes with
   /// the same name and domain.
   MDNode *createAliasScope(StringRef Name, MDNode *Domain);
 
-  /// \brief Return metadata for a non-root TBAA node with the given name,
+  /// Return metadata for a non-root TBAA node with the given name,
   /// parent in the TBAA tree, and value for 'pointsToConstantMemory'.
   MDNode *createTBAANode(StringRef Name, MDNode *Parent,
                          bool isConstant = false);
@@ -156,33 +156,33 @@
       Offset(Offset), Size(Size), Type(Type) {}
   };
 
-  /// \brief Return metadata for a tbaa.struct node with the given
+  /// Return metadata for a tbaa.struct node with the given
   /// struct field descriptions.
   MDNode *createTBAAStructNode(ArrayRef<TBAAStructField> Fields);
 
-  /// \brief Return metadata for a TBAA struct node in the type DAG
+  /// Return metadata for a TBAA struct node in the type DAG
   /// with the given name, a list of pairs (offset, field type in the type DAG).
   MDNode *
   createTBAAStructTypeNode(StringRef Name,
                            ArrayRef<std::pair<MDNode *, uint64_t>> Fields);
 
-  /// \brief Return metadata for a TBAA scalar type node with the
+  /// Return metadata for a TBAA scalar type node with the
   /// given name, an offset and a parent in the TBAA type DAG.
   MDNode *createTBAAScalarTypeNode(StringRef Name, MDNode *Parent,
                                    uint64_t Offset = 0);
 
-  /// \brief Return metadata for a TBAA tag node with the given
+  /// Return metadata for a TBAA tag node with the given
   /// base type, access type and offset relative to the base type.
   MDNode *createTBAAStructTagNode(MDNode *BaseType, MDNode *AccessType,
                                   uint64_t Offset, bool IsConstant = false);
 
-  /// \brief Return metadata for a TBAA type node in the TBAA type DAG with the
+  /// Return metadata for a TBAA type node in the TBAA type DAG with the
   /// given parent type, size in bytes, type identifier and a list of fields.
   MDNode *createTBAATypeNode(MDNode *Parent, uint64_t Size, Metadata *Id,
                              ArrayRef<TBAAStructField> Fields =
                                  ArrayRef<TBAAStructField>());
 
-  /// \brief Return metadata for a TBAA access tag with the given base type,
+  /// Return metadata for a TBAA access tag with the given base type,
   /// final access type, offset of the access relative to the base type, size of
   /// the access and flag indicating whether the accessed object can be
   /// considered immutable for the purposes of the TBAA analysis.
@@ -190,11 +190,11 @@
                               uint64_t Offset, uint64_t Size,
                               bool IsImmutable = false);
 
-  /// \brief Return mutable version of the given mutable or immutable TBAA
+  /// Return mutable version of the given mutable or immutable TBAA
   /// access tag.
   MDNode *createMutableTBAAAccessTag(MDNode *Tag);
 
-  /// \brief Return metadata containing an irreducible loop header weight.
+  /// Return metadata containing an irreducible loop header weight.
   MDNode *createIrrLoopHeaderWeight(uint64_t Weight);
 };
 
diff --git a/linux-x64/clang/include/llvm/IR/Metadata.def b/linux-x64/clang/include/llvm/IR/Metadata.def
index 03cdcab..70a03f2 100644
--- a/linux-x64/clang/include/llvm/IR/Metadata.def
+++ b/linux-x64/clang/include/llvm/IR/Metadata.def
@@ -108,6 +108,7 @@
 HANDLE_SPECIALIZED_MDNODE_BRANCH(DIVariable)
 HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIGlobalVariable)
 HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DILocalVariable)
+HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DILabel)
 HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIObjCProperty)
 HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIImportedEntity)
 HANDLE_SPECIALIZED_MDNODE_BRANCH(DIMacroNode)
diff --git a/linux-x64/clang/include/llvm/IR/Metadata.h b/linux-x64/clang/include/llvm/IR/Metadata.h
index bc0b87a..9ac97f4 100644
--- a/linux-x64/clang/include/llvm/IR/Metadata.h
+++ b/linux-x64/clang/include/llvm/IR/Metadata.h
@@ -52,20 +52,20 @@
   DEBUG_METADATA_VERSION = 3 // Current debug info version number.
 };
 
-/// \brief Root of the metadata hierarchy.
+/// Root of the metadata hierarchy.
 ///
 /// This is a root class for typeless data in the IR.
 class Metadata {
   friend class ReplaceableMetadataImpl;
 
-  /// \brief RTTI.
+  /// RTTI.
   const unsigned char SubclassID;
 
 protected:
-  /// \brief Active type of storage.
+  /// Active type of storage.
   enum StorageType { Uniqued, Distinct, Temporary };
 
-  /// \brief Storage flag for non-uniqued, otherwise unowned, metadata.
+  /// Storage flag for non-uniqued, otherwise unowned, metadata.
   unsigned char Storage;
   // TODO: expose remaining bits to subclasses.
 
@@ -86,7 +86,7 @@
 
   ~Metadata() = default;
 
-  /// \brief Default handling of a changed operand, which asserts.
+  /// Default handling of a changed operand, which asserts.
   ///
   /// If subclasses pass themselves in as owners to a tracking node reference,
   /// they must provide an implementation of this method.
@@ -97,7 +97,7 @@
 public:
   unsigned getMetadataID() const { return SubclassID; }
 
-  /// \brief User-friendly dump.
+  /// User-friendly dump.
   ///
   /// If \c M is provided, metadata nodes will be numbered canonically;
   /// otherwise, pointer addresses are substituted.
@@ -110,7 +110,7 @@
   void dump(const Module *M) const;
   /// @}
 
-  /// \brief Print.
+  /// Print.
   ///
   /// Prints definition of \c this.
   ///
@@ -123,7 +123,7 @@
              bool IsForDebug = false) const;
   /// @}
 
-  /// \brief Print as operand.
+  /// Print as operand.
   ///
   /// Prints reference of \c this.
   ///
@@ -162,7 +162,7 @@
   return OS;
 }
 
-/// \brief Metadata wrapper in the Value hierarchy.
+/// Metadata wrapper in the Value hierarchy.
 ///
 /// A member of the \a Value hierarchy to represent a reference to metadata.
 /// This allows, e.g., instrinsics to have metadata as operands.
@@ -177,7 +177,7 @@
 
   MetadataAsValue(Type *Ty, Metadata *MD);
 
-  /// \brief Drop use of metadata (during teardown).
+  /// Drop use of metadata (during teardown).
   void dropUse() { MD = nullptr; }
 
 public:
@@ -198,7 +198,7 @@
   void untrack();
 };
 
-/// \brief API for tracking metadata references through RAUW and deletion.
+/// API for tracking metadata references through RAUW and deletion.
 ///
 /// Shared API for updating \a Metadata pointers in subclasses that support
 /// RAUW.
@@ -207,7 +207,7 @@
 /// user-friendly tracking reference.
 class MetadataTracking {
 public:
-  /// \brief Track the reference to metadata.
+  /// Track the reference to metadata.
   ///
   /// Register \c MD with \c *MD, if the subclass supports tracking.  If \c *MD
   /// gets RAUW'ed, \c MD will be updated to the new address.  If \c *MD gets
@@ -220,7 +220,7 @@
     return track(&MD, *MD, static_cast<Metadata *>(nullptr));
   }
 
-  /// \brief Track the reference to metadata for \a Metadata.
+  /// Track the reference to metadata for \a Metadata.
   ///
   /// As \a track(Metadata*&), but with support for calling back to \c Owner to
   /// tell it that its operand changed.  This could trigger \c Owner being
@@ -229,7 +229,7 @@
     return track(Ref, MD, &Owner);
   }
 
-  /// \brief Track the reference to metadata for \a MetadataAsValue.
+  /// Track the reference to metadata for \a MetadataAsValue.
   ///
   /// As \a track(Metadata*&), but with support for calling back to \c Owner to
   /// tell it that its operand changed.  This could trigger \c Owner being
@@ -238,13 +238,13 @@
     return track(Ref, MD, &Owner);
   }
 
-  /// \brief Stop tracking a reference to metadata.
+  /// Stop tracking a reference to metadata.
   ///
   /// Stops \c *MD from tracking \c MD.
   static void untrack(Metadata *&MD) { untrack(&MD, *MD); }
   static void untrack(void *Ref, Metadata &MD);
 
-  /// \brief Move tracking from one reference to another.
+  /// Move tracking from one reference to another.
   ///
   /// Semantically equivalent to \c untrack(MD) followed by \c track(New),
   /// except that ownership callbacks are maintained.
@@ -257,19 +257,19 @@
   }
   static bool retrack(void *Ref, Metadata &MD, void *New);
 
-  /// \brief Check whether metadata is replaceable.
+  /// Check whether metadata is replaceable.
   static bool isReplaceable(const Metadata &MD);
 
   using OwnerTy = PointerUnion<MetadataAsValue *, Metadata *>;
 
 private:
-  /// \brief Track a reference to metadata for an owner.
+  /// Track a reference to metadata for an owner.
   ///
   /// Generalized version of tracking.
   static bool track(void *Ref, Metadata &MD, OwnerTy Owner);
 };
 
-/// \brief Shared implementation of use-lists for replaceable metadata.
+/// Shared implementation of use-lists for replaceable metadata.
 ///
 /// Most metadata cannot be RAUW'ed.  This is a shared implementation of
 /// use-lists and associated API for the two that support it (\a ValueAsMetadata
@@ -294,12 +294,12 @@
 
   LLVMContext &getContext() const { return Context; }
 
-  /// \brief Replace all uses of this with MD.
+  /// Replace all uses of this with MD.
   ///
   /// Replace all uses of this with \c MD, which is allowed to be null.
   void replaceAllUsesWith(Metadata *MD);
 
-  /// \brief Resolve all uses of this.
+  /// Resolve all uses of this.
   ///
   /// Resolve all uses of this, turning off RAUW permanently.  If \c
   /// ResolveUsers, call \a MDNode::resolve() on any users whose last operand
@@ -326,7 +326,7 @@
   static bool isReplaceable(const Metadata &MD);
 };
 
-/// \brief Value wrapper in the Metadata hierarchy.
+/// Value wrapper in the Metadata hierarchy.
 ///
 /// This is a custom value handle that allows other metadata to refer to
 /// classes in the Value hierarchy.
@@ -340,7 +340,7 @@
 
   Value *V;
 
-  /// \brief Drop users without RAUW (during teardown).
+  /// Drop users without RAUW (during teardown).
   void dropUsers() {
     ReplaceableMetadataImpl::resolveAllUses(/* ResolveUsers */ false);
   }
@@ -382,7 +382,7 @@
   static void handleRAUW(Value *From, Value *To);
 
 protected:
-  /// \brief Handle collisions after \a Value::replaceAllUsesWith().
+  /// Handle collisions after \a Value::replaceAllUsesWith().
   ///
   /// RAUW isn't supported directly for \a ValueAsMetadata, but if the wrapped
   /// \a Value gets RAUW'ed and the target already exists, this is used to
@@ -444,7 +444,7 @@
   }
 };
 
-/// \brief Transitional API for extracting constants from Metadata.
+/// Transitional API for extracting constants from Metadata.
 ///
 /// This namespace contains transitional functions for metadata that points to
 /// \a Constants.
@@ -520,7 +520,7 @@
 
 } // end namespace detail
 
-/// \brief Check whether Metadata has a Value.
+/// Check whether Metadata has a Value.
 ///
 /// As an analogue to \a isa(), check whether \c MD has an \a Value inside of
 /// type \c X.
@@ -539,7 +539,7 @@
   return hasa(&MD);
 }
 
-/// \brief Extract a Value from Metadata.
+/// Extract a Value from Metadata.
 ///
 /// As an analogue to \a cast(), extract the \a Value subclass \c X from \c MD.
 template <class X, class Y>
@@ -554,7 +554,7 @@
   return extract(&MD);
 }
 
-/// \brief Extract a Value from Metadata, allowing null.
+/// Extract a Value from Metadata, allowing null.
 ///
 /// As an analogue to \a cast_or_null(), extract the \a Value subclass \c X
 /// from \c MD, allowing \c MD to be null.
@@ -566,7 +566,7 @@
   return nullptr;
 }
 
-/// \brief Extract a Value from Metadata, if any.
+/// Extract a Value from Metadata, if any.
 ///
 /// As an analogue to \a dyn_cast_or_null(), extract the \a Value subclass \c X
 /// from \c MD, return null if \c MD doesn't contain a \a Value or if the \a
@@ -579,7 +579,7 @@
   return nullptr;
 }
 
-/// \brief Extract a Value from Metadata, if any, allowing null.
+/// Extract a Value from Metadata, if any, allowing null.
 ///
 /// As an analogue to \a dyn_cast_or_null(), extract the \a Value subclass \c X
 /// from \c MD, return null if \c MD doesn't contain a \a Value or if the \a
@@ -595,7 +595,7 @@
 } // end namespace mdconst
 
 //===----------------------------------------------------------------------===//
-/// \brief A single uniqued string.
+/// A single uniqued string.
 ///
 /// These are used to efficiently contain a byte sequence for metadata.
 /// MDString is always unnamed.
@@ -622,22 +622,22 @@
 
   using iterator = StringRef::iterator;
 
-  /// \brief Pointer to the first byte of the string.
+  /// Pointer to the first byte of the string.
   iterator begin() const { return getString().begin(); }
 
-  /// \brief Pointer to one byte past the end of the string.
+  /// Pointer to one byte past the end of the string.
   iterator end() const { return getString().end(); }
 
   const unsigned char *bytes_begin() const { return getString().bytes_begin(); }
   const unsigned char *bytes_end() const { return getString().bytes_end(); }
 
-  /// \brief Methods for support type inquiry through isa, cast, and dyn_cast.
+  /// Methods for support type inquiry through isa, cast, and dyn_cast.
   static bool classof(const Metadata *MD) {
     return MD->getMetadataID() == MDStringKind;
   }
 };
 
-/// \brief A collection of metadata nodes that might be associated with a
+/// A collection of metadata nodes that might be associated with a
 /// memory access used by the alias-analysis infrastructure.
 struct AAMDNodes {
   explicit AAMDNodes(MDNode *T = nullptr, MDNode *S = nullptr,
@@ -652,16 +652,16 @@
 
   explicit operator bool() const { return TBAA || Scope || NoAlias; }
 
-  /// \brief The tag for type-based alias analysis.
+  /// The tag for type-based alias analysis.
   MDNode *TBAA;
 
-  /// \brief The tag for alias scope specification (used with noalias).
+  /// The tag for alias scope specification (used with noalias).
   MDNode *Scope;
 
-  /// \brief The tag specifying the noalias scope.
+  /// The tag specifying the noalias scope.
   MDNode *NoAlias;
 
-  /// \brief Given two sets of AAMDNodes that apply to the same pointer,
+  /// Given two sets of AAMDNodes that apply to the same pointer,
   /// give the best AAMDNodes that are compatible with both (i.e. a set of
   /// nodes whose allowable aliasing conclusions are a subset of those
   /// allowable by both of the inputs). However, for efficiency
@@ -699,7 +699,7 @@
   }
 };
 
-/// \brief Tracking metadata reference owned by Metadata.
+/// Tracking metadata reference owned by Metadata.
 ///
 /// Similar to \a TrackingMDRef, but it's expected to be owned by an instance
 /// of \a Metadata, which has the option of registering itself for callbacks to
@@ -761,7 +761,7 @@
   static SimpleType getSimplifiedValue(const MDOperand &MD) { return MD.get(); }
 };
 
-/// \brief Pointer to the context, with optional RAUW support.
+/// Pointer to the context, with optional RAUW support.
 ///
 /// Either a raw (non-null) pointer to the \a LLVMContext, or an owned pointer
 /// to \a ReplaceableMetadataImpl (which has a reference to \a LLVMContext).
@@ -785,7 +785,7 @@
 
   operator LLVMContext &() { return getContext(); }
 
-  /// \brief Whether this contains RAUW support.
+  /// Whether this contains RAUW support.
   bool hasReplaceableUses() const {
     return Ptr.is<ReplaceableMetadataImpl *>();
   }
@@ -809,7 +809,7 @@
     return getReplaceableUses();
   }
 
-  /// \brief Assign RAUW support to this.
+  /// Assign RAUW support to this.
   ///
   /// Make this replaceable, taking ownership of \c ReplaceableUses (which must
   /// not be null).
@@ -822,7 +822,7 @@
     Ptr = ReplaceableUses.release();
   }
 
-  /// \brief Drop RAUW support.
+  /// Drop RAUW support.
   ///
   /// Cede ownership of RAUW support, returning it.
   std::unique_ptr<ReplaceableMetadataImpl> takeReplaceableUses() {
@@ -843,7 +843,7 @@
 #define HANDLE_MDNODE_BRANCH(CLASS) HANDLE_MDNODE_LEAF(CLASS)
 #include "llvm/IR/Metadata.def"
 
-/// \brief Metadata node.
+/// Metadata node.
 ///
 /// Metadata nodes can be uniqued, like constants, or distinct.  Temporary
 /// metadata nodes (with full support for RAUW) can be used to delay uniquing
@@ -876,12 +876,12 @@
   void *operator new(size_t Size, unsigned NumOps);
   void operator delete(void *Mem);
 
-  /// \brief Required by std, but never called.
+  /// Required by std, but never called.
   void operator delete(void *, unsigned) {
     llvm_unreachable("Constructor throws?");
   }
 
-  /// \brief Required by std, but never called.
+  /// Required by std, but never called.
   void operator delete(void *, unsigned, bool) {
     llvm_unreachable("Constructor throws?");
   }
@@ -910,10 +910,10 @@
   static inline TempMDTuple getTemporary(LLVMContext &Context,
                                          ArrayRef<Metadata *> MDs);
 
-  /// \brief Create a (temporary) clone of this.
+  /// Create a (temporary) clone of this.
   TempMDNode clone() const;
 
-  /// \brief Deallocate a node created by getTemporary.
+  /// Deallocate a node created by getTemporary.
   ///
   /// Calls \c replaceAllUsesWith(nullptr) before deleting, so any remaining
   /// references will be reset.
@@ -921,10 +921,10 @@
 
   LLVMContext &getContext() const { return Context.getContext(); }
 
-  /// \brief Replace a specific operand.
+  /// Replace a specific operand.
   void replaceOperandWith(unsigned I, Metadata *New);
 
-  /// \brief Check if node is fully resolved.
+  /// Check if node is fully resolved.
   ///
   /// If \a isTemporary(), this always returns \c false; if \a isDistinct(),
   /// this always returns \c true.
@@ -941,7 +941,7 @@
   bool isDistinct() const { return Storage == Distinct; }
   bool isTemporary() const { return Storage == Temporary; }
 
-  /// \brief RAUW a temporary.
+  /// RAUW a temporary.
   ///
   /// \pre \a isTemporary() must be \c true.
   void replaceAllUsesWith(Metadata *MD) {
@@ -950,7 +950,7 @@
       Context.getReplaceableUses()->replaceAllUsesWith(MD);
   }
 
-  /// \brief Resolve cycles.
+  /// Resolve cycles.
   ///
   /// Once all forward declarations have been resolved, force cycles to be
   /// resolved.
@@ -961,7 +961,7 @@
   /// Resolve a unique, unresolved node.
   void resolve();
 
-  /// \brief Replace a temporary node with a permanent one.
+  /// Replace a temporary node with a permanent one.
   ///
   /// Try to create a uniqued version of \c N -- in place, if possible -- and
   /// return it.  If \c N cannot be uniqued, return a distinct node instead.
@@ -971,7 +971,7 @@
     return cast<T>(N.release()->replaceWithPermanentImpl());
   }
 
-  /// \brief Replace a temporary node with a uniqued one.
+  /// Replace a temporary node with a uniqued one.
   ///
   /// Create a uniqued version of \c N -- in place, if possible -- and return
   /// it.  Takes ownership of the temporary node.
@@ -983,7 +983,7 @@
     return cast<T>(N.release()->replaceWithUniquedImpl());
   }
 
-  /// \brief Replace a temporary node with a distinct one.
+  /// Replace a temporary node with a distinct one.
   ///
   /// Create a distinct version of \c N -- in place, if possible -- and return
   /// it.  Takes ownership of the temporary node.
@@ -999,7 +999,7 @@
   MDNode *replaceWithDistinctImpl();
 
 protected:
-  /// \brief Set an operand.
+  /// Set an operand.
   ///
   /// Sets the operand directly, without worrying about uniquing.
   void setOperand(unsigned I, Metadata *New);
@@ -1019,14 +1019,14 @@
   void decrementUnresolvedOperandCount();
   void countUnresolvedOperands();
 
-  /// \brief Mutate this to be "uniqued".
+  /// Mutate this to be "uniqued".
   ///
   /// Mutate this so that \a isUniqued().
   /// \pre \a isTemporary().
   /// \pre already added to uniquing set.
   void makeUniqued();
 
-  /// \brief Mutate this to be "distinct".
+  /// Mutate this to be "distinct".
   ///
   /// Mutate this so that \a isDistinct().
   /// \pre \a isTemporary().
@@ -1069,10 +1069,10 @@
     return op_begin()[I];
   }
 
-  /// \brief Return number of MDNode operands.
+  /// Return number of MDNode operands.
   unsigned getNumOperands() const { return NumOperands; }
 
-  /// \brief Methods for support type inquiry through isa, cast, and dyn_cast:
+  /// Methods for support type inquiry through isa, cast, and dyn_cast:
   static bool classof(const Metadata *MD) {
     switch (MD->getMetadataID()) {
     default:
@@ -1084,10 +1084,10 @@
     }
   }
 
-  /// \brief Check whether MDNode is a vtable access.
+  /// Check whether MDNode is a vtable access.
   bool isTBAAVtableAccess() const;
 
-  /// \brief Methods for metadata merging.
+  /// Methods for metadata merging.
   static MDNode *concatenate(MDNode *A, MDNode *B);
   static MDNode *intersect(MDNode *A, MDNode *B);
   static MDNode *getMostGenericTBAA(MDNode *A, MDNode *B);
@@ -1097,7 +1097,7 @@
   static MDNode *getMostGenericAlignmentOrDereferenceable(MDNode *A, MDNode *B);
 };
 
-/// \brief Tuple of metadata.
+/// Tuple of metadata.
 ///
 /// This is the simple \a MDNode arbitrary tuple.  Nodes are uniqued by
 /// default based on their operands.
@@ -1125,7 +1125,7 @@
   }
 
 public:
-  /// \brief Get the hash, if any.
+  /// Get the hash, if any.
   unsigned getHash() const { return SubclassData32; }
 
   static MDTuple *get(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
@@ -1136,14 +1136,14 @@
     return getImpl(Context, MDs, Uniqued, /* ShouldCreate */ false);
   }
 
-  /// \brief Return a distinct node.
+  /// Return a distinct node.
   ///
   /// Return a distinct node -- i.e., a node that is not uniqued.
   static MDTuple *getDistinct(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
     return getImpl(Context, MDs, Distinct);
   }
 
-  /// \brief Return a temporary node.
+  /// Return a temporary node.
   ///
   /// For use in constructing cyclic MDNode structures. A temporary MDNode is
   /// not uniqued, may be RAUW'd, and must be manually deleted with
@@ -1153,7 +1153,7 @@
     return TempMDTuple(getImpl(Context, MDs, Temporary));
   }
 
-  /// \brief Return a (temporary) clone of this.
+  /// Return a (temporary) clone of this.
   TempMDTuple clone() const { return cloneImpl(); }
 
   static bool classof(const Metadata *MD) {
@@ -1182,7 +1182,7 @@
   MDNode::deleteTemporary(Node);
 }
 
-/// \brief Typed iterator through MDNode operands.
+/// Typed iterator through MDNode operands.
 ///
 /// An iterator that transforms an \a MDNode::iterator into an iterator over a
 /// particular Metadata subclass.
@@ -1213,7 +1213,7 @@
   bool operator!=(const TypedMDOperandIterator &X) const { return I != X.I; }
 };
 
-/// \brief Typed, array-like tuple of metadata.
+/// Typed, array-like tuple of metadata.
 ///
 /// This is a wrapper for \a MDTuple that makes it act like an array holding a
 /// particular type of metadata.
@@ -1314,7 +1314,7 @@
 };
 
 //===----------------------------------------------------------------------===//
-/// \brief A tuple of MDNodes.
+/// A tuple of MDNodes.
 ///
 /// Despite its name, a NamedMDNode isn't itself an MDNode. NamedMDNodes belong
 /// to modules, have names, and contain lists of MDNodes.
@@ -1377,7 +1377,7 @@
   NamedMDNode(const NamedMDNode &) = delete;
   ~NamedMDNode();
 
-  /// \brief Drop all references and remove the node from parent module.
+  /// Drop all references and remove the node from parent module.
   void eraseFromParent();
 
   /// Remove all uses and clear node vector.
@@ -1385,7 +1385,7 @@
   /// Drop all references to this node's operands.
   void clearOperands();
 
-  /// \brief Get the module that holds this named metadata collection.
+  /// Get the module that holds this named metadata collection.
   inline Module *getParent() { return Parent; }
   inline const Module *getParent() const { return Parent; }
 
diff --git a/linux-x64/clang/include/llvm/IR/Module.h b/linux-x64/clang/include/llvm/IR/Module.h
index 58e4bc4..a405f7d 100644
--- a/linux-x64/clang/include/llvm/IR/Module.h
+++ b/linux-x64/clang/include/llvm/IR/Module.h
@@ -59,7 +59,7 @@
 /// A module maintains a GlobalValRefMap object that is used to hold all
 /// constant references to global variables in the module.  When a global
 /// variable is destroyed, it should have no entries in the GlobalValueRefMap.
-/// @brief The main container class for the LLVM Intermediate Representation.
+/// The main container class for the LLVM Intermediate Representation.
 class Module {
 /// @name Types And Enumerations
 /// @{
@@ -207,13 +207,18 @@
   /// @returns the module identifier as a string
   const std::string &getModuleIdentifier() const { return ModuleID; }
 
+  /// Returns the number of non-debug IR instructions in the module.
+  /// This is equivalent to the sum of the IR instruction counts of each
+  /// function contained in the module.
+  unsigned getInstructionCount();
+
   /// Get the module's original source file name. When compiling from
   /// bitcode, this is taken from a bitcode record where it was recorded.
   /// For other compiles it is the same as the ModuleID, which would
   /// contain the source file name.
   const std::string &getSourceFileName() const { return SourceFileName; }
 
-  /// \brief Get a short "name" for the module.
+  /// Get a short "name" for the module.
   ///
   /// This is useful for debugging or logging. It is essentially a convenience
   /// wrapper around getModuleIdentifier().
@@ -251,9 +256,16 @@
   /// versions when the pass does not change.
   std::unique_ptr<RandomNumberGenerator> createRNG(const Pass* P) const;
 
-/// @}
-/// @name Module Level Mutators
-/// @{
+  /// Return true if size-info optimization remark is enabled, false
+  /// otherwise.
+  bool shouldEmitInstrCountChangedRemark() {
+    return getContext().getDiagHandlerPtr()->isAnalysisRemarkEnabled(
+        "size-info");
+  }
+
+  /// @}
+  /// @name Module Level Mutators
+  /// @{
 
   /// Set the module identifier.
   void setModuleIdentifier(StringRef ID) { ModuleID = ID; }
@@ -795,14 +807,14 @@
 /// @name Utility functions for querying Debug information.
 /// @{
 
-  /// \brief Returns the Number of Register ParametersDwarf Version by checking
+  /// Returns the Number of Register ParametersDwarf Version by checking
   /// module flags.
   unsigned getNumberRegisterParameters() const;
 
-  /// \brief Returns the Dwarf Version by checking module flags.
+  /// Returns the Dwarf Version by checking module flags.
   unsigned getDwarfVersion() const;
 
-  /// \brief Returns the CodeView Version by checking module flags.
+  /// Returns the CodeView Version by checking module flags.
   /// Returns zero if not present in module.
   unsigned getCodeViewFlag() const;
 
@@ -810,10 +822,10 @@
 /// @name Utility functions for querying and setting PIC level
 /// @{
 
-  /// \brief Returns the PIC level (small or large model)
+  /// Returns the PIC level (small or large model)
   PICLevel::Level getPICLevel() const;
 
-  /// \brief Set the PIC level (small or large model)
+  /// Set the PIC level (small or large model)
   void setPICLevel(PICLevel::Level PL);
 /// @}
 
@@ -821,20 +833,20 @@
 /// @name Utility functions for querying and setting PIE level
 /// @{
 
-  /// \brief Returns the PIE level (small or large model)
+  /// Returns the PIE level (small or large model)
   PIELevel::Level getPIELevel() const;
 
-  /// \brief Set the PIE level (small or large model)
+  /// Set the PIE level (small or large model)
   void setPIELevel(PIELevel::Level PL);
 /// @}
 
   /// @name Utility functions for querying and setting PGO summary
   /// @{
 
-  /// \brief Attach profile summary metadata to this module.
+  /// Attach profile summary metadata to this module.
   void setProfileSummary(Metadata *M);
 
-  /// \brief Returns profile summary metadata
+  /// Returns profile summary metadata
   Metadata *getProfileSummary();
   /// @}
 
@@ -849,7 +861,7 @@
   void setOwnedMemoryBuffer(std::unique_ptr<MemoryBuffer> MB);
 };
 
-/// \brief Given "llvm.used" or "llvm.compiler.used" as a global name, collect
+/// Given "llvm.used" or "llvm.compiler.used" as a global name, collect
 /// the initializer elements of that global in Set and return the global itself.
 GlobalVariable *collectUsedGlobalVariables(const Module &M,
                                            SmallPtrSetImpl<GlobalValue *> &Set,
diff --git a/linux-x64/clang/include/llvm/IR/ModuleSummaryIndex.h b/linux-x64/clang/include/llvm/IR/ModuleSummaryIndex.h
index 45f8cd7..fdf3d4b 100644
--- a/linux-x64/clang/include/llvm/IR/ModuleSummaryIndex.h
+++ b/linux-x64/clang/include/llvm/IR/ModuleSummaryIndex.h
@@ -25,8 +25,10 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/IR/Module.h"
+#include "llvm/Support/Allocator.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/ScaledNumber.h"
+#include "llvm/Support/StringSaver.h"
 #include <algorithm>
 #include <array>
 #include <cassert>
@@ -47,7 +49,7 @@
 
 } // end namespace yaml
 
-/// \brief Class to accumulate and hold information about a callee.
+/// Class to accumulate and hold information about a callee.
 struct CalleeInfo {
   enum class HotnessType : uint8_t {
     Unknown = 0,
@@ -103,15 +105,17 @@
 
 struct GlobalValueSummaryInfo {
   union NameOrGV {
-    NameOrGV(bool IsAnalysis) {
-      if (IsAnalysis)
+    NameOrGV(bool HaveGVs) {
+      if (HaveGVs)
         GV = nullptr;
       else
         Name = "";
     }
 
     /// The GlobalValue corresponding to this summary. This is only used in
-    /// per-module summaries, when module analysis is being run.
+    /// per-module summaries and when the IR is available. E.g. when module
+    /// analysis is being run, or when parsing both the IR and the summary
+    /// from assembly.
     const GlobalValue *GV;
 
     /// Summary string representation. This StringRef points to BC module
@@ -122,7 +126,7 @@
     StringRef Name;
   } U;
 
-  GlobalValueSummaryInfo(bool IsAnalysis) : U(IsAnalysis) {}
+  GlobalValueSummaryInfo(bool HaveGVs) : U(HaveGVs) {}
 
   /// List of global value summary structures for a particular value held
   /// in the GlobalValueMap. Requires a vector in the case of multiple
@@ -146,16 +150,16 @@
       RefAndFlag;
 
   ValueInfo() = default;
-  ValueInfo(bool IsAnalysis, const GlobalValueSummaryMapTy::value_type *R) {
+  ValueInfo(bool HaveGVs, const GlobalValueSummaryMapTy::value_type *R) {
     RefAndFlag.setPointer(R);
-    RefAndFlag.setInt(IsAnalysis);
+    RefAndFlag.setInt(HaveGVs);
   }
 
   operator bool() const { return getRef(); }
 
   GlobalValue::GUID getGUID() const { return getRef()->first; }
   const GlobalValue *getValue() const {
-    assert(isFromAnalysis());
+    assert(haveGVs());
     return getRef()->second.U.GV;
   }
 
@@ -164,11 +168,11 @@
   }
 
   StringRef name() const {
-    return isFromAnalysis() ? getRef()->second.U.GV->getName()
-                            : getRef()->second.U.Name;
+    return haveGVs() ? getRef()->second.U.GV->getName()
+                     : getRef()->second.U.Name;
   }
 
-  bool isFromAnalysis() const { return RefAndFlag.getInt(); }
+  bool haveGVs() const { return RefAndFlag.getInt(); }
 
   const GlobalValueSummaryMapTy::value_type *getRef() const {
     return RefAndFlag.getPointer();
@@ -177,16 +181,23 @@
   bool isDSOLocal() const;
 };
 
+inline raw_ostream &operator<<(raw_ostream &OS, const ValueInfo &VI) {
+  OS << VI.getGUID();
+  if (!VI.name().empty())
+    OS << " (" << VI.name() << ")";
+  return OS;
+}
+
 inline bool operator==(const ValueInfo &A, const ValueInfo &B) {
   assert(A.getRef() && B.getRef() &&
-         "Need ValueInfo with non-null Ref to compare GUIDs");
+         "Need ValueInfo with non-null Ref for comparison");
   return A.getRef() == B.getRef();
 }
 
 inline bool operator!=(const ValueInfo &A, const ValueInfo &B) {
   assert(A.getRef() && B.getRef() &&
-         "Need ValueInfo with non-null Ref to compare GUIDs");
-  return A.getGUID() != B.getGUID();
+         "Need ValueInfo with non-null Ref for comparison");
+  return A.getRef() != B.getRef();
 }
 
 inline bool operator<(const ValueInfo &A, const ValueInfo &B) {
@@ -209,25 +220,24 @@
   }
 
   static bool isEqual(ValueInfo L, ValueInfo R) {
-    // We are not supposed to mix ValueInfo(s) with different analysis flag
+    // We are not supposed to mix ValueInfo(s) with different HaveGVs flag
     // in a same container.
-    assert(isSpecialKey(L) || isSpecialKey(R) ||
-           (L.isFromAnalysis() == R.isFromAnalysis()));
+    assert(isSpecialKey(L) || isSpecialKey(R) || (L.haveGVs() == R.haveGVs()));
     return L.getRef() == R.getRef();
   }
   static unsigned getHashValue(ValueInfo I) { return (uintptr_t)I.getRef(); }
 };
 
-/// \brief Function and variable summary information to aid decisions and
+/// Function and variable summary information to aid decisions and
 /// implementation of importing.
 class GlobalValueSummary {
 public:
-  /// \brief Sububclass discriminator (for dyn_cast<> et al.)
+  /// Sububclass discriminator (for dyn_cast<> et al.)
   enum SummaryKind : unsigned { AliasKind, FunctionKind, GlobalVarKind };
 
   /// Group flags (Linkage, NotEligibleToImport, etc.) as a bitfield.
   struct GVFlags {
-    /// \brief The linkage type of the associated global value.
+    /// The linkage type of the associated global value.
     ///
     /// One use is to flag values that have local linkage types and need to
     /// have module identifier appended before placing into the combined
@@ -269,7 +279,7 @@
   /// GUID includes the module level id in the hash.
   GlobalValue::GUID OriginalName = 0;
 
-  /// \brief Path of module IR containing value's definition, used to locate
+  /// Path of module IR containing value's definition, used to locate
   /// module during importing.
   ///
   /// This is only used during parsing of the combined index, or when
@@ -296,7 +306,7 @@
 
   /// Returns the hash of the original name, it is identical to the GUID for
   /// externally visible symbols, but not for local ones.
-  GlobalValue::GUID getOriginalName() { return OriginalName; }
+  GlobalValue::GUID getOriginalName() const { return OriginalName; }
 
   /// Initialize the original name hash in this summary.
   void setOriginalName(GlobalValue::GUID Name) { OriginalName = Name; }
@@ -312,7 +322,7 @@
   StringRef modulePath() const { return ModulePath; }
 
   /// Get the flags for this GlobalValue (see \p struct GVFlags).
-  GVFlags flags() { return Flags; }
+  GVFlags flags() const { return Flags; }
 
   /// Return linkage type recorded for this global value.
   GlobalValue::LinkageTypes linkage() const {
@@ -350,7 +360,7 @@
   friend class ModuleSummaryIndex;
 };
 
-/// \brief Alias summary information.
+/// Alias summary information.
 class AliasSummary : public GlobalValueSummary {
   GlobalValueSummary *AliaseeSummary;
   // AliaseeGUID is only set and accessed when we are building a combined index
@@ -370,6 +380,8 @@
   void setAliasee(GlobalValueSummary *Aliasee) { AliaseeSummary = Aliasee; }
   void setAliaseeGUID(GlobalValue::GUID GUID) { AliaseeGUID = GUID; }
 
+  bool hasAliasee() const { return !!AliaseeSummary; }
+
   const GlobalValueSummary &getAliasee() const {
     assert(AliaseeSummary && "Unexpected missing aliasee summary");
     return *AliaseeSummary;
@@ -397,13 +409,20 @@
   return this;
 }
 
-/// \brief Function summary information to aid decisions and implementation of
+/// Function summary information to aid decisions and implementation of
 /// importing.
 class FunctionSummary : public GlobalValueSummary {
 public:
   /// <CalleeValueInfo, CalleeInfo> call edge pair.
   using EdgeTy = std::pair<ValueInfo, CalleeInfo>;
 
+  /// Types for -force-summary-edges-cold debugging option.
+  enum ForceSummaryHotnessType : unsigned {
+    FSHT_None,
+    FSHT_AllNonCritical,
+    FSHT_All
+  };
+
   /// An "identifier" for a virtual function. This contains the type identifier
   /// represented as a GUID and the offset from the address point to the virtual
   /// function pointer, where "address point" is as defined in the Itanium ABI:
@@ -421,6 +440,26 @@
     std::vector<uint64_t> Args;
   };
 
+  /// All type identifier related information. Because these fields are
+  /// relatively uncommon we only allocate space for them if necessary.
+  struct TypeIdInfo {
+    /// List of type identifiers used by this function in llvm.type.test
+    /// intrinsics referenced by something other than an llvm.assume intrinsic,
+    /// represented as GUIDs.
+    std::vector<GlobalValue::GUID> TypeTests;
+
+    /// List of virtual calls made by this function using (respectively)
+    /// llvm.assume(llvm.type.test) or llvm.type.checked.load intrinsics that do
+    /// not have all constant integer arguments.
+    std::vector<VFuncId> TypeTestAssumeVCalls, TypeCheckedLoadVCalls;
+
+    /// List of virtual calls made by this function using (respectively)
+    /// llvm.assume(llvm.type.test) or llvm.type.checked.load intrinsics with
+    /// all constant integer arguments.
+    std::vector<ConstVCall> TypeTestAssumeConstVCalls,
+        TypeCheckedLoadConstVCalls;
+  };
+
   /// Function attribute flags. Used to track if a function accesses memory,
   /// recurses or aliases.
   struct FFlags {
@@ -461,25 +500,6 @@
   /// List of <CalleeValueInfo, CalleeInfo> call edge pairs from this function.
   std::vector<EdgeTy> CallGraphEdgeList;
 
-  /// All type identifier related information. Because these fields are
-  /// relatively uncommon we only allocate space for them if necessary.
-  struct TypeIdInfo {
-    /// List of type identifiers used by this function in llvm.type.test
-    /// intrinsics other than by an llvm.assume intrinsic, represented as GUIDs.
-    std::vector<GlobalValue::GUID> TypeTests;
-
-    /// List of virtual calls made by this function using (respectively)
-    /// llvm.assume(llvm.type.test) or llvm.type.checked.load intrinsics that do
-    /// not have all constant integer arguments.
-    std::vector<VFuncId> TypeTestAssumeVCalls, TypeCheckedLoadVCalls;
-
-    /// List of virtual calls made by this function using (respectively)
-    /// llvm.assume(llvm.type.test) or llvm.type.checked.load intrinsics with
-    /// all constant integer arguments.
-    std::vector<ConstVCall> TypeTestAssumeConstVCalls,
-        TypeCheckedLoadConstVCalls;
-  };
-
   std::unique_ptr<TypeIdInfo> TIdInfo;
 
 public:
@@ -509,7 +529,7 @@
   }
 
   /// Get function attribute flags.
-  FFlags &fflags() { return FunFlags; }
+  FFlags fflags() const { return FunFlags; }
 
   /// Get the instruction count recorded for this function.
   unsigned instCount() const { return InstCount; }
@@ -569,6 +589,8 @@
     TIdInfo->TypeTests.push_back(Guid);
   }
 
+  const TypeIdInfo *getTypeIdInfo() const { return TIdInfo.get(); };
+
   friend struct GraphTraits<ValueInfo>;
 };
 
@@ -606,7 +628,7 @@
   }
 };
 
-/// \brief Global variable summary information to aid decisions and
+/// Global variable summary information to aid decisions and
 /// implementation of importing.
 ///
 /// Currently this doesn't add anything to the base \p GlobalValueSummary,
@@ -746,28 +768,34 @@
   /// valid object file.
   bool SkipModuleByDistributedBackend = false;
 
-  /// If true then we're performing analysis of IR module, filling summary
-  /// accordingly. The value of 'false' means we're reading summary from
-  /// BC or YAML source. Affects the type of value stored in NameOrGV union
-  bool IsAnalysis;
+  /// If true then we're performing analysis of IR module, or parsing along with
+  /// the IR from assembly. The value of 'false' means we're reading summary
+  /// from BC or YAML source. Affects the type of value stored in NameOrGV
+  /// union.
+  bool HaveGVs;
 
   std::set<std::string> CfiFunctionDefs;
   std::set<std::string> CfiFunctionDecls;
 
+  // Used in cases where we want to record the name of a global, but
+  // don't have the string owned elsewhere (e.g. the Strtab on a module).
+  StringSaver Saver;
+  BumpPtrAllocator Alloc;
+
   // YAML I/O support.
   friend yaml::MappingTraits<ModuleSummaryIndex>;
 
   GlobalValueSummaryMapTy::value_type *
   getOrInsertValuePtr(GlobalValue::GUID GUID) {
-    return &*GlobalValueMap.emplace(GUID, GlobalValueSummaryInfo(IsAnalysis)).first;
+    return &*GlobalValueMap.emplace(GUID, GlobalValueSummaryInfo(HaveGVs))
+                 .first;
   }
 
 public:
-  // See IsAnalysis variable comment.
-  ModuleSummaryIndex(bool IsPerformingAnalysis)
-      : IsAnalysis(IsPerformingAnalysis) {}
+  // See HaveGVs variable comment.
+  ModuleSummaryIndex(bool HaveGVs) : HaveGVs(HaveGVs), Saver(Alloc) {}
 
-  bool isPerformingAnalysis() const { return IsAnalysis; }
+  bool haveGVs() const { return HaveGVs; }
 
   gvsummary_iterator begin() { return GlobalValueMap.begin(); }
   const_gvsummary_iterator begin() const { return GlobalValueMap.begin(); }
@@ -820,7 +848,7 @@
       if (!S.second.SummaryList.size() ||
           !isa<FunctionSummary>(S.second.SummaryList.front().get()))
         continue;
-      discoverNodes(ValueInfo(IsAnalysis, &S), FunctionHasParent);
+      discoverNodes(ValueInfo(HaveGVs, &S), FunctionHasParent);
     }
 
     std::vector<FunctionSummary::EdgeTy> Edges;
@@ -857,31 +885,42 @@
   }
   bool isGUIDLive(GlobalValue::GUID GUID) const;
 
+  /// Return a ValueInfo for the index value_type (convenient when iterating
+  /// index).
+  ValueInfo getValueInfo(const GlobalValueSummaryMapTy::value_type &R) const {
+    return ValueInfo(HaveGVs, &R);
+  }
+
   /// Return a ValueInfo for GUID if it exists, otherwise return ValueInfo().
   ValueInfo getValueInfo(GlobalValue::GUID GUID) const {
     auto I = GlobalValueMap.find(GUID);
-    return ValueInfo(IsAnalysis, I == GlobalValueMap.end() ? nullptr : &*I);
+    return ValueInfo(HaveGVs, I == GlobalValueMap.end() ? nullptr : &*I);
   }
 
   /// Return a ValueInfo for \p GUID.
   ValueInfo getOrInsertValueInfo(GlobalValue::GUID GUID) {
-    return ValueInfo(IsAnalysis, getOrInsertValuePtr(GUID));
+    return ValueInfo(HaveGVs, getOrInsertValuePtr(GUID));
   }
 
+  // Save a string in the Index. Use before passing Name to
+  // getOrInsertValueInfo when the string isn't owned elsewhere (e.g. on the
+  // module's Strtab).
+  StringRef saveString(std::string String) { return Saver.save(String); }
+
   /// Return a ValueInfo for \p GUID setting value \p Name.
   ValueInfo getOrInsertValueInfo(GlobalValue::GUID GUID, StringRef Name) {
-    assert(!IsAnalysis);
+    assert(!HaveGVs);
     auto VP = getOrInsertValuePtr(GUID);
     VP->second.U.Name = Name;
-    return ValueInfo(IsAnalysis, VP);
+    return ValueInfo(HaveGVs, VP);
   }
 
   /// Return a ValueInfo for \p GV and mark it as belonging to GV.
   ValueInfo getOrInsertValueInfo(const GlobalValue *GV) {
-    assert(IsAnalysis);
+    assert(HaveGVs);
     auto VP = getOrInsertValuePtr(GV->getGUID());
     VP->second.U.GV = GV;
-    return ValueInfo(IsAnalysis, VP);
+    return ValueInfo(HaveGVs, VP);
   }
 
   /// Return the GUID for \p OriginalId in the OidGuidMap.
@@ -896,6 +935,12 @@
   std::set<std::string> &cfiFunctionDecls() { return CfiFunctionDecls; }
   const std::set<std::string> &cfiFunctionDecls() const { return CfiFunctionDecls; }
 
+  /// Add a global value summary for a value.
+  void addGlobalValueSummary(const GlobalValue &GV,
+                             std::unique_ptr<GlobalValueSummary> Summary) {
+    addGlobalValueSummary(getOrInsertValueInfo(&GV), std::move(Summary));
+  }
+
   /// Add a global value summary for a value of the given name.
   void addGlobalValueSummary(StringRef ValueName,
                              std::unique_ptr<GlobalValueSummary> Summary) {
@@ -947,8 +992,7 @@
   GlobalValueSummary *getGlobalValueSummary(const GlobalValue &GV,
                                             bool PerModuleIndex = true) const {
     assert(GV.hasName() && "Can't get GlobalValueSummary for GV with no name");
-    return getGlobalValueSummary(GlobalValue::getGUID(GV.getName()),
-                                 PerModuleIndex);
+    return getGlobalValueSummary(GV.getGUID(), PerModuleIndex);
   }
 
   /// Returns the first GlobalValueSummary for \p ValueGUID, asserting that
@@ -1005,6 +1049,13 @@
     return &*ModulePathStringTable.insert({ModPath, {ModId, Hash}}).first;
   }
 
+  /// Return module entry for module with the given \p ModPath.
+  ModuleInfo *getModule(StringRef ModPath) {
+    auto It = ModulePathStringTable.find(ModPath);
+    assert(It != ModulePathStringTable.end() && "Module not registered");
+    return &*It;
+  }
+
   /// Check if the given Module has any functions available for exporting
   /// in the index. We consider any module present in the ModulePathStringTable
   /// to have exported functions.
@@ -1031,7 +1082,7 @@
     return &I->second;
   }
 
-  /// Collect for the given module the list of function it defines
+  /// Collect for the given module the list of functions it defines
   /// (GUID -> Summary).
   void collectDefinedFunctionsForModule(StringRef ModulePath,
                                         GVSummaryMapTy &GVSummaryMap) const;
@@ -1041,6 +1092,12 @@
   void collectDefinedGVSummariesPerModule(
       StringMap<GVSummaryMapTy> &ModuleToDefinedGVSummaries) const;
 
+  /// Print to an output stream.
+  void print(raw_ostream &OS, bool IsForDebug = false) const;
+
+  /// Dump to stderr (for debugging).
+  void dump() const;
+
   /// Export summary to dot file for GraphViz.
   void exportToDot(raw_ostream& OS) const;
 
@@ -1087,11 +1144,11 @@
   static NodeRef getEntryNode(ModuleSummaryIndex *I) {
     std::unique_ptr<GlobalValueSummary> Root =
         make_unique<FunctionSummary>(I->calculateCallGraphRoot());
-    GlobalValueSummaryInfo G(I->isPerformingAnalysis());
+    GlobalValueSummaryInfo G(I->haveGVs());
     G.SummaryList.push_back(std::move(Root));
     static auto P =
         GlobalValueSummaryMapTy::value_type(GlobalValue::GUID(0), std::move(G));
-    return ValueInfo(I->isPerformingAnalysis(), &P);
+    return ValueInfo(I->haveGVs(), &P);
   }
 };
 
diff --git a/linux-x64/clang/include/llvm/IR/ModuleSummaryIndexYAML.h b/linux-x64/clang/include/llvm/IR/ModuleSummaryIndexYAML.h
index 8f30de6..1b339ab 100644
--- a/linux-x64/clang/include/llvm/IR/ModuleSummaryIndexYAML.h
+++ b/linux-x64/clang/include/llvm/IR/ModuleSummaryIndexYAML.h
@@ -138,6 +138,7 @@
 struct FunctionSummaryYaml {
   unsigned Linkage;
   bool NotEligibleToImport, Live, IsLocal;
+  std::vector<uint64_t> Refs;
   std::vector<uint64_t> TypeTests;
   std::vector<FunctionSummary::VFuncId> TypeTestAssumeVCalls,
       TypeCheckedLoadVCalls;
@@ -180,6 +181,7 @@
     io.mapOptional("NotEligibleToImport", summary.NotEligibleToImport);
     io.mapOptional("Live", summary.Live);
     io.mapOptional("Local", summary.IsLocal);
+    io.mapOptional("Refs", summary.Refs);
     io.mapOptional("TypeTests", summary.TypeTests);
     io.mapOptional("TypeTestAssumeVCalls", summary.TypeTestAssumeVCalls);
     io.mapOptional("TypeCheckedLoadVCalls", summary.TypeCheckedLoadVCalls);
@@ -209,14 +211,21 @@
       io.setError("key not an integer");
       return;
     }
-    auto P = V.emplace(KeyInt, /*IsAnalysis=*/false);
-    auto &Elem = (*P.first).second;
+    if (!V.count(KeyInt))
+      V.emplace(KeyInt, /*IsAnalysis=*/false);
+    auto &Elem = V.find(KeyInt)->second;
     for (auto &FSum : FSums) {
+      std::vector<ValueInfo> Refs;
+      for (auto &RefGUID : FSum.Refs) {
+        if (!V.count(RefGUID))
+          V.emplace(RefGUID, /*IsAnalysis=*/false);
+        Refs.push_back(ValueInfo(/*IsAnalysis=*/false, &*V.find(RefGUID)));
+      }
       Elem.SummaryList.push_back(llvm::make_unique<FunctionSummary>(
           GlobalValueSummary::GVFlags(
               static_cast<GlobalValue::LinkageTypes>(FSum.Linkage),
               FSum.NotEligibleToImport, FSum.Live, FSum.IsLocal),
-          0, FunctionSummary::FFlags{}, ArrayRef<ValueInfo>{},
+          0, FunctionSummary::FFlags{}, Refs,
           ArrayRef<FunctionSummary::EdgeTy>{}, std::move(FSum.TypeTests),
           std::move(FSum.TypeTestAssumeVCalls),
           std::move(FSum.TypeCheckedLoadVCalls),
@@ -228,15 +237,20 @@
     for (auto &P : V) {
       std::vector<FunctionSummaryYaml> FSums;
       for (auto &Sum : P.second.SummaryList) {
-        if (auto *FSum = dyn_cast<FunctionSummary>(Sum.get()))
+        if (auto *FSum = dyn_cast<FunctionSummary>(Sum.get())) {
+          std::vector<uint64_t> Refs;
+          for (auto &VI : FSum->refs())
+            Refs.push_back(VI.getGUID());
           FSums.push_back(FunctionSummaryYaml{
               FSum->flags().Linkage,
               static_cast<bool>(FSum->flags().NotEligibleToImport),
               static_cast<bool>(FSum->flags().Live),
-              static_cast<bool>(FSum->flags().DSOLocal), FSum->type_tests(),
-              FSum->type_test_assume_vcalls(), FSum->type_checked_load_vcalls(),
+              static_cast<bool>(FSum->flags().DSOLocal), Refs,
+              FSum->type_tests(), FSum->type_test_assume_vcalls(),
+              FSum->type_checked_load_vcalls(),
               FSum->type_test_assume_const_vcalls(),
               FSum->type_checked_load_const_vcalls()});
+          }
       }
       if (!FSums.empty())
         io.mapRequired(llvm::utostr(P.first).c_str(), FSums);
diff --git a/linux-x64/clang/include/llvm/IR/Operator.h b/linux-x64/clang/include/llvm/IR/Operator.h
index 01746e4..939cec7 100644
--- a/linux-x64/clang/include/llvm/IR/Operator.h
+++ b/linux-x64/clang/include/llvm/IR/Operator.h
@@ -207,17 +207,28 @@
   bool isFast() const          { return all(); }
 
   /// Flag setters
-  void setAllowReassoc()    { Flags |= AllowReassoc; }
-  void setNoNaNs()          { Flags |= NoNaNs; }
-  void setNoInfs()          { Flags |= NoInfs; }
-  void setNoSignedZeros()   { Flags |= NoSignedZeros; }
-  void setAllowReciprocal() { Flags |= AllowReciprocal; }
-  // TODO: Change the other set* functions to take a parameter?
-  void setAllowContract(bool B) {
+  void setAllowReassoc(bool B = true) {
+    Flags = (Flags & ~AllowReassoc) | B * AllowReassoc;
+  }
+  void setNoNaNs(bool B = true) {
+    Flags = (Flags & ~NoNaNs) | B * NoNaNs;
+  }
+  void setNoInfs(bool B = true) {
+    Flags = (Flags & ~NoInfs) | B * NoInfs;
+  }
+  void setNoSignedZeros(bool B = true) {
+    Flags = (Flags & ~NoSignedZeros) | B * NoSignedZeros;
+  }
+  void setAllowReciprocal(bool B = true) {
+    Flags = (Flags & ~AllowReciprocal) | B * AllowReciprocal;
+  }
+  void setAllowContract(bool B = true) {
     Flags = (Flags & ~AllowContract) | B * AllowContract;
   }
-  void setApproxFunc()      { Flags |= ApproxFunc; }
-  void setFast()            { set(); }
+  void setApproxFunc(bool B = true) {
+    Flags = (Flags & ~ApproxFunc) | B * ApproxFunc;
+  }
+  void setFast(bool B = true) { B ? set() : clear(); }
 
   void operator&=(const FastMathFlags &OtherFlags) {
     Flags &= OtherFlags.Flags;
@@ -507,7 +518,7 @@
       });
   }
 
-  /// \brief Accumulate the constant address offset of this GEP if possible.
+  /// Accumulate the constant address offset of this GEP if possible.
   ///
   /// This routine accepts an APInt into which it will accumulate the constant
   /// offset of this GEP if the GEP is in fact constant. If the GEP is not
diff --git a/linux-x64/clang/include/llvm/IR/OptBisect.h b/linux-x64/clang/include/llvm/IR/OptBisect.h
index cfc724c..aa24c94 100644
--- a/linux-x64/clang/include/llvm/IR/OptBisect.h
+++ b/linux-x64/clang/include/llvm/IR/OptBisect.h
@@ -47,7 +47,7 @@
 /// optimization-related problems.
 class OptBisect : public OptPassGate {
 public:
-  /// \brief Default constructor, initializes the OptBisect state based on the
+  /// Default constructor, initializes the OptBisect state based on the
   /// -opt-bisect-limit command line argument.
   ///
   /// By default, bisection is disabled.
diff --git a/linux-x64/clang/include/llvm/IR/PassManager.h b/linux-x64/clang/include/llvm/IR/PassManager.h
index 4f838a7..a5d4aaf 100644
--- a/linux-x64/clang/include/llvm/IR/PassManager.h
+++ b/linux-x64/clang/include/llvm/IR/PassManager.h
@@ -152,17 +152,17 @@
 /// ```
 class PreservedAnalyses {
 public:
-  /// \brief Convenience factory function for the empty preserved set.
+  /// Convenience factory function for the empty preserved set.
   static PreservedAnalyses none() { return PreservedAnalyses(); }
 
-  /// \brief Construct a special preserved set that preserves all passes.
+  /// Construct a special preserved set that preserves all passes.
   static PreservedAnalyses all() {
     PreservedAnalyses PA;
     PA.PreservedIDs.insert(&AllAnalysesKey);
     return PA;
   }
 
-  /// \brief Construct a preserved analyses object with a single preserved set.
+  /// Construct a preserved analyses object with a single preserved set.
   template <typename AnalysisSetT>
   static PreservedAnalyses allInSet() {
     PreservedAnalyses PA;
@@ -173,7 +173,7 @@
   /// Mark an analysis as preserved.
   template <typename AnalysisT> void preserve() { preserve(AnalysisT::ID()); }
 
-  /// \brief Given an analysis's ID, mark the analysis as preserved, adding it
+  /// Given an analysis's ID, mark the analysis as preserved, adding it
   /// to the set.
   void preserve(AnalysisKey *ID) {
     // Clear this ID from the explicit not-preserved set if present.
@@ -218,7 +218,7 @@
     NotPreservedAnalysisIDs.insert(ID);
   }
 
-  /// \brief Intersect this set with another in place.
+  /// Intersect this set with another in place.
   ///
   /// This is a mutating operation on this preserved set, removing all
   /// preserved passes which are not also preserved in the argument.
@@ -240,7 +240,7 @@
         PreservedIDs.erase(ID);
   }
 
-  /// \brief Intersect this set with a temporary other set in place.
+  /// Intersect this set with a temporary other set in place.
   ///
   /// This is a mutating operation on this preserved set, removing all
   /// preserved passes which are not also preserved in the argument.
@@ -402,7 +402,7 @@
   }
 };
 
-/// \brief Manages a sequence of passes over a particular unit of IR.
+/// Manages a sequence of passes over a particular unit of IR.
 ///
 /// A pass manager contains a sequence of passes to run over a particular unit
 /// of IR (e.g. Functions, Modules). It is itself a valid pass over that unit of
@@ -420,7 +420,7 @@
 class PassManager : public PassInfoMixin<
                         PassManager<IRUnitT, AnalysisManagerT, ExtraArgTs...>> {
 public:
-  /// \brief Construct a pass manager.
+  /// Construct a pass manager.
   ///
   /// If \p DebugLogging is true, we'll log our progress to llvm::dbgs().
   explicit PassManager(bool DebugLogging = false) : DebugLogging(DebugLogging) {}
@@ -439,7 +439,7 @@
     return *this;
   }
 
-  /// \brief Run all of the passes in this manager over the given unit of IR.
+  /// Run all of the passes in this manager over the given unit of IR.
   /// ExtraArgs are passed to each pass.
   PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM,
                         ExtraArgTs... ExtraArgs) {
@@ -496,21 +496,21 @@
 
   std::vector<std::unique_ptr<PassConceptT>> Passes;
 
-  /// \brief Flag indicating whether we should do debug logging.
+  /// Flag indicating whether we should do debug logging.
   bool DebugLogging;
 };
 
 extern template class PassManager<Module>;
 
-/// \brief Convenience typedef for a pass manager over modules.
+/// Convenience typedef for a pass manager over modules.
 using ModulePassManager = PassManager<Module>;
 
 extern template class PassManager<Function>;
 
-/// \brief Convenience typedef for a pass manager over functions.
+/// Convenience typedef for a pass manager over functions.
 using FunctionPassManager = PassManager<Function>;
 
-/// \brief A container for analyses that lazily runs them and caches their
+/// A container for analyses that lazily runs them and caches their
 /// results.
 ///
 /// This class can manage analyses for any IR unit where the address of the IR
@@ -527,7 +527,7 @@
       detail::AnalysisPassConcept<IRUnitT, PreservedAnalyses, Invalidator,
                                   ExtraArgTs...>;
 
-  /// \brief List of analysis pass IDs and associated concept pointers.
+  /// List of analysis pass IDs and associated concept pointers.
   ///
   /// Requires iterators to be valid across appending new entries and arbitrary
   /// erases. Provides the analysis ID to enable finding iterators to a given
@@ -536,10 +536,10 @@
   using AnalysisResultListT =
       std::list<std::pair<AnalysisKey *, std::unique_ptr<ResultConceptT>>>;
 
-  /// \brief Map type from IRUnitT pointer to our custom list type.
+  /// Map type from IRUnitT pointer to our custom list type.
   using AnalysisResultListMapT = DenseMap<IRUnitT *, AnalysisResultListT>;
 
-  /// \brief Map type from a pair of analysis ID and IRUnitT pointer to an
+  /// Map type from a pair of analysis ID and IRUnitT pointer to an
   /// iterator into a particular result list (which is where the actual analysis
   /// result is stored).
   using AnalysisResultMapT =
@@ -634,14 +634,14 @@
     const AnalysisResultMapT &Results;
   };
 
-  /// \brief Construct an empty analysis manager.
+  /// Construct an empty analysis manager.
   ///
   /// If \p DebugLogging is true, we'll log our progress to llvm::dbgs().
   AnalysisManager(bool DebugLogging = false) : DebugLogging(DebugLogging) {}
   AnalysisManager(AnalysisManager &&) = default;
   AnalysisManager &operator=(AnalysisManager &&) = default;
 
-  /// \brief Returns true if the analysis manager has an empty results cache.
+  /// Returns true if the analysis manager has an empty results cache.
   bool empty() const {
     assert(AnalysisResults.empty() == AnalysisResultLists.empty() &&
            "The storage and index of analysis results disagree on how many "
@@ -649,7 +649,7 @@
     return AnalysisResults.empty();
   }
 
-  /// \brief Clear any cached analysis results for a single unit of IR.
+  /// Clear any cached analysis results for a single unit of IR.
   ///
   /// This doesn't invalidate, but instead simply deletes, the relevant results.
   /// It is useful when the IR is being removed and we want to clear out all the
@@ -669,7 +669,7 @@
     AnalysisResultLists.erase(ResultsListI);
   }
 
-  /// \brief Clear all analysis results cached by this AnalysisManager.
+  /// Clear all analysis results cached by this AnalysisManager.
   ///
   /// Like \c clear(IRUnitT&), this doesn't invalidate the results; it simply
   /// deletes them.  This lets you clean up the AnalysisManager when the set of
@@ -680,7 +680,7 @@
     AnalysisResultLists.clear();
   }
 
-  /// \brief Get the result of an analysis pass for a given IR unit.
+  /// Get the result of an analysis pass for a given IR unit.
   ///
   /// Runs the analysis if a cached result is not available.
   template <typename PassT>
@@ -697,7 +697,7 @@
     return static_cast<ResultModelT &>(ResultConcept).Result;
   }
 
-  /// \brief Get the cached result of an analysis pass for a given IR unit.
+  /// Get the cached result of an analysis pass for a given IR unit.
   ///
   /// This method never runs the analysis.
   ///
@@ -718,7 +718,7 @@
     return &static_cast<ResultModelT *>(ResultConcept)->Result;
   }
 
-  /// \brief Register an analysis pass with the manager.
+  /// Register an analysis pass with the manager.
   ///
   /// The parameter is a callable whose result is an analysis pass. This allows
   /// passing in a lambda to construct the analysis.
@@ -752,7 +752,7 @@
     return true;
   }
 
-  /// \brief Invalidate a specific analysis pass for an IR module.
+  /// Invalidate a specific analysis pass for an IR module.
   ///
   /// Note that the analysis result can disregard invalidation, if it determines
   /// it is in fact still valid.
@@ -762,7 +762,7 @@
     invalidateImpl(PassT::ID(), IR);
   }
 
-  /// \brief Invalidate cached analyses for an IR unit.
+  /// Invalidate cached analyses for an IR unit.
   ///
   /// Walk through all of the analyses pertaining to this unit of IR and
   /// invalidate them, unless they are preserved by the PreservedAnalyses set.
@@ -829,7 +829,7 @@
   }
 
 private:
-  /// \brief Look up a registered analysis pass.
+  /// Look up a registered analysis pass.
   PassConceptT &lookUpPass(AnalysisKey *ID) {
     typename AnalysisPassMapT::iterator PI = AnalysisPasses.find(ID);
     assert(PI != AnalysisPasses.end() &&
@@ -837,7 +837,7 @@
     return *PI->second;
   }
 
-  /// \brief Look up a registered analysis pass.
+  /// Look up a registered analysis pass.
   const PassConceptT &lookUpPass(AnalysisKey *ID) const {
     typename AnalysisPassMapT::const_iterator PI = AnalysisPasses.find(ID);
     assert(PI != AnalysisPasses.end() &&
@@ -845,7 +845,7 @@
     return *PI->second;
   }
 
-  /// \brief Get an analysis result, running the pass if necessary.
+  /// Get an analysis result, running the pass if necessary.
   ResultConceptT &getResultImpl(AnalysisKey *ID, IRUnitT &IR,
                                 ExtraArgTs... ExtraArgs) {
     typename AnalysisResultMapT::iterator RI;
@@ -874,14 +874,14 @@
     return *RI->second->second;
   }
 
-  /// \brief Get a cached analysis result or return null.
+  /// Get a cached analysis result or return null.
   ResultConceptT *getCachedResultImpl(AnalysisKey *ID, IRUnitT &IR) const {
     typename AnalysisResultMapT::const_iterator RI =
         AnalysisResults.find({ID, &IR});
     return RI == AnalysisResults.end() ? nullptr : &*RI->second->second;
   }
 
-  /// \brief Invalidate a function pass result.
+  /// Invalidate a function pass result.
   void invalidateImpl(AnalysisKey *ID, IRUnitT &IR) {
     typename AnalysisResultMapT::iterator RI =
         AnalysisResults.find({ID, &IR});
@@ -895,38 +895,38 @@
     AnalysisResults.erase(RI);
   }
 
-  /// \brief Map type from module analysis pass ID to pass concept pointer.
+  /// Map type from module analysis pass ID to pass concept pointer.
   using AnalysisPassMapT =
       DenseMap<AnalysisKey *, std::unique_ptr<PassConceptT>>;
 
-  /// \brief Collection of module analysis passes, indexed by ID.
+  /// Collection of module analysis passes, indexed by ID.
   AnalysisPassMapT AnalysisPasses;
 
-  /// \brief Map from function to a list of function analysis results.
+  /// Map from function to a list of function analysis results.
   ///
   /// Provides linear time removal of all analysis results for a function and
   /// the ultimate storage for a particular cached analysis result.
   AnalysisResultListMapT AnalysisResultLists;
 
-  /// \brief Map from an analysis ID and function to a particular cached
+  /// Map from an analysis ID and function to a particular cached
   /// analysis result.
   AnalysisResultMapT AnalysisResults;
 
-  /// \brief Indicates whether we log to \c llvm::dbgs().
+  /// Indicates whether we log to \c llvm::dbgs().
   bool DebugLogging;
 };
 
 extern template class AnalysisManager<Module>;
 
-/// \brief Convenience typedef for the Module analysis manager.
+/// Convenience typedef for the Module analysis manager.
 using ModuleAnalysisManager = AnalysisManager<Module>;
 
 extern template class AnalysisManager<Function>;
 
-/// \brief Convenience typedef for the Function analysis manager.
+/// Convenience typedef for the Function analysis manager.
 using FunctionAnalysisManager = AnalysisManager<Function>;
 
-/// \brief An analysis over an "outer" IR unit that provides access to an
+/// An analysis over an "outer" IR unit that provides access to an
 /// analysis manager over an "inner" IR unit.  The inner unit must be contained
 /// in the outer unit.
 ///
@@ -977,10 +977,10 @@
       return *this;
     }
 
-    /// \brief Accessor for the analysis manager.
+    /// Accessor for the analysis manager.
     AnalysisManagerT &getManager() { return *InnerAM; }
 
-    /// \brief Handler for invalidation of the outer IR unit, \c IRUnitT.
+    /// Handler for invalidation of the outer IR unit, \c IRUnitT.
     ///
     /// If the proxy analysis itself is not preserved, we assume that the set of
     /// inner IR objects contained in IRUnit may have changed.  In this case,
@@ -1001,7 +1001,7 @@
   explicit InnerAnalysisManagerProxy(AnalysisManagerT &InnerAM)
       : InnerAM(&InnerAM) {}
 
-  /// \brief Run the analysis pass and create our proxy result object.
+  /// Run the analysis pass and create our proxy result object.
   ///
   /// This doesn't do any interesting work; it is primarily used to insert our
   /// proxy result object into the outer analysis cache so that we can proxy
@@ -1040,7 +1040,7 @@
 extern template class InnerAnalysisManagerProxy<FunctionAnalysisManager,
                                                 Module>;
 
-/// \brief An analysis over an "inner" IR unit that provides access to an
+/// An analysis over an "inner" IR unit that provides access to an
 /// analysis manager over a "outer" IR unit.  The inner unit must be contained
 /// in the outer unit.
 ///
@@ -1063,7 +1063,7 @@
     : public AnalysisInfoMixin<
           OuterAnalysisManagerProxy<AnalysisManagerT, IRUnitT, ExtraArgTs...>> {
 public:
-  /// \brief Result proxy object for \c OuterAnalysisManagerProxy.
+  /// Result proxy object for \c OuterAnalysisManagerProxy.
   class Result {
   public:
     explicit Result(const AnalysisManagerT &AM) : AM(&AM) {}
@@ -1130,7 +1130,7 @@
 
   OuterAnalysisManagerProxy(const AnalysisManagerT &AM) : AM(&AM) {}
 
-  /// \brief Run the analysis pass and create our proxy result object.
+  /// Run the analysis pass and create our proxy result object.
   /// Nothing to see here, it just forwards the \c AM reference into the
   /// result.
   Result run(IRUnitT &, AnalysisManager<IRUnitT, ExtraArgTs...> &,
@@ -1157,7 +1157,7 @@
 using ModuleAnalysisManagerFunctionProxy =
     OuterAnalysisManagerProxy<ModuleAnalysisManager, Function>;
 
-/// \brief Trivial adaptor that maps from a module to its functions.
+/// Trivial adaptor that maps from a module to its functions.
 ///
 /// Designed to allow composition of a FunctionPass(Manager) and
 /// a ModulePassManager, by running the FunctionPass(Manager) over every
@@ -1187,7 +1187,7 @@
   explicit ModuleToFunctionPassAdaptor(FunctionPassT Pass)
       : Pass(std::move(Pass)) {}
 
-  /// \brief Runs the function pass across every function in the module.
+  /// Runs the function pass across every function in the module.
   PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM) {
     FunctionAnalysisManager &FAM =
         AM.getResult<FunctionAnalysisManagerModuleProxy>(M).getManager();
@@ -1223,7 +1223,7 @@
   FunctionPassT Pass;
 };
 
-/// \brief A function to deduce a function pass type and wrap it in the
+/// A function to deduce a function pass type and wrap it in the
 /// templated adaptor.
 template <typename FunctionPassT>
 ModuleToFunctionPassAdaptor<FunctionPassT>
@@ -1231,7 +1231,7 @@
   return ModuleToFunctionPassAdaptor<FunctionPassT>(std::move(Pass));
 }
 
-/// \brief A utility pass template to force an analysis result to be available.
+/// A utility pass template to force an analysis result to be available.
 ///
 /// If there are extra arguments at the pass's run level there may also be
 /// extra arguments to the analysis manager's \c getResult routine. We can't
@@ -1246,7 +1246,7 @@
 struct RequireAnalysisPass
     : PassInfoMixin<RequireAnalysisPass<AnalysisT, IRUnitT, AnalysisManagerT,
                                         ExtraArgTs...>> {
-  /// \brief Run this pass over some unit of IR.
+  /// Run this pass over some unit of IR.
   ///
   /// This pass can be run over any unit of IR and use any analysis manager
   /// provided they satisfy the basic API requirements. When this pass is
@@ -1261,12 +1261,12 @@
   }
 };
 
-/// \brief A no-op pass template which simply forces a specific analysis result
+/// A no-op pass template which simply forces a specific analysis result
 /// to be invalidated.
 template <typename AnalysisT>
 struct InvalidateAnalysisPass
     : PassInfoMixin<InvalidateAnalysisPass<AnalysisT>> {
-  /// \brief Run this pass over some unit of IR.
+  /// Run this pass over some unit of IR.
   ///
   /// This pass can be run over any unit of IR and use any analysis manager,
   /// provided they satisfy the basic API requirements. When this pass is
@@ -1280,12 +1280,12 @@
   }
 };
 
-/// \brief A utility pass that does nothing, but preserves no analyses.
+/// A utility pass that does nothing, but preserves no analyses.
 ///
 /// Because this preserves no analyses, any analysis passes queried after this
 /// pass runs will recompute fresh results.
 struct InvalidateAllAnalysesPass : PassInfoMixin<InvalidateAllAnalysesPass> {
-  /// \brief Run this pass over some unit of IR.
+  /// Run this pass over some unit of IR.
   template <typename IRUnitT, typename AnalysisManagerT, typename... ExtraArgTs>
   PreservedAnalyses run(IRUnitT &, AnalysisManagerT &, ExtraArgTs &&...) {
     return PreservedAnalyses::none();
diff --git a/linux-x64/clang/include/llvm/IR/PassManagerInternal.h b/linux-x64/clang/include/llvm/IR/PassManagerInternal.h
index 9195d4d..16a3258 100644
--- a/linux-x64/clang/include/llvm/IR/PassManagerInternal.h
+++ b/linux-x64/clang/include/llvm/IR/PassManagerInternal.h
@@ -29,17 +29,17 @@
 template <typename IRUnitT, typename... ExtraArgTs> class AnalysisManager;
 class PreservedAnalyses;
 
-/// \brief Implementation details of the pass manager interfaces.
+/// Implementation details of the pass manager interfaces.
 namespace detail {
 
-/// \brief Template for the abstract base class used to dispatch
+/// Template for the abstract base class used to dispatch
 /// polymorphically over pass objects.
 template <typename IRUnitT, typename AnalysisManagerT, typename... ExtraArgTs>
 struct PassConcept {
   // Boiler plate necessary for the container of derived classes.
   virtual ~PassConcept() = default;
 
-  /// \brief The polymorphic API which runs the pass over a given IR entity.
+  /// The polymorphic API which runs the pass over a given IR entity.
   ///
   /// Note that actual pass object can omit the analysis manager argument if
   /// desired. Also that the analysis manager may be null if there is no
@@ -47,11 +47,11 @@
   virtual PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM,
                                 ExtraArgTs... ExtraArgs) = 0;
 
-  /// \brief Polymorphic method to access the name of a pass.
+  /// Polymorphic method to access the name of a pass.
   virtual StringRef name() = 0;
 };
 
-/// \brief A template wrapper used to implement the polymorphic API.
+/// A template wrapper used to implement the polymorphic API.
 ///
 /// Can be instantiated for any object which provides a \c run method accepting
 /// an \c IRUnitT& and an \c AnalysisManager<IRUnit>&. It requires the pass to
@@ -85,7 +85,7 @@
   PassT Pass;
 };
 
-/// \brief Abstract concept of an analysis result.
+/// Abstract concept of an analysis result.
 ///
 /// This concept is parameterized over the IR unit that this result pertains
 /// to.
@@ -93,7 +93,7 @@
 struct AnalysisResultConcept {
   virtual ~AnalysisResultConcept() = default;
 
-  /// \brief Method to try and mark a result as invalid.
+  /// Method to try and mark a result as invalid.
   ///
   /// When the outer analysis manager detects a change in some underlying
   /// unit of the IR, it will call this method on all of the results cached.
@@ -112,7 +112,7 @@
                           InvalidatorT &Inv) = 0;
 };
 
-/// \brief SFINAE metafunction for computing whether \c ResultT provides an
+/// SFINAE metafunction for computing whether \c ResultT provides an
 /// \c invalidate member function.
 template <typename IRUnitT, typename ResultT> class ResultHasInvalidateMethod {
   using EnabledType = char;
@@ -148,7 +148,7 @@
   enum { Value = sizeof(check<ResultT>(rank<2>())) == sizeof(EnabledType) };
 };
 
-/// \brief Wrapper to model the analysis result concept.
+/// Wrapper to model the analysis result concept.
 ///
 /// By default, this will implement the invalidate method with a trivial
 /// implementation so that the actual analysis result doesn't need to provide
@@ -160,7 +160,7 @@
               ResultHasInvalidateMethod<IRUnitT, ResultT>::Value>
 struct AnalysisResultModel;
 
-/// \brief Specialization of \c AnalysisResultModel which provides the default
+/// Specialization of \c AnalysisResultModel which provides the default
 /// invalidate functionality.
 template <typename IRUnitT, typename PassT, typename ResultT,
           typename PreservedAnalysesT, typename InvalidatorT>
@@ -184,7 +184,7 @@
     return *this;
   }
 
-  /// \brief The model bases invalidation solely on being in the preserved set.
+  /// The model bases invalidation solely on being in the preserved set.
   //
   // FIXME: We should actually use two different concepts for analysis results
   // rather than two different models, and avoid the indirect function call for
@@ -199,7 +199,7 @@
   ResultT Result;
 };
 
-/// \brief Specialization of \c AnalysisResultModel which delegates invalidate
+/// Specialization of \c AnalysisResultModel which delegates invalidate
 /// handling to \c ResultT.
 template <typename IRUnitT, typename PassT, typename ResultT,
           typename PreservedAnalysesT, typename InvalidatorT>
@@ -223,7 +223,7 @@
     return *this;
   }
 
-  /// \brief The model delegates to the \c ResultT method.
+  /// The model delegates to the \c ResultT method.
   bool invalidate(IRUnitT &IR, const PreservedAnalysesT &PA,
                   InvalidatorT &Inv) override {
     return Result.invalidate(IR, PA, Inv);
@@ -232,7 +232,7 @@
   ResultT Result;
 };
 
-/// \brief Abstract concept of an analysis pass.
+/// Abstract concept of an analysis pass.
 ///
 /// This concept is parameterized over the IR unit that it can run over and
 /// produce an analysis result.
@@ -241,7 +241,7 @@
 struct AnalysisPassConcept {
   virtual ~AnalysisPassConcept() = default;
 
-  /// \brief Method to run this analysis over a unit of IR.
+  /// Method to run this analysis over a unit of IR.
   /// \returns A unique_ptr to the analysis result object to be queried by
   /// users.
   virtual std::unique_ptr<
@@ -249,11 +249,11 @@
   run(IRUnitT &IR, AnalysisManager<IRUnitT, ExtraArgTs...> &AM,
       ExtraArgTs... ExtraArgs) = 0;
 
-  /// \brief Polymorphic method to access the name of a pass.
+  /// Polymorphic method to access the name of a pass.
   virtual StringRef name() = 0;
 };
 
-/// \brief Wrapper to model the analysis pass concept.
+/// Wrapper to model the analysis pass concept.
 ///
 /// Can wrap any type which implements a suitable \c run method. The method
 /// must accept an \c IRUnitT& and an \c AnalysisManager<IRUnitT>& as arguments
@@ -283,7 +283,7 @@
       AnalysisResultModel<IRUnitT, PassT, typename PassT::Result,
                           PreservedAnalysesT, InvalidatorT>;
 
-  /// \brief The model delegates to the \c PassT::run method.
+  /// The model delegates to the \c PassT::run method.
   ///
   /// The return is wrapped in an \c AnalysisResultModel.
   std::unique_ptr<
@@ -293,7 +293,7 @@
     return llvm::make_unique<ResultModelT>(Pass.run(IR, AM, ExtraArgs...));
   }
 
-  /// \brief The model delegates to a static \c PassT::name method.
+  /// The model delegates to a static \c PassT::name method.
   ///
   /// The returned string ref must point to constant immutable data!
   StringRef name() override { return PassT::name(); }
diff --git a/linux-x64/clang/include/llvm/IR/PatternMatch.h b/linux-x64/clang/include/llvm/IR/PatternMatch.h
index 304b84b..af0616c 100644
--- a/linux-x64/clang/include/llvm/IR/PatternMatch.h
+++ b/linux-x64/clang/include/llvm/IR/PatternMatch.h
@@ -132,18 +132,6 @@
   return match_combine_and<LTy, RTy>(L, R);
 }
 
-struct match_zero {
-  template <typename ITy> bool match(ITy *V) {
-    if (const auto *C = dyn_cast<Constant>(V))
-      return C->isNullValue();
-    return false;
-  }
-};
-
-/// Match an arbitrary zero/null constant. This includes
-/// zero_initializer for vectors and ConstantPointerNull for pointers.
-inline match_zero m_Zero() { return match_zero(); }
-
 struct apint_match {
   const APInt *&Res;
 
@@ -365,6 +353,27 @@
   return cst_pred_ty<is_one>();
 }
 
+struct is_zero_int {
+  bool isValue(const APInt &C) { return C.isNullValue(); }
+};
+/// Match an integer 0 or a vector with all elements equal to 0.
+/// For vectors, this includes constants with undefined elements.
+inline cst_pred_ty<is_zero_int> m_ZeroInt() {
+  return cst_pred_ty<is_zero_int>();
+}
+
+struct is_zero {
+  template <typename ITy> bool match(ITy *V) {
+    auto *C = dyn_cast<Constant>(V);
+    return C && (C->isNullValue() || cst_pred_ty<is_zero_int>().match(C));
+  }
+};
+/// Match any null constant or a vector with all elements equal to 0.
+/// For vectors, this includes constants with undefined elements.
+inline is_zero m_Zero() {
+  return is_zero();
+}
+
 struct is_power2 {
   bool isValue(const APInt &C) { return C.isPowerOf2(); }
 };
@@ -398,6 +407,15 @@
   return cst_pred_ty<is_sign_mask>();
 }
 
+struct is_lowbit_mask {
+  bool isValue(const APInt &C) { return C.isMask(); }
+};
+/// Match an integer or vector with only the low bit(s) set.
+/// For vectors, this includes constants with undefined elements.
+inline cst_pred_ty<is_lowbit_mask> m_LowBitMask() {
+  return cst_pred_ty<is_lowbit_mask>();
+}
+
 struct is_nan {
   bool isValue(const APFloat &C) { return C.isNaN(); }
 };
@@ -480,6 +498,22 @@
 /// Match if we have a specific specified value.
 inline specificval_ty m_Specific(const Value *V) { return V; }
 
+/// Stores a reference to the Value *, not the Value * itself,
+/// thus can be used in commutative matchers.
+template <typename Class> struct deferredval_ty {
+  Class *const &Val;
+
+  deferredval_ty(Class *const &V) : Val(V) {}
+
+  template <typename ITy> bool match(ITy *const V) { return V == Val; }
+};
+
+/// A commutative-friendly version of m_Specific().
+inline deferredval_ty<Value> m_Deferred(Value *const &V) { return V; }
+inline deferredval_ty<const Value> m_Deferred(const Value *const &V) {
+  return V;
+}
+
 /// Match a specified floating point value or vector of all elements of
 /// that value.
 struct specific_fpval {
@@ -553,13 +587,15 @@
   LHS_t L;
   RHS_t R;
 
+  // The evaluation order is always stable, regardless of Commutability.
+  // The LHS is always matched first.
   AnyBinaryOp_match(const LHS_t &LHS, const RHS_t &RHS) : L(LHS), R(RHS) {}
 
   template <typename OpTy> bool match(OpTy *V) {
     if (auto *I = dyn_cast<BinaryOperator>(V))
       return (L.match(I->getOperand(0)) && R.match(I->getOperand(1))) ||
-             (Commutable && R.match(I->getOperand(0)) &&
-              L.match(I->getOperand(1)));
+             (Commutable && L.match(I->getOperand(1)) &&
+              R.match(I->getOperand(0)));
     return false;
   }
 };
@@ -579,20 +615,22 @@
   LHS_t L;
   RHS_t R;
 
+  // The evaluation order is always stable, regardless of Commutability.
+  // The LHS is always matched first.
   BinaryOp_match(const LHS_t &LHS, const RHS_t &RHS) : L(LHS), R(RHS) {}
 
   template <typename OpTy> bool match(OpTy *V) {
     if (V->getValueID() == Value::InstructionVal + Opcode) {
       auto *I = cast<BinaryOperator>(V);
       return (L.match(I->getOperand(0)) && R.match(I->getOperand(1))) ||
-             (Commutable && R.match(I->getOperand(0)) &&
-              L.match(I->getOperand(1)));
+             (Commutable && L.match(I->getOperand(1)) &&
+              R.match(I->getOperand(0)));
     }
     if (auto *CE = dyn_cast<ConstantExpr>(V))
       return CE->getOpcode() == Opcode &&
              ((L.match(CE->getOperand(0)) && R.match(CE->getOperand(1))) ||
-              (Commutable && R.match(CE->getOperand(0)) &&
-               L.match(CE->getOperand(1))));
+              (Commutable && L.match(CE->getOperand(1)) &&
+               R.match(CE->getOperand(0))));
     return false;
   }
 };
@@ -621,6 +659,13 @@
   return BinaryOp_match<LHS, RHS, Instruction::FSub>(L, R);
 }
 
+/// Match 'fneg X' as 'fsub -0.0, X'.
+template <typename RHS>
+inline BinaryOp_match<cstfp_pred_ty<is_neg_zero_fp>, RHS, Instruction::FSub>
+m_FNeg(const RHS &X) {
+  return m_FSub(m_NegZeroFP(), X);
+}
+
 template <typename LHS, typename RHS>
 inline BinaryOp_match<LHS, RHS, Instruction::Mul> m_Mul(const LHS &L,
                                                         const RHS &R) {
@@ -910,14 +955,16 @@
   LHS_t L;
   RHS_t R;
 
+  // The evaluation order is always stable, regardless of Commutability.
+  // The LHS is always matched first.
   CmpClass_match(PredicateTy &Pred, const LHS_t &LHS, const RHS_t &RHS)
       : Predicate(Pred), L(LHS), R(RHS) {}
 
   template <typename OpTy> bool match(OpTy *V) {
     if (auto *I = dyn_cast<Class>(V))
       if ((L.match(I->getOperand(0)) && R.match(I->getOperand(1))) ||
-          (Commutable && R.match(I->getOperand(0)) &&
-           L.match(I->getOperand(1)))) {
+          (Commutable && L.match(I->getOperand(1)) &&
+           R.match(I->getOperand(0)))) {
         Predicate = I->getPredicate();
         return true;
       }
@@ -1155,55 +1202,30 @@
 }
 
 //===----------------------------------------------------------------------===//
-// Matchers for unary operators
+// Matcher for StoreInst classes
 //
 
-template <typename LHS_t> struct neg_match {
-  LHS_t L;
+template <typename ValueOp_t, typename PointerOp_t> struct StoreClass_match {
+  ValueOp_t ValueOp;
+  PointerOp_t PointerOp;
 
-  neg_match(const LHS_t &LHS) : L(LHS) {}
+  StoreClass_match(const ValueOp_t &ValueOpMatch,
+                   const PointerOp_t &PointerOpMatch) :
+    ValueOp(ValueOpMatch), PointerOp(PointerOpMatch)  {}
 
   template <typename OpTy> bool match(OpTy *V) {
-    if (auto *O = dyn_cast<Operator>(V))
-      if (O->getOpcode() == Instruction::Sub)
-        return matchIfNeg(O->getOperand(0), O->getOperand(1));
-    return false;
-  }
-
-private:
-  bool matchIfNeg(Value *LHS, Value *RHS) {
-    return ((isa<ConstantInt>(LHS) && cast<ConstantInt>(LHS)->isZero()) ||
-            isa<ConstantAggregateZero>(LHS)) &&
-           L.match(RHS);
-  }
-};
-
-/// Match an integer negate.
-template <typename LHS> inline neg_match<LHS> m_Neg(const LHS &L) { return L; }
-
-template <typename LHS_t> struct fneg_match {
-  LHS_t L;
-
-  fneg_match(const LHS_t &LHS) : L(LHS) {}
-
-  template <typename OpTy> bool match(OpTy *V) {
-    if (auto *O = dyn_cast<Operator>(V))
-      if (O->getOpcode() == Instruction::FSub)
-        return matchIfFNeg(O->getOperand(0), O->getOperand(1));
-    return false;
-  }
-
-private:
-  bool matchIfFNeg(Value *LHS, Value *RHS) {
-    if (const auto *C = dyn_cast<Constant>(LHS))
-      return C->isNegativeZeroValue() && L.match(RHS);
+    if (auto *LI = dyn_cast<StoreInst>(V))
+      return ValueOp.match(LI->getValueOperand()) &&
+             PointerOp.match(LI->getPointerOperand());
     return false;
   }
 };
 
-/// Match a floating point negate.
-template <typename LHS> inline fneg_match<LHS> m_FNeg(const LHS &L) {
-  return L;
+/// Matches StoreInst.
+template <typename ValueOpTy, typename PointerOpTy>
+inline StoreClass_match<ValueOpTy, PointerOpTy>
+m_Store(const ValueOpTy &ValueOp, const PointerOpTy &PointerOp) {
+  return StoreClass_match<ValueOpTy, PointerOpTy>(ValueOp, PointerOp);
 }
 
 //===----------------------------------------------------------------------===//
@@ -1260,6 +1282,8 @@
   LHS_t L;
   RHS_t R;
 
+  // The evaluation order is always stable, regardless of Commutability.
+  // The LHS is always matched first.
   MaxMin_match(const LHS_t &LHS, const RHS_t &RHS) : L(LHS), R(RHS) {}
 
   template <typename OpTy> bool match(OpTy *V) {
@@ -1286,7 +1310,7 @@
       return false;
     // It does!  Bind the operands.
     return (L.match(LHS) && R.match(RHS)) ||
-           (Commutable && R.match(LHS) && L.match(RHS));
+           (Commutable && L.match(RHS) && R.match(LHS));
   }
 };
 
@@ -1578,6 +1602,16 @@
   return m_Intrinsic<Intrinsic::bswap>(Op0);
 }
 
+template <typename Opnd0>
+inline typename m_Intrinsic_Ty<Opnd0>::Ty m_FAbs(const Opnd0 &Op0) {
+  return m_Intrinsic<Intrinsic::fabs>(Op0);
+}
+
+template <typename Opnd0>
+inline typename m_Intrinsic_Ty<Opnd0>::Ty m_FCanonicalize(const Opnd0 &Op0) {
+  return m_Intrinsic<Intrinsic::canonicalize>(Op0);
+}
+
 template <typename Opnd0, typename Opnd1>
 inline typename m_Intrinsic_Ty<Opnd0, Opnd1>::Ty m_FMin(const Opnd0 &Op0,
                                                         const Opnd1 &Op1) {
@@ -1590,46 +1624,6 @@
   return m_Intrinsic<Intrinsic::maxnum>(Op0, Op1);
 }
 
-template <typename Opnd_t> struct Signum_match {
-  Opnd_t Val;
-  Signum_match(const Opnd_t &V) : Val(V) {}
-
-  template <typename OpTy> bool match(OpTy *V) {
-    unsigned TypeSize = V->getType()->getScalarSizeInBits();
-    if (TypeSize == 0)
-      return false;
-
-    unsigned ShiftWidth = TypeSize - 1;
-    Value *OpL = nullptr, *OpR = nullptr;
-
-    // This is the representation of signum we match:
-    //
-    //  signum(x) == (x >> 63) | (-x >>u 63)
-    //
-    // An i1 value is its own signum, so it's correct to match
-    //
-    //  signum(x) == (x >> 0)  | (-x >>u 0)
-    //
-    // for i1 values.
-
-    auto LHS = m_AShr(m_Value(OpL), m_SpecificInt(ShiftWidth));
-    auto RHS = m_LShr(m_Neg(m_Value(OpR)), m_SpecificInt(ShiftWidth));
-    auto Signum = m_Or(LHS, RHS);
-
-    return Signum.match(V) && OpL == OpR && Val.match(OpL);
-  }
-};
-
-/// Matches a signum pattern.
-///
-/// signum(x) =
-///      x >  0  ->  1
-///      x == 0  ->  0
-///      x <  0  -> -1
-template <typename Val_t> inline Signum_match<Val_t> m_Signum(const Val_t &V) {
-  return Signum_match<Val_t>(V);
-}
-
 //===----------------------------------------------------------------------===//
 // Matchers for two-operands operators with the operators in either order
 //
@@ -1684,6 +1678,13 @@
   return BinaryOp_match<LHS, RHS, Instruction::Xor, true>(L, R);
 }
 
+/// Matches a 'Neg' as 'sub 0, V'.
+template <typename ValTy>
+inline BinaryOp_match<cst_pred_ty<is_zero_int>, ValTy, Instruction::Sub>
+m_Neg(const ValTy &V) {
+  return m_Sub(m_ZeroInt(), V);
+}
+
 /// Matches a 'Not' as 'xor V, -1' or 'xor -1, V'.
 template <typename ValTy>
 inline BinaryOp_match<ValTy, cst_pred_ty<is_all_ones>, Instruction::Xor, true>
@@ -1730,6 +1731,46 @@
   return BinaryOp_match<LHS, RHS, Instruction::FMul, true>(L, R);
 }
 
+template <typename Opnd_t> struct Signum_match {
+  Opnd_t Val;
+  Signum_match(const Opnd_t &V) : Val(V) {}
+
+  template <typename OpTy> bool match(OpTy *V) {
+    unsigned TypeSize = V->getType()->getScalarSizeInBits();
+    if (TypeSize == 0)
+      return false;
+
+    unsigned ShiftWidth = TypeSize - 1;
+    Value *OpL = nullptr, *OpR = nullptr;
+
+    // This is the representation of signum we match:
+    //
+    //  signum(x) == (x >> 63) | (-x >>u 63)
+    //
+    // An i1 value is its own signum, so it's correct to match
+    //
+    //  signum(x) == (x >> 0)  | (-x >>u 0)
+    //
+    // for i1 values.
+
+    auto LHS = m_AShr(m_Value(OpL), m_SpecificInt(ShiftWidth));
+    auto RHS = m_LShr(m_Neg(m_Value(OpR)), m_SpecificInt(ShiftWidth));
+    auto Signum = m_Or(LHS, RHS);
+
+    return Signum.match(V) && OpL == OpR && Val.match(OpL);
+  }
+};
+
+/// Matches a signum pattern.
+///
+/// signum(x) =
+///      x >  0  ->  1
+///      x == 0  ->  0
+///      x <  0  -> -1
+template <typename Val_t> inline Signum_match<Val_t> m_Signum(const Val_t &V) {
+  return Signum_match<Val_t>(V);
+}
+
 } // end namespace PatternMatch
 } // end namespace llvm
 
diff --git a/linux-x64/clang/include/llvm/IR/ProfileSummary.h b/linux-x64/clang/include/llvm/IR/ProfileSummary.h
index d85ce8c..e386637 100644
--- a/linux-x64/clang/include/llvm/IR/ProfileSummary.h
+++ b/linux-x64/clang/include/llvm/IR/ProfileSummary.h
@@ -51,7 +51,7 @@
   SummaryEntryVector DetailedSummary;
   uint64_t TotalCount, MaxCount, MaxInternalCount, MaxFunctionCount;
   uint32_t NumCounts, NumFunctions;
-  /// \brief Return detailed summary as metadata.
+  /// Return detailed summary as metadata.
   Metadata *getDetailedSummaryMD(LLVMContext &Context);
 
 public:
@@ -67,9 +67,9 @@
         NumCounts(NumCounts), NumFunctions(NumFunctions) {}
 
   Kind getKind() const { return PSK; }
-  /// \brief Return summary information as metadata.
+  /// Return summary information as metadata.
   Metadata *getMD(LLVMContext &Context);
-  /// \brief Construct profile summary from metdata.
+  /// Construct profile summary from metdata.
   static ProfileSummary *getFromMD(Metadata *MD);
   SummaryEntryVector &getDetailedSummary() { return DetailedSummary; }
   uint32_t getNumFunctions() { return NumFunctions; }
diff --git a/linux-x64/clang/include/llvm/CodeGen/RuntimeLibcalls.def b/linux-x64/clang/include/llvm/IR/RuntimeLibcalls.def
similarity index 100%
rename from linux-x64/clang/include/llvm/CodeGen/RuntimeLibcalls.def
rename to linux-x64/clang/include/llvm/IR/RuntimeLibcalls.def
diff --git a/linux-x64/clang/include/llvm/IR/Statepoint.h b/linux-x64/clang/include/llvm/IR/Statepoint.h
index a87f67c..8908e1b 100644
--- a/linux-x64/clang/include/llvm/IR/Statepoint.h
+++ b/linux-x64/clang/include/llvm/IR/Statepoint.h
@@ -196,7 +196,7 @@
     return make_range(arg_begin(), arg_end());
   }
 
-  /// \brief Return true if the call or the callee has the given attribute.
+  /// Return true if the call or the callee has the given attribute.
   bool paramHasAttr(unsigned i, Attribute::AttrKind A) const {
     Function *F = getCalledFunction();
     return getCallSite().paramHasAttr(i + CallArgsBeginPos, A) ||
@@ -325,7 +325,7 @@
   explicit Statepoint(CallSite CS) : Base(CS) {}
 };
 
-/// Common base class for representing values projected from a statepoint.  
+/// Common base class for representing values projected from a statepoint.
 /// Currently, the only projections available are gc.result and gc.relocate.
 class GCProjectionInst : public IntrinsicInst {
 public:
diff --git a/linux-x64/clang/include/llvm/IR/TrackingMDRef.h b/linux-x64/clang/include/llvm/IR/TrackingMDRef.h
index bdec904..084efad 100644
--- a/linux-x64/clang/include/llvm/IR/TrackingMDRef.h
+++ b/linux-x64/clang/include/llvm/IR/TrackingMDRef.h
@@ -20,7 +20,7 @@
 
 namespace llvm {
 
-/// \brief Tracking metadata reference.
+/// Tracking metadata reference.
 ///
 /// This class behaves like \a TrackingVH, but for metadata.
 class TrackingMDRef {
@@ -70,7 +70,7 @@
     track();
   }
 
-  /// \brief Check whether this has a trivial destructor.
+  /// Check whether this has a trivial destructor.
   ///
   /// If \c MD isn't replaceable, the destructor will be a no-op.
   bool hasTrivialDestructor() const {
@@ -100,7 +100,7 @@
   }
 };
 
-/// \brief Typed tracking ref.
+/// Typed tracking ref.
 ///
 /// Track refererences of a particular type.  It's useful to use this for \a
 /// MDNode and \a ValueAsMetadata.
@@ -135,7 +135,7 @@
   void reset() { Ref.reset(); }
   void reset(T *MD) { Ref.reset(static_cast<Metadata *>(MD)); }
 
-  /// \brief Check whether this has a trivial destructor.
+  /// Check whether this has a trivial destructor.
   bool hasTrivialDestructor() const { return Ref.hasTrivialDestructor(); }
 };
 
diff --git a/linux-x64/clang/include/llvm/IR/Type.h b/linux-x64/clang/include/llvm/IR/Type.h
index 39a7976..9c1f99d 100644
--- a/linux-x64/clang/include/llvm/IR/Type.h
+++ b/linux-x64/clang/include/llvm/IR/Type.h
@@ -208,6 +208,9 @@
     return getScalarType()->isIntegerTy(BitWidth);
   }
 
+  /// Return true if this is an integer type or a pointer type.
+  bool isIntOrPtrTy() const { return isIntegerTy() || isPointerTy(); }
+
   /// True if this is an instance of FunctionType.
   bool isFunctionTy() const { return getTypeID() == FunctionTyID; }
 
@@ -229,7 +232,7 @@
   /// Return true if this type could be converted with a lossless BitCast to
   /// type 'Ty'. For example, i8* to i32*. BitCasts are valid for types of the
   /// same size only where no re-interpretation of the bits is done.
-  /// @brief Determine if this type could be losslessly bitcast to Ty
+  /// Determine if this type could be losslessly bitcast to Ty
   bool canLosslesslyBitCastTo(Type *Ty) const;
 
   /// Return true if this type is empty, that is, it has no elements or all of
diff --git a/linux-x64/clang/include/llvm/IR/Use.h b/linux-x64/clang/include/llvm/IR/Use.h
index 0ac1393..25c44e0 100644
--- a/linux-x64/clang/include/llvm/IR/Use.h
+++ b/linux-x64/clang/include/llvm/IR/Use.h
@@ -36,7 +36,7 @@
 class User;
 class Value;
 
-/// \brief A Use represents the edge between a Value definition and its users.
+/// A Use represents the edge between a Value definition and its users.
 ///
 /// This is notionally a two-dimensional linked list. It supports traversing
 /// all of the uses for a particular value definition. It also supports jumping
@@ -57,7 +57,7 @@
 public:
   Use(const Use &U) = delete;
 
-  /// \brief Provide a fast substitute to std::swap<Use>
+  /// Provide a fast substitute to std::swap<Use>
   /// that also works with less standard-compliant compilers
   void swap(Use &RHS);
 
@@ -107,7 +107,7 @@
   operator Value *() const { return Val; }
   Value *get() const { return Val; }
 
-  /// \brief Returns the User that contains this Use.
+  /// Returns the User that contains this Use.
   ///
   /// For an instruction operand, for example, this will return the
   /// instruction.
@@ -123,16 +123,16 @@
 
   Use *getNext() const { return Next; }
 
-  /// \brief Return the operand # of this use in its User.
+  /// Return the operand # of this use in its User.
   unsigned getOperandNo() const;
 
-  /// \brief Initializes the waymarking tags on an array of Uses.
+  /// Initializes the waymarking tags on an array of Uses.
   ///
   /// This sets up the array of Uses such that getUser() can find the User from
   /// any of those Uses.
   static Use *initTags(Use *Start, Use *Stop);
 
-  /// \brief Destroys Use operands when the number of operands of
+  /// Destroys Use operands when the number of operands of
   /// a User changes.
   static void zap(Use *Start, const Use *Stop, bool del = false);
 
@@ -161,7 +161,7 @@
   }
 };
 
-/// \brief Allow clients to treat uses just like values when using
+/// Allow clients to treat uses just like values when using
 /// casting operators.
 template <> struct simplify_type<Use> {
   using SimpleType = Value *;
diff --git a/linux-x64/clang/include/llvm/IR/UseListOrder.h b/linux-x64/clang/include/llvm/IR/UseListOrder.h
index a8b394f..b6bb0f1 100644
--- a/linux-x64/clang/include/llvm/IR/UseListOrder.h
+++ b/linux-x64/clang/include/llvm/IR/UseListOrder.h
@@ -23,7 +23,7 @@
 class Function;
 class Value;
 
-/// \brief Structure to hold a use-list order.
+/// Structure to hold a use-list order.
 struct UseListOrder {
   const Value *V = nullptr;
   const Function *F = nullptr;
diff --git a/linux-x64/clang/include/llvm/IR/User.h b/linux-x64/clang/include/llvm/IR/User.h
index 9d30be0..aea3146 100644
--- a/linux-x64/clang/include/llvm/IR/User.h
+++ b/linux-x64/clang/include/llvm/IR/User.h
@@ -36,7 +36,7 @@
 template <typename T> class ArrayRef;
 template <typename T> class MutableArrayRef;
 
-/// \brief Compile-time customization of User operands.
+/// Compile-time customization of User operands.
 ///
 /// Customizes operand-related allocators and accessors.
 template <class>
@@ -81,13 +81,13 @@
            "Error in initializing hung off uses for User");
   }
 
-  /// \brief Allocate the array of Uses, followed by a pointer
+  /// Allocate the array of Uses, followed by a pointer
   /// (with bottom bit set) to the User.
   /// \param IsPhi identifies callers which are phi nodes and which need
   /// N BasicBlock* allocated along with N
   void allocHungoffUses(unsigned N, bool IsPhi = false);
 
-  /// \brief Grow the number of hung off uses.  Note that allocHungoffUses
+  /// Grow the number of hung off uses.  Note that allocHungoffUses
   /// should be called if there are no uses.
   void growHungoffUses(unsigned N, bool IsPhi = false);
 
@@ -97,26 +97,26 @@
 public:
   User(const User &) = delete;
 
-  /// \brief Free memory allocated for User and Use objects.
+  /// Free memory allocated for User and Use objects.
   void operator delete(void *Usr);
-  /// \brief Placement delete - required by std, called if the ctor throws.
+  /// Placement delete - required by std, called if the ctor throws.
   void operator delete(void *Usr, unsigned) {
-    // Note: If a subclass manipulates the information which is required to calculate the 
-    // Usr memory pointer, e.g. NumUserOperands, the operator delete of that subclass has 
+    // Note: If a subclass manipulates the information which is required to calculate the
+    // Usr memory pointer, e.g. NumUserOperands, the operator delete of that subclass has
     // to restore the changed information to the original value, since the dtor of that class
-    // is not called if the ctor fails.  
+    // is not called if the ctor fails.
     User::operator delete(Usr);
 
 #ifndef LLVM_ENABLE_EXCEPTIONS
     llvm_unreachable("Constructor throws?");
 #endif
   }
-  /// \brief Placement delete - required by std, called if the ctor throws.
+  /// Placement delete - required by std, called if the ctor throws.
   void operator delete(void *Usr, unsigned, bool) {
-    // Note: If a subclass manipulates the information which is required to calculate the 
-    // Usr memory pointer, e.g. NumUserOperands, the operator delete of that subclass has 
+    // Note: If a subclass manipulates the information which is required to calculate the
+    // Usr memory pointer, e.g. NumUserOperands, the operator delete of that subclass has
     // to restore the changed information to the original value, since the dtor of that class
-    // is not called if the ctor fails.  
+    // is not called if the ctor fails.
     User::operator delete(Usr);
 
 #ifndef LLVM_ENABLE_EXCEPTIONS
@@ -210,7 +210,7 @@
     NumUserOperands = NumOps;
   }
 
-  /// \brief Subclasses with hung off uses need to manage the operand count
+  /// Subclasses with hung off uses need to manage the operand count
   /// themselves.  In these instances, the operand count isn't used to find the
   /// OperandList, so there's no issue in having the operand count change.
   void setNumHungOffUseOperands(unsigned NumOps) {
@@ -242,7 +242,7 @@
     return const_op_range(op_begin(), op_end());
   }
 
-  /// \brief Iterator for directly iterating over the operand Values.
+  /// Iterator for directly iterating over the operand Values.
   struct value_op_iterator
       : iterator_adaptor_base<value_op_iterator, op_iterator,
                               std::random_access_iterator_tag, Value *,
@@ -284,7 +284,7 @@
     return make_range(value_op_begin(), value_op_end());
   }
 
-  /// \brief Drop all references to operands.
+  /// Drop all references to operands.
   ///
   /// This function is in charge of "letting go" of all objects that this User
   /// refers to.  This allows one to 'delete' a whole class at a time, even
@@ -297,7 +297,7 @@
       U.set(nullptr);
   }
 
-  /// \brief Replace uses of one Value with another.
+  /// Replace uses of one Value with another.
   ///
   /// Replaces all references to the "From" definition with references to the
   /// "To" definition.
diff --git a/linux-x64/clang/include/llvm/IR/Value.h b/linux-x64/clang/include/llvm/IR/Value.h
index d848fe9..4f3a45c 100644
--- a/linux-x64/clang/include/llvm/IR/Value.h
+++ b/linux-x64/clang/include/llvm/IR/Value.h
@@ -57,7 +57,7 @@
 //                                 Value Class
 //===----------------------------------------------------------------------===//
 
-/// \brief LLVM Value Representation
+/// LLVM Value Representation
 ///
 /// This is a very important LLVM class. It is the base class of all values
 /// computed by a program that may be used as operands to other values. Value is
@@ -83,7 +83,7 @@
   unsigned char HasValueHandle : 1; // Has a ValueHandle pointing to this?
 
 protected:
-  /// \brief Hold subclass data that can be dropped.
+  /// Hold subclass data that can be dropped.
   ///
   /// This member is similar to SubclassData, however it is for holding
   /// information which may be used to aid optimization, but which may be
@@ -91,7 +91,7 @@
   unsigned char SubclassOptionalData : 7;
 
 private:
-  /// \brief Hold arbitrary subclass data.
+  /// Hold arbitrary subclass data.
   ///
   /// This member is defined by this class, but is not used for anything.
   /// Subclasses can use it to hold whatever state they find useful.  This
@@ -99,7 +99,7 @@
   unsigned short SubclassData;
 
 protected:
-  /// \brief The number of operands in the subclass.
+  /// The number of operands in the subclass.
   ///
   /// This member is defined by this class, but not used for anything.
   /// Subclasses can use it to store their number of operands, if they have
@@ -173,7 +173,7 @@
     bool operator==(const user_iterator_impl &x) const { return UI == x.UI; }
     bool operator!=(const user_iterator_impl &x) const { return !operator==(x); }
 
-    /// \brief Returns true if this iterator is equal to user_end() on the value.
+    /// Returns true if this iterator is equal to user_end() on the value.
     bool atEnd() const { return *this == user_iterator_impl(); }
 
     user_iterator_impl &operator++() { // Preincrement
@@ -218,17 +218,17 @@
   /// Delete a pointer to a generic Value.
   void deleteValue();
 
-  /// \brief Support for debugging, callable in GDB: V->dump()
+  /// Support for debugging, callable in GDB: V->dump()
   void dump() const;
 
-  /// \brief Implement operator<< on Value.
+  /// Implement operator<< on Value.
   /// @{
   void print(raw_ostream &O, bool IsForDebug = false) const;
   void print(raw_ostream &O, ModuleSlotTracker &MST,
              bool IsForDebug = false) const;
   /// @}
 
-  /// \brief Print the name of this Value out to the specified raw_ostream.
+  /// Print the name of this Value out to the specified raw_ostream.
   ///
   /// This is useful when you just want to print 'int %reg126', not the
   /// instruction that generated it. If you specify a Module for context, then
@@ -241,52 +241,53 @@
                       ModuleSlotTracker &MST) const;
   /// @}
 
-  /// \brief All values are typed, get the type of this value.
+  /// All values are typed, get the type of this value.
   Type *getType() const { return VTy; }
 
-  /// \brief All values hold a context through their type.
+  /// All values hold a context through their type.
   LLVMContext &getContext() const;
 
-  // \brief All values can potentially be named.
+  // All values can potentially be named.
   bool hasName() const { return HasName; }
   ValueName *getValueName() const;
   void setValueName(ValueName *VN);
 
 private:
   void destroyValueName();
-  void doRAUW(Value *New, bool NoMetadata);
+  enum class ReplaceMetadataUses { No, Yes };
+  void doRAUW(Value *New, ReplaceMetadataUses);
   void setNameImpl(const Twine &Name);
 
 public:
-  /// \brief Return a constant reference to the value's name.
+  /// Return a constant reference to the value's name.
   ///
   /// This guaranteed to return the same reference as long as the value is not
   /// modified.  If the value has a name, this does a hashtable lookup, so it's
   /// not free.
   StringRef getName() const;
 
-  /// \brief Change the name of the value.
+  /// Change the name of the value.
   ///
   /// Choose a new unique name if the provided name is taken.
   ///
   /// \param Name The new name; or "" if the value's name should be removed.
   void setName(const Twine &Name);
 
-  /// \brief Transfer the name from V to this value.
+  /// Transfer the name from V to this value.
   ///
   /// After taking V's name, sets V's name to empty.
   ///
   /// \note It is an error to call V->takeName(V).
   void takeName(Value *V);
 
-  /// \brief Change all uses of this to point to a new Value.
+  /// Change all uses of this to point to a new Value.
   ///
   /// Go through the uses list for this definition and make each use point to
   /// "V" instead of "this".  After this completes, 'this's use list is
   /// guaranteed to be empty.
   void replaceAllUsesWith(Value *V);
 
-  /// \brief Change non-metadata uses of this to point to a new Value.
+  /// Change non-metadata uses of this to point to a new Value.
   ///
   /// Go through the uses list for this definition and make each use point to
   /// "V" instead of "this". This function skips metadata entries in the list.
@@ -299,12 +300,6 @@
   /// values or constant users.
   void replaceUsesOutsideBlock(Value *V, BasicBlock *BB);
 
-  /// replaceUsesExceptBlockAddr - Go through the uses list for this definition
-  /// and make each use point to "V" instead of "this" when the use is outside
-  /// the block. 'This's use list is expected to have at least one element.
-  /// Unlike replaceAllUsesWith this function skips blockaddr uses.
-  void replaceUsesExceptBlockAddr(Value *New);
-
   //----------------------------------------------------------------------
   // Methods for handling the chain of uses of this Value.
   //
@@ -411,7 +406,7 @@
     return materialized_users();
   }
 
-  /// \brief Return true if there is exactly one user of this value.
+  /// Return true if there is exactly one user of this value.
   ///
   /// This is specialized because it is a common request and does not require
   /// traversing the whole use list.
@@ -421,27 +416,27 @@
     return ++I == E;
   }
 
-  /// \brief Return true if this Value has exactly N users.
+  /// Return true if this Value has exactly N users.
   bool hasNUses(unsigned N) const;
 
-  /// \brief Return true if this value has N users or more.
+  /// Return true if this value has N users or more.
   ///
   /// This is logically equivalent to getNumUses() >= N.
   bool hasNUsesOrMore(unsigned N) const;
 
-  /// \brief Check if this value is used in the specified basic block.
+  /// Check if this value is used in the specified basic block.
   bool isUsedInBasicBlock(const BasicBlock *BB) const;
 
-  /// \brief This method computes the number of uses of this Value.
+  /// This method computes the number of uses of this Value.
   ///
   /// This is a linear time operation.  Use hasOneUse, hasNUses, or
   /// hasNUsesOrMore to check for specific values.
   unsigned getNumUses() const;
 
-  /// \brief This method should only be used by the Use class.
+  /// This method should only be used by the Use class.
   void addUse(Use &U) { U.addToList(&UseList); }
 
-  /// \brief Concrete subclass of this.
+  /// Concrete subclass of this.
   ///
   /// An enumeration for keeping track of the concrete subclass of Value that
   /// is actually instantiated. Values of this enumeration are kept in the
@@ -456,7 +451,7 @@
 #include "llvm/IR/Value.def"
   };
 
-  /// \brief Return an ID for the concrete type of this object.
+  /// Return an ID for the concrete type of this object.
   ///
   /// This is used to implement the classof checks.  This should not be used
   /// for any other purpose, as the values may change as LLVM evolves.  Also,
@@ -470,36 +465,36 @@
     return SubclassID;
   }
 
-  /// \brief Return the raw optional flags value contained in this value.
+  /// Return the raw optional flags value contained in this value.
   ///
   /// This should only be used when testing two Values for equivalence.
   unsigned getRawSubclassOptionalData() const {
     return SubclassOptionalData;
   }
 
-  /// \brief Clear the optional flags contained in this value.
+  /// Clear the optional flags contained in this value.
   void clearSubclassOptionalData() {
     SubclassOptionalData = 0;
   }
 
-  /// \brief Check the optional flags for equality.
+  /// Check the optional flags for equality.
   bool hasSameSubclassOptionalData(const Value *V) const {
     return SubclassOptionalData == V->SubclassOptionalData;
   }
 
-  /// \brief Return true if there is a value handle associated with this value.
+  /// Return true if there is a value handle associated with this value.
   bool hasValueHandle() const { return HasValueHandle; }
 
-  /// \brief Return true if there is metadata referencing this value.
+  /// Return true if there is metadata referencing this value.
   bool isUsedByMetadata() const { return IsUsedByMD; }
 
-  /// \brief Return true if this value is a swifterror value.
+  /// Return true if this value is a swifterror value.
   ///
   /// swifterror values can be either a function argument or an alloca with a
   /// swifterror attribute.
   bool isSwiftError() const;
 
-  /// \brief Strip off pointer casts, all-zero GEPs, and aliases.
+  /// Strip off pointer casts, all-zero GEPs, and aliases.
   ///
   /// Returns the original uncasted value.  If this is called on a non-pointer
   /// value, it returns 'this'.
@@ -509,18 +504,19 @@
                          static_cast<const Value *>(this)->stripPointerCasts());
   }
 
-  /// \brief Strip off pointer casts, all-zero GEPs, aliases and barriers.
+  /// Strip off pointer casts, all-zero GEPs, aliases and invariant group
+  /// info.
   ///
   /// Returns the original uncasted value.  If this is called on a non-pointer
   /// value, it returns 'this'. This function should be used only in
   /// Alias analysis.
-  const Value *stripPointerCastsAndBarriers() const;
-  Value *stripPointerCastsAndBarriers() {
+  const Value *stripPointerCastsAndInvariantGroups() const;
+  Value *stripPointerCastsAndInvariantGroups() {
     return const_cast<Value *>(
-        static_cast<const Value *>(this)->stripPointerCastsAndBarriers());
+        static_cast<const Value *>(this)->stripPointerCastsAndInvariantGroups());
   }
 
-  /// \brief Strip off pointer casts and all-zero GEPs.
+  /// Strip off pointer casts and all-zero GEPs.
   ///
   /// Returns the original uncasted value.  If this is called on a non-pointer
   /// value, it returns 'this'.
@@ -530,7 +526,7 @@
           static_cast<const Value *>(this)->stripPointerCastsNoFollowAliases());
   }
 
-  /// \brief Strip off pointer casts and all-constant inbounds GEPs.
+  /// Strip off pointer casts and all-constant inbounds GEPs.
   ///
   /// Returns the original pointer value.  If this is called on a non-pointer
   /// value, it returns 'this'.
@@ -540,7 +536,7 @@
               static_cast<const Value *>(this)->stripInBoundsConstantOffsets());
   }
 
-  /// \brief Accumulate offsets from \a stripInBoundsConstantOffsets().
+  /// Accumulate offsets from \a stripInBoundsConstantOffsets().
   ///
   /// Stores the resulting constant offset stripped into the APInt provided.
   /// The provided APInt will be extended or truncated as needed to be the
@@ -555,7 +551,7 @@
         ->stripAndAccumulateInBoundsConstantOffsets(DL, Offset));
   }
 
-  /// \brief Strip off pointer casts and inbounds GEPs.
+  /// Strip off pointer casts and inbounds GEPs.
   ///
   /// Returns the original pointer value.  If this is called on a non-pointer
   /// value, it returns 'this'.
@@ -565,7 +561,7 @@
                       static_cast<const Value *>(this)->stripInBoundsOffsets());
   }
 
-  /// \brief Returns the number of bytes known to be dereferenceable for the
+  /// Returns the number of bytes known to be dereferenceable for the
   /// pointer value.
   ///
   /// If CanBeNull is set by this function the pointer can either be null or be
@@ -573,13 +569,13 @@
   uint64_t getPointerDereferenceableBytes(const DataLayout &DL,
                                           bool &CanBeNull) const;
 
-  /// \brief Returns an alignment of the pointer value.
+  /// Returns an alignment of the pointer value.
   ///
   /// Returns an alignment which is either specified explicitly, e.g. via
   /// align attribute of a function argument, or guaranteed by DataLayout.
   unsigned getPointerAlignment(const DataLayout &DL) const;
 
-  /// \brief Translate PHI node to its predecessor from the given basic block.
+  /// Translate PHI node to its predecessor from the given basic block.
   ///
   /// If this value is a PHI node with CurBB as its parent, return the value in
   /// the PHI node corresponding to PredBB.  If not, return ourself.  This is
@@ -592,14 +588,14 @@
              static_cast<const Value *>(this)->DoPHITranslation(CurBB, PredBB));
   }
 
-  /// \brief The maximum alignment for instructions.
+  /// The maximum alignment for instructions.
   ///
   /// This is the greatest alignment value supported by load, store, and alloca
   /// instructions, and global values.
   static const unsigned MaxAlignmentExponent = 29;
   static const unsigned MaximumAlignment = 1u << MaxAlignmentExponent;
 
-  /// \brief Mutate the type of this Value to be of the specified type.
+  /// Mutate the type of this Value to be of the specified type.
   ///
   /// Note that this is an extremely dangerous operation which can create
   /// completely invalid IR very easily.  It is strongly recommended that you
@@ -609,17 +605,17 @@
     VTy = Ty;
   }
 
-  /// \brief Sort the use-list.
+  /// Sort the use-list.
   ///
   /// Sorts the Value's use-list by Cmp using a stable mergesort.  Cmp is
   /// expected to compare two \a Use references.
   template <class Compare> void sortUseList(Compare Cmp);
 
-  /// \brief Reverse the use-list.
+  /// Reverse the use-list.
   void reverseUseList();
 
 private:
-  /// \brief Merge two lists together.
+  /// Merge two lists together.
   ///
   /// Merges \c L and \c R using \c Cmp.  To enable stable sorts, always pushes
   /// "equal" items from L before items from R.
diff --git a/linux-x64/clang/include/llvm/IR/ValueHandle.h b/linux-x64/clang/include/llvm/IR/ValueHandle.h
index b45cc7b..d94472c 100644
--- a/linux-x64/clang/include/llvm/IR/ValueHandle.h
+++ b/linux-x64/clang/include/llvm/IR/ValueHandle.h
@@ -22,7 +22,7 @@
 
 namespace llvm {
 
-/// \brief This is the common base class of value handles.
+/// This is the common base class of value handles.
 ///
 /// ValueHandle's are smart pointers to Value's that have special behavior when
 /// the value is deleted or ReplaceAllUsesWith'd.  See the specific handles
@@ -31,7 +31,7 @@
   friend class Value;
 
 protected:
-  /// \brief This indicates what sub class the handle actually is.
+  /// This indicates what sub class the handle actually is.
   ///
   /// This is to avoid having a vtable for the light-weight handle pointers. The
   /// fully general Callback version does have a vtable.
@@ -101,10 +101,10 @@
            V != DenseMapInfo<Value *>::getTombstoneKey();
   }
 
-  /// \brief Remove this ValueHandle from its current use list.
+  /// Remove this ValueHandle from its current use list.
   void RemoveFromUseList();
 
-  /// \brief Clear the underlying pointer without clearing the use list.
+  /// Clear the underlying pointer without clearing the use list.
   ///
   /// This should only be used if a derived class has manually removed the
   /// handle from the use list.
@@ -121,20 +121,20 @@
   HandleBaseKind getKind() const { return PrevPair.getInt(); }
   void setPrevPtr(ValueHandleBase **Ptr) { PrevPair.setPointer(Ptr); }
 
-  /// \brief Add this ValueHandle to the use list for V.
+  /// Add this ValueHandle to the use list for V.
   ///
   /// List is the address of either the head of the list or a Next node within
   /// the existing use list.
   void AddToExistingUseList(ValueHandleBase **List);
 
-  /// \brief Add this ValueHandle to the use list after Node.
+  /// Add this ValueHandle to the use list after Node.
   void AddToExistingUseListAfter(ValueHandleBase *Node);
 
-  /// \brief Add this ValueHandle to the use list for V.
+  /// Add this ValueHandle to the use list for V.
   void AddToUseList();
 };
 
-/// \brief A nullable Value handle that is nullable.
+/// A nullable Value handle that is nullable.
 ///
 /// This is a value handle that points to a value, and nulls itself
 /// out if that value is deleted.
@@ -172,7 +172,7 @@
   static SimpleType getSimplifiedValue(const WeakVH &WVH) { return WVH; }
 };
 
-/// \brief Value handle that is nullable, but tries to track the Value.
+/// Value handle that is nullable, but tries to track the Value.
 ///
 /// This is a value handle that tries hard to point to a Value, even across
 /// RAUW operations, but will null itself out if the value is destroyed.  this
@@ -219,7 +219,7 @@
   }
 };
 
-/// \brief Value handle that asserts if the Value is deleted.
+/// Value handle that asserts if the Value is deleted.
 ///
 /// This is a Value Handle that points to a value and asserts out if the value
 /// is destroyed while the handle is still live.  This is very useful for
@@ -318,7 +318,7 @@
 #endif
 };
 
-/// \brief Value handle that tracks a Value across RAUW.
+/// Value handle that tracks a Value across RAUW.
 ///
 /// TrackingVH is designed for situations where a client needs to hold a handle
 /// to a Value (or subclass) across some operations which may move that value,
@@ -379,7 +379,7 @@
   ValueTy &operator*() const { return *getValPtr(); }
 };
 
-/// \brief Value handle with callbacks on RAUW and destruction.
+/// Value handle with callbacks on RAUW and destruction.
 ///
 /// This is a value handle that allows subclasses to define callbacks that run
 /// when the underlying Value has RAUW called on it or is destroyed.  This
@@ -405,7 +405,7 @@
     return getValPtr();
   }
 
-  /// \brief Callback for Value destruction.
+  /// Callback for Value destruction.
   ///
   /// Called when this->getValPtr() is destroyed, inside ~Value(), so you
   /// may call any non-virtual Value method on getValPtr(), but no subclass
@@ -418,7 +418,7 @@
   /// Value that's being destroyed.
   virtual void deleted() { setValPtr(nullptr); }
 
-  /// \brief Callback for Value RAUW.
+  /// Callback for Value RAUW.
   ///
   /// Called when this->getValPtr()->replaceAllUsesWith(new_value) is called,
   /// _before_ any of the uses have actually been replaced.  If WeakTrackingVH
diff --git a/linux-x64/clang/include/llvm/IR/ValueMap.h b/linux-x64/clang/include/llvm/IR/ValueMap.h
index 11d5823..e7e3391 100644
--- a/linux-x64/clang/include/llvm/IR/ValueMap.h
+++ b/linux-x64/clang/include/llvm/IR/ValueMap.h
@@ -106,8 +106,12 @@
       : Map(NumInitBuckets), Data() {}
   explicit ValueMap(const ExtraData &Data, unsigned NumInitBuckets = 64)
       : Map(NumInitBuckets), Data(Data) {}
+  // ValueMap can't be copied nor moved, beucase the callbacks store pointer
+  // to it.
   ValueMap(const ValueMap &) = delete;
+  ValueMap(ValueMap &&) = delete;
   ValueMap &operator=(const ValueMap &) = delete;
+  ValueMap &operator=(ValueMap &&) = delete;
 
   bool hasMD() const { return bool(MDMap); }
   MDMapT &MD() {
diff --git a/linux-x64/clang/include/llvm/IR/ValueSymbolTable.h b/linux-x64/clang/include/llvm/IR/ValueSymbolTable.h
index 26cbbfa..012e717 100644
--- a/linux-x64/clang/include/llvm/IR/ValueSymbolTable.h
+++ b/linux-x64/clang/include/llvm/IR/ValueSymbolTable.h
@@ -48,13 +48,13 @@
 /// @name Types
 /// @{
 public:
-  /// @brief A mapping of names to values.
+  /// A mapping of names to values.
   using ValueMap = StringMap<Value*>;
 
-  /// @brief An iterator over a ValueMap.
+  /// An iterator over a ValueMap.
   using iterator = ValueMap::iterator;
 
-  /// @brief A const_iterator over a ValueMap.
+  /// A const_iterator over a ValueMap.
   using const_iterator = ValueMap::const_iterator;
 
 /// @}
@@ -71,35 +71,35 @@
   /// This method finds the value with the given \p Name in the
   /// the symbol table.
   /// @returns the value associated with the \p Name
-  /// @brief Lookup a named Value.
+  /// Lookup a named Value.
   Value *lookup(StringRef Name) const { return vmap.lookup(Name); }
 
   /// @returns true iff the symbol table is empty
-  /// @brief Determine if the symbol table is empty
+  /// Determine if the symbol table is empty
   inline bool empty() const { return vmap.empty(); }
 
-  /// @brief The number of name/type pairs is returned.
+  /// The number of name/type pairs is returned.
   inline unsigned size() const { return unsigned(vmap.size()); }
 
   /// This function can be used from the debugger to display the
   /// content of the symbol table while debugging.
-  /// @brief Print out symbol table on stderr
+  /// Print out symbol table on stderr
   void dump() const;
 
 /// @}
 /// @name Iteration
 /// @{
 
-  /// @brief Get an iterator that from the beginning of the symbol table.
+  /// Get an iterator that from the beginning of the symbol table.
   inline iterator begin() { return vmap.begin(); }
 
-  /// @brief Get a const_iterator that from the beginning of the symbol table.
+  /// Get a const_iterator that from the beginning of the symbol table.
   inline const_iterator begin() const { return vmap.begin(); }
 
-  /// @brief Get an iterator to the end of the symbol table.
+  /// Get an iterator to the end of the symbol table.
   inline iterator end() { return vmap.end(); }
 
-  /// @brief Get a const_iterator to the end of the symbol table.
+  /// Get a const_iterator to the end of the symbol table.
   inline const_iterator end() const { return vmap.end(); }
 
   /// @}
@@ -111,7 +111,7 @@
   /// This method adds the provided value \p N to the symbol table.  The Value
   /// must have a name which is used to place the value in the symbol table.
   /// If the inserted name conflicts, this renames the value.
-  /// @brief Add a named value to the symbol table
+  /// Add a named value to the symbol table
   void reinsertValue(Value *V);
 
   /// createValueName - This method attempts to create a value name and insert
diff --git a/linux-x64/clang/include/llvm/IR/Verifier.h b/linux-x64/clang/include/llvm/IR/Verifier.h
index bc10f33..7255132 100644
--- a/linux-x64/clang/include/llvm/IR/Verifier.h
+++ b/linux-x64/clang/include/llvm/IR/Verifier.h
@@ -80,7 +80,7 @@
   bool visitTBAAMetadata(Instruction &I, const MDNode *MD);
 };
 
-/// \brief Check a function for errors, useful for use when debugging a
+/// Check a function for errors, useful for use when debugging a
 /// pass.
 ///
 /// If there are no errors, the function returns false. If an error is found,
@@ -88,7 +88,7 @@
 /// returned.
 bool verifyFunction(const Function &F, raw_ostream *OS = nullptr);
 
-/// \brief Check a module for errors.
+/// Check a module for errors.
 ///
 /// If there are no errors, the function returns false. If an error is
 /// found, a message describing the error is written to OS (if
@@ -124,7 +124,7 @@
 /// "recovered" from by stripping the debug info.
 bool verifyModule(bool &BrokenDebugInfo, const Module &M, raw_ostream *OS);
 
-/// \brief Create a verifier pass.
+/// Create a verifier pass.
 ///
 /// Check a module or function for validity. This is essentially a pass wrapped
 /// around the above verifyFunction and verifyModule routines and
diff --git a/linux-x64/clang/include/llvm/InitializePasses.h b/linux-x64/clang/include/llvm/InitializePasses.h
index 5aa5112..d67b1d4 100644
--- a/linux-x64/clang/include/llvm/InitializePasses.h
+++ b/linux-x64/clang/include/llvm/InitializePasses.h
@@ -37,6 +37,9 @@
 /// Initialize all passes linked into the InstCombine library.
 void initializeInstCombine(PassRegistry&);
 
+/// Initialize all passes linked into the AggressiveInstCombine library.
+void initializeAggressiveInstCombine(PassRegistry&);
+
 /// Initialize all passes linked into the IPO library.
 void initializeIPO(PassRegistry&);
 
@@ -82,29 +85,26 @@
 void initializeBranchRelaxationPass(PassRegistry&);
 void initializeBreakCriticalEdgesPass(PassRegistry&);
 void initializeBreakFalseDepsPass(PassRegistry&);
-void initializeCallSiteSplittingLegacyPassPass(PassRegistry&);
 void initializeCFGOnlyPrinterLegacyPassPass(PassRegistry&);
 void initializeCFGOnlyViewerLegacyPassPass(PassRegistry&);
 void initializeCFGPrinterLegacyPassPass(PassRegistry&);
 void initializeCFGSimplifyPassPass(PassRegistry&);
 void initializeCFGViewerLegacyPassPass(PassRegistry&);
+void initializeCFIInstrInserterPass(PassRegistry&);
 void initializeCFLAndersAAWrapperPassPass(PassRegistry&);
 void initializeCFLSteensAAWrapperPassPass(PassRegistry&);
 void initializeCallGraphDOTPrinterPass(PassRegistry&);
 void initializeCallGraphPrinterLegacyPassPass(PassRegistry&);
 void initializeCallGraphViewerPass(PassRegistry&);
 void initializeCallGraphWrapperPassPass(PassRegistry&);
+void initializeCallSiteSplittingLegacyPassPass(PassRegistry&);
+void initializeCalledValuePropagationLegacyPassPass(PassRegistry &);
 void initializeCodeGenPreparePass(PassRegistry&);
 void initializeConstantHoistingLegacyPassPass(PassRegistry&);
-void initializeCalledValuePropagationLegacyPassPass(PassRegistry &);
 void initializeConstantMergeLegacyPassPass(PassRegistry&);
 void initializeConstantPropagationPass(PassRegistry&);
 void initializeCorrelatedValuePropagationPass(PassRegistry&);
 void initializeCostModelAnalysisPass(PassRegistry&);
-void initializeEarlyMachineLICMPass(PassRegistry&);
-void initializeEarlyTailDuplicatePass(PassRegistry&);
-void initializeEntryExitInstrumenterPass(PassRegistry&);
-void initializePostInlineEntryExitInstrumenterPass(PassRegistry&);
 void initializeCrossDSOCFIPass(PassRegistry&);
 void initializeDAEPass(PassRegistry&);
 void initializeDAHPass(PassRegistry&);
@@ -118,8 +118,8 @@
 void initializeDependenceAnalysisPass(PassRegistry&);
 void initializeDependenceAnalysisWrapperPassPass(PassRegistry&);
 void initializeDetectDeadLanesPass(PassRegistry&);
-void initializeDivergenceAnalysisPass(PassRegistry&);
 void initializeDivRemPairsLegacyPassPass(PassRegistry&);
+void initializeDivergenceAnalysisPass(PassRegistry&);
 void initializeDomOnlyPrinterPass(PassRegistry&);
 void initializeDomOnlyViewerPass(PassRegistry&);
 void initializeDomPrinterPass(PassRegistry&);
@@ -130,9 +130,12 @@
 void initializeEarlyCSELegacyPassPass(PassRegistry&);
 void initializeEarlyCSEMemSSALegacyPassPass(PassRegistry&);
 void initializeEarlyIfConverterPass(PassRegistry&);
+void initializeEarlyMachineLICMPass(PassRegistry&);
+void initializeEarlyTailDuplicatePass(PassRegistry&);
 void initializeEdgeBundlesPass(PassRegistry&);
 void initializeEfficiencySanitizerPass(PassRegistry&);
 void initializeEliminateAvailableExternallyLegacyPassPass(PassRegistry&);
+void initializeEntryExitInstrumenterPass(PassRegistry&);
 void initializeExpandISelPseudosPass(PassRegistry&);
 void initializeExpandMemCmpPassPass(PassRegistry&);
 void initializeExpandPostRAPass(PassRegistry&);
@@ -158,21 +161,22 @@
 void initializeGlobalSplitPass(PassRegistry&);
 void initializeGlobalsAAWrapperPassPass(PassRegistry&);
 void initializeGuardWideningLegacyPassPass(PassRegistry&);
+void initializeHWAddressSanitizerPass(PassRegistry&);
 void initializeIPCPPass(PassRegistry&);
 void initializeIPSCCPLegacyPassPass(PassRegistry&);
+void initializeIRCELegacyPassPass(PassRegistry&);
 void initializeIRTranslatorPass(PassRegistry&);
 void initializeIVUsersWrapperPassPass(PassRegistry&);
 void initializeIfConverterPass(PassRegistry&);
 void initializeImplicitNullChecksPass(PassRegistry&);
 void initializeIndVarSimplifyLegacyPassPass(PassRegistry&);
 void initializeIndirectBrExpandPassPass(PassRegistry&);
-void initializeIRCELegacyPassPass(PassRegistry&);
 void initializeInferAddressSpacesPass(PassRegistry&);
 void initializeInferFunctionAttrsLegacyPassPass(PassRegistry&);
 void initializeInlineCostAnalysisPass(PassRegistry&);
 void initializeInstCountPass(PassRegistry&);
 void initializeInstNamerPass(PassRegistry&);
-void initializeInstSimplifierPass(PassRegistry&);
+void initializeInstSimplifyLegacyPassPass(PassRegistry &);
 void initializeInstrProfilingLegacyPassPass(PassRegistry&);
 void initializeInstructionCombiningPassPass(PassRegistry&);
 void initializeInstructionSelectPass(PassRegistry&);
@@ -208,8 +212,10 @@
 void initializeLoopDeletionLegacyPassPass(PassRegistry&);
 void initializeLoopDistributeLegacyPass(PassRegistry&);
 void initializeLoopExtractorPass(PassRegistry&);
+void initializeLoopGuardWideningLegacyPassPass(PassRegistry&);
 void initializeLoopIdiomRecognizeLegacyPassPass(PassRegistry&);
 void initializeLoopInfoWrapperPassPass(PassRegistry&);
+void initializeLoopInstSimplifyLegacyPassPass(PassRegistry&);
 void initializeLoopInterchangePass(PassRegistry&);
 void initializeLoopLoadEliminationPass(PassRegistry&);
 void initializeLoopPassPass(PassRegistry&);
@@ -219,6 +225,7 @@
 void initializeLoopSimplifyCFGLegacyPassPass(PassRegistry&);
 void initializeLoopSimplifyPass(PassRegistry&);
 void initializeLoopStrengthReducePass(PassRegistry&);
+void initializeLoopUnrollAndJamPass(PassRegistry&);
 void initializeLoopUnrollPass(PassRegistry&);
 void initializeLoopUnswitchPass(PassRegistry&);
 void initializeLoopVectorizePass(PassRegistry&);
@@ -232,6 +239,7 @@
 void initializeLowerInvokeLegacyPassPass(PassRegistry&);
 void initializeLowerSwitchPass(PassRegistry&);
 void initializeLowerTypeTestsPass(PassRegistry&);
+void initializeMIRCanonicalizerPass(PassRegistry &);
 void initializeMIRPrintingPassPass(PassRegistry&);
 void initializeMachineBlockFrequencyInfoPass(PassRegistry&);
 void initializeMachineBlockPlacementPass(PassRegistry&);
@@ -290,6 +298,7 @@
 void initializePartiallyInlineLibCallsLegacyPassPass(PassRegistry&);
 void initializePatchableFunctionPass(PassRegistry&);
 void initializePeepholeOptimizerPass(PassRegistry&);
+void initializePhiValuesWrapperPassPass(PassRegistry&);
 void initializePhysicalRegisterUsageInfoPass(PassRegistry&);
 void initializePlaceBackedgeSafepointsImplPass(PassRegistry&);
 void initializePlaceSafepointsPass(PassRegistry&);
@@ -298,6 +307,7 @@
 void initializePostDomPrinterPass(PassRegistry&);
 void initializePostDomViewerPass(PassRegistry&);
 void initializePostDominatorTreeWrapperPassPass(PassRegistry&);
+void initializePostInlineEntryExitInstrumenterPass(PassRegistry&);
 void initializePostMachineSchedulerPass(PassRegistry&);
 void initializePostOrderFunctionAttrsLegacyPassPass(PassRegistry&);
 void initializePostRAHazardRecognizerPass(PassRegistry&);
@@ -313,12 +323,14 @@
 void initializePromoteLegacyPassPass(PassRegistry&);
 void initializePruneEHPass(PassRegistry&);
 void initializeRABasicPass(PassRegistry&);
-void initializeRegAllocFastPass(PassRegistry&);
 void initializeRAGreedyPass(PassRegistry&);
-void initializeReassociateLegacyPassPass(PassRegistry&);
-void initializeRegBankSelectPass(PassRegistry&);
 void initializeReachingDefAnalysisPass(PassRegistry&);
+void initializeReassociateLegacyPassPass(PassRegistry&);
+void initializeRegAllocFastPass(PassRegistry&);
+void initializeRegBankSelectPass(PassRegistry&);
 void initializeRegToMemPass(PassRegistry&);
+void initializeRegUsageInfoCollectorPass(PassRegistry&);
+void initializeRegUsageInfoPropagationPass(PassRegistry&);
 void initializeRegionInfoPassPass(PassRegistry&);
 void initializeRegionOnlyPrinterPass(PassRegistry&);
 void initializeRegionOnlyViewerPass(PassRegistry&);
@@ -330,12 +342,12 @@
 void initializeReversePostOrderFunctionAttrsLegacyPassPass(PassRegistry&);
 void initializeRewriteStatepointsForGCLegacyPassPass(PassRegistry &);
 void initializeRewriteSymbolsLegacyPassPass(PassRegistry&);
-void initializeSafepointIRVerifierPass(PassRegistry&);
 void initializeSCCPLegacyPassPass(PassRegistry&);
 void initializeSCEVAAWrapperPassPass(PassRegistry&);
 void initializeSLPVectorizerPass(PassRegistry&);
 void initializeSROALegacyPassPass(PassRegistry&);
 void initializeSafeStackLegacyPassPass(PassRegistry&);
+void initializeSafepointIRVerifierPass(PassRegistry&);
 void initializeSampleProfileLoaderLegacyPassPass(PassRegistry&);
 void initializeSanitizerCoverageModulePass(PassRegistry&);
 void initializeScalarEvolutionWrapperPassPass(PassRegistry&);
@@ -367,7 +379,6 @@
 void initializeStripNonLineTableDebugInfoPass(PassRegistry&);
 void initializeStripSymbolsPass(PassRegistry&);
 void initializeStructurizeCFGPass(PassRegistry&);
-void initializeHWAddressSanitizerPass(PassRegistry&);
 void initializeTailCallElimPass(PassRegistry&);
 void initializeTailDuplicatePass(PassRegistry&);
 void initializeTargetLibraryInfoWrapperPassPass(PassRegistry&);
@@ -383,12 +394,12 @@
 void initializeVerifierLegacyPassPass(PassRegistry&);
 void initializeVirtRegMapPass(PassRegistry&);
 void initializeVirtRegRewriterPass(PassRegistry&);
+void initializeWasmEHPreparePass(PassRegistry&);
 void initializeWholeProgramDevirtPass(PassRegistry&);
 void initializeWinEHPreparePass(PassRegistry&);
 void initializeWriteBitcodePassPass(PassRegistry&);
 void initializeWriteThinLTOBitcodePass(PassRegistry&);
 void initializeXRayInstrumentationPass(PassRegistry&);
-void initializeMIRCanonicalizerPass(PassRegistry &);
 
 } // end namespace llvm
 
diff --git a/linux-x64/clang/include/llvm/LTO/Config.h b/linux-x64/clang/include/llvm/LTO/Config.h
index 4bd981c..57bba5e 100644
--- a/linux-x64/clang/include/llvm/LTO/Config.h
+++ b/linux-x64/clang/include/llvm/LTO/Config.h
@@ -73,6 +73,14 @@
   /// Sample PGO profile path.
   std::string SampleProfile;
 
+  /// The directory to store .dwo files.
+  std::string DwoDir;
+
+  /// The path to write a .dwo file to. This should generally only be used when
+  /// running an individual backend directly via thinBackend(), as otherwise
+  /// all .dwo files will be written to the same path.
+  std::string DwoPath;
+
   /// Optimization remarks file path.
   std::string RemarksFilename = "";
 
@@ -82,6 +90,9 @@
   /// Whether to emit the pass manager debuggging informations.
   bool DebugPassManager = false;
 
+  /// Statistics output file path.
+  std::string StatsFile;
+
   bool ShouldDiscardValueNames = true;
   DiagnosticHandlerFunction DiagHandler;
 
diff --git a/linux-x64/clang/include/llvm/LinkAllIR.h b/linux-x64/clang/include/llvm/LinkAllIR.h
index 9a9f3d3..4f4af71 100644
--- a/linux-x64/clang/include/llvm/LinkAllIR.h
+++ b/linux-x64/clang/include/llvm/LinkAllIR.h
@@ -44,7 +44,7 @@
       llvm::LLVMContext Context;
       (void)new llvm::Module("", Context);
       (void)new llvm::UnreachableInst(Context);
-      (void)    llvm::createVerifierPass(); 
+      (void)    llvm::createVerifierPass();
     }
   } ForceVMCoreLinking;
 }
diff --git a/linux-x64/clang/include/llvm/LinkAllPasses.h b/linux-x64/clang/include/llvm/LinkAllPasses.h
index 2d7956d..bd432c5 100644
--- a/linux-x64/clang/include/llvm/LinkAllPasses.h
+++ b/linux-x64/clang/include/llvm/LinkAllPasses.h
@@ -39,14 +39,17 @@
 #include "llvm/IR/Function.h"
 #include "llvm/IR/IRPrintingPasses.h"
 #include "llvm/Support/Valgrind.h"
+#include "llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h"
 #include "llvm/Transforms/IPO.h"
 #include "llvm/Transforms/IPO/AlwaysInliner.h"
 #include "llvm/Transforms/IPO/FunctionAttrs.h"
+#include "llvm/Transforms/InstCombine/InstCombine.h"
 #include "llvm/Transforms/Instrumentation.h"
 #include "llvm/Transforms/Instrumentation/BoundsChecking.h"
 #include "llvm/Transforms/ObjCARC.h"
 #include "llvm/Transforms/Scalar.h"
 #include "llvm/Transforms/Scalar/GVN.h"
+#include "llvm/Transforms/Scalar/InstSimplifyPass.h"
 #include "llvm/Transforms/Utils.h"
 #include "llvm/Transforms/Utils/SymbolRewriter.h"
 #include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h"
@@ -65,6 +68,7 @@
 
       (void) llvm::createAAEvalPass();
       (void) llvm::createAggressiveDCEPass();
+      (void) llvm::createAggressiveInstCombinerPass();
       (void) llvm::createBitTrackingDCEPass();
       (void) llvm::createArgumentPromotionPass();
       (void) llvm::createAlignmentFromAssumptionsPass();
@@ -108,10 +112,12 @@
       (void) llvm::createGlobalOptimizerPass();
       (void) llvm::createGlobalsAAWrapperPass();
       (void) llvm::createGuardWideningPass();
+      (void) llvm::createLoopGuardWideningPass();
       (void) llvm::createIPConstantPropagationPass();
       (void) llvm::createIPSCCPPass();
       (void) llvm::createInductiveRangeCheckEliminationPass();
       (void) llvm::createIndVarSimplifyPass();
+      (void) llvm::createInstSimplifyLegacyPass();
       (void) llvm::createInstructionCombiningPass();
       (void) llvm::createInternalizePass();
       (void) llvm::createLCSSAPass();
@@ -126,6 +132,7 @@
       (void) llvm::createLoopStrengthReducePass();
       (void) llvm::createLoopRerollPass();
       (void) llvm::createLoopUnrollPass();
+      (void) llvm::createLoopUnrollAndJamPass();
       (void) llvm::createLoopUnswitchPass();
       (void) llvm::createLoopVersioningLICMPass();
       (void) llvm::createLoopIdiomPass();
@@ -196,7 +203,6 @@
       (void) llvm::createLowerAtomicPass();
       (void) llvm::createCorrelatedValuePropagationPass();
       (void) llvm::createMemDepPrinter();
-      (void) llvm::createInstructionSimplifierPass();
       (void) llvm::createLoopVectorizePass();
       (void) llvm::createSLPVectorizerPass();
       (void) llvm::createLoadStoreVectorizerPass();
diff --git a/linux-x64/clang/include/llvm/Linker/Linker.h b/linux-x64/clang/include/llvm/Linker/Linker.h
index 628e011..7776c72 100644
--- a/linux-x64/clang/include/llvm/Linker/Linker.h
+++ b/linux-x64/clang/include/llvm/Linker/Linker.h
@@ -34,7 +34,7 @@
 
   Linker(Module &M);
 
-  /// \brief Link \p Src into the composite.
+  /// Link \p Src into the composite.
   ///
   /// Passing OverrideSymbols as true will have symbols from Src
   /// shadow those in the Dest.
diff --git a/linux-x64/clang/include/llvm/MC/MCAsmBackend.h b/linux-x64/clang/include/llvm/MC/MCAsmBackend.h
index a8a5850..030d3c0 100644
--- a/linux-x64/clang/include/llvm/MC/MCAsmBackend.h
+++ b/linux-x64/clang/include/llvm/MC/MCAsmBackend.h
@@ -16,6 +16,7 @@
 #include "llvm/MC/MCDirectives.h"
 #include "llvm/MC/MCFixup.h"
 #include "llvm/MC/MCFragment.h"
+#include "llvm/Support/Endian.h"
 #include <cstdint>
 #include <memory>
 
@@ -29,6 +30,7 @@
 class MCFragment;
 class MCInst;
 class MCObjectStreamer;
+class MCObjectTargetWriter;
 class MCObjectWriter;
 struct MCCodePaddingContext;
 class MCRelaxableFragment;
@@ -41,21 +43,31 @@
   std::unique_ptr<MCCodePadder> CodePadder;
 
 protected: // Can only create subclasses.
-  MCAsmBackend();
-  MCAsmBackend(std::unique_ptr<MCCodePadder> TargetCodePadder);
+  MCAsmBackend(support::endianness Endian);
 
 public:
   MCAsmBackend(const MCAsmBackend &) = delete;
   MCAsmBackend &operator=(const MCAsmBackend &) = delete;
   virtual ~MCAsmBackend();
 
+  const support::endianness Endian;
+
   /// lifetime management
   virtual void reset() {}
 
   /// Create a new MCObjectWriter instance for use by the assembler backend to
   /// emit the final object file.
-  virtual std::unique_ptr<MCObjectWriter>
-  createObjectWriter(raw_pwrite_stream &OS) const = 0;
+  std::unique_ptr<MCObjectWriter>
+  createObjectWriter(raw_pwrite_stream &OS) const;
+
+  /// Create an MCObjectWriter that writes two object files: a .o file which is
+  /// linked into the final program and a .dwo file which is used by debuggers.
+  /// This function is only supported with ELF targets.
+  std::unique_ptr<MCObjectWriter>
+  createDwoObjectWriter(raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS) const;
+
+  virtual std::unique_ptr<MCObjectTargetWriter>
+  createObjectTargetWriter() const = 0;
 
   /// \name Target Fixup Interfaces
   /// @{
@@ -80,9 +92,16 @@
   /// the offset specified by the fixup and following the fixup kind as
   /// appropriate. Errors (such as an out of range fixup value) should be
   /// reported via \p Ctx.
+  /// The  \p STI is present only for fragments of type MCRelaxableFragment and
+  /// MCDataFragment with hasInstructions() == true.
   virtual void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
                           const MCValue &Target, MutableArrayRef<char> Data,
-                          uint64_t Value, bool IsResolved) const = 0;
+                          uint64_t Value, bool IsResolved,
+                          const MCSubtargetInfo *STI) const = 0;
+
+  /// Check whether the given target requires emitting differences of two
+  /// symbols as a set of relocations.
+  virtual bool requiresDiffExpressionRelocations() const { return false; }
 
   /// @}
 
@@ -92,14 +111,18 @@
   /// Check whether the given instruction may need relaxation.
   ///
   /// \param Inst - The instruction to test.
-  virtual bool mayNeedRelaxation(const MCInst &Inst) const = 0;
+  /// \param STI - The MCSubtargetInfo in effect when the instruction was
+  /// encoded.
+  virtual bool mayNeedRelaxation(const MCInst &Inst,
+                                 const MCSubtargetInfo &STI) const = 0;
 
   /// Target specific predicate for whether a given fixup requires the
   /// associated instruction to be relaxed.
   virtual bool fixupNeedsRelaxationAdvanced(const MCFixup &Fixup, bool Resolved,
                                             uint64_t Value,
                                             const MCRelaxableFragment *DF,
-                                            const MCAsmLayout &Layout) const;
+                                            const MCAsmLayout &Layout,
+                                            const bool WasForced) const;
 
   /// Simple predicate for targets where !Resolved implies requiring relaxation
   virtual bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value,
@@ -127,7 +150,7 @@
   /// target cannot generate such a sequence, it should return an error.
   ///
   /// \return - True on success.
-  virtual bool writeNopData(uint64_t Count, MCObjectWriter *OW) const = 0;
+  virtual bool writeNopData(raw_ostream &OS, uint64_t Count) const = 0;
 
   /// Give backend an opportunity to finish layout after relaxation
   virtual void finishLayout(MCAssembler const &Asm,
@@ -136,7 +159,7 @@
   /// Handle any target-specific assembler flags. By default, do nothing.
   virtual void handleAssemblerFlag(MCAssemblerFlag Flag) {}
 
-  /// \brief Generate the compact unwind encoding for the CFI instructions.
+  /// Generate the compact unwind encoding for the CFI instructions.
   virtual uint32_t
       generateCompactUnwindEncoding(ArrayRef<MCCFIInstruction>) const {
     return 0;
diff --git a/linux-x64/clang/include/llvm/MC/MCAsmInfo.h b/linux-x64/clang/include/llvm/MC/MCAsmInfo.h
index c538c46..120fb8f 100644
--- a/linux-x64/clang/include/llvm/MC/MCAsmInfo.h
+++ b/linux-x64/clang/include/llvm/MC/MCAsmInfo.h
@@ -84,6 +84,15 @@
   /// directive for emitting thread local BSS Symbols.  Default is false.
   bool HasMachoTBSSDirective = false;
 
+  /// True if this is a non-GNU COFF target. The COFF port of the GNU linker
+  /// doesn't handle associative comdats in the way that we would like to use
+  /// them.
+  bool HasCOFFAssociativeComdats = false;
+
+  /// True if this is a non-GNU COFF target. For GNU targets, we don't generate
+  /// constants into comdat sections.
+  bool HasCOFFComdatConstants = false;
+
   /// This is the maximum possible length of an instruction, which is needed to
   /// compute the size of an inline asm.  Defaults to 4.
   unsigned MaxInstLength = 4;
@@ -344,6 +353,10 @@
   /// For example, foo(plt) instead of foo@plt.  Defaults to false.
   bool UseParensForSymbolVariant = false;
 
+  /// True if the target supports flags in ".loc" directive, false if only
+  /// location is allowed.
+  bool SupportsExtendedDwarfLocDirective = true;
+
   //===--- Prologue State ----------------------------------------------===//
 
   std::vector<MCCFIInstruction> InitialFrameState;
@@ -416,7 +429,7 @@
     return nullptr;
   }
 
-  /// \brief True if the section is atomized using the symbols in it.
+  /// True if the section is atomized using the symbols in it.
   /// This is false if the section is not atomized at all (most ELF sections) or
   /// if it is atomized based on its contents (MachO' __TEXT,__cstring for
   /// example).
@@ -459,6 +472,8 @@
 
   bool hasMachoZeroFillDirective() const { return HasMachoZeroFillDirective; }
   bool hasMachoTBSSDirective() const { return HasMachoTBSSDirective; }
+  bool hasCOFFAssociativeComdats() const { return HasCOFFAssociativeComdats; }
+  bool hasCOFFComdatConstants() const { return HasCOFFComdatConstants; }
   unsigned getMaxInstLength() const { return MaxInstLength; }
   unsigned getMinInstAlignment() const { return MinInstAlignment; }
   bool getDollarIsPC() const { return DollarIsPC; }
@@ -579,6 +594,9 @@
   bool doDwarfFDESymbolsUseAbsDiff() const { return DwarfFDESymbolsUseAbsDiff; }
   bool useDwarfRegNumForCFI() const { return DwarfRegNumForCFI; }
   bool useParensForSymbolVariant() const { return UseParensForSymbolVariant; }
+  bool supportsExtendedDwarfLocDirective() const {
+    return SupportsExtendedDwarfLocDirective;
+  }
 
   void addInitialFrameState(const MCCFIInstruction &Inst) {
     InitialFrameState.push_back(Inst);
diff --git a/linux-x64/clang/include/llvm/MC/MCAsmLayout.h b/linux-x64/clang/include/llvm/MC/MCAsmLayout.h
index 1b20d5b..b711db3 100644
--- a/linux-x64/clang/include/llvm/MC/MCAsmLayout.h
+++ b/linux-x64/clang/include/llvm/MC/MCAsmLayout.h
@@ -37,11 +37,11 @@
   /// lower ordinal will be valid.
   mutable DenseMap<const MCSection *, MCFragment *> LastValidFragment;
 
-  /// \brief Make sure that the layout for the given fragment is valid, lazily
+  /// Make sure that the layout for the given fragment is valid, lazily
   /// computing it if necessary.
   void ensureValid(const MCFragment *F) const;
 
-  /// \brief Is the layout for this fragment valid?
+  /// Is the layout for this fragment valid?
   bool isFragmentValid(const MCFragment *F) const;
 
 public:
@@ -50,12 +50,12 @@
   /// Get the assembler object this is a layout for.
   MCAssembler &getAssembler() const { return Assembler; }
 
-  /// \brief Invalidate the fragments starting with F because it has been
+  /// Invalidate the fragments starting with F because it has been
   /// resized. The fragment's size should have already been updated, but
   /// its bundle padding will be recomputed.
   void invalidateFragmentsFrom(MCFragment *F);
 
-  /// \brief Perform layout for a single fragment, assuming that the previous
+  /// Perform layout for a single fragment, assuming that the previous
   /// fragment has already been laid out correctly, and the parent section has
   /// been initialized.
   void layoutFragment(MCFragment *Fragment);
@@ -72,31 +72,31 @@
   /// \name Fragment Layout Data
   /// @{
 
-  /// \brief Get the offset of the given fragment inside its containing section.
+  /// Get the offset of the given fragment inside its containing section.
   uint64_t getFragmentOffset(const MCFragment *F) const;
 
   /// @}
   /// \name Utility Functions
   /// @{
 
-  /// \brief Get the address space size of the given section, as it effects
+  /// Get the address space size of the given section, as it effects
   /// layout. This may differ from the size reported by \see getSectionSize() by
   /// not including section tail padding.
   uint64_t getSectionAddressSize(const MCSection *Sec) const;
 
-  /// \brief Get the data size of the given section, as emitted to the object
+  /// Get the data size of the given section, as emitted to the object
   /// file. This may include additional padding, or be 0 for virtual sections.
   uint64_t getSectionFileSize(const MCSection *Sec) const;
 
-  /// \brief Get the offset of the given symbol, as computed in the current
+  /// Get the offset of the given symbol, as computed in the current
   /// layout.
   /// \return True on success.
   bool getSymbolOffset(const MCSymbol &S, uint64_t &Val) const;
 
-  /// \brief Variant that reports a fatal error if the offset is not computable.
+  /// Variant that reports a fatal error if the offset is not computable.
   uint64_t getSymbolOffset(const MCSymbol &S) const;
 
-  /// \brief If this symbol is equivalent to A + Constant, return A.
+  /// If this symbol is equivalent to A + Constant, return A.
   const MCSymbol *getBaseSymbol(const MCSymbol &Symbol) const;
 
   /// @}
diff --git a/linux-x64/clang/include/llvm/MC/MCAssembler.h b/linux-x64/clang/include/llvm/MC/MCAssembler.h
index b91b044..0f9499d 100644
--- a/linux-x64/clang/include/llvm/MC/MCAssembler.h
+++ b/linux-x64/clang/include/llvm/MC/MCAssembler.h
@@ -99,11 +99,11 @@
 private:
   MCContext &Context;
 
-  MCAsmBackend &Backend;
+  std::unique_ptr<MCAsmBackend> Backend;
 
-  MCCodeEmitter &Emitter;
+  std::unique_ptr<MCCodeEmitter> Emitter;
 
-  MCObjectWriter &Writer;
+  std::unique_ptr<MCObjectWriter> Writer;
 
   SectionListType Sections;
 
@@ -130,7 +130,7 @@
   // refactoring too.
   mutable SmallPtrSet<const MCSymbol *, 32> ThumbFuncs;
 
-  /// \brief The bundle alignment size currently set in the assembler.
+  /// The bundle alignment size currently set in the assembler.
   ///
   /// By default it's 0, which means bundling is disabled.
   unsigned BundleAlignSize;
@@ -162,12 +162,14 @@
   /// evaluates to.
   /// \param Value [out] On return, the value of the fixup as currently laid
   /// out.
+  /// \param WasForced [out] On return, the value in the fixup is set to the
+  /// correct value if WasForced is true, even if evaluateFixup returns false.
   /// \return Whether the fixup value was fully resolved. This is true if the
   /// \p Value result is fixed, otherwise the value may change due to
   /// relocation.
   bool evaluateFixup(const MCAsmLayout &Layout, const MCFixup &Fixup,
                      const MCFragment *DF, MCValue &Target,
-                     uint64_t &Value) const;
+                     uint64_t &Value, bool &WasForced) const;
 
   /// Check whether a fixup can be satisfied, or whether it needs to be relaxed
   /// (increased in size, in order to hold its value correctly).
@@ -178,11 +180,11 @@
   bool fragmentNeedsRelaxation(const MCRelaxableFragment *IF,
                                const MCAsmLayout &Layout) const;
 
-  /// \brief Perform one layout iteration and return true if any offsets
+  /// Perform one layout iteration and return true if any offsets
   /// were adjusted.
   bool layoutOnce(MCAsmLayout &Layout);
 
-  /// \brief Perform one layout iteration of the given section and return true
+  /// Perform one layout iteration of the given section and return true
   /// if any offsets were adjusted.
   bool layoutSectionOnce(MCAsmLayout &Layout, MCSection &Sec);
 
@@ -214,8 +216,9 @@
   // concrete and require clients to pass in a target like object. The other
   // option is to make this abstract, and have targets provide concrete
   // implementations as we do with AsmParser.
-  MCAssembler(MCContext &Context, MCAsmBackend &Backend,
-              MCCodeEmitter &Emitter, MCObjectWriter &Writer);
+  MCAssembler(MCContext &Context, std::unique_ptr<MCAsmBackend> Backend,
+              std::unique_ptr<MCCodeEmitter> Emitter,
+              std::unique_ptr<MCObjectWriter> Writer);
   MCAssembler(const MCAssembler &) = delete;
   MCAssembler &operator=(const MCAssembler &) = delete;
   ~MCAssembler();
@@ -235,8 +238,8 @@
   /// defining a separate atom.
   bool isSymbolLinkerVisible(const MCSymbol &SD) const;
 
-  /// Emit the section contents using the given object writer.
-  void writeSectionData(const MCSection *Section,
+  /// Emit the section contents to \p OS.
+  void writeSectionData(raw_ostream &OS, const MCSection *Section,
                         const MCAsmLayout &Layout) const;
 
   /// Check whether a given symbol has been flagged with .thumb_func.
@@ -274,11 +277,17 @@
 
   MCContext &getContext() const { return Context; }
 
-  MCAsmBackend &getBackend() const { return Backend; }
+  MCAsmBackend *getBackendPtr() const { return Backend.get(); }
 
-  MCCodeEmitter &getEmitter() const { return Emitter; }
+  MCCodeEmitter *getEmitterPtr() const { return Emitter.get(); }
 
-  MCObjectWriter &getWriter() const { return Writer; }
+  MCObjectWriter *getWriterPtr() const { return Writer.get(); }
+
+  MCAsmBackend &getBackend() const { return *Backend; }
+
+  MCCodeEmitter &getEmitter() const { return *Emitter; }
+
+  MCObjectWriter &getWriter() const { return *Writer; }
 
   MCDwarfLineTableParams getDWARFLinetableParams() const { return LTParams; }
   void setDWARFLinetableParams(MCDwarfLineTableParams P) { LTParams = P; }
@@ -409,6 +418,13 @@
   const MCLOHContainer &getLOHContainer() const {
     return const_cast<MCAssembler *>(this)->getLOHContainer();
   }
+
+  struct CGProfileEntry {
+    const MCSymbolRefExpr *From;
+    const MCSymbolRefExpr *To;
+    uint64_t Count;
+  };
+  std::vector<CGProfileEntry> CGProfile;
   /// @}
   /// \name Backend Data Access
   /// @{
@@ -424,21 +440,22 @@
       FileNames.push_back(FileName);
   }
 
-  /// \brief Write the necessary bundle padding to the given object writer.
+  /// Write the necessary bundle padding to \p OS.
   /// Expects a fragment \p F containing instructions and its size \p FSize.
-  void writeFragmentPadding(const MCFragment &F, uint64_t FSize,
-                            MCObjectWriter *OW) const;
+  void writeFragmentPadding(raw_ostream &OS, const MCEncodedFragment &F,
+                            uint64_t FSize) const;
 
   /// @}
 
   void dump() const;
 };
 
-/// \brief Compute the amount of padding required before the fragment \p F to
+/// Compute the amount of padding required before the fragment \p F to
 /// obey bundling restrictions, where \p FOffset is the fragment's offset in
 /// its section and \p FSize is the fragment's size.
-uint64_t computeBundlePadding(const MCAssembler &Assembler, const MCFragment *F,
-                              uint64_t FOffset, uint64_t FSize);
+uint64_t computeBundlePadding(const MCAssembler &Assembler,
+                              const MCEncodedFragment *F, uint64_t FOffset,
+                              uint64_t FSize);
 
 } // end namespace llvm
 
diff --git a/linux-x64/clang/include/llvm/MC/MCCodePadder.h b/linux-x64/clang/include/llvm/MC/MCCodePadder.h
index b7772b6..4dde6bf 100644
--- a/linux-x64/clang/include/llvm/MC/MCCodePadder.h
+++ b/linux-x64/clang/include/llvm/MC/MCCodePadder.h
@@ -28,7 +28,6 @@
 
 struct MCCodePaddingContext {
   bool IsPaddingActive;
-  bool IsBasicBlockInsideInnermostLoop;
   bool IsBasicBlockReachableViaFallthrough;
   bool IsBasicBlockReachableViaBranch;
 };
diff --git a/linux-x64/clang/include/llvm/MC/MCCodeView.h b/linux-x64/clang/include/llvm/MC/MCCodeView.h
index c8f1451..1d9e3c6 100644
--- a/linux-x64/clang/include/llvm/MC/MCCodeView.h
+++ b/linux-x64/clang/include/llvm/MC/MCCodeView.h
@@ -27,7 +27,7 @@
 class MCStreamer;
 class CodeViewContext;
 
-/// \brief Instances of this class represent the information from a
+/// Instances of this class represent the information from a
 /// .cv_loc directive.
 class MCCVLoc {
   uint32_t FunctionId;
@@ -50,13 +50,13 @@
 public:
   unsigned getFunctionId() const { return FunctionId; }
 
-  /// \brief Get the FileNum of this MCCVLoc.
+  /// Get the FileNum of this MCCVLoc.
   unsigned getFileNum() const { return FileNum; }
 
-  /// \brief Get the Line of this MCCVLoc.
+  /// Get the Line of this MCCVLoc.
   unsigned getLine() const { return Line; }
 
-  /// \brief Get the Column of this MCCVLoc.
+  /// Get the Column of this MCCVLoc.
   unsigned getColumn() const { return Column; }
 
   bool isPrologueEnd() const { return PrologueEnd; }
@@ -64,13 +64,13 @@
 
   void setFunctionId(unsigned FID) { FunctionId = FID; }
 
-  /// \brief Set the FileNum of this MCCVLoc.
+  /// Set the FileNum of this MCCVLoc.
   void setFileNum(unsigned fileNum) { FileNum = fileNum; }
 
-  /// \brief Set the Line of this MCCVLoc.
+  /// Set the Line of this MCCVLoc.
   void setLine(unsigned line) { Line = line; }
 
-  /// \brief Set the Column of this MCCVLoc.
+  /// Set the Column of this MCCVLoc.
   void setColumn(unsigned column) {
     assert(column <= UINT16_MAX);
     Column = column;
@@ -80,7 +80,7 @@
   void setIsStmt(bool IS) { IsStmt = IS; }
 };
 
-/// \brief Instances of this class represent the line information for
+/// Instances of this class represent the line information for
 /// the CodeView line table entries.  Which is created after a machine
 /// instruction is assembled and uses an address from a temporary label
 /// created at the current address in the current section and the info from
@@ -201,7 +201,7 @@
 
   bool isValidCVFileNumber(unsigned FileNumber);
 
-  /// \brief Add a line entry.
+  /// Add a line entry.
   void addLineEntry(const MCCVLineEntry &LineEntry);
 
   std::vector<MCCVLineEntry> getFunctionLineEntries(unsigned FuncId);
diff --git a/linux-x64/clang/include/llvm/MC/MCContext.h b/linux-x64/clang/include/llvm/MC/MCContext.h
index c110ffd..a712e2d 100644
--- a/linux-x64/clang/include/llvm/MC/MCContext.h
+++ b/linux-x64/clang/include/llvm/MC/MCContext.h
@@ -137,6 +137,9 @@
     /// The compilation directory to use for DW_AT_comp_dir.
     SmallString<128> CompilationDir;
 
+    /// Prefix replacement map for source file information.
+    std::map<const std::string, const std::string> DebugPrefixMap;
+
     /// The main file name if passed in explicitly.
     std::string MainFileName;
 
@@ -272,7 +275,7 @@
                                        unsigned UniqueID,
                                        const MCSymbolELF *Associated);
 
-    /// \brief Map of currently defined macros.
+    /// Map of currently defined macros.
     StringMap<MCAsmMacro> MacroMap;
 
   public:
@@ -295,6 +298,10 @@
 
     CodeViewContext &getCVContext();
 
+    /// Clear the current cv_loc, if there is one. Avoids lazily creating a
+    /// CodeViewContext if none is needed.
+    void clearCVLocSeen();
+
     void setAllowTemporaryLabels(bool Value) { AllowTemporaryLabels = Value; }
     void setUseNamesOnTempLabels(bool Value) { UseNamesOnTempLabels = Value; }
 
@@ -338,7 +345,7 @@
     /// Gets a symbol that will be defined to the final stack offset of a local
     /// variable after codegen.
     ///
-    /// \param Idx - The index of a local variable passed to @llvm.localescape.
+    /// \param Idx - The index of a local variable passed to \@llvm.localescape.
     MCSymbol *getOrCreateFrameAllocSymbol(StringRef FuncName, unsigned Idx);
 
     MCSymbol *getOrCreateParentFrameOffsetSymbol(StringRef FuncName);
@@ -478,20 +485,32 @@
     /// \name Dwarf Management
     /// @{
 
-    /// \brief Get the compilation directory for DW_AT_comp_dir
+    /// Get the compilation directory for DW_AT_comp_dir
     /// The compilation directory should be set with \c setCompilationDir before
     /// calling this function. If it is unset, an empty string will be returned.
     StringRef getCompilationDir() const { return CompilationDir; }
 
-    /// \brief Set the compilation directory for DW_AT_comp_dir
+    /// Set the compilation directory for DW_AT_comp_dir
     void setCompilationDir(StringRef S) { CompilationDir = S.str(); }
 
-    /// \brief Get the main file name for use in error messages and debug
+    /// Get the debug prefix map.
+    const std::map<const std::string, const std::string> &
+    getDebugPrefixMap() const {
+      return DebugPrefixMap;
+    }
+
+    /// Add an entry to the debug prefix map.
+    void addDebugPrefixMapEntry(const std::string &From, const std::string &To);
+
+    // Remaps all debug directory paths in-place as per the debug prefix map.
+    void RemapDebugPaths();
+
+    /// Get the main file name for use in error messages and debug
     /// info. This can be set to ensure we've got the correct file name
     /// after preprocessing or for -save-temps.
     const std::string &getMainFileName() const { return MainFileName; }
 
-    /// \brief Set the main file name and override the default.
+    /// Set the main file name and override the default.
     void setMainFileName(StringRef S) { MainFileName = S; }
 
     /// Creates an entry in the dwarf file and directory tables.
@@ -546,6 +565,11 @@
                                             Source);
     }
 
+    /// Reports whether MD5 checksum usage is consistent (all-or-none).
+    bool isDwarfMD5UsageConsistent(unsigned CUID) const {
+      return getMCDwarfLineTable(CUID).isMD5UsageConsistent();
+    }
+
     /// Saves the information from the currently parsed dwarf .loc directive
     /// and sets DwarfLocSeen.  When the next instruction is assembled an entry
     /// in the line number table with this information and the address of the
@@ -649,7 +673,7 @@
 
 // operator new and delete aren't allowed inside namespaces.
 // The throw specifications are mandated by the standard.
-/// \brief Placement new for using the MCContext's allocator.
+/// Placement new for using the MCContext's allocator.
 ///
 /// This placement form of operator new uses the MCContext's allocator for
 /// obtaining memory. It is a non-throwing new, which means that it returns
@@ -675,7 +699,7 @@
                           size_t Alignment = 8) noexcept {
   return C.allocate(Bytes, Alignment);
 }
-/// \brief Placement delete companion to the new above.
+/// Placement delete companion to the new above.
 ///
 /// This operator is just a companion to the new above. There is no way of
 /// invoking it directly; see the new operator for more details. This operator
@@ -709,7 +733,7 @@
   return C.allocate(Bytes, Alignment);
 }
 
-/// \brief Placement delete[] companion to the new[] above.
+/// Placement delete[] companion to the new[] above.
 ///
 /// This operator is just a companion to the new[] above. There is no way of
 /// invoking it directly; see the new[] operator for more details. This operator
diff --git a/linux-x64/clang/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h b/linux-x64/clang/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h
index bd3e5d4..df909a0 100644
--- a/linux-x64/clang/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h
+++ b/linux-x64/clang/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h
@@ -22,7 +22,7 @@
 
 namespace llvm {
 
-/// \brief Symbolize using user-provided, C API, callbacks.
+/// Symbolize using user-provided, C API, callbacks.
 ///
 /// See llvm-c/Disassembler.h.
 class MCExternalSymbolizer : public MCSymbolizer {
diff --git a/linux-x64/clang/include/llvm/MC/MCDisassembler/MCRelocationInfo.h b/linux-x64/clang/include/llvm/MC/MCDisassembler/MCRelocationInfo.h
index 7836e88..6030ae6 100644
--- a/linux-x64/clang/include/llvm/MC/MCDisassembler/MCRelocationInfo.h
+++ b/linux-x64/clang/include/llvm/MC/MCDisassembler/MCRelocationInfo.h
@@ -21,7 +21,7 @@
 class MCContext;
 class MCExpr;
 
-/// \brief Create MCExprs from relocations found in an object file.
+/// Create MCExprs from relocations found in an object file.
 class MCRelocationInfo {
 protected:
   MCContext &Ctx;
@@ -32,7 +32,7 @@
   MCRelocationInfo &operator=(const MCRelocationInfo &) = delete;
   virtual ~MCRelocationInfo();
 
-  /// \brief Create an MCExpr for the target-specific \p VariantKind.
+  /// Create an MCExpr for the target-specific \p VariantKind.
   /// The VariantKinds are defined in llvm-c/Disassembler.h.
   /// Used by MCExternalSymbolizer.
   /// \returns If possible, an MCExpr corresponding to VariantKind, else 0.
diff --git a/linux-x64/clang/include/llvm/MC/MCDisassembler/MCSymbolizer.h b/linux-x64/clang/include/llvm/MC/MCDisassembler/MCSymbolizer.h
index d85cf5e..0bfa569 100644
--- a/linux-x64/clang/include/llvm/MC/MCDisassembler/MCSymbolizer.h
+++ b/linux-x64/clang/include/llvm/MC/MCDisassembler/MCSymbolizer.h
@@ -27,7 +27,7 @@
 class MCInst;
 class raw_ostream;
 
-/// \brief Symbolize and annotate disassembled instructions.
+/// Symbolize and annotate disassembled instructions.
 ///
 /// For now this mimics the old symbolization logic (from both ARM and x86), that
 /// relied on user-provided (C API) callbacks to do the actual symbol lookup in
@@ -42,7 +42,7 @@
   std::unique_ptr<MCRelocationInfo> RelInfo;
 
 public:
-  /// \brief Construct an MCSymbolizer, taking ownership of \p RelInfo.
+  /// Construct an MCSymbolizer, taking ownership of \p RelInfo.
   MCSymbolizer(MCContext &Ctx, std::unique_ptr<MCRelocationInfo> RelInfo)
     : Ctx(Ctx), RelInfo(std::move(RelInfo)) {
   }
@@ -51,7 +51,7 @@
   MCSymbolizer &operator=(const MCSymbolizer &) = delete;
   virtual ~MCSymbolizer();
 
-  /// \brief Try to add a symbolic operand instead of \p Value to the MCInst.
+  /// Try to add a symbolic operand instead of \p Value to the MCInst.
   ///
   /// Instead of having a difficult to read immediate, a symbolic operand would
   /// represent this immediate in a more understandable way, for instance as a
@@ -70,7 +70,7 @@
                                         bool IsBranch, uint64_t Offset,
                                         uint64_t InstSize) = 0;
 
-  /// \brief Try to add a comment on the PC-relative load.
+  /// Try to add a comment on the PC-relative load.
   /// For instance, in Mach-O, this is used to add annotations to instructions
   /// that use C string literals, as found in __cstring.
   virtual void tryAddingPcLoadReferenceComment(raw_ostream &cStream,
diff --git a/linux-x64/clang/include/llvm/MC/MCDwarf.h b/linux-x64/clang/include/llvm/MC/MCDwarf.h
index 5cdb176..2bfaf19 100644
--- a/linux-x64/clang/include/llvm/MC/MCDwarf.h
+++ b/linux-x64/clang/include/llvm/MC/MCDwarf.h
@@ -42,16 +42,16 @@
 class SMLoc;
 class SourceMgr;
 
-/// \brief Instances of this class represent the name of the dwarf
+/// Instances of this class represent the name of the dwarf
 /// .file directive and its associated dwarf file number in the MC file,
 /// and MCDwarfFile's are created and uniqued by the MCContext class where
 /// the file number for each is its index into the vector of DwarfFiles (note
 /// index 0 is not used and not a valid dwarf file number).
 struct MCDwarfFile {
-  // \brief The base name of the file without its directory path.
+  // The base name of the file without its directory path.
   std::string Name;
 
-  // \brief The index into the list of directory names for this file name.
+  // The index into the list of directory names for this file name.
   unsigned DirIndex;
 
   /// The MD5 checksum, if there is one. Non-owning pointer to data allocated
@@ -63,7 +63,7 @@
   Optional<StringRef> Source;
 };
 
-/// \brief Instances of this class represent the information from a
+/// Instances of this class represent the information from a
 /// dwarf .loc directive.
 class MCDwarfLoc {
   uint32_t FileNum;
@@ -95,55 +95,55 @@
   // for an MCDwarfLoc object.
 
 public:
-  /// \brief Get the FileNum of this MCDwarfLoc.
+  /// Get the FileNum of this MCDwarfLoc.
   unsigned getFileNum() const { return FileNum; }
 
-  /// \brief Get the Line of this MCDwarfLoc.
+  /// Get the Line of this MCDwarfLoc.
   unsigned getLine() const { return Line; }
 
-  /// \brief Get the Column of this MCDwarfLoc.
+  /// Get the Column of this MCDwarfLoc.
   unsigned getColumn() const { return Column; }
 
-  /// \brief Get the Flags of this MCDwarfLoc.
+  /// Get the Flags of this MCDwarfLoc.
   unsigned getFlags() const { return Flags; }
 
-  /// \brief Get the Isa of this MCDwarfLoc.
+  /// Get the Isa of this MCDwarfLoc.
   unsigned getIsa() const { return Isa; }
 
-  /// \brief Get the Discriminator of this MCDwarfLoc.
+  /// Get the Discriminator of this MCDwarfLoc.
   unsigned getDiscriminator() const { return Discriminator; }
 
-  /// \brief Set the FileNum of this MCDwarfLoc.
+  /// Set the FileNum of this MCDwarfLoc.
   void setFileNum(unsigned fileNum) { FileNum = fileNum; }
 
-  /// \brief Set the Line of this MCDwarfLoc.
+  /// Set the Line of this MCDwarfLoc.
   void setLine(unsigned line) { Line = line; }
 
-  /// \brief Set the Column of this MCDwarfLoc.
+  /// Set the Column of this MCDwarfLoc.
   void setColumn(unsigned column) {
     assert(column <= UINT16_MAX);
     Column = column;
   }
 
-  /// \brief Set the Flags of this MCDwarfLoc.
+  /// Set the Flags of this MCDwarfLoc.
   void setFlags(unsigned flags) {
     assert(flags <= UINT8_MAX);
     Flags = flags;
   }
 
-  /// \brief Set the Isa of this MCDwarfLoc.
+  /// Set the Isa of this MCDwarfLoc.
   void setIsa(unsigned isa) {
     assert(isa <= UINT8_MAX);
     Isa = isa;
   }
 
-  /// \brief Set the Discriminator of this MCDwarfLoc.
+  /// Set the Discriminator of this MCDwarfLoc.
   void setDiscriminator(unsigned discriminator) {
     Discriminator = discriminator;
   }
 };
 
-/// \brief Instances of this class represent the line information for
+/// Instances of this class represent the line information for
 /// the dwarf line table entries.  Which is created after a machine
 /// instruction is assembled and uses an address from a temporary label
 /// created at the current address in the current section and the info from
@@ -168,13 +168,13 @@
   static void Make(MCObjectStreamer *MCOS, MCSection *Section);
 };
 
-/// \brief Instances of this class represent the line information for a compile
+/// Instances of this class represent the line information for a compile
 /// unit where machine instructions have been assembled after seeing .loc
 /// directives.  This is the information used to build the dwarf line
 /// table for a section.
 class MCLineSection {
 public:
-  // \brief Add an entry to this MCLineSection's line entries.
+  // Add an entry to this MCLineSection's line entries.
   void addLineEntry(const MCDwarfLineEntry &LineEntry, MCSection *Sec) {
     MCLineDivisions[Sec].push_back(LineEntry);
   }
@@ -213,11 +213,14 @@
   SmallVector<std::string, 3> MCDwarfDirs;
   SmallVector<MCDwarfFile, 3> MCDwarfFiles;
   StringMap<unsigned> SourceIdMap;
-  StringRef CompilationDir;
+  std::string CompilationDir;
   MCDwarfFile RootFile;
-  bool HasMD5 = false;
   bool HasSource = false;
+private:
+  bool HasAllMD5 = true;
+  bool HasAnyMD5 = false;
 
+public:
   MCDwarfLineTableHeader() = default;
 
   Expected<unsigned> tryGetFile(StringRef &Directory, StringRef &FileName,
@@ -231,11 +234,22 @@
   Emit(MCStreamer *MCOS, MCDwarfLineTableParams Params,
        ArrayRef<char> SpecialOpcodeLengths,
        Optional<MCDwarfLineStr> &LineStr) const;
+  void resetMD5Usage() {
+    HasAllMD5 = true;
+    HasAnyMD5 = false;
+  }
+  void trackMD5Usage(bool MD5Used) {
+    HasAllMD5 &= MD5Used;
+    HasAnyMD5 |= MD5Used;
+  }
+  bool isMD5UsageConsistent() const {
+    return MCDwarfFiles.empty() || (HasAllMD5 == HasAnyMD5);
+  }
 
 private:
   void emitV2FileDirTables(MCStreamer *MCOS) const;
-  void emitV5FileDirTables(MCStreamer *MCOS,
-                           Optional<MCDwarfLineStr> &LineStr) const;
+  void emitV5FileDirTables(MCStreamer *MCOS, Optional<MCDwarfLineStr> &LineStr,
+                           StringRef CtxCompilationDir) const;
 };
 
 class MCDwarfDwoLineTable {
@@ -251,7 +265,7 @@
     Header.RootFile.DirIndex = 0;
     Header.RootFile.Checksum = Checksum;
     Header.RootFile.Source = Source;
-    Header.HasMD5 = (Checksum != nullptr);
+    Header.trackMD5Usage(Checksum);
     Header.HasSource = Source.hasValue();
   }
 
@@ -294,10 +308,22 @@
     Header.RootFile.DirIndex = 0;
     Header.RootFile.Checksum = Checksum;
     Header.RootFile.Source = Source;
-    Header.HasMD5 = (Checksum != nullptr);
+    Header.trackMD5Usage(Checksum);
     Header.HasSource = Source.hasValue();
   }
 
+  void resetRootFile() {
+    assert(Header.MCDwarfFiles.empty());
+    Header.RootFile.Name.clear();
+    Header.resetMD5Usage();
+    Header.HasSource = false;
+  }
+
+  bool hasRootFile() const { return !Header.RootFile.Name.empty(); }
+
+  // Report whether MD5 usage has been consistent (all-or-none).
+  bool isMD5UsageConsistent() const { return Header.isMD5UsageConsistent(); }
+
   MCSymbol *getLabel() const {
     return Header.Label;
   }
@@ -336,6 +362,13 @@
   static void Encode(MCContext &Context, MCDwarfLineTableParams Params,
                      int64_t LineDelta, uint64_t AddrDelta, raw_ostream &OS);
 
+  /// Utility function to encode a Dwarf pair of LineDelta and AddrDeltas using
+  /// fixed length operands.
+  static bool FixedEncode(MCContext &Context,
+                          MCDwarfLineTableParams Params,
+                          int64_t LineDelta, uint64_t AddrDelta,
+                          raw_ostream &OS, uint32_t *Offset, uint32_t *Size);
+
   /// Utility function to emit the encoding to a streamer.
   static void Emit(MCStreamer *MCOS, MCDwarfLineTableParams Params,
                    int64_t LineDelta, uint64_t AddrDelta);
@@ -422,41 +455,41 @@
   }
 
 public:
-  /// \brief .cfi_def_cfa defines a rule for computing CFA as: take address from
+  /// .cfi_def_cfa defines a rule for computing CFA as: take address from
   /// Register and add Offset to it.
   static MCCFIInstruction createDefCfa(MCSymbol *L, unsigned Register,
                                        int Offset) {
     return MCCFIInstruction(OpDefCfa, L, Register, -Offset, "");
   }
 
-  /// \brief .cfi_def_cfa_register modifies a rule for computing CFA. From now
+  /// .cfi_def_cfa_register modifies a rule for computing CFA. From now
   /// on Register will be used instead of the old one. Offset remains the same.
   static MCCFIInstruction createDefCfaRegister(MCSymbol *L, unsigned Register) {
     return MCCFIInstruction(OpDefCfaRegister, L, Register, 0, "");
   }
 
-  /// \brief .cfi_def_cfa_offset modifies a rule for computing CFA. Register
+  /// .cfi_def_cfa_offset modifies a rule for computing CFA. Register
   /// remains the same, but offset is new. Note that it is the absolute offset
   /// that will be added to a defined register to the compute CFA address.
   static MCCFIInstruction createDefCfaOffset(MCSymbol *L, int Offset) {
     return MCCFIInstruction(OpDefCfaOffset, L, 0, -Offset, "");
   }
 
-  /// \brief .cfi_adjust_cfa_offset Same as .cfi_def_cfa_offset, but
+  /// .cfi_adjust_cfa_offset Same as .cfi_def_cfa_offset, but
   /// Offset is a relative value that is added/subtracted from the previous
   /// offset.
   static MCCFIInstruction createAdjustCfaOffset(MCSymbol *L, int Adjustment) {
     return MCCFIInstruction(OpAdjustCfaOffset, L, 0, Adjustment, "");
   }
 
-  /// \brief .cfi_offset Previous value of Register is saved at offset Offset
+  /// .cfi_offset Previous value of Register is saved at offset Offset
   /// from CFA.
   static MCCFIInstruction createOffset(MCSymbol *L, unsigned Register,
                                        int Offset) {
     return MCCFIInstruction(OpOffset, L, Register, Offset, "");
   }
 
-  /// \brief .cfi_rel_offset Previous value of Register is saved at offset
+  /// .cfi_rel_offset Previous value of Register is saved at offset
   /// Offset from the current CFA register. This is transformed to .cfi_offset
   /// using the known displacement of the CFA register from the CFA.
   static MCCFIInstruction createRelOffset(MCSymbol *L, unsigned Register,
@@ -464,54 +497,54 @@
     return MCCFIInstruction(OpRelOffset, L, Register, Offset, "");
   }
 
-  /// \brief .cfi_register Previous value of Register1 is saved in
+  /// .cfi_register Previous value of Register1 is saved in
   /// register Register2.
   static MCCFIInstruction createRegister(MCSymbol *L, unsigned Register1,
                                          unsigned Register2) {
     return MCCFIInstruction(OpRegister, L, Register1, Register2);
   }
 
-  /// \brief .cfi_window_save SPARC register window is saved.
+  /// .cfi_window_save SPARC register window is saved.
   static MCCFIInstruction createWindowSave(MCSymbol *L) {
     return MCCFIInstruction(OpWindowSave, L, 0, 0, "");
   }
 
-  /// \brief .cfi_restore says that the rule for Register is now the same as it
+  /// .cfi_restore says that the rule for Register is now the same as it
   /// was at the beginning of the function, after all initial instructions added
   /// by .cfi_startproc were executed.
   static MCCFIInstruction createRestore(MCSymbol *L, unsigned Register) {
     return MCCFIInstruction(OpRestore, L, Register, 0, "");
   }
 
-  /// \brief .cfi_undefined From now on the previous value of Register can't be
+  /// .cfi_undefined From now on the previous value of Register can't be
   /// restored anymore.
   static MCCFIInstruction createUndefined(MCSymbol *L, unsigned Register) {
     return MCCFIInstruction(OpUndefined, L, Register, 0, "");
   }
 
-  /// \brief .cfi_same_value Current value of Register is the same as in the
+  /// .cfi_same_value Current value of Register is the same as in the
   /// previous frame. I.e., no restoration is needed.
   static MCCFIInstruction createSameValue(MCSymbol *L, unsigned Register) {
     return MCCFIInstruction(OpSameValue, L, Register, 0, "");
   }
 
-  /// \brief .cfi_remember_state Save all current rules for all registers.
+  /// .cfi_remember_state Save all current rules for all registers.
   static MCCFIInstruction createRememberState(MCSymbol *L) {
     return MCCFIInstruction(OpRememberState, L, 0, 0, "");
   }
 
-  /// \brief .cfi_restore_state Restore the previously saved state.
+  /// .cfi_restore_state Restore the previously saved state.
   static MCCFIInstruction createRestoreState(MCSymbol *L) {
     return MCCFIInstruction(OpRestoreState, L, 0, 0, "");
   }
 
-  /// \brief .cfi_escape Allows the user to add arbitrary bytes to the unwind
+  /// .cfi_escape Allows the user to add arbitrary bytes to the unwind
   /// info.
   static MCCFIInstruction createEscape(MCSymbol *L, StringRef Vals) {
     return MCCFIInstruction(OpEscape, L, 0, 0, Vals);
   }
 
-  /// \brief A special wrapper for .cfi_escape that indicates GNU_ARGS_SIZE
+  /// A special wrapper for .cfi_escape that indicates GNU_ARGS_SIZE
   static MCCFIInstruction createGnuArgsSize(MCSymbol *L, int Size) {
     return MCCFIInstruction(OpGnuArgsSize, L, 0, Size, "");
   }
diff --git a/linux-x64/clang/include/llvm/MC/MCELFObjectWriter.h b/linux-x64/clang/include/llvm/MC/MCELFObjectWriter.h
index fd8d118..389a4d7 100644
--- a/linux-x64/clang/include/llvm/MC/MCELFObjectWriter.h
+++ b/linux-x64/clang/include/llvm/MC/MCELFObjectWriter.h
@@ -12,6 +12,8 @@
 
 #include "llvm/ADT/Triple.h"
 #include "llvm/BinaryFormat/ELF.h"
+#include "llvm/MC/MCObjectWriter.h"
+#include "llvm/MC/MCSectionELF.h"
 #include "llvm/Support/Casting.h"
 #include "llvm/Support/raw_ostream.h"
 #include <cstdint>
@@ -50,7 +52,7 @@
   void dump() const { print(errs()); }
 };
 
-class MCELFObjectTargetWriter {
+class MCELFObjectTargetWriter : public MCObjectTargetWriter {
   const uint8_t OSABI;
   const uint16_t EMachine;
   const unsigned HasRelocationAddend : 1;
@@ -63,6 +65,11 @@
 public:
   virtual ~MCELFObjectTargetWriter() = default;
 
+  virtual Triple::ObjectFormatType getFormat() const { return Triple::ELF; }
+  static bool classof(const MCObjectTargetWriter *W) {
+    return W->getFormat() == Triple::ELF;
+  }
+
   static uint8_t getOSABI(Triple::OSType OSType) {
     switch (OSType) {
       case Triple::CloudABI:
@@ -84,6 +91,8 @@
   virtual void sortRelocs(const MCAssembler &Asm,
                           std::vector<ELFRelocationEntry> &Relocs);
 
+  virtual void addTargetSectionFlags(MCContext &Ctx, MCSectionELF &Sec);
+
   /// \name Accessors
   /// @{
   uint8_t getOSABI() const { return OSABI; }
@@ -132,7 +141,7 @@
   }
 };
 
-/// \brief Construct a new ELF writer instance.
+/// Construct a new ELF writer instance.
 ///
 /// \param MOTW - The target specific ELF writer subclass.
 /// \param OS - The stream to write to.
@@ -141,6 +150,11 @@
 createELFObjectWriter(std::unique_ptr<MCELFObjectTargetWriter> MOTW,
                       raw_pwrite_stream &OS, bool IsLittleEndian);
 
+std::unique_ptr<MCObjectWriter>
+createELFDwoObjectWriter(std::unique_ptr<MCELFObjectTargetWriter> MOTW,
+                         raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS,
+                         bool IsLittleEndian);
+
 } // end namespace llvm
 
 #endif // LLVM_MC_MCELFOBJECTWRITER_H
diff --git a/linux-x64/clang/include/llvm/MC/MCELFStreamer.h b/linux-x64/clang/include/llvm/MC/MCELFStreamer.h
index 2f23cd6..3797079 100644
--- a/linux-x64/clang/include/llvm/MC/MCELFStreamer.h
+++ b/linux-x64/clang/include/llvm/MC/MCELFStreamer.h
@@ -24,7 +24,8 @@
 class MCELFStreamer : public MCObjectStreamer {
 public:
   MCELFStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> TAB,
-                raw_pwrite_stream &OS, std::unique_ptr<MCCodeEmitter> Emitter);
+                std::unique_ptr<MCObjectWriter> OW,
+                std::unique_ptr<MCCodeEmitter> Emitter);
 
   ~MCELFStreamer() override = default;
 
@@ -58,7 +59,8 @@
                              unsigned ByteAlignment) override;
 
   void EmitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr,
-                    uint64_t Size = 0, unsigned ByteAlignment = 0) override;
+                    uint64_t Size = 0, unsigned ByteAlignment = 0,
+                    SMLoc L = SMLoc()) override;
   void EmitTBSSSymbol(MCSection *Section, MCSymbol *Symbol, uint64_t Size,
                       unsigned ByteAlignment = 0) override;
   void EmitValueImpl(const MCExpr *Value, unsigned Size,
@@ -68,6 +70,9 @@
 
   void EmitValueToAlignment(unsigned, int64_t, unsigned, unsigned) override;
 
+  void emitCGProfileEntry(const MCSymbolRefExpr *From,
+                          const MCSymbolRefExpr *To, uint64_t Count) override;
+
   void FinishImpl() override;
 
   void EmitBundleAlignMode(unsigned AlignPow2) override;
@@ -80,8 +85,10 @@
   void EmitInstToData(const MCInst &Inst, const MCSubtargetInfo &) override;
 
   void fixSymbolsInTLSFixups(const MCExpr *expr);
+  void finalizeCGProfileEntry(const MCSymbolRefExpr *&S);
+  void finalizeCGProfile();
 
-  /// \brief Merge the content of the fragment \p EF into the fragment \p DF.
+  /// Merge the content of the fragment \p EF into the fragment \p DF.
   void mergeFragment(MCDataFragment *, MCDataFragment *);
 
   bool SeenIdent = false;
@@ -93,7 +100,7 @@
 
 MCELFStreamer *createARMELFStreamer(MCContext &Context,
                                     std::unique_ptr<MCAsmBackend> TAB,
-                                    raw_pwrite_stream &OS,
+                                    std::unique_ptr<MCObjectWriter> OW,
                                     std::unique_ptr<MCCodeEmitter> Emitter,
                                     bool RelaxAll, bool IsThumb);
 
diff --git a/linux-x64/clang/include/llvm/MC/MCExpr.h b/linux-x64/clang/include/llvm/MC/MCExpr.h
index fcbbe65..0d8f3ca 100644
--- a/linux-x64/clang/include/llvm/MC/MCExpr.h
+++ b/linux-x64/clang/include/llvm/MC/MCExpr.h
@@ -31,7 +31,7 @@
 
 using SectionAddrMap = DenseMap<const MCSection *, uint64_t>;
 
-/// \brief Base class for the full range of assembler expressions which are
+/// Base class for the full range of assembler expressions which are
 /// needed for parsing.
 class MCExpr {
 public:
@@ -85,7 +85,7 @@
   /// \name Expression Evaluation
   /// @{
 
-  /// \brief Try to evaluate the expression to an absolute value.
+  /// Try to evaluate the expression to an absolute value.
   ///
   /// \param Res - The absolute value, if evaluation succeeds.
   /// \param Layout - The assembler layout object to use for evaluating symbol
@@ -96,11 +96,12 @@
                           const SectionAddrMap &Addrs) const;
   bool evaluateAsAbsolute(int64_t &Res) const;
   bool evaluateAsAbsolute(int64_t &Res, const MCAssembler &Asm) const;
+  bool evaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm) const;
   bool evaluateAsAbsolute(int64_t &Res, const MCAsmLayout &Layout) const;
 
   bool evaluateKnownAbsolute(int64_t &Res, const MCAsmLayout &Layout) const;
 
-  /// \brief Try to evaluate the expression to a relocatable value, i.e. an
+  /// Try to evaluate the expression to a relocatable value, i.e. an
   /// expression of the fixed form (a - b + constant).
   ///
   /// \param Res - The relocatable value, if evaluation succeeds.
@@ -110,14 +111,14 @@
   bool evaluateAsRelocatable(MCValue &Res, const MCAsmLayout *Layout,
                              const MCFixup *Fixup) const;
 
-  /// \brief Try to evaluate the expression to the form (a - b + constant) where
+  /// Try to evaluate the expression to the form (a - b + constant) where
   /// neither a nor b are variables.
   ///
   /// This is a more aggressive variant of evaluateAsRelocatable. The intended
   /// use is for when relocations are not available, like the .size directive.
   bool evaluateAsValue(MCValue &Res, const MCAsmLayout &Layout) const;
 
-  /// \brief Find the "associated section" for this expression, which is
+  /// Find the "associated section" for this expression, which is
   /// currently defined as the absolute section for constants, or
   /// otherwise the section associated with the first defined symbol in the
   /// expression.
@@ -131,7 +132,7 @@
   return OS;
 }
 
-//// \brief  Represent a constant integer expression.
+////  Represent a constant integer expression.
 class MCConstantExpr : public MCExpr {
   int64_t Value;
 
@@ -157,7 +158,7 @@
   }
 };
 
-/// \brief  Represent a reference to a symbol from inside an expression.
+///  Represent a reference to a symbol from inside an expression.
 ///
 /// A symbol reference in an expression may be a use of a label, a use of an
 /// assembler variable (defined constant), or constitute an implicit definition
@@ -217,6 +218,8 @@
     VK_PPC_LO,             // symbol@l
     VK_PPC_HI,             // symbol@h
     VK_PPC_HA,             // symbol@ha
+    VK_PPC_HIGH,           // symbol@high
+    VK_PPC_HIGHA,          // symbol@higha
     VK_PPC_HIGHER,         // symbol@higher
     VK_PPC_HIGHERA,        // symbol@highera
     VK_PPC_HIGHEST,        // symbol@highest
@@ -233,6 +236,8 @@
     VK_PPC_TPREL_LO,       // symbol@tprel@l
     VK_PPC_TPREL_HI,       // symbol@tprel@h
     VK_PPC_TPREL_HA,       // symbol@tprel@ha
+    VK_PPC_TPREL_HIGH,     // symbol@tprel@high
+    VK_PPC_TPREL_HIGHA,    // symbol@tprel@higha
     VK_PPC_TPREL_HIGHER,   // symbol@tprel@higher
     VK_PPC_TPREL_HIGHERA,  // symbol@tprel@highera
     VK_PPC_TPREL_HIGHEST,  // symbol@tprel@highest
@@ -240,6 +245,8 @@
     VK_PPC_DTPREL_LO,      // symbol@dtprel@l
     VK_PPC_DTPREL_HI,      // symbol@dtprel@h
     VK_PPC_DTPREL_HA,      // symbol@dtprel@ha
+    VK_PPC_DTPREL_HIGH,    // symbol@dtprel@high
+    VK_PPC_DTPREL_HIGHA,   // symbol@dtprel@higha
     VK_PPC_DTPREL_HIGHER,  // symbol@dtprel@higher
     VK_PPC_DTPREL_HIGHERA, // symbol@dtprel@highera
     VK_PPC_DTPREL_HIGHEST, // symbol@dtprel@highest
@@ -279,12 +286,14 @@
     VK_Hexagon_IE_GOT,
 
     VK_WebAssembly_FUNCTION, // Function table index, rather than virtual addr
+    VK_WebAssembly_GLOBAL,   // Global object index
     VK_WebAssembly_TYPEINDEX,// Type table index
 
     VK_AMDGPU_GOTPCREL32_LO, // symbol@gotpcrel32@lo
     VK_AMDGPU_GOTPCREL32_HI, // symbol@gotpcrel32@hi
     VK_AMDGPU_REL32_LO,      // symbol@rel32@lo
     VK_AMDGPU_REL32_HI,      // symbol@rel32@hi
+    VK_AMDGPU_REL64,         // symbol@rel64
 
     VK_TPREL,
     VK_DTPREL
@@ -346,7 +355,7 @@
   }
 };
 
-/// \brief Unary assembler expressions.
+/// Unary assembler expressions.
 class MCUnaryExpr : public MCExpr {
 public:
   enum Opcode {
@@ -390,10 +399,10 @@
   /// \name Accessors
   /// @{
 
-  /// \brief Get the kind of this unary expression.
+  /// Get the kind of this unary expression.
   Opcode getOpcode() const { return Op; }
 
-  /// \brief Get the child of this unary expression.
+  /// Get the child of this unary expression.
   const MCExpr *getSubExpr() const { return Expr; }
 
   /// @}
@@ -403,7 +412,7 @@
   }
 };
 
-/// \brief Binary assembler expressions.
+/// Binary assembler expressions.
 class MCBinaryExpr : public MCExpr {
 public:
   enum Opcode {
@@ -547,13 +556,13 @@
   /// \name Accessors
   /// @{
 
-  /// \brief Get the kind of this binary expression.
+  /// Get the kind of this binary expression.
   Opcode getOpcode() const { return Op; }
 
-  /// \brief Get the left-hand side expression of the binary operator.
+  /// Get the left-hand side expression of the binary operator.
   const MCExpr *getLHS() const { return LHS; }
 
-  /// \brief Get the right-hand side expression of the binary operator.
+  /// Get the right-hand side expression of the binary operator.
   const MCExpr *getRHS() const { return RHS; }
 
   /// @}
@@ -563,7 +572,7 @@
   }
 };
 
-/// \brief This is an extension point for target-specific MCExpr subclasses to
+/// This is an extension point for target-specific MCExpr subclasses to
 /// implement.
 ///
 /// NOTE: All subclasses are required to have trivial destructors because
@@ -580,6 +589,9 @@
   virtual bool evaluateAsRelocatableImpl(MCValue &Res,
                                          const MCAsmLayout *Layout,
                                          const MCFixup *Fixup) const = 0;
+  // This should be set when assigned expressions are not valid ".set"
+  // expressions, e.g. registers, and must be inlined.
+  virtual bool inlineAssignedExpr() const { return false; }
   virtual void visitUsedExpr(MCStreamer& Streamer) const = 0;
   virtual MCFragment *findAssociatedFragment() const = 0;
 
diff --git a/linux-x64/clang/include/llvm/MC/MCFixup.h b/linux-x64/clang/include/llvm/MC/MCFixup.h
index b83086c..5f301ea 100644
--- a/linux-x64/clang/include/llvm/MC/MCFixup.h
+++ b/linux-x64/clang/include/llvm/MC/MCFixup.h
@@ -19,7 +19,7 @@
 namespace llvm {
 class MCExpr;
 
-/// \brief Extensible enumeration to represent the type of a fixup.
+/// Extensible enumeration to represent the type of a fixup.
 enum MCFixupKind {
   FK_Data_1 = 0, ///< A one-byte fixup.
   FK_Data_2,     ///< A two-byte fixup.
@@ -41,6 +41,14 @@
   FK_SecRel_2,   ///< A two-byte section relative fixup.
   FK_SecRel_4,   ///< A four-byte section relative fixup.
   FK_SecRel_8,   ///< A eight-byte section relative fixup.
+  FK_Data_Add_1, ///< A one-byte add fixup.
+  FK_Data_Add_2, ///< A two-byte add fixup.
+  FK_Data_Add_4, ///< A four-byte add fixup.
+  FK_Data_Add_8, ///< A eight-byte add fixup.
+  FK_Data_Sub_1, ///< A one-byte sub fixup.
+  FK_Data_Sub_2, ///< A two-byte sub fixup.
+  FK_Data_Sub_4, ///< A four-byte sub fixup.
+  FK_Data_Sub_8, ///< A eight-byte sub fixup.
 
   FirstTargetFixupKind = 128,
 
@@ -49,7 +57,7 @@
   MaxTargetFixupKind = (1 << 8)
 };
 
-/// \brief Encode information on a single operation to perform on a byte
+/// Encode information on a single operation to perform on a byte
 /// sequence (e.g., an encoded instruction) which requires assemble- or run-
 /// time patching.
 ///
@@ -90,6 +98,28 @@
     return FI;
   }
 
+  /// Return a fixup corresponding to the add half of a add/sub fixup pair for
+  /// the given Fixup.
+  static MCFixup createAddFor(const MCFixup &Fixup) {
+    MCFixup FI;
+    FI.Value = Fixup.getValue();
+    FI.Offset = Fixup.getOffset();
+    FI.Kind = (unsigned)getAddKindForKind(Fixup.getKind());
+    FI.Loc = Fixup.getLoc();
+    return FI;
+  }
+
+  /// Return a fixup corresponding to the sub half of a add/sub fixup pair for
+  /// the given Fixup.
+  static MCFixup createSubFor(const MCFixup &Fixup) {
+    MCFixup FI;
+    FI.Value = Fixup.getValue();
+    FI.Offset = Fixup.getOffset();
+    FI.Kind = (unsigned)getSubKindForKind(Fixup.getKind());
+    FI.Loc = Fixup.getLoc();
+    return FI;
+  }
+
   MCFixupKind getKind() const { return MCFixupKind(Kind); }
 
   uint32_t getOffset() const { return Offset; }
@@ -97,7 +127,7 @@
 
   const MCExpr *getValue() const { return Value; }
 
-  /// \brief Return the generic fixup kind for a value with the given size. It
+  /// Return the generic fixup kind for a value with the given size. It
   /// is an error to pass an unsupported size.
   static MCFixupKind getKindForSize(unsigned Size, bool isPCRel) {
     switch (Size) {
@@ -109,6 +139,30 @@
     }
   }
 
+  /// Return the generic fixup kind for an addition with a given size. It
+  /// is an error to pass an unsupported size.
+  static MCFixupKind getAddKindForKind(unsigned Kind) {
+    switch (Kind) {
+    default: llvm_unreachable("Unknown type to convert!");
+    case FK_Data_1: return FK_Data_Add_1;
+    case FK_Data_2: return FK_Data_Add_2;
+    case FK_Data_4: return FK_Data_Add_4;
+    case FK_Data_8: return FK_Data_Add_8;
+    }
+  }
+
+  /// Return the generic fixup kind for an subtraction with a given size. It
+  /// is an error to pass an unsupported size.
+  static MCFixupKind getSubKindForKind(unsigned Kind) {
+    switch (Kind) {
+    default: llvm_unreachable("Unknown type to convert!");
+    case FK_Data_1: return FK_Data_Sub_1;
+    case FK_Data_2: return FK_Data_Sub_2;
+    case FK_Data_4: return FK_Data_Sub_4;
+    case FK_Data_8: return FK_Data_Sub_8;
+    }
+  }
+
   SMLoc getLoc() const { return Loc; }
 };
 
diff --git a/linux-x64/clang/include/llvm/MC/MCFixupKindInfo.h b/linux-x64/clang/include/llvm/MC/MCFixupKindInfo.h
index 58183bd..483abb3 100644
--- a/linux-x64/clang/include/llvm/MC/MCFixupKindInfo.h
+++ b/linux-x64/clang/include/llvm/MC/MCFixupKindInfo.h
@@ -12,7 +12,7 @@
 
 namespace llvm {
 
-/// \brief Target independent information on a fixup kind.
+/// Target independent information on a fixup kind.
 struct MCFixupKindInfo {
   enum FixupKindFlags {
     /// Is this fixup kind PCrelative? This is used by the assembler backend to
diff --git a/linux-x64/clang/include/llvm/MC/MCFragment.h b/linux-x64/clang/include/llvm/MC/MCFragment.h
index 38c3655..c999c9f 100644
--- a/linux-x64/clang/include/llvm/MC/MCFragment.h
+++ b/linux-x64/clang/include/llvm/MC/MCFragment.h
@@ -56,18 +56,13 @@
   bool HasInstructions;
 
 private:
-  /// \brief Should this fragment be aligned to the end of a bundle?
-  bool AlignToBundleEnd;
-
-  uint8_t BundlePadding;
-
   /// LayoutOrder - The layout order of this fragment.
   unsigned LayoutOrder;
 
   /// The data for the section this fragment is in.
   MCSection *Parent;
 
-  /// Atom - The atom this fragment is in, as represented by it's defining
+  /// Atom - The atom this fragment is in, as represented by its defining
   /// symbol.
   const MCSymbol *Atom;
 
@@ -84,7 +79,7 @@
 
 protected:
   MCFragment(FragmentType Kind, bool HasInstructions,
-             uint8_t BundlePadding, MCSection *Parent = nullptr);
+             MCSection *Parent = nullptr);
 
   ~MCFragment();
 
@@ -110,26 +105,11 @@
   unsigned getLayoutOrder() const { return LayoutOrder; }
   void setLayoutOrder(unsigned Value) { LayoutOrder = Value; }
 
-  /// \brief Does this fragment have instructions emitted into it? By default
+  /// Does this fragment have instructions emitted into it? By default
   /// this is false, but specific fragment types may set it to true.
   bool hasInstructions() const { return HasInstructions; }
 
-  /// \brief Should this fragment be placed at the end of an aligned bundle?
-  bool alignToBundleEnd() const { return AlignToBundleEnd; }
-  void setAlignToBundleEnd(bool V) { AlignToBundleEnd = V; }
-
-  /// \brief Get the padding size that must be inserted before this fragment.
-  /// Used for bundling. By default, no padding is inserted.
-  /// Note that padding size is restricted to 8 bits. This is an optimization
-  /// to reduce the amount of space used for each fragment. In practice, larger
-  /// padding should never be required.
-  uint8_t getBundlePadding() const { return BundlePadding; }
-
-  /// \brief Set the padding size for this fragment. By default it's a no-op,
-  /// and only some fragments have a meaningful implementation.
-  void setBundlePadding(uint8_t N) { BundlePadding = N; }
-
-  /// \brief Return true if given frgment has FT_Dummy type.
+  /// Return true if given frgment has FT_Dummy type.
   bool isDummy() const { return Kind == FT_Dummy; }
 
   void dump() const;
@@ -137,8 +117,7 @@
 
 class MCDummyFragment : public MCFragment {
 public:
-  explicit MCDummyFragment(MCSection *Sec)
-      : MCFragment(FT_Dummy, false, 0, Sec) {}
+  explicit MCDummyFragment(MCSection *Sec) : MCFragment(FT_Dummy, false, Sec) {}
 
   static bool classof(const MCFragment *F) { return F->getKind() == FT_Dummy; }
 };
@@ -147,10 +126,19 @@
 /// data.
 ///
 class MCEncodedFragment : public MCFragment {
+  /// Should this fragment be aligned to the end of a bundle?
+  bool AlignToBundleEnd = false;
+
+  uint8_t BundlePadding = 0;
+
 protected:
   MCEncodedFragment(MCFragment::FragmentType FType, bool HasInstructions,
                     MCSection *Sec)
-      : MCFragment(FType, HasInstructions, 0, Sec) {}
+      : MCFragment(FType, HasInstructions, Sec) {}
+
+  /// STI - The MCSubtargetInfo in effect when the instruction was encoded.
+  /// must be non-null for instructions.
+  const MCSubtargetInfo *STI = nullptr;
 
 public:
   static bool classof(const MCFragment *F) {
@@ -161,9 +149,36 @@
     case MCFragment::FT_Relaxable:
     case MCFragment::FT_CompactEncodedInst:
     case MCFragment::FT_Data:
+    case MCFragment::FT_Dwarf:
       return true;
     }
   }
+
+  /// Should this fragment be placed at the end of an aligned bundle?
+  bool alignToBundleEnd() const { return AlignToBundleEnd; }
+  void setAlignToBundleEnd(bool V) { AlignToBundleEnd = V; }
+
+  /// Get the padding size that must be inserted before this fragment.
+  /// Used for bundling. By default, no padding is inserted.
+  /// Note that padding size is restricted to 8 bits. This is an optimization
+  /// to reduce the amount of space used for each fragment. In practice, larger
+  /// padding should never be required.
+  uint8_t getBundlePadding() const { return BundlePadding; }
+
+  /// Set the padding size for this fragment. By default it's a no-op,
+  /// and only some fragments have a meaningful implementation.
+  void setBundlePadding(uint8_t N) { BundlePadding = N; }
+
+  /// Retrieve the MCSubTargetInfo in effect when the instruction was encoded.
+  /// Guaranteed to be non-null if hasInstructions() == true
+  const MCSubtargetInfo *getSubtargetInfo() const { return STI; }
+
+  /// Record that the fragment contains instructions with the MCSubtargetInfo in
+  /// effect when the instruction was encoded.
+  void setHasInstructions(const MCSubtargetInfo &STI) {
+    HasInstructions = true;
+    this->STI = &STI;
+  }
 };
 
 /// Interface implemented by fragments that contain encoded instructions and/or
@@ -202,6 +217,7 @@
                                                     Sec) {}
 
 public:
+
   using const_fixup_iterator = SmallVectorImpl<MCFixup>::const_iterator;
   using fixup_iterator = SmallVectorImpl<MCFixup>::iterator;
 
@@ -217,7 +233,7 @@
   static bool classof(const MCFragment *F) {
     MCFragment::FragmentType Kind = F->getKind();
     return Kind == MCFragment::FT_Relaxable || Kind == MCFragment::FT_Data ||
-           Kind == MCFragment::FT_CVDefRange;
+           Kind == MCFragment::FT_CVDefRange || Kind == MCFragment::FT_Dwarf;;
   }
 };
 
@@ -228,8 +244,6 @@
   MCDataFragment(MCSection *Sec = nullptr)
       : MCEncodedFragmentWithFixups<32, 4>(FT_Data, false, Sec) {}
 
-  void setHasInstructions(bool V) { HasInstructions = V; }
-
   static bool classof(const MCFragment *F) {
     return F->getKind() == MCFragment::FT_Data;
   }
@@ -259,20 +273,15 @@
   /// Inst - The instruction this is a fragment for.
   MCInst Inst;
 
-  /// STI - The MCSubtargetInfo in effect when the instruction was encoded.
-  const MCSubtargetInfo &STI;
-
 public:
   MCRelaxableFragment(const MCInst &Inst, const MCSubtargetInfo &STI,
                       MCSection *Sec = nullptr)
       : MCEncodedFragmentWithFixups(FT_Relaxable, true, Sec),
-        Inst(Inst), STI(STI) {}
+        Inst(Inst) { this->STI = &STI; }
 
   const MCInst &getInst() const { return Inst; }
   void setInst(const MCInst &Value) { Inst = Value; }
 
-  const MCSubtargetInfo &getSubtargetInfo() { return STI; }
-
   static bool classof(const MCFragment *F) {
     return F->getKind() == MCFragment::FT_Relaxable;
   }
@@ -300,9 +309,8 @@
 public:
   MCAlignFragment(unsigned Alignment, int64_t Value, unsigned ValueSize,
                   unsigned MaxBytesToEmit, MCSection *Sec = nullptr)
-      : MCFragment(FT_Align, false, 0, Sec), Alignment(Alignment),
-        EmitNops(false), Value(Value),
-        ValueSize(ValueSize), MaxBytesToEmit(MaxBytesToEmit) {}
+      : MCFragment(FT_Align, false, Sec), Alignment(Alignment), EmitNops(false),
+        Value(Value), ValueSize(ValueSize), MaxBytesToEmit(MaxBytesToEmit) {}
 
   /// \name Accessors
   /// @{
@@ -370,7 +378,7 @@
   };
 
   MCPaddingFragment(MCSection *Sec = nullptr)
-      : MCFragment(FT_Padding, false, 0, Sec), PaddingPoliciesMask(PFK_None),
+      : MCFragment(FT_Padding, false, Sec), PaddingPoliciesMask(PFK_None),
         IsInsertionPoint(false), Size(UINT64_C(0)),
         InstInfo({false, MCInst(), false, {0}}) {}
 
@@ -419,22 +427,23 @@
 
 class MCFillFragment : public MCFragment {
   /// Value to use for filling bytes.
-  uint8_t Value;
-
+  uint64_t Value;
+  uint8_t ValueSize;
   /// The number of bytes to insert.
-  const MCExpr &Size;
+  const MCExpr &NumValues;
 
   /// Source location of the directive that this fragment was created for.
   SMLoc Loc;
 
 public:
-  MCFillFragment(uint8_t Value, const MCExpr &Size, SMLoc Loc,
-                 MCSection *Sec = nullptr)
-      : MCFragment(FT_Fill, false, 0, Sec), Value(Value), Size(Size), Loc(Loc) {
-  }
+  MCFillFragment(uint64_t Value, uint8_t VSize, const MCExpr &NumValues,
+                 SMLoc Loc, MCSection *Sec = nullptr)
+      : MCFragment(FT_Fill, false, Sec), Value(Value), ValueSize(VSize),
+        NumValues(NumValues), Loc(Loc) {}
 
-  uint8_t getValue() const { return Value; }
-  const MCExpr &getSize() const { return Size; }
+  uint64_t getValue() const { return Value; }
+  uint8_t getValueSize() const { return ValueSize; }
+  const MCExpr &getNumValues() const { return NumValues; }
 
   SMLoc getLoc() const { return Loc; }
 
@@ -456,7 +465,7 @@
 public:
   MCOrgFragment(const MCExpr &Offset, int8_t Value, SMLoc Loc,
                 MCSection *Sec = nullptr)
-      : MCFragment(FT_Org, false, 0, Sec), Offset(&Offset), Value(Value), Loc(Loc) {}
+      : MCFragment(FT_Org, false, Sec), Offset(&Offset), Value(Value), Loc(Loc) {}
 
   /// \name Accessors
   /// @{
@@ -485,7 +494,7 @@
 
 public:
   MCLEBFragment(const MCExpr &Value_, bool IsSigned_, MCSection *Sec = nullptr)
-      : MCFragment(FT_LEB, false, 0, Sec), Value(&Value_), IsSigned(IsSigned_) {
+      : MCFragment(FT_LEB, false, Sec), Value(&Value_), IsSigned(IsSigned_) {
     Contents.push_back(0);
   }
 
@@ -506,7 +515,7 @@
   }
 };
 
-class MCDwarfLineAddrFragment : public MCFragment {
+class MCDwarfLineAddrFragment : public MCEncodedFragmentWithFixups<8, 1> {
   /// LineDelta - the value of the difference between the two line numbers
   /// between two .loc dwarf directives.
   int64_t LineDelta;
@@ -515,15 +524,11 @@
   /// make up the address delta between two .loc dwarf directives.
   const MCExpr *AddrDelta;
 
-  SmallString<8> Contents;
-
 public:
   MCDwarfLineAddrFragment(int64_t LineDelta, const MCExpr &AddrDelta,
                           MCSection *Sec = nullptr)
-      : MCFragment(FT_Dwarf, false, 0, Sec), LineDelta(LineDelta),
-        AddrDelta(&AddrDelta) {
-    Contents.push_back(0);
-  }
+      : MCEncodedFragmentWithFixups<8, 1>(FT_Dwarf, false, Sec),
+        LineDelta(LineDelta), AddrDelta(&AddrDelta) {}
 
   /// \name Accessors
   /// @{
@@ -532,9 +537,6 @@
 
   const MCExpr &getAddrDelta() const { return *AddrDelta; }
 
-  SmallString<8> &getContents() { return Contents; }
-  const SmallString<8> &getContents() const { return Contents; }
-
   /// @}
 
   static bool classof(const MCFragment *F) {
@@ -551,7 +553,7 @@
 
 public:
   MCDwarfCallFrameFragment(const MCExpr &AddrDelta, MCSection *Sec = nullptr)
-      : MCFragment(FT_DwarfFrame, false, 0, Sec), AddrDelta(&AddrDelta) {
+      : MCFragment(FT_DwarfFrame, false, Sec), AddrDelta(&AddrDelta) {
     Contents.push_back(0);
   }
 
@@ -576,7 +578,7 @@
 
 public:
   MCSymbolIdFragment(const MCSymbol *Sym, MCSection *Sec = nullptr)
-      : MCFragment(FT_SymbolId, false, 0, Sec), Sym(Sym) {}
+      : MCFragment(FT_SymbolId, false, Sec), Sym(Sym) {}
 
   /// \name Accessors
   /// @{
@@ -610,7 +612,7 @@
                               unsigned StartLineNum, const MCSymbol *FnStartSym,
                               const MCSymbol *FnEndSym,
                               MCSection *Sec = nullptr)
-      : MCFragment(FT_CVInlineLines, false, 0, Sec), SiteFuncId(SiteFuncId),
+      : MCFragment(FT_CVInlineLines, false, Sec), SiteFuncId(SiteFuncId),
         StartFileId(StartFileId), StartLineNum(StartLineNum),
         FnStartSym(FnStartSym), FnEndSym(FnEndSym) {}
 
diff --git a/linux-x64/clang/include/llvm/MC/MCInst.h b/linux-x64/clang/include/llvm/MC/MCInst.h
index db28fd0..67bb11a 100644
--- a/linux-x64/clang/include/llvm/MC/MCInst.h
+++ b/linux-x64/clang/include/llvm/MC/MCInst.h
@@ -30,7 +30,7 @@
 class MCInstPrinter;
 class raw_ostream;
 
-/// \brief Instances of this class represent operands of the MCInst class.
+/// Instances of this class represent operands of the MCInst class.
 /// This is a simple discriminated union.
 class MCOperand {
   enum MachineOperandType : unsigned char {
@@ -61,13 +61,13 @@
   bool isExpr() const { return Kind == kExpr; }
   bool isInst() const { return Kind == kInst; }
 
-  /// \brief Returns the register number.
+  /// Returns the register number.
   unsigned getReg() const {
     assert(isReg() && "This is not a register operand!");
     return RegVal;
   }
 
-  /// \brief Set the register number.
+  /// Set the register number.
   void setReg(unsigned Reg) {
     assert(isReg() && "This is not a register operand!");
     RegVal = Reg;
@@ -150,11 +150,13 @@
 
   void print(raw_ostream &OS) const;
   void dump() const;
+  bool isBareSymbolRef() const;
+  bool evaluateAsConstantImm(int64_t &Imm) const;
 };
 
 template <> struct isPodLike<MCOperand> { static const bool value = true; };
 
-/// \brief Instances of this class represent a single low-level machine
+/// Instances of this class represent a single low-level machine
 /// instruction.
 class MCInst {
   unsigned Opcode = 0;
@@ -201,7 +203,7 @@
   void print(raw_ostream &OS) const;
   void dump() const;
 
-  /// \brief Dump the MCInst as prettily as possible using the additional MC
+  /// Dump the MCInst as prettily as possible using the additional MC
   /// structures, if given. Operators are separated by the \p Separator
   /// string.
   void dump_pretty(raw_ostream &OS, const MCInstPrinter *Printer = nullptr,
diff --git a/linux-x64/clang/include/llvm/MC/MCInstBuilder.h b/linux-x64/clang/include/llvm/MC/MCInstBuilder.h
index 30609bd..c5c4f48 100644
--- a/linux-x64/clang/include/llvm/MC/MCInstBuilder.h
+++ b/linux-x64/clang/include/llvm/MC/MCInstBuilder.h
@@ -23,42 +23,42 @@
   MCInst Inst;
 
 public:
-  /// \brief Create a new MCInstBuilder for an MCInst with a specific opcode.
+  /// Create a new MCInstBuilder for an MCInst with a specific opcode.
   MCInstBuilder(unsigned Opcode) {
     Inst.setOpcode(Opcode);
   }
 
-  /// \brief Add a new register operand.
+  /// Add a new register operand.
   MCInstBuilder &addReg(unsigned Reg) {
     Inst.addOperand(MCOperand::createReg(Reg));
     return *this;
   }
 
-  /// \brief Add a new integer immediate operand.
+  /// Add a new integer immediate operand.
   MCInstBuilder &addImm(int64_t Val) {
     Inst.addOperand(MCOperand::createImm(Val));
     return *this;
   }
 
-  /// \brief Add a new floating point immediate operand.
+  /// Add a new floating point immediate operand.
   MCInstBuilder &addFPImm(double Val) {
     Inst.addOperand(MCOperand::createFPImm(Val));
     return *this;
   }
 
-  /// \brief Add a new MCExpr operand.
+  /// Add a new MCExpr operand.
   MCInstBuilder &addExpr(const MCExpr *Val) {
     Inst.addOperand(MCOperand::createExpr(Val));
     return *this;
   }
 
-  /// \brief Add a new MCInst operand.
+  /// Add a new MCInst operand.
   MCInstBuilder &addInst(const MCInst *Val) {
     Inst.addOperand(MCOperand::createInst(Val));
     return *this;
   }
 
-  /// \brief Add an operand.
+  /// Add an operand.
   MCInstBuilder &addOperand(const MCOperand &Op) {
     Inst.addOperand(Op);
     return *this;
diff --git a/linux-x64/clang/include/llvm/MC/MCInstPrinter.h b/linux-x64/clang/include/llvm/MC/MCInstPrinter.h
index 0694030..df221e1 100644
--- a/linux-x64/clang/include/llvm/MC/MCInstPrinter.h
+++ b/linux-x64/clang/include/llvm/MC/MCInstPrinter.h
@@ -15,7 +15,6 @@
 
 namespace llvm {
 
-template <typename T> class ArrayRef;
 class MCAsmInfo;
 class MCInst;
 class MCInstrInfo;
@@ -36,13 +35,13 @@
 
 } // end namespace HexStyle
 
-/// \brief This is an instance of a target assembly language printer that
+/// This is an instance of a target assembly language printer that
 /// converts an MCInst to valid target assembly syntax.
 class MCInstPrinter {
 protected:
-  /// \brief A stream that comments can be emitted to if desired.  Each comment
+  /// A stream that comments can be emitted to if desired.  Each comment
   /// must end with a newline.  This will be null if verbose assembly emission
-  /// is disable.
+  /// is disabled.
   raw_ostream *CommentStream = nullptr;
   const MCAsmInfo &MAI;
   const MCInstrInfo &MII;
@@ -66,18 +65,18 @@
 
   virtual ~MCInstPrinter();
 
-  /// \brief Specify a stream to emit comments to.
+  /// Specify a stream to emit comments to.
   void setCommentStream(raw_ostream &OS) { CommentStream = &OS; }
 
-  /// \brief Print the specified MCInst to the specified raw_ostream.
+  /// Print the specified MCInst to the specified raw_ostream.
   virtual void printInst(const MCInst *MI, raw_ostream &OS, StringRef Annot,
                          const MCSubtargetInfo &STI) = 0;
 
-  /// \brief Return the name of the specified opcode enum (e.g. "MOV32ri") or
+  /// Return the name of the specified opcode enum (e.g. "MOV32ri") or
   /// empty if we can't resolve it.
   StringRef getOpcodeName(unsigned Opcode) const;
 
-  /// \brief Print the assembler register name.
+  /// Print the assembler register name.
   virtual void printRegName(raw_ostream &OS, unsigned RegNo) const;
 
   bool getUseMarkup() const { return UseMarkup; }
diff --git a/linux-x64/clang/include/llvm/MC/MCInstrAnalysis.h b/linux-x64/clang/include/llvm/MC/MCInstrAnalysis.h
index dd3e1df..0777add 100644
--- a/linux-x64/clang/include/llvm/MC/MCInstrAnalysis.h
+++ b/linux-x64/clang/include/llvm/MC/MCInstrAnalysis.h
@@ -22,6 +22,9 @@
 
 namespace llvm {
 
+class MCRegisterInfo;
+class Triple;
+
 class MCInstrAnalysis {
 protected:
   friend class Target;
@@ -60,11 +63,56 @@
     return Info->get(Inst.getOpcode()).isTerminator();
   }
 
-  /// \brief Given a branch instruction try to get the address the branch
+  /// Returns true if at least one of the register writes performed by
+  /// \param Inst implicitly clears the upper portion of all super-registers.
+  ///
+  /// Example: on X86-64, a write to EAX implicitly clears the upper half of
+  /// RAX. Also (still on x86) an XMM write perfomed by an AVX 128-bit
+  /// instruction implicitly clears the upper portion of the correspondent
+  /// YMM register.
+  ///
+  /// This method also updates an APInt which is used as mask of register
+  /// writes. There is one bit for every explicit/implicit write performed by
+  /// the instruction. If a write implicitly clears its super-registers, then
+  /// the corresponding bit is set (vic. the corresponding bit is cleared).
+  ///
+  /// The first bits in the APint are related to explicit writes. The remaining
+  /// bits are related to implicit writes. The sequence of writes follows the
+  /// machine operand sequence. For implicit writes, the sequence is defined by
+  /// the MCInstrDesc.
+  ///
+  /// The assumption is that the bit-width of the APInt is correctly set by
+  /// the caller. The default implementation conservatively assumes that none of
+  /// the writes clears the upper portion of a super-register.
+  virtual bool clearsSuperRegisters(const MCRegisterInfo &MRI,
+                                    const MCInst &Inst,
+                                    APInt &Writes) const;
+
+  /// Returns true if \param Inst is a dependency breaking instruction for the
+  /// given subtarget.
+  ///
+  /// The value computed by a dependency breaking instruction is not dependent
+  /// on the inputs. An example of dependency breaking instruction on X86 is
+  /// `XOR %eax, %eax`.
+  /// TODO: In future, we could implement an alternative approach where this
+  /// method returns `true` if the input instruction is not dependent on
+  /// some/all of its input operands. An APInt mask could then be used to
+  /// identify independent operands.
+  virtual bool isDependencyBreaking(const MCSubtargetInfo &STI,
+                                    const MCInst &Inst) const;
+
+  /// Given a branch instruction try to get the address the branch
   /// targets. Return true on success, and the address in Target.
   virtual bool
   evaluateBranch(const MCInst &Inst, uint64_t Addr, uint64_t Size,
                  uint64_t &Target) const;
+
+  /// Returns (PLT virtual address, GOT virtual address) pairs for PLT entries.
+  virtual std::vector<std::pair<uint64_t, uint64_t>>
+  findPltEntries(uint64_t PltSectionVA, ArrayRef<uint8_t> PltContents,
+                 uint64_t GotPltSectionVA, const Triple &TargetTriple) const {
+    return {};
+  }
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/MC/MCInstrDesc.h b/linux-x64/clang/include/llvm/MC/MCInstrDesc.h
index ff4c756..3e000a2 100644
--- a/linux-x64/clang/include/llvm/MC/MCInstrDesc.h
+++ b/linux-x64/clang/include/llvm/MC/MCInstrDesc.h
@@ -35,12 +35,12 @@
   EARLY_CLOBBER // Operand is an early clobber register operand
 };
 
-/// \brief These are flags set on operands, but should be considered
+/// These are flags set on operands, but should be considered
 /// private, all access should go through the MCOperandInfo accessors.
 /// See the accessors for a description of what these are.
 enum OperandFlags { LookupPtrRegClass = 0, Predicate, OptionalDef };
 
-/// \brief Operands are tagged with one of the values of this enum.
+/// Operands are tagged with one of the values of this enum.
 enum OperandType {
   OPERAND_UNKNOWN = 0,
   OPERAND_IMMEDIATE = 1,
@@ -60,42 +60,39 @@
   OPERAND_FIRST_TARGET = 12,
 };
 
-enum GenericOperandType {
-};
-
 }
 
-/// \brief This holds information about one operand of a machine instruction,
+/// This holds information about one operand of a machine instruction,
 /// indicating the register class for register operands, etc.
 class MCOperandInfo {
 public:
-  /// \brief This specifies the register class enumeration of the operand
+  /// This specifies the register class enumeration of the operand
   /// if the operand is a register.  If isLookupPtrRegClass is set, then this is
   /// an index that is passed to TargetRegisterInfo::getPointerRegClass(x) to
   /// get a dynamic register class.
   int16_t RegClass;
 
-  /// \brief These are flags from the MCOI::OperandFlags enum.
+  /// These are flags from the MCOI::OperandFlags enum.
   uint8_t Flags;
 
-  /// \brief Information about the type of the operand.
+  /// Information about the type of the operand.
   uint8_t OperandType;
-  /// \brief The lower 16 bits are used to specify which constraints are set.
+  /// The lower 16 bits are used to specify which constraints are set.
   /// The higher 16 bits are used to specify the value of constraints (4 bits
   /// each).
   uint32_t Constraints;
 
-  /// \brief Set if this operand is a pointer value and it requires a callback
+  /// Set if this operand is a pointer value and it requires a callback
   /// to look up its register class.
   bool isLookupPtrRegClass() const {
     return Flags & (1 << MCOI::LookupPtrRegClass);
   }
 
-  /// \brief Set if this is one of the operands that made up of the predicate
+  /// Set if this is one of the operands that made up of the predicate
   /// operand that controls an isPredicable() instruction.
   bool isPredicate() const { return Flags & (1 << MCOI::Predicate); }
 
-  /// \brief Set if this operand is a optional def.
+  /// Set if this operand is a optional def.
   bool isOptionalDef() const { return Flags & (1 << MCOI::OptionalDef); }
 
   bool isGenericType() const {
@@ -114,7 +111,7 @@
 //===----------------------------------------------------------------------===//
 
 namespace MCID {
-/// \brief These should be considered private to the implementation of the
+/// These should be considered private to the implementation of the
 /// MCInstrDesc class.  Clients should use the predicate methods on MCInstrDesc,
 /// not use these directly.  These all correspond to bitfields in the
 /// MCInstrDesc::Flags field.
@@ -130,6 +127,7 @@
   IndirectBranch,
   Compare,
   MoveImm,
+  MoveReg,
   Bitcast,
   Select,
   DelaySlot,
@@ -151,11 +149,12 @@
   ExtractSubreg,
   InsertSubreg,
   Convergent,
-  Add
+  Add,
+  Trap
 };
 }
 
-/// \brief Describe properties that are true of each instruction in the target
+/// Describe properties that are true of each instruction in the target
 /// description file.  This captures information about side effects, register
 /// use and many other things.  There is one instance of this struct for each
 /// target instruction class, and the MachineInstr class points to this struct
@@ -177,12 +176,12 @@
   // deprecated due to a "complex" reason, below.
   int64_t DeprecatedFeature;
 
-  // A complex method to determine is a certain is deprecated or not, and return
-  // the reason for deprecation.
+  // A complex method to determine if a certain instruction is deprecated or
+  // not, and return the reason for deprecation.
   bool (*ComplexDeprecationInfo)(MCInst &, const MCSubtargetInfo &,
                                  std::string &);
 
-  /// \brief Returns the value of the specific constraint if
+  /// Returns the value of the specific constraint if
   /// it is set. Returns -1 if it is not set.
   int getOperandConstraint(unsigned OpNum,
                            MCOI::OperandConstraint Constraint) const {
@@ -194,15 +193,15 @@
     return -1;
   }
 
-  /// \brief Returns true if a certain instruction is deprecated and if so
+  /// Returns true if a certain instruction is deprecated and if so
   /// returns the reason in \p Info.
   bool getDeprecatedInfo(MCInst &MI, const MCSubtargetInfo &STI,
                          std::string &Info) const;
 
-  /// \brief Return the opcode number for this descriptor.
+  /// Return the opcode number for this descriptor.
   unsigned getOpcode() const { return Opcode; }
 
-  /// \brief Return the number of declared MachineOperands for this
+  /// Return the number of declared MachineOperands for this
   /// MachineInstruction.  Note that variadic (isVariadic() returns true)
   /// instructions may have additional operands at the end of the list, and note
   /// that the machine instruction may include implicit register def/uses as
@@ -218,44 +217,50 @@
     return make_range(opInfo_begin(), opInfo_end());
   }
 
-  /// \brief Return the number of MachineOperands that are register
+  /// Return the number of MachineOperands that are register
   /// definitions.  Register definitions always occur at the start of the
   /// machine operand list.  This is the number of "outs" in the .td file,
   /// and does not include implicit defs.
   unsigned getNumDefs() const { return NumDefs; }
 
-  /// \brief Return flags of this instruction.
+  /// Return flags of this instruction.
   uint64_t getFlags() const { return Flags; }
 
-  /// \brief Return true if this instruction can have a variable number of
+  /// Return true if this instruction can have a variable number of
   /// operands.  In this case, the variable operands will be after the normal
   /// operands but before the implicit definitions and uses (if any are
   /// present).
   bool isVariadic() const { return Flags & (1ULL << MCID::Variadic); }
 
-  /// \brief Set if this instruction has an optional definition, e.g.
+  /// Set if this instruction has an optional definition, e.g.
   /// ARM instructions which can set condition code if 's' bit is set.
   bool hasOptionalDef() const { return Flags & (1ULL << MCID::HasOptionalDef); }
 
-  /// \brief Return true if this is a pseudo instruction that doesn't
+  /// Return true if this is a pseudo instruction that doesn't
   /// correspond to a real machine instruction.
   bool isPseudo() const { return Flags & (1ULL << MCID::Pseudo); }
 
-  /// \brief Return true if the instruction is a return.
+  /// Return true if the instruction is a return.
   bool isReturn() const { return Flags & (1ULL << MCID::Return); }
 
-  /// \brief Return true if the instruction is an add instruction.
+  /// Return true if the instruction is an add instruction.
   bool isAdd() const { return Flags & (1ULL << MCID::Add); }
 
-  /// \brief  Return true if the instruction is a call.
+  /// Return true if this instruction is a trap.
+  bool isTrap() const { return Flags & (1ULL << MCID::Trap); }
+
+  /// Return true if the instruction is a register to register move.
+  bool isMoveReg() const { return Flags & (1ULL << MCID::MoveReg); }
+
+  ///  Return true if the instruction is a call.
   bool isCall() const { return Flags & (1ULL << MCID::Call); }
 
-  /// \brief Returns true if the specified instruction stops control flow
+  /// Returns true if the specified instruction stops control flow
   /// from executing the instruction immediately following it.  Examples include
   /// unconditional branches and return instructions.
   bool isBarrier() const { return Flags & (1ULL << MCID::Barrier); }
 
-  /// \brief Returns true if this instruction part of the terminator for
+  /// Returns true if this instruction part of the terminator for
   /// a basic block.  Typically this is things like return and branch
   /// instructions.
   ///
@@ -263,17 +268,17 @@
   /// but before control flow occurs.
   bool isTerminator() const { return Flags & (1ULL << MCID::Terminator); }
 
-  /// \brief Returns true if this is a conditional, unconditional, or
+  /// Returns true if this is a conditional, unconditional, or
   /// indirect branch.  Predicates below can be used to discriminate between
   /// these cases, and the TargetInstrInfo::AnalyzeBranch method can be used to
   /// get more information.
   bool isBranch() const { return Flags & (1ULL << MCID::Branch); }
 
-  /// \brief Return true if this is an indirect branch, such as a
+  /// Return true if this is an indirect branch, such as a
   /// branch through a register.
   bool isIndirectBranch() const { return Flags & (1ULL << MCID::IndirectBranch); }
 
-  /// \brief Return true if this is a branch which may fall
+  /// Return true if this is a branch which may fall
   /// through to the next instruction or may transfer control flow to some other
   /// block.  The TargetInstrInfo::AnalyzeBranch method can be used to get more
   /// information about this branch.
@@ -281,7 +286,7 @@
     return isBranch() & !isBarrier() & !isIndirectBranch();
   }
 
-  /// \brief Return true if this is a branch which always
+  /// Return true if this is a branch which always
   /// transfers control flow to some other block.  The
   /// TargetInstrInfo::AnalyzeBranch method can be used to get more information
   /// about this branch.
@@ -289,40 +294,40 @@
     return isBranch() & isBarrier() & !isIndirectBranch();
   }
 
-  /// \brief Return true if this is a branch or an instruction which directly
+  /// Return true if this is a branch or an instruction which directly
   /// writes to the program counter. Considered 'may' affect rather than
   /// 'does' affect as things like predication are not taken into account.
   bool mayAffectControlFlow(const MCInst &MI, const MCRegisterInfo &RI) const;
 
-  /// \brief Return true if this instruction has a predicate operand
+  /// Return true if this instruction has a predicate operand
   /// that controls execution. It may be set to 'always', or may be set to other
   /// values. There are various methods in TargetInstrInfo that can be used to
   /// control and modify the predicate in this instruction.
   bool isPredicable() const { return Flags & (1ULL << MCID::Predicable); }
 
-  /// \brief Return true if this instruction is a comparison.
+  /// Return true if this instruction is a comparison.
   bool isCompare() const { return Flags & (1ULL << MCID::Compare); }
 
-  /// \brief Return true if this instruction is a move immediate
+  /// Return true if this instruction is a move immediate
   /// (including conditional moves) instruction.
   bool isMoveImmediate() const { return Flags & (1ULL << MCID::MoveImm); }
 
-  /// \brief Return true if this instruction is a bitcast instruction.
+  /// Return true if this instruction is a bitcast instruction.
   bool isBitcast() const { return Flags & (1ULL << MCID::Bitcast); }
 
-  /// \brief Return true if this is a select instruction.
+  /// Return true if this is a select instruction.
   bool isSelect() const { return Flags & (1ULL << MCID::Select); }
 
-  /// \brief Return true if this instruction cannot be safely
+  /// Return true if this instruction cannot be safely
   /// duplicated.  For example, if the instruction has a unique labels attached
   /// to it, duplicating it would cause multiple definition errors.
   bool isNotDuplicable() const { return Flags & (1ULL << MCID::NotDuplicable); }
 
-  /// \brief Returns true if the specified instruction has a delay slot which
+  /// Returns true if the specified instruction has a delay slot which
   /// must be filled by the code generator.
   bool hasDelaySlot() const { return Flags & (1ULL << MCID::DelaySlot); }
 
-  /// \brief Return true for instructions that can be folded as memory operands
+  /// Return true for instructions that can be folded as memory operands
   /// in other instructions. The most common use for this is instructions that
   /// are simple loads from memory that don't modify the loaded value in any
   /// way, but it can also be used for instructions that can be expressed as
@@ -331,7 +336,7 @@
   /// that return a value in their only virtual register definition.
   bool canFoldAsLoad() const { return Flags & (1ULL << MCID::FoldableAsLoad); }
 
-  /// \brief Return true if this instruction behaves
+  /// Return true if this instruction behaves
   /// the same way as the generic REG_SEQUENCE instructions.
   /// E.g., on ARM,
   /// dX VMOVDRR rY, rZ
@@ -343,7 +348,7 @@
   /// override accordingly.
   bool isRegSequenceLike() const { return Flags & (1ULL << MCID::RegSequence); }
 
-  /// \brief Return true if this instruction behaves
+  /// Return true if this instruction behaves
   /// the same way as the generic EXTRACT_SUBREG instructions.
   /// E.g., on ARM,
   /// rX, rY VMOVRRD dZ
@@ -358,7 +363,7 @@
     return Flags & (1ULL << MCID::ExtractSubreg);
   }
 
-  /// \brief Return true if this instruction behaves
+  /// Return true if this instruction behaves
   /// the same way as the generic INSERT_SUBREG instructions.
   /// E.g., on ARM,
   /// dX = VSETLNi32 dY, rZ, Imm
@@ -371,7 +376,7 @@
   bool isInsertSubregLike() const { return Flags & (1ULL << MCID::InsertSubreg); }
 
 
-  /// \brief Return true if this instruction is convergent.
+  /// Return true if this instruction is convergent.
   ///
   /// Convergent instructions may not be made control-dependent on any
   /// additional values.
@@ -381,18 +386,18 @@
   // Side Effect Analysis
   //===--------------------------------------------------------------------===//
 
-  /// \brief Return true if this instruction could possibly read memory.
+  /// Return true if this instruction could possibly read memory.
   /// Instructions with this flag set are not necessarily simple load
   /// instructions, they may load a value and modify it, for example.
   bool mayLoad() const { return Flags & (1ULL << MCID::MayLoad); }
 
-  /// \brief Return true if this instruction could possibly modify memory.
+  /// Return true if this instruction could possibly modify memory.
   /// Instructions with this flag set are not necessarily simple store
   /// instructions, they may store a modified value based on their operands, or
   /// may not actually modify anything, for example.
   bool mayStore() const { return Flags & (1ULL << MCID::MayStore); }
 
-  /// \brief Return true if this instruction has side
+  /// Return true if this instruction has side
   /// effects that are not modeled by other flags.  This does not return true
   /// for instructions whose effects are captured by:
   ///
@@ -412,7 +417,7 @@
   // Flags that indicate whether an instruction can be modified by a method.
   //===--------------------------------------------------------------------===//
 
-  /// \brief Return true if this may be a 2- or 3-address instruction (of the
+  /// Return true if this may be a 2- or 3-address instruction (of the
   /// form "X = op Y, Z, ..."), which produces the same result if Y and Z are
   /// exchanged.  If this flag is set, then the
   /// TargetInstrInfo::commuteInstruction method may be used to hack on the
@@ -424,7 +429,7 @@
   /// commute them.
   bool isCommutable() const { return Flags & (1ULL << MCID::Commutable); }
 
-  /// \brief Return true if this is a 2-address instruction which can be changed
+  /// Return true if this is a 2-address instruction which can be changed
   /// into a 3-address instruction if needed.  Doing this transformation can be
   /// profitable in the register allocator, because it means that the
   /// instruction can use a 2-address form if possible, but degrade into a less
@@ -442,7 +447,7 @@
     return Flags & (1ULL << MCID::ConvertibleTo3Addr);
   }
 
-  /// \brief Return true if this instruction requires custom insertion support
+  /// Return true if this instruction requires custom insertion support
   /// when the DAG scheduler is inserting it into a machine basic block.  If
   /// this is true for the instruction, it basically means that it is a pseudo
   /// instruction used at SelectionDAG time that is expanded out into magic code
@@ -454,13 +459,13 @@
     return Flags & (1ULL << MCID::UsesCustomInserter);
   }
 
-  /// \brief Return true if this instruction requires *adjustment* after
+  /// Return true if this instruction requires *adjustment* after
   /// instruction selection by calling a target hook. For example, this can be
   /// used to fill in ARM 's' optional operand depending on whether the
   /// conditional flag register is used.
   bool hasPostISelHook() const { return Flags & (1ULL << MCID::HasPostISelHook); }
 
-  /// \brief Returns true if this instruction is a candidate for remat. This
+  /// Returns true if this instruction is a candidate for remat. This
   /// flag is only used in TargetInstrInfo method isTriviallyRematerializable.
   ///
   /// If this flag is set, the isReallyTriviallyReMaterializable()
@@ -470,7 +475,7 @@
     return Flags & (1ULL << MCID::Rematerializable);
   }
 
-  /// \brief Returns true if this instruction has the same cost (or less) than a
+  /// Returns true if this instruction has the same cost (or less) than a
   /// move instruction. This is useful during certain types of optimizations
   /// (e.g., remat during two-address conversion or machine licm) where we would
   /// like to remat or hoist the instruction, but not if it costs more than
@@ -481,7 +486,7 @@
   /// for different subtargets.
   bool isAsCheapAsAMove() const { return Flags & (1ULL << MCID::CheapAsAMove); }
 
-  /// \brief Returns true if this instruction source operands have special
+  /// Returns true if this instruction source operands have special
   /// register allocation requirements that are not captured by the operand
   /// register classes. e.g. ARM::STRD's two source registers must be an even /
   /// odd pair, ARM::STM registers have to be in ascending order.  Post-register
@@ -491,7 +496,7 @@
     return Flags & (1ULL << MCID::ExtraSrcRegAllocReq);
   }
 
-  /// \brief Returns true if this instruction def operands have special register
+  /// Returns true if this instruction def operands have special register
   /// allocation requirements that are not captured by the operand register
   /// classes. e.g. ARM::LDRD's two def registers must be an even / odd pair,
   /// ARM::LDM registers have to be in ascending order.  Post-register
@@ -501,7 +506,7 @@
     return Flags & (1ULL << MCID::ExtraDefRegAllocReq);
   }
 
-  /// \brief Return a list of registers that are potentially read by any
+  /// Return a list of registers that are potentially read by any
   /// instance of this machine instruction.  For example, on X86, the "adc"
   /// instruction adds two register operands and adds the carry bit in from the
   /// flags register.  In this case, the instruction is marked as implicitly
@@ -511,7 +516,7 @@
   /// This method returns null if the instruction has no implicit uses.
   const MCPhysReg *getImplicitUses() const { return ImplicitUses; }
 
-  /// \brief Return the number of implicit uses this instruction has.
+  /// Return the number of implicit uses this instruction has.
   unsigned getNumImplicitUses() const {
     if (!ImplicitUses)
       return 0;
@@ -521,7 +526,7 @@
     return i;
   }
 
-  /// \brief Return a list of registers that are potentially written by any
+  /// Return a list of registers that are potentially written by any
   /// instance of this machine instruction.  For example, on X86, many
   /// instructions implicitly set the flags register.  In this case, they are
   /// marked as setting the FLAGS.  Likewise, many instructions always deposit
@@ -533,7 +538,7 @@
   /// This method returns null if the instruction has no implicit defs.
   const MCPhysReg *getImplicitDefs() const { return ImplicitDefs; }
 
-  /// \brief Return the number of implicit defs this instruct has.
+  /// Return the number of implicit defs this instruct has.
   unsigned getNumImplicitDefs() const {
     if (!ImplicitDefs)
       return 0;
@@ -543,7 +548,7 @@
     return i;
   }
 
-  /// \brief Return true if this instruction implicitly
+  /// Return true if this instruction implicitly
   /// uses the specified physical register.
   bool hasImplicitUseOfPhysReg(unsigned Reg) const {
     if (const MCPhysReg *ImpUses = ImplicitUses)
@@ -553,22 +558,22 @@
     return false;
   }
 
-  /// \brief Return true if this instruction implicitly
+  /// Return true if this instruction implicitly
   /// defines the specified physical register.
   bool hasImplicitDefOfPhysReg(unsigned Reg,
                                const MCRegisterInfo *MRI = nullptr) const;
 
-  /// \brief Return the scheduling class for this instruction.  The
+  /// Return the scheduling class for this instruction.  The
   /// scheduling class is an index into the InstrItineraryData table.  This
   /// returns zero if there is no known scheduling information for the
   /// instruction.
   unsigned getSchedClass() const { return SchedClass; }
 
-  /// \brief Return the number of bytes in the encoding of this instruction,
+  /// Return the number of bytes in the encoding of this instruction,
   /// or zero if the encoding size cannot be known from the opcode.
   unsigned getSize() const { return Size; }
 
-  /// \brief Find the index of the first operand in the
+  /// Find the index of the first operand in the
   /// operand list that is used to represent the predicate. It returns -1 if
   /// none is found.
   int findFirstPredOperandIdx() const {
@@ -580,7 +585,7 @@
     return -1;
   }
 
-  /// \brief Return true if this instruction defines the specified physical
+  /// Return true if this instruction defines the specified physical
   /// register, either explicitly or implicitly.
   bool hasDefOfPhysReg(const MCInst &MI, unsigned Reg,
                        const MCRegisterInfo &RI) const;
diff --git a/linux-x64/clang/include/llvm/MC/MCInstrInfo.h b/linux-x64/clang/include/llvm/MC/MCInstrInfo.h
index 80f1f32..18da87c 100644
--- a/linux-x64/clang/include/llvm/MC/MCInstrInfo.h
+++ b/linux-x64/clang/include/llvm/MC/MCInstrInfo.h
@@ -20,7 +20,7 @@
 namespace llvm {
 
 //---------------------------------------------------------------------------
-/// \brief Interface to description of machine instruction set.
+/// Interface to description of machine instruction set.
 class MCInstrInfo {
   const MCInstrDesc *Desc;          // Raw array to allow static init'n
   const unsigned *InstrNameIndices; // Array for name indices in InstrNameData
@@ -28,7 +28,7 @@
   unsigned NumOpcodes;              // Number of entries in the desc array
 
 public:
-  /// \brief Initialize MCInstrInfo, called by TableGen auto-generated routines.
+  /// Initialize MCInstrInfo, called by TableGen auto-generated routines.
   /// *DO NOT USE*.
   void InitMCInstrInfo(const MCInstrDesc *D, const unsigned *NI, const char *ND,
                        unsigned NO) {
@@ -40,14 +40,14 @@
 
   unsigned getNumOpcodes() const { return NumOpcodes; }
 
-  /// \brief Return the machine instruction descriptor that corresponds to the
+  /// Return the machine instruction descriptor that corresponds to the
   /// specified instruction opcode.
   const MCInstrDesc &get(unsigned Opcode) const {
     assert(Opcode < NumOpcodes && "Invalid opcode!");
     return Desc[Opcode];
   }
 
-  /// \brief Returns the name for the instructions with the given opcode.
+  /// Returns the name for the instructions with the given opcode.
   StringRef getName(unsigned Opcode) const {
     assert(Opcode < NumOpcodes && "Invalid opcode!");
     return StringRef(&InstrNameData[InstrNameIndices[Opcode]]);
diff --git a/linux-x64/clang/include/llvm/MC/MCInstrItineraries.h b/linux-x64/clang/include/llvm/MC/MCInstrItineraries.h
index f0824e7..fe81376 100644
--- a/linux-x64/clang/include/llvm/MC/MCInstrItineraries.h
+++ b/linux-x64/clang/include/llvm/MC/MCInstrItineraries.h
@@ -67,12 +67,12 @@
   int NextCycles_;   ///< Number of machine cycles to next stage
   ReservationKinds Kind_; ///< Kind of the FU reservation
 
-  /// \brief Returns the number of cycles the stage is occupied.
+  /// Returns the number of cycles the stage is occupied.
   unsigned getCycles() const {
     return Cycles_;
   }
 
-  /// \brief Returns the choice of FUs.
+  /// Returns the choice of FUs.
   unsigned getUnits() const {
     return Units_;
   }
@@ -81,7 +81,7 @@
     return Kind_;
   }
 
-  /// \brief Returns the number of cycles from the start of this stage to the
+  /// Returns the number of cycles from the start of this stage to the
   /// start of the next stage in the itinerary
   unsigned getNextCycles() const {
     return (NextCycles_ >= 0) ? (unsigned)NextCycles_ : Cycles_;
@@ -120,28 +120,28 @@
     : SchedModel(SM), Stages(S), OperandCycles(OS), Forwardings(F),
       Itineraries(SchedModel.InstrItineraries) {}
 
-  /// \brief Returns true if there are no itineraries.
+  /// Returns true if there are no itineraries.
   bool isEmpty() const { return Itineraries == nullptr; }
 
-  /// \brief Returns true if the index is for the end marker itinerary.
+  /// Returns true if the index is for the end marker itinerary.
   bool isEndMarker(unsigned ItinClassIndx) const {
     return ((Itineraries[ItinClassIndx].FirstStage == UINT16_MAX) &&
             (Itineraries[ItinClassIndx].LastStage == UINT16_MAX));
   }
 
-  /// \brief Return the first stage of the itinerary.
+  /// Return the first stage of the itinerary.
   const InstrStage *beginStage(unsigned ItinClassIndx) const {
     unsigned StageIdx = Itineraries[ItinClassIndx].FirstStage;
     return Stages + StageIdx;
   }
 
-  /// \brief Return the last+1 stage of the itinerary.
+  /// Return the last+1 stage of the itinerary.
   const InstrStage *endStage(unsigned ItinClassIndx) const {
     unsigned StageIdx = Itineraries[ItinClassIndx].LastStage;
     return Stages + StageIdx;
   }
 
-  /// \brief Return the total stage latency of the given class.  The latency is
+  /// Return the total stage latency of the given class.  The latency is
   /// the maximum completion time for any stage in the itinerary.  If no stages
   /// exist, it defaults to one cycle.
   unsigned getStageLatency(unsigned ItinClassIndx) const {
@@ -160,7 +160,7 @@
     return Latency;
   }
 
-  /// \brief Return the cycle for the given class and operand.  Return -1 if no
+  /// Return the cycle for the given class and operand.  Return -1 if no
   /// cycle is specified for the operand.
   int getOperandCycle(unsigned ItinClassIndx, unsigned OperandIdx) const {
     if (isEmpty())
@@ -174,7 +174,7 @@
     return (int)OperandCycles[FirstIdx + OperandIdx];
   }
 
-  /// \brief Return true if there is a pipeline forwarding between instructions
+  /// Return true if there is a pipeline forwarding between instructions
   /// of itinerary classes DefClass and UseClasses so that value produced by an
   /// instruction of itinerary class DefClass, operand index DefIdx can be
   /// bypassed when it's read by an instruction of itinerary class UseClass,
@@ -197,7 +197,7 @@
       Forwardings[FirstUseIdx + UseIdx];
   }
 
-  /// \brief Compute and return the use operand latency of a given itinerary
+  /// Compute and return the use operand latency of a given itinerary
   /// class and operand index if the value is produced by an instruction of the
   /// specified itinerary class and def operand index.
   int getOperandLatency(unsigned DefClass, unsigned DefIdx,
@@ -221,7 +221,7 @@
     return UseCycle;
   }
 
-  /// \brief Return the number of micro-ops that the given class decodes to.
+  /// Return the number of micro-ops that the given class decodes to.
   /// Return -1 for classes that require dynamic lookup via TargetInstrInfo.
   int getNumMicroOps(unsigned ItinClassIndx) const {
     if (isEmpty())
diff --git a/linux-x64/clang/include/llvm/MC/MCLabel.h b/linux-x64/clang/include/llvm/MC/MCLabel.h
index b6579fd..aaf7069 100644
--- a/linux-x64/clang/include/llvm/MC/MCLabel.h
+++ b/linux-x64/clang/include/llvm/MC/MCLabel.h
@@ -18,11 +18,11 @@
 
 class raw_ostream;
 
-/// \brief Instances of this class represent a label name in the MC file,
+/// Instances of this class represent a label name in the MC file,
 /// and MCLabel are created and uniqued by the MCContext class.  MCLabel
 /// should only be constructed for valid instances in the object file.
 class MCLabel {
-  // \brief The instance number of this Directional Local Label.
+  // The instance number of this Directional Local Label.
   unsigned Instance;
 
 private: // MCContext creates and uniques these.
@@ -34,16 +34,16 @@
   MCLabel(const MCLabel &) = delete;
   MCLabel &operator=(const MCLabel &) = delete;
 
-  /// \brief Get the current instance of this Directional Local Label.
+  /// Get the current instance of this Directional Local Label.
   unsigned getInstance() const { return Instance; }
 
-  /// \brief Increment the current instance of this Directional Local Label.
+  /// Increment the current instance of this Directional Local Label.
   unsigned incInstance() { return ++Instance; }
 
-  /// \brief Print the value to the stream \p OS.
+  /// Print the value to the stream \p OS.
   void print(raw_ostream &OS) const;
 
-  /// \brief Print the value to stderr.
+  /// Print the value to stderr.
   void dump() const;
 };
 
diff --git a/linux-x64/clang/include/llvm/MC/MCMachObjectWriter.h b/linux-x64/clang/include/llvm/MC/MCMachObjectWriter.h
index 594869f..22fbeb7 100644
--- a/linux-x64/clang/include/llvm/MC/MCMachObjectWriter.h
+++ b/linux-x64/clang/include/llvm/MC/MCMachObjectWriter.h
@@ -26,7 +26,7 @@
 
 class MachObjectWriter;
 
-class MCMachObjectTargetWriter {
+class MCMachObjectTargetWriter : public MCObjectTargetWriter {
   const unsigned Is64Bit : 1;
   const uint32_t CPUType;
   const uint32_t CPUSubtype;
@@ -43,6 +43,11 @@
 public:
   virtual ~MCMachObjectTargetWriter();
 
+  virtual Triple::ObjectFormatType getFormat() const { return Triple::MachO; }
+  static bool classof(const MCObjectTargetWriter *W) {
+    return W->getFormat() == Triple::MachO;
+  }
+
   /// \name Lifetime Management
   /// @{
 
@@ -116,11 +121,15 @@
 
   MachSymbolData *findSymbolData(const MCSymbol &Sym);
 
+  void writeWithPadding(StringRef Str, uint64_t Size);
+
 public:
   MachObjectWriter(std::unique_ptr<MCMachObjectTargetWriter> MOTW,
                    raw_pwrite_stream &OS, bool IsLittleEndian)
-      : MCObjectWriter(OS, IsLittleEndian),
-        TargetObjectWriter(std::move(MOTW)) {}
+      : TargetObjectWriter(std::move(MOTW)),
+        W(OS, IsLittleEndian ? support::little : support::big) {}
+
+  support::endian::Writer W;
 
   const MCSymbol &findAliasedSymbol(const MCSymbol &Sym) const;
 
@@ -260,7 +269,7 @@
                                               const MCFragment &FB, bool InSet,
                                               bool IsPCRel) const override;
 
-  void writeObject(MCAssembler &Asm, const MCAsmLayout &Layout) override;
+  uint64_t writeObject(MCAssembler &Asm, const MCAsmLayout &Layout) override;
 };
 
 /// Construct a new Mach-O writer instance.
diff --git a/linux-x64/clang/include/llvm/MC/MCObjectFileInfo.h b/linux-x64/clang/include/llvm/MC/MCObjectFileInfo.h
index c99f252..8cf9e1c 100644
--- a/linux-x64/clang/include/llvm/MC/MCObjectFileInfo.h
+++ b/linux-x64/clang/include/llvm/MC/MCObjectFileInfo.h
@@ -14,7 +14,9 @@
 #ifndef LLVM_MC_MCOBJECTFILEINFO_H
 #define LLVM_MC_MCOBJECTFILEINFO_H
 
+#include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/Triple.h"
+#include "llvm/MC/MCSymbol.h"
 #include "llvm/Support/CodeGen.h"
 
 namespace llvm {
@@ -40,12 +42,11 @@
   /// dwarf unwind.
   bool OmitDwarfIfHaveCompactUnwind;
 
-  /// PersonalityEncoding, LSDAEncoding, TTypeEncoding - Some encoding values
-  /// for EH.
-  unsigned PersonalityEncoding;
-  unsigned LSDAEncoding;
-  unsigned FDECFIEncoding;
-  unsigned TTypeEncoding;
+  /// FDE CFI encoding. Controls the encoding of the begin label in the
+  /// .eh_frame section. Unlike the LSDA encoding, personality encoding, and
+  /// type encodings, this is something that the assembler just "knows" about
+  /// its target
+  unsigned FDECFIEncoding = 0;
 
   /// Compact unwind encoding indicating that we should emit only an EH frame.
   unsigned CompactUnwindDwarfEHFrameOnly;
@@ -92,11 +93,11 @@
   // can be enabled by a compiler flag.
   MCSection *DwarfPubNamesSection;
 
-  /// DWARF5 Experimental Debug Info Sections
-  /// DwarfAccelNamesSection, DwarfAccelObjCSection,
-  /// DwarfAccelNamespaceSection, DwarfAccelTypesSection -
-  /// If we use the DWARF accelerated hash tables then we want to emit these
-  /// sections.
+  /// Accelerator table sections. DwarfDebugNamesSection is the DWARF v5
+  /// accelerator table, while DwarfAccelNamesSection, DwarfAccelObjCSection,
+  /// DwarfAccelNamespaceSection, DwarfAccelTypesSection are pre-DWARF v5
+  /// extensions.
+  MCSection *DwarfDebugNamesSection;
   MCSection *DwarfAccelNamesSection;
   MCSection *DwarfAccelObjCSection;
   MCSection *DwarfAccelNamespaceSection;
@@ -114,6 +115,11 @@
   /// The DWARF v5 string offset and address table sections.
   MCSection *DwarfStrOffSection;
   MCSection *DwarfAddrSection;
+  /// The DWARF v5 range list section.
+  MCSection *DwarfRnglistsSection;
+
+  /// The DWARF v5 range list section for fission.
+  MCSection *DwarfRnglistsDWOSection;
 
   // These are for Fission DWP files.
   MCSection *DwarfCUIndexSection;
@@ -158,6 +164,7 @@
 
   /// Section containing metadata on function stack sizes.
   MCSection *StackSizesSection;
+  mutable DenseMap<const MCSymbol *, unsigned> StackSizesUniquing;
 
   // ELF specific sections.
   MCSection *DataRelROSection;
@@ -183,6 +190,7 @@
   MCSection *ConstTextCoalSection;
   MCSection *ConstDataSection;
   MCSection *DataCoalSection;
+  MCSection *ConstDataCoalSection;
   MCSection *DataCommonSection;
   MCSection *DataBSSSection;
   MCSection *FourByteConstantSection;
@@ -217,10 +225,7 @@
     return CommDirectiveSupportsAlignment;
   }
 
-  unsigned getPersonalityEncoding() const { return PersonalityEncoding; }
-  unsigned getLSDAEncoding() const { return LSDAEncoding; }
   unsigned getFDEEncoding() const { return FDECFIEncoding; }
-  unsigned getTTypeEncoding() const { return TTypeEncoding; }
 
   unsigned getCompactUnwindDwarfEHFrameOnly() const {
     return CompactUnwindDwarfEHFrameOnly;
@@ -252,9 +257,12 @@
   MCSection *getDwarfLocSection() const { return DwarfLocSection; }
   MCSection *getDwarfARangesSection() const { return DwarfARangesSection; }
   MCSection *getDwarfRangesSection() const { return DwarfRangesSection; }
+  MCSection *getDwarfRnglistsSection() const { return DwarfRnglistsSection; }
   MCSection *getDwarfMacinfoSection() const { return DwarfMacinfoSection; }
 
-  // DWARF5 Experimental Debug Info Sections
+  MCSection *getDwarfDebugNamesSection() const {
+    return DwarfDebugNamesSection;
+  }
   MCSection *getDwarfAccelNamesSection() const {
     return DwarfAccelNamesSection;
   }
@@ -275,6 +283,9 @@
   MCSection *getDwarfStrOffDWOSection() const { return DwarfStrOffDWOSection; }
   MCSection *getDwarfStrOffSection() const { return DwarfStrOffSection; }
   MCSection *getDwarfAddrSection() const { return DwarfAddrSection; }
+  MCSection *getDwarfRnglistsDWOSection() const {
+    return DwarfRnglistsDWOSection;
+  }
   MCSection *getDwarfCUIndexSection() const { return DwarfCUIndexSection; }
   MCSection *getDwarfTUIndexSection() const { return DwarfTUIndexSection; }
   MCSection *getDwarfSwiftASTSection() const { return DwarfSwiftASTSection; }
@@ -296,7 +307,7 @@
   MCSection *getStackMapSection() const { return StackMapSection; }
   MCSection *getFaultMapSection() const { return FaultMapSection; }
 
-  MCSection *getStackSizesSection() const { return StackSizesSection; }
+  MCSection *getStackSizesSection(const MCSection &TextSec) const;
 
   // ELF specific sections.
   MCSection *getDataRelROSection() const { return DataRelROSection; }
@@ -326,6 +337,9 @@
   }
   const MCSection *getConstDataSection() const { return ConstDataSection; }
   const MCSection *getDataCoalSection() const { return DataCoalSection; }
+  const MCSection *getConstDataCoalSection() const {
+    return ConstDataCoalSection;
+  }
   const MCSection *getDataCommonSection() const { return DataCommonSection; }
   MCSection *getDataBSSSection() const { return DataBSSSection; }
   const MCSection *getFourByteConstantSection() const {
diff --git a/linux-x64/clang/include/llvm/MC/MCObjectStreamer.h b/linux-x64/clang/include/llvm/MC/MCObjectStreamer.h
index 8e9b4ac..035206d 100644
--- a/linux-x64/clang/include/llvm/MC/MCObjectStreamer.h
+++ b/linux-x64/clang/include/llvm/MC/MCObjectStreamer.h
@@ -26,7 +26,7 @@
 class raw_ostream;
 class raw_pwrite_stream;
 
-/// \brief Streaming object file generation interface.
+/// Streaming object file generation interface.
 ///
 /// This class provides an implementation of the MCStreamer interface which is
 /// suitable for use with the assembler backend. Specific object file formats
@@ -34,9 +34,6 @@
 /// to that file format or custom semantics expected by the object writer
 /// implementation.
 class MCObjectStreamer : public MCStreamer {
-  std::unique_ptr<MCObjectWriter> ObjectWriter;
-  std::unique_ptr<MCAsmBackend> TAB;
-  std::unique_ptr<MCCodeEmitter> Emitter;
   std::unique_ptr<MCAssembler> Assembler;
   MCSection::iterator CurInsertionPoint;
   bool EmitEHFrame;
@@ -51,7 +48,7 @@
 
 protected:
   MCObjectStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> TAB,
-                   raw_pwrite_stream &OS,
+                   std::unique_ptr<MCObjectWriter> OW,
                    std::unique_ptr<MCCodeEmitter> Emitter);
   ~MCObjectStreamer();
 
@@ -76,7 +73,9 @@
 
   /// Get a data fragment to write into, creating a new one if the current
   /// fragment is not a data fragment.
-  MCDataFragment *getOrCreateDataFragment();
+  /// Optionally a \p STI can be passed in so that a new fragment is created
+  /// if the Subtarget differs from the current fragment.
+  MCDataFragment *getOrCreateDataFragment(const MCSubtargetInfo* STI = nullptr);
   MCPaddingFragment *getOrCreatePaddingFragment();
 
 protected:
@@ -91,8 +90,11 @@
 public:
   void visitUsedSymbol(const MCSymbol &Sym) override;
 
-  MCAssembler &getAssembler() { return *Assembler; }
+  /// Create a dummy fragment to assign any pending labels.
+  void flushPendingLabels() { flushPendingLabels(nullptr); }
 
+  MCAssembler &getAssembler() { return *Assembler; }
+  MCAssembler *getAssemblerPtr() override;
   /// \name MCStreamer Interface
   /// @{
 
@@ -108,7 +110,7 @@
   void EmitInstruction(const MCInst &Inst, const MCSubtargetInfo &STI,
                        bool = false) override;
 
-  /// \brief Emit an instruction to a special fragment, because this instruction
+  /// Emit an instruction to a special fragment, because this instruction
   /// can change its size during relaxation.
   virtual void EmitInstToFragment(const MCInst &Inst, const MCSubtargetInfo &);
 
@@ -159,7 +161,8 @@
   void EmitGPRel32Value(const MCExpr *Value) override;
   void EmitGPRel64Value(const MCExpr *Value) override;
   bool EmitRelocDirective(const MCExpr &Offset, StringRef Name,
-                          const MCExpr *Expr, SMLoc Loc) override;
+                          const MCExpr *Expr, SMLoc Loc,
+                          const MCSubtargetInfo &STI) override;
   using MCStreamer::emitFill;
   void emitFill(const MCExpr &NumBytes, uint64_t FillValue,
                 SMLoc Loc = SMLoc()) override;
@@ -167,6 +170,9 @@
                 SMLoc Loc = SMLoc()) override;
   void EmitFileDirective(StringRef Filename) override;
 
+  void EmitAddrsig() override;
+  void EmitAddrsigSym(const MCSymbol *Sym) override;
+
   void FinishImpl() override;
 
   /// Emit the absolute difference between two symbols if possible.
diff --git a/linux-x64/clang/include/llvm/MC/MCObjectWriter.h b/linux-x64/clang/include/llvm/MC/MCObjectWriter.h
index cd90690..8bae2bf 100644
--- a/linux-x64/clang/include/llvm/MC/MCObjectWriter.h
+++ b/linux-x64/clang/include/llvm/MC/MCObjectWriter.h
@@ -12,6 +12,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/ADT/Triple.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/EndianStream.h"
 #include "llvm/Support/raw_ostream.h"
@@ -36,22 +37,9 @@
 /// points. Once assembly is complete, the object writer is given the
 /// MCAssembler instance, which contains all the symbol and section data which
 /// should be emitted as part of writeObject().
-///
-/// The object writer also contains a number of helper methods for writing
-/// binary data to the output stream.
 class MCObjectWriter {
-  raw_pwrite_stream *OS;
-
 protected:
-  unsigned IsLittleEndian : 1;
-
-  // Can only create subclasses.
-  MCObjectWriter(raw_pwrite_stream &OS, bool IsLittleEndian)
-      : OS(&OS), IsLittleEndian(IsLittleEndian) {}
-
-  unsigned getInitialOffset() {
-    return OS->tell();
-  }
+  MCObjectWriter() = default;
 
 public:
   MCObjectWriter(const MCObjectWriter &) = delete;
@@ -61,11 +49,6 @@
   /// lifetime management
   virtual void reset() {}
 
-  bool isLittleEndian() const { return IsLittleEndian; }
-
-  raw_pwrite_stream &getStream() { return *OS; }
-  void setStream(raw_pwrite_stream &NewOS) { OS = &NewOS; }
-
   /// \name High-Level API
   /// @{
 
@@ -109,90 +92,31 @@
                                                       bool InSet,
                                                       bool IsPCRel) const;
 
-  /// Write the object file.
+  /// Tell the object writer to emit an address-significance table during
+  /// writeObject(). If this function is not called, all symbols are treated as
+  /// address-significant.
+  virtual void emitAddrsigSection() {}
+
+  /// Record the given symbol in the address-significance table to be written
+  /// diring writeObject().
+  virtual void addAddrsigSymbol(const MCSymbol *Sym) {}
+
+  /// Write the object file and returns the number of bytes written.
   ///
   /// This routine is called by the assembler after layout and relaxation is
   /// complete, fixups have been evaluated and applied, and relocations
   /// generated.
-  virtual void writeObject(MCAssembler &Asm, const MCAsmLayout &Layout) = 0;
+  virtual uint64_t writeObject(MCAssembler &Asm, const MCAsmLayout &Layout) = 0;
 
   /// @}
-  /// \name Binary Output
-  /// @{
+};
 
-  void write8(uint8_t Value) { *OS << char(Value); }
-
-  void writeLE16(uint16_t Value) {
-    support::endian::Writer<support::little>(*OS).write(Value);
-  }
-
-  void writeLE32(uint32_t Value) {
-    support::endian::Writer<support::little>(*OS).write(Value);
-  }
-
-  void writeLE64(uint64_t Value) {
-    support::endian::Writer<support::little>(*OS).write(Value);
-  }
-
-  void writeBE16(uint16_t Value) {
-    support::endian::Writer<support::big>(*OS).write(Value);
-  }
-
-  void writeBE32(uint32_t Value) {
-    support::endian::Writer<support::big>(*OS).write(Value);
-  }
-
-  void writeBE64(uint64_t Value) {
-    support::endian::Writer<support::big>(*OS).write(Value);
-  }
-
-  void write16(uint16_t Value) {
-    if (IsLittleEndian)
-      writeLE16(Value);
-    else
-      writeBE16(Value);
-  }
-
-  void write32(uint32_t Value) {
-    if (IsLittleEndian)
-      writeLE32(Value);
-    else
-      writeBE32(Value);
-  }
-
-  void write64(uint64_t Value) {
-    if (IsLittleEndian)
-      writeLE64(Value);
-    else
-      writeBE64(Value);
-  }
-
-  void WriteZeros(unsigned N) {
-    const char Zeros[16] = {0};
-
-    for (unsigned i = 0, e = N / 16; i != e; ++i)
-      *OS << StringRef(Zeros, 16);
-
-    *OS << StringRef(Zeros, N % 16);
-  }
-
-  void writeBytes(const SmallVectorImpl<char> &ByteVec,
-                  unsigned ZeroFillSize = 0) {
-    writeBytes(StringRef(ByteVec.data(), ByteVec.size()), ZeroFillSize);
-  }
-
-  void writeBytes(StringRef Str, unsigned ZeroFillSize = 0) {
-    // TODO: this version may need to go away once all fragment contents are
-    // converted to SmallVector<char, N>
-    assert(
-        (ZeroFillSize == 0 || Str.size() <= ZeroFillSize) &&
-        "data size greater than fill size, unexpected large write will occur");
-    *OS << Str;
-    if (ZeroFillSize)
-      WriteZeros(ZeroFillSize - Str.size());
-  }
-
-  /// @}
+/// Base class for classes that define behaviour that is specific to both the
+/// target and the object format.
+class MCObjectTargetWriter {
+public:
+  virtual ~MCObjectTargetWriter() = default;
+  virtual Triple::ObjectFormatType getFormat() const = 0;
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/MC/MCParser/AsmCond.h b/linux-x64/clang/include/llvm/MC/MCParser/AsmCond.h
index 8e7bfc5..a6e0fbd 100644
--- a/linux-x64/clang/include/llvm/MC/MCParser/AsmCond.h
+++ b/linux-x64/clang/include/llvm/MC/MCParser/AsmCond.h
@@ -15,7 +15,7 @@
 /// AsmCond - Class to support conditional assembly
 ///
 /// The conditional assembly feature (.if, .else, .elseif and .endif) is
-/// implemented with AsmCond that tells us what we are in the middle of 
+/// implemented with AsmCond that tells us what we are in the middle of
 /// processing.  Ignore can be either true or false.  When true we are ignoring
 /// the block of code in the middle of a conditional.
 
diff --git a/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParser.h b/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParser.h
index 0f79c47..0d56f36 100644
--- a/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParser.h
+++ b/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParser.h
@@ -91,7 +91,7 @@
   IdKind Kind;
 };
 
-/// \brief Generic Sema callback for assembly parser.
+/// Generic Sema callback for assembly parser.
 class MCAsmParserSemaCallback {
 public:
   virtual ~MCAsmParserSemaCallback();
@@ -105,7 +105,7 @@
                                     unsigned &Offset) = 0;
 };
 
-/// \brief Generic assembler parser interface, for use by target specific
+/// Generic assembler parser interface, for use by target specific
 /// assembly parsers.
 class MCAsmParser {
 public:
@@ -153,7 +153,7 @@
 
   virtual MCContext &getContext() = 0;
 
-  /// \brief Return the output streamer for the assembler.
+  /// Return the output streamer for the assembler.
   virtual MCStreamer &getStreamer() = 0;
 
   MCTargetAsmParser &getTargetParser() const { return *TargetParser; }
@@ -168,13 +168,13 @@
   void setEnablePrintSchedInfo(bool Value) { EnablePrintSchedInfo = Value; }
   bool shouldPrintSchedInfo() { return EnablePrintSchedInfo; }
 
-  /// \brief Run the parser on the input source buffer.
+  /// Run the parser on the input source buffer.
   virtual bool Run(bool NoInitialTextSection, bool NoFinalize = false) = 0;
 
   virtual void setParsingInlineAsm(bool V) = 0;
   virtual bool isParsingInlineAsm() = 0;
 
-  /// \brief Parse MS-style inline assembly.
+  /// Parse MS-style inline assembly.
   virtual bool parseMSInlineAsm(
       void *AsmLoc, std::string &AsmString, unsigned &NumOutputs,
       unsigned &NumInputs, SmallVectorImpl<std::pair<void *, bool>> &OpDecls,
@@ -182,22 +182,22 @@
       SmallVectorImpl<std::string> &Clobbers, const MCInstrInfo *MII,
       const MCInstPrinter *IP, MCAsmParserSemaCallback &SI) = 0;
 
-  /// \brief Emit a note at the location \p L, with the message \p Msg.
+  /// Emit a note at the location \p L, with the message \p Msg.
   virtual void Note(SMLoc L, const Twine &Msg, SMRange Range = None) = 0;
 
-  /// \brief Emit a warning at the location \p L, with the message \p Msg.
+  /// Emit a warning at the location \p L, with the message \p Msg.
   ///
   /// \return The return value is true, if warnings are fatal.
   virtual bool Warning(SMLoc L, const Twine &Msg, SMRange Range = None) = 0;
 
-  /// \brief Return an error at the location \p L, with the message \p Msg. This
+  /// Return an error at the location \p L, with the message \p Msg. This
   /// may be modified before being emitted.
   ///
   /// \return The return value is always true, as an idiomatic convenience to
   /// clients.
   bool Error(SMLoc L, const Twine &Msg, SMRange Range = None);
 
-  /// \brief Emit an error at the location \p L, with the message \p Msg.
+  /// Emit an error at the location \p L, with the message \p Msg.
   ///
   /// \return The return value is always true, as an idiomatic convenience to
   /// clients.
@@ -214,21 +214,23 @@
     return rv;
   }
 
+  void clearPendingErrors() { PendingErrors.clear(); }
+
   bool addErrorSuffix(const Twine &Suffix);
 
-  /// \brief Get the next AsmToken in the stream, possibly handling file
+  /// Get the next AsmToken in the stream, possibly handling file
   /// inclusion first.
   virtual const AsmToken &Lex() = 0;
 
-  /// \brief Get the current AsmToken from the stream.
+  /// Get the current AsmToken from the stream.
   const AsmToken &getTok() const;
 
-  /// \brief Report an error at the current lexer location.
+  /// Report an error at the current lexer location.
   bool TokError(const Twine &Msg, SMRange Range = None);
 
   bool parseTokenLoc(SMLoc &Loc);
   bool parseToken(AsmToken::TokenKind T, const Twine &Msg = "unexpected token");
-  /// \brief Attempt to parse and consume token, returning true on
+  /// Attempt to parse and consume token, returning true on
   /// success.
   bool parseOptionalToken(AsmToken::TokenKind T);
 
@@ -241,23 +243,23 @@
   bool check(bool P, const Twine &Msg);
   bool check(bool P, SMLoc Loc, const Twine &Msg);
 
-  /// \brief Parse an identifier or string (as a quoted identifier) and set \p
+  /// Parse an identifier or string (as a quoted identifier) and set \p
   /// Res to the identifier contents.
   virtual bool parseIdentifier(StringRef &Res) = 0;
 
-  /// \brief Parse up to the end of statement and return the contents from the
+  /// Parse up to the end of statement and return the contents from the
   /// current token until the end of the statement; the current token on exit
   /// will be either the EndOfStatement or EOF.
   virtual StringRef parseStringToEndOfStatement() = 0;
 
-  /// \brief Parse the current token as a string which may include escaped
+  /// Parse the current token as a string which may include escaped
   /// characters and return the string contents.
   virtual bool parseEscapedString(std::string &Data) = 0;
 
-  /// \brief Skip to the end of the current statement, for error recovery.
+  /// Skip to the end of the current statement, for error recovery.
   virtual void eatToEndOfStatement() = 0;
 
-  /// \brief Parse an arbitrary expression.
+  /// Parse an arbitrary expression.
   ///
   /// \param Res - The value of the expression. The result is undefined
   /// on error.
@@ -265,14 +267,14 @@
   virtual bool parseExpression(const MCExpr *&Res, SMLoc &EndLoc) = 0;
   bool parseExpression(const MCExpr *&Res);
 
-  /// \brief Parse a primary expression.
+  /// Parse a primary expression.
   ///
   /// \param Res - The value of the expression. The result is undefined
   /// on error.
   /// \return - False on success.
   virtual bool parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc) = 0;
 
-  /// \brief Parse an arbitrary expression, assuming that an initial '(' has
+  /// Parse an arbitrary expression, assuming that an initial '(' has
   /// already been consumed.
   ///
   /// \param Res - The value of the expression. The result is undefined
@@ -280,19 +282,19 @@
   /// \return - False on success.
   virtual bool parseParenExpression(const MCExpr *&Res, SMLoc &EndLoc) = 0;
 
-  /// \brief Parse an expression which must evaluate to an absolute value.
+  /// Parse an expression which must evaluate to an absolute value.
   ///
   /// \param Res - The value of the absolute expression. The result is undefined
   /// on error.
   /// \return - False on success.
   virtual bool parseAbsoluteExpression(int64_t &Res) = 0;
 
-  /// \brief Ensure that we have a valid section set in the streamer. Otherwise,
+  /// Ensure that we have a valid section set in the streamer. Otherwise,
   /// report an error and switch to .text.
   /// \return - False on success.
   virtual bool checkForValidSection() = 0;
 
-  /// \brief Parse an arbitrary expression of a specified parenthesis depth,
+  /// Parse an arbitrary expression of a specified parenthesis depth,
   /// assuming that the initial '(' characters have already been consumed.
   ///
   /// \param ParenDepth - Specifies how many trailing expressions outside the
@@ -304,7 +306,7 @@
                                      SMLoc &EndLoc) = 0;
 };
 
-/// \brief Create an MCAsmParser instance.
+/// Create an MCAsmParser instance.
 MCAsmParser *createMCAsmParser(SourceMgr &, MCContext &, MCStreamer &,
                                const MCAsmInfo &, unsigned CB = 0);
 
diff --git a/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParserExtension.h b/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParserExtension.h
index ffb8d7a..1a132bc 100644
--- a/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParserExtension.h
+++ b/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParserExtension.h
@@ -20,7 +20,7 @@
 
 class Twine;
 
-/// \brief Generic interface for extending the MCAsmParser,
+/// Generic interface for extending the MCAsmParser,
 /// which is implemented by target and object file assembly parser
 /// implementations.
 class MCAsmParserExtension {
@@ -45,7 +45,7 @@
   MCAsmParserExtension &operator=(const MCAsmParserExtension &) = delete;
   virtual ~MCAsmParserExtension();
 
-  /// \brief Initialize the extension for parsing using the given \p Parser.
+  /// Initialize the extension for parsing using the given \p Parser.
   /// The extension should use the AsmParser interfaces to register its
   /// parsing routines.
   virtual void Initialize(MCAsmParser &Parser);
diff --git a/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParserUtils.h b/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParserUtils.h
index 84173bb..259113b 100644
--- a/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParserUtils.h
+++ b/linux-x64/clang/include/llvm/MC/MCParser/MCAsmParserUtils.h
@@ -25,7 +25,7 @@
 /// On success, returns false and sets the Symbol and Value output parameters.
 bool parseAssignmentExpression(StringRef Name, bool allow_redef,
                                MCAsmParser &Parser, MCSymbol *&Symbol,
-                               const MCExpr *&Value);
+                               const MCExpr *&Value, bool AllowExtendedExpr = false);
 
 } // namespace MCParserUtils
 
diff --git a/linux-x64/clang/include/llvm/MC/MCParser/MCTargetAsmParser.h b/linux-x64/clang/include/llvm/MC/MCParser/MCTargetAsmParser.h
index d628794..2d188a6 100644
--- a/linux-x64/clang/include/llvm/MC/MCParser/MCTargetAsmParser.h
+++ b/linux-x64/clang/include/llvm/MC/MCParser/MCTargetAsmParser.h
@@ -14,6 +14,7 @@
 #include "llvm/MC/MCExpr.h"
 #include "llvm/MC/MCInstrInfo.h"
 #include "llvm/MC/MCParser/MCAsmLexer.h"
+#include "llvm/MC/MCParser/MCParsedAsmOperand.h"
 #include "llvm/MC/MCParser/MCAsmParserExtension.h"
 #include "llvm/MC/MCTargetOptions.h"
 #include "llvm/Support/SMLoc.h"
@@ -133,6 +134,53 @@
   MatchOperand_ParseFail // operand matched but had errors
 };
 
+enum class DiagnosticPredicateTy {
+  Match,
+  NearMatch,
+  NoMatch,
+};
+
+// When an operand is parsed, the assembler will try to iterate through a set of
+// possible operand classes that the operand might match and call the
+// corresponding PredicateMethod to determine that.
+//
+// If there are two AsmOperands that would give a specific diagnostic if there
+// is no match, there is currently no mechanism to distinguish which operand is
+// a closer match. The DiagnosticPredicate distinguishes between 'completely
+// no match' and 'near match', so the assembler can decide whether to give a
+// specific diagnostic, or use 'InvalidOperand' and continue to find a
+// 'better matching' diagnostic.
+//
+// For example:
+//    opcode opnd0, onpd1, opnd2
+//
+// where:
+//    opnd2 could be an 'immediate of range [-8, 7]'
+//    opnd2 could be a  'register + shift/extend'.
+//
+// If opnd2 is a valid register, but with a wrong shift/extend suffix, it makes
+// little sense to give a diagnostic that the operand should be an immediate
+// in range [-8, 7].
+//
+// This is a light-weight alternative to the 'NearMissInfo' approach
+// below which collects *all* possible diagnostics. This alternative
+// is optional and fully backward compatible with existing
+// PredicateMethods that return a 'bool' (match or no match).
+struct DiagnosticPredicate {
+  DiagnosticPredicateTy Type;
+
+  explicit DiagnosticPredicate(bool Match)
+      : Type(Match ? DiagnosticPredicateTy::Match
+                   : DiagnosticPredicateTy::NearMatch) {}
+  DiagnosticPredicate(DiagnosticPredicateTy T) : Type(T) {}
+  DiagnosticPredicate(const DiagnosticPredicate &) = default;
+
+  operator bool() const { return Type == DiagnosticPredicateTy::Match; }
+  bool isMatch() const { return Type == DiagnosticPredicateTy::Match; }
+  bool isNearMatch() const { return Type == DiagnosticPredicateTy::NearMatch; }
+  bool isNoMatch() const { return Type == DiagnosticPredicateTy::NoMatch; }
+};
+
 // When matching of an assembly instruction fails, there may be multiple
 // encodings that are close to being a match. It's often ambiguous which one
 // the programmer intended to use, so we want to report an error which mentions
@@ -324,6 +372,11 @@
     SemaCallback = Callback;
   }
 
+  // Target-specific parsing of assembler-level variable assignment.
+  virtual bool parseAssignmentExpression(const MCExpr *&Res, SMLoc &EndLoc) {
+    return getParser().parseExpression(Res, EndLoc);
+  }
+
   virtual bool ParseRegister(unsigned &RegNo, SMLoc &StartLoc,
                              SMLoc &EndLoc) = 0;
 
@@ -401,6 +454,15 @@
   virtual void convertToMapAndConstraints(unsigned Kind,
                                           const OperandVector &Operands) = 0;
 
+  /// Returns whether two registers are equal and is used by the tied-operands
+  /// checks in the AsmMatcher. This method can be overridden allow e.g. a
+  /// sub- or super-register as the tied operand.
+  virtual bool regsEqual(const MCParsedAsmOperand &Op1,
+                         const MCParsedAsmOperand &Op2) const {
+    assert(Op1.isReg() && Op2.isReg() && "Operands not all regs");
+    return Op1.getReg() == Op2.getReg();
+  }
+
   // Return whether this parser uses assignment statements with equals tokens
   virtual bool equalIsAsmAssignment() { return true; };
   // Return whether this start of statement identifier is a label
diff --git a/linux-x64/clang/include/llvm/MC/MCRegisterInfo.h b/linux-x64/clang/include/llvm/MC/MCRegisterInfo.h
index c57c9ef..8d8c677 100644
--- a/linux-x64/clang/include/llvm/MC/MCRegisterInfo.h
+++ b/linux-x64/clang/include/llvm/MC/MCRegisterInfo.h
@@ -41,7 +41,6 @@
   const uint16_t RegsSize;
   const uint16_t RegSetSize;
   const uint16_t ID;
-  const uint16_t PhysRegSize;
   const int8_t CopyCost;
   const bool Allocatable;
 
@@ -80,11 +79,6 @@
     return contains(Reg1) && contains(Reg2);
   }
 
-  /// Return the size of the physical register in bytes.
-  unsigned getPhysRegSize() const { return PhysRegSize; }
-  /// Temporary function to allow out-of-tree targets to switch.
-  unsigned getSize() const { return getPhysRegSize(); }
-
   /// getCopyCost - Return the cost of copying a value between two registers in
   /// this class. A negative number means the register class is very expensive
   /// to copy e.g. status flag register classes.
@@ -240,7 +234,7 @@
   friend class MCRegUnitMaskIterator;
   friend class MCRegUnitRootIterator;
 
-  /// \brief Initialize MCRegisterInfo, called by TableGen
+  /// Initialize MCRegisterInfo, called by TableGen
   /// auto-generated routines. *DO NOT USE*.
   void InitMCRegisterInfo(const MCRegisterDesc *D, unsigned NR, unsigned RA,
                           unsigned PC,
@@ -283,7 +277,7 @@
     Dwarf2LRegsSize = 0;
   }
 
-  /// \brief Used to initialize LLVM register to Dwarf
+  /// Used to initialize LLVM register to Dwarf
   /// register number mapping. Called by TableGen auto-generated routines.
   /// *DO NOT USE*.
   void mapLLVMRegsToDwarfRegs(const DwarfLLVMRegPair *Map, unsigned Size,
@@ -297,7 +291,7 @@
     }
   }
 
-  /// \brief Used to initialize Dwarf register to LLVM
+  /// Used to initialize Dwarf register to LLVM
   /// register number mapping. Called by TableGen auto-generated routines.
   /// *DO NOT USE*.
   void mapDwarfRegsToLLVMRegs(const DwarfLLVMRegPair *Map, unsigned Size,
@@ -324,7 +318,7 @@
     L2CVRegs[LLVMReg] = CVReg;
   }
 
-  /// \brief This method should return the register where the return
+  /// This method should return the register where the return
   /// address can be found.
   unsigned getRARegister() const {
     return RAReg;
@@ -341,86 +335,86 @@
     return Desc[RegNo];
   }
 
-  /// \brief Provide a get method, equivalent to [], but more useful with a
+  /// Provide a get method, equivalent to [], but more useful with a
   /// pointer to this object.
   const MCRegisterDesc &get(unsigned RegNo) const {
     return operator[](RegNo);
   }
 
-  /// \brief Returns the physical register number of sub-register "Index"
+  /// Returns the physical register number of sub-register "Index"
   /// for physical register RegNo. Return zero if the sub-register does not
   /// exist.
   unsigned getSubReg(unsigned Reg, unsigned Idx) const;
 
-  /// \brief Return a super-register of the specified register
+  /// Return a super-register of the specified register
   /// Reg so its sub-register of index SubIdx is Reg.
   unsigned getMatchingSuperReg(unsigned Reg, unsigned SubIdx,
                                const MCRegisterClass *RC) const;
 
-  /// \brief For a given register pair, return the sub-register index
+  /// For a given register pair, return the sub-register index
   /// if the second register is a sub-register of the first. Return zero
   /// otherwise.
   unsigned getSubRegIndex(unsigned RegNo, unsigned SubRegNo) const;
 
-  /// \brief Get the size of the bit range covered by a sub-register index.
+  /// Get the size of the bit range covered by a sub-register index.
   /// If the index isn't continuous, return the sum of the sizes of its parts.
   /// If the index is used to access subregisters of different sizes, return -1.
   unsigned getSubRegIdxSize(unsigned Idx) const;
 
-  /// \brief Get the offset of the bit range covered by a sub-register index.
+  /// Get the offset of the bit range covered by a sub-register index.
   /// If an Offset doesn't make sense (the index isn't continuous, or is used to
   /// access sub-registers at different offsets), return -1.
   unsigned getSubRegIdxOffset(unsigned Idx) const;
 
-  /// \brief Return the human-readable symbolic target-specific name for the
+  /// Return the human-readable symbolic target-specific name for the
   /// specified physical register.
   const char *getName(unsigned RegNo) const {
     return RegStrings + get(RegNo).Name;
   }
 
-  /// \brief Return the number of registers this target has (useful for
+  /// Return the number of registers this target has (useful for
   /// sizing arrays holding per register information)
   unsigned getNumRegs() const {
     return NumRegs;
   }
 
-  /// \brief Return the number of sub-register indices
+  /// Return the number of sub-register indices
   /// understood by the target. Index 0 is reserved for the no-op sub-register,
   /// while 1 to getNumSubRegIndices() - 1 represent real sub-registers.
   unsigned getNumSubRegIndices() const {
     return NumSubRegIndices;
   }
 
-  /// \brief Return the number of (native) register units in the
+  /// Return the number of (native) register units in the
   /// target. Register units are numbered from 0 to getNumRegUnits() - 1. They
   /// can be accessed through MCRegUnitIterator defined below.
   unsigned getNumRegUnits() const {
     return NumRegUnits;
   }
 
-  /// \brief Map a target register to an equivalent dwarf register
+  /// Map a target register to an equivalent dwarf register
   /// number.  Returns -1 if there is no equivalent value.  The second
   /// parameter allows targets to use different numberings for EH info and
   /// debugging info.
   int getDwarfRegNum(unsigned RegNum, bool isEH) const;
 
-  /// \brief Map a dwarf register back to a target register.
+  /// Map a dwarf register back to a target register.
   int getLLVMRegNum(unsigned RegNum, bool isEH) const;
 
-  /// \brief Map a DWARF EH register back to a target register (same as
+  /// Map a DWARF EH register back to a target register (same as
   /// getLLVMRegNum(RegNum, true)) but return -1 if there is no mapping,
   /// rather than asserting that there must be one.
   int getLLVMRegNumFromEH(unsigned RegNum) const;
 
-  /// \brief Map a target EH register number to an equivalent DWARF register
+  /// Map a target EH register number to an equivalent DWARF register
   /// number.
   int getDwarfRegNumFromDwarfEHRegNum(unsigned RegNum) const;
 
-  /// \brief Map a target register to an equivalent SEH register
+  /// Map a target register to an equivalent SEH register
   /// number.  Returns LLVM register number if there is no equivalent value.
   int getSEHRegNum(unsigned RegNum) const;
 
-  /// \brief Map a target register to an equivalent CodeView register
+  /// Map a target register to an equivalent CodeView register
   /// number.
   int getCodeViewRegNum(unsigned RegNum) const;
 
@@ -434,7 +428,7 @@
     return (unsigned)(regclass_end()-regclass_begin());
   }
 
-  /// \brief Returns the register class associated with the enumeration
+  /// Returns the register class associated with the enumeration
   /// value.  See class MCOperandInfo.
   const MCRegisterClass& getRegClass(unsigned i) const {
     assert(i < getNumRegClasses() && "Register Class ID out of range");
@@ -445,33 +439,33 @@
     return RegClassStrings + Class->NameIdx;
   }
 
-   /// \brief Returns the encoding for RegNo
+   /// Returns the encoding for RegNo
   uint16_t getEncodingValue(unsigned RegNo) const {
     assert(RegNo < NumRegs &&
            "Attempting to get encoding for invalid register number!");
     return RegEncodingTable[RegNo];
   }
 
-  /// \brief Returns true if RegB is a sub-register of RegA.
+  /// Returns true if RegB is a sub-register of RegA.
   bool isSubRegister(unsigned RegA, unsigned RegB) const {
     return isSuperRegister(RegB, RegA);
   }
 
-  /// \brief Returns true if RegB is a super-register of RegA.
+  /// Returns true if RegB is a super-register of RegA.
   bool isSuperRegister(unsigned RegA, unsigned RegB) const;
 
-  /// \brief Returns true if RegB is a sub-register of RegA or if RegB == RegA.
+  /// Returns true if RegB is a sub-register of RegA or if RegB == RegA.
   bool isSubRegisterEq(unsigned RegA, unsigned RegB) const {
     return isSuperRegisterEq(RegB, RegA);
   }
 
-  /// \brief Returns true if RegB is a super-register of RegA or if
+  /// Returns true if RegB is a super-register of RegA or if
   /// RegB == RegA.
   bool isSuperRegisterEq(unsigned RegA, unsigned RegB) const {
     return RegA == RegB || isSuperRegister(RegA, RegB);
   }
 
-  /// \brief Returns true if RegB is a super-register or sub-register of RegA
+  /// Returns true if RegB is a super-register or sub-register of RegA
   /// or if RegB == RegA.
   bool isSuperOrSubRegisterEq(unsigned RegA, unsigned RegB) const {
     return isSubRegisterEq(RegA, RegB) || isSuperRegister(RegA, RegB);
@@ -651,17 +645,17 @@
     Reg1 = MCRI->RegUnitRoots[RegUnit][1];
   }
 
-  /// \brief Dereference to get the current root register.
+  /// Dereference to get the current root register.
   unsigned operator*() const {
     return Reg0;
   }
 
-  /// \brief Check if the iterator is at the end of the list.
+  /// Check if the iterator is at the end of the list.
   bool isValid() const {
     return Reg0;
   }
 
-  /// \brief Preincrement to move to the next root register.
+  /// Preincrement to move to the next root register.
   void operator++() {
     assert(isValid() && "Cannot move off the end of the list.");
     Reg0 = Reg1;
diff --git a/linux-x64/clang/include/llvm/MC/MCSchedule.h b/linux-x64/clang/include/llvm/MC/MCSchedule.h
index 62f8efd..f2f1dfb 100644
--- a/linux-x64/clang/include/llvm/MC/MCSchedule.h
+++ b/linux-x64/clang/include/llvm/MC/MCSchedule.h
@@ -16,6 +16,7 @@
 #define LLVM_MC_MCSCHEDULE_H
 
 #include "llvm/ADT/Optional.h"
+#include "llvm/Config/llvm-config.h"
 #include "llvm/Support/DataTypes.h"
 #include <cassert>
 
@@ -23,6 +24,9 @@
 
 struct InstrItinerary;
 class MCSubtargetInfo;
+class MCInstrInfo;
+class MCInst;
+class InstrItineraryData;
 
 /// Define a kind of processor resource that will be modeled by the scheduler.
 struct MCProcResourceDesc {
@@ -128,6 +132,64 @@
   }
 };
 
+/// Specify the cost of a register definition in terms of number of physical
+/// register allocated at register renaming stage. For example, AMD Jaguar.
+/// natively supports 128-bit data types, and operations on 256-bit registers
+/// (i.e. YMM registers) are internally split into two COPs (complex operations)
+/// and each COP updates a physical register. Basically, on Jaguar, a YMM
+/// register write effectively consumes two physical registers. That means,
+/// the cost of a YMM write in the BtVer2 model is 2.
+struct MCRegisterCostEntry {
+  unsigned RegisterClassID;
+  unsigned Cost;
+};
+
+/// A register file descriptor.
+///
+/// This struct allows to describe processor register files. In particular, it
+/// helps describing the size of the register file, as well as the cost of
+/// allocating a register file at register renaming stage.
+/// FIXME: this struct can be extended to provide information about the number
+/// of read/write ports to the register file.  A value of zero for field
+/// 'NumPhysRegs' means: this register file has an unbounded number of physical
+/// registers.
+struct MCRegisterFileDesc {
+  const char *Name;
+  uint16_t NumPhysRegs;
+  uint16_t NumRegisterCostEntries;
+  // Index of the first cost entry in MCExtraProcessorInfo::RegisterCostTable.
+  uint16_t RegisterCostEntryIdx;
+};
+
+/// Provide extra details about the machine processor.
+///
+/// This is a collection of "optional" processor information that is not
+/// normally used by the LLVM machine schedulers, but that can be consumed by
+/// external tools like llvm-mca to improve the quality of the peformance
+/// analysis.
+struct MCExtraProcessorInfo {
+  // Actual size of the reorder buffer in hardware.
+  unsigned ReorderBufferSize;
+  // Number of instructions retired per cycle.
+  unsigned MaxRetirePerCycle;
+  const MCRegisterFileDesc *RegisterFiles;
+  unsigned NumRegisterFiles;
+  const MCRegisterCostEntry *RegisterCostTable;
+  unsigned NumRegisterCostEntries;
+
+  struct PfmCountersInfo {
+    // An optional name of a performance counter that can be used to measure
+    // cycles.
+    const char *CycleCounter;
+
+    // For each MCProcResourceDesc defined by the processor, an optional list of
+    // names of performance counters that can be used to measure the resource
+    // utilization.
+    const char **IssueCounters;
+  };
+  PfmCountersInfo PfmCounters;
+};
+
 /// Machine model for scheduling, bundling, and heuristics.
 ///
 /// The machine model directly provides basic information about the
@@ -138,9 +200,62 @@
 /// provides a detailed reservation table describing each cycle of instruction
 /// execution. Subtargets may define any or all of the above categories of data
 /// depending on the type of CPU and selected scheduler.
+///
+/// The machine independent properties defined here are used by the scheduler as
+/// an abstract machine model. A real micro-architecture has a number of
+/// buffers, queues, and stages. Declaring that a given machine-independent
+/// abstract property corresponds to a specific physical property across all
+/// subtargets can't be done. Nonetheless, the abstract model is
+/// useful. Futhermore, subtargets typically extend this model with processor
+/// specific resources to model any hardware features that can be exploited by
+/// sceduling heuristics and aren't sufficiently represented in the abstract.
+///
+/// The abstract pipeline is built around the notion of an "issue point". This
+/// is merely a reference point for counting machine cycles. The physical
+/// machine will have pipeline stages that delay execution. The scheduler does
+/// not model those delays because they are irrelevant as long as they are
+/// consistent. Inaccuracies arise when instructions have different execution
+/// delays relative to each other, in addition to their intrinsic latency. Those
+/// special cases can be handled by TableGen constructs such as, ReadAdvance,
+/// which reduces latency when reading data, and ResourceCycles, which consumes
+/// a processor resource when writing data for a number of abstract
+/// cycles.
+///
+/// TODO: One tool currently missing is the ability to add a delay to
+/// ResourceCycles. That would be easy to add and would likely cover all cases
+/// currently handled by the legacy itinerary tables.
+///
+/// A note on out-of-order execution and, more generally, instruction
+/// buffers. Part of the CPU pipeline is always in-order. The issue point, which
+/// is the point of reference for counting cycles, only makes sense as an
+/// in-order part of the pipeline. Other parts of the pipeline are sometimes
+/// falling behind and sometimes catching up. It's only interesting to model
+/// those other, decoupled parts of the pipeline if they may be predictably
+/// resource constrained in a way that the scheduler can exploit.
+///
+/// The LLVM machine model distinguishes between in-order constraints and
+/// out-of-order constraints so that the target's scheduling strategy can apply
+/// appropriate heuristics. For a well-balanced CPU pipeline, out-of-order
+/// resources would not typically be treated as a hard scheduling
+/// constraint. For example, in the GenericScheduler, a delay caused by limited
+/// out-of-order resources is not directly reflected in the number of cycles
+/// that the scheduler sees between issuing an instruction and its dependent
+/// instructions. In other words, out-of-order resources don't directly increase
+/// the latency between pairs of instructions. However, they can still be used
+/// to detect potential bottlenecks across a sequence of instructions and bias
+/// the scheduling heuristics appropriately.
 struct MCSchedModel {
   // IssueWidth is the maximum number of instructions that may be scheduled in
-  // the same per-cycle group.
+  // the same per-cycle group. This is meant to be a hard in-order constraint
+  // (a.k.a. "hazard"). In the GenericScheduler strategy, no more than
+  // IssueWidth micro-ops can ever be scheduled in a particular cycle.
+  //
+  // In practice, IssueWidth is useful to model any bottleneck between the
+  // decoder (after micro-op expansion) and the out-of-order reservation
+  // stations or the decoder bandwidth itself. If the total number of
+  // reservation stations is also a bottleneck, or if any other pipeline stage
+  // has a bandwidth limitation, then that can be naturally modeled by adding an
+  // out-of-order processor resource.
   unsigned IssueWidth;
   static const unsigned DefaultIssueWidth = 1;
 
@@ -198,11 +313,21 @@
   friend class InstrItineraryData;
   const InstrItinerary *InstrItineraries;
 
+  const MCExtraProcessorInfo *ExtraProcessorInfo;
+
+  bool hasExtraProcessorInfo() const { return ExtraProcessorInfo; }
+
   unsigned getProcessorID() const { return ProcID; }
 
   /// Does this machine model include instruction-level scheduling.
   bool hasInstrSchedModel() const { return SchedClassTable; }
 
+  const MCExtraProcessorInfo &getExtraProcessorInfo() const {
+    assert(hasExtraProcessorInfo() &&
+           "No extra information available for this model");
+    return *ExtraProcessorInfo;
+  }
+
   /// Return true if this machine model data for all instructions with a
   /// scheduling class (itinerary class or SchedRW list).
   bool isComplete() const { return CompleteModel; }
@@ -232,16 +357,27 @@
   static int computeInstrLatency(const MCSubtargetInfo &STI,
                                  const MCSchedClassDesc &SCDesc);
 
-  /// Returns the reciprocal throughput information from a MCSchedClassDesc.
-  static Optional<double>
+  int computeInstrLatency(const MCSubtargetInfo &STI, unsigned SClass) const;
+  int computeInstrLatency(const MCSubtargetInfo &STI, const MCInstrInfo &MCII,
+                          const MCInst &Inst) const;
+
+  // Returns the reciprocal throughput information from a MCSchedClassDesc.
+  static double
   getReciprocalThroughput(const MCSubtargetInfo &STI,
                           const MCSchedClassDesc &SCDesc);
 
+  static double
+  getReciprocalThroughput(unsigned SchedClass, const InstrItineraryData &IID);
+
+  double
+  getReciprocalThroughput(const MCSubtargetInfo &STI, const MCInstrInfo &MCII,
+                          const MCInst &Inst) const;
+
   /// Returns the default initialized model.
   static const MCSchedModel &GetDefaultSchedModel() { return Default; }
   static const MCSchedModel Default;
 };
 
-} // End llvm namespace
+} // namespace llvm
 
 #endif
diff --git a/linux-x64/clang/include/llvm/MC/MCSection.h b/linux-x64/clang/include/llvm/MC/MCSection.h
index 2771b1e..eb210b4 100644
--- a/linux-x64/clang/include/llvm/MC/MCSection.h
+++ b/linux-x64/clang/include/llvm/MC/MCSection.h
@@ -40,7 +40,7 @@
 public:
   enum SectionVariant { SV_COFF = 0, SV_ELF, SV_MachO, SV_Wasm };
 
-  /// \brief Express the state of bundle locked groups while emitting code.
+  /// Express the state of bundle locked groups while emitting code.
   enum BundleLockStateType {
     NotBundleLocked,
     BundleLocked,
@@ -65,19 +65,23 @@
   /// The index of this section in the layout order.
   unsigned LayoutOrder;
 
-  /// \brief Keeping track of bundle-locked state.
+  /// Keeping track of bundle-locked state.
   BundleLockStateType BundleLockState = NotBundleLocked;
 
-  /// \brief Current nesting depth of bundle_lock directives.
+  /// Current nesting depth of bundle_lock directives.
   unsigned BundleLockNestingDepth = 0;
 
-  /// \brief We've seen a bundle_lock directive but not its first instruction
+  /// We've seen a bundle_lock directive but not its first instruction
   /// yet.
   bool BundleGroupBeforeFirstInst : 1;
 
   /// Whether this section has had instructions emitted into it.
   bool HasInstructions : 1;
 
+  /// Whether this section has had data emitted into it.
+  /// Right now this is only used by the ARM backend.
+  bool HasData : 1;
+
   bool IsRegistered : 1;
 
   MCDummyFragment DummyFragment;
@@ -137,6 +141,9 @@
   bool hasInstructions() const { return HasInstructions; }
   void setHasInstructions(bool Value) { HasInstructions = Value; }
 
+  bool hasData() const { return HasData; }
+  void setHasData(bool Value) { HasData = Value; }
+
   bool isRegistered() const { return IsRegistered; }
   void setIsRegistered(bool Value) { IsRegistered = Value; }
 
diff --git a/linux-x64/clang/include/llvm/MC/MCStreamer.h b/linux-x64/clang/include/llvm/MC/MCStreamer.h
index 582a836..e4d0dc0 100644
--- a/linux-x64/clang/include/llvm/MC/MCStreamer.h
+++ b/linux-x64/clang/include/llvm/MC/MCStreamer.h
@@ -170,7 +170,7 @@
   std::unique_ptr<AssemblerConstantPools> ConstantPools;
 };
 
-/// \brief Streaming machine code generation interface.
+/// Streaming machine code generation interface.
 ///
 /// This interface is intended to provide a programatic interface that is very
 /// similar to the level that an assembler .s file provides.  It has callbacks
@@ -197,11 +197,11 @@
   /// closed. Otherwise, issue an error and return null.
   WinEH::FrameInfo *EnsureValidWinFrameInfo(SMLoc Loc);
 
-  /// \brief Tracks an index to represent the order a symbol was emitted in.
+  /// Tracks an index to represent the order a symbol was emitted in.
   /// Zero means we did not emit that symbol.
   DenseMap<const MCSymbol *, unsigned> SymbolOrdering;
 
-  /// \brief This is stack of current and previous section values saved by
+  /// This is stack of current and previous section values saved by
   /// PushSection.
   SmallVector<std::pair<MCSectionSubPair, MCSectionSubPair>, 4> SectionStack;
 
@@ -211,6 +211,8 @@
   /// requires.
   unsigned NextWinCFIID = 0;
 
+  bool UseAssemblerInfoForParsing;
+
 protected:
   MCStreamer(MCContext &Ctx);
 
@@ -247,6 +249,11 @@
 
   MCContext &getContext() const { return Context; }
 
+  virtual MCAssembler *getAssemblerPtr() { return nullptr; }
+
+  void setUseAssemblerInfoForParsing(bool v) { UseAssemblerInfoForParsing = v; }
+  bool getUseAssemblerInfoForParsing() { return UseAssemblerInfoForParsing; }
+
   MCTargetStreamer *getTargetStreamer() {
     return TargetStreamer.get();
   }
@@ -268,19 +275,19 @@
   /// \name Assembly File Formatting.
   /// @{
 
-  /// \brief Return true if this streamer supports verbose assembly and if it is
+  /// Return true if this streamer supports verbose assembly and if it is
   /// enabled.
   virtual bool isVerboseAsm() const { return false; }
 
-  /// \brief Return true if this asm streamer supports emitting unformatted text
+  /// Return true if this asm streamer supports emitting unformatted text
   /// to the .s file with EmitRawText.
   virtual bool hasRawTextSupport() const { return false; }
 
-  /// \brief Is the integrated assembler required for this streamer to function
+  /// Is the integrated assembler required for this streamer to function
   /// correctly?
   virtual bool isIntegratedAssemblerRequired() const { return false; }
 
-  /// \brief Add a textual comment.
+  /// Add a textual comment.
   ///
   /// Typically for comments that can be emitted to the generated .s
   /// file if applicable as a QoI issue to make the output of the compiler
@@ -290,27 +297,27 @@
   /// If the comment includes embedded \n's, they will each get the comment
   /// prefix as appropriate.  The added comment should not end with a \n.
   /// By default, each comment is terminated with an end of line, i.e. the
-  /// EOL param is set to true by default. If one prefers not to end the 
-  /// comment with a new line then the EOL param should be passed 
+  /// EOL param is set to true by default. If one prefers not to end the
+  /// comment with a new line then the EOL param should be passed
   /// with a false value.
   virtual void AddComment(const Twine &T, bool EOL = true) {}
 
-  /// \brief Return a raw_ostream that comments can be written to. Unlike
+  /// Return a raw_ostream that comments can be written to. Unlike
   /// AddComment, you are required to terminate comments with \n if you use this
   /// method.
   virtual raw_ostream &GetCommentOS();
 
-  /// \brief Print T and prefix it with the comment string (normally #) and
+  /// Print T and prefix it with the comment string (normally #) and
   /// optionally a tab. This prints the comment immediately, not at the end of
   /// the current line. It is basically a safe version of EmitRawText: since it
   /// only prints comments, the object streamer ignores it instead of asserting.
   virtual void emitRawComment(const Twine &T, bool TabPrefix = true);
 
-  /// \brief Add explicit comment T. T is required to be a valid
+  /// Add explicit comment T. T is required to be a valid
   /// comment in the output and does not need to be escaped.
   virtual void addExplicitComment(const Twine &T);
 
-  /// \brief Emit added explicit comments.
+  /// Emit added explicit comments.
   virtual void emitExplicitComments();
 
   /// AddBlankLine - Emit a blank line to a .s file to pretty it up.
@@ -321,7 +328,7 @@
   /// \name Symbol & Section Management
   /// @{
 
-  /// \brief Return the current section that the streamer is emitting code to.
+  /// Return the current section that the streamer is emitting code to.
   MCSectionSubPair getCurrentSection() const {
     if (!SectionStack.empty())
       return SectionStack.back().first;
@@ -329,32 +336,32 @@
   }
   MCSection *getCurrentSectionOnly() const { return getCurrentSection().first; }
 
-  /// \brief Return the previous section that the streamer is emitting code to.
+  /// Return the previous section that the streamer is emitting code to.
   MCSectionSubPair getPreviousSection() const {
     if (!SectionStack.empty())
       return SectionStack.back().second;
     return MCSectionSubPair();
   }
 
-  /// \brief Returns an index to represent the order a symbol was emitted in.
+  /// Returns an index to represent the order a symbol was emitted in.
   /// (zero if we did not emit that symbol)
   unsigned GetSymbolOrder(const MCSymbol *Sym) const {
     return SymbolOrdering.lookup(Sym);
   }
 
-  /// \brief Update streamer for a new active section.
+  /// Update streamer for a new active section.
   ///
   /// This is called by PopSection and SwitchSection, if the current
   /// section changes.
   virtual void ChangeSection(MCSection *, const MCExpr *);
 
-  /// \brief Save the current and previous section on the section stack.
+  /// Save the current and previous section on the section stack.
   void PushSection() {
     SectionStack.push_back(
         std::make_pair(getCurrentSection(), getPreviousSection()));
   }
 
-  /// \brief Restore the current and previous section from the section stack.
+  /// Restore the current and previous section from the section stack.
   /// Calls ChangeSection as needed.
   ///
   /// Returns false if the stack was empty.
@@ -388,7 +395,7 @@
   virtual void SwitchSection(MCSection *Section,
                              const MCExpr *Subsection = nullptr);
 
-  /// \brief Set the current section where code is being emitted to \p Section.
+  /// Set the current section where code is being emitted to \p Section.
   /// This is required to update CurSection. This version does not call
   /// ChangeSection.
   void SwitchSectionNoChange(MCSection *Section,
@@ -400,18 +407,18 @@
       SectionStack.back().first = MCSectionSubPair(Section, Subsection);
   }
 
-  /// \brief Create the default sections and set the initial one.
+  /// Create the default sections and set the initial one.
   virtual void InitSections(bool NoExecStack);
 
   MCSymbol *endSection(MCSection *Section);
 
-  /// \brief Sets the symbol's section.
+  /// Sets the symbol's section.
   ///
   /// Each emitted symbol will be tracked in the ordering table,
   /// so we can sort on them later.
   void AssignFragment(MCSymbol *Symbol, MCFragment *Fragment);
 
-  /// \brief Emit a label for \p Symbol into the current section.
+  /// Emit a label for \p Symbol into the current section.
   ///
   /// This corresponds to an assembler statement such as:
   ///   foo:
@@ -425,17 +432,17 @@
 
   virtual void EmitEHSymAttributes(const MCSymbol *Symbol, MCSymbol *EHSymbol);
 
-  /// \brief Note in the output the specified \p Flag.
+  /// Note in the output the specified \p Flag.
   virtual void EmitAssemblerFlag(MCAssemblerFlag Flag);
 
-  /// \brief Emit the given list \p Options of strings as linker
+  /// Emit the given list \p Options of strings as linker
   /// options into the output.
   virtual void EmitLinkerOptions(ArrayRef<std::string> Kind) {}
 
-  /// \brief Note in the output the specified region \p Kind.
+  /// Note in the output the specified region \p Kind.
   virtual void EmitDataRegion(MCDataRegionType Kind) {}
 
-  /// \brief Specify the Mach-O minimum deployment target version.
+  /// Specify the Mach-O minimum deployment target version.
   virtual void EmitVersionMin(MCVersionMinType Type, unsigned Major,
                               unsigned Minor, unsigned Update) {}
 
@@ -446,11 +453,11 @@
 
   void EmitVersionForTarget(const Triple &Target);
 
-  /// \brief Note in the output that the specified \p Func is a Thumb mode
+  /// Note in the output that the specified \p Func is a Thumb mode
   /// function (ARM target only).
   virtual void EmitThumbFunc(MCSymbol *Func);
 
-  /// \brief Emit an assignment of \p Value to \p Symbol.
+  /// Emit an assignment of \p Value to \p Symbol.
   ///
   /// This corresponds to an assembler statement such as:
   ///  symbol = value
@@ -463,7 +470,7 @@
   /// \param Value - The value for the symbol.
   virtual void EmitAssignment(MCSymbol *Symbol, const MCExpr *Value);
 
-  /// \brief Emit an weak reference from \p Alias to \p Symbol.
+  /// Emit an weak reference from \p Alias to \p Symbol.
   ///
   /// This corresponds to an assembler statement such as:
   ///  .weakref alias, symbol
@@ -472,56 +479,61 @@
   /// \param Symbol - The symbol being aliased.
   virtual void EmitWeakReference(MCSymbol *Alias, const MCSymbol *Symbol);
 
-  /// \brief Add the given \p Attribute to \p Symbol.
+  /// Add the given \p Attribute to \p Symbol.
   virtual bool EmitSymbolAttribute(MCSymbol *Symbol,
                                    MCSymbolAttr Attribute) = 0;
 
-  /// \brief Set the \p DescValue for the \p Symbol.
+  /// Set the \p DescValue for the \p Symbol.
   ///
   /// \param Symbol - The symbol to have its n_desc field set.
   /// \param DescValue - The value to set into the n_desc field.
   virtual void EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue);
 
-  /// \brief Start emitting COFF symbol definition
+  /// Start emitting COFF symbol definition
   ///
   /// \param Symbol - The symbol to have its External & Type fields set.
   virtual void BeginCOFFSymbolDef(const MCSymbol *Symbol);
 
-  /// \brief Emit the storage class of the symbol.
+  /// Emit the storage class of the symbol.
   ///
   /// \param StorageClass - The storage class the symbol should have.
   virtual void EmitCOFFSymbolStorageClass(int StorageClass);
 
-  /// \brief Emit the type of the symbol.
+  /// Emit the type of the symbol.
   ///
   /// \param Type - A COFF type identifier (see COFF::SymbolType in X86COFF.h)
   virtual void EmitCOFFSymbolType(int Type);
 
-  /// \brief Marks the end of the symbol definition.
+  /// Marks the end of the symbol definition.
   virtual void EndCOFFSymbolDef();
 
   virtual void EmitCOFFSafeSEH(MCSymbol const *Symbol);
 
-  /// \brief Emits the symbol table index of a Symbol into the current section.
+  /// Emits the symbol table index of a Symbol into the current section.
   virtual void EmitCOFFSymbolIndex(MCSymbol const *Symbol);
 
-  /// \brief Emits a COFF section index.
+  /// Emits a COFF section index.
   ///
   /// \param Symbol - Symbol the section number relocation should point to.
   virtual void EmitCOFFSectionIndex(MCSymbol const *Symbol);
 
-  /// \brief Emits a COFF section relative relocation.
+  /// Emits a COFF section relative relocation.
   ///
   /// \param Symbol - Symbol the section relative relocation should point to.
   virtual void EmitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset);
 
-  /// \brief Emit an ELF .size directive.
+  /// Emits a COFF image relative relocation.
+  ///
+  /// \param Symbol - Symbol the image relative relocation should point to.
+  virtual void EmitCOFFImgRel32(MCSymbol const *Symbol, int64_t Offset);
+
+  /// Emit an ELF .size directive.
   ///
   /// This corresponds to an assembler statement such as:
   ///  .size symbol, expression
   virtual void emitELFSize(MCSymbol *Symbol, const MCExpr *Value);
 
-  /// \brief Emit an ELF .symver directive.
+  /// Emit an ELF .symver directive.
   ///
   /// This corresponds to an assembler statement such as:
   ///  .symver _start, foo@@SOME_VERSION
@@ -530,11 +542,11 @@
   virtual void emitELFSymverDirective(StringRef AliasName,
                                       const MCSymbol *Aliasee);
 
-  /// \brief Emit a Linker Optimization Hint (LOH) directive.
+  /// Emit a Linker Optimization Hint (LOH) directive.
   /// \param Args - Arguments of the LOH.
   virtual void EmitLOHDirective(MCLOHType Kind, const MCLOHArgs &Args) {}
 
-  /// \brief Emit a common symbol.
+  /// Emit a common symbol.
   ///
   /// \param Symbol - The common symbol to emit.
   /// \param Size - The size of the common symbol.
@@ -543,7 +555,7 @@
   virtual void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
                                 unsigned ByteAlignment) = 0;
 
-  /// \brief Emit a local common (.lcomm) symbol.
+  /// Emit a local common (.lcomm) symbol.
   ///
   /// \param Symbol - The common symbol to emit.
   /// \param Size - The size of the common symbol.
@@ -551,7 +563,7 @@
   virtual void EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
                                      unsigned ByteAlignment);
 
-  /// \brief Emit the zerofill section and an optional symbol.
+  /// Emit the zerofill section and an optional symbol.
   ///
   /// \param Section - The zerofill section to create and or to put the symbol
   /// \param Symbol - The zerofill symbol to emit, if non-NULL.
@@ -559,9 +571,10 @@
   /// \param ByteAlignment - The alignment of the zerofill symbol if
   /// non-zero. This must be a power of 2 on some targets.
   virtual void EmitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr,
-                            uint64_t Size = 0, unsigned ByteAlignment = 0) = 0;
+                            uint64_t Size = 0, unsigned ByteAlignment = 0,
+                            SMLoc Loc = SMLoc()) = 0;
 
-  /// \brief Emit a thread local bss (.tbss) symbol.
+  /// Emit a thread local bss (.tbss) symbol.
   ///
   /// \param Section - The thread local common section.
   /// \param Symbol - The thread local common symbol to emit.
@@ -575,7 +588,7 @@
   /// \name Generating Data
   /// @{
 
-  /// \brief Emit the bytes in \p Data into the output.
+  /// Emit the bytes in \p Data into the output.
   ///
   /// This is used to implement assembler directives such as .byte, .ascii,
   /// etc.
@@ -585,7 +598,7 @@
   /// method uses .byte directives instead of .ascii or .asciz for readability.
   virtual void EmitBinaryData(StringRef Data);
 
-  /// \brief Emit the expression \p Value into the output as a native
+  /// Emit the expression \p Value into the output as a native
   /// integer of the given \p Size bytes.
   ///
   /// This is used to implement assembler directives such as .word, .quad,
@@ -600,7 +613,7 @@
 
   void EmitValue(const MCExpr *Value, unsigned Size, SMLoc Loc = SMLoc());
 
-  /// \brief Special case of EmitValue that avoids the client having
+  /// Special case of EmitValue that avoids the client having
   /// to pass in a MCExpr for constant integers.
   virtual void EmitIntValue(uint64_t Value, unsigned Size);
 
@@ -608,66 +621,66 @@
 
   virtual void EmitSLEB128Value(const MCExpr *Value);
 
-  /// \brief Special case of EmitULEB128Value that avoids the client having to
+  /// Special case of EmitULEB128Value that avoids the client having to
   /// pass in a MCExpr for constant integers.
   void EmitULEB128IntValue(uint64_t Value);
 
-  /// \brief Special case of EmitSLEB128Value that avoids the client having to
+  /// Special case of EmitSLEB128Value that avoids the client having to
   /// pass in a MCExpr for constant integers.
   void EmitSLEB128IntValue(int64_t Value);
 
-  /// \brief Special case of EmitValue that avoids the client having to pass in
+  /// Special case of EmitValue that avoids the client having to pass in
   /// a MCExpr for MCSymbols.
   void EmitSymbolValue(const MCSymbol *Sym, unsigned Size,
                        bool IsSectionRelative = false);
 
-  /// \brief Emit the expression \p Value into the output as a dtprel
+  /// Emit the expression \p Value into the output as a dtprel
   /// (64-bit DTP relative) value.
   ///
   /// This is used to implement assembler directives such as .dtpreldword on
   /// targets that support them.
   virtual void EmitDTPRel64Value(const MCExpr *Value);
 
-  /// \brief Emit the expression \p Value into the output as a dtprel
+  /// Emit the expression \p Value into the output as a dtprel
   /// (32-bit DTP relative) value.
   ///
   /// This is used to implement assembler directives such as .dtprelword on
   /// targets that support them.
   virtual void EmitDTPRel32Value(const MCExpr *Value);
 
-  /// \brief Emit the expression \p Value into the output as a tprel
+  /// Emit the expression \p Value into the output as a tprel
   /// (64-bit TP relative) value.
   ///
   /// This is used to implement assembler directives such as .tpreldword on
   /// targets that support them.
   virtual void EmitTPRel64Value(const MCExpr *Value);
 
-  /// \brief Emit the expression \p Value into the output as a tprel
+  /// Emit the expression \p Value into the output as a tprel
   /// (32-bit TP relative) value.
   ///
   /// This is used to implement assembler directives such as .tprelword on
   /// targets that support them.
   virtual void EmitTPRel32Value(const MCExpr *Value);
 
-  /// \brief Emit the expression \p Value into the output as a gprel64 (64-bit
+  /// Emit the expression \p Value into the output as a gprel64 (64-bit
   /// GP relative) value.
   ///
   /// This is used to implement assembler directives such as .gpdword on
   /// targets that support them.
   virtual void EmitGPRel64Value(const MCExpr *Value);
 
-  /// \brief Emit the expression \p Value into the output as a gprel32 (32-bit
+  /// Emit the expression \p Value into the output as a gprel32 (32-bit
   /// GP relative) value.
   ///
   /// This is used to implement assembler directives such as .gprel32 on
   /// targets that support them.
   virtual void EmitGPRel32Value(const MCExpr *Value);
 
-  /// \brief Emit NumBytes bytes worth of the value specified by FillValue.
+  /// Emit NumBytes bytes worth of the value specified by FillValue.
   /// This implements directives such as '.space'.
   void emitFill(uint64_t NumBytes, uint8_t FillValue);
 
-  /// \brief Emit \p Size bytes worth of the value specified by \p FillValue.
+  /// Emit \p Size bytes worth of the value specified by \p FillValue.
   ///
   /// This is used to implement assembler directives such as .space or .skip.
   ///
@@ -677,7 +690,7 @@
   virtual void emitFill(const MCExpr &NumBytes, uint64_t FillValue,
                         SMLoc Loc = SMLoc());
 
-  /// \brief Emit \p NumValues copies of \p Size bytes. Each \p Size bytes is
+  /// Emit \p NumValues copies of \p Size bytes. Each \p Size bytes is
   /// taken from the lowest order 4 bytes of \p Expr expression.
   ///
   /// This is used to implement assembler directives such as .fill.
@@ -688,11 +701,11 @@
   virtual void emitFill(const MCExpr &NumValues, int64_t Size, int64_t Expr,
                         SMLoc Loc = SMLoc());
 
-  /// \brief Emit NumBytes worth of zeros.
+  /// Emit NumBytes worth of zeros.
   /// This function properly handles data in virtual sections.
   void EmitZeros(uint64_t NumBytes);
 
-  /// \brief Emit some number of copies of \p Value until the byte alignment \p
+  /// Emit some number of copies of \p Value until the byte alignment \p
   /// ByteAlignment is reached.
   ///
   /// If the number of bytes need to emit for the alignment is not a multiple
@@ -713,7 +726,7 @@
                                     unsigned ValueSize = 1,
                                     unsigned MaxBytesToEmit = 0);
 
-  /// \brief Emit nops until the byte alignment \p ByteAlignment is reached.
+  /// Emit nops until the byte alignment \p ByteAlignment is reached.
   ///
   /// This used to align code where the alignment bytes may be executed.  This
   /// can emit different bytes for different sizes to optimize execution.
@@ -726,7 +739,7 @@
   virtual void EmitCodeAlignment(unsigned ByteAlignment,
                                  unsigned MaxBytesToEmit = 0);
 
-  /// \brief Emit some number of copies of \p Value until the byte offset \p
+  /// Emit some number of copies of \p Value until the byte offset \p
   /// Offset is reached.
   ///
   /// This is used to implement assembler directives such as .org.
@@ -745,15 +758,15 @@
 
   /// @}
 
-  /// \brief Switch to a new logical file.  This is used to implement the '.file
+  /// Switch to a new logical file.  This is used to implement the '.file
   /// "foo.c"' assembler directive.
   virtual void EmitFileDirective(StringRef Filename);
 
-  /// \brief Emit the "identifiers" directive.  This implements the
+  /// Emit the "identifiers" directive.  This implements the
   /// '.ident "version foo"' assembler directive.
   virtual void EmitIdent(StringRef IdentString) {}
 
-  /// \brief Associate a filename with a specified logical file number.  This
+  /// Associate a filename with a specified logical file number.  This
   /// implements the DWARF2 '.file 4 "foo.c"' assembler directive.
   unsigned EmitDwarfFileDirective(unsigned FileNo, StringRef Directory,
                                   StringRef Filename,
@@ -781,7 +794,7 @@
                                        Optional<StringRef> Source,
                                        unsigned CUID = 0);
 
-  /// \brief This implements the DWARF2 '.loc fileno lineno ...' assembler
+  /// This implements the DWARF2 '.loc fileno lineno ...' assembler
   /// directive.
   virtual void EmitDwarfLocDirective(unsigned FileNo, unsigned Line,
                                      unsigned Column, unsigned Flags,
@@ -795,27 +808,27 @@
                                    ArrayRef<uint8_t> Checksum,
                                    unsigned ChecksumKind);
 
-  /// \brief Introduces a function id for use with .cv_loc.
+  /// Introduces a function id for use with .cv_loc.
   virtual bool EmitCVFuncIdDirective(unsigned FunctionId);
 
-  /// \brief Introduces an inline call site id for use with .cv_loc. Includes
+  /// Introduces an inline call site id for use with .cv_loc. Includes
   /// extra information for inline line table generation.
   virtual bool EmitCVInlineSiteIdDirective(unsigned FunctionId, unsigned IAFunc,
                                            unsigned IAFile, unsigned IALine,
                                            unsigned IACol, SMLoc Loc);
 
-  /// \brief This implements the CodeView '.cv_loc' assembler directive.
+  /// This implements the CodeView '.cv_loc' assembler directive.
   virtual void EmitCVLocDirective(unsigned FunctionId, unsigned FileNo,
                                   unsigned Line, unsigned Column,
                                   bool PrologueEnd, bool IsStmt,
                                   StringRef FileName, SMLoc Loc);
 
-  /// \brief This implements the CodeView '.cv_linetable' assembler directive.
+  /// This implements the CodeView '.cv_linetable' assembler directive.
   virtual void EmitCVLinetableDirective(unsigned FunctionId,
                                         const MCSymbol *FnStart,
                                         const MCSymbol *FnEnd);
 
-  /// \brief This implements the CodeView '.cv_inline_linetable' assembler
+  /// This implements the CodeView '.cv_inline_linetable' assembler
   /// directive.
   virtual void EmitCVInlineLinetableDirective(unsigned PrimaryFunctionId,
                                               unsigned SourceFileId,
@@ -823,16 +836,16 @@
                                               const MCSymbol *FnStartSym,
                                               const MCSymbol *FnEndSym);
 
-  /// \brief This implements the CodeView '.cv_def_range' assembler
+  /// This implements the CodeView '.cv_def_range' assembler
   /// directive.
   virtual void EmitCVDefRangeDirective(
       ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges,
       StringRef FixedSizePortion);
 
-  /// \brief This implements the CodeView '.cv_stringtable' assembler directive.
+  /// This implements the CodeView '.cv_stringtable' assembler directive.
   virtual void EmitCVStringTableDirective() {}
 
-  /// \brief This implements the CodeView '.cv_filechecksums' assembler directive.
+  /// This implements the CodeView '.cv_filechecksums' assembler directive.
   virtual void EmitCVFileChecksumsDirective() {}
 
   /// This implements the CodeView '.cv_filechecksumoffset' assembler
@@ -894,6 +907,9 @@
                                 SMLoc Loc = SMLoc());
   virtual void EmitWinEHHandlerData(SMLoc Loc = SMLoc());
 
+  virtual void emitCGProfileEntry(const MCSymbolRefExpr *From,
+                                  const MCSymbolRefExpr *To, uint64_t Count);
+
   /// Get the .pdata section used for the given section. Typically the given
   /// section is either the main .text section or some other COMDAT .text
   /// section, but it may be any section containing code.
@@ -904,41 +920,45 @@
 
   virtual void EmitSyntaxDirective();
 
-  /// \brief Emit a .reloc directive.
+  /// Emit a .reloc directive.
   /// Returns true if the relocation could not be emitted because Name is not
   /// known.
   virtual bool EmitRelocDirective(const MCExpr &Offset, StringRef Name,
-                                  const MCExpr *Expr, SMLoc Loc) {
+                                  const MCExpr *Expr, SMLoc Loc,
+                                  const MCSubtargetInfo &STI) {
     return true;
   }
 
-  /// \brief Emit the given \p Instruction into the current section.
+  virtual void EmitAddrsig() {}
+  virtual void EmitAddrsigSym(const MCSymbol *Sym) {}
+
+  /// Emit the given \p Instruction into the current section.
   /// PrintSchedInfo == true then schedul comment should be added to output
   virtual void EmitInstruction(const MCInst &Inst, const MCSubtargetInfo &STI,
                                bool PrintSchedInfo = false);
 
-  /// \brief Set the bundle alignment mode from now on in the section.
+  /// Set the bundle alignment mode from now on in the section.
   /// The argument is the power of 2 to which the alignment is set. The
   /// value 0 means turn the bundle alignment off.
   virtual void EmitBundleAlignMode(unsigned AlignPow2);
 
-  /// \brief The following instructions are a bundle-locked group.
+  /// The following instructions are a bundle-locked group.
   ///
   /// \param AlignToEnd - If true, the bundle-locked group will be aligned to
   ///                     the end of a bundle.
   virtual void EmitBundleLock(bool AlignToEnd);
 
-  /// \brief Ends a bundle-locked group.
+  /// Ends a bundle-locked group.
   virtual void EmitBundleUnlock();
 
-  /// \brief If this file is backed by a assembly streamer, this dumps the
+  /// If this file is backed by a assembly streamer, this dumps the
   /// specified string in the output .s file.  This capability is indicated by
   /// the hasRawTextSupport() predicate.  By default this aborts.
   void EmitRawText(const Twine &String);
 
-  /// \brief Streamer specific finalization.
+  /// Streamer specific finalization.
   virtual void FinishImpl();
-  /// \brief Finish emission of machine code.
+  /// Finish emission of machine code.
   void Finish();
 
   virtual bool mayHaveInstructions(MCSection &Sec) const { return true; }
diff --git a/linux-x64/clang/include/llvm/MC/MCSubtargetInfo.h b/linux-x64/clang/include/llvm/MC/MCSubtargetInfo.h
index 0a2b247..b3ce523 100644
--- a/linux-x64/clang/include/llvm/MC/MCSubtargetInfo.h
+++ b/linux-x64/clang/include/llvm/MC/MCSubtargetInfo.h
@@ -27,7 +27,6 @@
 
 namespace llvm {
 
-class MachineInstr;
 class MCInst;
 
 //===----------------------------------------------------------------------===//
@@ -160,6 +159,13 @@
   /// Initialize an InstrItineraryData instance.
   void initInstrItins(InstrItineraryData &InstrItins) const;
 
+  /// Resolve a variant scheduling class for the given MCInst and CPU.
+  virtual unsigned
+  resolveVariantSchedClass(unsigned SchedClass, const MCInst *MI,
+                           unsigned CPUID) const {
+    return 0;
+  }
+
   /// Check whether the CPU string is valid.
   bool isCPUStringValid(StringRef CPU) const {
     auto Found = std::lower_bound(ProcDesc.begin(), ProcDesc.end(), CPU);
@@ -167,10 +173,6 @@
   }
 
   /// Returns string representation of scheduler comment
-  virtual std::string getSchedInfoStr(const MachineInstr &MI) const {
-    return {};
-  }
-
   virtual std::string getSchedInfoStr(MCInst const &MCI) const {
     return {};
   }
diff --git a/linux-x64/clang/include/llvm/MC/MCSymbol.h b/linux-x64/clang/include/llvm/MC/MCSymbol.h
index cc8fc02..4681a1b 100644
--- a/linux-x64/clang/include/llvm/MC/MCSymbol.h
+++ b/linux-x64/clang/include/llvm/MC/MCSymbol.h
@@ -85,7 +85,7 @@
   /// "Lfoo" or ".foo".
   unsigned IsTemporary : 1;
 
-  /// \brief True if this symbol can be redefined.
+  /// True if this symbol can be redefined.
   unsigned IsRedefinable : 1;
 
   /// IsUsed - True if this symbol has been used.
@@ -141,7 +141,7 @@
   friend class MCExpr;
   friend class MCContext;
 
-  /// \brief The name for a symbol.
+  /// The name for a symbol.
   /// MCSymbol contains a uint64_t so is probably aligned to 8.  On a 32-bit
   /// system, the name is a pointer so isn't going to satisfy the 8 byte
   /// alignment of uint64_t.  Account for that here.
@@ -168,11 +168,11 @@
 
 private:
   void operator delete(void *);
-  /// \brief Placement delete - required by std, but never called.
+  /// Placement delete - required by std, but never called.
   void operator delete(void*, unsigned) {
     llvm_unreachable("Constructor throws?");
   }
-  /// \brief Placement delete - required by std, but never called.
+  /// Placement delete - required by std, but never called.
   void operator delete(void*, unsigned, bool) {
     llvm_unreachable("Constructor throws?");
   }
@@ -185,7 +185,7 @@
     return nullptr;
   }
 
-  /// \brief Get a reference to the name field.  Requires that we have a name
+  /// Get a reference to the name field.  Requires that we have a name
   const StringMapEntry<bool> *&getNameEntryPtr() {
     assert(FragmentAndHasName.getInt() && "Name is required");
     NameEntryStorageTy *Name = reinterpret_cast<NameEntryStorageTy *>(this);
@@ -222,11 +222,11 @@
   /// isUsed - Check if this is used.
   bool isUsed() const { return IsUsed; }
 
-  /// \brief Check if this symbol is redefinable.
+  /// Check if this symbol is redefinable.
   bool isRedefinable() const { return IsRedefinable; }
-  /// \brief Mark this symbol as redefinable.
+  /// Mark this symbol as redefinable.
   void setRedefinable(bool Value) { IsRedefinable = Value; }
-  /// \brief Prepare this symbol to be redefined.
+  /// Prepare this symbol to be redefined.
   void redefineIfPossible() {
     if (IsRedefinable) {
       if (SymbolContents == SymContentsVariable) {
@@ -316,6 +316,8 @@
     Index = Value;
   }
 
+  bool isUnset() const { return SymbolContents == SymContentsUnset; }
+
   uint64_t getOffset() const {
     assert((SymbolContents == SymContentsUnset ||
             SymbolContents == SymContentsOffset) &&
diff --git a/linux-x64/clang/include/llvm/MC/MCSymbolMachO.h b/linux-x64/clang/include/llvm/MC/MCSymbolMachO.h
index 25220e4..6125c20 100644
--- a/linux-x64/clang/include/llvm/MC/MCSymbolMachO.h
+++ b/linux-x64/clang/include/llvm/MC/MCSymbolMachO.h
@@ -14,7 +14,7 @@
 
 namespace llvm {
 class MCSymbolMachO : public MCSymbol {
-  /// \brief We store the value for the 'desc' symbol field in the
+  /// We store the value for the 'desc' symbol field in the
   /// lowest 16 bits of the implementation defined flags.
   enum MachOSymbolFlags : uint16_t { // See <mach-o/nlist.h>.
     SF_DescFlagsMask                        = 0xFFFF,
@@ -104,7 +104,7 @@
     setFlags(Value & SF_DescFlagsMask);
   }
 
-  /// \brief Get the encoded value of the flags as they will be emitted in to
+  /// Get the encoded value of the flags as they will be emitted in to
   /// the MachO binary
   uint16_t getEncodedFlags(bool EncodeAsAltEntry) const {
     uint16_t Flags = getFlags();
diff --git a/linux-x64/clang/include/llvm/MC/MCSymbolWasm.h b/linux-x64/clang/include/llvm/MC/MCSymbolWasm.h
index 10eadb0..e043453 100644
--- a/linux-x64/clang/include/llvm/MC/MCSymbolWasm.h
+++ b/linux-x64/clang/include/llvm/MC/MCSymbolWasm.h
@@ -45,6 +45,7 @@
   bool isFunction() const { return Type == wasm::WASM_SYMBOL_TYPE_FUNCTION; }
   bool isData() const { return Type == wasm::WASM_SYMBOL_TYPE_DATA; }
   bool isGlobal() const { return Type == wasm::WASM_SYMBOL_TYPE_GLOBAL; }
+  bool isSection() const { return Type == wasm::WASM_SYMBOL_TYPE_SECTION; }
   wasm::WasmSymbolType getType() const { return Type; }
   void setType(wasm::WasmSymbolType type) { Type = type; }
 
diff --git a/linux-x64/clang/include/llvm/MC/MCTargetOptionsCommandFlags.def b/linux-x64/clang/include/llvm/MC/MCTargetOptionsCommandFlags.inc
similarity index 100%
rename from linux-x64/clang/include/llvm/MC/MCTargetOptionsCommandFlags.def
rename to linux-x64/clang/include/llvm/MC/MCTargetOptionsCommandFlags.inc
diff --git a/linux-x64/clang/include/llvm/MC/MCValue.h b/linux-x64/clang/include/llvm/MC/MCValue.h
index ff223f7..11f5082 100644
--- a/linux-x64/clang/include/llvm/MC/MCValue.h
+++ b/linux-x64/clang/include/llvm/MC/MCValue.h
@@ -23,7 +23,7 @@
 class MCAsmInfo;
 class raw_ostream;
 
-/// \brief This represents an "assembler immediate".
+/// This represents an "assembler immediate".
 ///
 ///  In its most general form, this can hold ":Kind:(SymbolA - SymbolB +
 ///  imm64)".  Not all targets supports relocations of this general form, but we
@@ -49,13 +49,13 @@
   const MCSymbolRefExpr *getSymB() const { return SymB; }
   uint32_t getRefKind() const { return RefKind; }
 
-  /// \brief Is this an absolute (as opposed to relocatable) value.
+  /// Is this an absolute (as opposed to relocatable) value.
   bool isAbsolute() const { return !SymA && !SymB; }
 
-  /// \brief Print the value to the stream \p OS.
+  /// Print the value to the stream \p OS.
   void print(raw_ostream &OS) const;
 
-  /// \brief Print the value to stderr.
+  /// Print the value to stderr.
   void dump() const;
 
   MCSymbolRefExpr::VariantKind getAccessVariant() const;
diff --git a/linux-x64/clang/include/llvm/MC/MCWasmObjectWriter.h b/linux-x64/clang/include/llvm/MC/MCWasmObjectWriter.h
index a4d5eb8..e45030f 100644
--- a/linux-x64/clang/include/llvm/MC/MCWasmObjectWriter.h
+++ b/linux-x64/clang/include/llvm/MC/MCWasmObjectWriter.h
@@ -10,18 +10,16 @@
 #ifndef LLVM_MC_MCWASMOBJECTWRITER_H
 #define LLVM_MC_MCWASMOBJECTWRITER_H
 
-#include "llvm/ADT/Triple.h"
-#include "llvm/BinaryFormat/Wasm.h"
-#include "llvm/Support/DataTypes.h"
+#include "llvm/MC/MCObjectWriter.h"
+#include <memory>
 
 namespace llvm {
 
 class MCFixup;
-class MCObjectWriter;
 class MCValue;
 class raw_pwrite_stream;
 
-class MCWasmObjectTargetWriter {
+class MCWasmObjectTargetWriter : public MCObjectTargetWriter {
   const unsigned Is64Bit : 1;
 
 protected:
@@ -30,6 +28,11 @@
 public:
   virtual ~MCWasmObjectTargetWriter();
 
+  virtual Triple::ObjectFormatType getFormat() const { return Triple::Wasm; }
+  static bool classof(const MCObjectTargetWriter *W) {
+    return W->getFormat() == Triple::Wasm;
+  }
+
   virtual unsigned getRelocType(const MCValue &Target,
                                 const MCFixup &Fixup) const = 0;
 
@@ -39,7 +42,7 @@
   /// @}
 };
 
-/// \brief Construct a new Wasm writer instance.
+/// Construct a new Wasm writer instance.
 ///
 /// \param MOTW - The target specific Wasm writer subclass.
 /// \param OS - The stream to write to.
diff --git a/linux-x64/clang/include/llvm/MC/MCWasmStreamer.h b/linux-x64/clang/include/llvm/MC/MCWasmStreamer.h
index c0d4545..01e6a43 100644
--- a/linux-x64/clang/include/llvm/MC/MCWasmStreamer.h
+++ b/linux-x64/clang/include/llvm/MC/MCWasmStreamer.h
@@ -15,6 +15,7 @@
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/MC/MCDirectives.h"
 #include "llvm/MC/MCObjectStreamer.h"
+#include "llvm/MC/MCObjectWriter.h"
 #include "llvm/MC/SectionKind.h"
 #include "llvm/Support/DataTypes.h"
 
@@ -27,8 +28,10 @@
 class MCWasmStreamer : public MCObjectStreamer {
 public:
   MCWasmStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> TAB,
-                 raw_pwrite_stream &OS, std::unique_ptr<MCCodeEmitter> Emitter)
-      : MCObjectStreamer(Context, std::move(TAB), OS, std::move(Emitter)),
+                 std::unique_ptr<MCObjectWriter> OW,
+                 std::unique_ptr<MCCodeEmitter> Emitter)
+      : MCObjectStreamer(Context, std::move(TAB), std::move(OW),
+                         std::move(Emitter)),
         SeenIdent(false) {}
 
   ~MCWasmStreamer() override;
@@ -57,7 +60,8 @@
                              unsigned ByteAlignment) override;
 
   void EmitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr,
-                    uint64_t Size = 0, unsigned ByteAlignment = 0) override;
+                    uint64_t Size = 0, unsigned ByteAlignment = 0,
+                    SMLoc Loc = SMLoc()) override;
   void EmitTBSSSymbol(MCSection *Section, MCSymbol *Symbol, uint64_t Size,
                       unsigned ByteAlignment = 0) override;
   void EmitValueImpl(const MCExpr *Value, unsigned Size,
@@ -73,7 +77,7 @@
   void EmitInstToFragment(const MCInst &Inst, const MCSubtargetInfo &) override;
   void EmitInstToData(const MCInst &Inst, const MCSubtargetInfo &) override;
 
-  /// \brief Merge the content of the fragment \p EF into the fragment \p DF.
+  /// Merge the content of the fragment \p EF into the fragment \p DF.
   void mergeFragment(MCDataFragment *, MCDataFragment *);
 
   bool SeenIdent;
diff --git a/linux-x64/clang/include/llvm/MC/MCWinCOFFObjectWriter.h b/linux-x64/clang/include/llvm/MC/MCWinCOFFObjectWriter.h
index 3234bd9..c1d35ea 100644
--- a/linux-x64/clang/include/llvm/MC/MCWinCOFFObjectWriter.h
+++ b/linux-x64/clang/include/llvm/MC/MCWinCOFFObjectWriter.h
@@ -10,6 +10,7 @@
 #ifndef LLVM_MC_MCWINCOFFOBJECTWRITER_H
 #define LLVM_MC_MCWINCOFFOBJECTWRITER_H
 
+#include "llvm/MC/MCObjectWriter.h"
 #include <memory>
 
 namespace llvm {
@@ -17,11 +18,10 @@
 class MCAsmBackend;
 class MCContext;
 class MCFixup;
-class MCObjectWriter;
 class MCValue;
 class raw_pwrite_stream;
 
-  class MCWinCOFFObjectTargetWriter {
+  class MCWinCOFFObjectTargetWriter : public MCObjectTargetWriter {
     virtual void anchor();
 
     const unsigned Machine;
@@ -32,6 +32,11 @@
   public:
     virtual ~MCWinCOFFObjectTargetWriter() = default;
 
+    virtual Triple::ObjectFormatType getFormat() const { return Triple::COFF; }
+    static bool classof(const MCObjectTargetWriter *W) {
+      return W->getFormat() == Triple::COFF;
+    }
+
     unsigned getMachine() const { return Machine; }
     virtual unsigned getRelocType(MCContext &Ctx, const MCValue &Target,
                                   const MCFixup &Fixup, bool IsCrossSection,
@@ -39,7 +44,7 @@
     virtual bool recordRelocation(const MCFixup &) const { return true; }
   };
 
-  /// \brief Construct a new Win COFF writer instance.
+  /// Construct a new Win COFF writer instance.
   ///
   /// \param MOTW - The target specific WinCOFF writer subclass.
   /// \param OS - The stream to write to.
diff --git a/linux-x64/clang/include/llvm/MC/MCWinCOFFStreamer.h b/linux-x64/clang/include/llvm/MC/MCWinCOFFStreamer.h
index 60c17ca..0049d04 100644
--- a/linux-x64/clang/include/llvm/MC/MCWinCOFFStreamer.h
+++ b/linux-x64/clang/include/llvm/MC/MCWinCOFFStreamer.h
@@ -28,7 +28,8 @@
 class MCWinCOFFStreamer : public MCObjectStreamer {
 public:
   MCWinCOFFStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> MAB,
-                    std::unique_ptr<MCCodeEmitter> CE, raw_pwrite_stream &OS);
+                    std::unique_ptr<MCCodeEmitter> CE,
+                    std::unique_ptr<MCObjectWriter> OW);
 
   /// state management
   void reset() override {
@@ -53,12 +54,13 @@
   void EmitCOFFSymbolIndex(MCSymbol const *Symbol) override;
   void EmitCOFFSectionIndex(MCSymbol const *Symbol) override;
   void EmitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset) override;
+  void EmitCOFFImgRel32(MCSymbol const *Symbol, int64_t Offset) override;
   void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
                         unsigned ByteAlignment) override;
   void EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
                              unsigned ByteAlignment) override;
   void EmitZerofill(MCSection *Section, MCSymbol *Symbol, uint64_t Size,
-                    unsigned ByteAlignment) override;
+                    unsigned ByteAlignment, SMLoc Loc = SMLoc()) override;
   void EmitTBSSSymbol(MCSection *Section, MCSymbol *Symbol, uint64_t Size,
                       unsigned ByteAlignment) override;
   void EmitIdent(StringRef IdentString) override;
diff --git a/linux-x64/clang/include/llvm/MC/StringTableBuilder.h b/linux-x64/clang/include/llvm/MC/StringTableBuilder.h
index 89bc55a..265260f 100644
--- a/linux-x64/clang/include/llvm/MC/StringTableBuilder.h
+++ b/linux-x64/clang/include/llvm/MC/StringTableBuilder.h
@@ -20,7 +20,7 @@
 
 class raw_ostream;
 
-/// \brief Utility for building string tables with deduplicated suffixes.
+/// Utility for building string tables with deduplicated suffixes.
 class StringTableBuilder {
 public:
   enum Kind { ELF, WinCOFF, MachO, RAW, DWARF };
@@ -39,13 +39,13 @@
   StringTableBuilder(Kind K, unsigned Alignment = 1);
   ~StringTableBuilder();
 
-  /// \brief Add a string to the builder. Returns the position of S in the
+  /// Add a string to the builder. Returns the position of S in the
   /// table. The position will be changed if finalize is used.
   /// Can only be used before the table is finalized.
   size_t add(CachedHashStringRef S);
   size_t add(StringRef S) { return add(CachedHashStringRef(S)); }
 
-  /// \brief Analyze the strings and build the final table. No more strings can
+  /// Analyze the strings and build the final table. No more strings can
   /// be added after this point.
   void finalize();
 
@@ -53,7 +53,7 @@
   /// returned by add will still be valid.
   void finalizeInOrder();
 
-  /// \brief Get the offest of a string in the string table. Can only be used
+  /// Get the offest of a string in the string table. Can only be used
   /// after the table is finalized.
   size_t getOffset(CachedHashStringRef S) const;
   size_t getOffset(StringRef S) const {
diff --git a/linux-x64/clang/include/llvm/Object/Archive.h b/linux-x64/clang/include/llvm/Object/Archive.h
index 5a1512b..9ef1e48 100644
--- a/linux-x64/clang/include/llvm/Object/Archive.h
+++ b/linux-x64/clang/include/llvm/Object/Archive.h
@@ -91,9 +91,9 @@
 
     const Archive *Parent;
     ArchiveMemberHeader Header;
-    /// \brief Includes header but not padding byte.
+    /// Includes header but not padding byte.
     StringRef Data;
-    /// \brief Offset from Data to the start of the file.
+    /// Offset from Data to the start of the file.
     uint16_t StartOfFile;
 
     Expected<bool> isThinMember() const;
diff --git a/linux-x64/clang/include/llvm/Object/Binary.h b/linux-x64/clang/include/llvm/Object/Binary.h
index 5e93691..99745e2 100644
--- a/linux-x64/clang/include/llvm/Object/Binary.h
+++ b/linux-x64/clang/include/llvm/Object/Binary.h
@@ -156,7 +156,7 @@
   }
 };
 
-/// @brief Create a Binary from Source, autodetecting the file type.
+/// Create a Binary from Source, autodetecting the file type.
 ///
 /// @param Source The data to create the Binary from.
 Expected<std::unique_ptr<Binary>> createBinary(MemoryBufferRef Source,
diff --git a/linux-x64/clang/include/llvm/Object/COFF.h b/linux-x64/clang/include/llvm/Object/COFF.h
index 9190149..6caadea 100644
--- a/linux-x64/clang/include/llvm/Object/COFF.h
+++ b/linux-x64/clang/include/llvm/Object/COFF.h
@@ -276,6 +276,7 @@
 };
 
 struct coff_aux_section_definition;
+struct coff_aux_weak_external;
 
 class COFFSymbolRef {
 public:
@@ -360,6 +361,13 @@
     return getAux<coff_aux_section_definition>();
   }
 
+  const coff_aux_weak_external *getWeakExternal() const {
+    if (!getNumberOfAuxSymbols() ||
+        getStorageClass() != COFF::IMAGE_SYM_CLASS_WEAK_EXTERNAL)
+      return nullptr;
+    return getAux<coff_aux_weak_external>();
+  }
+
   bool isAbsolute() const {
     return getSectionNumber() == -1;
   }
@@ -452,11 +460,12 @@
     if (Characteristics & COFF::IMAGE_SCN_TYPE_NO_PAD)
       return 1;
 
-    // Bit [20:24] contains section alignment. Both 0 and 1 mean alignment 1.
+    // Bit [20:24] contains section alignment. 0 means use a default alignment
+    // of 16.
     uint32_t Shift = (Characteristics >> 20) & 0xF;
     if (Shift > 0)
       return 1U << (Shift - 1);
-    return 1;
+    return 16;
   }
 };
 
@@ -927,6 +936,7 @@
   uint8_t getBytesInAddress() const override;
   StringRef getFileFormatName() const override;
   Triple::ArchType getArch() const override;
+  Expected<uint64_t> getStartAddress() const override;
   SubtargetFeatures getFeatures() const override { return SubtargetFeatures(); }
 
   import_directory_iterator import_directory_begin() const;
@@ -963,6 +973,8 @@
   std::error_code getDataDirectory(uint32_t index,
                                    const data_directory *&Res) const;
   std::error_code getSection(int32_t index, const coff_section *&Res) const;
+  std::error_code getSection(StringRef SectionName,
+                             const coff_section *&Res) const;
 
   template <typename coff_symbol_type>
   std::error_code getSymbol(uint32_t Index,
@@ -1012,8 +1024,7 @@
     llvm_unreachable("null symbol table pointer!");
   }
 
-  iterator_range<const coff_relocation *>
-  getRelocations(const coff_section *Sec) const;
+  ArrayRef<coff_relocation> getRelocations(const coff_section *Sec) const;
 
   std::error_code getSectionName(const coff_section *Sec, StringRef &Res) const;
   uint64_t getSectionSize(const coff_section *Sec) const;
diff --git a/linux-x64/clang/include/llvm/Object/COFFImportFile.h b/linux-x64/clang/include/llvm/Object/COFFImportFile.h
index 7ca416f..0a4556a 100644
--- a/linux-x64/clang/include/llvm/Object/COFFImportFile.h
+++ b/linux-x64/clang/include/llvm/Object/COFFImportFile.h
@@ -74,6 +74,7 @@
   std::string Name;
   std::string ExtName;
   std::string SymbolName;
+  std::string AliasTarget;
 
   uint16_t Ordinal = 0;
   bool Noname = false;
@@ -81,10 +82,6 @@
   bool Private = false;
   bool Constant = false;
 
-  bool isWeak() {
-    return ExtName.size() && ExtName != Name;
-  }
-
   friend bool operator==(const COFFShortExport &L, const COFFShortExport &R) {
     return L.Name == R.Name && L.ExtName == R.ExtName &&
             L.Ordinal == R.Ordinal && L.Noname == R.Noname &&
@@ -98,8 +95,7 @@
 
 Error writeImportLibrary(StringRef ImportName, StringRef Path,
                          ArrayRef<COFFShortExport> Exports,
-                         COFF::MachineTypes Machine, bool MakeWeakAliases,
-                         bool MinGW);
+                         COFF::MachineTypes Machine, bool MinGW);
 
 } // namespace object
 } // namespace llvm
diff --git a/linux-x64/clang/include/llvm/Object/Decompressor.h b/linux-x64/clang/include/llvm/Object/Decompressor.h
index c8e888d..2a77d2f 100644
--- a/linux-x64/clang/include/llvm/Object/Decompressor.h
+++ b/linux-x64/clang/include/llvm/Object/Decompressor.h
@@ -17,10 +17,10 @@
 namespace llvm {
 namespace object {
 
-/// @brief Decompressor helps to handle decompression of compressed sections.
+/// Decompressor helps to handle decompression of compressed sections.
 class Decompressor {
 public:
-  /// @brief Create decompressor object.
+  /// Create decompressor object.
   /// @param Name        Section name.
   /// @param Data        Section content.
   /// @param IsLE        Flag determines if Data is in little endian form.
@@ -28,27 +28,27 @@
   static Expected<Decompressor> create(StringRef Name, StringRef Data,
                                        bool IsLE, bool Is64Bit);
 
-  /// @brief Resize the buffer and uncompress section data into it.
+  /// Resize the buffer and uncompress section data into it.
   /// @param Out         Destination buffer.
   template <class T> Error resizeAndDecompress(T &Out) {
     Out.resize(DecompressedSize);
     return decompress({Out.data(), (size_t)DecompressedSize});
   }
 
-  /// @brief Uncompress section data to raw buffer provided.
+  /// Uncompress section data to raw buffer provided.
   /// @param Buffer      Destination buffer.
   Error decompress(MutableArrayRef<char> Buffer);
 
-  /// @brief Return memory buffer size required for decompression.
+  /// Return memory buffer size required for decompression.
   uint64_t getDecompressedSize() { return DecompressedSize; }
 
-  /// @brief Return true if section is compressed, including gnu-styled case.
+  /// Return true if section is compressed, including gnu-styled case.
   static bool isCompressed(const object::SectionRef &Section);
 
-  /// @brief Return true if section is a ELF compressed one.
+  /// Return true if section is a ELF compressed one.
   static bool isCompressedELFSection(uint64_t Flags, StringRef Name);
 
-  /// @brief Return true if section name matches gnu style compressed one.
+  /// Return true if section name matches gnu style compressed one.
   static bool isGnuStyle(StringRef Name);
 
 private:
diff --git a/linux-x64/clang/include/llvm/Object/ELF.h b/linux-x64/clang/include/llvm/Object/ELF.h
index 46504e7..752d468 100644
--- a/linux-x64/clang/include/llvm/Object/ELF.h
+++ b/linux-x64/clang/include/llvm/Object/ELF.h
@@ -32,6 +32,7 @@
 namespace object {
 
 StringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type);
+uint32_t getELFRelrRelocationType(uint32_t Machine);
 StringRef getELFSectionTypeName(uint32_t Machine, uint32_t Type);
 
 // Subclasses of ELFFile may need this for template instantiation
@@ -60,6 +61,7 @@
   using Elf_Phdr = typename ELFT::Phdr;
   using Elf_Rel = typename ELFT::Rel;
   using Elf_Rela = typename ELFT::Rela;
+  using Elf_Relr = typename ELFT::Relr;
   using Elf_Verdef = typename ELFT::Verdef;
   using Elf_Verdaux = typename ELFT::Verdaux;
   using Elf_Verneed = typename ELFT::Verneed;
@@ -75,6 +77,7 @@
   using Elf_Sym_Range = typename ELFT::SymRange;
   using Elf_Rel_Range = typename ELFT::RelRange;
   using Elf_Rela_Range = typename ELFT::RelaRange;
+  using Elf_Relr_Range = typename ELFT::RelrRange;
   using Elf_Phdr_Range = typename ELFT::PhdrRange;
 
   const uint8_t *base() const {
@@ -110,8 +113,12 @@
   StringRef getRelocationTypeName(uint32_t Type) const;
   void getRelocationTypeName(uint32_t Type,
                              SmallVectorImpl<char> &Result) const;
+  uint32_t getRelrRelocationType() const;
 
-  /// \brief Get the symbol for a given relocation.
+  const char *getDynamicTagAsString(unsigned Arch, uint64_t Type) const;
+  const char *getDynamicTagAsString(uint64_t Type) const;
+
+  /// Get the symbol for a given relocation.
   Expected<const Elf_Sym *> getRelocationSymbol(const Elf_Rel *Rel,
                                                 const Elf_Shdr *SymTab) const;
 
@@ -129,6 +136,10 @@
 
   Expected<Elf_Shdr_Range> sections() const;
 
+  Expected<Elf_Dyn_Range> dynamicEntries() const;
+
+  Expected<const uint8_t *> toMappedAddr(uint64_t VAddr) const;
+
   Expected<Elf_Sym_Range> symbols(const Elf_Shdr *Sec) const {
     if (!Sec)
       return makeArrayRef<Elf_Sym>(nullptr, nullptr);
@@ -143,9 +154,15 @@
     return getSectionContentsAsArray<Elf_Rel>(Sec);
   }
 
+  Expected<Elf_Relr_Range> relrs(const Elf_Shdr *Sec) const {
+    return getSectionContentsAsArray<Elf_Relr>(Sec);
+  }
+
+  Expected<std::vector<Elf_Rela>> decode_relrs(Elf_Relr_Range relrs) const;
+
   Expected<std::vector<Elf_Rela>> android_relas(const Elf_Shdr *Sec) const;
 
-  /// \brief Iterate over program header table.
+  /// Iterate over program header table.
   Expected<Elf_Phdr_Range> program_headers() const {
     if (getHeader()->e_phnum && getHeader()->e_phentsize != sizeof(Elf_Phdr))
       return createError("invalid e_phentsize");
@@ -235,6 +252,7 @@
                                         Elf_Sym_Range Symtab,
                                         ArrayRef<Elf_Word> ShndxTable) const;
   Expected<const Elf_Shdr *> getSection(uint32_t Index) const;
+  Expected<const Elf_Shdr *> getSection(const StringRef SectionName) const;
 
   Expected<const Elf_Sym *> getSymbol(const Elf_Shdr *Sec,
                                       uint32_t Index) const;
@@ -397,6 +415,11 @@
 }
 
 template <class ELFT>
+uint32_t ELFFile<ELFT>::getRelrRelocationType() const {
+  return getELFRelrRelocationType(getHeader()->e_machine);
+}
+
+template <class ELFT>
 Expected<const typename ELFT::Sym *>
 ELFFile<ELFT>::getRelocationSymbol(const Elf_Rel *Rel,
                                    const Elf_Shdr *SymTab) const {
@@ -499,6 +522,22 @@
 }
 
 template <class ELFT>
+Expected<const typename ELFT::Shdr *>
+ELFFile<ELFT>::getSection(const StringRef SectionName) const {
+  auto TableOrErr = sections();
+  if (!TableOrErr)
+    return TableOrErr.takeError();
+  for (auto &Sec : *TableOrErr) {
+    auto SecNameOrErr = getSectionName(&Sec);
+    if (!SecNameOrErr)
+      return SecNameOrErr.takeError();
+    if (*SecNameOrErr == SectionName)
+      return &Sec;
+  }
+  return createError("invalid section name");
+}
+
+template <class ELFT>
 Expected<StringRef>
 ELFFile<ELFT>::getStringTable(const Elf_Shdr *Section) const {
   if (Section->sh_type != ELF::SHT_STRTAB)
diff --git a/linux-x64/clang/include/llvm/Object/ELFObjectFile.h b/linux-x64/clang/include/llvm/Object/ELFObjectFile.h
index 4d00103..54907cb 100644
--- a/linux-x64/clang/include/llvm/Object/ELFObjectFile.h
+++ b/linux-x64/clang/include/llvm/Object/ELFObjectFile.h
@@ -15,6 +15,7 @@
 #define LLVM_OBJECT_ELFOBJECTFILE_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Triple.h"
@@ -83,6 +84,10 @@
   SubtargetFeatures getRISCVFeatures() const;
 
   void setARMSubArch(Triple &TheTriple) const override;
+
+  virtual uint16_t getEType() const = 0;
+
+  std::vector<std::pair<DataRefImpl, uint64_t>> getPltAddresses() const;
 };
 
 class ELFSectionRef : public SectionRef {
@@ -200,6 +205,7 @@
 
 template <class ELFT> class ELFObjectFile : public ELFObjectFileBase {
   uint16_t getEMachine() const override;
+  uint16_t getEType() const override;
   uint64_t getSymbolSize(DataRefImpl Sym) const override;
 
 public:
@@ -256,6 +262,7 @@
   bool isSectionVirtual(DataRefImpl Sec) const override;
   relocation_iterator section_rel_begin(DataRefImpl Sec) const override;
   relocation_iterator section_rel_end(DataRefImpl Sec) const override;
+  std::vector<SectionRef> dynamic_relocation_sections() const override;
   section_iterator getRelocatedSection(DataRefImpl Sec) const override;
 
   void moveRelocationNext(DataRefImpl &Rel) const override;
@@ -270,7 +277,7 @@
   uint64_t getSectionOffset(DataRefImpl Sec) const override;
   StringRef getRelocationTypeName(uint32_t Type) const;
 
-  /// \brief Get the relocation section that contains \a Rel.
+  /// Get the relocation section that contains \a Rel.
   const Elf_Shdr *getRelSection(DataRefImpl Rel) const {
     auto RelSecOrErr = EF.getSection(Rel.d.a);
     if (!RelSecOrErr)
@@ -368,6 +375,7 @@
   uint8_t getBytesInAddress() const override;
   StringRef getFileFormatName() const override;
   Triple::ArchType getArch() const override;
+  Expected<uint64_t> getStartAddress() const override;
 
   unsigned getPlatformFlags() const override { return EF.getHeader()->e_flags; }
 
@@ -507,6 +515,10 @@
   return EF.getHeader()->e_machine;
 }
 
+template <class ELFT> uint16_t ELFObjectFile<ELFT>::getEType() const {
+  return EF.getHeader()->e_type;
+}
+
 template <class ELFT>
 uint64_t ELFObjectFile<ELFT>::getSymbolSize(DataRefImpl Sym) const {
   return getSymbol(Sym)->st_size;
@@ -700,8 +712,9 @@
 template <class ELFT>
 bool ELFObjectFile<ELFT>::isSectionData(DataRefImpl Sec) const {
   const Elf_Shdr *EShdr = getSection(Sec);
-  return EShdr->sh_flags & (ELF::SHF_ALLOC | ELF::SHF_WRITE) &&
-         EShdr->sh_type == ELF::SHT_PROGBITS;
+  return EShdr->sh_type == ELF::SHT_PROGBITS &&
+         EShdr->sh_flags & ELF::SHF_ALLOC &&
+         !(EShdr->sh_flags & ELF::SHF_EXECINSTR);
 }
 
 template <class ELFT>
@@ -712,6 +725,35 @@
 }
 
 template <class ELFT>
+std::vector<SectionRef>
+ELFObjectFile<ELFT>::dynamic_relocation_sections() const {
+  std::vector<SectionRef> Res;
+  std::vector<uintptr_t> Offsets;
+
+  auto SectionsOrErr = EF.sections();
+  if (!SectionsOrErr)
+    return Res;
+
+  for (const Elf_Shdr &Sec : *SectionsOrErr) {
+    if (Sec.sh_type != ELF::SHT_DYNAMIC)
+      continue;
+    Elf_Dyn *Dynamic =
+        reinterpret_cast<Elf_Dyn *>((uintptr_t)base() + Sec.sh_offset);
+    for (; Dynamic->d_tag != ELF::DT_NULL; Dynamic++) {
+      if (Dynamic->d_tag == ELF::DT_REL || Dynamic->d_tag == ELF::DT_RELA ||
+          Dynamic->d_tag == ELF::DT_JMPREL) {
+        Offsets.push_back(Dynamic->d_un.d_val);
+      }
+    }
+  }
+  for (const Elf_Shdr &Sec : *SectionsOrErr) {
+    if (is_contained(Offsets, Sec.sh_offset))
+      Res.emplace_back(toDRI(&Sec), this);
+  }
+  return Res;
+}
+
+template <class ELFT>
 bool ELFObjectFile<ELFT>::isSectionVirtual(DataRefImpl Sec) const {
   return getSection(Sec)->sh_type == ELF::SHT_NOBITS;
 }
@@ -792,8 +834,6 @@
 
 template <class ELFT>
 uint64_t ELFObjectFile<ELFT>::getRelocationOffset(DataRefImpl Rel) const {
-  assert(EF.getHeader()->e_type == ELF::ET_REL &&
-         "Only relocatable object files have relocation offsets");
   const Elf_Shdr *sec = getRelSection(Rel);
   if (sec->sh_type == ELF::SHT_REL)
     return getRel(Rel)->r_offset;
@@ -988,8 +1028,6 @@
     case ELF::EM_SPARC:
     case ELF::EM_SPARC32PLUS:
       return "ELF32-sparc";
-    case ELF::EM_WEBASSEMBLY:
-      return "ELF32-wasm";
     case ELF::EM_AMDGPU:
       return "ELF32-amdgpu";
     default:
@@ -1013,8 +1051,6 @@
       return "ELF64-sparc";
     case ELF::EM_MIPS:
       return "ELF64-mips";
-    case ELF::EM_WEBASSEMBLY:
-      return "ELF64-wasm";
     case ELF::EM_AMDGPU:
       return "ELF64-amdgpu";
     case ELF::EM_BPF:
@@ -1076,12 +1112,6 @@
     return IsLittleEndian ? Triple::sparcel : Triple::sparc;
   case ELF::EM_SPARCV9:
     return Triple::sparcv9;
-  case ELF::EM_WEBASSEMBLY:
-    switch (EF.getHeader()->e_ident[ELF::EI_CLASS]) {
-    case ELF::ELFCLASS32: return Triple::wasm32;
-    case ELF::ELFCLASS64: return Triple::wasm64;
-    default: return Triple::UnknownArch;
-    }
 
   case ELF::EM_AMDGPU: {
     if (!IsLittleEndian)
@@ -1107,6 +1137,11 @@
 }
 
 template <class ELFT>
+Expected<uint64_t> ELFObjectFile<ELFT>::getStartAddress() const {
+  return EF.getHeader()->e_entry;
+}
+
+template <class ELFT>
 ELFObjectFileBase::elf_symbol_iterator_range
 ELFObjectFile<ELFT>::getDynamicSymbolIterators() const {
   return make_range(dynamic_symbol_begin(), dynamic_symbol_end());
diff --git a/linux-x64/clang/include/llvm/Object/ELFTypes.h b/linux-x64/clang/include/llvm/Object/ELFTypes.h
index 260ca96..fb38612 100644
--- a/linux-x64/clang/include/llvm/Object/ELFTypes.h
+++ b/linux-x64/clang/include/llvm/Object/ELFTypes.h
@@ -43,6 +43,7 @@
 template <class ELFT> struct Elf_Nhdr_Impl;
 template <class ELFT> class Elf_Note_Impl;
 template <class ELFT> class Elf_Note_Iterator_Impl;
+template <class ELFT> struct Elf_CGProfile_Impl;
 
 template <endianness E, bool Is64> struct ELFType {
 private:
@@ -61,6 +62,7 @@
   using Phdr = Elf_Phdr_Impl<ELFType<E, Is64>>;
   using Rel = Elf_Rel_Impl<ELFType<E, Is64>, false>;
   using Rela = Elf_Rel_Impl<ELFType<E, Is64>, true>;
+  using Relr = packed<uint>;
   using Verdef = Elf_Verdef_Impl<ELFType<E, Is64>>;
   using Verdaux = Elf_Verdaux_Impl<ELFType<E, Is64>>;
   using Verneed = Elf_Verneed_Impl<ELFType<E, Is64>>;
@@ -72,11 +74,13 @@
   using Nhdr = Elf_Nhdr_Impl<ELFType<E, Is64>>;
   using Note = Elf_Note_Impl<ELFType<E, Is64>>;
   using NoteIterator = Elf_Note_Iterator_Impl<ELFType<E, Is64>>;
+  using CGProfile = Elf_CGProfile_Impl<ELFType<E, Is64>>;
   using DynRange = ArrayRef<Dyn>;
   using ShdrRange = ArrayRef<Shdr>;
   using SymRange = ArrayRef<Sym>;
   using RelRange = ArrayRef<Rel>;
   using RelaRange = ArrayRef<Rela>;
+  using RelrRange = ArrayRef<Relr>;
   using PhdrRange = ArrayRef<Phdr>;
 
   using Half = packed<uint16_t>;
@@ -148,7 +152,7 @@
   using Elf_Shdr_Base<ELFT>::sh_entsize;
   using Elf_Shdr_Base<ELFT>::sh_size;
 
-  /// @brief Get the number of entities this section contains if it has any.
+  /// Get the number of entities this section contains if it has any.
   unsigned getEntityCount() const {
     if (sh_entsize == 0)
       return 0;
@@ -678,6 +682,13 @@
   }
 };
 
+template <class ELFT> struct Elf_CGProfile_Impl {
+  LLVM_ELF_IMPORT_TYPES_ELFT(ELFT)
+  Elf_Word cgp_from;
+  Elf_Word cgp_to;
+  Elf_Xword cgp_weight;
+};
+
 // MIPS .reginfo section
 template <class ELFT>
 struct Elf_Mips_RegInfo;
diff --git a/linux-x64/clang/include/llvm/Object/IRObjectFile.h b/linux-x64/clang/include/llvm/Object/IRObjectFile.h
index 6c271b1..993359b 100644
--- a/linux-x64/clang/include/llvm/Object/IRObjectFile.h
+++ b/linux-x64/clang/include/llvm/Object/IRObjectFile.h
@@ -50,11 +50,22 @@
     return v->isIR();
   }
 
-  /// \brief Finds and returns bitcode embedded in the given object file, or an
+  using module_iterator =
+      pointee_iterator<std::vector<std::unique_ptr<Module>>::const_iterator,
+                       const Module>;
+
+  module_iterator module_begin() const { return module_iterator(Mods.begin()); }
+  module_iterator module_end() const { return module_iterator(Mods.end()); }
+
+  iterator_range<module_iterator> modules() const {
+    return make_range(module_begin(), module_end());
+  }
+
+  /// Finds and returns bitcode embedded in the given object file, or an
   /// error code if not found.
   static Expected<MemoryBufferRef> findBitcodeInObject(const ObjectFile &Obj);
 
-  /// \brief Finds and returns bitcode in the given memory buffer (which may
+  /// Finds and returns bitcode in the given memory buffer (which may
   /// be either a bitcode file or a native object file with embedded bitcode),
   /// or an error code if not found.
   static Expected<MemoryBufferRef>
diff --git a/linux-x64/clang/include/llvm/Object/MachO.h b/linux-x64/clang/include/llvm/Object/MachO.h
index bfd3462..159c176 100644
--- a/linux-x64/clang/include/llvm/Object/MachO.h
+++ b/linux-x64/clang/include/llvm/Object/MachO.h
@@ -304,6 +304,8 @@
   std::error_code getSectionContents(DataRefImpl Sec,
                                      StringRef &Res) const override;
   uint64_t getSectionAlignment(DataRefImpl Sec) const override;
+  Expected<SectionRef> getSection(unsigned SectionIndex) const;
+  Expected<SectionRef> getSection(StringRef SectionName) const;
   bool isSectionCompressed(DataRefImpl Sec) const override;
   bool isSectionText(DataRefImpl Sec) const override;
   bool isSectionData(DataRefImpl Sec) const override;
@@ -331,7 +333,7 @@
 
   relocation_iterator locrel_begin() const;
   relocation_iterator locrel_end() const;
-  
+
   void moveRelocationNext(DataRefImpl &Rel) const override;
   uint64_t getRelocationOffset(DataRefImpl Rel) const override;
   symbol_iterator getRelocationSymbol(DataRefImpl Rel) const override;
diff --git a/linux-x64/clang/include/llvm/Object/MachOUniversal.h b/linux-x64/clang/include/llvm/Object/MachOUniversal.h
index 72837d0..9e70b0b 100644
--- a/linux-x64/clang/include/llvm/Object/MachOUniversal.h
+++ b/linux-x64/clang/include/llvm/Object/MachOUniversal.h
@@ -34,9 +34,9 @@
 public:
   class ObjectForArch {
     const MachOUniversalBinary *Parent;
-    /// \brief Index of object in the universal binary.
+    /// Index of object in the universal binary.
     uint32_t Index;
-    /// \brief Descriptor of the object.
+    /// Descriptor of the object.
     MachO::fat_arch Header;
     MachO::fat_arch_64 Header64;
 
diff --git a/linux-x64/clang/include/llvm/Object/ModuleSymbolTable.h b/linux-x64/clang/include/llvm/Object/ModuleSymbolTable.h
index 9e93228..c3cbc27 100644
--- a/linux-x64/clang/include/llvm/Object/ModuleSymbolTable.h
+++ b/linux-x64/clang/include/llvm/Object/ModuleSymbolTable.h
@@ -57,6 +57,15 @@
   static void CollectAsmSymbols(
       const Module &M,
       function_ref<void(StringRef, object::BasicSymbolRef::Flags)> AsmSymbol);
+
+  /// Parse inline ASM and collect the symvers directives that are defined in
+  /// the current module.
+  ///
+  /// For each found symbol, call \p AsmSymver with the name of the symbol and
+  /// its alias.
+  static void
+  CollectAsmSymvers(const Module &M,
+                    function_ref<void(StringRef, StringRef)> AsmSymver);
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/Object/ObjectFile.h b/linux-x64/clang/include/llvm/Object/ObjectFile.h
index 9c4ae94..02d62e8 100644
--- a/linux-x64/clang/include/llvm/Object/ObjectFile.h
+++ b/linux-x64/clang/include/llvm/Object/ObjectFile.h
@@ -65,7 +65,7 @@
   symbol_iterator getSymbol() const;
   uint64_t getType() const;
 
-  /// @brief Get a string that represents the type of this relocation.
+  /// Get a string that represents the type of this relocation.
   ///
   /// This is for display purposes only.
   void getTypeName(SmallVectorImpl<char> &Result) const;
@@ -100,7 +100,7 @@
   uint64_t getSize() const;
   std::error_code getContents(StringRef &Result) const;
 
-  /// @brief Get the alignment of this section as the actual value (not log 2).
+  /// Get the alignment of this section as the actual value (not log 2).
   uint64_t getAlignment() const;
 
   bool isCompressed() const;
@@ -154,12 +154,12 @@
   /// offset or a virtual address.
   uint64_t getValue() const;
 
-  /// @brief Get the alignment of this symbol as the actual value (not log 2).
+  /// Get the alignment of this symbol as the actual value (not log 2).
   uint32_t getAlignment() const;
   uint64_t getCommonSize() const;
   Expected<SymbolRef::Type> getType() const;
 
-  /// @brief Get section this symbol is defined in reference to. Result is
+  /// Get section this symbol is defined in reference to. Result is
   /// end_sections() if it is undefined or is an absolute symbol.
   Expected<section_iterator> getSection() const;
 
@@ -262,6 +262,10 @@
     return getCommonSymbolSizeImpl(Symb);
   }
 
+  virtual std::vector<SectionRef> dynamic_relocation_sections() const {
+    return std::vector<SectionRef>();
+  }
+
   using symbol_iterator_range = iterator_range<symbol_iterator>;
   symbol_iterator_range symbols() const {
     return symbol_iterator_range(symbol_begin(), symbol_end());
@@ -275,7 +279,7 @@
     return section_iterator_range(section_begin(), section_end());
   }
 
-  /// @brief The number of bytes used to represent an address in this object
+  /// The number of bytes used to represent an address in this object
   ///        file format.
   virtual uint8_t getBytesInAddress() const = 0;
 
@@ -283,8 +287,11 @@
   virtual Triple::ArchType getArch() const = 0;
   virtual SubtargetFeatures getFeatures() const = 0;
   virtual void setARMSubArch(Triple &TheTriple) const { }
+  virtual Expected<uint64_t> getStartAddress() const {
+    return errorCodeToError(object_error::parse_failed);
+  };
 
-  /// @brief Create a triple from the data in this object file.
+  /// Create a triple from the data in this object file.
   Triple makeTriple() const;
 
   virtual std::error_code
@@ -301,7 +308,7 @@
   /// @returns Pointer to ObjectFile subclass to handle this type of object.
   /// @param ObjectPath The path to the object file. ObjectPath.isObject must
   ///        return true.
-  /// @brief Create ObjectFile from path.
+  /// Create ObjectFile from path.
   static Expected<OwningBinary<ObjectFile>>
   createObjectFile(StringRef ObjectPath);
 
diff --git a/linux-x64/clang/include/llvm/Object/RelocVisitor.h b/linux-x64/clang/include/llvm/Object/RelocVisitor.h
index 2d0e938..008e109 100644
--- a/linux-x64/clang/include/llvm/Object/RelocVisitor.h
+++ b/linux-x64/clang/include/llvm/Object/RelocVisitor.h
@@ -23,6 +23,7 @@
 #include "llvm/Object/ELFObjectFile.h"
 #include "llvm/Object/MachO.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Object/Wasm.h"
 #include "llvm/Support/Casting.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cstdint>
@@ -31,7 +32,7 @@
 namespace llvm {
 namespace object {
 
-/// @brief Base class for object file relocation visitors.
+/// Base class for object file relocation visitors.
 class RelocVisitor {
 public:
   explicit RelocVisitor(const ObjectFile &Obj) : ObjToVisit(Obj) {}
@@ -46,6 +47,8 @@
       return visitCOFF(Rel, R, Value);
     if (isa<MachOObjectFile>(ObjToVisit))
       return visitMachO(Rel, R, Value);
+    if (isa<WasmObjectFile>(ObjToVisit))
+      return visitWasm(Rel, R, Value);
 
     HasError = true;
     return 0;
@@ -316,6 +319,27 @@
     HasError = true;
     return 0;
   }
+
+  uint64_t visitWasm(uint32_t Rel, RelocationRef R, uint64_t Value) {
+    if (ObjToVisit.getArch() == Triple::wasm32) {
+      switch (Rel) {
+      case wasm::R_WEBASSEMBLY_FUNCTION_INDEX_LEB:
+      case wasm::R_WEBASSEMBLY_TABLE_INDEX_SLEB:
+      case wasm::R_WEBASSEMBLY_TABLE_INDEX_I32:
+      case wasm::R_WEBASSEMBLY_MEMORY_ADDR_LEB:
+      case wasm::R_WEBASSEMBLY_MEMORY_ADDR_SLEB:
+      case wasm::R_WEBASSEMBLY_MEMORY_ADDR_I32:
+      case wasm::R_WEBASSEMBLY_TYPE_INDEX_LEB:
+      case wasm::R_WEBASSEMBLY_GLOBAL_INDEX_LEB:
+      case wasm::R_WEBASSEMBLY_FUNCTION_OFFSET_I32:
+      case wasm::R_WEBASSEMBLY_SECTION_OFFSET_I32:
+        // For wasm section, its offset at 0 -- ignoring Value
+        return 0;
+      }
+    }
+    HasError = true;
+    return 0;
+  }
 };
 
 } // end namespace object
diff --git a/linux-x64/clang/include/llvm/Object/Wasm.h b/linux-x64/clang/include/llvm/Object/Wasm.h
index d49acf3..fd34e45 100644
--- a/linux-x64/clang/include/llvm/Object/Wasm.h
+++ b/linux-x64/clang/include/llvm/Object/Wasm.h
@@ -21,6 +21,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/BinaryFormat/Wasm.h"
+#include "llvm/Config/llvm-config.h"
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Support/Error.h"
@@ -53,6 +54,10 @@
     return Info.Kind == wasm::WASM_SYMBOL_TYPE_GLOBAL;
   }
 
+  bool isTypeSection() const {
+    return Info.Kind == wasm::WASM_SYMBOL_TYPE_SECTION;
+  }
+
   bool isDefined() const { return !isUndefined(); }
 
   bool isUndefined() const {
@@ -83,20 +88,10 @@
     return Info.Flags & wasm::WASM_SYMBOL_VISIBILITY_MASK;
   }
 
-  void print(raw_ostream &Out) const {
-    Out << "Name=" << Info.Name << ", Kind=" << Info.Kind
-        << ", Flags=" << Info.Flags;
-    if (!isTypeData()) {
-      Out << ", ElemIndex=" << Info.ElementIndex;
-    } else if (isDefined()) {
-      Out << ", Segment=" << Info.DataRef.Segment;
-      Out << ", Offset=" << Info.DataRef.Offset;
-      Out << ", Size=" << Info.DataRef.Size;
-    }
-  }
+  void print(raw_ostream &Out) const;
 
 #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
-  LLVM_DUMP_METHOD void dump() const { print(dbgs()); }
+  LLVM_DUMP_METHOD void dump() const;
 #endif
 };
 
@@ -198,6 +193,12 @@
   SubtargetFeatures getFeatures() const override;
   bool isRelocatableObject() const override;
 
+  struct ReadContext {
+    const uint8_t *Start;
+    const uint8_t *Ptr;
+    const uint8_t *End;
+  };
+
 private:
   bool isValidFunctionIndex(uint32_t Index) const;
   bool isDefinedFunctionIndex(uint32_t Index) const;
@@ -206,40 +207,36 @@
   bool isValidFunctionSymbol(uint32_t Index) const;
   bool isValidGlobalSymbol(uint32_t Index) const;
   bool isValidDataSymbol(uint32_t Index) const;
+  bool isValidSectionSymbol(uint32_t Index) const;
   wasm::WasmFunction &getDefinedFunction(uint32_t Index);
   wasm::WasmGlobal &getDefinedGlobal(uint32_t Index);
 
   const WasmSection &getWasmSection(DataRefImpl Ref) const;
   const wasm::WasmRelocation &getWasmRelocation(DataRefImpl Ref) const;
 
-  WasmSection* findCustomSectionByName(StringRef Name);
-  WasmSection* findSectionByType(uint32_t Type);
-
   const uint8_t *getPtr(size_t Offset) const;
   Error parseSection(WasmSection &Sec);
-  Error parseCustomSection(WasmSection &Sec, const uint8_t *Ptr,
-                           const uint8_t *End);
+  Error parseCustomSection(WasmSection &Sec, ReadContext &Ctx);
 
   // Standard section types
-  Error parseTypeSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseImportSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseFunctionSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseTableSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseMemorySection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseGlobalSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseExportSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseStartSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseElemSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseCodeSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseDataSection(const uint8_t *Ptr, const uint8_t *End);
+  Error parseTypeSection(ReadContext &Ctx);
+  Error parseImportSection(ReadContext &Ctx);
+  Error parseFunctionSection(ReadContext &Ctx);
+  Error parseTableSection(ReadContext &Ctx);
+  Error parseMemorySection(ReadContext &Ctx);
+  Error parseGlobalSection(ReadContext &Ctx);
+  Error parseExportSection(ReadContext &Ctx);
+  Error parseStartSection(ReadContext &Ctx);
+  Error parseElemSection(ReadContext &Ctx);
+  Error parseCodeSection(ReadContext &Ctx);
+  Error parseDataSection(ReadContext &Ctx);
 
   // Custom section types
-  Error parseNameSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseLinkingSection(const uint8_t *Ptr, const uint8_t *End);
-  Error parseLinkingSectionSymtab(const uint8_t *&Ptr, const uint8_t *End);
-  Error parseLinkingSectionComdat(const uint8_t *&Ptr, const uint8_t *End);
-  Error parseRelocSection(StringRef Name, const uint8_t *Ptr,
-                          const uint8_t *End);
+  Error parseNameSection(ReadContext &Ctx);
+  Error parseLinkingSection(ReadContext &Ctx);
+  Error parseLinkingSectionSymtab(ReadContext &Ctx);
+  Error parseLinkingSectionComdat(ReadContext &Ctx);
+  Error parseRelocSection(StringRef Name, ReadContext &Ctx);
 
   wasm::WasmObjectHeader Header;
   std::vector<WasmSection> Sections;
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/COFFYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/COFFYAML.h
index 8794eaa..78f021f 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/COFFYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/COFFYAML.h
@@ -67,6 +67,7 @@
   yaml::BinaryRef SectionData;
   std::vector<CodeViewYAML::YAMLDebugSubsection> DebugS;
   std::vector<CodeViewYAML::LeafRecord> DebugT;
+  std::vector<CodeViewYAML::LeafRecord> DebugP;
   Optional<CodeViewYAML::DebugHSection> DebugH;
   std::vector<Relocation> Relocations;
   StringRef Name;
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
index 4f0d9ef..344966f 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
@@ -32,10 +32,10 @@
 struct GlobalHash {
   GlobalHash() = default;
   explicit GlobalHash(StringRef S) : Hash(S) {
-    assert(S.size() == 20 && "Invalid hash size!");
+    assert(S.size() == 8 && "Invalid hash size!");
   }
   explicit GlobalHash(ArrayRef<uint8_t> S) : Hash(S) {
-    assert(S.size() == 20 && "Invalid hash size!");
+    assert(S.size() == 8 && "Invalid hash size!");
   }
   yaml::BinaryRef Hash;
 };
@@ -47,7 +47,7 @@
   std::vector<GlobalHash> Hashes;
 };
 
-DebugHSection fromDebugH(ArrayRef<uint8_t> DebugT);
+DebugHSection fromDebugH(ArrayRef<uint8_t> DebugH);
 ArrayRef<uint8_t> toDebugH(const DebugHSection &DebugH,
                            BumpPtrAllocator &Alloc);
 
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypes.h b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
index bc3b556..1b1306d 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
@@ -51,8 +51,10 @@
   static Expected<LeafRecord> fromCodeViewRecord(codeview::CVType Type);
 };
 
-std::vector<LeafRecord> fromDebugT(ArrayRef<uint8_t> DebugT);
-ArrayRef<uint8_t> toDebugT(ArrayRef<LeafRecord>, BumpPtrAllocator &Alloc);
+std::vector<LeafRecord> fromDebugT(ArrayRef<uint8_t> DebugTorP,
+                                   StringRef SectionName);
+ArrayRef<uint8_t> toDebugT(ArrayRef<LeafRecord>, BumpPtrAllocator &Alloc,
+                           StringRef SectionName);
 
 } // end namespace CodeViewYAML
 
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/DWARFEmitter.h b/linux-x64/clang/include/llvm/ObjectYAML/DWARFEmitter.h
index 0d7d8b4..ce32274 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/DWARFEmitter.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/DWARFEmitter.h
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 /// \file
-/// \brief Common declarations for yaml2obj
+/// Common declarations for yaml2obj
 //===----------------------------------------------------------------------===//
 
 #ifndef LLVM_OBJECTYAML_DWARFEMITTER_H
@@ -39,11 +39,12 @@
 void EmitDebugLine(raw_ostream &OS, const Data &DI);
 
 Expected<StringMap<std::unique_ptr<MemoryBuffer>>>
-EmitDebugSections(StringRef YAMLString,
+EmitDebugSections(StringRef YAMLString, bool ApplyFixups = false,
                   bool IsLittleEndian = sys::IsLittleEndianHost);
+StringMap<std::unique_ptr<MemoryBuffer>>
+EmitDebugSections(llvm::DWARFYAML::Data &DI, bool ApplyFixups);
 
 } // end namespace DWARFYAML
-
 } // end namespace llvm
 
 #endif // LLVM_OBJECTYAML_DWARFEMITTER_H
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/DWARFYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/DWARFYAML.h
index 2162f0f..705c887 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/DWARFYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/DWARFYAML.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief This file declares classes for handling the YAML representation
+/// This file declares classes for handling the YAML representation
 /// of DWARF Debug Info.
 ///
 //===----------------------------------------------------------------------===//
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/ELFYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/ELFYAML.h
index 7ba8396..92081f0 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/ELFYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/ELFYAML.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief This file declares classes for handling the YAML representation
+/// This file declares classes for handling the YAML representation
 /// of ELF.
 ///
 //===----------------------------------------------------------------------===//
@@ -123,6 +123,7 @@
   StringRef Link;
   StringRef Info;
   llvm::yaml::Hex64 AddressAlign;
+  Optional<llvm::yaml::Hex64> EntSize;
 
   Section(SectionKind Kind) : Kind(Kind) {}
   virtual ~Section();
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/MachOYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/MachOYAML.h
index 1fa8f92..cec4f86 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/MachOYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/MachOYAML.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief This file declares classes for handling the YAML representation
+/// This file declares classes for handling the YAML representation
 /// of Mach-O.
 ///
 //===----------------------------------------------------------------------===//
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/WasmYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/WasmYAML.h
index 1c5e77e..8cd08e5 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/WasmYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/WasmYAML.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief This file declares classes for handling the YAML representation
+/// This file declares classes for handling the YAML representation
 /// of wasm binaries.
 ///
 //===----------------------------------------------------------------------===//
@@ -195,6 +195,7 @@
     return C && C->Name == "linking";
   }
 
+  uint32_t Version;
   std::vector<SymbolInfo> SymbolTable;
   std::vector<SegmentInfo> SegmentInfos;
   std::vector<InitFunction> InitFunctions;
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/YAML.h b/linux-x64/clang/include/llvm/ObjectYAML/YAML.h
index 93266dd..163cd8d 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/YAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/YAML.h
@@ -21,7 +21,7 @@
 
 namespace yaml {
 
-/// \brief Specialized YAMLIO scalar type for representing a binary blob.
+/// Specialized YAMLIO scalar type for representing a binary blob.
 ///
 /// A typical use case would be to represent the content of a section in a
 /// binary file.
@@ -64,11 +64,11 @@
 class BinaryRef {
   friend bool operator==(const BinaryRef &LHS, const BinaryRef &RHS);
 
-  /// \brief Either raw binary data, or a string of hex bytes (must always
+  /// Either raw binary data, or a string of hex bytes (must always
   /// be an even number of characters).
   ArrayRef<uint8_t> Data;
 
-  /// \brief Discriminator between the two states of the `Data` member.
+  /// Discriminator between the two states of the `Data` member.
   bool DataIsHexString = true;
 
 public:
@@ -77,7 +77,7 @@
   BinaryRef(StringRef Data)
       : Data(reinterpret_cast<const uint8_t *>(Data.data()), Data.size()) {}
 
-  /// \brief The number of bytes that are represented by this BinaryRef.
+  /// The number of bytes that are represented by this BinaryRef.
   /// This is the number of bytes that writeAsBinary() will write.
   ArrayRef<uint8_t>::size_type binary_size() const {
     if (DataIsHexString)
@@ -85,11 +85,11 @@
     return Data.size();
   }
 
-  /// \brief Write the contents (regardless of whether it is binary or a
+  /// Write the contents (regardless of whether it is binary or a
   /// hex string) as binary to the given raw_ostream.
   void writeAsBinary(raw_ostream &OS) const;
 
-  /// \brief Write the contents (regardless of whether it is binary or a
+  /// Write the contents (regardless of whether it is binary or a
   /// hex string) as hex to the given raw_ostream.
   ///
   /// For example, a possible output could be `DEADBEEFCAFEBABE`.
diff --git a/linux-x64/clang/include/llvm/Option/Arg.h b/linux-x64/clang/include/llvm/Option/Arg.h
index c519a4a..d0086bb 100644
--- a/linux-x64/clang/include/llvm/Option/Arg.h
+++ b/linux-x64/clang/include/llvm/Option/Arg.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief Defines the llvm::Arg class for parsed arguments.
+/// Defines the llvm::Arg class for parsed arguments.
 ///
 //===----------------------------------------------------------------------===//
 
@@ -28,35 +28,35 @@
 
 class ArgList;
 
-/// \brief A concrete instance of a particular driver option.
+/// A concrete instance of a particular driver option.
 ///
 /// The Arg class encodes just enough information to be able to
 /// derive the argument values efficiently.
 class Arg {
 private:
-  /// \brief The option this argument is an instance of.
+  /// The option this argument is an instance of.
   const Option Opt;
 
-  /// \brief The argument this argument was derived from (during tool chain
+  /// The argument this argument was derived from (during tool chain
   /// argument translation), if any.
   const Arg *BaseArg;
 
-  /// \brief How this instance of the option was spelled.
+  /// How this instance of the option was spelled.
   StringRef Spelling;
 
-  /// \brief The index at which this argument appears in the containing
+  /// The index at which this argument appears in the containing
   /// ArgList.
   unsigned Index;
 
-  /// \brief Was this argument used to effect compilation?
+  /// Was this argument used to effect compilation?
   ///
   /// This is used for generating "argument unused" diagnostics.
   mutable unsigned Claimed : 1;
 
-  /// \brief Does this argument own its values?
+  /// Does this argument own its values?
   mutable unsigned OwnsValues : 1;
 
-  /// \brief The argument values, as C strings.
+  /// The argument values, as C strings.
   SmallVector<const char *, 2> Values;
 
 public:
@@ -74,7 +74,7 @@
   StringRef getSpelling() const { return Spelling; }
   unsigned getIndex() const { return Index; }
 
-  /// \brief Return the base argument which generated this arg.
+  /// Return the base argument which generated this arg.
   ///
   /// This is either the argument itself or the argument it was
   /// derived from during tool chain specific argument translation.
@@ -88,7 +88,7 @@
 
   bool isClaimed() const { return getBaseArg().Claimed; }
 
-  /// \brief Set the Arg claimed bit.
+  /// Set the Arg claimed bit.
   void claim() const { getBaseArg().Claimed = true; }
 
   unsigned getNumValues() const { return Values.size(); }
@@ -107,10 +107,10 @@
     return false;
   }
 
-  /// \brief Append the argument onto the given array as strings.
+  /// Append the argument onto the given array as strings.
   void render(const ArgList &Args, ArgStringList &Output) const;
 
-  /// \brief Append the argument, render as an input, onto the given
+  /// Append the argument, render as an input, onto the given
   /// array as strings.
   ///
   /// The distinction is that some options only render their values
@@ -120,7 +120,7 @@
   void print(raw_ostream &O) const;
   void dump() const;
 
-  /// \brief Return a formatted version of the argument and
+  /// Return a formatted version of the argument and
   /// its values, for debugging and diagnostics.
   std::string getAsString(const ArgList &Args) const;
 };
diff --git a/linux-x64/clang/include/llvm/Option/ArgList.h b/linux-x64/clang/include/llvm/Option/ArgList.h
index a80921f..687c8cb 100644
--- a/linux-x64/clang/include/llvm/Option/ArgList.h
+++ b/linux-x64/clang/include/llvm/Option/ArgList.h
@@ -85,9 +85,6 @@
     SkipToNextArg();
   }
 
-  // FIXME: This conversion function makes no sense.
-  operator const Arg*() { return *Current; }
-
   reference operator*() const { return *Current; }
   pointer operator->() const { return Current; }
 
@@ -356,7 +353,7 @@
     return MakeArgStringRef(Str.toStringRef(Buf));
   }
 
-  /// \brief Create an arg string for (\p LHS + \p RHS), reusing the
+  /// Create an arg string for (\p LHS + \p RHS), reusing the
   /// string at \p Index if possible.
   const char *GetOrMakeJoinedArgString(unsigned Index, StringRef LHS,
                                         StringRef RHS) const;
diff --git a/linux-x64/clang/include/llvm/Option/OptTable.h b/linux-x64/clang/include/llvm/Option/OptTable.h
index 20b9bba..743c477 100644
--- a/linux-x64/clang/include/llvm/Option/OptTable.h
+++ b/linux-x64/clang/include/llvm/Option/OptTable.h
@@ -29,7 +29,7 @@
 class InputArgList;
 class Option;
 
-/// \brief Provide access to the Option info table.
+/// Provide access to the Option info table.
 ///
 /// The OptTable class provides a layer of indirection which allows Option
 /// instance to be created lazily. In the common case, only a few options will
@@ -38,7 +38,7 @@
 /// parts of the driver still use Option instances where convenient.
 class OptTable {
 public:
-  /// \brief Entry for a single option instance in the option data table.
+  /// Entry for a single option instance in the option data table.
   struct Info {
     /// A null terminated array of prefix strings to apply to name while
     /// matching.
@@ -57,7 +57,7 @@
   };
 
 private:
-  /// \brief The option information table.
+  /// The option information table.
   std::vector<Info> OptionInfos;
   bool IgnoreCase;
 
@@ -86,36 +86,36 @@
 public:
   ~OptTable();
 
-  /// \brief Return the total number of option classes.
+  /// Return the total number of option classes.
   unsigned getNumOptions() const { return OptionInfos.size(); }
 
-  /// \brief Get the given Opt's Option instance, lazily creating it
+  /// Get the given Opt's Option instance, lazily creating it
   /// if necessary.
   ///
   /// \return The option, or null for the INVALID option id.
   const Option getOption(OptSpecifier Opt) const;
 
-  /// \brief Lookup the name of the given option.
+  /// Lookup the name of the given option.
   const char *getOptionName(OptSpecifier id) const {
     return getInfo(id).Name;
   }
 
-  /// \brief Get the kind of the given option.
+  /// Get the kind of the given option.
   unsigned getOptionKind(OptSpecifier id) const {
     return getInfo(id).Kind;
   }
 
-  /// \brief Get the group id for the given option.
+  /// Get the group id for the given option.
   unsigned getOptionGroupID(OptSpecifier id) const {
     return getInfo(id).GroupID;
   }
 
-  /// \brief Get the help text to use to describe this option.
+  /// Get the help text to use to describe this option.
   const char *getOptionHelpText(OptSpecifier id) const {
     return getInfo(id).HelpText;
   }
 
-  /// \brief Get the meta-variable name to use when describing
+  /// Get the meta-variable name to use when describing
   /// this options values in the help text.
   const char *getOptionMetaVar(OptSpecifier id) const {
     return getInfo(id).MetaVar;
@@ -174,7 +174,7 @@
   /// \return true in success, and false in fail.
   bool addValues(const char *Option, const char *Values);
 
-  /// \brief Parse a single argument; returning the new argument and
+  /// Parse a single argument; returning the new argument and
   /// updating Index.
   ///
   /// \param [in,out] Index - The current parsing position in the argument
@@ -192,7 +192,7 @@
                    unsigned FlagsToInclude = 0,
                    unsigned FlagsToExclude = 0) const;
 
-  /// \brief Parse an list of arguments into an InputArgList.
+  /// Parse an list of arguments into an InputArgList.
   ///
   /// The resulting InputArgList will reference the strings in [\p ArgBegin,
   /// \p ArgEnd), and their lifetime should extend past that of the returned
@@ -214,7 +214,7 @@
                          unsigned &MissingArgCount, unsigned FlagsToInclude = 0,
                          unsigned FlagsToExclude = 0) const;
 
-  /// \brief Render the help text for an option table.
+  /// Render the help text for an option table.
   ///
   /// \param OS - The stream to write the help text to.
   /// \param Name - The name to use in the usage line.
diff --git a/linux-x64/clang/include/llvm/Option/Option.h b/linux-x64/clang/include/llvm/Option/Option.h
index d9aebd5..b09f604 100644
--- a/linux-x64/clang/include/llvm/Option/Option.h
+++ b/linux-x64/clang/include/llvm/Option/Option.h
@@ -95,7 +95,7 @@
     return OptionClass(Info->Kind);
   }
 
-  /// \brief Get the name of this option without any prefix.
+  /// Get the name of this option without any prefix.
   StringRef getName() const {
     assert(Info && "Must have a valid info!");
     return Info->Name;
@@ -113,7 +113,7 @@
     return Owner->getOption(Info->AliasID);
   }
 
-  /// \brief Get the alias arguments as a \0 separated list.
+  /// Get the alias arguments as a \0 separated list.
   /// E.g. ["foo", "bar"] would be returned as "foo\0bar\0".
   const char *getAliasArgs() const {
     assert(Info && "Must have a valid info!");
@@ -123,13 +123,13 @@
     return Info->AliasArgs;
   }
 
-  /// \brief Get the default prefix for this option.
+  /// Get the default prefix for this option.
   StringRef getPrefix() const {
     const char *Prefix = *Info->Prefixes;
     return Prefix ? Prefix : StringRef();
   }
 
-  /// \brief Get the name of this option with the default prefix.
+  /// Get the name of this option with the default prefix.
   std::string getPrefixedName() const {
     std::string Ret = getPrefix();
     Ret += getName();
diff --git a/linux-x64/clang/include/llvm/Pass.h b/linux-x64/clang/include/llvm/Pass.h
index a29b377..d65347d 100644
--- a/linux-x64/clang/include/llvm/Pass.h
+++ b/linux-x64/clang/include/llvm/Pass.h
@@ -353,18 +353,18 @@
 
 /// If the user specifies the -time-passes argument on an LLVM tool command line
 /// then the value of this boolean will be true, otherwise false.
-/// @brief This is the storage for the -time-passes option.
+/// This is the storage for the -time-passes option.
 extern bool TimePassesIsEnabled;
 
 /// isFunctionInPrintList - returns true if a function should be printed via
 //  debugging options like -print-after-all/-print-before-all.
-//  @brief Tells if the function IR should be printed by PrinterPass.
+//  Tells if the function IR should be printed by PrinterPass.
 extern bool isFunctionInPrintList(StringRef FunctionName);
 
 /// forcePrintModuleIR - returns true if IR printing passes should
 //  be printing module IR (even for local-pass printers e.g. function-pass)
 //  to provide more context, as enabled by debugging option -print-module-scope
-//  @brief Tells if IR printer should be printing module IR
+//  Tells if IR printer should be printing module IR
 extern bool forcePrintModuleIR();
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/PassAnalysisSupport.h b/linux-x64/clang/include/llvm/PassAnalysisSupport.h
index 1187187..a075eb5 100644
--- a/linux-x64/clang/include/llvm/PassAnalysisSupport.h
+++ b/linux-x64/clang/include/llvm/PassAnalysisSupport.h
@@ -231,7 +231,7 @@
   // should be a small number, we just do a linear search over a (dense)
   // vector.
   Pass *ResultPass = Resolver->findImplPass(PI);
-  assert(ResultPass && 
+  assert(ResultPass &&
          "getAnalysis*() called on an analysis that was not "
          "'required' by pass!");
 
diff --git a/linux-x64/clang/include/llvm/PassRegistry.h b/linux-x64/clang/include/llvm/PassRegistry.h
index 93edc12..5746213 100644
--- a/linux-x64/clang/include/llvm/PassRegistry.h
+++ b/linux-x64/clang/include/llvm/PassRegistry.h
@@ -9,7 +9,7 @@
 //
 // This file defines PassRegistry, a class that is used in the initialization
 // and registration of passes.  At application startup, passes are registered
-// with the PassRegistry, which is later provided to the PassManager for 
+// with the PassRegistry, which is later provided to the PassManager for
 // dependency resolution and similar tasks.
 //
 //===----------------------------------------------------------------------===//
diff --git a/linux-x64/clang/include/llvm/Passes/PassBuilder.h b/linux-x64/clang/include/llvm/Passes/PassBuilder.h
index 5efcda0..24a93bc 100644
--- a/linux-x64/clang/include/llvm/Passes/PassBuilder.h
+++ b/linux-x64/clang/include/llvm/Passes/PassBuilder.h
@@ -27,6 +27,7 @@
 class StringRef;
 class AAManager;
 class TargetMachine;
+class ModuleSummaryIndex;
 
 /// A struct capturing PGO tunables.
 struct PGOOptions {
@@ -48,7 +49,7 @@
   bool SamplePGOSupport;
 };
 
-/// \brief This class provides access to building LLVM's passes.
+/// This class provides access to building LLVM's passes.
 ///
 /// It's members provide the baseline state available to passes during their
 /// construction. The \c PassRegistry.def file specifies how to construct all
@@ -59,7 +60,7 @@
   Optional<PGOOptions> PGOOpt;
 
 public:
-  /// \brief A struct to capture parsed pass pipeline names.
+  /// A struct to capture parsed pass pipeline names.
   ///
   /// A pipeline is defined as a series of names, each of which may in itself
   /// recursively contain a nested pipeline. A name is either the name of a pass
@@ -72,7 +73,7 @@
     std::vector<PipelineElement> InnerPipeline;
   };
 
-  /// \brief ThinLTO phase.
+  /// ThinLTO phase.
   ///
   /// This enumerates the LLVM ThinLTO optimization phases.
   enum class ThinLTOPhase {
@@ -84,7 +85,7 @@
     PostLink
   };
 
-  /// \brief LLVM-provided high-level optimization levels.
+  /// LLVM-provided high-level optimization levels.
   ///
   /// This enumerates the LLVM-provided high-level optimization levels. Each
   /// level has a specific goal and rationale.
@@ -174,7 +175,7 @@
                        Optional<PGOOptions> PGOOpt = None)
       : TM(TM), PGOOpt(PGOOpt) {}
 
-  /// \brief Cross register the analysis managers through their proxies.
+  /// Cross register the analysis managers through their proxies.
   ///
   /// This is an interface that can be used to cross register each
   // AnalysisManager with all the others analysis managers.
@@ -183,7 +184,7 @@
                             CGSCCAnalysisManager &CGAM,
                             ModuleAnalysisManager &MAM);
 
-  /// \brief Registers all available module analysis passes.
+  /// Registers all available module analysis passes.
   ///
   /// This is an interface that can be used to populate a \c
   /// ModuleAnalysisManager with all registered module analyses. Callers can
@@ -191,7 +192,7 @@
   /// pre-register analyses and this will not override those.
   void registerModuleAnalyses(ModuleAnalysisManager &MAM);
 
-  /// \brief Registers all available CGSCC analysis passes.
+  /// Registers all available CGSCC analysis passes.
   ///
   /// This is an interface that can be used to populate a \c CGSCCAnalysisManager
   /// with all registered CGSCC analyses. Callers can still manually register any
@@ -199,7 +200,7 @@
   /// not override those.
   void registerCGSCCAnalyses(CGSCCAnalysisManager &CGAM);
 
-  /// \brief Registers all available function analysis passes.
+  /// Registers all available function analysis passes.
   ///
   /// This is an interface that can be used to populate a \c
   /// FunctionAnalysisManager with all registered function analyses. Callers can
@@ -207,7 +208,7 @@
   /// pre-register analyses and this will not override those.
   void registerFunctionAnalyses(FunctionAnalysisManager &FAM);
 
-  /// \brief Registers all available loop analysis passes.
+  /// Registers all available loop analysis passes.
   ///
   /// This is an interface that can be used to populate a \c LoopAnalysisManager
   /// with all registered loop analyses. Callers can still manually register any
@@ -310,8 +311,9 @@
   /// only intended for use when attempting to optimize code. If frontends
   /// require some transformations for semantic reasons, they should explicitly
   /// build them.
-  ModulePassManager buildThinLTODefaultPipeline(OptimizationLevel Level,
-                                                bool DebugLogging = false);
+  ModulePassManager
+  buildThinLTODefaultPipeline(OptimizationLevel Level, bool DebugLogging,
+                              const ModuleSummaryIndex *ImportSummary);
 
   /// Build a pre-link, LTO-targeting default optimization pipeline to a pass
   /// manager.
@@ -340,13 +342,14 @@
   /// require some transformations for semantic reasons, they should explicitly
   /// build them.
   ModulePassManager buildLTODefaultPipeline(OptimizationLevel Level,
-                                            bool DebugLogging = false);
+                                            bool DebugLogging,
+                                            ModuleSummaryIndex *ExportSummary);
 
   /// Build the default `AAManager` with the default alias analysis pipeline
   /// registered.
   AAManager buildDefaultAAPipeline();
 
-  /// \brief Parse a textual pass pipeline description into a \c
+  /// Parse a textual pass pipeline description into a \c
   /// ModulePassManager.
   ///
   /// The format of the textual pass pipeline description looks something like:
@@ -410,7 +413,7 @@
   /// returns false.
   bool parseAAPipeline(AAManager &AA, StringRef PipelineText);
 
-  /// \brief Register a callback for a default optimizer pipeline extension
+  /// Register a callback for a default optimizer pipeline extension
   /// point
   ///
   /// This extension point allows adding passes that perform peephole
@@ -421,7 +424,7 @@
     PeepholeEPCallbacks.push_back(C);
   }
 
-  /// \brief Register a callback for a default optimizer pipeline extension
+  /// Register a callback for a default optimizer pipeline extension
   /// point
   ///
   /// This extension point allows adding late loop canonicalization and
@@ -435,7 +438,7 @@
     LateLoopOptimizationsEPCallbacks.push_back(C);
   }
 
-  /// \brief Register a callback for a default optimizer pipeline extension
+  /// Register a callback for a default optimizer pipeline extension
   /// point
   ///
   /// This extension point allows adding loop passes to the end of the loop
@@ -445,7 +448,7 @@
     LoopOptimizerEndEPCallbacks.push_back(C);
   }
 
-  /// \brief Register a callback for a default optimizer pipeline extension
+  /// Register a callback for a default optimizer pipeline extension
   /// point
   ///
   /// This extension point allows adding optimization passes after most of the
@@ -455,7 +458,7 @@
     ScalarOptimizerLateEPCallbacks.push_back(C);
   }
 
-  /// \brief Register a callback for a default optimizer pipeline extension
+  /// Register a callback for a default optimizer pipeline extension
   /// point
   ///
   /// This extension point allows adding CallGraphSCC passes at the end of the
@@ -466,7 +469,7 @@
     CGSCCOptimizerLateEPCallbacks.push_back(C);
   }
 
-  /// \brief Register a callback for a default optimizer pipeline extension
+  /// Register a callback for a default optimizer pipeline extension
   /// point
   ///
   /// This extension point allows adding optimization passes before the
@@ -487,7 +490,7 @@
     PipelineStartEPCallbacks.push_back(C);
   }
 
-  /// \brief Register a callback for parsing an AliasAnalysis Name to populate
+  /// Register a callback for parsing an AliasAnalysis Name to populate
   /// the given AAManager \p AA
   void registerParseAACallback(
       const std::function<bool(StringRef Name, AAManager &AA)> &C) {
@@ -541,7 +544,7 @@
   }
   /// @}}
 
-  /// \brief Register a callback for a top-level pipeline entry.
+  /// Register a callback for a top-level pipeline entry.
   ///
   /// If the PassManager type is not given at the top level of the pipeline
   /// text, this Callback should be used to determine the appropriate stack of
diff --git a/linux-x64/clang/include/llvm/Passes/PassPlugin.h b/linux-x64/clang/include/llvm/Passes/PassPlugin.h
new file mode 100644
index 0000000..af8f11a
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Passes/PassPlugin.h
@@ -0,0 +1,114 @@
+//===- llvm/Passes/PassPlugin.h - Public Plugin API -----------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This defines the public entry point for new-PM pass plugins.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_PASSES_PASSPLUGIN_H
+#define LLVM_PASSES_PASSPLUGIN_H
+
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
+#include "llvm/Support/DynamicLibrary.h"
+#include "llvm/Support/Error.h"
+#include <cstdint>
+#include <string>
+
+namespace llvm {
+class PassBuilder;
+
+/// \macro LLVM_PLUGIN_API_VERSION
+/// Identifies the API version understood by this plugin.
+///
+/// When a plugin is loaded, the driver will check it's supported plugin version
+/// against that of the plugin. A mismatch is an error. The supported version
+/// will be incremented for ABI-breaking changes to the \c PassPluginLibraryInfo
+/// struct, i.e. when callbacks are added, removed, or reordered.
+#define LLVM_PLUGIN_API_VERSION 1
+
+extern "C" {
+/// Information about the plugin required to load its passes
+///
+/// This struct defines the core interface for pass plugins and is supposed to
+/// be filled out by plugin implementors. LLVM-side users of a plugin are
+/// expected to use the \c PassPlugin class below to interface with it.
+struct PassPluginLibraryInfo {
+  /// The API version understood by this plugin, usually \c
+  /// LLVM_PLUGIN_API_VERSION
+  uint32_t APIVersion;
+  /// A meaningful name of the plugin.
+  const char *PluginName;
+  /// The version of the plugin.
+  const char *PluginVersion;
+
+  /// The callback for registering plugin passes with a \c PassBuilder
+  /// instance
+  void (*RegisterPassBuilderCallbacks)(PassBuilder &);
+};
+}
+
+/// A loaded pass plugin.
+///
+/// An instance of this class wraps a loaded pass plugin and gives access to
+/// its interface defined by the \c PassPluginLibraryInfo it exposes.
+class PassPlugin {
+public:
+  /// Attempts to load a pass plugin from a given file.
+  ///
+  /// \returns Returns an error if either the library cannot be found or loaded,
+  /// there is no public entry point, or the plugin implements the wrong API
+  /// version.
+  static Expected<PassPlugin> Load(const std::string &Filename);
+
+  /// Get the filename of the loaded plugin.
+  StringRef getFilename() const { return Filename; }
+
+  /// Get the plugin name
+  StringRef getPluginName() const { return Info.PluginName; }
+
+  /// Get the plugin version
+  StringRef getPluginVersion() const { return Info.PluginVersion; }
+
+  /// Get the plugin API version
+  uint32_t getAPIVersion() const { return Info.APIVersion; }
+
+  /// Invoke the PassBuilder callback registration
+  void registerPassBuilderCallbacks(PassBuilder &PB) const {
+    Info.RegisterPassBuilderCallbacks(PB);
+  }
+
+private:
+  PassPlugin(const std::string &Filename, const sys::DynamicLibrary &Library)
+      : Filename(Filename), Library(Library), Info() {}
+
+  std::string Filename;
+  sys::DynamicLibrary Library;
+  PassPluginLibraryInfo Info;
+};
+}
+
+/// The public entry point for a pass plugin.
+///
+/// When a plugin is loaded by the driver, it will call this entry point to
+/// obtain information about this plugin and about how to register its passes.
+/// This function needs to be implemented by the plugin, see the example below:
+///
+/// ```
+/// extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK
+/// llvmGetPassPluginInfo() {
+///   return {
+///     LLVM_PLUGIN_API_VERSION, "MyPlugin", "v0.1", [](PassBuilder &PB) { ... }
+///   };
+/// }
+/// ```
+extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK
+llvmGetPassPluginInfo();
+
+#endif /* LLVM_PASSES_PASSPLUGIN_H */
diff --git a/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMapping.h b/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMapping.h
index 5a4098c..94f8174 100644
--- a/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMapping.h
+++ b/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMapping.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/Hashing.h"
 #include "llvm/ADT/None.h"
 #include "llvm/ADT/StringRef.h"
@@ -206,7 +207,7 @@
     /// A CodeRegion associates some code with a counter
     CodeRegion,
 
-    /// An ExpansionRegion represents a file expansion region that associates 
+    /// An ExpansionRegion represents a file expansion region that associates
     /// a source range with the expansion of a virtual source file, such as
     /// for a macro instantiation or #include file.
     ExpansionRegion,
@@ -506,10 +507,9 @@
 /// This is the main interface to get coverage information, using a profile to
 /// fill out execution counts.
 class CoverageMapping {
-  StringSet<> FunctionNames;
+  DenseMap<size_t, DenseSet<size_t>> RecordProvenance;
   std::vector<FunctionRecord> Functions;
   std::vector<std::pair<std::string, uint64_t>> FuncHashMismatches;
-  std::vector<std::pair<std::string, uint64_t>> FuncCounterMismatches;
 
   CoverageMapping() = default;
 
@@ -536,9 +536,7 @@
   ///
   /// This is a count of functions whose profile is out of date or otherwise
   /// can't be associated with any coverage information.
-  unsigned getMismatchedCount() const {
-    return FuncHashMismatches.size() + FuncCounterMismatches.size();
-  }
+  unsigned getMismatchedCount() const { return FuncHashMismatches.size(); }
 
   /// A hash mismatch occurs when a profile record for a symbol does not have
   /// the same hash as a coverage mapping record for the same symbol. This
@@ -548,14 +546,6 @@
     return FuncHashMismatches;
   }
 
-  /// A counter mismatch occurs when there is an error when evaluating the
-  /// counter expressions in a coverage mapping record. This returns a list of
-  /// counter mismatches, where each mismatch is a pair of the symbol name and
-  /// the number of valid evaluated counter expressions.
-  ArrayRef<std::pair<std::string, uint64_t>> getCounterMismatches() const {
-    return FuncCounterMismatches;
-  }
-
   /// Returns a lexicographically sorted, unique list of files that are
   /// covered.
   std::vector<StringRef> getUniqueSourceFiles() const;
diff --git a/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMappingReader.h b/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
index 633e515..c88c71a 100644
--- a/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
+++ b/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
@@ -32,7 +32,7 @@
 
 class CoverageMappingReader;
 
-/// \brief Coverage mapping information for a single function.
+/// Coverage mapping information for a single function.
 struct CoverageMappingRecord {
   StringRef FunctionName;
   uint64_t FunctionHash;
@@ -41,7 +41,7 @@
   ArrayRef<CounterMappingRegion> MappingRegions;
 };
 
-/// \brief A file format agnostic iterator over coverage mapping data.
+/// A file format agnostic iterator over coverage mapping data.
 class CoverageMappingIterator
     : public std::iterator<std::input_iterator_tag, CoverageMappingRecord> {
   CoverageMappingReader *Reader;
@@ -101,7 +101,7 @@
   CoverageMappingIterator end() { return CoverageMappingIterator(); }
 };
 
-/// \brief Base class for the raw coverage mapping and filenames data readers.
+/// Base class for the raw coverage mapping and filenames data readers.
 class RawCoverageReader {
 protected:
   StringRef Data;
@@ -114,7 +114,7 @@
   Error readString(StringRef &Result);
 };
 
-/// \brief Reader for the raw coverage filenames.
+/// Reader for the raw coverage filenames.
 class RawCoverageFilenamesReader : public RawCoverageReader {
   std::vector<StringRef> &Filenames;
 
@@ -128,7 +128,7 @@
   Error read();
 };
 
-/// \brief Checks if the given coverage mapping data is exported for
+/// Checks if the given coverage mapping data is exported for
 /// an unused function.
 class RawCoverageMappingDummyChecker : public RawCoverageReader {
 public:
@@ -138,7 +138,7 @@
   Expected<bool> isDummy();
 };
 
-/// \brief Reader for the raw coverage mapping data.
+/// Reader for the raw coverage mapping data.
 class RawCoverageMappingReader : public RawCoverageReader {
   ArrayRef<StringRef> TranslationUnitFilenames;
   std::vector<StringRef> &Filenames;
@@ -169,7 +169,7 @@
                              unsigned InferredFileID, size_t NumFileIDs);
 };
 
-/// \brief Reader for the coverage mapping data that is emitted by the
+/// Reader for the coverage mapping data that is emitted by the
 /// frontend and stored in an object file.
 class BinaryCoverageReader : public CoverageMappingReader {
 public:
diff --git a/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h b/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h
index b6f864a..86fb1bd 100644
--- a/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h
+++ b/linux-x64/clang/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h
@@ -25,7 +25,7 @@
 
 namespace coverage {
 
-/// \brief Writer of the filenames section for the instrumentation
+/// Writer of the filenames section for the instrumentation
 /// based code coverage.
 class CoverageFilenamesSectionWriter {
   ArrayRef<StringRef> Filenames;
@@ -34,11 +34,11 @@
   CoverageFilenamesSectionWriter(ArrayRef<StringRef> Filenames)
       : Filenames(Filenames) {}
 
-  /// \brief Write encoded filenames to the given output stream.
+  /// Write encoded filenames to the given output stream.
   void write(raw_ostream &OS);
 };
 
-/// \brief Writer for instrumentation based coverage mapping data.
+/// Writer for instrumentation based coverage mapping data.
 class CoverageMappingWriter {
   ArrayRef<unsigned> VirtualFileMapping;
   ArrayRef<CounterExpression> Expressions;
@@ -51,7 +51,7 @@
       : VirtualFileMapping(VirtualFileMapping), Expressions(Expressions),
         MappingRegions(MappingRegions) {}
 
-  /// \brief Write encoded coverage mapping data to the given output stream.
+  /// Write encoded coverage mapping data to the given output stream.
   void write(raw_ostream &OS);
 };
 
diff --git a/linux-x64/clang/include/llvm/ProfileData/GCOV.h b/linux-x64/clang/include/llvm/ProfileData/GCOV.h
index 497f80b..8500401 100644
--- a/linux-x64/clang/include/llvm/ProfileData/GCOV.h
+++ b/linux-x64/clang/include/llvm/ProfileData/GCOV.h
@@ -41,7 +41,7 @@
 
 enum GCOVVersion { V402, V404, V704 };
 
-/// \brief A struct for passing gcov options between functions.
+/// A struct for passing gcov options between functions.
 struct Options {
   Options(bool A, bool B, bool C, bool F, bool P, bool U, bool L, bool N)
       : AllBlocks(A), BranchInfo(B), BranchCount(C), FuncCoverage(F),
@@ -376,6 +376,7 @@
 };
 
 class FileInfo {
+protected:
   // It is unlikely--but possible--for multiple functions to be on the same
   // line.
   // Therefore this typedef allows LineData.Functions to store multiple
@@ -428,7 +429,7 @@
   void print(raw_ostream &OS, StringRef MainFilename, StringRef GCNOFile,
              StringRef GCDAFile);
 
-private:
+protected:
   std::string getCoveragePath(StringRef Filename, StringRef MainFilename);
   std::unique_ptr<raw_ostream> openCoveragePath(StringRef CoveragePath);
   void printFunctionSummary(raw_ostream &OS, const FunctionVector &Funcs) const;
diff --git a/linux-x64/clang/include/llvm/ProfileData/InstrProf.h b/linux-x64/clang/include/llvm/ProfileData/InstrProf.h
index 88ae0f0..206142b 100644
--- a/linux-x64/clang/include/llvm/ProfileData/InstrProf.h
+++ b/linux-x64/clang/include/llvm/ProfileData/InstrProf.h
@@ -544,9 +544,9 @@
 void InstrProfSymtab::finalizeSymtab() {
   if (Sorted)
     return;
-  std::sort(MD5NameMap.begin(), MD5NameMap.end(), less_first());
-  std::sort(MD5FuncMap.begin(), MD5FuncMap.end(), less_first());
-  std::sort(AddrToMD5Map.begin(), AddrToMD5Map.end(), less_first());
+  llvm::sort(MD5NameMap.begin(), MD5NameMap.end(), less_first());
+  llvm::sort(MD5FuncMap.begin(), MD5FuncMap.end(), less_first());
+  llvm::sort(AddrToMD5Map.begin(), AddrToMD5Map.end(), less_first());
   AddrToMD5Map.erase(std::unique(AddrToMD5Map.begin(), AddrToMD5Map.end()),
                      AddrToMD5Map.end());
   Sorted = true;
@@ -1021,7 +1021,7 @@
 // compiler-rt/lib/profile/InstrProfiling.h.
 // It should also match the synthesized type in
 // Transforms/Instrumentation/InstrProfiling.cpp:getOrCreateRegionCounters.
-template <class IntPtrT> struct LLVM_ALIGNAS(8) ProfileData {
+template <class IntPtrT> struct alignas(8) ProfileData {
   #define INSTR_PROF_DATA(Type, LLVMType, Name, Init) Type Name;
   #include "llvm/ProfileData/InstrProfData.inc"
 };
diff --git a/linux-x64/clang/include/llvm/ProfileData/InstrProfData.inc b/linux-x64/clang/include/llvm/ProfileData/InstrProfData.inc
index bac8cce..454620e 100644
--- a/linux-x64/clang/include/llvm/ProfileData/InstrProfData.inc
+++ b/linux-x64/clang/include/llvm/ProfileData/InstrProfData.inc
@@ -308,11 +308,11 @@
 
 #ifdef __cplusplus
   /*!
-   * \brief Return the number of value sites.
+   * Return the number of value sites.
    */
   uint32_t getNumValueSites() const { return NumValueSites; }
   /*!
-   * \brief Read data from this record and save it to Record.
+   * Read data from this record and save it to Record.
    */
   void deserializeTo(InstrProfRecord &Record,
                      InstrProfSymtab *SymTab);
@@ -458,7 +458,7 @@
 #endif
 
 /*!
- * \brief Return the \c ValueProfRecord header size including the
+ * Return the \c ValueProfRecord header size including the
  * padding bytes.
  */
 INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
@@ -471,7 +471,7 @@
 }
 
 /*!
- * \brief Return the total size of the value profile record including the
+ * Return the total size of the value profile record including the
  * header and the value data.
  */
 INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
@@ -482,7 +482,7 @@
 }
 
 /*!
- * \brief Return the pointer to the start of value data array.
+ * Return the pointer to the start of value data array.
  */
 INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
 InstrProfValueData *getValueProfRecordValueData(ValueProfRecord *This) {
@@ -491,7 +491,7 @@
 }
 
 /*!
- * \brief Return the total number of value data for \c This record.
+ * Return the total number of value data for \c This record.
  */
 INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
 uint32_t getValueProfRecordNumValueData(ValueProfRecord *This) {
@@ -503,7 +503,7 @@
 }
 
 /*!
- * \brief Use this method to advance to the next \c This \c ValueProfRecord.
+ * Use this method to advance to the next \c This \c ValueProfRecord.
  */
 INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
 ValueProfRecord *getValueProfRecordNext(ValueProfRecord *This) {
@@ -514,7 +514,7 @@
 }
 
 /*!
- * \brief Return the first \c ValueProfRecord instance.
+ * Return the first \c ValueProfRecord instance.
  */
 INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
 ValueProfRecord *getFirstValueProfRecord(ValueProfData *This) {
diff --git a/linux-x64/clang/include/llvm/ProfileData/ProfileCommon.h b/linux-x64/clang/include/llvm/ProfileData/ProfileCommon.h
index 51b065b..087588f 100644
--- a/linux-x64/clang/include/llvm/ProfileData/ProfileCommon.h
+++ b/linux-x64/clang/include/llvm/ProfileData/ProfileCommon.h
@@ -61,7 +61,7 @@
   void computeDetailedSummary();
 
 public:
-  /// \brief A vector of useful cutoff values for detailed summary.
+  /// A vector of useful cutoff values for detailed summary.
   static const ArrayRef<uint32_t> DefaultCutoffs;
 };
 
diff --git a/linux-x64/clang/include/llvm/ProfileData/SampleProf.h b/linux-x64/clang/include/llvm/ProfileData/SampleProf.h
index d79ef3b..0cd6dd2 100644
--- a/linux-x64/clang/include/llvm/ProfileData/SampleProf.h
+++ b/linux-x64/clang/include/llvm/ProfileData/SampleProf.h
@@ -78,11 +78,29 @@
 namespace llvm {
 namespace sampleprof {
 
-static inline uint64_t SPMagic() {
+enum SampleProfileFormat {
+  SPF_None = 0,
+  SPF_Text = 0x1,
+  SPF_Compact_Binary = 0x2,
+  SPF_GCC = 0x3,
+  SPF_Binary = 0xff
+};
+
+static inline uint64_t SPMagic(SampleProfileFormat Format = SPF_Binary) {
   return uint64_t('S') << (64 - 8) | uint64_t('P') << (64 - 16) |
          uint64_t('R') << (64 - 24) | uint64_t('O') << (64 - 32) |
          uint64_t('F') << (64 - 40) | uint64_t('4') << (64 - 48) |
-         uint64_t('2') << (64 - 56) | uint64_t(0xff);
+         uint64_t('2') << (64 - 56) | uint64_t(Format);
+}
+
+// Get the proper representation of a string in the input Format.
+static inline StringRef getRepInFormat(StringRef Name,
+                                       SampleProfileFormat Format,
+                                       std::string &GUIDBuf) {
+  if (Name.empty())
+    return Name;
+  GUIDBuf = std::to_string(Function::getGUID(Name));
+  return (Format == SPF_Compact_Binary) ? StringRef(GUIDBuf) : Name;
 }
 
 static inline uint64_t SPVersion() { return 103; }
@@ -359,7 +377,7 @@
   /// GUID to \p S. Also traverse the BodySamples to add hot CallTarget's GUID
   /// to \p S.
   void findInlinedFunctions(DenseSet<GlobalValue::GUID> &S, const Module *M,
-                            uint64_t Threshold) const {
+                            uint64_t Threshold, bool isCompact) const {
     if (TotalSamples <= Threshold)
       return;
     S.insert(Function::getGUID(Name));
@@ -370,11 +388,12 @@
         if (TS.getValue() > Threshold) {
           Function *Callee = M->getFunction(TS.getKey());
           if (!Callee || !Callee->getSubprogram())
-            S.insert(Function::getGUID(TS.getKey()));
+            S.insert(isCompact ? std::stol(TS.getKey().data())
+                               : Function::getGUID(TS.getKey()));
         }
     for (const auto &CS : CallsiteSamples)
       for (const auto &NameFS : CS.second)
-        NameFS.second.findInlinedFunctions(S, M, Threshold);
+        NameFS.second.findInlinedFunctions(S, M, Threshold, isCompact);
   }
 
   /// Set the name of the function.
@@ -387,7 +406,7 @@
   /// We assume that a single function will not exceed 65535 LOC.
   static unsigned getOffset(const DILocation *DIL);
 
-  /// \brief Get the FunctionSamples of the inline instance where DIL originates
+  /// Get the FunctionSamples of the inline instance where DIL originates
   /// from.
   ///
   /// The FunctionSamples of the instruction (Machine or IR) associated to
diff --git a/linux-x64/clang/include/llvm/ProfileData/SampleProfReader.h b/linux-x64/clang/include/llvm/ProfileData/SampleProfReader.h
index 0e9ab2d..0617b05 100644
--- a/linux-x64/clang/include/llvm/ProfileData/SampleProfReader.h
+++ b/linux-x64/clang/include/llvm/ProfileData/SampleProfReader.h
@@ -235,7 +235,7 @@
 
 namespace sampleprof {
 
-/// \brief Sample-based profile reader.
+/// Sample-based profile reader.
 ///
 /// Each profile contains sample counts for all the functions
 /// executed. Inside each function, statements are annotated with the
@@ -264,105 +264,113 @@
 /// compact and I/O efficient. They can both be used interchangeably.
 class SampleProfileReader {
 public:
-  SampleProfileReader(std::unique_ptr<MemoryBuffer> B, LLVMContext &C)
-      : Profiles(0), Ctx(C), Buffer(std::move(B)) {}
+  SampleProfileReader(std::unique_ptr<MemoryBuffer> B, LLVMContext &C,
+                      SampleProfileFormat Format = SPF_None)
+      : Profiles(0), Ctx(C), Buffer(std::move(B)), Format(Format) {}
 
   virtual ~SampleProfileReader() = default;
 
-  /// \brief Read and validate the file header.
+  /// Read and validate the file header.
   virtual std::error_code readHeader() = 0;
 
-  /// \brief Read sample profiles from the associated file.
+  /// Read sample profiles from the associated file.
   virtual std::error_code read() = 0;
 
-  /// \brief Print the profile for \p FName on stream \p OS.
+  /// Print the profile for \p FName on stream \p OS.
   void dumpFunctionProfile(StringRef FName, raw_ostream &OS = dbgs());
 
-  /// \brief Print all the profiles on stream \p OS.
+  /// Print all the profiles on stream \p OS.
   void dump(raw_ostream &OS = dbgs());
 
-  /// \brief Return the samples collected for function \p F.
+  /// Return the samples collected for function \p F.
   FunctionSamples *getSamplesFor(const Function &F) {
     // The function name may have been updated by adding suffix. In sample
     // profile, the function names are all stripped, so we need to strip
     // the function name suffix before matching with profile.
-    if (Profiles.count(F.getName().split('.').first))
-      return &Profiles[(F.getName().split('.').first)];
+    StringRef Fname = F.getName().split('.').first;
+    std::string FGUID;
+    Fname = getRepInFormat(Fname, getFormat(), FGUID);
+    if (Profiles.count(Fname))
+      return &Profiles[Fname];
     return nullptr;
   }
 
-  /// \brief Return all the profiles.
+  /// Return all the profiles.
   StringMap<FunctionSamples> &getProfiles() { return Profiles; }
 
-  /// \brief Report a parse error message.
+  /// Report a parse error message.
   void reportError(int64_t LineNumber, Twine Msg) const {
     Ctx.diagnose(DiagnosticInfoSampleProfile(Buffer->getBufferIdentifier(),
                                              LineNumber, Msg));
   }
 
-  /// \brief Create a sample profile reader appropriate to the file format.
+  /// Create a sample profile reader appropriate to the file format.
   static ErrorOr<std::unique_ptr<SampleProfileReader>>
   create(const Twine &Filename, LLVMContext &C);
 
-  /// \brief Create a sample profile reader from the supplied memory buffer.
+  /// Create a sample profile reader from the supplied memory buffer.
   static ErrorOr<std::unique_ptr<SampleProfileReader>>
   create(std::unique_ptr<MemoryBuffer> &B, LLVMContext &C);
 
-  /// \brief Return the profile summary.
+  /// Return the profile summary.
   ProfileSummary &getSummary() { return *(Summary.get()); }
 
+  /// \brief Return the profile format.
+  SampleProfileFormat getFormat() { return Format; }
+
 protected:
-  /// \brief Map every function to its associated profile.
+  /// Map every function to its associated profile.
   ///
   /// The profile of every function executed at runtime is collected
   /// in the structure FunctionSamples. This maps function objects
   /// to their corresponding profiles.
   StringMap<FunctionSamples> Profiles;
 
-  /// \brief LLVM context used to emit diagnostics.
+  /// LLVM context used to emit diagnostics.
   LLVMContext &Ctx;
 
-  /// \brief Memory buffer holding the profile file.
+  /// Memory buffer holding the profile file.
   std::unique_ptr<MemoryBuffer> Buffer;
 
-  /// \brief Profile summary information.
+  /// Profile summary information.
   std::unique_ptr<ProfileSummary> Summary;
 
-  /// \brief Compute summary for this profile.
+  /// Compute summary for this profile.
   void computeSummary();
+
+  /// \brief The format of sample.
+  SampleProfileFormat Format = SPF_None;
 };
 
 class SampleProfileReaderText : public SampleProfileReader {
 public:
   SampleProfileReaderText(std::unique_ptr<MemoryBuffer> B, LLVMContext &C)
-      : SampleProfileReader(std::move(B), C) {}
+      : SampleProfileReader(std::move(B), C, SPF_Text) {}
 
-  /// \brief Read and validate the file header.
+  /// Read and validate the file header.
   std::error_code readHeader() override { return sampleprof_error::success; }
 
-  /// \brief Read sample profiles from the associated file.
+  /// Read sample profiles from the associated file.
   std::error_code read() override;
 
-  /// \brief Return true if \p Buffer is in the format supported by this class.
+  /// Return true if \p Buffer is in the format supported by this class.
   static bool hasFormat(const MemoryBuffer &Buffer);
 };
 
 class SampleProfileReaderBinary : public SampleProfileReader {
 public:
-  SampleProfileReaderBinary(std::unique_ptr<MemoryBuffer> B, LLVMContext &C)
-      : SampleProfileReader(std::move(B), C) {}
+  SampleProfileReaderBinary(std::unique_ptr<MemoryBuffer> B, LLVMContext &C,
+                            SampleProfileFormat Format = SPF_None)
+      : SampleProfileReader(std::move(B), C, Format) {}
 
-  /// \brief Read and validate the file header.
+  /// Read and validate the file header.
   std::error_code readHeader() override;
 
-  /// \brief Read sample profiles from the associated file.
+  /// Read sample profiles from the associated file.
   std::error_code read() override;
 
-  /// \brief Return true if \p Buffer is in the format supported by this class.
-  static bool hasFormat(const MemoryBuffer &Buffer);
-
 protected:
-  /// \brief Read a numeric value of type T from the profile.
+  /// Read a numeric value of type T from the profile.
   ///
   /// If an error occurs during decoding, a diagnostic message is emitted and
   /// EC is set.
@@ -370,7 +378,7 @@
   /// \returns the read value.
   template <typename T> ErrorOr<T> readNumber();
 
-  /// \brief Read a string from the profile.
+  /// Read a string from the profile.
   ///
   /// If an error occurs during decoding, a diagnostic message is emitted and
   /// EC is set.
@@ -378,29 +386,68 @@
   /// \returns the read value.
   ErrorOr<StringRef> readString();
 
-  /// Read a string indirectly via the name table.
-  ErrorOr<StringRef> readStringFromTable();
+  /// Read the string index and check whether it overflows the table.
+  template <typename T> inline ErrorOr<uint32_t> readStringIndex(T &Table);
 
-  /// \brief Return true if we've reached the end of file.
+  /// Return true if we've reached the end of file.
   bool at_eof() const { return Data >= End; }
 
   /// Read the contents of the given profile instance.
   std::error_code readProfile(FunctionSamples &FProfile);
 
-  /// \brief Points to the current location in the buffer.
+  /// Points to the current location in the buffer.
   const uint8_t *Data = nullptr;
 
-  /// \brief Points to the end of the buffer.
+  /// Points to the end of the buffer.
   const uint8_t *End = nullptr;
 
-  /// Function name table.
-  std::vector<StringRef> NameTable;
-
 private:
   std::error_code readSummaryEntry(std::vector<ProfileSummaryEntry> &Entries);
+  virtual std::error_code verifySPMagic(uint64_t Magic) = 0;
 
-  /// \brief Read profile summary.
+  /// Read profile summary.
   std::error_code readSummary();
+
+  /// Read the whole name table.
+  virtual std::error_code readNameTable() = 0;
+
+  /// Read a string indirectly via the name table.
+  virtual ErrorOr<StringRef> readStringFromTable() = 0;
+};
+
+class SampleProfileReaderRawBinary : public SampleProfileReaderBinary {
+private:
+  /// Function name table.
+  std::vector<StringRef> NameTable;
+  virtual std::error_code verifySPMagic(uint64_t Magic) override;
+  virtual std::error_code readNameTable() override;
+  /// Read a string indirectly via the name table.
+  virtual ErrorOr<StringRef> readStringFromTable() override;
+
+public:
+  SampleProfileReaderRawBinary(std::unique_ptr<MemoryBuffer> B, LLVMContext &C)
+      : SampleProfileReaderBinary(std::move(B), C, SPF_Binary) {}
+
+  /// \brief Return true if \p Buffer is in the format supported by this class.
+  static bool hasFormat(const MemoryBuffer &Buffer);
+};
+
+class SampleProfileReaderCompactBinary : public SampleProfileReaderBinary {
+private:
+  /// Function name table.
+  std::vector<std::string> NameTable;
+  virtual std::error_code verifySPMagic(uint64_t Magic) override;
+  virtual std::error_code readNameTable() override;
+  /// Read a string indirectly via the name table.
+  virtual ErrorOr<StringRef> readStringFromTable() override;
+
+public:
+  SampleProfileReaderCompactBinary(std::unique_ptr<MemoryBuffer> B,
+                                   LLVMContext &C)
+      : SampleProfileReaderBinary(std::move(B), C, SPF_Compact_Binary) {}
+
+  /// \brief Return true if \p Buffer is in the format supported by this class.
+  static bool hasFormat(const MemoryBuffer &Buffer);
 };
 
 using InlineCallStack = SmallVector<FunctionSamples *, 10>;
@@ -421,15 +468,16 @@
 class SampleProfileReaderGCC : public SampleProfileReader {
 public:
   SampleProfileReaderGCC(std::unique_ptr<MemoryBuffer> B, LLVMContext &C)
-      : SampleProfileReader(std::move(B), C), GcovBuffer(Buffer.get()) {}
+      : SampleProfileReader(std::move(B), C, SPF_GCC),
+        GcovBuffer(Buffer.get()) {}
 
-  /// \brief Read and validate the file header.
+  /// Read and validate the file header.
   std::error_code readHeader() override;
 
-  /// \brief Read sample profiles from the associated file.
+  /// Read sample profiles from the associated file.
   std::error_code read() override;
 
-  /// \brief Return true if \p Buffer is in the format supported by this class.
+  /// Return true if \p Buffer is in the format supported by this class.
   static bool hasFormat(const MemoryBuffer &Buffer);
 
 protected:
@@ -441,7 +489,7 @@
   template <typename T> ErrorOr<T> readNumber();
   ErrorOr<StringRef> readString();
 
-  /// \brief Read the section tag and check that it's the same as \p Expected.
+  /// Read the section tag and check that it's the same as \p Expected.
   std::error_code readSectionTag(uint32_t Expected);
 
   /// GCOV buffer containing the profile.
diff --git a/linux-x64/clang/include/llvm/ProfileData/SampleProfWriter.h b/linux-x64/clang/include/llvm/ProfileData/SampleProfWriter.h
index 86af103..74dc839 100644
--- a/linux-x64/clang/include/llvm/ProfileData/SampleProfWriter.h
+++ b/linux-x64/clang/include/llvm/ProfileData/SampleProfWriter.h
@@ -23,14 +23,13 @@
 #include <algorithm>
 #include <cstdint>
 #include <memory>
+#include <set>
 #include <system_error>
 
 namespace llvm {
 namespace sampleprof {
 
-enum SampleProfileFormat { SPF_None = 0, SPF_Text, SPF_Binary, SPF_GCC };
-
-/// \brief Sample-based profile writer. Base class.
+/// Sample-based profile writer. Base class.
 class SampleProfileWriter {
 public:
   virtual ~SampleProfileWriter() = default;
@@ -62,21 +61,21 @@
   SampleProfileWriter(std::unique_ptr<raw_ostream> &OS)
       : OutputStream(std::move(OS)) {}
 
-  /// \brief Write a file header for the profile file.
+  /// Write a file header for the profile file.
   virtual std::error_code
   writeHeader(const StringMap<FunctionSamples> &ProfileMap) = 0;
 
-  /// \brief Output stream where to emit the profile to.
+  /// Output stream where to emit the profile to.
   std::unique_ptr<raw_ostream> OutputStream;
 
-  /// \brief Profile summary.
+  /// Profile summary.
   std::unique_ptr<ProfileSummary> Summary;
 
-  /// \brief Compute summary for this profile.
+  /// Compute summary for this profile.
   void computeSummary(const StringMap<FunctionSamples> &ProfileMap);
 };
 
-/// \brief Sample-based profile writer (text format).
+/// Sample-based profile writer (text format).
 class SampleProfileWriterText : public SampleProfileWriter {
 public:
   std::error_code write(const FunctionSamples &S) override;
@@ -101,32 +100,49 @@
                               SampleProfileFormat Format);
 };
 
-/// \brief Sample-based profile writer (binary format).
+/// Sample-based profile writer (binary format).
 class SampleProfileWriterBinary : public SampleProfileWriter {
 public:
   std::error_code write(const FunctionSamples &S) override;
-
-protected:
   SampleProfileWriterBinary(std::unique_ptr<raw_ostream> &OS)
       : SampleProfileWriter(OS) {}
 
-  std::error_code
-  writeHeader(const StringMap<FunctionSamples> &ProfileMap) override;
+protected:
+  virtual std::error_code writeNameTable() = 0;
+  virtual std::error_code writeMagicIdent() = 0;
+  std::error_code writeHeader(const StringMap<FunctionSamples> &ProfileMap) override;
   std::error_code writeSummary();
   std::error_code writeNameIdx(StringRef FName);
   std::error_code writeBody(const FunctionSamples &S);
+  inline void stablizeNameTable(std::set<StringRef> &V);
+
+  MapVector<StringRef, uint32_t> NameTable;
 
 private:
   void addName(StringRef FName);
   void addNames(const FunctionSamples &S);
 
-  MapVector<StringRef, uint32_t> NameTable;
-
   friend ErrorOr<std::unique_ptr<SampleProfileWriter>>
   SampleProfileWriter::create(std::unique_ptr<raw_ostream> &OS,
                               SampleProfileFormat Format);
 };
 
+class SampleProfileWriterRawBinary : public SampleProfileWriterBinary {
+  using SampleProfileWriterBinary::SampleProfileWriterBinary;
+
+protected:
+  virtual std::error_code writeNameTable() override;
+  virtual std::error_code writeMagicIdent() override;
+};
+
+class SampleProfileWriterCompactBinary : public SampleProfileWriterBinary {
+  using SampleProfileWriterBinary::SampleProfileWriterBinary;
+
+protected:
+  virtual std::error_code writeNameTable() override;
+  virtual std::error_code writeMagicIdent() override;
+};
+
 } // end namespace sampleprof
 } // end namespace llvm
 
diff --git a/linux-x64/clang/include/llvm/Support/AArch64TargetParser.def b/linux-x64/clang/include/llvm/Support/AArch64TargetParser.def
index 30c7924..6772e5f 100644
--- a/linux-x64/clang/include/llvm/Support/AArch64TargetParser.def
+++ b/linux-x64/clang/include/llvm/Support/AArch64TargetParser.def
@@ -35,6 +35,11 @@
              (AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP |
               AArch64::AEK_SIMD | AArch64::AEK_RAS | AArch64::AEK_LSE |
               AArch64::AEK_RDM | AArch64::AEK_RCPC))
+AARCH64_ARCH("armv8.4-a", ARMV8_4A, "8.4-A", "v8.4a",
+             ARMBuildAttrs::CPUArch::v8_A, FK_CRYPTO_NEON_FP_ARMV8,
+             (AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP |
+              AArch64::AEK_SIMD | AArch64::AEK_RAS | AArch64::AEK_LSE |
+              AArch64::AEK_RDM | AArch64::AEK_RCPC | AArch64::AEK_DOTPROD))
 #undef AARCH64_ARCH
 
 #ifndef AARCH64_ARCH_EXT_NAME
@@ -47,6 +52,10 @@
 AARCH64_ARCH_EXT_NAME("lse",      AArch64::AEK_LSE,      "+lse",   "-lse")
 AARCH64_ARCH_EXT_NAME("rdm",      AArch64::AEK_RDM,      "+rdm",   "-rdm")
 AARCH64_ARCH_EXT_NAME("crypto",   AArch64::AEK_CRYPTO,   "+crypto","-crypto")
+AARCH64_ARCH_EXT_NAME("sm4",      AArch64::AEK_SM4,      "+sm4",   "-sm4")
+AARCH64_ARCH_EXT_NAME("sha3",     AArch64::AEK_SHA3,     "+sha3",  "-sha3")
+AARCH64_ARCH_EXT_NAME("sha2",     AArch64::AEK_SHA2,     "+sha2",  "-sha2")
+AARCH64_ARCH_EXT_NAME("aes",      AArch64::AEK_AES,      "+aes",   "-aes")
 AARCH64_ARCH_EXT_NAME("dotprod",  AArch64::AEK_DOTPROD,  "+dotprod","-dotprod")
 AARCH64_ARCH_EXT_NAME("fp",       AArch64::AEK_FP,       "+fp-armv8",  "-fp-armv8")
 AARCH64_ARCH_EXT_NAME("simd",     AArch64::AEK_SIMD,     "+neon",  "-neon")
@@ -82,6 +91,8 @@
                 (AArch64::AEK_CRC))
 AARCH64_CPU_NAME("exynos-m3", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
                 (AArch64::AEK_CRC))
+AARCH64_CPU_NAME("exynos-m4", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
+                (AArch64::AEK_CRC))
 AARCH64_CPU_NAME("falkor", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
                 (AArch64::AEK_CRC | AArch64::AEK_RDM))
 AARCH64_CPU_NAME("saphira", ARMV8_3A, FK_CRYPTO_NEON_FP_ARMV8, false,
diff --git a/linux-x64/clang/include/llvm/Support/AMDGPUKernelDescriptor.h b/linux-x64/clang/include/llvm/Support/AMDGPUKernelDescriptor.h
deleted file mode 100644
index ce2c0c1..0000000
--- a/linux-x64/clang/include/llvm/Support/AMDGPUKernelDescriptor.h
+++ /dev/null
@@ -1,139 +0,0 @@
-//===--- AMDGPUKernelDescriptor.h -------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-/// \file
-/// \brief AMDGPU kernel descriptor definitions. For more information, visit
-/// https://llvm.org/docs/AMDGPUUsage.html#kernel-descriptor-for-gfx6-gfx9
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_AMDGPUKERNELDESCRIPTOR_H
-#define LLVM_SUPPORT_AMDGPUKERNELDESCRIPTOR_H
-
-#include <cstdint>
-
-// Creates enumeration entries used for packing bits into integers. Enumeration
-// entries include bit shift amount, bit width, and bit mask.
-#define AMDGPU_BITS_ENUM_ENTRY(name, shift, width) \
-  name ## _SHIFT = (shift),                        \
-  name ## _WIDTH = (width),                        \
-  name = (((1 << (width)) - 1) << (shift))         \
-
-// Gets bits for specified bit mask from specified source.
-#define AMDGPU_BITS_GET(src, mask) \
-  ((src & mask) >> mask ## _SHIFT) \
-
-// Sets bits for specified bit mask in specified destination.
-#define AMDGPU_BITS_SET(dst, mask, val)     \
-  dst &= (~(1 << mask ## _SHIFT) & ~mask);  \
-  dst |= (((val) << mask ## _SHIFT) & mask) \
-
-namespace llvm {
-namespace AMDGPU {
-namespace HSAKD {
-
-/// \brief Floating point rounding modes.
-enum : uint8_t {
-  AMDGPU_FLOAT_ROUND_MODE_NEAR_EVEN      = 0,
-  AMDGPU_FLOAT_ROUND_MODE_PLUS_INFINITY  = 1,
-  AMDGPU_FLOAT_ROUND_MODE_MINUS_INFINITY = 2,
-  AMDGPU_FLOAT_ROUND_MODE_ZERO           = 3,
-};
-
-/// \brief Floating point denorm modes.
-enum : uint8_t {
-  AMDGPU_FLOAT_DENORM_MODE_FLUSH_SRC_DST = 0,
-  AMDGPU_FLOAT_DENORM_MODE_FLUSH_DST     = 1,
-  AMDGPU_FLOAT_DENORM_MODE_FLUSH_SRC     = 2,
-  AMDGPU_FLOAT_DENORM_MODE_FLUSH_NONE    = 3,
-};
-
-/// \brief System VGPR workitem IDs.
-enum : uint8_t {
-  AMDGPU_SYSTEM_VGPR_WORKITEM_ID_X         = 0,
-  AMDGPU_SYSTEM_VGPR_WORKITEM_ID_X_Y       = 1,
-  AMDGPU_SYSTEM_VGPR_WORKITEM_ID_X_Y_Z     = 2,
-  AMDGPU_SYSTEM_VGPR_WORKITEM_ID_UNDEFINED = 3,
-};
-
-/// \brief Compute program resource register one layout.
-enum ComputePgmRsrc1 {
-  AMDGPU_BITS_ENUM_ENTRY(GRANULATED_WORKITEM_VGPR_COUNT, 0, 6),
-  AMDGPU_BITS_ENUM_ENTRY(GRANULATED_WAVEFRONT_SGPR_COUNT, 6, 4),
-  AMDGPU_BITS_ENUM_ENTRY(PRIORITY, 10, 2),
-  AMDGPU_BITS_ENUM_ENTRY(FLOAT_ROUND_MODE_32, 12, 2),
-  AMDGPU_BITS_ENUM_ENTRY(FLOAT_ROUND_MODE_16_64, 14, 2),
-  AMDGPU_BITS_ENUM_ENTRY(FLOAT_DENORM_MODE_32, 16, 2),
-  AMDGPU_BITS_ENUM_ENTRY(FLOAT_DENORM_MODE_16_64, 18, 2),
-  AMDGPU_BITS_ENUM_ENTRY(PRIV, 20, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_DX10_CLAMP, 21, 1),
-  AMDGPU_BITS_ENUM_ENTRY(DEBUG_MODE, 22, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_IEEE_MODE, 23, 1),
-  AMDGPU_BITS_ENUM_ENTRY(BULKY, 24, 1),
-  AMDGPU_BITS_ENUM_ENTRY(CDBG_USER, 25, 1),
-  AMDGPU_BITS_ENUM_ENTRY(FP16_OVFL, 26, 1),
-  AMDGPU_BITS_ENUM_ENTRY(RESERVED0, 27, 5),
-};
-
-/// \brief Compute program resource register two layout.
-enum ComputePgmRsrc2 {
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_SGPR_PRIVATE_SEGMENT_WAVE_OFFSET, 0, 1),
-  AMDGPU_BITS_ENUM_ENTRY(USER_SGPR_COUNT, 1, 5),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_TRAP_HANDLER, 6, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_SGPR_WORKGROUP_ID_X, 7, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_SGPR_WORKGROUP_ID_Y, 8, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_SGPR_WORKGROUP_ID_Z, 9, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_SGPR_WORKGROUP_INFO, 10, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_VGPR_WORKITEM_ID, 11, 2),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_EXCEPTION_ADDRESS_WATCH, 13, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_EXCEPTION_MEMORY, 14, 1),
-  AMDGPU_BITS_ENUM_ENTRY(GRANULATED_LDS_SIZE, 15, 9),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_EXCEPTION_IEEE_754_FP_INVALID_OPERATION, 24, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_EXCEPTION_FP_DENORMAL_SOURCE, 25, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_EXCEPTION_IEEE_754_FP_DIVISION_BY_ZERO, 26, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_EXCEPTION_IEEE_754_FP_OVERFLOW, 27, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_EXCEPTION_IEEE_754_FP_UNDERFLOW, 28, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_EXCEPTION_IEEE_754_FP_INEXACT, 29, 1),
-  AMDGPU_BITS_ENUM_ENTRY(ENABLE_EXCEPTION_INT_DIVIDE_BY_ZERO, 30, 1),
-  AMDGPU_BITS_ENUM_ENTRY(RESERVED1, 31, 1),
-};
-
-/// \brief Kernel descriptor layout. This layout should be kept backwards
-/// compatible as it is consumed by the command processor.
-struct KernelDescriptor final {
-  uint32_t GroupSegmentFixedSize;
-  uint32_t PrivateSegmentFixedSize;
-  uint32_t MaxFlatWorkGroupSize;
-  uint64_t IsDynamicCallStack : 1;
-  uint64_t IsXNACKEnabled : 1;
-  uint64_t Reserved0 : 30;
-  int64_t KernelCodeEntryByteOffset;
-  uint64_t Reserved1[3];
-  uint32_t ComputePgmRsrc1;
-  uint32_t ComputePgmRsrc2;
-  uint64_t EnableSGPRPrivateSegmentBuffer : 1;
-  uint64_t EnableSGPRDispatchPtr : 1;
-  uint64_t EnableSGPRQueuePtr : 1;
-  uint64_t EnableSGPRKernargSegmentPtr : 1;
-  uint64_t EnableSGPRDispatchID : 1;
-  uint64_t EnableSGPRFlatScratchInit : 1;
-  uint64_t EnableSGPRPrivateSegmentSize : 1;
-  uint64_t EnableSGPRGridWorkgroupCountX : 1;
-  uint64_t EnableSGPRGridWorkgroupCountY : 1;
-  uint64_t EnableSGPRGridWorkgroupCountZ : 1;
-  uint64_t Reserved2 : 54;
-
-  KernelDescriptor() = default;
-};
-
-} // end namespace HSAKD
-} // end namespace AMDGPU
-} // end namespace llvm
-
-#endif // LLVM_SUPPORT_AMDGPUKERNELDESCRIPTOR_H
diff --git a/linux-x64/clang/include/llvm/Support/AMDGPUMetadata.h b/linux-x64/clang/include/llvm/Support/AMDGPUMetadata.h
index 00039a7..667fb3f 100644
--- a/linux-x64/clang/include/llvm/Support/AMDGPUMetadata.h
+++ b/linux-x64/clang/include/llvm/Support/AMDGPUMetadata.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 //
 /// \file
-/// \brief AMDGPU metadata definitions and in-memory representations.
+/// AMDGPU metadata definitions and in-memory representations.
 ///
 //
 //===----------------------------------------------------------------------===//
@@ -29,17 +29,17 @@
 //===----------------------------------------------------------------------===//
 namespace HSAMD {
 
-/// \brief HSA metadata major version.
+/// HSA metadata major version.
 constexpr uint32_t VersionMajor = 1;
-/// \brief HSA metadata minor version.
+/// HSA metadata minor version.
 constexpr uint32_t VersionMinor = 0;
 
-/// \brief HSA metadata beginning assembler directive.
+/// HSA metadata beginning assembler directive.
 constexpr char AssemblerDirectiveBegin[] = ".amd_amdgpu_hsa_metadata";
-/// \brief HSA metadata ending assembler directive.
+/// HSA metadata ending assembler directive.
 constexpr char AssemblerDirectiveEnd[] = ".end_amd_amdgpu_hsa_metadata";
 
-/// \brief Access qualifiers.
+/// Access qualifiers.
 enum class AccessQualifier : uint8_t {
   Default   = 0,
   ReadOnly  = 1,
@@ -48,7 +48,7 @@
   Unknown   = 0xff
 };
 
-/// \brief Address space qualifiers.
+/// Address space qualifiers.
 enum class AddressSpaceQualifier : uint8_t {
   Private  = 0,
   Global   = 1,
@@ -59,7 +59,7 @@
   Unknown  = 0xff
 };
 
-/// \brief Value kinds.
+/// Value kinds.
 enum class ValueKind : uint8_t {
   ByValue                = 0,
   GlobalBuffer           = 1,
@@ -78,7 +78,7 @@
   Unknown                = 0xff
 };
 
-/// \brief Value types.
+/// Value types.
 enum class ValueType : uint8_t {
   Struct  = 0,
   I8      = 1,
@@ -106,29 +106,29 @@
 namespace Attrs {
 
 namespace Key {
-/// \brief Key for Kernel::Attr::Metadata::mReqdWorkGroupSize.
+/// Key for Kernel::Attr::Metadata::mReqdWorkGroupSize.
 constexpr char ReqdWorkGroupSize[] = "ReqdWorkGroupSize";
-/// \brief Key for Kernel::Attr::Metadata::mWorkGroupSizeHint.
+/// Key for Kernel::Attr::Metadata::mWorkGroupSizeHint.
 constexpr char WorkGroupSizeHint[] = "WorkGroupSizeHint";
-/// \brief Key for Kernel::Attr::Metadata::mVecTypeHint.
+/// Key for Kernel::Attr::Metadata::mVecTypeHint.
 constexpr char VecTypeHint[] = "VecTypeHint";
-/// \brief Key for Kernel::Attr::Metadata::mRuntimeHandle.
+/// Key for Kernel::Attr::Metadata::mRuntimeHandle.
 constexpr char RuntimeHandle[] = "RuntimeHandle";
 } // end namespace Key
 
-/// \brief In-memory representation of kernel attributes metadata.
+/// In-memory representation of kernel attributes metadata.
 struct Metadata final {
-  /// \brief 'reqd_work_group_size' attribute. Optional.
+  /// 'reqd_work_group_size' attribute. Optional.
   std::vector<uint32_t> mReqdWorkGroupSize = std::vector<uint32_t>();
-  /// \brief 'work_group_size_hint' attribute. Optional.
+  /// 'work_group_size_hint' attribute. Optional.
   std::vector<uint32_t> mWorkGroupSizeHint = std::vector<uint32_t>();
-  /// \brief 'vec_type_hint' attribute. Optional.
+  /// 'vec_type_hint' attribute. Optional.
   std::string mVecTypeHint = std::string();
-  /// \brief External symbol created by runtime to store the kernel address
+  /// External symbol created by runtime to store the kernel address
   /// for enqueued blocks.
   std::string mRuntimeHandle = std::string();
 
-  /// \brief Default constructor.
+  /// Default constructor.
   Metadata() = default;
 
   /// \returns True if kernel attributes metadata is empty, false otherwise.
@@ -151,68 +151,68 @@
 namespace Arg {
 
 namespace Key {
-/// \brief Key for Kernel::Arg::Metadata::mName.
+/// Key for Kernel::Arg::Metadata::mName.
 constexpr char Name[] = "Name";
-/// \brief Key for Kernel::Arg::Metadata::mTypeName.
+/// Key for Kernel::Arg::Metadata::mTypeName.
 constexpr char TypeName[] = "TypeName";
-/// \brief Key for Kernel::Arg::Metadata::mSize.
+/// Key for Kernel::Arg::Metadata::mSize.
 constexpr char Size[] = "Size";
-/// \brief Key for Kernel::Arg::Metadata::mAlign.
+/// Key for Kernel::Arg::Metadata::mAlign.
 constexpr char Align[] = "Align";
-/// \brief Key for Kernel::Arg::Metadata::mValueKind.
+/// Key for Kernel::Arg::Metadata::mValueKind.
 constexpr char ValueKind[] = "ValueKind";
-/// \brief Key for Kernel::Arg::Metadata::mValueType.
+/// Key for Kernel::Arg::Metadata::mValueType.
 constexpr char ValueType[] = "ValueType";
-/// \brief Key for Kernel::Arg::Metadata::mPointeeAlign.
+/// Key for Kernel::Arg::Metadata::mPointeeAlign.
 constexpr char PointeeAlign[] = "PointeeAlign";
-/// \brief Key for Kernel::Arg::Metadata::mAddrSpaceQual.
+/// Key for Kernel::Arg::Metadata::mAddrSpaceQual.
 constexpr char AddrSpaceQual[] = "AddrSpaceQual";
-/// \brief Key for Kernel::Arg::Metadata::mAccQual.
+/// Key for Kernel::Arg::Metadata::mAccQual.
 constexpr char AccQual[] = "AccQual";
-/// \brief Key for Kernel::Arg::Metadata::mActualAccQual.
+/// Key for Kernel::Arg::Metadata::mActualAccQual.
 constexpr char ActualAccQual[] = "ActualAccQual";
-/// \brief Key for Kernel::Arg::Metadata::mIsConst.
+/// Key for Kernel::Arg::Metadata::mIsConst.
 constexpr char IsConst[] = "IsConst";
-/// \brief Key for Kernel::Arg::Metadata::mIsRestrict.
+/// Key for Kernel::Arg::Metadata::mIsRestrict.
 constexpr char IsRestrict[] = "IsRestrict";
-/// \brief Key for Kernel::Arg::Metadata::mIsVolatile.
+/// Key for Kernel::Arg::Metadata::mIsVolatile.
 constexpr char IsVolatile[] = "IsVolatile";
-/// \brief Key for Kernel::Arg::Metadata::mIsPipe.
+/// Key for Kernel::Arg::Metadata::mIsPipe.
 constexpr char IsPipe[] = "IsPipe";
 } // end namespace Key
 
-/// \brief In-memory representation of kernel argument metadata.
+/// In-memory representation of kernel argument metadata.
 struct Metadata final {
-  /// \brief Name. Optional.
+  /// Name. Optional.
   std::string mName = std::string();
-  /// \brief Type name. Optional.
+  /// Type name. Optional.
   std::string mTypeName = std::string();
-  /// \brief Size in bytes. Required.
+  /// Size in bytes. Required.
   uint32_t mSize = 0;
-  /// \brief Alignment in bytes. Required.
+  /// Alignment in bytes. Required.
   uint32_t mAlign = 0;
-  /// \brief Value kind. Required.
+  /// Value kind. Required.
   ValueKind mValueKind = ValueKind::Unknown;
-  /// \brief Value type. Required.
+  /// Value type. Required.
   ValueType mValueType = ValueType::Unknown;
-  /// \brief Pointee alignment in bytes. Optional.
+  /// Pointee alignment in bytes. Optional.
   uint32_t mPointeeAlign = 0;
-  /// \brief Address space qualifier. Optional.
+  /// Address space qualifier. Optional.
   AddressSpaceQualifier mAddrSpaceQual = AddressSpaceQualifier::Unknown;
-  /// \brief Access qualifier. Optional.
+  /// Access qualifier. Optional.
   AccessQualifier mAccQual = AccessQualifier::Unknown;
-  /// \brief Actual access qualifier. Optional.
+  /// Actual access qualifier. Optional.
   AccessQualifier mActualAccQual = AccessQualifier::Unknown;
-  /// \brief True if 'const' qualifier is specified. Optional.
+  /// True if 'const' qualifier is specified. Optional.
   bool mIsConst = false;
-  /// \brief True if 'restrict' qualifier is specified. Optional.
+  /// True if 'restrict' qualifier is specified. Optional.
   bool mIsRestrict = false;
-  /// \brief True if 'volatile' qualifier is specified. Optional.
+  /// True if 'volatile' qualifier is specified. Optional.
   bool mIsVolatile = false;
-  /// \brief True if 'pipe' qualifier is specified. Optional.
+  /// True if 'pipe' qualifier is specified. Optional.
   bool mIsPipe = false;
 
-  /// \brief Default constructor.
+  /// Default constructor.
   Metadata() = default;
 };
 
@@ -224,67 +224,67 @@
 namespace CodeProps {
 
 namespace Key {
-/// \brief Key for Kernel::CodeProps::Metadata::mKernargSegmentSize.
+/// Key for Kernel::CodeProps::Metadata::mKernargSegmentSize.
 constexpr char KernargSegmentSize[] = "KernargSegmentSize";
-/// \brief Key for Kernel::CodeProps::Metadata::mGroupSegmentFixedSize.
+/// Key for Kernel::CodeProps::Metadata::mGroupSegmentFixedSize.
 constexpr char GroupSegmentFixedSize[] = "GroupSegmentFixedSize";
-/// \brief Key for Kernel::CodeProps::Metadata::mPrivateSegmentFixedSize.
+/// Key for Kernel::CodeProps::Metadata::mPrivateSegmentFixedSize.
 constexpr char PrivateSegmentFixedSize[] = "PrivateSegmentFixedSize";
-/// \brief Key for Kernel::CodeProps::Metadata::mKernargSegmentAlign.
+/// Key for Kernel::CodeProps::Metadata::mKernargSegmentAlign.
 constexpr char KernargSegmentAlign[] = "KernargSegmentAlign";
-/// \brief Key for Kernel::CodeProps::Metadata::mWavefrontSize.
+/// Key for Kernel::CodeProps::Metadata::mWavefrontSize.
 constexpr char WavefrontSize[] = "WavefrontSize";
-/// \brief Key for Kernel::CodeProps::Metadata::mNumSGPRs.
+/// Key for Kernel::CodeProps::Metadata::mNumSGPRs.
 constexpr char NumSGPRs[] = "NumSGPRs";
-/// \brief Key for Kernel::CodeProps::Metadata::mNumVGPRs.
+/// Key for Kernel::CodeProps::Metadata::mNumVGPRs.
 constexpr char NumVGPRs[] = "NumVGPRs";
-/// \brief Key for Kernel::CodeProps::Metadata::mMaxFlatWorkGroupSize.
+/// Key for Kernel::CodeProps::Metadata::mMaxFlatWorkGroupSize.
 constexpr char MaxFlatWorkGroupSize[] = "MaxFlatWorkGroupSize";
-/// \brief Key for Kernel::CodeProps::Metadata::mIsDynamicCallStack.
+/// Key for Kernel::CodeProps::Metadata::mIsDynamicCallStack.
 constexpr char IsDynamicCallStack[] = "IsDynamicCallStack";
-/// \brief Key for Kernel::CodeProps::Metadata::mIsXNACKEnabled.
+/// Key for Kernel::CodeProps::Metadata::mIsXNACKEnabled.
 constexpr char IsXNACKEnabled[] = "IsXNACKEnabled";
-/// \brief Key for Kernel::CodeProps::Metadata::mNumSpilledSGPRs.
+/// Key for Kernel::CodeProps::Metadata::mNumSpilledSGPRs.
 constexpr char NumSpilledSGPRs[] = "NumSpilledSGPRs";
-/// \brief Key for Kernel::CodeProps::Metadata::mNumSpilledVGPRs.
+/// Key for Kernel::CodeProps::Metadata::mNumSpilledVGPRs.
 constexpr char NumSpilledVGPRs[] = "NumSpilledVGPRs";
 } // end namespace Key
 
-/// \brief In-memory representation of kernel code properties metadata.
+/// In-memory representation of kernel code properties metadata.
 struct Metadata final {
-  /// \brief Size in bytes of the kernarg segment memory. Kernarg segment memory
+  /// Size in bytes of the kernarg segment memory. Kernarg segment memory
   /// holds the values of the arguments to the kernel. Required.
   uint64_t mKernargSegmentSize = 0;
-  /// \brief Size in bytes of the group segment memory required by a workgroup.
+  /// Size in bytes of the group segment memory required by a workgroup.
   /// This value does not include any dynamically allocated group segment memory
   /// that may be added when the kernel is dispatched. Required.
   uint32_t mGroupSegmentFixedSize = 0;
-  /// \brief Size in bytes of the private segment memory required by a workitem.
+  /// Size in bytes of the private segment memory required by a workitem.
   /// Private segment memory includes arg, spill and private segments. Required.
   uint32_t mPrivateSegmentFixedSize = 0;
-  /// \brief Maximum byte alignment of variables used by the kernel in the
+  /// Maximum byte alignment of variables used by the kernel in the
   /// kernarg memory segment. Required.
   uint32_t mKernargSegmentAlign = 0;
-  /// \brief Wavefront size. Required.
+  /// Wavefront size. Required.
   uint32_t mWavefrontSize = 0;
-  /// \brief Total number of SGPRs used by a wavefront. Optional.
+  /// Total number of SGPRs used by a wavefront. Optional.
   uint16_t mNumSGPRs = 0;
-  /// \brief Total number of VGPRs used by a workitem. Optional.
+  /// Total number of VGPRs used by a workitem. Optional.
   uint16_t mNumVGPRs = 0;
-  /// \brief Maximum flat work-group size supported by the kernel. Optional.
+  /// Maximum flat work-group size supported by the kernel. Optional.
   uint32_t mMaxFlatWorkGroupSize = 0;
-  /// \brief True if the generated machine code is using a dynamically sized
+  /// True if the generated machine code is using a dynamically sized
   /// call stack. Optional.
   bool mIsDynamicCallStack = false;
-  /// \brief True if the generated machine code is capable of supporting XNACK.
+  /// True if the generated machine code is capable of supporting XNACK.
   /// Optional.
   bool mIsXNACKEnabled = false;
-  /// \brief Number of SGPRs spilled by a wavefront. Optional.
+  /// Number of SGPRs spilled by a wavefront. Optional.
   uint16_t mNumSpilledSGPRs = 0;
-  /// \brief Number of VGPRs spilled by a workitem. Optional.
+  /// Number of VGPRs spilled by a workitem. Optional.
   uint16_t mNumSpilledVGPRs = 0;
 
-  /// \brief Default constructor.
+  /// Default constructor.
   Metadata() = default;
 
   /// \returns True if kernel code properties metadata is empty, false
@@ -308,40 +308,40 @@
 namespace DebugProps {
 
 namespace Key {
-/// \brief Key for Kernel::DebugProps::Metadata::mDebuggerABIVersion.
+/// Key for Kernel::DebugProps::Metadata::mDebuggerABIVersion.
 constexpr char DebuggerABIVersion[] = "DebuggerABIVersion";
-/// \brief Key for Kernel::DebugProps::Metadata::mReservedNumVGPRs.
+/// Key for Kernel::DebugProps::Metadata::mReservedNumVGPRs.
 constexpr char ReservedNumVGPRs[] = "ReservedNumVGPRs";
-/// \brief Key for Kernel::DebugProps::Metadata::mReservedFirstVGPR.
+/// Key for Kernel::DebugProps::Metadata::mReservedFirstVGPR.
 constexpr char ReservedFirstVGPR[] = "ReservedFirstVGPR";
-/// \brief Key for Kernel::DebugProps::Metadata::mPrivateSegmentBufferSGPR.
+/// Key for Kernel::DebugProps::Metadata::mPrivateSegmentBufferSGPR.
 constexpr char PrivateSegmentBufferSGPR[] = "PrivateSegmentBufferSGPR";
-/// \brief Key for
+/// Key for
 ///     Kernel::DebugProps::Metadata::mWavefrontPrivateSegmentOffsetSGPR.
 constexpr char WavefrontPrivateSegmentOffsetSGPR[] =
     "WavefrontPrivateSegmentOffsetSGPR";
 } // end namespace Key
 
-/// \brief In-memory representation of kernel debug properties metadata.
+/// In-memory representation of kernel debug properties metadata.
 struct Metadata final {
-  /// \brief Debugger ABI version. Optional.
+  /// Debugger ABI version. Optional.
   std::vector<uint32_t> mDebuggerABIVersion = std::vector<uint32_t>();
-  /// \brief Consecutive number of VGPRs reserved for debugger use. Must be 0 if
+  /// Consecutive number of VGPRs reserved for debugger use. Must be 0 if
   /// mDebuggerABIVersion is not set. Optional.
   uint16_t mReservedNumVGPRs = 0;
-  /// \brief First fixed VGPR reserved. Must be uint16_t(-1) if
+  /// First fixed VGPR reserved. Must be uint16_t(-1) if
   /// mDebuggerABIVersion is not set or mReservedFirstVGPR is 0. Optional.
   uint16_t mReservedFirstVGPR = uint16_t(-1);
-  /// \brief Fixed SGPR of the first of 4 SGPRs used to hold the scratch V# used
+  /// Fixed SGPR of the first of 4 SGPRs used to hold the scratch V# used
   /// for the entire kernel execution. Must be uint16_t(-1) if
   /// mDebuggerABIVersion is not set or SGPR not used or not known. Optional.
   uint16_t mPrivateSegmentBufferSGPR = uint16_t(-1);
-  /// \brief Fixed SGPR used to hold the wave scratch offset for the entire
+  /// Fixed SGPR used to hold the wave scratch offset for the entire
   /// kernel execution. Must be uint16_t(-1) if mDebuggerABIVersion is not set
   /// or SGPR is not used or not known. Optional.
   uint16_t mWavefrontPrivateSegmentOffsetSGPR = uint16_t(-1);
 
-  /// \brief Default constructor.
+  /// Default constructor.
   Metadata() = default;
 
   /// \returns True if kernel debug properties metadata is empty, false
@@ -360,75 +360,75 @@
 } // end namespace DebugProps
 
 namespace Key {
-/// \brief Key for Kernel::Metadata::mName.
+/// Key for Kernel::Metadata::mName.
 constexpr char Name[] = "Name";
-/// \brief Key for Kernel::Metadata::mSymbolName.
+/// Key for Kernel::Metadata::mSymbolName.
 constexpr char SymbolName[] = "SymbolName";
-/// \brief Key for Kernel::Metadata::mLanguage.
+/// Key for Kernel::Metadata::mLanguage.
 constexpr char Language[] = "Language";
-/// \brief Key for Kernel::Metadata::mLanguageVersion.
+/// Key for Kernel::Metadata::mLanguageVersion.
 constexpr char LanguageVersion[] = "LanguageVersion";
-/// \brief Key for Kernel::Metadata::mAttrs.
+/// Key for Kernel::Metadata::mAttrs.
 constexpr char Attrs[] = "Attrs";
-/// \brief Key for Kernel::Metadata::mArgs.
+/// Key for Kernel::Metadata::mArgs.
 constexpr char Args[] = "Args";
-/// \brief Key for Kernel::Metadata::mCodeProps.
+/// Key for Kernel::Metadata::mCodeProps.
 constexpr char CodeProps[] = "CodeProps";
-/// \brief Key for Kernel::Metadata::mDebugProps.
+/// Key for Kernel::Metadata::mDebugProps.
 constexpr char DebugProps[] = "DebugProps";
 } // end namespace Key
 
-/// \brief In-memory representation of kernel metadata.
+/// In-memory representation of kernel metadata.
 struct Metadata final {
-  /// \brief Kernel source name. Required.
+  /// Kernel source name. Required.
   std::string mName = std::string();
-  /// \brief Kernel descriptor name. Required.
+  /// Kernel descriptor name. Required.
   std::string mSymbolName = std::string();
-  /// \brief Language. Optional.
+  /// Language. Optional.
   std::string mLanguage = std::string();
-  /// \brief Language version. Optional.
+  /// Language version. Optional.
   std::vector<uint32_t> mLanguageVersion = std::vector<uint32_t>();
-  /// \brief Attributes metadata. Optional.
+  /// Attributes metadata. Optional.
   Attrs::Metadata mAttrs = Attrs::Metadata();
-  /// \brief Arguments metadata. Optional.
+  /// Arguments metadata. Optional.
   std::vector<Arg::Metadata> mArgs = std::vector<Arg::Metadata>();
-  /// \brief Code properties metadata. Optional.
+  /// Code properties metadata. Optional.
   CodeProps::Metadata mCodeProps = CodeProps::Metadata();
-  /// \brief Debug properties metadata. Optional.
+  /// Debug properties metadata. Optional.
   DebugProps::Metadata mDebugProps = DebugProps::Metadata();
 
-  /// \brief Default constructor.
+  /// Default constructor.
   Metadata() = default;
 };
 
 } // end namespace Kernel
 
 namespace Key {
-/// \brief Key for HSA::Metadata::mVersion.
+/// Key for HSA::Metadata::mVersion.
 constexpr char Version[] = "Version";
-/// \brief Key for HSA::Metadata::mPrintf.
+/// Key for HSA::Metadata::mPrintf.
 constexpr char Printf[] = "Printf";
-/// \brief Key for HSA::Metadata::mKernels.
+/// Key for HSA::Metadata::mKernels.
 constexpr char Kernels[] = "Kernels";
 } // end namespace Key
 
-/// \brief In-memory representation of HSA metadata.
+/// In-memory representation of HSA metadata.
 struct Metadata final {
-  /// \brief HSA metadata version. Required.
+  /// HSA metadata version. Required.
   std::vector<uint32_t> mVersion = std::vector<uint32_t>();
-  /// \brief Printf metadata. Optional.
+  /// Printf metadata. Optional.
   std::vector<std::string> mPrintf = std::vector<std::string>();
-  /// \brief Kernels metadata. Required.
+  /// Kernels metadata. Required.
   std::vector<Kernel::Metadata> mKernels = std::vector<Kernel::Metadata>();
 
-  /// \brief Default constructor.
+  /// Default constructor.
   Metadata() = default;
 };
 
-/// \brief Converts \p String to \p HSAMetadata.
+/// Converts \p String to \p HSAMetadata.
 std::error_code fromString(std::string String, Metadata &HSAMetadata);
 
-/// \brief Converts \p HSAMetadata to \p String.
+/// Converts \p HSAMetadata to \p String.
 std::error_code toString(Metadata HSAMetadata, std::string &String);
 
 } // end namespace HSAMD
@@ -438,10 +438,10 @@
 //===----------------------------------------------------------------------===//
 namespace PALMD {
 
-/// \brief PAL metadata assembler directive.
+/// PAL metadata assembler directive.
 constexpr char AssemblerDirective[] = ".amd_amdgpu_pal_metadata";
 
-/// \brief PAL metadata keys.
+/// PAL metadata keys.
 enum Key : uint32_t {
   LS_NUM_USED_VGPRS = 0x10000021,
   HS_NUM_USED_VGPRS = 0x10000022,
@@ -468,10 +468,10 @@
   CS_SCRATCH_SIZE = 0x1000004a
 };
 
-/// \brief PAL metadata represented as a vector.
+/// PAL metadata represented as a vector.
 typedef std::vector<uint32_t> Metadata;
 
-/// \brief Converts \p PALMetadata to \p String.
+/// Converts \p PALMetadata to \p String.
 std::error_code toString(const Metadata &PALMetadata, std::string &String);
 
 } // end namespace PALMD
diff --git a/linux-x64/clang/include/llvm/Support/AMDHSAKernelDescriptor.h b/linux-x64/clang/include/llvm/Support/AMDHSAKernelDescriptor.h
new file mode 100644
index 0000000..751699e
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Support/AMDHSAKernelDescriptor.h
@@ -0,0 +1,185 @@
+//===--- AMDHSAKernelDescriptor.h -----------------------------*- C++ -*---===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+/// \file
+/// AMDHSA kernel descriptor definitions. For more information, visit
+/// https://llvm.org/docs/AMDGPUUsage.html#kernel-descriptor
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_AMDHSAKERNELDESCRIPTOR_H
+#define LLVM_SUPPORT_AMDHSAKERNELDESCRIPTOR_H
+
+#include <cstddef>
+#include <cstdint>
+
+// Gets offset of specified member in specified type.
+#ifndef offsetof
+#define offsetof(TYPE, MEMBER) ((size_t)&((TYPE*)0)->MEMBER)
+#endif // offsetof
+
+// Creates enumeration entries used for packing bits into integers. Enumeration
+// entries include bit shift amount, bit width, and bit mask.
+#ifndef AMDHSA_BITS_ENUM_ENTRY
+#define AMDHSA_BITS_ENUM_ENTRY(NAME, SHIFT, WIDTH) \
+  NAME ## _SHIFT = (SHIFT),                        \
+  NAME ## _WIDTH = (WIDTH),                        \
+  NAME = (((1 << (WIDTH)) - 1) << (SHIFT))
+#endif // AMDHSA_BITS_ENUM_ENTRY
+
+// Gets bits for specified bit mask from specified source.
+#ifndef AMDHSA_BITS_GET
+#define AMDHSA_BITS_GET(SRC, MSK) ((SRC & MSK) >> MSK ## _SHIFT)
+#endif // AMDHSA_BITS_GET
+
+// Sets bits for specified bit mask in specified destination.
+#ifndef AMDHSA_BITS_SET
+#define AMDHSA_BITS_SET(DST, MSK, VAL)  \
+  DST &= ~MSK;                          \
+  DST |= ((VAL << MSK ## _SHIFT) & MSK)
+#endif // AMDHSA_BITS_SET
+
+namespace llvm {
+namespace amdhsa {
+
+// Floating point rounding modes. Must match hardware definition.
+enum : uint8_t {
+  FLOAT_ROUND_MODE_NEAR_EVEN = 0,
+  FLOAT_ROUND_MODE_PLUS_INFINITY = 1,
+  FLOAT_ROUND_MODE_MINUS_INFINITY = 2,
+  FLOAT_ROUND_MODE_ZERO = 3,
+};
+
+// Floating point denorm modes. Must match hardware definition.
+enum : uint8_t {
+  FLOAT_DENORM_MODE_FLUSH_SRC_DST = 0,
+  FLOAT_DENORM_MODE_FLUSH_DST = 1,
+  FLOAT_DENORM_MODE_FLUSH_SRC = 2,
+  FLOAT_DENORM_MODE_FLUSH_NONE = 3,
+};
+
+// System VGPR workitem IDs. Must match hardware definition.
+enum : uint8_t {
+  SYSTEM_VGPR_WORKITEM_ID_X = 0,
+  SYSTEM_VGPR_WORKITEM_ID_X_Y = 1,
+  SYSTEM_VGPR_WORKITEM_ID_X_Y_Z = 2,
+  SYSTEM_VGPR_WORKITEM_ID_UNDEFINED = 3,
+};
+
+// Compute program resource register 1. Must match hardware definition.
+#define COMPUTE_PGM_RSRC1(NAME, SHIFT, WIDTH) \
+  AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_ ## NAME, SHIFT, WIDTH)
+enum : int32_t {
+  COMPUTE_PGM_RSRC1(GRANULATED_WORKITEM_VGPR_COUNT, 0, 6),
+  COMPUTE_PGM_RSRC1(GRANULATED_WAVEFRONT_SGPR_COUNT, 6, 4),
+  COMPUTE_PGM_RSRC1(PRIORITY, 10, 2),
+  COMPUTE_PGM_RSRC1(FLOAT_ROUND_MODE_32, 12, 2),
+  COMPUTE_PGM_RSRC1(FLOAT_ROUND_MODE_16_64, 14, 2),
+  COMPUTE_PGM_RSRC1(FLOAT_DENORM_MODE_32, 16, 2),
+  COMPUTE_PGM_RSRC1(FLOAT_DENORM_MODE_16_64, 18, 2),
+  COMPUTE_PGM_RSRC1(PRIV, 20, 1),
+  COMPUTE_PGM_RSRC1(ENABLE_DX10_CLAMP, 21, 1),
+  COMPUTE_PGM_RSRC1(DEBUG_MODE, 22, 1),
+  COMPUTE_PGM_RSRC1(ENABLE_IEEE_MODE, 23, 1),
+  COMPUTE_PGM_RSRC1(BULKY, 24, 1),
+  COMPUTE_PGM_RSRC1(CDBG_USER, 25, 1),
+  COMPUTE_PGM_RSRC1(FP16_OVFL, 26, 1), // GFX9+
+  COMPUTE_PGM_RSRC1(RESERVED0, 27, 5),
+};
+#undef COMPUTE_PGM_RSRC1
+
+// Compute program resource register 2. Must match hardware definition.
+#define COMPUTE_PGM_RSRC2(NAME, SHIFT, WIDTH) \
+  AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC2_ ## NAME, SHIFT, WIDTH)
+enum : int32_t {
+  COMPUTE_PGM_RSRC2(ENABLE_SGPR_PRIVATE_SEGMENT_WAVEFRONT_OFFSET, 0, 1),
+  COMPUTE_PGM_RSRC2(USER_SGPR_COUNT, 1, 5),
+  COMPUTE_PGM_RSRC2(ENABLE_TRAP_HANDLER, 6, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_SGPR_WORKGROUP_ID_X, 7, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_SGPR_WORKGROUP_ID_Y, 8, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_SGPR_WORKGROUP_ID_Z, 9, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_SGPR_WORKGROUP_INFO, 10, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_VGPR_WORKITEM_ID, 11, 2),
+  COMPUTE_PGM_RSRC2(ENABLE_EXCEPTION_ADDRESS_WATCH, 13, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_EXCEPTION_MEMORY, 14, 1),
+  COMPUTE_PGM_RSRC2(GRANULATED_LDS_SIZE, 15, 9),
+  COMPUTE_PGM_RSRC2(ENABLE_EXCEPTION_IEEE_754_FP_INVALID_OPERATION, 24, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_EXCEPTION_FP_DENORMAL_SOURCE, 25, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_EXCEPTION_IEEE_754_FP_DIVISION_BY_ZERO, 26, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_EXCEPTION_IEEE_754_FP_OVERFLOW, 27, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_EXCEPTION_IEEE_754_FP_UNDERFLOW, 28, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_EXCEPTION_IEEE_754_FP_INEXACT, 29, 1),
+  COMPUTE_PGM_RSRC2(ENABLE_EXCEPTION_INT_DIVIDE_BY_ZERO, 30, 1),
+  COMPUTE_PGM_RSRC2(RESERVED0, 31, 1),
+};
+#undef COMPUTE_PGM_RSRC2
+
+// Kernel code properties. Must be kept backwards compatible.
+#define KERNEL_CODE_PROPERTY(NAME, SHIFT, WIDTH) \
+  AMDHSA_BITS_ENUM_ENTRY(KERNEL_CODE_PROPERTY_ ## NAME, SHIFT, WIDTH)
+enum : int32_t {
+  KERNEL_CODE_PROPERTY(ENABLE_SGPR_PRIVATE_SEGMENT_BUFFER, 0, 1),
+  KERNEL_CODE_PROPERTY(ENABLE_SGPR_DISPATCH_PTR, 1, 1),
+  KERNEL_CODE_PROPERTY(ENABLE_SGPR_QUEUE_PTR, 2, 1),
+  KERNEL_CODE_PROPERTY(ENABLE_SGPR_KERNARG_SEGMENT_PTR, 3, 1),
+  KERNEL_CODE_PROPERTY(ENABLE_SGPR_DISPATCH_ID, 4, 1),
+  KERNEL_CODE_PROPERTY(ENABLE_SGPR_FLAT_SCRATCH_INIT, 5, 1),
+  KERNEL_CODE_PROPERTY(ENABLE_SGPR_PRIVATE_SEGMENT_SIZE, 6, 1),
+  KERNEL_CODE_PROPERTY(RESERVED0, 7, 9),
+};
+#undef KERNEL_CODE_PROPERTY
+
+// Kernel descriptor. Must be kept backwards compatible.
+struct kernel_descriptor_t {
+  uint32_t group_segment_fixed_size;
+  uint32_t private_segment_fixed_size;
+  uint8_t reserved0[8];
+  int64_t kernel_code_entry_byte_offset;
+  uint8_t reserved1[24];
+  uint32_t compute_pgm_rsrc1;
+  uint32_t compute_pgm_rsrc2;
+  uint16_t kernel_code_properties;
+  uint8_t reserved2[6];
+};
+
+static_assert(
+    sizeof(kernel_descriptor_t) == 64,
+    "invalid size for kernel_descriptor_t");
+static_assert(
+    offsetof(kernel_descriptor_t, group_segment_fixed_size) == 0,
+    "invalid offset for group_segment_fixed_size");
+static_assert(
+    offsetof(kernel_descriptor_t, private_segment_fixed_size) == 4,
+    "invalid offset for private_segment_fixed_size");
+static_assert(
+    offsetof(kernel_descriptor_t, reserved0) == 8,
+    "invalid offset for reserved0");
+static_assert(
+    offsetof(kernel_descriptor_t, kernel_code_entry_byte_offset) == 16,
+    "invalid offset for kernel_code_entry_byte_offset");
+static_assert(
+    offsetof(kernel_descriptor_t, reserved1) == 24,
+    "invalid offset for reserved1");
+static_assert(
+    offsetof(kernel_descriptor_t, compute_pgm_rsrc1) == 48,
+    "invalid offset for compute_pgm_rsrc1");
+static_assert(
+    offsetof(kernel_descriptor_t, compute_pgm_rsrc2) == 52,
+    "invalid offset for compute_pgm_rsrc2");
+static_assert(
+    offsetof(kernel_descriptor_t, kernel_code_properties) == 56,
+    "invalid offset for kernel_code_properties");
+static_assert(
+    offsetof(kernel_descriptor_t, reserved2) == 58,
+    "invalid offset for reserved2");
+
+} // end namespace amdhsa
+} // end namespace llvm
+
+#endif // LLVM_SUPPORT_AMDHSAKERNELDESCRIPTOR_H
diff --git a/linux-x64/clang/include/llvm/Support/ARMBuildAttributes.h b/linux-x64/clang/include/llvm/Support/ARMBuildAttributes.h
index 6c83e44..b8a0376 100644
--- a/linux-x64/clang/include/llvm/Support/ARMBuildAttributes.h
+++ b/linux-x64/clang/include/llvm/Support/ARMBuildAttributes.h
@@ -213,6 +213,8 @@
   // Tag_ABI_VFP_args, (=28), uleb128
   BaseAAPCS = 0,
   HardFPAAPCS = 1,
+  ToolChainFPPCS = 2,
+  CompatibleFPAAPCS = 3,
 
   // Tag_FP_HP_extension, (=36), uleb128
   AllowHPFP = 1, // Allow use of Half Precision FP
diff --git a/linux-x64/clang/include/llvm/Support/ARMTargetParser.def b/linux-x64/clang/include/llvm/Support/ARMTargetParser.def
index 6c8eff1..78f5410 100644
--- a/linux-x64/clang/include/llvm/Support/ARMTargetParser.def
+++ b/linux-x64/clang/include/llvm/Support/ARMTargetParser.def
@@ -101,6 +101,11 @@
          ARMBuildAttrs::CPUArch::v8_A, FK_CRYPTO_NEON_FP_ARMV8,
          (ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
           ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP | ARM::AEK_CRC | ARM::AEK_RAS))
+ARM_ARCH("armv8.4-a", ARMV8_4A, "8.4-A", "v8.4a",
+         ARMBuildAttrs::CPUArch::v8_A, FK_CRYPTO_NEON_FP_ARMV8,
+         (ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
+          ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP | ARM::AEK_CRC | ARM::AEK_RAS |
+          ARM::AEK_DOTPROD))
 ARM_ARCH("armv8-r", ARMV8R, "8-R", "v8r", ARMBuildAttrs::CPUArch::v8_R,
           FK_NEON_FP_ARMV8,
           (ARM::AEK_MP | ARM::AEK_VIRT | ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
@@ -130,6 +135,8 @@
 ARM_ARCH_EXT_NAME("none",     ARM::AEK_NONE,     nullptr,  nullptr)
 ARM_ARCH_EXT_NAME("crc",      ARM::AEK_CRC,      "+crc",   "-crc")
 ARM_ARCH_EXT_NAME("crypto",   ARM::AEK_CRYPTO,   "+crypto","-crypto")
+ARM_ARCH_EXT_NAME("sha2",     ARM::AEK_SHA2,     "+sha2",  "-sha2")
+ARM_ARCH_EXT_NAME("aes",      ARM::AEK_AES,      "+aes",   "-aes")
 ARM_ARCH_EXT_NAME("dotprod",  ARM::AEK_DOTPROD,  "+dotprod","-dotprod")
 ARM_ARCH_EXT_NAME("dsp",      ARM::AEK_DSP,      "+dsp",   "-dsp")
 ARM_ARCH_EXT_NAME("fp",       ARM::AEK_FP,       nullptr,  nullptr)
@@ -253,6 +260,7 @@
 ARM_CPU_NAME("exynos-m1", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false, ARM::AEK_CRC)
 ARM_CPU_NAME("exynos-m2", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false, ARM::AEK_CRC)
 ARM_CPU_NAME("exynos-m3", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false, ARM::AEK_CRC)
+ARM_CPU_NAME("exynos-m4", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false, ARM::AEK_CRC)
 ARM_CPU_NAME("kryo", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false, ARM::AEK_CRC)
 // Non-standard Arch names.
 ARM_CPU_NAME("iwmmxt", IWMMXT, FK_NONE, true, ARM::AEK_NONE)
diff --git a/linux-x64/clang/include/llvm/Support/AlignOf.h b/linux-x64/clang/include/llvm/Support/AlignOf.h
index abd19af..9e7a62b 100644
--- a/linux-x64/clang/include/llvm/Support/AlignOf.h
+++ b/linux-x64/clang/include/llvm/Support/AlignOf.h
@@ -20,7 +20,7 @@
 namespace llvm {
 
 /// \struct AlignedCharArray
-/// \brief Helper for building an aligned character array type.
+/// Helper for building an aligned character array type.
 ///
 /// This template is used to explicitly build up a collection of aligned
 /// character array types. We have to build these up using a macro and explicit
@@ -34,12 +34,12 @@
 
 template<std::size_t Alignment, std::size_t Size>
 struct AlignedCharArray {
-  LLVM_ALIGNAS(Alignment) char buffer[Size];
+  alignas(Alignment) char buffer[Size];
 };
 
 #else // _MSC_VER
 
-/// \brief Create a type with an aligned char buffer.
+/// Create a type with an aligned char buffer.
 template<std::size_t Alignment, std::size_t Size>
 struct AlignedCharArray;
 
@@ -124,7 +124,7 @@
 };
 } // end namespace detail
 
-/// \brief This union template exposes a suitably aligned and sized character
+/// This union template exposes a suitably aligned and sized character
 /// array member which can hold elements of any of up to ten types.
 ///
 /// These types may be arrays, structs, or any other types. The goal is to
diff --git a/linux-x64/clang/include/llvm/Support/Allocator.h b/linux-x64/clang/include/llvm/Support/Allocator.h
index 8ed4109..184ac49 100644
--- a/linux-x64/clang/include/llvm/Support/Allocator.h
+++ b/linux-x64/clang/include/llvm/Support/Allocator.h
@@ -23,8 +23,9 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/Compiler.h"
-#include "llvm/Support/MathExtras.h"
 #include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/MathExtras.h"
+#include "llvm/Support/MemAlloc.h"
 #include <algorithm>
 #include <cassert>
 #include <cstddef>
@@ -36,7 +37,7 @@
 
 namespace llvm {
 
-/// \brief CRTP base class providing obvious overloads for the core \c
+/// CRTP base class providing obvious overloads for the core \c
 /// Allocate() methods of LLVM-style allocators.
 ///
 /// This base class both documents the full public interface exposed by all
@@ -44,7 +45,7 @@
 /// set of methods which the derived class must define.
 template <typename DerivedT> class AllocatorBase {
 public:
-  /// \brief Allocate \a Size bytes of \a Alignment aligned memory. This method
+  /// Allocate \a Size bytes of \a Alignment aligned memory. This method
   /// must be implemented by \c DerivedT.
   void *Allocate(size_t Size, size_t Alignment) {
 #ifdef __clang__
@@ -58,7 +59,7 @@
     return static_cast<DerivedT *>(this)->Allocate(Size, Alignment);
   }
 
-  /// \brief Deallocate \a Ptr to \a Size bytes of memory allocated by this
+  /// Deallocate \a Ptr to \a Size bytes of memory allocated by this
   /// allocator.
   void Deallocate(const void *Ptr, size_t Size) {
 #ifdef __clang__
@@ -75,12 +76,12 @@
   // The rest of these methods are helpers that redirect to one of the above
   // core methods.
 
-  /// \brief Allocate space for a sequence of objects without constructing them.
+  /// Allocate space for a sequence of objects without constructing them.
   template <typename T> T *Allocate(size_t Num = 1) {
     return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
   }
 
-  /// \brief Deallocate space for a sequence of objects without constructing them.
+  /// Deallocate space for a sequence of objects without constructing them.
   template <typename T>
   typename std::enable_if<
       !std::is_same<typename std::remove_cv<T>::type, void>::value, void>::type
@@ -95,11 +96,7 @@
 
   LLVM_ATTRIBUTE_RETURNS_NONNULL void *Allocate(size_t Size,
                                                 size_t /*Alignment*/) {
-    void* memPtr =  malloc(Size);
-    if (memPtr == nullptr) 
-      report_bad_alloc_error("Allocation in MallocAllocator failed.");
-
-    return memPtr;
+    return safe_malloc(Size);
   }
 
   // Pull in base class overloads.
@@ -124,7 +121,7 @@
 
 } // end namespace detail
 
-/// \brief Allocate memory in an ever growing pool, as if by bump-pointer.
+/// Allocate memory in an ever growing pool, as if by bump-pointer.
 ///
 /// This isn't strictly a bump-pointer allocator as it uses backing slabs of
 /// memory rather than relying on a boundless contiguous heap. However, it has
@@ -192,7 +189,7 @@
     return *this;
   }
 
-  /// \brief Deallocate all but the current slab and reset the current pointer
+  /// Deallocate all but the current slab and reset the current pointer
   /// to the beginning of it, freeing all memory allocated so far.
   void Reset() {
     // Deallocate all but the first slab, and deallocate all custom-sized slabs.
@@ -212,7 +209,7 @@
     Slabs.erase(std::next(Slabs.begin()), Slabs.end());
   }
 
-  /// \brief Allocate space at the specified alignment.
+  /// Allocate space at the specified alignment.
   LLVM_ATTRIBUTE_RETURNS_NONNULL LLVM_ATTRIBUTE_RETURNS_NOALIAS void *
   Allocate(size_t Size, size_t Alignment) {
     assert(Alignment > 0 && "0-byte alignnment is not allowed. Use 1 instead.");
@@ -307,30 +304,30 @@
   }
 
 private:
-  /// \brief The current pointer into the current slab.
+  /// The current pointer into the current slab.
   ///
   /// This points to the next free byte in the slab.
   char *CurPtr = nullptr;
 
-  /// \brief The end of the current slab.
+  /// The end of the current slab.
   char *End = nullptr;
 
-  /// \brief The slabs allocated so far.
+  /// The slabs allocated so far.
   SmallVector<void *, 4> Slabs;
 
-  /// \brief Custom-sized slabs allocated for too-large allocation requests.
+  /// Custom-sized slabs allocated for too-large allocation requests.
   SmallVector<std::pair<void *, size_t>, 0> CustomSizedSlabs;
 
-  /// \brief How many bytes we've allocated.
+  /// How many bytes we've allocated.
   ///
   /// Used so that we can compute how much space was wasted.
   size_t BytesAllocated = 0;
 
-  /// \brief The number of bytes to put between allocations when running under
+  /// The number of bytes to put between allocations when running under
   /// a sanitizer.
   size_t RedZoneSize = 1;
 
-  /// \brief The allocator instance we use to get slabs of memory.
+  /// The allocator instance we use to get slabs of memory.
   AllocatorT Allocator;
 
   static size_t computeSlabSize(unsigned SlabIdx) {
@@ -341,7 +338,7 @@
     return SlabSize * ((size_t)1 << std::min<size_t>(30, SlabIdx / 128));
   }
 
-  /// \brief Allocate a new slab and move the bump pointers over into the new
+  /// Allocate a new slab and move the bump pointers over into the new
   /// slab, modifying CurPtr and End.
   void StartNewSlab() {
     size_t AllocatedSlabSize = computeSlabSize(Slabs.size());
@@ -356,7 +353,7 @@
     End = ((char *)NewSlab) + AllocatedSlabSize;
   }
 
-  /// \brief Deallocate a sequence of slabs.
+  /// Deallocate a sequence of slabs.
   void DeallocateSlabs(SmallVectorImpl<void *>::iterator I,
                        SmallVectorImpl<void *>::iterator E) {
     for (; I != E; ++I) {
@@ -366,7 +363,7 @@
     }
   }
 
-  /// \brief Deallocate all memory for custom sized slabs.
+  /// Deallocate all memory for custom sized slabs.
   void DeallocateCustomSizedSlabs() {
     for (auto &PtrAndSize : CustomSizedSlabs) {
       void *Ptr = PtrAndSize.first;
@@ -378,11 +375,11 @@
   template <typename T> friend class SpecificBumpPtrAllocator;
 };
 
-/// \brief The standard BumpPtrAllocator which just uses the default template
+/// The standard BumpPtrAllocator which just uses the default template
 /// parameters.
 typedef BumpPtrAllocatorImpl<> BumpPtrAllocator;
 
-/// \brief A BumpPtrAllocator that allows only elements of a specific type to be
+/// A BumpPtrAllocator that allows only elements of a specific type to be
 /// allocated.
 ///
 /// This allows calling the destructor in DestroyAll() and when the allocator is
@@ -435,38 +432,10 @@
     Allocator.Reset();
   }
 
-  /// \brief Allocate space for an array of objects without constructing them.
+  /// Allocate space for an array of objects without constructing them.
   T *Allocate(size_t num = 1) { return Allocator.Allocate<T>(num); }
 };
 
-/// \{
-/// Counterparts of allocation functions defined in namespace 'std', which crash
-/// on allocation failure instead of returning null pointer.
-
-LLVM_ATTRIBUTE_RETURNS_NONNULL inline void *safe_malloc(size_t Sz) {
-  void *Result = std::malloc(Sz);
-  if (Result == nullptr)
-    report_bad_alloc_error("Allocation failed.");
-  return Result;
-}
-
-LLVM_ATTRIBUTE_RETURNS_NONNULL inline void *safe_calloc(size_t Count,
-                                                        size_t Sz) {
-  void *Result = std::calloc(Count, Sz);
-  if (Result == nullptr)
-    report_bad_alloc_error("Allocation failed.");
-  return Result;
-}
-
-LLVM_ATTRIBUTE_RETURNS_NONNULL inline void *safe_realloc(void *Ptr, size_t Sz) {
-  void *Result = std::realloc(Ptr, Sz);
-  if (Result == nullptr)
-    report_bad_alloc_error("Allocation failed.");
-  return Result;
-}
-
-/// \}
-
 } // end namespace llvm
 
 template <typename AllocatorT, size_t SlabSize, size_t SizeThreshold>
diff --git a/linux-x64/clang/include/llvm/Support/AtomicOrdering.h b/linux-x64/clang/include/llvm/Support/AtomicOrdering.h
index e93b755..a679ab3 100644
--- a/linux-x64/clang/include/llvm/Support/AtomicOrdering.h
+++ b/linux-x64/clang/include/llvm/Support/AtomicOrdering.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief Atomic ordering constants.
+/// Atomic ordering constants.
 ///
 /// These values are used by LLVM to represent atomic ordering for C++11's
 /// memory model and more, as detailed in docs/Atomics.rst.
diff --git a/linux-x64/clang/include/llvm/Support/BinaryByteStream.h b/linux-x64/clang/include/llvm/Support/BinaryByteStream.h
index db1ccba..9808d3b 100644
--- a/linux-x64/clang/include/llvm/Support/BinaryByteStream.h
+++ b/linux-x64/clang/include/llvm/Support/BinaryByteStream.h
@@ -25,7 +25,7 @@
 
 namespace llvm {
 
-/// \brief An implementation of BinaryStream which holds its entire data set
+/// An implementation of BinaryStream which holds its entire data set
 /// in a single contiguous buffer.  BinaryByteStream guarantees that no read
 /// operation will ever incur a copy.  Note that BinaryByteStream does not
 /// own the underlying buffer.
@@ -69,7 +69,7 @@
   ArrayRef<uint8_t> Data;
 };
 
-/// \brief An implementation of BinaryStream whose data is backed by an llvm
+/// An implementation of BinaryStream whose data is backed by an llvm
 /// MemoryBuffer object.  MemoryBufferByteStream owns the MemoryBuffer in
 /// question.  As with BinaryByteStream, reading from a MemoryBufferByteStream
 /// will never cause a copy.
@@ -83,7 +83,7 @@
   std::unique_ptr<MemoryBuffer> MemBuffer;
 };
 
-/// \brief An implementation of BinaryStream which holds its entire data set
+/// An implementation of BinaryStream which holds its entire data set
 /// in a single contiguous buffer.  As with BinaryByteStream, the mutable
 /// version also guarantees that no read operation will ever incur a copy,
 /// and similarly it does not own the underlying buffer.
@@ -131,7 +131,7 @@
   BinaryByteStream ImmutableStream;
 };
 
-/// \brief An implementation of WritableBinaryStream which can write at its end
+/// An implementation of WritableBinaryStream which can write at its end
 /// causing the underlying data to grow.  This class owns the underlying data.
 class AppendingBinaryByteStream : public WritableBinaryStream {
   std::vector<uint8_t> Data;
@@ -193,7 +193,7 @@
 
   Error commit() override { return Error::success(); }
 
-  /// \brief Return the properties of this stream.
+  /// Return the properties of this stream.
   virtual BinaryStreamFlags getFlags() const override {
     return BSF_Write | BSF_Append;
   }
@@ -201,7 +201,7 @@
   MutableArrayRef<uint8_t> data() { return Data; }
 };
 
-/// \brief An implementation of WritableBinaryStream backed by an llvm
+/// An implementation of WritableBinaryStream backed by an llvm
 /// FileOutputBuffer.
 class FileBufferByteStream : public WritableBinaryStream {
 private:
@@ -222,6 +222,12 @@
       return Error::success();
     }
 
+    /// Returns a pointer to the start of the buffer.
+    uint8_t *getBufferStart() const { return FileBuffer->getBufferStart(); }
+
+    /// Returns a pointer to the end of the buffer.
+    uint8_t *getBufferEnd() const { return FileBuffer->getBufferEnd(); }
+
   private:
     std::unique_ptr<FileOutputBuffer> FileBuffer;
   };
@@ -253,6 +259,12 @@
 
   Error commit() override { return Impl.commit(); }
 
+  /// Returns a pointer to the start of the buffer.
+  uint8_t *getBufferStart() const { return Impl.getBufferStart(); }
+
+  /// Returns a pointer to the end of the buffer.
+  uint8_t *getBufferEnd() const { return Impl.getBufferEnd(); }
+
 private:
   StreamImpl Impl;
 };
diff --git a/linux-x64/clang/include/llvm/Support/BinaryStream.h b/linux-x64/clang/include/llvm/Support/BinaryStream.h
index d69a03e..7677214 100644
--- a/linux-x64/clang/include/llvm/Support/BinaryStream.h
+++ b/linux-x64/clang/include/llvm/Support/BinaryStream.h
@@ -26,7 +26,7 @@
   LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ BSF_Append)
 };
 
-/// \brief An interface for accessing data in a stream-like format, but which
+/// An interface for accessing data in a stream-like format, but which
 /// discourages copying.  Instead of specifying a buffer in which to copy
 /// data on a read, the API returns an ArrayRef to data owned by the stream's
 /// implementation.  Since implementations may not necessarily store data in a
@@ -39,21 +39,21 @@
 
   virtual llvm::support::endianness getEndian() const = 0;
 
-  /// \brief Given an offset into the stream and a number of bytes, attempt to
+  /// Given an offset into the stream and a number of bytes, attempt to
   /// read the bytes and set the output ArrayRef to point to data owned by the
   /// stream.
   virtual Error readBytes(uint32_t Offset, uint32_t Size,
                           ArrayRef<uint8_t> &Buffer) = 0;
 
-  /// \brief Given an offset into the stream, read as much as possible without
+  /// Given an offset into the stream, read as much as possible without
   /// copying any data.
   virtual Error readLongestContiguousChunk(uint32_t Offset,
                                            ArrayRef<uint8_t> &Buffer) = 0;
 
-  /// \brief Return the number of bytes of data in this stream.
+  /// Return the number of bytes of data in this stream.
   virtual uint32_t getLength() = 0;
 
-  /// \brief Return the properties of this stream.
+  /// Return the properties of this stream.
   virtual BinaryStreamFlags getFlags() const { return BSF_None; }
 
 protected:
@@ -66,7 +66,7 @@
   }
 };
 
-/// \brief A BinaryStream which can be read from as well as written to.  Note
+/// A BinaryStream which can be read from as well as written to.  Note
 /// that writing to a BinaryStream always necessitates copying from the input
 /// buffer to the stream's backing store.  Streams are assumed to be buffered
 /// so that to be portable it is necessary to call commit() on the stream when
@@ -75,15 +75,15 @@
 public:
   ~WritableBinaryStream() override = default;
 
-  /// \brief Attempt to write the given bytes into the stream at the desired
+  /// Attempt to write the given bytes into the stream at the desired
   /// offset. This will always necessitate a copy.  Cannot shrink or grow the
   /// stream, only writes into existing allocated space.
   virtual Error writeBytes(uint32_t Offset, ArrayRef<uint8_t> Data) = 0;
 
-  /// \brief For buffered streams, commits changes to the backing store.
+  /// For buffered streams, commits changes to the backing store.
   virtual Error commit() = 0;
 
-  /// \brief Return the properties of this stream.
+  /// Return the properties of this stream.
   BinaryStreamFlags getFlags() const override { return BSF_Write; }
 
 protected:
diff --git a/linux-x64/clang/include/llvm/Support/BinaryStreamArray.h b/linux-x64/clang/include/llvm/Support/BinaryStreamArray.h
index 3f5562b..d1571cb 100644
--- a/linux-x64/clang/include/llvm/Support/BinaryStreamArray.h
+++ b/linux-x64/clang/include/llvm/Support/BinaryStreamArray.h
@@ -111,7 +111,7 @@
 
   bool empty() const { return Stream.getLength() == 0; }
 
-  /// \brief given an offset into the array's underlying stream, return an
+  /// given an offset into the array's underlying stream, return an
   /// iterator to the record at that offset.  This is considered unsafe
   /// since the behavior is undefined if \p Offset does not refer to the
   /// beginning of a valid record.
diff --git a/linux-x64/clang/include/llvm/Support/BinaryStreamReader.h b/linux-x64/clang/include/llvm/Support/BinaryStreamReader.h
index ae5ebb2..fe77b55 100644
--- a/linux-x64/clang/include/llvm/Support/BinaryStreamReader.h
+++ b/linux-x64/clang/include/llvm/Support/BinaryStreamReader.h
@@ -24,7 +24,7 @@
 
 namespace llvm {
 
-/// \brief Provides read only access to a subclass of `BinaryStream`.  Provides
+/// Provides read only access to a subclass of `BinaryStream`.  Provides
 /// bounds checking and helpers for writing certain common data types such as
 /// null-terminated strings, integers in various flavors of endianness, etc.
 /// Can be subclassed to provide reading of custom datatypes, although no
diff --git a/linux-x64/clang/include/llvm/Support/BinaryStreamRef.h b/linux-x64/clang/include/llvm/Support/BinaryStreamRef.h
index 5cf355b..d8dc139 100644
--- a/linux-x64/clang/include/llvm/Support/BinaryStreamRef.h
+++ b/linux-x64/clang/include/llvm/Support/BinaryStreamRef.h
@@ -147,7 +147,7 @@
   Optional<uint32_t> Length;
 };
 
-/// \brief BinaryStreamRef is to BinaryStream what ArrayRef is to an Array.  It
+/// BinaryStreamRef is to BinaryStream what ArrayRef is to an Array.  It
 /// provides copy-semantics and read only access to a "window" of the underlying
 /// BinaryStream. Note that BinaryStreamRef is *not* a BinaryStream.  That is to
 /// say, it does not inherit and override the methods of BinaryStream.  In
@@ -266,7 +266,7 @@
   /// Conver this WritableBinaryStreamRef to a read-only BinaryStreamRef.
   operator BinaryStreamRef() const;
 
-  /// \brief For buffered streams, commits changes to the backing store.
+  /// For buffered streams, commits changes to the backing store.
   Error commit();
 };
 
diff --git a/linux-x64/clang/include/llvm/Support/BinaryStreamWriter.h b/linux-x64/clang/include/llvm/Support/BinaryStreamWriter.h
index f31db87..6e8a68a 100644
--- a/linux-x64/clang/include/llvm/Support/BinaryStreamWriter.h
+++ b/linux-x64/clang/include/llvm/Support/BinaryStreamWriter.h
@@ -24,7 +24,7 @@
 
 namespace llvm {
 
-/// \brief Provides write only access to a subclass of `WritableBinaryStream`.
+/// Provides write only access to a subclass of `WritableBinaryStream`.
 /// Provides bounds checking and helpers for writing certain common data types
 /// such as null-terminated strings, integers in various flavors of endianness,
 /// etc.  Can be subclassed to provide reading and writing of custom datatypes,
diff --git a/linux-x64/clang/include/llvm/Support/BlockFrequency.h b/linux-x64/clang/include/llvm/Support/BlockFrequency.h
index 2e75cbd..4b468f7 100644
--- a/linux-x64/clang/include/llvm/Support/BlockFrequency.h
+++ b/linux-x64/clang/include/llvm/Support/BlockFrequency.h
@@ -28,32 +28,32 @@
 public:
   BlockFrequency(uint64_t Freq = 0) : Frequency(Freq) { }
 
-  /// \brief Returns the maximum possible frequency, the saturation value.
+  /// Returns the maximum possible frequency, the saturation value.
   static uint64_t getMaxFrequency() { return -1ULL; }
 
-  /// \brief Returns the frequency as a fixpoint number scaled by the entry
+  /// Returns the frequency as a fixpoint number scaled by the entry
   /// frequency.
   uint64_t getFrequency() const { return Frequency; }
 
-  /// \brief Multiplies with a branch probability. The computation will never
+  /// Multiplies with a branch probability. The computation will never
   /// overflow.
   BlockFrequency &operator*=(BranchProbability Prob);
   BlockFrequency operator*(BranchProbability Prob) const;
 
-  /// \brief Divide by a non-zero branch probability using saturating
+  /// Divide by a non-zero branch probability using saturating
   /// arithmetic.
   BlockFrequency &operator/=(BranchProbability Prob);
   BlockFrequency operator/(BranchProbability Prob) const;
 
-  /// \brief Adds another block frequency using saturating arithmetic.
+  /// Adds another block frequency using saturating arithmetic.
   BlockFrequency &operator+=(BlockFrequency Freq);
   BlockFrequency operator+(BlockFrequency Freq) const;
 
-  /// \brief Subtracts another block frequency using saturating arithmetic.
+  /// Subtracts another block frequency using saturating arithmetic.
   BlockFrequency &operator-=(BlockFrequency Freq);
   BlockFrequency operator-(BlockFrequency Freq) const;
 
-  /// \brief Shift block frequency to the right by count digits saturating to 1.
+  /// Shift block frequency to the right by count digits saturating to 1.
   BlockFrequency &operator>>=(const unsigned count);
 
   bool operator<(BlockFrequency RHS) const {
diff --git a/linux-x64/clang/include/llvm/Support/BranchProbability.h b/linux-x64/clang/include/llvm/Support/BranchProbability.h
index b403d7f..3a88e71 100644
--- a/linux-x64/clang/include/llvm/Support/BranchProbability.h
+++ b/linux-x64/clang/include/llvm/Support/BranchProbability.h
@@ -73,7 +73,7 @@
 
   void dump() const;
 
-  /// \brief Scale a large integer.
+  /// Scale a large integer.
   ///
   /// Scales \c Num.  Guarantees full precision.  Returns the floor of the
   /// result.
@@ -81,7 +81,7 @@
   /// \return \c Num times \c this.
   uint64_t scale(uint64_t Num) const;
 
-  /// \brief Scale a large integer by the inverse.
+  /// Scale a large integer by the inverse.
   ///
   /// Scales \c Num by the inverse of \c this.  Guarantees full precision.
   /// Returns the floor of the result.
diff --git a/linux-x64/clang/include/llvm/Support/CachePruning.h b/linux-x64/clang/include/llvm/Support/CachePruning.h
index f38ce17..cf3f8ec 100644
--- a/linux-x64/clang/include/llvm/Support/CachePruning.h
+++ b/linux-x64/clang/include/llvm/Support/CachePruning.h
@@ -52,9 +52,11 @@
   /// the number of files based pruning.
   ///
   /// This defaults to 1000000 because with that many files there are
-  /// diminishing returns on the effectiveness of the cache, and some file
-  /// systems have a limit on how many files can be contained in a directory
-  /// (notably ext4, which is limited to around 6000000 files).
+  /// diminishing returns on the effectiveness of the cache. Some systems have a
+  /// limit on total number of files, and some also limit the number of files
+  /// per directory, such as Linux ext4, with the default setting (block size is
+  /// 4096 and large_dir disabled), there is a per-directory entry limit of
+  /// 508*510*floor(4096/(40+8))~=20M for average filename length of 40.
   uint64_t MaxSizeFiles = 1000000;
 };
 
diff --git a/linux-x64/clang/include/llvm/Support/Casting.h b/linux-x64/clang/include/llvm/Support/Casting.h
index baa2a81..3f21e0f 100644
--- a/linux-x64/clang/include/llvm/Support/Casting.h
+++ b/linux-x64/clang/include/llvm/Support/Casting.h
@@ -60,7 +60,7 @@
   }
 };
 
-/// \brief Always allow upcasts, and perform no dynamic check for them.
+/// Always allow upcasts, and perform no dynamic check for them.
 template <typename To, typename From>
 struct isa_impl<
     To, From, typename std::enable_if<std::is_base_of<To, From>::value>::type> {
diff --git a/linux-x64/clang/include/llvm/Support/CheckedArithmetic.h b/linux-x64/clang/include/llvm/Support/CheckedArithmetic.h
index 68bce06..039c374 100644
--- a/linux-x64/clang/include/llvm/Support/CheckedArithmetic.h
+++ b/linux-x64/clang/include/llvm/Support/CheckedArithmetic.h
@@ -16,66 +16,87 @@
 #define LLVM_SUPPORT_CHECKEDARITHMETIC_H
 
 #include "llvm/ADT/APInt.h"
+#include "llvm/ADT/Optional.h"
 
 #include <type_traits>
 
 namespace {
 
 /// Utility function to apply a given method of \c APInt \p F to \p LHS and
-/// \p RHS, and write the output into \p Res.
-/// \return Whether the operation overflows.
+/// \p RHS.
+/// \return Empty optional if the operation overflows, or result otherwise.
 template <typename T, typename F>
 typename std::enable_if<std::is_integral<T>::value && sizeof(T) * 8 <= 64,
-                        bool>::type
-checkedOp(T LHS, T RHS, F Op, T *Res = nullptr, bool Signed = true) {
+                        llvm::Optional<T>>::type
+checkedOp(T LHS, T RHS, F Op, bool Signed = true) {
   llvm::APInt ALHS(/*BitSize=*/sizeof(T) * 8, LHS, Signed);
   llvm::APInt ARHS(/*BitSize=*/sizeof(T) * 8, RHS, Signed);
   bool Overflow;
   llvm::APInt Out = (ALHS.*Op)(ARHS, Overflow);
-  if (Res)
-    *Res = Signed ? Out.getSExtValue() : Out.getZExtValue();
-  return Overflow;
+  if (Overflow)
+    return llvm::None;
+  return Signed ? Out.getSExtValue() : Out.getZExtValue();
 }
 }
 
 namespace llvm {
 
-/// Add two signed integers \p LHS and \p RHS, write into \p Res if non-null.
-/// Does not guarantee saturating arithmetic.
-/// \return Whether the result overflows.
+/// Add two signed integers \p LHS and \p RHS.
+/// \return Optional of sum if no signed overflow occurred,
+/// \c None otherwise.
 template <typename T>
-typename std::enable_if<std::is_signed<T>::value, bool>::type
-checkedAdd(T LHS, T RHS, T *Res = nullptr) {
-  return checkedOp(LHS, RHS, &llvm::APInt::sadd_ov, Res);
+typename std::enable_if<std::is_signed<T>::value, llvm::Optional<T>>::type
+checkedAdd(T LHS, T RHS) {
+  return checkedOp(LHS, RHS, &llvm::APInt::sadd_ov);
 }
 
-/// Multiply two signed integers \p LHS and \p RHS, write into \p Res if
-/// non-null.
-/// Does not guarantee saturating arithmetic.
-/// \return Whether the result overflows.
+/// Multiply two signed integers \p LHS and \p RHS.
+/// \return Optional of product if no signed overflow occurred,
+/// \c None otherwise.
 template <typename T>
-typename std::enable_if<std::is_signed<T>::value, bool>::type
-checkedMul(T LHS, T RHS, T *Res = nullptr) {
-  return checkedOp(LHS, RHS, &llvm::APInt::smul_ov, Res);
+typename std::enable_if<std::is_signed<T>::value, llvm::Optional<T>>::type
+checkedMul(T LHS, T RHS) {
+  return checkedOp(LHS, RHS, &llvm::APInt::smul_ov);
 }
 
-/// Add two unsigned integers \p LHS and \p RHS, write into \p Res if non-null.
-/// Does not guarantee saturating arithmetic.
-/// \return Whether the result overflows.
+/// Multiply A and B, and add C to the resulting product.
+/// \return Optional of result if no signed overflow occurred,
+/// \c None otherwise.
 template <typename T>
-typename std::enable_if<std::is_unsigned<T>::value, bool>::type
-checkedAddUnsigned(T LHS, T RHS, T *Res = nullptr) {
-  return checkedOp(LHS, RHS, &llvm::APInt::uadd_ov, Res, /*Signed=*/false);
+typename std::enable_if<std::is_signed<T>::value, llvm::Optional<T>>::type
+checkedMulAdd(T A, T B, T C) {
+  if (auto Product = checkedMul(A, B))
+    return checkedAdd(*Product, C);
+  return llvm::None;
 }
 
-/// Multiply two unsigned integers \p LHS and \p RHS, write into \p Res if
-/// non-null.
-/// Does not guarantee saturating arithmetic.
-/// \return Whether the result overflows.
+/// Add two unsigned integers \p LHS and \p RHS.
+/// \return Optional of sum if no unsigned overflow occurred,
+/// \c None otherwise.
 template <typename T>
-typename std::enable_if<std::is_unsigned<T>::value, bool>::type
-checkedMulUnsigned(T LHS, T RHS, T *Res = nullptr) {
-  return checkedOp(LHS, RHS, &llvm::APInt::umul_ov, Res, /*Signed=*/false);
+typename std::enable_if<std::is_unsigned<T>::value, llvm::Optional<T>>::type
+checkedAddUnsigned(T LHS, T RHS) {
+  return checkedOp(LHS, RHS, &llvm::APInt::uadd_ov, /*Signed=*/false);
+}
+
+/// Multiply two unsigned integers \p LHS and \p RHS.
+/// \return Optional of product if no unsigned overflow occurred,
+/// \c None otherwise.
+template <typename T>
+typename std::enable_if<std::is_unsigned<T>::value, llvm::Optional<T>>::type
+checkedMulUnsigned(T LHS, T RHS) {
+  return checkedOp(LHS, RHS, &llvm::APInt::umul_ov, /*Signed=*/false);
+}
+
+/// Multiply unsigned integers A and B, and add C to the resulting product.
+/// \return Optional of result if no unsigned overflow occurred,
+/// \c None otherwise.
+template <typename T>
+typename std::enable_if<std::is_unsigned<T>::value, llvm::Optional<T>>::type
+checkedMulAddUnsigned(T A, T B, T C) {
+  if (auto Product = checkedMulUnsigned(A, B))
+    return checkedAddUnsigned(*Product, C);
+  return llvm::None;
 }
 
 } // End llvm namespace
diff --git a/linux-x64/clang/include/llvm/Support/CodeGenCoverage.h b/linux-x64/clang/include/llvm/Support/CodeGenCoverage.h
index d5bd837..c863be3 100644
--- a/linux-x64/clang/include/llvm/Support/CodeGenCoverage.h
+++ b/linux-x64/clang/include/llvm/Support/CodeGenCoverage.h
@@ -23,15 +23,18 @@
   BitVector RuleCoverage;
 
 public:
+  using const_covered_iterator = BitVector::const_set_bits_iterator;
+
   CodeGenCoverage();
 
   void setCovered(uint64_t RuleID);
-  bool isCovered(uint64_t RuleID);
+  bool isCovered(uint64_t RuleID) const;
+  iterator_range<const_covered_iterator> covered() const;
 
   bool parse(MemoryBuffer &Buffer, StringRef BackendName);
   bool emit(StringRef FilePrefix, StringRef BackendName) const;
   void reset();
 };
-} // end namespace llvm
+} // namespace llvm
 
 #endif // ifndef LLVM_SUPPORT_CODEGENCOVERAGE_H
diff --git a/linux-x64/clang/include/llvm/Support/CommandLine.h b/linux-x64/clang/include/llvm/Support/CommandLine.h
index f043c11..799b41f 100644
--- a/linux-x64/clang/include/llvm/Support/CommandLine.h
+++ b/linux-x64/clang/include/llvm/Support/CommandLine.h
@@ -30,6 +30,7 @@
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/ManagedStatic.h"
+#include "llvm/Support/raw_ostream.h"
 #include <cassert>
 #include <climits>
 #include <cstddef>
@@ -94,7 +95,7 @@
 // Forward declaration - AddLiteralOption needs to be up here to make gcc happy.
 class Option;
 
-/// \brief Adds a new option for parsing and provides the option it refers to.
+/// Adds a new option for parsing and provides the option it refers to.
 ///
 /// \param O pointer to the option
 /// \param Name the string name for the option to handle during parsing
@@ -362,7 +363,10 @@
                              bool MultiArg = false);
 
   // Prints option name followed by message.  Always returns true.
-  bool error(const Twine &Message, StringRef ArgName = StringRef());
+  bool error(const Twine &Message, StringRef ArgName = StringRef(), raw_ostream &Errs = llvm::errs());
+  bool error(const Twine &Message, raw_ostream &Errs) {
+    return error(Message, StringRef(), Errs);
+  }
 
   inline int getNumOccurrences() const { return NumOccurrences; }
   inline void reset() { NumOccurrences = 0; }
@@ -1770,7 +1774,7 @@
 // Public interface for accessing registered options.
 //
 
-/// \brief Use this to get a StringMap to all registered named options
+/// Use this to get a StringMap to all registered named options
 /// (e.g. -help). Note \p Map Should be an empty StringMap.
 ///
 /// \return A reference to the StringMap used by the cl APIs to parse options.
@@ -1799,7 +1803,7 @@
 /// than just handing around a global list.
 StringMap<Option *> &getRegisteredOptions(SubCommand &Sub = *TopLevelSubCommand);
 
-/// \brief Use this to get all registered SubCommands from the provided parser.
+/// Use this to get all registered SubCommands from the provided parser.
 ///
 /// \return A range of all SubCommand pointers registered with the parser.
 ///
@@ -1825,7 +1829,7 @@
 // Standalone command line processing utilities.
 //
 
-/// \brief Tokenizes a command line that can contain escapes and quotes.
+/// Tokenizes a command line that can contain escapes and quotes.
 //
 /// The quoting rules match those used by GCC and other tools that use
 /// libiberty's buildargv() or expandargv() utilities, and do not match bash.
@@ -1841,7 +1845,7 @@
                             SmallVectorImpl<const char *> &NewArgv,
                             bool MarkEOLs = false);
 
-/// \brief Tokenizes a Windows command line which may contain quotes and escaped
+/// Tokenizes a Windows command line which may contain quotes and escaped
 /// quotes.
 ///
 /// See MSDN docs for CommandLineToArgvW for information on the quoting rules.
@@ -1856,7 +1860,7 @@
                                 SmallVectorImpl<const char *> &NewArgv,
                                 bool MarkEOLs = false);
 
-/// \brief String tokenization function type.  Should be compatible with either
+/// String tokenization function type.  Should be compatible with either
 /// Windows or Unix command line tokenizers.
 using TokenizerCallback = void (*)(StringRef Source, StringSaver &Saver,
                                    SmallVectorImpl<const char *> &NewArgv,
@@ -1889,7 +1893,7 @@
 bool readConfigFile(StringRef CfgFileName, StringSaver &Saver,
                     SmallVectorImpl<const char *> &Argv);
 
-/// \brief Expand response files on a command line recursively using the given
+/// Expand response files on a command line recursively using the given
 /// StringSaver and tokenization strategy.  Argv should contain the command line
 /// before expansion and will be modified in place. If requested, Argv will
 /// also be populated with nullptrs indicating where each response file line
@@ -1909,7 +1913,7 @@
                          SmallVectorImpl<const char *> &Argv,
                          bool MarkEOLs = false, bool RelativeNames = false);
 
-/// \brief Mark all options not part of this category as cl::ReallyHidden.
+/// Mark all options not part of this category as cl::ReallyHidden.
 ///
 /// \param Category the category of options to keep displaying
 ///
@@ -1919,7 +1923,7 @@
 void HideUnrelatedOptions(cl::OptionCategory &Category,
                           SubCommand &Sub = *TopLevelSubCommand);
 
-/// \brief Mark all options not part of the categories as cl::ReallyHidden.
+/// Mark all options not part of the categories as cl::ReallyHidden.
 ///
 /// \param Categories the categories of options to keep displaying.
 ///
@@ -1929,12 +1933,12 @@
 void HideUnrelatedOptions(ArrayRef<const cl::OptionCategory *> Categories,
                           SubCommand &Sub = *TopLevelSubCommand);
 
-/// \brief Reset all command line options to a state that looks as if they have
+/// Reset all command line options to a state that looks as if they have
 /// never appeared on the command line.  This is useful for being able to parse
 /// a command line multiple times (especially useful for writing tests).
 void ResetAllOptionOccurrences();
 
-/// \brief Reset the command line parser back to its initial state.  This
+/// Reset the command line parser back to its initial state.  This
 /// removes
 /// all options, categories, and subcommands and returns the parser to a state
 /// where no options are supported.
diff --git a/linux-x64/clang/include/llvm/Support/Compiler.h b/linux-x64/clang/include/llvm/Support/Compiler.h
index 43a96e4..4de815f 100644
--- a/linux-x64/clang/include/llvm/Support/Compiler.h
+++ b/linux-x64/clang/include/llvm/Support/Compiler.h
@@ -7,13 +7,545 @@
 //
 //===----------------------------------------------------------------------===//
 //
-// Due to layering constraints (Support depends on Demangler) this is a thin
-// wrapper around the implementation that lives in llvm-c, though most clients
-// can/should think of this as being provided by Support for simplicity (not
-// many clients are aware of their dependency on Demangler/it's a weird place to
-// own this - but didn't seem to justify splitting Support into "lower support"
-// and "upper support").
+// This file defines several macros, based on the current compiler.  This allows
+// use of compiler-specific features in a way that remains portable.
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Demangle/Compiler.h"
+#ifndef LLVM_SUPPORT_COMPILER_H
+#define LLVM_SUPPORT_COMPILER_H
+
+#include "llvm/Config/llvm-config.h"
+
+#include <new>
+#include <stddef.h>
+
+#if defined(_MSC_VER)
+#include <sal.h>
+#endif
+
+#ifndef __has_feature
+# define __has_feature(x) 0
+#endif
+
+#ifndef __has_extension
+# define __has_extension(x) 0
+#endif
+
+#ifndef __has_attribute
+# define __has_attribute(x) 0
+#endif
+
+#ifndef __has_cpp_attribute
+# define __has_cpp_attribute(x) 0
+#endif
+
+#ifndef __has_builtin
+# define __has_builtin(x) 0
+#endif
+
+/// \macro LLVM_GNUC_PREREQ
+/// Extend the default __GNUC_PREREQ even if glibc's features.h isn't
+/// available.
+#ifndef LLVM_GNUC_PREREQ
+# if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
+#  define LLVM_GNUC_PREREQ(maj, min, patch) \
+    ((__GNUC__ << 20) + (__GNUC_MINOR__ << 10) + __GNUC_PATCHLEVEL__ >= \
+     ((maj) << 20) + ((min) << 10) + (patch))
+# elif defined(__GNUC__) && defined(__GNUC_MINOR__)
+#  define LLVM_GNUC_PREREQ(maj, min, patch) \
+    ((__GNUC__ << 20) + (__GNUC_MINOR__ << 10) >= ((maj) << 20) + ((min) << 10))
+# else
+#  define LLVM_GNUC_PREREQ(maj, min, patch) 0
+# endif
+#endif
+
+/// \macro LLVM_MSC_PREREQ
+/// Is the compiler MSVC of at least the specified version?
+/// The common \param version values to check for are:
+///  * 1900: Microsoft Visual Studio 2015 / 14.0
+#ifdef _MSC_VER
+#define LLVM_MSC_PREREQ(version) (_MSC_VER >= (version))
+
+// We require at least MSVC 2015.
+#if !LLVM_MSC_PREREQ(1900)
+#error LLVM requires at least MSVC 2015.
+#endif
+
+#else
+#define LLVM_MSC_PREREQ(version) 0
+#endif
+
+/// Does the compiler support ref-qualifiers for *this?
+///
+/// Sadly, this is separate from just rvalue reference support because GCC
+/// and MSVC implemented this later than everything else.
+#if __has_feature(cxx_rvalue_references) || LLVM_GNUC_PREREQ(4, 8, 1)
+#define LLVM_HAS_RVALUE_REFERENCE_THIS 1
+#else
+#define LLVM_HAS_RVALUE_REFERENCE_THIS 0
+#endif
+
+/// Expands to '&' if ref-qualifiers for *this are supported.
+///
+/// This can be used to provide lvalue/rvalue overrides of member functions.
+/// The rvalue override should be guarded by LLVM_HAS_RVALUE_REFERENCE_THIS
+#if LLVM_HAS_RVALUE_REFERENCE_THIS
+#define LLVM_LVALUE_FUNCTION &
+#else
+#define LLVM_LVALUE_FUNCTION
+#endif
+
+/// LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked
+/// into a shared library, then the class should be private to the library and
+/// not accessible from outside it.  Can also be used to mark variables and
+/// functions, making them private to any shared library they are linked into.
+/// On PE/COFF targets, library visibility is the default, so this isn't needed.
+#if (__has_attribute(visibility) || LLVM_GNUC_PREREQ(4, 0, 0)) &&              \
+    !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(_WIN32)
+#define LLVM_LIBRARY_VISIBILITY __attribute__ ((visibility("hidden")))
+#else
+#define LLVM_LIBRARY_VISIBILITY
+#endif
+
+#if defined(__GNUC__)
+#define LLVM_PREFETCH(addr, rw, locality) __builtin_prefetch(addr, rw, locality)
+#else
+#define LLVM_PREFETCH(addr, rw, locality)
+#endif
+
+#if __has_attribute(used) || LLVM_GNUC_PREREQ(3, 1, 0)
+#define LLVM_ATTRIBUTE_USED __attribute__((__used__))
+#else
+#define LLVM_ATTRIBUTE_USED
+#endif
+
+/// LLVM_NODISCARD - Warn if a type or return value is discarded.
+#if __cplusplus > 201402L && __has_cpp_attribute(nodiscard)
+#define LLVM_NODISCARD [[nodiscard]]
+#elif !__cplusplus
+// Workaround for llvm.org/PR23435, since clang 3.6 and below emit a spurious
+// error when __has_cpp_attribute is given a scoped attribute in C mode.
+#define LLVM_NODISCARD
+#elif __has_cpp_attribute(clang::warn_unused_result)
+#define LLVM_NODISCARD [[clang::warn_unused_result]]
+#else
+#define LLVM_NODISCARD
+#endif
+
+// Some compilers warn about unused functions. When a function is sometimes
+// used or not depending on build settings (e.g. a function only called from
+// within "assert"), this attribute can be used to suppress such warnings.
+//
+// However, it shouldn't be used for unused *variables*, as those have a much
+// more portable solution:
+//   (void)unused_var_name;
+// Prefer cast-to-void wherever it is sufficient.
+#if __has_attribute(unused) || LLVM_GNUC_PREREQ(3, 1, 0)
+#define LLVM_ATTRIBUTE_UNUSED __attribute__((__unused__))
+#else
+#define LLVM_ATTRIBUTE_UNUSED
+#endif
+
+// FIXME: Provide this for PE/COFF targets.
+#if (__has_attribute(weak) || LLVM_GNUC_PREREQ(4, 0, 0)) &&                    \
+    (!defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(_WIN32))
+#define LLVM_ATTRIBUTE_WEAK __attribute__((__weak__))
+#else
+#define LLVM_ATTRIBUTE_WEAK
+#endif
+
+// Prior to clang 3.2, clang did not accept any spelling of
+// __has_attribute(const), so assume it is supported.
+#if defined(__clang__) || defined(__GNUC__)
+// aka 'CONST' but following LLVM Conventions.
+#define LLVM_READNONE __attribute__((__const__))
+#else
+#define LLVM_READNONE
+#endif
+
+#if __has_attribute(pure) || defined(__GNUC__)
+// aka 'PURE' but following LLVM Conventions.
+#define LLVM_READONLY __attribute__((__pure__))
+#else
+#define LLVM_READONLY
+#endif
+
+#if __has_builtin(__builtin_expect) || LLVM_GNUC_PREREQ(4, 0, 0)
+#define LLVM_LIKELY(EXPR) __builtin_expect((bool)(EXPR), true)
+#define LLVM_UNLIKELY(EXPR) __builtin_expect((bool)(EXPR), false)
+#else
+#define LLVM_LIKELY(EXPR) (EXPR)
+#define LLVM_UNLIKELY(EXPR) (EXPR)
+#endif
+
+/// LLVM_ATTRIBUTE_NOINLINE - On compilers where we have a directive to do so,
+/// mark a method "not for inlining".
+#if __has_attribute(noinline) || LLVM_GNUC_PREREQ(3, 4, 0)
+#define LLVM_ATTRIBUTE_NOINLINE __attribute__((noinline))
+#elif defined(_MSC_VER)
+#define LLVM_ATTRIBUTE_NOINLINE __declspec(noinline)
+#else
+#define LLVM_ATTRIBUTE_NOINLINE
+#endif
+
+/// LLVM_ATTRIBUTE_ALWAYS_INLINE - On compilers where we have a directive to do
+/// so, mark a method "always inline" because it is performance sensitive. GCC
+/// 3.4 supported this but is buggy in various cases and produces unimplemented
+/// errors, just use it in GCC 4.0 and later.
+#if __has_attribute(always_inline) || LLVM_GNUC_PREREQ(4, 0, 0)
+#define LLVM_ATTRIBUTE_ALWAYS_INLINE __attribute__((always_inline))
+#elif defined(_MSC_VER)
+#define LLVM_ATTRIBUTE_ALWAYS_INLINE __forceinline
+#else
+#define LLVM_ATTRIBUTE_ALWAYS_INLINE
+#endif
+
+#ifdef __GNUC__
+#define LLVM_ATTRIBUTE_NORETURN __attribute__((noreturn))
+#elif defined(_MSC_VER)
+#define LLVM_ATTRIBUTE_NORETURN __declspec(noreturn)
+#else
+#define LLVM_ATTRIBUTE_NORETURN
+#endif
+
+#if __has_attribute(returns_nonnull) || LLVM_GNUC_PREREQ(4, 9, 0)
+#define LLVM_ATTRIBUTE_RETURNS_NONNULL __attribute__((returns_nonnull))
+#elif defined(_MSC_VER)
+#define LLVM_ATTRIBUTE_RETURNS_NONNULL _Ret_notnull_
+#else
+#define LLVM_ATTRIBUTE_RETURNS_NONNULL
+#endif
+
+/// \macro LLVM_ATTRIBUTE_RETURNS_NOALIAS Used to mark a function as returning a
+/// pointer that does not alias any other valid pointer.
+#ifdef __GNUC__
+#define LLVM_ATTRIBUTE_RETURNS_NOALIAS __attribute__((__malloc__))
+#elif defined(_MSC_VER)
+#define LLVM_ATTRIBUTE_RETURNS_NOALIAS __declspec(restrict)
+#else
+#define LLVM_ATTRIBUTE_RETURNS_NOALIAS
+#endif
+
+/// LLVM_FALLTHROUGH - Mark fallthrough cases in switch statements.
+#if __cplusplus > 201402L && __has_cpp_attribute(fallthrough)
+#define LLVM_FALLTHROUGH [[fallthrough]]
+#elif __has_cpp_attribute(gnu::fallthrough)
+#define LLVM_FALLTHROUGH [[gnu::fallthrough]]
+#elif !__cplusplus
+// Workaround for llvm.org/PR23435, since clang 3.6 and below emit a spurious
+// error when __has_cpp_attribute is given a scoped attribute in C mode.
+#define LLVM_FALLTHROUGH
+#elif __has_cpp_attribute(clang::fallthrough)
+#define LLVM_FALLTHROUGH [[clang::fallthrough]]
+#else
+#define LLVM_FALLTHROUGH
+#endif
+
+/// LLVM_EXTENSION - Support compilers where we have a keyword to suppress
+/// pedantic diagnostics.
+#ifdef __GNUC__
+#define LLVM_EXTENSION __extension__
+#else
+#define LLVM_EXTENSION
+#endif
+
+// LLVM_ATTRIBUTE_DEPRECATED(decl, "message")
+#if __has_feature(attribute_deprecated_with_message)
+# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
+  decl __attribute__((deprecated(message)))
+#elif defined(__GNUC__)
+# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
+  decl __attribute__((deprecated))
+#elif defined(_MSC_VER)
+# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
+  __declspec(deprecated(message)) decl
+#else
+# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
+  decl
+#endif
+
+/// LLVM_BUILTIN_UNREACHABLE - On compilers which support it, expands
+/// to an expression which states that it is undefined behavior for the
+/// compiler to reach this point.  Otherwise is not defined.
+#if __has_builtin(__builtin_unreachable) || LLVM_GNUC_PREREQ(4, 5, 0)
+# define LLVM_BUILTIN_UNREACHABLE __builtin_unreachable()
+#elif defined(_MSC_VER)
+# define LLVM_BUILTIN_UNREACHABLE __assume(false)
+#endif
+
+/// LLVM_BUILTIN_TRAP - On compilers which support it, expands to an expression
+/// which causes the program to exit abnormally.
+#if __has_builtin(__builtin_trap) || LLVM_GNUC_PREREQ(4, 3, 0)
+# define LLVM_BUILTIN_TRAP __builtin_trap()
+#elif defined(_MSC_VER)
+// The __debugbreak intrinsic is supported by MSVC, does not require forward
+// declarations involving platform-specific typedefs (unlike RaiseException),
+// results in a call to vectored exception handlers, and encodes to a short
+// instruction that still causes the trapping behavior we want.
+# define LLVM_BUILTIN_TRAP __debugbreak()
+#else
+# define LLVM_BUILTIN_TRAP *(volatile int*)0x11 = 0
+#endif
+
+/// LLVM_BUILTIN_DEBUGTRAP - On compilers which support it, expands to
+/// an expression which causes the program to break while running
+/// under a debugger.
+#if __has_builtin(__builtin_debugtrap)
+# define LLVM_BUILTIN_DEBUGTRAP __builtin_debugtrap()
+#elif defined(_MSC_VER)
+// The __debugbreak intrinsic is supported by MSVC and breaks while
+// running under the debugger, and also supports invoking a debugger
+// when the OS is configured appropriately.
+# define LLVM_BUILTIN_DEBUGTRAP __debugbreak()
+#else
+// Just continue execution when built with compilers that have no
+// support. This is a debugging aid and not intended to force the
+// program to abort if encountered.
+# define LLVM_BUILTIN_DEBUGTRAP
+#endif
+
+/// \macro LLVM_ASSUME_ALIGNED
+/// Returns a pointer with an assumed alignment.
+#if __has_builtin(__builtin_assume_aligned) || LLVM_GNUC_PREREQ(4, 7, 0)
+# define LLVM_ASSUME_ALIGNED(p, a) __builtin_assume_aligned(p, a)
+#elif defined(LLVM_BUILTIN_UNREACHABLE)
+// As of today, clang does not support __builtin_assume_aligned.
+# define LLVM_ASSUME_ALIGNED(p, a) \
+           (((uintptr_t(p) % (a)) == 0) ? (p) : (LLVM_BUILTIN_UNREACHABLE, (p)))
+#else
+# define LLVM_ASSUME_ALIGNED(p, a) (p)
+#endif
+
+/// \macro LLVM_ALIGNAS
+/// Used to specify a minimum alignment for a structure or variable.
+#if __GNUC__ && !__has_feature(cxx_alignas) && !LLVM_GNUC_PREREQ(4, 8, 1)
+# define LLVM_ALIGNAS(x) __attribute__((aligned(x)))
+#else
+# define LLVM_ALIGNAS(x) alignas(x)
+#endif
+
+/// \macro LLVM_PACKED
+/// Used to specify a packed structure.
+/// LLVM_PACKED(
+///    struct A {
+///      int i;
+///      int j;
+///      int k;
+///      long long l;
+///   });
+///
+/// LLVM_PACKED_START
+/// struct B {
+///   int i;
+///   int j;
+///   int k;
+///   long long l;
+/// };
+/// LLVM_PACKED_END
+#ifdef _MSC_VER
+# define LLVM_PACKED(d) __pragma(pack(push, 1)) d __pragma(pack(pop))
+# define LLVM_PACKED_START __pragma(pack(push, 1))
+# define LLVM_PACKED_END   __pragma(pack(pop))
+#else
+# define LLVM_PACKED(d) d __attribute__((packed))
+# define LLVM_PACKED_START _Pragma("pack(push, 1)")
+# define LLVM_PACKED_END   _Pragma("pack(pop)")
+#endif
+
+/// \macro LLVM_PTR_SIZE
+/// A constant integer equivalent to the value of sizeof(void*).
+/// Generally used in combination with LLVM_ALIGNAS or when doing computation in
+/// the preprocessor.
+#ifdef __SIZEOF_POINTER__
+# define LLVM_PTR_SIZE __SIZEOF_POINTER__
+#elif defined(_WIN64)
+# define LLVM_PTR_SIZE 8
+#elif defined(_WIN32)
+# define LLVM_PTR_SIZE 4
+#elif defined(_MSC_VER)
+# error "could not determine LLVM_PTR_SIZE as a constant int for MSVC"
+#else
+# define LLVM_PTR_SIZE sizeof(void *)
+#endif
+
+/// \macro LLVM_MEMORY_SANITIZER_BUILD
+/// Whether LLVM itself is built with MemorySanitizer instrumentation.
+#if __has_feature(memory_sanitizer)
+# define LLVM_MEMORY_SANITIZER_BUILD 1
+# include <sanitizer/msan_interface.h>
+#else
+# define LLVM_MEMORY_SANITIZER_BUILD 0
+# define __msan_allocated_memory(p, size)
+# define __msan_unpoison(p, size)
+#endif
+
+/// \macro LLVM_ADDRESS_SANITIZER_BUILD
+/// Whether LLVM itself is built with AddressSanitizer instrumentation.
+#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
+# define LLVM_ADDRESS_SANITIZER_BUILD 1
+# include <sanitizer/asan_interface.h>
+#else
+# define LLVM_ADDRESS_SANITIZER_BUILD 0
+# define __asan_poison_memory_region(p, size)
+# define __asan_unpoison_memory_region(p, size)
+#endif
+
+/// \macro LLVM_THREAD_SANITIZER_BUILD
+/// Whether LLVM itself is built with ThreadSanitizer instrumentation.
+#if __has_feature(thread_sanitizer) || defined(__SANITIZE_THREAD__)
+# define LLVM_THREAD_SANITIZER_BUILD 1
+#else
+# define LLVM_THREAD_SANITIZER_BUILD 0
+#endif
+
+#if LLVM_THREAD_SANITIZER_BUILD
+// Thread Sanitizer is a tool that finds races in code.
+// See http://code.google.com/p/data-race-test/wiki/DynamicAnnotations .
+// tsan detects these exact functions by name.
+#ifdef __cplusplus
+extern "C" {
+#endif
+void AnnotateHappensAfter(const char *file, int line, const volatile void *cv);
+void AnnotateHappensBefore(const char *file, int line, const volatile void *cv);
+void AnnotateIgnoreWritesBegin(const char *file, int line);
+void AnnotateIgnoreWritesEnd(const char *file, int line);
+#ifdef __cplusplus
+}
+#endif
+
+// This marker is used to define a happens-before arc. The race detector will
+// infer an arc from the begin to the end when they share the same pointer
+// argument.
+# define TsanHappensBefore(cv) AnnotateHappensBefore(__FILE__, __LINE__, cv)
+
+// This marker defines the destination of a happens-before arc.
+# define TsanHappensAfter(cv) AnnotateHappensAfter(__FILE__, __LINE__, cv)
+
+// Ignore any races on writes between here and the next TsanIgnoreWritesEnd.
+# define TsanIgnoreWritesBegin() AnnotateIgnoreWritesBegin(__FILE__, __LINE__)
+
+// Resume checking for racy writes.
+# define TsanIgnoreWritesEnd() AnnotateIgnoreWritesEnd(__FILE__, __LINE__)
+#else
+# define TsanHappensBefore(cv)
+# define TsanHappensAfter(cv)
+# define TsanIgnoreWritesBegin()
+# define TsanIgnoreWritesEnd()
+#endif
+
+/// \macro LLVM_NO_SANITIZE
+/// Disable a particular sanitizer for a function.
+#if __has_attribute(no_sanitize)
+#define LLVM_NO_SANITIZE(KIND) __attribute__((no_sanitize(KIND)))
+#else
+#define LLVM_NO_SANITIZE(KIND)
+#endif
+
+/// Mark debug helper function definitions like dump() that should not be
+/// stripped from debug builds.
+/// Note that you should also surround dump() functions with
+/// `#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)` so they do always
+/// get stripped in release builds.
+// FIXME: Move this to a private config.h as it's not usable in public headers.
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
+#define LLVM_DUMP_METHOD LLVM_ATTRIBUTE_NOINLINE LLVM_ATTRIBUTE_USED
+#else
+#define LLVM_DUMP_METHOD LLVM_ATTRIBUTE_NOINLINE
+#endif
+
+/// \macro LLVM_PRETTY_FUNCTION
+/// Gets a user-friendly looking function signature for the current scope
+/// using the best available method on each platform.  The exact format of the
+/// resulting string is implementation specific and non-portable, so this should
+/// only be used, for example, for logging or diagnostics.
+#if defined(_MSC_VER)
+#define LLVM_PRETTY_FUNCTION __FUNCSIG__
+#elif defined(__GNUC__) || defined(__clang__)
+#define LLVM_PRETTY_FUNCTION __PRETTY_FUNCTION__
+#else
+#define LLVM_PRETTY_FUNCTION __func__
+#endif
+
+/// \macro LLVM_THREAD_LOCAL
+/// A thread-local storage specifier which can be used with globals,
+/// extern globals, and static globals.
+///
+/// This is essentially an extremely restricted analog to C++11's thread_local
+/// support, and uses that when available. However, it falls back on
+/// platform-specific or vendor-provided extensions when necessary. These
+/// extensions don't support many of the C++11 thread_local's features. You
+/// should only use this for PODs that you can statically initialize to
+/// some constant value. In almost all circumstances this is most appropriate
+/// for use with a pointer, integer, or small aggregation of pointers and
+/// integers.
+#if LLVM_ENABLE_THREADS
+#if __has_feature(cxx_thread_local)
+#define LLVM_THREAD_LOCAL thread_local
+#elif defined(_MSC_VER)
+// MSVC supports this with a __declspec.
+#define LLVM_THREAD_LOCAL __declspec(thread)
+#else
+// Clang, GCC, and other compatible compilers used __thread prior to C++11 and
+// we only need the restricted functionality that provides.
+#define LLVM_THREAD_LOCAL __thread
+#endif
+#else // !LLVM_ENABLE_THREADS
+// If threading is disabled entirely, this compiles to nothing and you get
+// a normal global variable.
+#define LLVM_THREAD_LOCAL
+#endif
+
+/// \macro LLVM_ENABLE_EXCEPTIONS
+/// Whether LLVM is built with exception support.
+#if __has_feature(cxx_exceptions)
+#define LLVM_ENABLE_EXCEPTIONS 1
+#elif defined(__GNUC__) && defined(__EXCEPTIONS)
+#define LLVM_ENABLE_EXCEPTIONS 1
+#elif defined(_MSC_VER) && defined(_CPPUNWIND)
+#define LLVM_ENABLE_EXCEPTIONS 1
+#endif
+
+namespace llvm {
+
+/// Allocate a buffer of memory with the given size and alignment.
+///
+/// When the compiler supports aligned operator new, this will use it to to
+/// handle even over-aligned allocations.
+///
+/// However, this doesn't make any attempt to leverage the fancier techniques
+/// like posix_memalign due to portability. It is mostly intended to allow
+/// compatibility with platforms that, after aligned allocation was added, use
+/// reduced default alignment.
+inline void *allocate_buffer(size_t Size, size_t Alignment) {
+  return ::operator new(Size
+#if __cpp_aligned_new
+                        ,
+                        std::align_val_t(Alignment)
+#endif
+  );
+}
+
+/// Deallocate a buffer of memory with the given size and alignment.
+///
+/// If supported, this will used the sized delete operator. Also if supported,
+/// this will pass the alignment to the delete operator.
+///
+/// The pointer must have been allocated with the corresponding new operator,
+/// most likely using the above helper.
+inline void deallocate_buffer(void *Ptr, size_t Size, size_t Alignment) {
+  ::operator delete(Ptr
+#if __cpp_sized_deallocation
+                    ,
+                    Size
+#endif
+#if __cpp_aligned_new
+                    ,
+                    std::align_val_t(Alignment)
+#endif
+  );
+}
+
+} // End namespace llvm
+
+#endif
diff --git a/linux-x64/clang/include/llvm/Support/Compression.h b/linux-x64/clang/include/llvm/Support/Compression.h
index 2d191ab..f7258f4 100644
--- a/linux-x64/clang/include/llvm/Support/Compression.h
+++ b/linux-x64/clang/include/llvm/Support/Compression.h
@@ -23,17 +23,15 @@
 
 namespace zlib {
 
-enum CompressionLevel {
-  NoCompression,
-  DefaultCompression,
-  BestSpeedCompression,
-  BestSizeCompression
-};
+static constexpr int NoCompression = 0;
+static constexpr int BestSpeedCompression = 1;
+static constexpr int DefaultCompression = 6;
+static constexpr int BestSizeCompression = 9;
 
 bool isAvailable();
 
 Error compress(StringRef InputBuffer, SmallVectorImpl<char> &CompressedBuffer,
-               CompressionLevel Level = DefaultCompression);
+               int Level = DefaultCompression);
 
 Error uncompress(StringRef InputBuffer, char *UncompressedBuffer,
                  size_t &UncompressedSize);
@@ -49,4 +47,3 @@
 } // End of namespace llvm
 
 #endif
-
diff --git a/linux-x64/clang/include/llvm/Support/ConvertUTF.h b/linux-x64/clang/include/llvm/Support/ConvertUTF.h
index 99ae171..6ae56c2 100644
--- a/linux-x64/clang/include/llvm/Support/ConvertUTF.h
+++ b/linux-x64/clang/include/llvm/Support/ConvertUTF.h
@@ -92,6 +92,7 @@
 
 #include <cstddef>
 #include <string>
+#include <system_error>
 
 // Wrap everything in namespace llvm so that programs can link with llvm and
 // their own version of the unicode libraries.
@@ -286,6 +287,21 @@
 bool convertUTF8ToUTF16String(StringRef SrcUTF8,
                               SmallVectorImpl<UTF16> &DstUTF16);
 
+#if defined(_WIN32)
+namespace sys {
+namespace windows {
+std::error_code UTF8ToUTF16(StringRef utf8, SmallVectorImpl<wchar_t> &utf16);
+/// Convert to UTF16 from the current code page used in the system
+std::error_code CurCPToUTF16(StringRef utf8, SmallVectorImpl<wchar_t> &utf16);
+std::error_code UTF16ToUTF8(const wchar_t *utf16, size_t utf16_len,
+                            SmallVectorImpl<char> &utf8);
+/// Convert from UTF16 to the current code page used in the system
+std::error_code UTF16ToCurCP(const wchar_t *utf16, size_t utf16_len,
+                             SmallVectorImpl<char> &utf8);
+} // namespace windows
+} // namespace sys
+#endif
+
 } /* end namespace llvm */
 
 #endif
diff --git a/linux-x64/clang/include/llvm/Support/CrashRecoveryContext.h b/linux-x64/clang/include/llvm/Support/CrashRecoveryContext.h
index 7026231..7b3fd4f 100644
--- a/linux-x64/clang/include/llvm/Support/CrashRecoveryContext.h
+++ b/linux-x64/clang/include/llvm/Support/CrashRecoveryContext.h
@@ -54,7 +54,7 @@
 
   /// Register cleanup handler, which is used when the recovery context is
   /// finished.
-  /// The recovery context owns the the handler.
+  /// The recovery context owns the handler.
   void registerCleanup(CrashRecoveryContextCleanup *cleanup);
 
   void unregisterCleanup(CrashRecoveryContextCleanup *cleanup);
diff --git a/linux-x64/clang/include/llvm/Support/DataExtractor.h b/linux-x64/clang/include/llvm/Support/DataExtractor.h
index 3144788..2b16398 100644
--- a/linux-x64/clang/include/llvm/Support/DataExtractor.h
+++ b/linux-x64/clang/include/llvm/Support/DataExtractor.h
@@ -15,7 +15,7 @@
 
 namespace llvm {
 
-/// An auxiliary type to facilitate extraction of 3-byte entities. 
+/// An auxiliary type to facilitate extraction of 3-byte entities.
 struct Uint24 {
   uint8_t Bytes[3];
   Uint24(uint8_t U) {
@@ -51,13 +51,13 @@
   DataExtractor(StringRef Data, bool IsLittleEndian, uint8_t AddressSize)
     : Data(Data), IsLittleEndian(IsLittleEndian), AddressSize(AddressSize) {}
 
-  /// \brief Get the data pointed to by this extractor.
+  /// Get the data pointed to by this extractor.
   StringRef getData() const { return Data; }
-  /// \brief Get the endianness for this extractor.
+  /// Get the endianness for this extractor.
   bool isLittleEndian() const { return IsLittleEndian; }
-  /// \brief Get the address size for this extractor.
+  /// Get the address size for this extractor.
   uint8_t getAddressSize() const { return AddressSize; }
-  /// \brief Set the address size for this extractor.
+  /// Set the address size for this extractor.
   void setAddressSize(uint8_t Size) { AddressSize = Size; }
 
   /// Extract a C string from \a *offset_ptr.
diff --git a/linux-x64/clang/include/llvm/Support/Debug.h b/linux-x64/clang/include/llvm/Support/Debug.h
index 48e9e1b..980abfb 100644
--- a/linux-x64/clang/include/llvm/Support/Debug.h
+++ b/linux-x64/clang/include/llvm/Support/Debug.h
@@ -11,17 +11,18 @@
 // code, without it being enabled all of the time, and without having to add
 // command line options to enable it.
 //
-// In particular, just wrap your code with the DEBUG() macro, and it will be
-// enabled automatically if you specify '-debug' on the command-line.
-// DEBUG() requires the DEBUG_TYPE macro to be defined. Set it to "foo" specify
-// that your debug code belongs to class "foo". Be careful that you only do
-// this after including Debug.h and not around any #include of headers. Headers
-// should define and undef the macro acround the code that needs to use the
-// DEBUG() macro. Then, on the command line, you can specify '-debug-only=foo'
-// to enable JUST the debug information for the foo class.
+// In particular, just wrap your code with the LLVM_DEBUG() macro, and it will
+// be enabled automatically if you specify '-debug' on the command-line.
+// LLVM_DEBUG() requires the DEBUG_TYPE macro to be defined. Set it to "foo"
+// specify that your debug code belongs to class "foo". Be careful that you only
+// do this after including Debug.h and not around any #include of headers.
+// Headers should define and undef the macro acround the code that needs to use
+// the LLVM_DEBUG() macro. Then, on the command line, you can specify
+// '-debug-only=foo' to enable JUST the debug information for the foo class.
 //
 // When compiling without assertions, the -debug-* options and all code in
-// DEBUG() statements disappears, so it does not affect the runtime of the code.
+// LLVM_DEBUG() statements disappears, so it does not affect the runtime of the
+// code.
 //
 //===----------------------------------------------------------------------===//
 
@@ -113,9 +114,9 @@
 // debug build, then the code specified as the option to the macro will be
 // executed.  Otherwise it will not be.  Example:
 //
-// DEBUG(dbgs() << "Bitset contains: " << Bitset << "\n");
+// LLVM_DEBUG(dbgs() << "Bitset contains: " << Bitset << "\n");
 //
-#define DEBUG(X) DEBUG_WITH_TYPE(DEBUG_TYPE, X)
+#define LLVM_DEBUG(X) DEBUG_WITH_TYPE(DEBUG_TYPE, X)
 
 } // end namespace llvm
 
diff --git a/linux-x64/clang/include/llvm/Support/DebugCounter.h b/linux-x64/clang/include/llvm/Support/DebugCounter.h
index 52e1bd7..83bd5a0 100644
--- a/linux-x64/clang/include/llvm/Support/DebugCounter.h
+++ b/linux-x64/clang/include/llvm/Support/DebugCounter.h
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 /// \file
-/// \brief This file provides an implementation of debug counters.  Debug
+/// This file provides an implementation of debug counters.  Debug
 /// counters are a tool that let you narrow down a miscompilation to a specific
 /// thing happening.
 ///
@@ -55,7 +55,7 @@
 
 class DebugCounter {
 public:
-  /// \brief Returns a reference to the singleton instance.
+  /// Returns a reference to the singleton instance.
   static DebugCounter &instance();
 
   // Used by the command line option parser to push a new value it parsed.
@@ -70,55 +70,49 @@
     return instance().addCounter(Name, Desc);
   }
   inline static bool shouldExecute(unsigned CounterName) {
-// Compile to nothing when debugging is off
-#ifdef NDEBUG
-    return true;
-#else
+    if (!isCountingEnabled())
+      return true;
+
     auto &Us = instance();
     auto Result = Us.Counters.find(CounterName);
     if (Result != Us.Counters.end()) {
-      auto &CounterPair = Result->second;
-      // We only execute while the skip (first) is zero and the count (second)
-      // is non-zero.
+      auto &CounterInfo = Result->second;
+      ++CounterInfo.Count;
+
+      // We only execute while the Skip is not smaller than Count,
+      // and the StopAfter + Skip is larger than Count.
       // Negative counters always execute.
-      if (CounterPair.first < 0)
+      if (CounterInfo.Skip < 0)
         return true;
-      if (CounterPair.first != 0) {
-        --CounterPair.first;
+      if (CounterInfo.Skip >= CounterInfo.Count)
         return false;
-      }
-      if (CounterPair.second < 0)
+      if (CounterInfo.StopAfter < 0)
         return true;
-      if (CounterPair.second != 0) {
-        --CounterPair.second;
-        return true;
-      }
-      return false;
+      return CounterInfo.StopAfter + CounterInfo.Skip >= CounterInfo.Count;
     }
     // Didn't find the counter, should we warn?
     return true;
-#endif // NDEBUG
   }
 
   // Return true if a given counter had values set (either programatically or on
   // the command line).  This will return true even if those values are
   // currently in a state where the counter will always execute.
   static bool isCounterSet(unsigned ID) {
-    return instance().Counters.count(ID);
+    return instance().Counters[ID].IsSet;
   }
 
-  // Return the skip and count for a counter. This only works for set counters.
-  static std::pair<int, int> getCounterValue(unsigned ID) {
+  // Return the Count for a counter. This only works for set counters.
+  static int64_t getCounterValue(unsigned ID) {
     auto &Us = instance();
     auto Result = Us.Counters.find(ID);
     assert(Result != Us.Counters.end() && "Asking about a non-set counter");
-    return Result->second;
+    return Result->second.Count;
   }
 
-  // Set a registered counter to a given value.
-  static void setCounterValue(unsigned ID, const std::pair<int, int> &Val) {
+  // Set a registered counter to a given Count value.
+  static void setCounterValue(unsigned ID, int64_t Count) {
     auto &Us = instance();
-    Us.Counters[ID] = Val;
+    Us.Counters[ID].Count = Count;
   }
 
   // Dump or print the current counter set into llvm::dbgs().
@@ -136,7 +130,7 @@
 
   // Return the name and description of the counter with the given ID.
   std::pair<std::string, std::string> getCounterInfo(unsigned ID) const {
-    return std::make_pair(RegisteredCounters[ID], CounterDesc.lookup(ID));
+    return std::make_pair(RegisteredCounters[ID], Counters.lookup(ID).Desc);
   }
 
   // Iterate through the registered counters
@@ -146,15 +140,43 @@
   }
   CounterVector::const_iterator end() const { return RegisteredCounters.end(); }
 
+  // Force-enables counting all DebugCounters.
+  //
+  // Since DebugCounters are incompatible with threading (not only do they not
+  // make sense, but we'll also see data races), this should only be used in
+  // contexts where we're certain we won't spawn threads.
+  static void enableAllCounters() { instance().Enabled = true; }
+
 private:
+  static bool isCountingEnabled() {
+// Compile to nothing when debugging is off
+#ifdef NDEBUG
+    return false;
+#else
+    return instance().Enabled;
+#endif
+  }
+
   unsigned addCounter(const std::string &Name, const std::string &Desc) {
     unsigned Result = RegisteredCounters.insert(Name);
-    CounterDesc[Result] = Desc;
+    Counters[Result] = {};
+    Counters[Result].Desc = Desc;
     return Result;
   }
-  DenseMap<unsigned, std::pair<long, long>> Counters;
-  DenseMap<unsigned, std::string> CounterDesc;
+  // Struct to store counter info.
+  struct CounterInfo {
+    int64_t Count = 0;
+    int64_t Skip = 0;
+    int64_t StopAfter = -1;
+    bool IsSet = false;
+    std::string Desc;
+  };
+  DenseMap<unsigned, CounterInfo> Counters;
   CounterVector RegisteredCounters;
+
+  // Whether we should do DebugCounting at all. DebugCounters aren't
+  // thread-safe, so this should always be false in multithreaded scenarios.
+  bool Enabled = false;
 };
 
 #define DEBUG_COUNTER(VARNAME, COUNTERNAME, DESC)                              \
diff --git a/linux-x64/clang/include/llvm/Support/DynamicLibrary.h b/linux-x64/clang/include/llvm/Support/DynamicLibrary.h
index 469d5df..9563b48 100644
--- a/linux-x64/clang/include/llvm/Support/DynamicLibrary.h
+++ b/linux-x64/clang/include/llvm/Support/DynamicLibrary.h
@@ -64,7 +64,7 @@
     /// if the library fails to load.
     ///
     /// It is safe to call this function multiple times for the same library.
-    /// @brief Open a dynamic library permanently.
+    /// Open a dynamic library permanently.
     static DynamicLibrary getPermanentLibrary(const char *filename,
                                               std::string *errMsg = nullptr);
 
@@ -110,10 +110,10 @@
     /// search permanently loaded libraries (getPermanentLibrary()) as well
     /// as explicitly registered symbols (AddSymbol()).
     /// @throws std::string on error.
-    /// @brief Search through libraries for address of a symbol
+    /// Search through libraries for address of a symbol
     static void *SearchForAddressOfSymbol(const char *symbolName);
 
-    /// @brief Convenience function for C++ophiles.
+    /// Convenience function for C++ophiles.
     static void *SearchForAddressOfSymbol(const std::string &symbolName) {
       return SearchForAddressOfSymbol(symbolName.c_str());
     }
@@ -121,7 +121,7 @@
     /// This functions permanently adds the symbol \p symbolName with the
     /// value \p symbolValue.  These symbols are searched before any
     /// libraries.
-    /// @brief Add searchable symbol/value pair.
+    /// Add searchable symbol/value pair.
     static void AddSymbol(StringRef symbolName, void *symbolValue);
 
     class HandleSet;
diff --git a/linux-x64/clang/include/llvm/Support/Endian.h b/linux-x64/clang/include/llvm/Support/Endian.h
index f50d9b5..a4d3f4f 100644
--- a/linux-x64/clang/include/llvm/Support/Endian.h
+++ b/linux-x64/clang/include/llvm/Support/Endian.h
@@ -34,7 +34,7 @@
 
 namespace detail {
 
-/// \brief ::value is either alignment, or alignof(T) if alignment is 0.
+/// ::value is either alignment, or alignof(T) if alignment is 0.
 template<class T, int alignment>
 struct PickAlignment {
  enum { value = alignment == 0 ? alignof(T) : alignment };
diff --git a/linux-x64/clang/include/llvm/Support/EndianStream.h b/linux-x64/clang/include/llvm/Support/EndianStream.h
index 43ecd4a..9742e25 100644
--- a/linux-x64/clang/include/llvm/Support/EndianStream.h
+++ b/linux-x64/clang/include/llvm/Support/EndianStream.h
@@ -23,44 +23,44 @@
 namespace support {
 
 namespace endian {
+
+template <typename value_type>
+inline void write(raw_ostream &os, value_type value, endianness endian) {
+  value = byte_swap<value_type>(value, endian);
+  os.write((const char *)&value, sizeof(value_type));
+}
+
+template <>
+inline void write<float>(raw_ostream &os, float value, endianness endian) {
+  write(os, FloatToBits(value), endian);
+}
+
+template <>
+inline void write<double>(raw_ostream &os, double value,
+                          endianness endian) {
+  write(os, DoubleToBits(value), endian);
+}
+
+template <typename value_type>
+inline void write(raw_ostream &os, ArrayRef<value_type> vals,
+                  endianness endian) {
+  for (value_type v : vals)
+    write(os, v, endian);
+}
+
 /// Adapter to write values to a stream in a particular byte order.
-template <endianness endian> struct Writer {
+struct Writer {
   raw_ostream &OS;
-  Writer(raw_ostream &OS) : OS(OS) {}
-  template <typename value_type> void write(ArrayRef<value_type> Vals) {
-    for (value_type V : Vals)
-      write(V);
+  endianness Endian;
+  Writer(raw_ostream &OS, endianness Endian) : OS(OS), Endian(Endian) {}
+  template <typename value_type> void write(ArrayRef<value_type> Val) {
+    endian::write(OS, Val, Endian);
   }
   template <typename value_type> void write(value_type Val) {
-    Val = byte_swap<value_type, endian>(Val);
-    OS.write((const char *)&Val, sizeof(value_type));
+    endian::write(OS, Val, Endian);
   }
 };
 
-template <>
-template <>
-inline void Writer<little>::write<float>(float Val) {
-  write(FloatToBits(Val));
-}
-
-template <>
-template <>
-inline void Writer<little>::write<double>(double Val) {
-  write(DoubleToBits(Val));
-}
-
-template <>
-template <>
-inline void Writer<big>::write<float>(float Val) {
-  write(FloatToBits(Val));
-}
-
-template <>
-template <>
-inline void Writer<big>::write<double>(double Val) {
-  write(DoubleToBits(Val));
-}
-
 } // end namespace endian
 
 } // end namespace support
diff --git a/linux-x64/clang/include/llvm/Support/Errc.h b/linux-x64/clang/include/llvm/Support/Errc.h
index 80bfe2a..dce4278 100644
--- a/linux-x64/clang/include/llvm/Support/Errc.h
+++ b/linux-x64/clang/include/llvm/Support/Errc.h
@@ -63,6 +63,7 @@
   no_such_process = int(std::errc::no_such_process),
   not_a_directory = int(std::errc::not_a_directory),
   not_enough_memory = int(std::errc::not_enough_memory),
+  not_supported = int(std::errc::not_supported),
   operation_not_permitted = int(std::errc::operation_not_permitted),
   permission_denied = int(std::errc::permission_denied),
   read_only_file_system = int(std::errc::read_only_file_system),
diff --git a/linux-x64/clang/include/llvm/Support/Errno.h b/linux-x64/clang/include/llvm/Support/Errno.h
index 35dc1ea..8069c36 100644
--- a/linux-x64/clang/include/llvm/Support/Errno.h
+++ b/linux-x64/clang/include/llvm/Support/Errno.h
@@ -34,9 +34,10 @@
 inline auto RetryAfterSignal(const FailT &Fail, const Fun &F,
                              const Args &... As) -> decltype(F(As...)) {
   decltype(F(As...)) Res;
-  do
+  do {
+    errno = 0;
     Res = F(As...);
-  while (Res == Fail && errno == EINTR);
+  } while (Res == Fail && errno == EINTR);
   return Res;
 }
 
diff --git a/linux-x64/clang/include/llvm/Support/Error.h b/linux-x64/clang/include/llvm/Support/Error.h
index 2527f89..8015cab 100644
--- a/linux-x64/clang/include/llvm/Support/Error.h
+++ b/linux-x64/clang/include/llvm/Support/Error.h
@@ -24,6 +24,7 @@
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/ErrorOr.h"
+#include "llvm/Support/Format.h"
 #include "llvm/Support/raw_ostream.h"
 #include <algorithm>
 #include <cassert>
@@ -302,6 +303,14 @@
     return Tmp;
   }
 
+  friend raw_ostream &operator<<(raw_ostream &OS, const Error &E) {
+    if (auto P = E.getPtr())
+      P->log(OS);
+    else
+      OS << "success";
+    return OS;
+  }
+
   ErrorInfoBase *Payload = nullptr;
 };
 
@@ -421,7 +430,7 @@
 
   static const bool isRef = std::is_reference<T>::value;
 
-  using wrap = ReferenceStorage<typename std::remove_reference<T>::type>;
+  using wrap = std::reference_wrapper<typename std::remove_reference<T>::type>;
 
   using error_type = std::unique_ptr<ErrorInfoBase>;
 
@@ -505,7 +514,7 @@
       getErrorStorage()->~error_type();
   }
 
-  /// \brief Return false if there is an error.
+  /// Return false if there is an error.
   explicit operator bool() {
 #if LLVM_ENABLE_ABI_BREAKING_CHECKS
     Unchecked = HasError;
@@ -513,24 +522,24 @@
     return !HasError;
   }
 
-  /// \brief Returns a reference to the stored T value.
+  /// Returns a reference to the stored T value.
   reference get() {
     assertIsChecked();
     return *getStorage();
   }
 
-  /// \brief Returns a const reference to the stored T value.
+  /// Returns a const reference to the stored T value.
   const_reference get() const {
     assertIsChecked();
     return const_cast<Expected<T> *>(this)->get();
   }
 
-  /// \brief Check that this Expected<T> is an error of type ErrT.
+  /// Check that this Expected<T> is an error of type ErrT.
   template <typename ErrT> bool errorIsA() const {
     return HasError && (*getErrorStorage())->template isA<ErrT>();
   }
 
-  /// \brief Take ownership of the stored error.
+  /// Take ownership of the stored error.
   /// After calling this the Expected<T> is in an indeterminate state that can
   /// only be safely destructed. No further calls (beside the destructor) should
   /// be made on the Expected<T> vaule.
@@ -541,25 +550,25 @@
     return HasError ? Error(std::move(*getErrorStorage())) : Error::success();
   }
 
-  /// \brief Returns a pointer to the stored T value.
+  /// Returns a pointer to the stored T value.
   pointer operator->() {
     assertIsChecked();
     return toPointer(getStorage());
   }
 
-  /// \brief Returns a const pointer to the stored T value.
+  /// Returns a const pointer to the stored T value.
   const_pointer operator->() const {
     assertIsChecked();
     return toPointer(getStorage());
   }
 
-  /// \brief Returns a reference to the stored T value.
+  /// Returns a reference to the stored T value.
   reference operator*() {
     assertIsChecked();
     return *getStorage();
   }
 
-  /// \brief Returns a const reference to the stored T value.
+  /// Returns a const reference to the stored T value.
   const_reference operator*() const {
     assertIsChecked();
     return *getStorage();
@@ -1113,6 +1122,18 @@
   std::error_code EC;
 };
 
+/// Create formatted StringError object.
+template <typename... Ts>
+Error createStringError(std::error_code EC, char const *Fmt,
+                        const Ts &... Vals) {
+  std::string Buffer;
+  raw_string_ostream Stream(Buffer);
+  Stream << format(Fmt, Vals...);
+  return make_error<StringError>(Stream.str(), EC);
+}
+
+Error createStringError(std::error_code EC, char const *Msg);
+
 /// Helper for check-and-exit error handling.
 ///
 /// For tool use only. NOT FOR USE IN LIBRARY CODE.
diff --git a/linux-x64/clang/include/llvm/Support/ErrorOr.h b/linux-x64/clang/include/llvm/Support/ErrorOr.h
index 061fb65..e6ce764 100644
--- a/linux-x64/clang/include/llvm/Support/ErrorOr.h
+++ b/linux-x64/clang/include/llvm/Support/ErrorOr.h
@@ -24,19 +24,7 @@
 
 namespace llvm {
 
-/// \brief Stores a reference that can be changed.
-template <typename T>
-class ReferenceStorage {
-  T *Storage;
-
-public:
-  ReferenceStorage(T &Ref) : Storage(&Ref) {}
-
-  operator T &() const { return *Storage; }
-  T &get() const { return *Storage; }
-};
-
-/// \brief Represents either an error or a value T.
+/// Represents either an error or a value T.
 ///
 /// ErrorOr<T> is a pointer-like class that represents the result of an
 /// operation. The result is either an error, or a value of type T. This is
@@ -71,7 +59,7 @@
 
   static const bool isRef = std::is_reference<T>::value;
 
-  using wrap = ReferenceStorage<typename std::remove_reference<T>::type>;
+  using wrap = std::reference_wrapper<typename std::remove_reference<T>::type>;
 
 public:
   using storage_type = typename std::conditional<isRef, wrap, T>::type;
@@ -161,7 +149,7 @@
       getStorage()->~storage_type();
   }
 
-  /// \brief Return false if there is an error.
+  /// Return false if there is an error.
   explicit operator bool() const {
     return !HasError;
   }
diff --git a/linux-x64/clang/include/llvm/Support/FileCheck.h b/linux-x64/clang/include/llvm/Support/FileCheck.h
new file mode 100644
index 0000000..e68acca
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Support/FileCheck.h
@@ -0,0 +1,201 @@
+//==-- llvm/Support/FileCheck.h ---------------------------*- C++ -*-==//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+/// \file This file has some utilities to use FileCheck as an API
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_FILECHECK_H
+#define LLVM_SUPPORT_FILECHECK_H
+
+#include "llvm/ADT/StringMap.h"
+#include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/Regex.h"
+#include "llvm/Support/SourceMgr.h"
+#include <vector>
+#include <map>
+
+namespace llvm {
+
+/// Contains info about various FileCheck options.
+struct FileCheckRequest {
+  std::vector<std::string> CheckPrefixes;
+  bool NoCanonicalizeWhiteSpace = false;
+  std::vector<std::string> ImplicitCheckNot;
+  std::vector<std::string> GlobalDefines;
+  bool AllowEmptyInput = false;
+  bool MatchFullLines = false;
+  bool EnableVarScope = false;
+  bool AllowDeprecatedDagOverlap = false;
+  bool Verbose = false;
+  bool VerboseVerbose = false;
+};
+
+
+//===----------------------------------------------------------------------===//
+// Pattern Handling Code.
+//===----------------------------------------------------------------------===//
+
+namespace Check {
+enum FileCheckType {
+  CheckNone = 0,
+  CheckPlain,
+  CheckNext,
+  CheckSame,
+  CheckNot,
+  CheckDAG,
+  CheckLabel,
+  CheckEmpty,
+
+  /// Indicates the pattern only matches the end of file. This is used for
+  /// trailing CHECK-NOTs.
+  CheckEOF,
+
+  /// Marks when parsing found a -NOT check combined with another CHECK suffix.
+  CheckBadNot
+};
+}
+
+class FileCheckPattern {
+  SMLoc PatternLoc;
+
+  /// A fixed string to match as the pattern or empty if this pattern requires
+  /// a regex match.
+  StringRef FixedStr;
+
+  /// A regex string to match as the pattern or empty if this pattern requires
+  /// a fixed string to match.
+  std::string RegExStr;
+
+  /// Entries in this vector map to uses of a variable in the pattern, e.g.
+  /// "foo[[bar]]baz".  In this case, the RegExStr will contain "foobaz" and
+  /// we'll get an entry in this vector that tells us to insert the value of
+  /// bar at offset 3.
+  std::vector<std::pair<StringRef, unsigned>> VariableUses;
+
+  /// Maps definitions of variables to their parenthesized capture numbers.
+  /// 
+  /// E.g. for the pattern "foo[[bar:.*]]baz", VariableDefs will map "bar" to
+  /// 1.
+  std::map<StringRef, unsigned> VariableDefs;
+
+  Check::FileCheckType CheckTy;
+
+  /// Contains the number of line this pattern is in.
+  unsigned LineNumber;
+
+public:
+  explicit FileCheckPattern(Check::FileCheckType Ty)
+      : CheckTy(Ty) {}
+
+  /// Returns the location in source code.
+  SMLoc getLoc() const { return PatternLoc; }
+
+  bool ParsePattern(StringRef PatternStr, StringRef Prefix, SourceMgr &SM,
+                    unsigned LineNumber, const FileCheckRequest &Req);
+  size_t Match(StringRef Buffer, size_t &MatchLen,
+               StringMap<StringRef> &VariableTable) const;
+  void PrintVariableUses(const SourceMgr &SM, StringRef Buffer,
+                         const StringMap<StringRef> &VariableTable,
+                         SMRange MatchRange = None) const;
+  void PrintFuzzyMatch(const SourceMgr &SM, StringRef Buffer,
+                       const StringMap<StringRef> &VariableTable) const;
+
+  bool hasVariable() const {
+    return !(VariableUses.empty() && VariableDefs.empty());
+  }
+
+  Check::FileCheckType getCheckTy() const { return CheckTy; }
+
+private:
+  bool AddRegExToRegEx(StringRef RS, unsigned &CurParen, SourceMgr &SM);
+  void AddBackrefToRegEx(unsigned BackrefNum);
+  unsigned
+  ComputeMatchDistance(StringRef Buffer,
+                       const StringMap<StringRef> &VariableTable) const;
+  bool EvaluateExpression(StringRef Expr, std::string &Value) const;
+  size_t FindRegexVarEnd(StringRef Str, SourceMgr &SM);
+};
+
+//===----------------------------------------------------------------------===//
+// Check Strings.
+//===----------------------------------------------------------------------===//
+
+/// A check that we found in the input file.
+struct FileCheckString {
+  /// The pattern to match.
+  FileCheckPattern Pat;
+
+  /// Which prefix name this check matched.
+  StringRef Prefix;
+
+  /// The location in the match file that the check string was specified.
+  SMLoc Loc;
+
+  /// All of the strings that are disallowed from occurring between this match
+  /// string and the previous one (or start of file).
+  std::vector<FileCheckPattern> DagNotStrings;
+
+  FileCheckString(const FileCheckPattern &P, StringRef S, SMLoc L)
+      : Pat(P), Prefix(S), Loc(L) {}
+
+  size_t Check(const SourceMgr &SM, StringRef Buffer, bool IsLabelScanMode,
+               size_t &MatchLen, StringMap<StringRef> &VariableTable,
+               FileCheckRequest &Req) const;
+
+  bool CheckNext(const SourceMgr &SM, StringRef Buffer) const;
+  bool CheckSame(const SourceMgr &SM, StringRef Buffer) const;
+  bool CheckNot(const SourceMgr &SM, StringRef Buffer,
+                const std::vector<const FileCheckPattern *> &NotStrings,
+                StringMap<StringRef> &VariableTable,
+                const FileCheckRequest &Req) const;
+  size_t CheckDag(const SourceMgr &SM, StringRef Buffer,
+                  std::vector<const FileCheckPattern *> &NotStrings,
+                  StringMap<StringRef> &VariableTable,
+                  const FileCheckRequest &Req) const;
+};
+
+/// FileCheck class takes the request and exposes various methods that
+/// use information from the request.
+class FileCheck {
+  FileCheckRequest Req;
+
+public:
+  FileCheck(FileCheckRequest Req) : Req(Req) {}
+
+  // Combines the check prefixes into a single regex so that we can efficiently
+  // scan for any of the set.
+  //
+  // The semantics are that the longest-match wins which matches our regex
+  // library.
+  Regex buildCheckPrefixRegex();
+
+  /// Read the check file, which specifies the sequence of expected strings.
+  ///
+  /// The strings are added to the CheckStrings vector. Returns true in case of
+  /// an error, false otherwise.
+  bool ReadCheckFile(SourceMgr &SM, StringRef Buffer, Regex &PrefixRE,
+                     std::vector<FileCheckString> &CheckStrings);
+
+  bool ValidateCheckPrefixes();
+
+  /// Canonicalize whitespaces in the file. Line endings are replaced with
+  /// UNIX-style '\n'.
+  StringRef CanonicalizeFile(MemoryBuffer &MB,
+                             SmallVectorImpl<char> &OutputBuffer);
+
+  /// Check the input to FileCheck provided in the \p Buffer against the \p
+  /// CheckStrings read from the check file.
+  ///
+  /// Returns false if the input fails to satisfy the checks.
+  bool CheckInput(SourceMgr &SM, StringRef Buffer,
+                  ArrayRef<FileCheckString> CheckStrings);
+};
+} // namespace llvm
+#endif
diff --git a/linux-x64/clang/include/llvm/Support/FileOutputBuffer.h b/linux-x64/clang/include/llvm/Support/FileOutputBuffer.h
index 6aed423..ee8cbb7 100644
--- a/linux-x64/clang/include/llvm/Support/FileOutputBuffer.h
+++ b/linux-x64/clang/include/llvm/Support/FileOutputBuffer.h
@@ -30,13 +30,25 @@
 /// not committed, the file will be deleted in the FileOutputBuffer destructor.
 class FileOutputBuffer {
 public:
-  enum  {
-    F_executable = 1  /// set the 'x' bit on the resulting file
+  enum {
+    /// set the 'x' bit on the resulting file
+    F_executable = 1,
+
+    /// the contents of the new file are initialized from the file that exists
+    /// at the location (if present).  This allows in-place modification of an
+    /// existing file.
+    F_modify = 2
   };
 
   /// Factory method to create an OutputBuffer object which manages a read/write
   /// buffer of the specified size. When committed, the buffer will be written
   /// to the file at the specified path.
+  ///
+  /// When F_modify is specified and \p FilePath refers to an existing on-disk
+  /// file \p Size may be set to -1, in which case the entire file is used.
+  /// Otherwise, the file shrinks or grows as necessary based on the value of
+  /// \p Size.  It is an error to specify F_modify and Size=-1 if \p FilePath
+  /// does not exist.
   static Expected<std::unique_ptr<FileOutputBuffer>>
   create(StringRef FilePath, size_t Size, unsigned Flags = 0);
 
diff --git a/linux-x64/clang/include/llvm/Support/FileSystem.h b/linux-x64/clang/include/llvm/Support/FileSystem.h
index a9b02d9..02db459 100644
--- a/linux-x64/clang/include/llvm/Support/FileSystem.h
+++ b/linux-x64/clang/include/llvm/Support/FileSystem.h
@@ -30,6 +30,7 @@
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
+#include "llvm/Config/llvm-config.h"
 #include "llvm/Support/Chrono.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/ErrorHandling.h"
@@ -53,6 +54,15 @@
 namespace sys {
 namespace fs {
 
+#if defined(_WIN32)
+// A Win32 HANDLE is a typedef of void*
+using file_t = void *;
+#else
+using file_t = int;
+#endif
+
+extern const file_t kInvalidFile;
+
 /// An enumeration for the file system's view of the type.
 enum class file_type {
   status_error,
@@ -153,7 +163,7 @@
   uid_t fs_st_uid = 0;
   gid_t fs_st_gid = 0;
   off_t fs_st_size = 0;
-  #elif defined (LLVM_ON_WIN32)
+  #elif defined (_WIN32)
   uint32_t LastAccessedTimeHigh = 0;
   uint32_t LastAccessedTimeLow = 0;
   uint32_t LastWriteTimeHigh = 0;
@@ -174,7 +184,7 @@
                     uid_t UID, gid_t GID, off_t Size)
       : fs_st_atime(ATime), fs_st_mtime(MTime), fs_st_uid(UID), fs_st_gid(GID),
         fs_st_size(Size), Type(Type), Perms(Perms) {}
-#elif defined(LLVM_ON_WIN32)
+#elif defined(_WIN32)
   basic_file_status(file_type Type, perms Perms, uint32_t LastAccessTimeHigh,
                     uint32_t LastAccessTimeLow, uint32_t LastWriteTimeHigh,
                     uint32_t LastWriteTimeLow, uint32_t FileSizeHigh,
@@ -196,7 +206,7 @@
   uint32_t getUser() const { return fs_st_uid; }
   uint32_t getGroup() const { return fs_st_gid; }
   uint64_t getSize() const { return fs_st_size; }
-  #elif defined (LLVM_ON_WIN32)
+  #elif defined (_WIN32)
   uint32_t getUser() const {
     return 9999; // Not applicable to Windows, so...
   }
@@ -223,7 +233,7 @@
   dev_t fs_st_dev = 0;
   nlink_t fs_st_nlinks = 0;
   ino_t fs_st_ino = 0;
-  #elif defined (LLVM_ON_WIN32)
+  #elif defined (_WIN32)
   uint32_t NumLinks = 0;
   uint32_t VolumeSerialNumber = 0;
   uint32_t FileIndexHigh = 0;
@@ -240,7 +250,7 @@
               time_t ATime, time_t MTime, uid_t UID, gid_t GID, off_t Size)
       : basic_file_status(Type, Perms, ATime, MTime, UID, GID, Size),
         fs_st_dev(Dev), fs_st_nlinks(Links), fs_st_ino(Ino) {}
-  #elif defined(LLVM_ON_WIN32)
+  #elif defined(_WIN32)
   file_status(file_type Type, perms Perms, uint32_t LinkCount,
               uint32_t LastAccessTimeHigh, uint32_t LastAccessTimeLow,
               uint32_t LastWriteTimeHigh, uint32_t LastWriteTimeLow,
@@ -262,7 +272,7 @@
 /// @name Physical Operators
 /// @{
 
-/// @brief Make \a path an absolute path.
+/// Make \a path an absolute path.
 ///
 /// Makes \a path absolute using the \a current_directory if it is not already.
 /// An empty \a path will result in the \a current_directory.
@@ -276,7 +286,7 @@
 std::error_code make_absolute(const Twine &current_directory,
                               SmallVectorImpl<char> &path);
 
-/// @brief Make \a path an absolute path.
+/// Make \a path an absolute path.
 ///
 /// Makes \a path absolute using the current directory if it is not already. An
 /// empty \a path will result in the current directory.
@@ -289,7 +299,7 @@
 ///          platform-specific error_code.
 std::error_code make_absolute(SmallVectorImpl<char> &path);
 
-/// @brief Create all the non-existent directories in path.
+/// Create all the non-existent directories in path.
 ///
 /// @param path Directories to create.
 /// @returns errc::success if is_directory(path), otherwise a platform
@@ -299,7 +309,7 @@
                                    bool IgnoreExisting = true,
                                    perms Perms = owner_all | group_all);
 
-/// @brief Create the directory in path.
+/// Create the directory in path.
 ///
 /// @param path Directory to create.
 /// @returns errc::success if is_directory(path), otherwise a platform
@@ -308,7 +318,7 @@
 std::error_code create_directory(const Twine &path, bool IgnoreExisting = true,
                                  perms Perms = owner_all | group_all);
 
-/// @brief Create a link from \a from to \a to.
+/// Create a link from \a from to \a to.
 ///
 /// The link may be a soft or a hard link, depending on the platform. The caller
 /// may not assume which one. Currently on windows it creates a hard link since
@@ -329,7 +339,7 @@
 /// specific error_code.
 std::error_code create_hard_link(const Twine &to, const Twine &from);
 
-/// @brief Collapse all . and .. patterns, resolve all symlinks, and optionally
+/// Collapse all . and .. patterns, resolve all symlinks, and optionally
 ///        expand ~ expressions to the user's home directory.
 ///
 /// @param path The path to resolve.
@@ -339,21 +349,21 @@
 std::error_code real_path(const Twine &path, SmallVectorImpl<char> &output,
                           bool expand_tilde = false);
 
-/// @brief Get the current path.
+/// Get the current path.
 ///
 /// @param result Holds the current path on return.
 /// @returns errc::success if the current path has been stored in result,
 ///          otherwise a platform-specific error_code.
 std::error_code current_path(SmallVectorImpl<char> &result);
 
-/// @brief Set the current path.
+/// Set the current path.
 ///
 /// @param path The path to set.
 /// @returns errc::success if the current path was successfully set,
 ///          otherwise a platform-specific error_code.
 std::error_code set_current_path(const Twine &path);
 
-/// @brief Remove path. Equivalent to POSIX remove().
+/// Remove path. Equivalent to POSIX remove().
 ///
 /// @param path Input path.
 /// @returns errc::success if path has been removed or didn't exist, otherwise a
@@ -361,14 +371,14 @@
 ///          returns error if the file didn't exist.
 std::error_code remove(const Twine &path, bool IgnoreNonExisting = true);
 
-/// @brief Recursively delete a directory.
+/// Recursively delete a directory.
 ///
 /// @param path Input path.
 /// @returns errc::success if path has been removed or didn't exist, otherwise a
 ///          platform-specific error code.
 std::error_code remove_directories(const Twine &path, bool IgnoreErrors = true);
 
-/// @brief Rename \a from to \a to.
+/// Rename \a from to \a to.
 ///
 /// Files are renamed as if by POSIX rename(), except that on Windows there may
 /// be a short interval of time during which the destination file does not
@@ -378,13 +388,19 @@
 /// @param to The path to rename to. This is created.
 std::error_code rename(const Twine &from, const Twine &to);
 
-/// @brief Copy the contents of \a From to \a To.
+/// Copy the contents of \a From to \a To.
 ///
 /// @param From The path to copy from.
 /// @param To The path to copy to. This is created.
 std::error_code copy_file(const Twine &From, const Twine &To);
 
-/// @brief Resize path to size. File is resized as if by POSIX truncate().
+/// Copy the contents of \a From to \a To.
+///
+/// @param From The path to copy from.
+/// @param ToFD The open file descriptor of the destination file.
+std::error_code copy_file(const Twine &From, int ToFD);
+
+/// Resize path to size. File is resized as if by POSIX truncate().
 ///
 /// @param FD Input file descriptor.
 /// @param Size Size to resize to.
@@ -392,21 +408,21 @@
 ///          platform-specific error_code.
 std::error_code resize_file(int FD, uint64_t Size);
 
-/// @brief Compute an MD5 hash of a file's contents.
+/// Compute an MD5 hash of a file's contents.
 ///
 /// @param FD Input file descriptor.
 /// @returns An MD5Result with the hash computed, if successful, otherwise a
 ///          std::error_code.
 ErrorOr<MD5::MD5Result> md5_contents(int FD);
 
-/// @brief Version of compute_md5 that doesn't require an open file descriptor.
+/// Version of compute_md5 that doesn't require an open file descriptor.
 ErrorOr<MD5::MD5Result> md5_contents(const Twine &Path);
 
 /// @}
 /// @name Physical Observers
 /// @{
 
-/// @brief Does file exist?
+/// Does file exist?
 ///
 /// @param status A basic_file_status previously returned from stat.
 /// @returns True if the file represented by status exists, false if it does
@@ -415,14 +431,14 @@
 
 enum class AccessMode { Exist, Write, Execute };
 
-/// @brief Can the file be accessed?
+/// Can the file be accessed?
 ///
 /// @param Path Input path.
 /// @returns errc::success if the path can be accessed, otherwise a
 ///          platform-specific error_code.
 std::error_code access(const Twine &Path, AccessMode Mode);
 
-/// @brief Does file exist?
+/// Does file exist?
 ///
 /// @param Path Input path.
 /// @returns True if it exists, false otherwise.
@@ -430,13 +446,13 @@
   return !access(Path, AccessMode::Exist);
 }
 
-/// @brief Can we execute this file?
+/// Can we execute this file?
 ///
 /// @param Path Input path.
 /// @returns True if we can execute it, false otherwise.
 bool can_execute(const Twine &Path);
 
-/// @brief Can we write this file?
+/// Can we write this file?
 ///
 /// @param Path Input path.
 /// @returns True if we can write to it, false otherwise.
@@ -444,7 +460,7 @@
   return !access(Path, AccessMode::Write);
 }
 
-/// @brief Do file_status's represent the same thing?
+/// Do file_status's represent the same thing?
 ///
 /// @param A Input file_status.
 /// @param B Input file_status.
@@ -455,7 +471,7 @@
 ///          otherwise.
 bool equivalent(file_status A, file_status B);
 
-/// @brief Do paths represent the same thing?
+/// Do paths represent the same thing?
 ///
 /// assert(status_known(A) || status_known(B));
 ///
@@ -467,14 +483,14 @@
 ///          platform-specific error_code.
 std::error_code equivalent(const Twine &A, const Twine &B, bool &result);
 
-/// @brief Simpler version of equivalent for clients that don't need to
+/// Simpler version of equivalent for clients that don't need to
 ///        differentiate between an error and false.
 inline bool equivalent(const Twine &A, const Twine &B) {
   bool result;
   return !equivalent(A, B, result) && result;
 }
 
-/// @brief Is the file mounted on a local filesystem?
+/// Is the file mounted on a local filesystem?
 ///
 /// @param path Input path.
 /// @param result Set to true if \a path is on fixed media such as a hard disk,
@@ -483,24 +499,24 @@
 ///          platform specific error_code.
 std::error_code is_local(const Twine &path, bool &result);
 
-/// @brief Version of is_local accepting an open file descriptor.
+/// Version of is_local accepting an open file descriptor.
 std::error_code is_local(int FD, bool &result);
 
-/// @brief Simpler version of is_local for clients that don't need to
+/// Simpler version of is_local for clients that don't need to
 ///        differentiate between an error and false.
 inline bool is_local(const Twine &Path) {
   bool Result;
   return !is_local(Path, Result) && Result;
 }
 
-/// @brief Simpler version of is_local accepting an open file descriptor for
+/// Simpler version of is_local accepting an open file descriptor for
 ///        clients that don't need to differentiate between an error and false.
 inline bool is_local(int FD) {
   bool Result;
   return !is_local(FD, Result) && Result;
 }
 
-/// @brief Does status represent a directory?
+/// Does status represent a directory?
 ///
 /// @param Path The path to get the type of.
 /// @param Follow For symbolic links, indicates whether to return the file type
@@ -508,13 +524,13 @@
 /// @returns A value from the file_type enumeration indicating the type of file.
 file_type get_file_type(const Twine &Path, bool Follow = true);
 
-/// @brief Does status represent a directory?
+/// Does status represent a directory?
 ///
 /// @param status A basic_file_status previously returned from status.
 /// @returns status.type() == file_type::directory_file.
 bool is_directory(const basic_file_status &status);
 
-/// @brief Is path a directory?
+/// Is path a directory?
 ///
 /// @param path Input path.
 /// @param result Set to true if \a path is a directory (after following
@@ -523,20 +539,20 @@
 ///          platform-specific error_code.
 std::error_code is_directory(const Twine &path, bool &result);
 
-/// @brief Simpler version of is_directory for clients that don't need to
+/// Simpler version of is_directory for clients that don't need to
 ///        differentiate between an error and false.
 inline bool is_directory(const Twine &Path) {
   bool Result;
   return !is_directory(Path, Result) && Result;
 }
 
-/// @brief Does status represent a regular file?
+/// Does status represent a regular file?
 ///
 /// @param status A basic_file_status previously returned from status.
 /// @returns status_known(status) && status.type() == file_type::regular_file.
 bool is_regular_file(const basic_file_status &status);
 
-/// @brief Is path a regular file?
+/// Is path a regular file?
 ///
 /// @param path Input path.
 /// @param result Set to true if \a path is a regular file (after following
@@ -545,7 +561,7 @@
 ///          platform-specific error_code.
 std::error_code is_regular_file(const Twine &path, bool &result);
 
-/// @brief Simpler version of is_regular_file for clients that don't need to
+/// Simpler version of is_regular_file for clients that don't need to
 ///        differentiate between an error and false.
 inline bool is_regular_file(const Twine &Path) {
   bool Result;
@@ -554,13 +570,13 @@
   return Result;
 }
 
-/// @brief Does status represent a symlink file?
+/// Does status represent a symlink file?
 ///
 /// @param status A basic_file_status previously returned from status.
 /// @returns status_known(status) && status.type() == file_type::symlink_file.
 bool is_symlink_file(const basic_file_status &status);
 
-/// @brief Is path a symlink file?
+/// Is path a symlink file?
 ///
 /// @param path Input path.
 /// @param result Set to true if \a path is a symlink file, false if it is not.
@@ -569,7 +585,7 @@
 ///          platform-specific error_code.
 std::error_code is_symlink_file(const Twine &path, bool &result);
 
-/// @brief Simpler version of is_symlink_file for clients that don't need to
+/// Simpler version of is_symlink_file for clients that don't need to
 ///        differentiate between an error and false.
 inline bool is_symlink_file(const Twine &Path) {
   bool Result;
@@ -578,14 +594,14 @@
   return Result;
 }
 
-/// @brief Does this status represent something that exists but is not a
+/// Does this status represent something that exists but is not a
 ///        directory or regular file?
 ///
 /// @param status A basic_file_status previously returned from status.
 /// @returns exists(s) && !is_regular_file(s) && !is_directory(s)
 bool is_other(const basic_file_status &status);
 
-/// @brief Is path something that exists but is not a directory,
+/// Is path something that exists but is not a directory,
 ///        regular file, or symlink?
 ///
 /// @param path Input path.
@@ -595,7 +611,7 @@
 ///          platform-specific error_code.
 std::error_code is_other(const Twine &path, bool &result);
 
-/// @brief Get file status as if by POSIX stat().
+/// Get file status as if by POSIX stat().
 ///
 /// @param path Input path.
 /// @param result Set to the file status.
@@ -606,10 +622,10 @@
 std::error_code status(const Twine &path, file_status &result,
                        bool follow = true);
 
-/// @brief A version for when a file descriptor is already available.
+/// A version for when a file descriptor is already available.
 std::error_code status(int FD, file_status &Result);
 
-/// @brief Set file permissions.
+/// Set file permissions.
 ///
 /// @param Path File to set permissions on.
 /// @param Permissions New file permissions.
@@ -620,7 +636,7 @@
 ///       Otherwise, the file will be marked as read-only.
 std::error_code setPermissions(const Twine &Path, perms Permissions);
 
-/// @brief Get file permissions.
+/// Get file permissions.
 ///
 /// @param Path File to get permissions from.
 /// @returns the permissions if they were successfully retrieved, otherwise a
@@ -630,7 +646,7 @@
 ///       will be returned.
 ErrorOr<perms> getPermissions(const Twine &Path);
 
-/// @brief Get file size.
+/// Get file size.
 ///
 /// @param Path Input path.
 /// @param Result Set to the size of the file in \a Path.
@@ -645,20 +661,20 @@
   return std::error_code();
 }
 
-/// @brief Set the file modification and access time.
+/// Set the file modification and access time.
 ///
 /// @returns errc::success if the file times were successfully set, otherwise a
 ///          platform-specific error_code or errc::function_not_supported on
 ///          platforms where the functionality isn't available.
 std::error_code setLastModificationAndAccessTime(int FD, TimePoint<> Time);
 
-/// @brief Is status available?
+/// Is status available?
 ///
 /// @param s Input file status.
 /// @returns True if status() != status_error.
 bool status_known(const basic_file_status &s);
 
-/// @brief Is status available?
+/// Is status available?
 ///
 /// @param path Input path.
 /// @param result Set to true if status() != status_error.
@@ -666,35 +682,58 @@
 ///          platform-specific error_code.
 std::error_code status_known(const Twine &path, bool &result);
 
+enum CreationDisposition : unsigned {
+  /// CD_CreateAlways - When opening a file:
+  ///   * If it already exists, truncate it.
+  ///   * If it does not already exist, create a new file.
+  CD_CreateAlways = 0,
+
+  /// CD_CreateNew - When opening a file:
+  ///   * If it already exists, fail.
+  ///   * If it does not already exist, create a new file.
+  CD_CreateNew = 1,
+
+  /// CD_OpenAlways - When opening a file:
+  ///   * If it already exists, open the file with the offset set to 0.
+  ///   * If it does not already exist, fail.
+  CD_OpenExisting = 2,
+
+  /// CD_OpenAlways - When opening a file:
+  ///   * If it already exists, open the file with the offset set to 0.
+  ///   * If it does not already exist, create a new file.
+  CD_OpenAlways = 3,
+};
+
+enum FileAccess : unsigned {
+  FA_Read = 1,
+  FA_Write = 2,
+};
+
 enum OpenFlags : unsigned {
-  F_None = 0,
-
-  /// F_Excl - When opening a file, this flag makes raw_fd_ostream
-  /// report an error if the file already exists.
-  F_Excl = 1,
-
-  /// F_Append - When opening a file, if it already exists append to the
-  /// existing file instead of returning an error.  This may not be specified
-  /// with F_Excl.
-  F_Append = 2,
-
-  /// F_NoTrunc - When opening a file, if it already exists don't truncate
-  /// the file contents.  F_Append implies F_NoTrunc, but F_Append seeks to
-  /// the end of the file, which F_NoTrunc doesn't.
-  F_NoTrunc = 4,
+  OF_None = 0,
+  F_None = 0, // For compatibility
 
   /// The file should be opened in text mode on platforms that make this
   /// distinction.
-  F_Text = 8,
+  OF_Text = 1,
+  F_Text = 1, // For compatibility
 
-  /// Open the file for read and write.
-  F_RW = 16,
+  /// The file should be opened in append mode.
+  OF_Append = 2,
+  F_Append = 2, // For compatibility
 
   /// Delete the file on close. Only makes a difference on windows.
-  F_Delete = 32
+  OF_Delete = 4,
+
+  /// When a child process is launched, this file should remain open in the
+  /// child process.
+  OF_ChildInherit = 8,
+
+  /// Force files Atime to be updated on access. Only makes a difference on windows.
+  OF_UpdateAtime = 16,
 };
 
-/// @brief Create a uniquely named file.
+/// Create a uniquely named file.
 ///
 /// Generates a unique path suitable for a temporary file and then opens it as a
 /// file. The name is based on \a model with '%' replaced by a random char in
@@ -717,10 +756,9 @@
 ///          otherwise a platform-specific error_code.
 std::error_code createUniqueFile(const Twine &Model, int &ResultFD,
                                  SmallVectorImpl<char> &ResultPath,
-                                 unsigned Mode = all_read | all_write,
-                                 sys::fs::OpenFlags Flags = sys::fs::F_RW);
+                                 unsigned Mode = all_read | all_write);
 
-/// @brief Simpler version for clients that don't want an open file. An empty
+/// Simpler version for clients that don't want an open file. An empty
 /// file will still be created.
 std::error_code createUniqueFile(const Twine &Model,
                                  SmallVectorImpl<char> &ResultPath,
@@ -764,7 +802,7 @@
   ~TempFile();
 };
 
-/// @brief Create a file in the system temporary directory.
+/// Create a file in the system temporary directory.
 ///
 /// The filename is of the form prefix-random_chars.suffix. Since the directory
 /// is not know to the caller, Prefix and Suffix cannot have path separators.
@@ -774,10 +812,9 @@
 /// running the assembler.
 std::error_code createTemporaryFile(const Twine &Prefix, StringRef Suffix,
                                     int &ResultFD,
-                                    SmallVectorImpl<char> &ResultPath,
-                                    sys::fs::OpenFlags Flags = sys::fs::F_RW);
+                                    SmallVectorImpl<char> &ResultPath);
 
-/// @brief Simpler version for clients that don't want an open file. An empty
+/// Simpler version for clients that don't want an open file. An empty
 /// file will still be created.
 std::error_code createTemporaryFile(const Twine &Prefix, StringRef Suffix,
                                     SmallVectorImpl<char> &ResultPath);
@@ -785,7 +822,7 @@
 std::error_code createUniqueDirectory(const Twine &Prefix,
                                       SmallVectorImpl<char> &ResultPath);
 
-/// @brief Get a unique name, not currently exisiting in the filesystem. Subject
+/// Get a unique name, not currently exisiting in the filesystem. Subject
 /// to race conditions, prefer to use createUniqueFile instead.
 ///
 /// Similar to createUniqueFile, but instead of creating a file only
@@ -795,7 +832,7 @@
 std::error_code getPotentiallyUniqueFileName(const Twine &Model,
                                              SmallVectorImpl<char> &ResultPath);
 
-/// @brief Get a unique temporary file name, not currently exisiting in the
+/// Get a unique temporary file name, not currently exisiting in the
 /// filesystem. Subject to race conditions, prefer to use createTemporaryFile
 /// instead.
 ///
@@ -816,15 +853,181 @@
   return A;
 }
 
-std::error_code openFileForWrite(const Twine &Name, int &ResultFD,
-                                 OpenFlags Flags, unsigned Mode = 0666);
+inline FileAccess operator|(FileAccess A, FileAccess B) {
+  return FileAccess(unsigned(A) | unsigned(B));
+}
 
+inline FileAccess &operator|=(FileAccess &A, FileAccess B) {
+  A = A | B;
+  return A;
+}
+
+/// @brief Opens a file with the specified creation disposition, access mode,
+/// and flags and returns a file descriptor.
+///
+/// The caller is responsible for closing the file descriptor once they are
+/// finished with it.
+///
+/// @param Name The path of the file to open, relative or absolute.
+/// @param ResultFD If the file could be opened successfully, its descriptor
+///                 is stored in this location. Otherwise, this is set to -1.
+/// @param Disp Value specifying the existing-file behavior.
+/// @param Access Value specifying whether to open the file in read, write, or
+///               read-write mode.
+/// @param Flags Additional flags.
+/// @param Mode The access permissions of the file, represented in octal.
+/// @returns errc::success if \a Name has been opened, otherwise a
+///          platform-specific error_code.
+std::error_code openFile(const Twine &Name, int &ResultFD,
+                         CreationDisposition Disp, FileAccess Access,
+                         OpenFlags Flags, unsigned Mode = 0666);
+
+/// @brief Opens a file with the specified creation disposition, access mode,
+/// and flags and returns a platform-specific file object.
+///
+/// The caller is responsible for closing the file object once they are
+/// finished with it.
+///
+/// @param Name The path of the file to open, relative or absolute.
+/// @param Disp Value specifying the existing-file behavior.
+/// @param Access Value specifying whether to open the file in read, write, or
+///               read-write mode.
+/// @param Flags Additional flags.
+/// @param Mode The access permissions of the file, represented in octal.
+/// @returns errc::success if \a Name has been opened, otherwise a
+///          platform-specific error_code.
+Expected<file_t> openNativeFile(const Twine &Name, CreationDisposition Disp,
+                                FileAccess Access, OpenFlags Flags,
+                                unsigned Mode = 0666);
+
+/// @brief Opens the file with the given name in a write-only or read-write
+/// mode, returning its open file descriptor. If the file does not exist, it
+/// is created.
+///
+/// The caller is responsible for closing the file descriptor once they are
+/// finished with it.
+///
+/// @param Name The path of the file to open, relative or absolute.
+/// @param ResultFD If the file could be opened successfully, its descriptor
+///                 is stored in this location. Otherwise, this is set to -1.
+/// @param Flags Additional flags used to determine whether the file should be
+///              opened in, for example, read-write or in write-only mode.
+/// @param Mode The access permissions of the file, represented in octal.
+/// @returns errc::success if \a Name has been opened, otherwise a
+///          platform-specific error_code.
+inline std::error_code
+openFileForWrite(const Twine &Name, int &ResultFD,
+                 CreationDisposition Disp = CD_CreateAlways,
+                 OpenFlags Flags = OF_None, unsigned Mode = 0666) {
+  return openFile(Name, ResultFD, Disp, FA_Write, Flags, Mode);
+}
+
+/// @brief Opens the file with the given name in a write-only or read-write
+/// mode, returning its open file descriptor. If the file does not exist, it
+/// is created.
+///
+/// The caller is responsible for closing the freeing the file once they are
+/// finished with it.
+///
+/// @param Name The path of the file to open, relative or absolute.
+/// @param Flags Additional flags used to determine whether the file should be
+///              opened in, for example, read-write or in write-only mode.
+/// @param Mode The access permissions of the file, represented in octal.
+/// @returns a platform-specific file descriptor if \a Name has been opened,
+///          otherwise an error object.
+inline Expected<file_t> openNativeFileForWrite(const Twine &Name,
+                                               CreationDisposition Disp,
+                                               OpenFlags Flags,
+                                               unsigned Mode = 0666) {
+  return openNativeFile(Name, Disp, FA_Write, Flags, Mode);
+}
+
+/// @brief Opens the file with the given name in a write-only or read-write
+/// mode, returning its open file descriptor. If the file does not exist, it
+/// is created.
+///
+/// The caller is responsible for closing the file descriptor once they are
+/// finished with it.
+///
+/// @param Name The path of the file to open, relative or absolute.
+/// @param ResultFD If the file could be opened successfully, its descriptor
+///                 is stored in this location. Otherwise, this is set to -1.
+/// @param Flags Additional flags used to determine whether the file should be
+///              opened in, for example, read-write or in write-only mode.
+/// @param Mode The access permissions of the file, represented in octal.
+/// @returns errc::success if \a Name has been opened, otherwise a
+///          platform-specific error_code.
+inline std::error_code openFileForReadWrite(const Twine &Name, int &ResultFD,
+                                            CreationDisposition Disp,
+                                            OpenFlags Flags,
+                                            unsigned Mode = 0666) {
+  return openFile(Name, ResultFD, Disp, FA_Write | FA_Read, Flags, Mode);
+}
+
+/// @brief Opens the file with the given name in a write-only or read-write
+/// mode, returning its open file descriptor. If the file does not exist, it
+/// is created.
+///
+/// The caller is responsible for closing the freeing the file once they are
+/// finished with it.
+///
+/// @param Name The path of the file to open, relative or absolute.
+/// @param Flags Additional flags used to determine whether the file should be
+///              opened in, for example, read-write or in write-only mode.
+/// @param Mode The access permissions of the file, represented in octal.
+/// @returns a platform-specific file descriptor if \a Name has been opened,
+///          otherwise an error object.
+inline Expected<file_t> openNativeFileForReadWrite(const Twine &Name,
+                                                   CreationDisposition Disp,
+                                                   OpenFlags Flags,
+                                                   unsigned Mode = 0666) {
+  return openNativeFile(Name, Disp, FA_Write | FA_Read, Flags, Mode);
+}
+
+/// @brief Opens the file with the given name in a read-only mode, returning
+/// its open file descriptor.
+///
+/// The caller is responsible for closing the file descriptor once they are
+/// finished with it.
+///
+/// @param Name The path of the file to open, relative or absolute.
+/// @param ResultFD If the file could be opened successfully, its descriptor
+///                 is stored in this location. Otherwise, this is set to -1.
+/// @param RealPath If nonnull, extra work is done to determine the real path
+///                 of the opened file, and that path is stored in this
+///                 location.
+/// @returns errc::success if \a Name has been opened, otherwise a
+///          platform-specific error_code.
 std::error_code openFileForRead(const Twine &Name, int &ResultFD,
+                                OpenFlags Flags = OF_None,
                                 SmallVectorImpl<char> *RealPath = nullptr);
 
+/// @brief Opens the file with the given name in a read-only mode, returning
+/// its open file descriptor.
+///
+/// The caller is responsible for closing the freeing the file once they are
+/// finished with it.
+///
+/// @param Name The path of the file to open, relative or absolute.
+/// @param RealPath If nonnull, extra work is done to determine the real path
+///                 of the opened file, and that path is stored in this
+///                 location.
+/// @returns a platform-specific file descriptor if \a Name has been opened,
+///          otherwise an error object.
+Expected<file_t>
+openNativeFileForRead(const Twine &Name, OpenFlags Flags = OF_None,
+                      SmallVectorImpl<char> *RealPath = nullptr);
+
+/// @brief Close the file object.  This should be used instead of ::close for
+/// portability.
+///
+/// @param F On input, this is the file to close.  On output, the file is
+/// set to kInvalidFile.
+void closeFile(file_t &F);
+
 std::error_code getUniqueID(const Twine Path, UniqueID &Result);
 
-/// @brief Get disk space usage information.
+/// Get disk space usage information.
 ///
 /// Note: Users must be careful about "Time Of Check, Time Of Use" kind of bug.
 /// Note: Windows reports results according to the quota allocated to the user.
@@ -849,7 +1052,9 @@
   /// Platform-specific mapping state.
   size_t Size;
   void *Mapping;
-  int FD;
+#ifdef _WIN32
+  void *FileHandle;
+#endif
   mapmode Mode;
 
   std::error_code init(int FD, uint64_t Offset, mapmode Mode);
@@ -956,14 +1161,16 @@
     SmallString<128> path_storage;
     ec = detail::directory_iterator_construct(
         *State, path.toStringRef(path_storage), FollowSymlinks);
+    update_error_code_for_current_entry(ec);
   }
 
   explicit directory_iterator(const directory_entry &de, std::error_code &ec,
                               bool follow_symlinks = true)
       : FollowSymlinks(follow_symlinks) {
     State = std::make_shared<detail::DirIterState>();
-    ec =
-        detail::directory_iterator_construct(*State, de.path(), FollowSymlinks);
+    ec = detail::directory_iterator_construct(
+        *State, de.path(), FollowSymlinks);
+    update_error_code_for_current_entry(ec);
   }
 
   /// Construct end iterator.
@@ -972,6 +1179,7 @@
   // No operator++ because we need error_code.
   directory_iterator &increment(std::error_code &ec) {
     ec = directory_iterator_increment(*State);
+    update_error_code_for_current_entry(ec);
     return *this;
   }
 
@@ -993,6 +1201,24 @@
   }
   // Other members as required by
   // C++ Std, 24.1.1 Input iterators [input.iterators]
+
+private:
+  // Checks if current entry is valid and populates error code. For example,
+  // current entry may not exist due to broken symbol links.
+  void update_error_code_for_current_entry(std::error_code &ec) {
+    // Bail out if error has already occured earlier to avoid overwriting it.
+    if (ec)
+      return;
+
+    // Empty directory entry is used to mark the end of an interation, it's not
+    // an error.
+    if (State->CurrentEntry == directory_entry())
+      return;
+
+    ErrorOr<basic_file_status> status = State->CurrentEntry.status();
+    if (!status)
+      ec = status.getError();
+  }
 };
 
 namespace detail {
@@ -1030,11 +1256,9 @@
     if (State->HasNoPushRequest)
       State->HasNoPushRequest = false;
     else {
-      ErrorOr<basic_file_status> st = State->Stack.top()->status();
-      if (!st) return *this;
-      if (is_directory(*st)) {
+      ErrorOr<basic_file_status> status = State->Stack.top()->status();
+      if (status && is_directory(*status)) {
         State->Stack.push(directory_iterator(*State->Stack.top(), ec, Follow));
-        if (ec) return *this;
         if (State->Stack.top() != end_itr) {
           ++State->Level;
           return *this;
diff --git a/linux-x64/clang/include/llvm/Support/FormatAdapters.h b/linux-x64/clang/include/llvm/Support/FormatAdapters.h
index 197beb7..8320eaa 100644
--- a/linux-x64/clang/include/llvm/Support/FormatAdapters.h
+++ b/linux-x64/clang/include/llvm/Support/FormatAdapters.h
@@ -12,6 +12,7 @@
 
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Error.h"
 #include "llvm/Support/FormatCommon.h"
 #include "llvm/Support/FormatVariadicDetails.h"
 #include "llvm/Support/raw_ostream.h"
@@ -19,7 +20,7 @@
 namespace llvm {
 template <typename T> class FormatAdapter : public detail::format_adapter {
 protected:
-  explicit FormatAdapter(T &&Item) : Item(Item) {}
+  explicit FormatAdapter(T &&Item) : Item(std::forward<T>(Item)) {}
 
   T Item;
 };
@@ -71,6 +72,14 @@
     }
   }
 };
+
+class ErrorAdapter : public FormatAdapter<Error> {
+public:
+  ErrorAdapter(Error &&Item) : FormatAdapter(std::move(Item)) {}
+  ErrorAdapter(ErrorAdapter &&) = default;
+  ~ErrorAdapter() { consumeError(std::move(Item)); }
+  void format(llvm::raw_ostream &Stream, StringRef Style) { Stream << Item; }
+};
 }
 
 template <typename T>
@@ -88,6 +97,13 @@
 detail::RepeatAdapter<T> fmt_repeat(T &&Item, size_t Count) {
   return detail::RepeatAdapter<T>(std::forward<T>(Item), Count);
 }
+
+// llvm::Error values must be consumed before being destroyed.
+// Wrapping an error in fmt_consume explicitly indicates that the formatv_object
+// should take ownership and consume it.
+inline detail::ErrorAdapter fmt_consume(Error &&Item) {
+  return detail::ErrorAdapter(std::move(Item));
+}
 }
 
 #endif
diff --git a/linux-x64/clang/include/llvm/Support/FormatVariadic.h b/linux-x64/clang/include/llvm/Support/FormatVariadic.h
index 8c08a7d..b0f5825 100644
--- a/linux-x64/clang/include/llvm/Support/FormatVariadic.h
+++ b/linux-x64/clang/include/llvm/Support/FormatVariadic.h
@@ -118,7 +118,7 @@
 
       auto W = Adapters[R.Index];
 
-      FmtAlign Align(*W, R.Where, R.Align);
+      FmtAlign Align(*W, R.Where, R.Align, R.Pad);
       Align.format(S, R.Options);
     }
   }
@@ -168,7 +168,7 @@
   }
 };
 
-// \brief Format text given a format string and replacement parameters.
+// Format text given a format string and replacement parameters.
 //
 // ===General Description===
 //
@@ -237,6 +237,8 @@
 //      for type T containing a method whose signature is:
 //      void format(const T &Obj, raw_ostream &Stream, StringRef Options)
 //      Then this method is invoked as described in Step 1.
+//   3. If an appropriate operator<< for raw_ostream exists, it will be used.
+//      For this to work, (raw_ostream& << const T&) must return raw_ostream&.
 //
 // If a match cannot be found through either of the above methods, a compiler
 // error is generated.
@@ -258,13 +260,6 @@
       std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
 }
 
-// Allow a formatv_object to be formatted (no options supported).
-template <typename T> struct format_provider<formatv_object<T>> {
-  static void format(const formatv_object<T> &V, raw_ostream &OS, StringRef) {
-    OS << V;
-  }
-};
-
 } // end namespace llvm
 
 #endif // LLVM_SUPPORT_FORMATVARIADIC_H
diff --git a/linux-x64/clang/include/llvm/Support/FormatVariadicDetails.h b/linux-x64/clang/include/llvm/Support/FormatVariadicDetails.h
index 9b60462..56dda43 100644
--- a/linux-x64/clang/include/llvm/Support/FormatVariadicDetails.h
+++ b/linux-x64/clang/include/llvm/Support/FormatVariadicDetails.h
@@ -17,6 +17,7 @@
 
 namespace llvm {
 template <typename T, typename Enable = void> struct format_provider {};
+class Error;
 
 namespace detail {
 class format_adapter {
@@ -38,6 +39,17 @@
   }
 };
 
+template <typename T>
+class stream_operator_format_adapter : public format_adapter {
+  T Item;
+
+public:
+  explicit stream_operator_format_adapter(T &&Item)
+      : Item(std::forward<T>(Item)) {}
+
+  void format(llvm::raw_ostream &S, StringRef Options) override { S << Item; }
+};
+
 template <typename T> class missing_format_adapter;
 
 // Test if format_provider<T> is defined on T and contains a member function
@@ -59,6 +71,23 @@
       (sizeof(test<llvm::format_provider<Decayed>>(nullptr)) == 1);
 };
 
+// Test if raw_ostream& << T -> raw_ostream& is findable via ADL.
+template <class T> class has_StreamOperator {
+public:
+  using ConstRefT = const typename std::decay<T>::type &;
+
+  template <typename U>
+  static char test(typename std::enable_if<
+                   std::is_same<decltype(std::declval<llvm::raw_ostream &>()
+                                         << std::declval<U>()),
+                                llvm::raw_ostream &>::value,
+                   int *>::type);
+
+  template <typename U> static double test(...);
+
+  static bool const value = (sizeof(test<ConstRefT>(nullptr)) == 1);
+};
+
 // Simple template that decides whether a type T should use the member-function
 // based format() invocation.
 template <typename T>
@@ -77,15 +106,24 @@
           bool, !uses_format_member<T>::value && has_FormatProvider<T>::value> {
 };
 
+// Simple template that decides whether a type T should use the operator<<
+// based format() invocation.  This takes last priority.
+template <typename T>
+struct uses_stream_operator
+    : public std::integral_constant<bool, !uses_format_member<T>::value &&
+                                              !uses_format_provider<T>::value &&
+                                              has_StreamOperator<T>::value> {};
+
 // Simple template that decides whether a type T has neither a member-function
 // nor format_provider based implementation that it can use.  Mostly used so
 // that the compiler spits out a nice diagnostic when a type with no format
 // implementation can be located.
 template <typename T>
 struct uses_missing_provider
-    : public std::integral_constant<bool,
-                                    !uses_format_member<T>::value &&
-                                        !uses_format_provider<T>::value> {};
+    : public std::integral_constant<bool, !uses_format_member<T>::value &&
+                                              !uses_format_provider<T>::value &&
+                                              !uses_stream_operator<T>::value> {
+};
 
 template <typename T>
 typename std::enable_if<uses_format_member<T>::value, T>::type
@@ -101,6 +139,19 @@
 }
 
 template <typename T>
+typename std::enable_if<uses_stream_operator<T>::value,
+                        stream_operator_format_adapter<T>>::type
+build_format_adapter(T &&Item) {
+  // If the caller passed an Error by value, then stream_operator_format_adapter
+  // would be responsible for consuming it.
+  // Make the caller opt into this by calling fmt_consume().
+  static_assert(
+      !std::is_same<llvm::Error, typename std::remove_cv<T>::type>::value,
+      "llvm::Error-by-value must be wrapped in fmt_consume() for formatv");
+  return stream_operator_format_adapter<T>(std::forward<T>(Item));
+}
+
+template <typename T>
 typename std::enable_if<uses_missing_provider<T>::value,
                         missing_format_adapter<T>>::type
 build_format_adapter(T &&Item) {
diff --git a/linux-x64/clang/include/llvm/Support/GenericDomTree.h b/linux-x64/clang/include/llvm/Support/GenericDomTree.h
index bcaac6b..c716e4a 100644
--- a/linux-x64/clang/include/llvm/Support/GenericDomTree.h
+++ b/linux-x64/clang/include/llvm/Support/GenericDomTree.h
@@ -50,7 +50,7 @@
 struct SemiNCAInfo;
 }  // namespace DomTreeBuilder
 
-/// \brief Base class for the actual dominator tree node.
+/// Base class for the actual dominator tree node.
 template <class NodeT> class DomTreeNodeBase {
   friend class PostDominatorTree;
   friend class DominatorTreeBase<NodeT, false>;
@@ -237,7 +237,7 @@
 bool Verify(const DomTreeT &DT, typename DomTreeT::VerificationLevel VL);
 }  // namespace DomTreeBuilder
 
-/// \brief Core dominator tree base class.
+/// Core dominator tree base class.
 ///
 /// This class is a generic template over graph nodes. It is instantiated for
 /// various graphs in the LLVM IR or in the code generator.
@@ -351,7 +351,7 @@
   /// block.  This is the same as using operator[] on this class.  The result
   /// may (but is not required to) be null for a forward (backwards)
   /// statically unreachable block.
-  DomTreeNodeBase<NodeT> *getNode(NodeT *BB) const {
+  DomTreeNodeBase<NodeT> *getNode(const NodeT *BB) const {
     auto I = DomTreeNodes.find(BB);
     if (I != DomTreeNodes.end())
       return I->second.get();
@@ -359,7 +359,9 @@
   }
 
   /// See getNode.
-  DomTreeNodeBase<NodeT> *operator[](NodeT *BB) const { return getNode(BB); }
+  DomTreeNodeBase<NodeT> *operator[](const NodeT *BB) const {
+    return getNode(BB);
+  }
 
   /// getRootNode - This returns the entry node for the CFG of the function.  If
   /// this tree represents the post-dominance relations for a function, however,
@@ -528,11 +530,10 @@
   /// CFG about its children and inverse children. This implies that deletions
   /// of CFG edges must not delete the CFG nodes before calling this function.
   ///
-  /// Batch updates should be generally faster when performing longer sequences
-  /// of updates than calling insertEdge/deleteEdge manually multiple times, as
-  /// it can reorder the updates and remove redundant ones internally.
-  /// The batch updater is also able to detect sequences of zero and exactly one
-  /// update -- it's optimized to do less work in these cases.
+  /// The applyUpdates function can reorder the updates and remove redundant
+  /// ones internally. The batch updater is also able to detect sequences of
+  /// zero and exactly one update -- it's optimized to do less work in these
+  /// cases.
   ///
   /// Note that for postdominators it automatically takes care of applying
   /// updates on reverse edges internally (so there's no need to swap the
@@ -852,13 +853,18 @@
     assert(isReachableFromEntry(B));
     assert(isReachableFromEntry(A));
 
+    const unsigned ALevel = A->getLevel();
     const DomTreeNodeBase<NodeT> *IDom;
-    while ((IDom = B->getIDom()) != nullptr && IDom != A && IDom != B)
+
+    // Don't walk nodes above A's subtree. When we reach A's level, we must
+    // either find A or be in some other subtree not dominated by A.
+    while ((IDom = B->getIDom()) != nullptr && IDom->getLevel() >= ALevel)
       B = IDom;  // Walk up the tree
-    return IDom != nullptr;
+
+    return B == A;
   }
 
-  /// \brief Wipe this tree's state without releasing any resources.
+  /// Wipe this tree's state without releasing any resources.
   ///
   /// This is essentially a post-move helper only. It leaves the object in an
   /// assignable and destroyable state, but otherwise invalid.
diff --git a/linux-x64/clang/include/llvm/Support/GenericDomTreeConstruction.h b/linux-x64/clang/include/llvm/Support/GenericDomTreeConstruction.h
index 7ec0638..103ff8c 100644
--- a/linux-x64/clang/include/llvm/Support/GenericDomTreeConstruction.h
+++ b/linux-x64/clang/include/llvm/Support/GenericDomTreeConstruction.h
@@ -82,8 +82,8 @@
     // Note that these children are from the future relative to what the
     // DominatorTree knows about -- using them to gets us some snapshot of the
     // CFG from the past (relative to the state of the CFG).
-    DenseMap<NodePtr, SmallDenseSet<NodePtrAndKind, 4>> FutureSuccessors;
-    DenseMap<NodePtr, SmallDenseSet<NodePtrAndKind, 4>> FuturePredecessors;
+    DenseMap<NodePtr, SmallVector<NodePtrAndKind, 4>> FutureSuccessors;
+    DenseMap<NodePtr, SmallVector<NodePtrAndKind, 4>> FuturePredecessors;
     // Remembers if the whole tree was recalculated at some point during the
     // current batch update.
     bool IsRecalculated = false;
@@ -146,15 +146,15 @@
           assert(llvm::find(Res, Child) != Res.end()
                  && "Expected child not found in the CFG");
           Res.erase(std::remove(Res.begin(), Res.end(), Child), Res.end());
-          DEBUG(dbgs() << "\tHiding edge " << BlockNamePrinter(N) << " -> "
-                       << BlockNamePrinter(Child) << "\n");
+          LLVM_DEBUG(dbgs() << "\tHiding edge " << BlockNamePrinter(N) << " -> "
+                            << BlockNamePrinter(Child) << "\n");
         } else {
           // If there's an deletion in the future, it means that the edge cannot
           // exist in the current CFG, but existed in it before.
           assert(llvm::find(Res, Child) == Res.end() &&
                  "Unexpected child found in the CFG");
-          DEBUG(dbgs() << "\tShowing virtual edge " << BlockNamePrinter(N)
-                       << " -> " << BlockNamePrinter(Child) << "\n");
+          LLVM_DEBUG(dbgs() << "\tShowing virtual edge " << BlockNamePrinter(N)
+                            << " -> " << BlockNamePrinter(Child) << "\n");
           Res.push_back(Child);
         }
       }
@@ -387,7 +387,7 @@
     SNCA.addVirtualRoot();
     unsigned Num = 1;
 
-    DEBUG(dbgs() << "\t\tLooking for trivial roots\n");
+    LLVM_DEBUG(dbgs() << "\t\tLooking for trivial roots\n");
 
     // Step #1: Find all the trivial roots that are going to will definitely
     // remain tree roots.
@@ -404,14 +404,14 @@
         Roots.push_back(N);
         // Run DFS not to walk this part of CFG later.
         Num = SNCA.runDFS(N, Num, AlwaysDescend, 1);
-        DEBUG(dbgs() << "Found a new trivial root: " << BlockNamePrinter(N)
-                     << "\n");
-        DEBUG(dbgs() << "Last visited node: "
-                     << BlockNamePrinter(SNCA.NumToNode[Num]) << "\n");
+        LLVM_DEBUG(dbgs() << "Found a new trivial root: " << BlockNamePrinter(N)
+                          << "\n");
+        LLVM_DEBUG(dbgs() << "Last visited node: "
+                          << BlockNamePrinter(SNCA.NumToNode[Num]) << "\n");
       }
     }
 
-    DEBUG(dbgs() << "\t\tLooking for non-trivial roots\n");
+    LLVM_DEBUG(dbgs() << "\t\tLooking for non-trivial roots\n");
 
     // Step #2: Find all non-trivial root candidates. Those are CFG nodes that
     // are reverse-unreachable were not visited by previous DFS walks (i.e. CFG
@@ -431,8 +431,8 @@
       SmallPtrSet<NodePtr, 4> ConnectToExitBlock;
       for (const NodePtr I : nodes(DT.Parent)) {
         if (SNCA.NodeToInfo.count(I) == 0) {
-          DEBUG(dbgs() << "\t\t\tVisiting node " << BlockNamePrinter(I)
-                       << "\n");
+          LLVM_DEBUG(dbgs()
+                     << "\t\t\tVisiting node " << BlockNamePrinter(I) << "\n");
           // Find the furthest away we can get by following successors, then
           // follow them in reverse.  This gives us some reasonable answer about
           // the post-dom tree inside any infinite loop. In particular, it
@@ -443,47 +443,49 @@
           // the lowest and highest points in the infinite loop.  In theory, it
           // would be nice to give the canonical backedge for the loop, but it's
           // expensive and does not always lead to a minimal set of roots.
-          DEBUG(dbgs() << "\t\t\tRunning forward DFS\n");
+          LLVM_DEBUG(dbgs() << "\t\t\tRunning forward DFS\n");
 
           const unsigned NewNum = SNCA.runDFS<true>(I, Num, AlwaysDescend, Num);
           const NodePtr FurthestAway = SNCA.NumToNode[NewNum];
-          DEBUG(dbgs() << "\t\t\tFound a new furthest away node "
-                       << "(non-trivial root): "
-                       << BlockNamePrinter(FurthestAway) << "\n");
+          LLVM_DEBUG(dbgs() << "\t\t\tFound a new furthest away node "
+                            << "(non-trivial root): "
+                            << BlockNamePrinter(FurthestAway) << "\n");
           ConnectToExitBlock.insert(FurthestAway);
           Roots.push_back(FurthestAway);
-          DEBUG(dbgs() << "\t\t\tPrev DFSNum: " << Num << ", new DFSNum: "
-                       << NewNum << "\n\t\t\tRemoving DFS info\n");
+          LLVM_DEBUG(dbgs() << "\t\t\tPrev DFSNum: " << Num << ", new DFSNum: "
+                            << NewNum << "\n\t\t\tRemoving DFS info\n");
           for (unsigned i = NewNum; i > Num; --i) {
             const NodePtr N = SNCA.NumToNode[i];
-            DEBUG(dbgs() << "\t\t\t\tRemoving DFS info for "
-                         << BlockNamePrinter(N) << "\n");
+            LLVM_DEBUG(dbgs() << "\t\t\t\tRemoving DFS info for "
+                              << BlockNamePrinter(N) << "\n");
             SNCA.NodeToInfo.erase(N);
             SNCA.NumToNode.pop_back();
           }
           const unsigned PrevNum = Num;
-          DEBUG(dbgs() << "\t\t\tRunning reverse DFS\n");
+          LLVM_DEBUG(dbgs() << "\t\t\tRunning reverse DFS\n");
           Num = SNCA.runDFS(FurthestAway, Num, AlwaysDescend, 1);
           for (unsigned i = PrevNum + 1; i <= Num; ++i)
-            DEBUG(dbgs() << "\t\t\t\tfound node "
-                         << BlockNamePrinter(SNCA.NumToNode[i]) << "\n");
+            LLVM_DEBUG(dbgs() << "\t\t\t\tfound node "
+                              << BlockNamePrinter(SNCA.NumToNode[i]) << "\n");
         }
       }
     }
 
-    DEBUG(dbgs() << "Total: " << Total << ", Num: " << Num << "\n");
-    DEBUG(dbgs() << "Discovered CFG nodes:\n");
-    DEBUG(for (size_t i = 0; i <= Num; ++i) dbgs()
-          << i << ": " << BlockNamePrinter(SNCA.NumToNode[i]) << "\n");
+    LLVM_DEBUG(dbgs() << "Total: " << Total << ", Num: " << Num << "\n");
+    LLVM_DEBUG(dbgs() << "Discovered CFG nodes:\n");
+    LLVM_DEBUG(for (size_t i = 0; i <= Num; ++i) dbgs()
+               << i << ": " << BlockNamePrinter(SNCA.NumToNode[i]) << "\n");
 
     assert((Total + 1 == Num) && "Everything should have been visited");
 
     // Step #3: If we found some non-trivial roots, make them non-redundant.
     if (HasNonTrivialRoots) RemoveRedundantRoots(DT, BUI, Roots);
 
-    DEBUG(dbgs() << "Found roots: ");
-    DEBUG(for (auto *Root : Roots) dbgs() << BlockNamePrinter(Root) << " ");
-    DEBUG(dbgs() << "\n");
+    LLVM_DEBUG(dbgs() << "Found roots: ");
+    LLVM_DEBUG(for (auto *Root
+                    : Roots) dbgs()
+               << BlockNamePrinter(Root) << " ");
+    LLVM_DEBUG(dbgs() << "\n");
 
     return Roots;
   }
@@ -499,7 +501,7 @@
   static void RemoveRedundantRoots(const DomTreeT &DT, BatchUpdatePtr BUI,
                                    RootsT &Roots) {
     assert(IsPostDom && "This function is for postdominators only");
-    DEBUG(dbgs() << "Removing redundant roots\n");
+    LLVM_DEBUG(dbgs() << "Removing redundant roots\n");
 
     SemiNCAInfo SNCA(BUI);
 
@@ -507,8 +509,8 @@
       auto &Root = Roots[i];
       // Trivial roots are always non-redundant.
       if (!HasForwardSuccessors(Root, BUI)) continue;
-      DEBUG(dbgs() << "\tChecking if " << BlockNamePrinter(Root)
-                   << " remains a root\n");
+      LLVM_DEBUG(dbgs() << "\tChecking if " << BlockNamePrinter(Root)
+                        << " remains a root\n");
       SNCA.clear();
       // Do a forward walk looking for the other roots.
       const unsigned Num = SNCA.runDFS<true>(Root, 0, AlwaysDescend, 0);
@@ -520,9 +522,9 @@
         // root from the set of roots, as it is reverse-reachable from the other
         // one.
         if (llvm::find(Roots, N) != Roots.end()) {
-          DEBUG(dbgs() << "\tForward DFS walk found another root "
-                       << BlockNamePrinter(N) << "\n\tRemoving root "
-                       << BlockNamePrinter(Root) << "\n");
+          LLVM_DEBUG(dbgs() << "\tForward DFS walk found another root "
+                            << BlockNamePrinter(N) << "\n\tRemoving root "
+                            << BlockNamePrinter(Root) << "\n");
           std::swap(Root, Roots.back());
           Roots.pop_back();
 
@@ -563,7 +565,8 @@
     SNCA.runSemiNCA(DT);
     if (BUI) {
       BUI->IsRecalculated = true;
-      DEBUG(dbgs() << "DomTree recalculated, skipping future batch updates\n");
+      LLVM_DEBUG(
+          dbgs() << "DomTree recalculated, skipping future batch updates\n");
     }
 
     if (DT.Roots.empty()) return;
@@ -585,8 +588,8 @@
     // Loop over all of the discovered blocks in the function...
     for (size_t i = 1, e = NumToNode.size(); i != e; ++i) {
       NodePtr W = NumToNode[i];
-      DEBUG(dbgs() << "\tdiscovered a new reachable node "
-                   << BlockNamePrinter(W) << "\n");
+      LLVM_DEBUG(dbgs() << "\tdiscovered a new reachable node "
+                        << BlockNamePrinter(W) << "\n");
 
       // Don't replace this with 'count', the insertion side effect is important
       if (DT.DomTreeNodes[W]) continue;  // Haven't calculated this node yet?
@@ -638,8 +641,8 @@
     assert((From || IsPostDom) &&
            "From has to be a valid CFG node or a virtual root");
     assert(To && "Cannot be a nullptr");
-    DEBUG(dbgs() << "Inserting edge " << BlockNamePrinter(From) << " -> "
-                 << BlockNamePrinter(To) << "\n");
+    LLVM_DEBUG(dbgs() << "Inserting edge " << BlockNamePrinter(From) << " -> "
+                      << BlockNamePrinter(To) << "\n");
     TreeNodePtr FromTN = DT.getNode(From);
 
     if (!FromTN) {
@@ -678,8 +681,8 @@
     if (RIt == DT.Roots.end())
       return false;  // To is not a root, nothing to update.
 
-    DEBUG(dbgs() << "\t\tAfter the insertion, " << BlockNamePrinter(To)
-                 << " is no longer a root\n\t\tRebuilding the tree!!!\n");
+    LLVM_DEBUG(dbgs() << "\t\tAfter the insertion, " << BlockNamePrinter(To)
+                      << " is no longer a root\n\t\tRebuilding the tree!!!\n");
 
     CalculateFromScratch(DT, BUI);
     return true;
@@ -706,8 +709,8 @@
       // can make a different (implicit) decision about which node within an
       // infinite loop becomes a root.
 
-      DEBUG(dbgs() << "Roots are different in updated trees\n"
-                   << "The entire tree needs to be rebuilt\n");
+      LLVM_DEBUG(dbgs() << "Roots are different in updated trees\n"
+                        << "The entire tree needs to be rebuilt\n");
       // It may be possible to update the tree without recalculating it, but
       // we do not know yet how to do it, and it happens rarely in practise.
       CalculateFromScratch(DT, BUI);
@@ -718,8 +721,8 @@
   // Handles insertion to a node already in the dominator tree.
   static void InsertReachable(DomTreeT &DT, const BatchUpdatePtr BUI,
                               const TreeNodePtr From, const TreeNodePtr To) {
-    DEBUG(dbgs() << "\tReachable " << BlockNamePrinter(From->getBlock())
-                 << " -> " << BlockNamePrinter(To->getBlock()) << "\n");
+    LLVM_DEBUG(dbgs() << "\tReachable " << BlockNamePrinter(From->getBlock())
+                      << " -> " << BlockNamePrinter(To->getBlock()) << "\n");
     if (IsPostDom && UpdateRootsBeforeInsertion(DT, BUI, From, To)) return;
     // DT.findNCD expects both pointers to be valid. When From is a virtual
     // root, then its CFG block pointer is a nullptr, so we have to 'compute'
@@ -732,7 +735,7 @@
     const TreeNodePtr NCD = DT.getNode(NCDBlock);
     assert(NCD);
 
-    DEBUG(dbgs() << "\t\tNCA == " << BlockNamePrinter(NCD) << "\n");
+    LLVM_DEBUG(dbgs() << "\t\tNCA == " << BlockNamePrinter(NCD) << "\n");
     const TreeNodePtr ToIDom = To->getIDom();
 
     // Nothing affected -- NCA property holds.
@@ -741,18 +744,20 @@
 
     // Identify and collect affected nodes.
     InsertionInfo II;
-    DEBUG(dbgs() << "Marking " << BlockNamePrinter(To) << " as affected\n");
+    LLVM_DEBUG(dbgs() << "Marking " << BlockNamePrinter(To)
+                      << " as affected\n");
     II.Affected.insert(To);
     const unsigned ToLevel = To->getLevel();
-    DEBUG(dbgs() << "Putting " << BlockNamePrinter(To) << " into a Bucket\n");
+    LLVM_DEBUG(dbgs() << "Putting " << BlockNamePrinter(To)
+                      << " into a Bucket\n");
     II.Bucket.push({ToLevel, To});
 
     while (!II.Bucket.empty()) {
       const TreeNodePtr CurrentNode = II.Bucket.top().second;
       const unsigned  CurrentLevel = CurrentNode->getLevel();
       II.Bucket.pop();
-      DEBUG(dbgs() << "\tAdding to Visited and AffectedQueue: "
-                   << BlockNamePrinter(CurrentNode) << "\n");
+      LLVM_DEBUG(dbgs() << "\tAdding to Visited and AffectedQueue: "
+                        << BlockNamePrinter(CurrentNode) << "\n");
 
       II.Visited.insert({CurrentNode, CurrentLevel});
       II.AffectedQueue.push_back(CurrentNode);
@@ -770,8 +775,8 @@
                              const TreeNodePtr TN, const unsigned RootLevel,
                              const TreeNodePtr NCD, InsertionInfo &II) {
     const unsigned NCDLevel = NCD->getLevel();
-    DEBUG(dbgs() << "Visiting " << BlockNamePrinter(TN) << ",  RootLevel "
-                 << RootLevel << "\n");
+    LLVM_DEBUG(dbgs() << "Visiting " << BlockNamePrinter(TN) << ",  RootLevel "
+                      << RootLevel << "\n");
 
     SmallVector<TreeNodePtr, 8> Stack = {TN};
     assert(TN->getBlock() && II.Visited.count(TN) && "Preconditions!");
@@ -780,7 +785,7 @@
 
     do {
       TreeNodePtr Next = Stack.pop_back_val();
-      DEBUG(dbgs() << " Next: " << BlockNamePrinter(Next) << "\n");
+      LLVM_DEBUG(dbgs() << " Next: " << BlockNamePrinter(Next) << "\n");
 
       for (const NodePtr Succ :
            ChildrenGetter<IsPostDom>::Get(Next->getBlock(), BUI)) {
@@ -788,8 +793,8 @@
         assert(SuccTN && "Unreachable successor found at reachable insertion");
         const unsigned SuccLevel = SuccTN->getLevel();
 
-        DEBUG(dbgs() << "\tSuccessor " << BlockNamePrinter(Succ) << ", level = "
-                     << SuccLevel << "\n");
+        LLVM_DEBUG(dbgs() << "\tSuccessor " << BlockNamePrinter(Succ)
+                          << ", level = " << SuccLevel << "\n");
 
         // Do not process the same node multiple times.
         if (Processed.count(Next) > 0)
@@ -798,11 +803,11 @@
         // Succ dominated by subtree From -- not affected.
         // (Based on the lemma 2.5 from the second paper.)
         if (SuccLevel > RootLevel) {
-          DEBUG(dbgs() << "\t\tDominated by subtree From\n");
+          LLVM_DEBUG(dbgs() << "\t\tDominated by subtree From\n");
           if (II.Visited.count(SuccTN) != 0) {
-            DEBUG(dbgs() << "\t\t\talready visited at level "
-                         << II.Visited[SuccTN] << "\n\t\t\tcurrent level "
-                         << RootLevel << ")\n");
+            LLVM_DEBUG(dbgs() << "\t\t\talready visited at level "
+                              << II.Visited[SuccTN] << "\n\t\t\tcurrent level "
+                              << RootLevel << ")\n");
 
             // A node can be necessary to visit again if we see it again at
             // a lower level than before.
@@ -810,15 +815,15 @@
               continue;
           }
 
-          DEBUG(dbgs() << "\t\tMarking visited not affected "
-                       << BlockNamePrinter(Succ) << "\n");
+          LLVM_DEBUG(dbgs() << "\t\tMarking visited not affected "
+                            << BlockNamePrinter(Succ) << "\n");
           II.Visited.insert({SuccTN, RootLevel});
           II.VisitedNotAffectedQueue.push_back(SuccTN);
           Stack.push_back(SuccTN);
         } else if ((SuccLevel > NCDLevel + 1) &&
             II.Affected.count(SuccTN) == 0) {
-          DEBUG(dbgs() << "\t\tMarking affected and adding "
-                       << BlockNamePrinter(Succ) << " to a Bucket\n");
+          LLVM_DEBUG(dbgs() << "\t\tMarking affected and adding "
+                            << BlockNamePrinter(Succ) << " to a Bucket\n");
           II.Affected.insert(SuccTN);
           II.Bucket.push({SuccLevel, SuccTN});
         }
@@ -831,11 +836,11 @@
   // Updates immediate dominators and levels after insertion.
   static void UpdateInsertion(DomTreeT &DT, const BatchUpdatePtr BUI,
                               const TreeNodePtr NCD, InsertionInfo &II) {
-    DEBUG(dbgs() << "Updating NCD = " << BlockNamePrinter(NCD) << "\n");
+    LLVM_DEBUG(dbgs() << "Updating NCD = " << BlockNamePrinter(NCD) << "\n");
 
     for (const TreeNodePtr TN : II.AffectedQueue) {
-      DEBUG(dbgs() << "\tIDom(" << BlockNamePrinter(TN)
-                   << ") = " << BlockNamePrinter(NCD) << "\n");
+      LLVM_DEBUG(dbgs() << "\tIDom(" << BlockNamePrinter(TN)
+                        << ") = " << BlockNamePrinter(NCD) << "\n");
       TN->setIDom(NCD);
     }
 
@@ -844,12 +849,13 @@
   }
 
   static void UpdateLevelsAfterInsertion(InsertionInfo &II) {
-    DEBUG(dbgs() << "Updating levels for visited but not affected nodes\n");
+    LLVM_DEBUG(
+        dbgs() << "Updating levels for visited but not affected nodes\n");
 
     for (const TreeNodePtr TN : II.VisitedNotAffectedQueue) {
-      DEBUG(dbgs() << "\tlevel(" << BlockNamePrinter(TN) << ") = ("
-                   << BlockNamePrinter(TN->getIDom()) << ") "
-                   << TN->getIDom()->getLevel() << " + 1\n");
+      LLVM_DEBUG(dbgs() << "\tlevel(" << BlockNamePrinter(TN) << ") = ("
+                        << BlockNamePrinter(TN->getIDom()) << ") "
+                        << TN->getIDom()->getLevel() << " + 1\n");
       TN->UpdateLevel();
     }
   }
@@ -857,23 +863,24 @@
   // Handles insertion to previously unreachable nodes.
   static void InsertUnreachable(DomTreeT &DT, const BatchUpdatePtr BUI,
                                 const TreeNodePtr From, const NodePtr To) {
-    DEBUG(dbgs() << "Inserting " << BlockNamePrinter(From)
-                 << " -> (unreachable) " << BlockNamePrinter(To) << "\n");
+    LLVM_DEBUG(dbgs() << "Inserting " << BlockNamePrinter(From)
+                      << " -> (unreachable) " << BlockNamePrinter(To) << "\n");
 
     // Collect discovered edges to already reachable nodes.
     SmallVector<std::pair<NodePtr, TreeNodePtr>, 8> DiscoveredEdgesToReachable;
     // Discover and connect nodes that became reachable with the insertion.
     ComputeUnreachableDominators(DT, BUI, To, From, DiscoveredEdgesToReachable);
 
-    DEBUG(dbgs() << "Inserted " << BlockNamePrinter(From)
-                 << " -> (prev unreachable) " << BlockNamePrinter(To) << "\n");
+    LLVM_DEBUG(dbgs() << "Inserted " << BlockNamePrinter(From)
+                      << " -> (prev unreachable) " << BlockNamePrinter(To)
+                      << "\n");
 
     // Used the discovered edges and inset discovered connecting (incoming)
     // edges.
     for (const auto &Edge : DiscoveredEdgesToReachable) {
-      DEBUG(dbgs() << "\tInserting discovered connecting edge "
-                   << BlockNamePrinter(Edge.first) << " -> "
-                   << BlockNamePrinter(Edge.second) << "\n");
+      LLVM_DEBUG(dbgs() << "\tInserting discovered connecting edge "
+                        << BlockNamePrinter(Edge.first) << " -> "
+                        << BlockNamePrinter(Edge.second) << "\n");
       InsertReachable(DT, BUI, DT.getNode(Edge.first), Edge.second);
     }
   }
@@ -901,14 +908,14 @@
     SNCA.runSemiNCA(DT);
     SNCA.attachNewSubtree(DT, Incoming);
 
-    DEBUG(dbgs() << "After adding unreachable nodes\n");
+    LLVM_DEBUG(dbgs() << "After adding unreachable nodes\n");
   }
 
   static void DeleteEdge(DomTreeT &DT, const BatchUpdatePtr BUI,
                          const NodePtr From, const NodePtr To) {
     assert(From && To && "Cannot disconnect nullptrs");
-    DEBUG(dbgs() << "Deleting edge " << BlockNamePrinter(From) << " -> "
-                 << BlockNamePrinter(To) << "\n");
+    LLVM_DEBUG(dbgs() << "Deleting edge " << BlockNamePrinter(From) << " -> "
+                      << BlockNamePrinter(To) << "\n");
 
 #ifndef NDEBUG
     // Ensure that the edge was in fact deleted from the CFG before informing
@@ -928,8 +935,9 @@
 
     const TreeNodePtr ToTN = DT.getNode(To);
     if (!ToTN) {
-      DEBUG(dbgs() << "\tTo (" << BlockNamePrinter(To)
-                   << ") already unreachable -- there is no edge to delete\n");
+      LLVM_DEBUG(
+          dbgs() << "\tTo (" << BlockNamePrinter(To)
+                 << ") already unreachable -- there is no edge to delete\n");
       return;
     }
 
@@ -941,8 +949,8 @@
       DT.DFSInfoValid = false;
 
       const TreeNodePtr ToIDom = ToTN->getIDom();
-      DEBUG(dbgs() << "\tNCD " << BlockNamePrinter(NCD) << ", ToIDom "
-                   << BlockNamePrinter(ToIDom) << "\n");
+      LLVM_DEBUG(dbgs() << "\tNCD " << BlockNamePrinter(NCD) << ", ToIDom "
+                        << BlockNamePrinter(ToIDom) << "\n");
 
       // To remains reachable after deletion.
       // (Based on the caption under Figure 4. from the second paper.)
@@ -959,9 +967,9 @@
   static void DeleteReachable(DomTreeT &DT, const BatchUpdatePtr BUI,
                               const TreeNodePtr FromTN,
                               const TreeNodePtr ToTN) {
-    DEBUG(dbgs() << "Deleting reachable " << BlockNamePrinter(FromTN) << " -> "
-                 << BlockNamePrinter(ToTN) << "\n");
-    DEBUG(dbgs() << "\tRebuilding subtree\n");
+    LLVM_DEBUG(dbgs() << "Deleting reachable " << BlockNamePrinter(FromTN)
+                      << " -> " << BlockNamePrinter(ToTN) << "\n");
+    LLVM_DEBUG(dbgs() << "\tRebuilding subtree\n");
 
     // Find the top of the subtree that needs to be rebuilt.
     // (Based on the lemma 2.6 from the second paper.)
@@ -974,7 +982,7 @@
     // Top of the subtree to rebuild is the root node. Rebuild the tree from
     // scratch.
     if (!PrevIDomSubTree) {
-      DEBUG(dbgs() << "The entire tree needs to be rebuilt\n");
+      LLVM_DEBUG(dbgs() << "The entire tree needs to be rebuilt\n");
       CalculateFromScratch(DT, BUI);
       return;
     }
@@ -985,11 +993,12 @@
       return DT.getNode(To)->getLevel() > Level;
     };
 
-    DEBUG(dbgs() << "\tTop of subtree: " << BlockNamePrinter(ToIDomTN) << "\n");
+    LLVM_DEBUG(dbgs() << "\tTop of subtree: " << BlockNamePrinter(ToIDomTN)
+                      << "\n");
 
     SemiNCAInfo SNCA(BUI);
     SNCA.runDFS(ToIDom, 0, DescendBelow, 0);
-    DEBUG(dbgs() << "\tRunning Semi-NCA\n");
+    LLVM_DEBUG(dbgs() << "\tRunning Semi-NCA\n");
     SNCA.runSemiNCA(DT, Level);
     SNCA.reattachExistingSubtree(DT, PrevIDomSubTree);
   }
@@ -998,19 +1007,20 @@
   // explained on the page 7 of the second paper.
   static bool HasProperSupport(DomTreeT &DT, const BatchUpdatePtr BUI,
                                const TreeNodePtr TN) {
-    DEBUG(dbgs() << "IsReachableFromIDom " << BlockNamePrinter(TN) << "\n");
+    LLVM_DEBUG(dbgs() << "IsReachableFromIDom " << BlockNamePrinter(TN)
+                      << "\n");
     for (const NodePtr Pred :
          ChildrenGetter<!IsPostDom>::Get(TN->getBlock(), BUI)) {
-      DEBUG(dbgs() << "\tPred " << BlockNamePrinter(Pred) << "\n");
+      LLVM_DEBUG(dbgs() << "\tPred " << BlockNamePrinter(Pred) << "\n");
       if (!DT.getNode(Pred)) continue;
 
       const NodePtr Support =
           DT.findNearestCommonDominator(TN->getBlock(), Pred);
-      DEBUG(dbgs() << "\tSupport " << BlockNamePrinter(Support) << "\n");
+      LLVM_DEBUG(dbgs() << "\tSupport " << BlockNamePrinter(Support) << "\n");
       if (Support != TN->getBlock()) {
-        DEBUG(dbgs() << "\t" << BlockNamePrinter(TN)
-                     << " is reachable from support "
-                     << BlockNamePrinter(Support) << "\n");
+        LLVM_DEBUG(dbgs() << "\t" << BlockNamePrinter(TN)
+                          << " is reachable from support "
+                          << BlockNamePrinter(Support) << "\n");
         return true;
       }
     }
@@ -1022,8 +1032,8 @@
   // (Based on the lemma 2.7 from the second paper.)
   static void DeleteUnreachable(DomTreeT &DT, const BatchUpdatePtr BUI,
                                 const TreeNodePtr ToTN) {
-    DEBUG(dbgs() << "Deleting unreachable subtree " << BlockNamePrinter(ToTN)
-                 << "\n");
+    LLVM_DEBUG(dbgs() << "Deleting unreachable subtree "
+                      << BlockNamePrinter(ToTN) << "\n");
     assert(ToTN);
     assert(ToTN->getBlock());
 
@@ -1031,8 +1041,9 @@
       // Deletion makes a region reverse-unreachable and creates a new root.
       // Simulate that by inserting an edge from the virtual root to ToTN and
       // adding it as a new root.
-      DEBUG(dbgs() << "\tDeletion made a region reverse-unreachable\n");
-      DEBUG(dbgs() << "\tAdding new root " << BlockNamePrinter(ToTN) << "\n");
+      LLVM_DEBUG(dbgs() << "\tDeletion made a region reverse-unreachable\n");
+      LLVM_DEBUG(dbgs() << "\tAdding new root " << BlockNamePrinter(ToTN)
+                        << "\n");
       DT.Roots.push_back(ToTN->getBlock());
       InsertReachable(DT, BUI, DT.getNode(nullptr), ToTN);
       return;
@@ -1069,15 +1080,15 @@
       const TreeNodePtr NCD = DT.getNode(NCDBlock);
       assert(NCD);
 
-      DEBUG(dbgs() << "Processing affected node " << BlockNamePrinter(TN)
-                   << " with NCD = " << BlockNamePrinter(NCD)
-                   << ", MinNode =" << BlockNamePrinter(MinNode) << "\n");
+      LLVM_DEBUG(dbgs() << "Processing affected node " << BlockNamePrinter(TN)
+                        << " with NCD = " << BlockNamePrinter(NCD)
+                        << ", MinNode =" << BlockNamePrinter(MinNode) << "\n");
       if (NCD != TN && NCD->getLevel() < MinNode->getLevel()) MinNode = NCD;
     }
 
     // Root reached, rebuild the whole tree from scratch.
     if (!MinNode->getIDom()) {
-      DEBUG(dbgs() << "The entire tree needs to be rebuilt\n");
+      LLVM_DEBUG(dbgs() << "The entire tree needs to be rebuilt\n");
       CalculateFromScratch(DT, BUI);
       return;
     }
@@ -1087,7 +1098,7 @@
     for (unsigned i = LastDFSNum; i > 0; --i) {
       const NodePtr N = SNCA.NumToNode[i];
       const TreeNodePtr TN = DT.getNode(N);
-      DEBUG(dbgs() << "Erasing node " << BlockNamePrinter(TN) << "\n");
+      LLVM_DEBUG(dbgs() << "Erasing node " << BlockNamePrinter(TN) << "\n");
 
       EraseNode(DT, TN);
     }
@@ -1095,8 +1106,8 @@
     // The affected subtree start at the To node -- there's no extra work to do.
     if (MinNode == ToTN) return;
 
-    DEBUG(dbgs() << "DeleteUnreachable: running DFS with MinNode = "
-                 << BlockNamePrinter(MinNode) << "\n");
+    LLVM_DEBUG(dbgs() << "DeleteUnreachable: running DFS with MinNode = "
+                      << BlockNamePrinter(MinNode) << "\n");
     const unsigned MinLevel = MinNode->getLevel();
     const TreeNodePtr PrevIDom = MinNode->getIDom();
     assert(PrevIDom);
@@ -1109,8 +1120,8 @@
     };
     SNCA.runDFS(MinNode->getBlock(), 0, DescendBelow, 0);
 
-    DEBUG(dbgs() << "Previous IDom(MinNode) = " << BlockNamePrinter(PrevIDom)
-                 << "\nRunning Semi-NCA\n");
+    LLVM_DEBUG(dbgs() << "Previous IDom(MinNode) = "
+                      << BlockNamePrinter(PrevIDom) << "\nRunning Semi-NCA\n");
 
     // Rebuild the remaining part of affected subtree.
     SNCA.runSemiNCA(DT, MinLevel);
@@ -1165,15 +1176,15 @@
     // predecessors. Note that these sets will only decrease size over time, as
     // the next CFG snapshots slowly approach the actual (current) CFG.
     for (UpdateT &U : BUI.Updates) {
-      BUI.FutureSuccessors[U.getFrom()].insert({U.getTo(), U.getKind()});
-      BUI.FuturePredecessors[U.getTo()].insert({U.getFrom(), U.getKind()});
+      BUI.FutureSuccessors[U.getFrom()].push_back({U.getTo(), U.getKind()});
+      BUI.FuturePredecessors[U.getTo()].push_back({U.getFrom(), U.getKind()});
     }
 
-    DEBUG(dbgs() << "About to apply " << NumLegalized << " updates\n");
-    DEBUG(if (NumLegalized < 32) for (const auto &U
-                                      : reverse(BUI.Updates)) dbgs()
-          << '\t' << U << "\n");
-    DEBUG(dbgs() << "\n");
+    LLVM_DEBUG(dbgs() << "About to apply " << NumLegalized << " updates\n");
+    LLVM_DEBUG(if (NumLegalized < 32) for (const auto &U
+                                           : reverse(BUI.Updates)) dbgs()
+               << '\t' << U << "\n");
+    LLVM_DEBUG(dbgs() << "\n");
 
     // If the DominatorTree was recalculated at some point, stop the batch
     // updates. Full recalculations ignore batch updates and look at the actual
@@ -1201,7 +1212,7 @@
   // minimizes the amount of work needed done during incremental updates.
   static void LegalizeUpdates(ArrayRef<UpdateT> AllUpdates,
                               SmallVectorImpl<UpdateT> &Result) {
-    DEBUG(dbgs() << "Legalizing " << AllUpdates.size() << " updates\n");
+    LLVM_DEBUG(dbgs() << "Legalizing " << AllUpdates.size() << " updates\n");
     // Count the total number of inserions of each edge.
     // Each insertion adds 1 and deletion subtracts 1. The end number should be
     // one of {-1 (deletion), 0 (NOP), +1 (insertion)}. Otherwise, the sequence
@@ -1241,26 +1252,31 @@
         Operations[{U.getTo(), U.getFrom()}] = int(i);
     }
 
-    std::sort(Result.begin(), Result.end(),
-              [&Operations](const UpdateT &A, const UpdateT &B) {
-                return Operations[{A.getFrom(), A.getTo()}] >
-                       Operations[{B.getFrom(), B.getTo()}];
-              });
+    llvm::sort(Result.begin(), Result.end(),
+               [&Operations](const UpdateT &A, const UpdateT &B) {
+                 return Operations[{A.getFrom(), A.getTo()}] >
+                        Operations[{B.getFrom(), B.getTo()}];
+               });
   }
 
   static void ApplyNextUpdate(DomTreeT &DT, BatchUpdateInfo &BUI) {
     assert(!BUI.Updates.empty() && "No updates to apply!");
     UpdateT CurrentUpdate = BUI.Updates.pop_back_val();
-    DEBUG(dbgs() << "Applying update: " << CurrentUpdate << "\n");
+    LLVM_DEBUG(dbgs() << "Applying update: " << CurrentUpdate << "\n");
 
     // Move to the next snapshot of the CFG by removing the reverse-applied
-    // current update.
+    // current update. Since updates are performed in the same order they are
+    // legalized it's sufficient to pop the last item here.
     auto &FS = BUI.FutureSuccessors[CurrentUpdate.getFrom()];
-    FS.erase({CurrentUpdate.getTo(), CurrentUpdate.getKind()});
+    assert(FS.back().getPointer() == CurrentUpdate.getTo() &&
+           FS.back().getInt() == CurrentUpdate.getKind());
+    FS.pop_back();
     if (FS.empty()) BUI.FutureSuccessors.erase(CurrentUpdate.getFrom());
 
     auto &FP = BUI.FuturePredecessors[CurrentUpdate.getTo()];
-    FP.erase({CurrentUpdate.getFrom(), CurrentUpdate.getKind()});
+    assert(FP.back().getPointer() == CurrentUpdate.getFrom() &&
+           FP.back().getInt() == CurrentUpdate.getKind());
+    FP.pop_back();
     if (FP.empty()) BUI.FuturePredecessors.erase(CurrentUpdate.getTo());
 
     if (CurrentUpdate.getKind() == UpdateKind::Insert)
@@ -1430,10 +1446,10 @@
       // Make a copy and sort it such that it is possible to check if there are
       // no gaps between DFS numbers of adjacent children.
       SmallVector<TreeNodePtr, 8> Children(Node->begin(), Node->end());
-      std::sort(Children.begin(), Children.end(),
-                [](const TreeNodePtr Ch1, const TreeNodePtr Ch2) {
-                  return Ch1->getDFSNumIn() < Ch2->getDFSNumIn();
-                });
+      llvm::sort(Children.begin(), Children.end(),
+                 [](const TreeNodePtr Ch1, const TreeNodePtr Ch2) {
+                   return Ch1->getDFSNumIn() < Ch2->getDFSNumIn();
+                 });
 
       auto PrintChildrenError = [Node, &Children, PrintNodeAndDFSNums](
           const TreeNodePtr FirstCh, const TreeNodePtr SecondCh) {
@@ -1530,8 +1546,8 @@
       const NodePtr BB = TN->getBlock();
       if (!BB || TN->getChildren().empty()) continue;
 
-      DEBUG(dbgs() << "Verifying parent property of node "
-                   << BlockNamePrinter(TN) << "\n");
+      LLVM_DEBUG(dbgs() << "Verifying parent property of node "
+                        << BlockNamePrinter(TN) << "\n");
       clear();
       doFullDFSWalk(DT, [BB](NodePtr From, NodePtr To) {
         return From != BB && To != BB;
diff --git a/linux-x64/clang/include/llvm/Support/GraphWriter.h b/linux-x64/clang/include/llvm/Support/GraphWriter.h
index 3df5c86..c9a9f40 100644
--- a/linux-x64/clang/include/llvm/Support/GraphWriter.h
+++ b/linux-x64/clang/include/llvm/Support/GraphWriter.h
@@ -41,7 +41,7 @@
 
 std::string EscapeString(const std::string &Label);
 
-/// \brief Get a color string for this node number. Simply round-robin selects
+/// Get a color string for this node number. Simply round-robin selects
 /// from a reasonable number of colors.
 StringRef getColorString(unsigned NodeNumber);
 
diff --git a/linux-x64/clang/include/llvm/Support/Host.h b/linux-x64/clang/include/llvm/Support/Host.h
index ddc5fa5..57c79c0 100644
--- a/linux-x64/clang/include/llvm/Support/Host.h
+++ b/linux-x64/clang/include/llvm/Support/Host.h
@@ -31,7 +31,7 @@
 #define BYTE_ORDER LITTLE_ENDIAN
 #endif
 #else
-#if !defined(BYTE_ORDER) && !defined(LLVM_ON_WIN32)
+#if !defined(BYTE_ORDER) && !defined(_WIN32)
 #include <machine/endian.h>
 #endif
 #endif
diff --git a/linux-x64/clang/include/llvm/Support/InitLLVM.h b/linux-x64/clang/include/llvm/Support/InitLLVM.h
new file mode 100644
index 0000000..0f629c9
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Support/InitLLVM.h
@@ -0,0 +1,46 @@
+//===- InitLLVM.h -----------------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_LLVM_H
+#define LLVM_SUPPORT_LLVM_H
+
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Allocator.h"
+#include "llvm/Support/PrettyStackTrace.h"
+
+// The main() functions in typical LLVM tools start with InitLLVM which does
+// the following one-time initializations:
+//
+//  1. Setting up a signal handler so that pretty stack trace is printed out
+//     if a process crashes.
+//
+//  2. If running on Windows, obtain command line arguments using a
+//     multibyte character-aware API and convert arguments into UTF-8
+//     encoding, so that you can assume that command line arguments are
+//     always encoded in UTF-8 on any platform.
+//
+// InitLLVM calls llvm_shutdown() on destruction, which cleans up
+// ManagedStatic objects.
+namespace llvm {
+class InitLLVM {
+public:
+  InitLLVM(int &Argc, const char **&Argv);
+  InitLLVM(int &Argc, char **&Argv)
+      : InitLLVM(Argc, const_cast<const char **&>(Argv)) {}
+
+  ~InitLLVM();
+
+private:
+  BumpPtrAllocator Alloc;
+  SmallVector<const char *, 0> Args;
+  PrettyStackTraceProgram StackPrinter;
+};
+} // namespace llvm
+
+#endif
diff --git a/linux-x64/clang/include/llvm/Support/JSON.h b/linux-x64/clang/include/llvm/Support/JSON.h
new file mode 100644
index 0000000..da3c5ea
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Support/JSON.h
@@ -0,0 +1,704 @@
+//===--- JSON.h - JSON values, parsing and serialization -------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===---------------------------------------------------------------------===//
+///
+/// \file
+/// This file supports working with JSON data.
+///
+/// It comprises:
+///
+/// - classes which hold dynamically-typed parsed JSON structures
+///   These are value types that can be composed, inspected, and modified.
+///   See json::Value, and the related types json::Object and json::Array.
+///
+/// - functions to parse JSON text into Values, and to serialize Values to text.
+///   See parse(), operator<<, and format_provider.
+///
+/// - a convention and helpers for mapping between json::Value and user-defined
+///   types. See fromJSON(), ObjectMapper, and the class comment on Value.
+///
+/// Typically, JSON data would be read from an external source, parsed into
+/// a Value, and then converted into some native data structure before doing
+/// real work on it. (And vice versa when writing).
+///
+/// Other serialization mechanisms you may consider:
+///
+/// - YAML is also text-based, and more human-readable than JSON. It's a more
+///   complex format and data model, and YAML parsers aren't ubiquitous.
+///   YAMLParser.h is a streaming parser suitable for parsing large documents
+///   (including JSON, as YAML is a superset). It can be awkward to use
+///   directly. YAML I/O (YAMLTraits.h) provides data mapping that is more
+///   declarative than the toJSON/fromJSON conventions here.
+///
+/// - LLVM bitstream is a space- and CPU- efficient binary format. Typically it
+///   encodes LLVM IR ("bitcode"), but it can be a container for other data.
+///   Low-level reader/writer libraries are in Bitcode/Bitstream*.h
+///
+//===---------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_JSON_H
+#define LLVM_SUPPORT_JSON_H
+
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Error.h"
+#include "llvm/Support/FormatVariadic.h"
+#include "llvm/Support/raw_ostream.h"
+#include <map>
+
+namespace llvm {
+namespace json {
+
+// === String encodings ===
+//
+// JSON strings are character sequences (not byte sequences like std::string).
+// We need to know the encoding, and for simplicity only support UTF-8.
+//
+//   - When parsing, invalid UTF-8 is a syntax error like any other
+//
+//   - When creating Values from strings, callers must ensure they are UTF-8.
+//        with asserts on, invalid UTF-8 will crash the program
+//        with asserts off, we'll substitute the replacement character (U+FFFD)
+//     Callers can use json::isUTF8() and json::fixUTF8() for validation.
+//
+//   - When retrieving strings from Values (e.g. asString()), the result will
+//     always be valid UTF-8.
+
+/// Returns true if \p S is valid UTF-8, which is required for use as JSON.
+/// If it returns false, \p Offset is set to a byte offset near the first error.
+bool isUTF8(llvm::StringRef S, size_t *ErrOffset = nullptr);
+/// Replaces invalid UTF-8 sequences in \p S with the replacement character
+/// (U+FFFD). The returned string is valid UTF-8.
+/// This is much slower than isUTF8, so test that first.
+std::string fixUTF8(llvm::StringRef S);
+
+class Array;
+class ObjectKey;
+class Value;
+template <typename T> Value toJSON(const llvm::Optional<T> &Opt);
+
+/// An Object is a JSON object, which maps strings to heterogenous JSON values.
+/// It simulates DenseMap<ObjectKey, Value>. ObjectKey is a maybe-owned string.
+class Object {
+  using Storage = DenseMap<ObjectKey, Value, llvm::DenseMapInfo<StringRef>>;
+  Storage M;
+
+public:
+  using key_type = ObjectKey;
+  using mapped_type = Value;
+  using value_type = Storage::value_type;
+  using iterator = Storage::iterator;
+  using const_iterator = Storage::const_iterator;
+
+  explicit Object() = default;
+  // KV is a trivial key-value struct for list-initialization.
+  // (using std::pair forces extra copies).
+  struct KV;
+  explicit Object(std::initializer_list<KV> Properties);
+
+  iterator begin() { return M.begin(); }
+  const_iterator begin() const { return M.begin(); }
+  iterator end() { return M.end(); }
+  const_iterator end() const { return M.end(); }
+
+  bool empty() const { return M.empty(); }
+  size_t size() const { return M.size(); }
+
+  void clear() { M.clear(); }
+  std::pair<iterator, bool> insert(KV E);
+  template <typename... Ts>
+  std::pair<iterator, bool> try_emplace(const ObjectKey &K, Ts &&... Args) {
+    return M.try_emplace(K, std::forward<Ts>(Args)...);
+  }
+  template <typename... Ts>
+  std::pair<iterator, bool> try_emplace(ObjectKey &&K, Ts &&... Args) {
+    return M.try_emplace(std::move(K), std::forward<Ts>(Args)...);
+  }
+
+  iterator find(StringRef K) { return M.find_as(K); }
+  const_iterator find(StringRef K) const { return M.find_as(K); }
+  // operator[] acts as if Value was default-constructible as null.
+  Value &operator[](const ObjectKey &K);
+  Value &operator[](ObjectKey &&K);
+  // Look up a property, returning nullptr if it doesn't exist.
+  Value *get(StringRef K);
+  const Value *get(StringRef K) const;
+  // Typed accessors return None/nullptr if
+  //   - the property doesn't exist
+  //   - or it has the wrong type
+  llvm::Optional<std::nullptr_t> getNull(StringRef K) const;
+  llvm::Optional<bool> getBoolean(StringRef K) const;
+  llvm::Optional<double> getNumber(StringRef K) const;
+  llvm::Optional<int64_t> getInteger(StringRef K) const;
+  llvm::Optional<llvm::StringRef> getString(StringRef K) const;
+  const json::Object *getObject(StringRef K) const;
+  json::Object *getObject(StringRef K);
+  const json::Array *getArray(StringRef K) const;
+  json::Array *getArray(StringRef K);
+};
+bool operator==(const Object &LHS, const Object &RHS);
+inline bool operator!=(const Object &LHS, const Object &RHS) {
+  return !(LHS == RHS);
+}
+
+/// An Array is a JSON array, which contains heterogeneous JSON values.
+/// It simulates std::vector<Value>.
+class Array {
+  std::vector<Value> V;
+
+public:
+  using value_type = Value;
+  using iterator = std::vector<Value>::iterator;
+  using const_iterator = std::vector<Value>::const_iterator;
+
+  explicit Array() = default;
+  explicit Array(std::initializer_list<Value> Elements);
+  template <typename Collection> explicit Array(const Collection &C) {
+    for (const auto &V : C)
+      emplace_back(V);
+  }
+
+  Value &operator[](size_t I) { return V[I]; }
+  const Value &operator[](size_t I) const { return V[I]; }
+  Value &front() { return V.front(); }
+  const Value &front() const { return V.front(); }
+  Value &back() { return V.back(); }
+  const Value &back() const { return V.back(); }
+  Value *data() { return V.data(); }
+  const Value *data() const { return V.data(); }
+
+  iterator begin() { return V.begin(); }
+  const_iterator begin() const { return V.begin(); }
+  iterator end() { return V.end(); }
+  const_iterator end() const { return V.end(); }
+
+  bool empty() const { return V.empty(); }
+  size_t size() const { return V.size(); }
+
+  void clear() { V.clear(); }
+  void push_back(const Value &E) { V.push_back(E); }
+  void push_back(Value &&E) { V.push_back(std::move(E)); }
+  template <typename... Args> void emplace_back(Args &&... A) {
+    V.emplace_back(std::forward<Args>(A)...);
+  }
+  void pop_back() { V.pop_back(); }
+  // FIXME: insert() takes const_iterator since C++11, old libstdc++ disagrees.
+  iterator insert(iterator P, const Value &E) { return V.insert(P, E); }
+  iterator insert(iterator P, Value &&E) {
+    return V.insert(P, std::move(E));
+  }
+  template <typename It> iterator insert(iterator P, It A, It Z) {
+    return V.insert(P, A, Z);
+  }
+  template <typename... Args> iterator emplace(const_iterator P, Args &&... A) {
+    return V.emplace(P, std::forward<Args>(A)...);
+  }
+
+  friend bool operator==(const Array &L, const Array &R) { return L.V == R.V; }
+};
+inline bool operator!=(const Array &L, const Array &R) { return !(L == R); }
+
+/// A Value is an JSON value of unknown type.
+/// They can be copied, but should generally be moved.
+///
+/// === Composing values ===
+///
+/// You can implicitly construct Values from:
+///   - strings: std::string, SmallString, formatv, StringRef, char*
+///              (char*, and StringRef are references, not copies!)
+///   - numbers
+///   - booleans
+///   - null: nullptr
+///   - arrays: {"foo", 42.0, false}
+///   - serializable things: types with toJSON(const T&)->Value, found by ADL
+///
+/// They can also be constructed from object/array helpers:
+///   - json::Object is a type like map<ObjectKey, Value>
+///   - json::Array is a type like vector<Value>
+/// These can be list-initialized, or used to build up collections in a loop.
+/// json::ary(Collection) converts all items in a collection to Values.
+///
+/// === Inspecting values ===
+///
+/// Each Value is one of the JSON kinds:
+///   null    (nullptr_t)
+///   boolean (bool)
+///   number  (double or int64)
+///   string  (StringRef)
+///   array   (json::Array)
+///   object  (json::Object)
+///
+/// The kind can be queried directly, or implicitly via the typed accessors:
+///   if (Optional<StringRef> S = E.getAsString()
+///     assert(E.kind() == Value::String);
+///
+/// Array and Object also have typed indexing accessors for easy traversal:
+///   Expected<Value> E = parse(R"( {"options": {"font": "sans-serif"}} )");
+///   if (Object* O = E->getAsObject())
+///     if (Object* Opts = O->getObject("options"))
+///       if (Optional<StringRef> Font = Opts->getString("font"))
+///         assert(Opts->at("font").kind() == Value::String);
+///
+/// === Converting JSON values to C++ types ===
+///
+/// The convention is to have a deserializer function findable via ADL:
+///     fromJSON(const json::Value&, T&)->bool
+/// Deserializers are provided for:
+///   - bool
+///   - int and int64_t
+///   - double
+///   - std::string
+///   - vector<T>, where T is deserializable
+///   - map<string, T>, where T is deserializable
+///   - Optional<T>, where T is deserializable
+/// ObjectMapper can help writing fromJSON() functions for object types.
+///
+/// For conversion in the other direction, the serializer function is:
+///    toJSON(const T&) -> json::Value
+/// If this exists, then it also allows constructing Value from T, and can
+/// be used to serialize vector<T>, map<string, T>, and Optional<T>.
+///
+/// === Serialization ===
+///
+/// Values can be serialized to JSON:
+///   1) raw_ostream << Value                    // Basic formatting.
+///   2) raw_ostream << formatv("{0}", Value)    // Basic formatting.
+///   3) raw_ostream << formatv("{0:2}", Value)  // Pretty-print with indent 2.
+///
+/// And parsed:
+///   Expected<Value> E = json::parse("[1, 2, null]");
+///   assert(E && E->kind() == Value::Array);
+class Value {
+public:
+  enum Kind {
+    Null,
+    Boolean,
+    /// Number values can store both int64s and doubles at full precision,
+    /// depending on what they were constructed/parsed from.
+    Number,
+    String,
+    Array,
+    Object,
+  };
+
+  // It would be nice to have Value() be null. But that would make {} null too.
+  Value(const Value &M) { copyFrom(M); }
+  Value(Value &&M) { moveFrom(std::move(M)); }
+  Value(std::initializer_list<Value> Elements);
+  Value(json::Array &&Elements) : Type(T_Array) {
+    create<json::Array>(std::move(Elements));
+  }
+  Value(json::Object &&Properties) : Type(T_Object) {
+    create<json::Object>(std::move(Properties));
+  }
+  // Strings: types with value semantics. Must be valid UTF-8.
+  Value(std::string V) : Type(T_String) {
+    if (LLVM_UNLIKELY(!isUTF8(V))) {
+      assert(false && "Invalid UTF-8 in value used as JSON");
+      V = fixUTF8(std::move(V));
+    }
+    create<std::string>(std::move(V));
+  }
+  Value(const llvm::SmallVectorImpl<char> &V)
+      : Value(std::string(V.begin(), V.end())){};
+  Value(const llvm::formatv_object_base &V) : Value(V.str()){};
+  // Strings: types with reference semantics. Must be valid UTF-8.
+  Value(StringRef V) : Type(T_StringRef) {
+    create<llvm::StringRef>(V);
+    if (LLVM_UNLIKELY(!isUTF8(V))) {
+      assert(false && "Invalid UTF-8 in value used as JSON");
+      *this = Value(fixUTF8(V));
+    }
+  }
+  Value(const char *V) : Value(StringRef(V)) {}
+  Value(std::nullptr_t) : Type(T_Null) {}
+  // Boolean (disallow implicit conversions).
+  // (The last template parameter is a dummy to keep templates distinct.)
+  template <
+      typename T,
+      typename = typename std::enable_if<std::is_same<T, bool>::value>::type,
+      bool = false>
+  Value(T B) : Type(T_Boolean) {
+    create<bool>(B);
+  }
+  // Integers (except boolean). Must be non-narrowing convertible to int64_t.
+  template <
+      typename T,
+      typename = typename std::enable_if<std::is_integral<T>::value>::type,
+      typename = typename std::enable_if<!std::is_same<T, bool>::value>::type>
+  Value(T I) : Type(T_Integer) {
+    create<int64_t>(int64_t{I});
+  }
+  // Floating point. Must be non-narrowing convertible to double.
+  template <typename T,
+            typename =
+                typename std::enable_if<std::is_floating_point<T>::value>::type,
+            double * = nullptr>
+  Value(T D) : Type(T_Double) {
+    create<double>(double{D});
+  }
+  // Serializable types: with a toJSON(const T&)->Value function, found by ADL.
+  template <typename T,
+            typename = typename std::enable_if<std::is_same<
+                Value, decltype(toJSON(*(const T *)nullptr))>::value>,
+            Value * = nullptr>
+  Value(const T &V) : Value(toJSON(V)) {}
+
+  Value &operator=(const Value &M) {
+    destroy();
+    copyFrom(M);
+    return *this;
+  }
+  Value &operator=(Value &&M) {
+    destroy();
+    moveFrom(std::move(M));
+    return *this;
+  }
+  ~Value() { destroy(); }
+
+  Kind kind() const {
+    switch (Type) {
+    case T_Null:
+      return Null;
+    case T_Boolean:
+      return Boolean;
+    case T_Double:
+    case T_Integer:
+      return Number;
+    case T_String:
+    case T_StringRef:
+      return String;
+    case T_Object:
+      return Object;
+    case T_Array:
+      return Array;
+    }
+    llvm_unreachable("Unknown kind");
+  }
+
+  // Typed accessors return None/nullptr if the Value is not of this type.
+  llvm::Optional<std::nullptr_t> getAsNull() const {
+    if (LLVM_LIKELY(Type == T_Null))
+      return nullptr;
+    return llvm::None;
+  }
+  llvm::Optional<bool> getAsBoolean() const {
+    if (LLVM_LIKELY(Type == T_Boolean))
+      return as<bool>();
+    return llvm::None;
+  }
+  llvm::Optional<double> getAsNumber() const {
+    if (LLVM_LIKELY(Type == T_Double))
+      return as<double>();
+    if (LLVM_LIKELY(Type == T_Integer))
+      return as<int64_t>();
+    return llvm::None;
+  }
+  // Succeeds if the Value is a Number, and exactly representable as int64_t.
+  llvm::Optional<int64_t> getAsInteger() const {
+    if (LLVM_LIKELY(Type == T_Integer))
+      return as<int64_t>();
+    if (LLVM_LIKELY(Type == T_Double)) {
+      double D = as<double>();
+      if (LLVM_LIKELY(std::modf(D, &D) == 0.0 &&
+                      D >= double(std::numeric_limits<int64_t>::min()) &&
+                      D <= double(std::numeric_limits<int64_t>::max())))
+        return D;
+    }
+    return llvm::None;
+  }
+  llvm::Optional<llvm::StringRef> getAsString() const {
+    if (Type == T_String)
+      return llvm::StringRef(as<std::string>());
+    if (LLVM_LIKELY(Type == T_StringRef))
+      return as<llvm::StringRef>();
+    return llvm::None;
+  }
+  const json::Object *getAsObject() const {
+    return LLVM_LIKELY(Type == T_Object) ? &as<json::Object>() : nullptr;
+  }
+  json::Object *getAsObject() {
+    return LLVM_LIKELY(Type == T_Object) ? &as<json::Object>() : nullptr;
+  }
+  const json::Array *getAsArray() const {
+    return LLVM_LIKELY(Type == T_Array) ? &as<json::Array>() : nullptr;
+  }
+  json::Array *getAsArray() {
+    return LLVM_LIKELY(Type == T_Array) ? &as<json::Array>() : nullptr;
+  }
+
+  /// Serializes this Value to JSON, writing it to the provided stream.
+  /// The formatting is compact (no extra whitespace) and deterministic.
+  /// For pretty-printing, use the formatv() format_provider below.
+  friend llvm::raw_ostream &operator<<(llvm::raw_ostream &, const Value &);
+
+private:
+  void destroy();
+  void copyFrom(const Value &M);
+  // We allow moving from *const* Values, by marking all members as mutable!
+  // This hack is needed to support initializer-list syntax efficiently.
+  // (std::initializer_list<T> is a container of const T).
+  void moveFrom(const Value &&M);
+  friend class Array;
+  friend class Object;
+
+  template <typename T, typename... U> void create(U &&... V) {
+    new (reinterpret_cast<T *>(Union.buffer)) T(std::forward<U>(V)...);
+  }
+  template <typename T> T &as() const {
+    return *reinterpret_cast<T *>(Union.buffer);
+  }
+
+  template <typename Indenter>
+  void print(llvm::raw_ostream &, const Indenter &) const;
+  friend struct llvm::format_provider<llvm::json::Value>;
+
+  enum ValueType : char {
+    T_Null,
+    T_Boolean,
+    T_Double,
+    T_Integer,
+    T_StringRef,
+    T_String,
+    T_Object,
+    T_Array,
+  };
+  // All members mutable, see moveFrom().
+  mutable ValueType Type;
+  mutable llvm::AlignedCharArrayUnion<bool, double, int64_t, llvm::StringRef,
+                                      std::string, json::Array, json::Object>
+      Union;
+};
+
+bool operator==(const Value &, const Value &);
+inline bool operator!=(const Value &L, const Value &R) { return !(L == R); }
+llvm::raw_ostream &operator<<(llvm::raw_ostream &, const Value &);
+
+/// ObjectKey is a used to capture keys in Object. Like Value but:
+///   - only strings are allowed
+///   - it's optimized for the string literal case (Owned == nullptr)
+/// Like Value, strings must be UTF-8. See isUTF8 documentation for details.
+class ObjectKey {
+public:
+  ObjectKey(const char *S) : ObjectKey(StringRef(S)) {}
+  ObjectKey(std::string S) : Owned(new std::string(std::move(S))) {
+    if (LLVM_UNLIKELY(!isUTF8(*Owned))) {
+      assert(false && "Invalid UTF-8 in value used as JSON");
+      *Owned = fixUTF8(std::move(*Owned));
+    }
+    Data = *Owned;
+  }
+  ObjectKey(llvm::StringRef S) : Data(S) {
+    if (LLVM_UNLIKELY(!isUTF8(Data))) {
+      assert(false && "Invalid UTF-8 in value used as JSON");
+      *this = ObjectKey(fixUTF8(S));
+    }
+  }
+  ObjectKey(const llvm::SmallVectorImpl<char> &V)
+      : ObjectKey(std::string(V.begin(), V.end())) {}
+  ObjectKey(const llvm::formatv_object_base &V) : ObjectKey(V.str()) {}
+
+  ObjectKey(const ObjectKey &C) { *this = C; }
+  ObjectKey(ObjectKey &&C) : ObjectKey(static_cast<const ObjectKey &&>(C)) {}
+  ObjectKey &operator=(const ObjectKey &C) {
+    if (C.Owned) {
+      Owned.reset(new std::string(*C.Owned));
+      Data = *Owned;
+    } else {
+      Data = C.Data;
+    }
+    return *this;
+  }
+  ObjectKey &operator=(ObjectKey &&) = default;
+
+  operator llvm::StringRef() const { return Data; }
+  std::string str() const { return Data.str(); }
+
+private:
+  // FIXME: this is unneccesarily large (3 pointers). Pointer + length + owned
+  // could be 2 pointers at most.
+  std::unique_ptr<std::string> Owned;
+  llvm::StringRef Data;
+};
+
+inline bool operator==(const ObjectKey &L, const ObjectKey &R) {
+  return llvm::StringRef(L) == llvm::StringRef(R);
+}
+inline bool operator!=(const ObjectKey &L, const ObjectKey &R) {
+  return !(L == R);
+}
+inline bool operator<(const ObjectKey &L, const ObjectKey &R) {
+  return StringRef(L) < StringRef(R);
+}
+
+struct Object::KV {
+  ObjectKey K;
+  Value V;
+};
+
+inline Object::Object(std::initializer_list<KV> Properties) {
+  for (const auto &P : Properties) {
+    auto R = try_emplace(P.K, nullptr);
+    if (R.second)
+      R.first->getSecond().moveFrom(std::move(P.V));
+  }
+}
+inline std::pair<Object::iterator, bool> Object::insert(KV E) {
+  return try_emplace(std::move(E.K), std::move(E.V));
+}
+
+// Standard deserializers are provided for primitive types.
+// See comments on Value.
+inline bool fromJSON(const Value &E, std::string &Out) {
+  if (auto S = E.getAsString()) {
+    Out = *S;
+    return true;
+  }
+  return false;
+}
+inline bool fromJSON(const Value &E, int &Out) {
+  if (auto S = E.getAsInteger()) {
+    Out = *S;
+    return true;
+  }
+  return false;
+}
+inline bool fromJSON(const Value &E, int64_t &Out) {
+  if (auto S = E.getAsInteger()) {
+    Out = *S;
+    return true;
+  }
+  return false;
+}
+inline bool fromJSON(const Value &E, double &Out) {
+  if (auto S = E.getAsNumber()) {
+    Out = *S;
+    return true;
+  }
+  return false;
+}
+inline bool fromJSON(const Value &E, bool &Out) {
+  if (auto S = E.getAsBoolean()) {
+    Out = *S;
+    return true;
+  }
+  return false;
+}
+template <typename T> bool fromJSON(const Value &E, llvm::Optional<T> &Out) {
+  if (E.getAsNull()) {
+    Out = llvm::None;
+    return true;
+  }
+  T Result;
+  if (!fromJSON(E, Result))
+    return false;
+  Out = std::move(Result);
+  return true;
+}
+template <typename T> bool fromJSON(const Value &E, std::vector<T> &Out) {
+  if (auto *A = E.getAsArray()) {
+    Out.clear();
+    Out.resize(A->size());
+    for (size_t I = 0; I < A->size(); ++I)
+      if (!fromJSON((*A)[I], Out[I]))
+        return false;
+    return true;
+  }
+  return false;
+}
+template <typename T>
+bool fromJSON(const Value &E, std::map<std::string, T> &Out) {
+  if (auto *O = E.getAsObject()) {
+    Out.clear();
+    for (const auto &KV : *O)
+      if (!fromJSON(KV.second, Out[llvm::StringRef(KV.first)]))
+        return false;
+    return true;
+  }
+  return false;
+}
+
+// Allow serialization of Optional<T> for supported T.
+template <typename T> Value toJSON(const llvm::Optional<T> &Opt) {
+  return Opt ? Value(*Opt) : Value(nullptr);
+}
+
+/// Helper for mapping JSON objects onto protocol structs.
+///
+/// Example:
+/// \code
+///   bool fromJSON(const Value &E, MyStruct &R) {
+///     ObjectMapper O(E);
+///     if (!O || !O.map("mandatory_field", R.MandatoryField))
+///       return false;
+///     O.map("optional_field", R.OptionalField);
+///     return true;
+///   }
+/// \endcode
+class ObjectMapper {
+public:
+  ObjectMapper(const Value &E) : O(E.getAsObject()) {}
+
+  /// True if the expression is an object.
+  /// Must be checked before calling map().
+  operator bool() { return O; }
+
+  /// Maps a property to a field, if it exists.
+  template <typename T> bool map(StringRef Prop, T &Out) {
+    assert(*this && "Must check this is an object before calling map()");
+    if (const Value *E = O->get(Prop))
+      return fromJSON(*E, Out);
+    return false;
+  }
+
+  /// Maps a property to a field, if it exists.
+  /// (Optional requires special handling, because missing keys are OK).
+  template <typename T> bool map(StringRef Prop, llvm::Optional<T> &Out) {
+    assert(*this && "Must check this is an object before calling map()");
+    if (const Value *E = O->get(Prop))
+      return fromJSON(*E, Out);
+    Out = llvm::None;
+    return true;
+  }
+
+private:
+  const Object *O;
+};
+
+/// Parses the provided JSON source, or returns a ParseError.
+/// The returned Value is self-contained and owns its strings (they do not refer
+/// to the original source).
+llvm::Expected<Value> parse(llvm::StringRef JSON);
+
+class ParseError : public llvm::ErrorInfo<ParseError> {
+  const char *Msg;
+  unsigned Line, Column, Offset;
+
+public:
+  static char ID;
+  ParseError(const char *Msg, unsigned Line, unsigned Column, unsigned Offset)
+      : Msg(Msg), Line(Line), Column(Column), Offset(Offset) {}
+  void log(llvm::raw_ostream &OS) const override {
+    OS << llvm::formatv("[{0}:{1}, byte={2}]: {3}", Line, Column, Offset, Msg);
+  }
+  std::error_code convertToErrorCode() const override {
+    return llvm::inconvertibleErrorCode();
+  }
+};
+} // namespace json
+
+/// Allow printing json::Value with formatv().
+/// The default style is basic/compact formatting, like operator<<.
+/// A format string like formatv("{0:2}", Value) pretty-prints with indent 2.
+template <> struct format_provider<llvm::json::Value> {
+  static void format(const llvm::json::Value &, raw_ostream &, StringRef);
+};
+} // namespace llvm
+
+#endif
diff --git a/linux-x64/clang/include/llvm/Support/JamCRC.h b/linux-x64/clang/include/llvm/Support/JamCRC.h
index 5268bbd..846d6ce 100644
--- a/linux-x64/clang/include/llvm/Support/JamCRC.h
+++ b/linux-x64/clang/include/llvm/Support/JamCRC.h
@@ -36,7 +36,7 @@
 public:
   JamCRC(uint32_t Init = 0xFFFFFFFFU) : CRC(Init) {}
 
-  // \brief Update the CRC calculation with Data.
+  // Update the CRC calculation with Data.
   void update(ArrayRef<char> Data);
 
   uint32_t getCRC() const { return CRC; }
diff --git a/linux-x64/clang/include/llvm/Support/KnownBits.h b/linux-x64/clang/include/llvm/Support/KnownBits.h
index 97e73b1..259df95 100644
--- a/linux-x64/clang/include/llvm/Support/KnownBits.h
+++ b/linux-x64/clang/include/llvm/Support/KnownBits.h
@@ -103,7 +103,7 @@
     One.setSignBit();
   }
 
-  /// Make this value negative.
+  /// Make this value non-negative.
   void makeNonNegative() {
     Zero.setSignBit();
   }
diff --git a/linux-x64/clang/include/llvm/Support/LineIterator.h b/linux-x64/clang/include/llvm/Support/LineIterator.h
index 9d4cd3b..892d289 100644
--- a/linux-x64/clang/include/llvm/Support/LineIterator.h
+++ b/linux-x64/clang/include/llvm/Support/LineIterator.h
@@ -18,7 +18,7 @@
 
 class MemoryBuffer;
 
-/// \brief A forward iterator which reads text lines from a buffer.
+/// A forward iterator which reads text lines from a buffer.
 ///
 /// This class provides a forward iterator interface for reading one line at
 /// a time from a buffer. When default constructed the iterator will be the
@@ -39,23 +39,23 @@
   StringRef CurrentLine;
 
 public:
-  /// \brief Default construct an "end" iterator.
+  /// Default construct an "end" iterator.
   line_iterator() : Buffer(nullptr) {}
 
-  /// \brief Construct a new iterator around some memory buffer.
+  /// Construct a new iterator around some memory buffer.
   explicit line_iterator(const MemoryBuffer &Buffer, bool SkipBlanks = true,
                          char CommentMarker = '\0');
 
-  /// \brief Return true if we've reached EOF or are an "end" iterator.
+  /// Return true if we've reached EOF or are an "end" iterator.
   bool is_at_eof() const { return !Buffer; }
 
-  /// \brief Return true if we're an "end" iterator or have reached EOF.
+  /// Return true if we're an "end" iterator or have reached EOF.
   bool is_at_end() const { return is_at_eof(); }
 
-  /// \brief Return the current line number. May return any number at EOF.
+  /// Return the current line number. May return any number at EOF.
   int64_t line_number() const { return LineNumber; }
 
-  /// \brief Advance to the next (non-empty, non-comment) line.
+  /// Advance to the next (non-empty, non-comment) line.
   line_iterator &operator++() {
     advance();
     return *this;
@@ -66,7 +66,7 @@
     return tmp;
   }
 
-  /// \brief Get the current line as a \c StringRef.
+  /// Get the current line as a \c StringRef.
   StringRef operator*() const { return CurrentLine; }
   const StringRef *operator->() const { return &CurrentLine; }
 
@@ -80,7 +80,7 @@
   }
 
 private:
-  /// \brief Advance the iterator to the next line.
+  /// Advance the iterator to the next line.
   void advance();
 };
 }
diff --git a/linux-x64/clang/include/llvm/Support/LockFileManager.h b/linux-x64/clang/include/llvm/Support/LockFileManager.h
index 1e417bd..86db0b2 100644
--- a/linux-x64/clang/include/llvm/Support/LockFileManager.h
+++ b/linux-x64/clang/include/llvm/Support/LockFileManager.h
@@ -11,14 +11,13 @@
 
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/SmallString.h"
-#include "llvm/Support/FileSystem.h"
 #include <system_error>
 #include <utility> // for std::pair
 
 namespace llvm {
 class StringRef;
 
-/// \brief Class that manages the creation of a lock file to aid
+/// Class that manages the creation of a lock file to aid
 /// implicit coordination between different processes.
 ///
 /// The implicit coordination works by creating a ".lock" file alongside
@@ -28,33 +27,33 @@
 /// operation.
 class LockFileManager {
 public:
-  /// \brief Describes the state of a lock file.
+  /// Describes the state of a lock file.
   enum LockFileState {
-    /// \brief The lock file has been created and is owned by this instance
+    /// The lock file has been created and is owned by this instance
     /// of the object.
     LFS_Owned,
-    /// \brief The lock file already exists and is owned by some other
+    /// The lock file already exists and is owned by some other
     /// instance.
     LFS_Shared,
-    /// \brief An error occurred while trying to create or find the lock
+    /// An error occurred while trying to create or find the lock
     /// file.
     LFS_Error
   };
 
-  /// \brief Describes the result of waiting for the owner to release the lock.
+  /// Describes the result of waiting for the owner to release the lock.
   enum WaitForUnlockResult {
-    /// \brief The lock was released successfully.
+    /// The lock was released successfully.
     Res_Success,
-    /// \brief Owner died while holding the lock.
+    /// Owner died while holding the lock.
     Res_OwnerDied,
-    /// \brief Reached timeout while waiting for the owner to release the lock.
+    /// Reached timeout while waiting for the owner to release the lock.
     Res_Timeout
   };
 
 private:
   SmallString<128> FileName;
   SmallString<128> LockFileName;
-  Optional<sys::fs::TempFile> UniqueLockFile;
+  SmallString<128> UniqueLockFileName;
 
   Optional<std::pair<std::string, int> > Owner;
   std::error_code ErrorCode;
@@ -73,22 +72,22 @@
   LockFileManager(StringRef FileName);
   ~LockFileManager();
 
-  /// \brief Determine the state of the lock file.
+  /// Determine the state of the lock file.
   LockFileState getState() const;
 
   operator LockFileState() const { return getState(); }
 
-  /// \brief For a shared lock, wait until the owner releases the lock.
+  /// For a shared lock, wait until the owner releases the lock.
   WaitForUnlockResult waitForUnlock();
 
-  /// \brief Remove the lock file.  This may delete a different lock file than
+  /// Remove the lock file.  This may delete a different lock file than
   /// the one previously read if there is a race.
   std::error_code unsafeRemoveLockFile();
 
-  /// \brief Get error message, or "" if there is no error.
+  /// Get error message, or "" if there is no error.
   std::string getErrorMessage() const;
 
-  /// \brief Set error and error message
+  /// Set error and error message
   void setError(const std::error_code &EC, StringRef ErrorMsg = "") {
     ErrorCode = EC;
     ErrorDiagMsg = ErrorMsg.str();
diff --git a/linux-x64/clang/include/llvm/Support/MD5.h b/linux-x64/clang/include/llvm/Support/MD5.h
index 2c0dc76..bb2bdbf 100644
--- a/linux-x64/clang/include/llvm/Support/MD5.h
+++ b/linux-x64/clang/include/llvm/Support/MD5.h
@@ -81,20 +81,20 @@
 
   MD5();
 
-  /// \brief Updates the hash for the byte stream provided.
+  /// Updates the hash for the byte stream provided.
   void update(ArrayRef<uint8_t> Data);
 
-  /// \brief Updates the hash for the StringRef provided.
+  /// Updates the hash for the StringRef provided.
   void update(StringRef Str);
 
-  /// \brief Finishes off the hash and puts the result in result.
+  /// Finishes off the hash and puts the result in result.
   void final(MD5Result &Result);
 
-  /// \brief Translates the bytes in \p Res to a hex string that is
+  /// Translates the bytes in \p Res to a hex string that is
   /// deposited into \p Str. The result will be of length 32.
   static void stringifyResult(MD5Result &Result, SmallString<32> &Str);
 
-  /// \brief Computes the hash for a given bytes.
+  /// Computes the hash for a given bytes.
   static std::array<uint8_t, 16> hash(ArrayRef<uint8_t> Data);
 
 private:
diff --git a/linux-x64/clang/include/llvm/Support/MathExtras.h b/linux-x64/clang/include/llvm/Support/MathExtras.h
index a37a167..b59f21b 100644
--- a/linux-x64/clang/include/llvm/Support/MathExtras.h
+++ b/linux-x64/clang/include/llvm/Support/MathExtras.h
@@ -23,22 +23,30 @@
 #include <limits>
 #include <type_traits>
 
-#ifdef _MSC_VER
-#include <intrin.h>
-#endif
-
 #ifdef __ANDROID_NDK__
 #include <android/api-level.h>
 #endif
 
+#ifdef _MSC_VER
+// Declare these intrinsics manually rather including intrin.h. It's very
+// expensive, and MathExtras.h is popular.
+// #include <intrin.h>
+extern "C" {
+unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask);
+unsigned char _BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask);
+unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask);
+unsigned char _BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask);
+}
+#endif
+
 namespace llvm {
-/// \brief The behavior an operation has on an input of 0.
+/// The behavior an operation has on an input of 0.
 enum ZeroBehavior {
-  /// \brief The returned value is undefined.
+  /// The returned value is undefined.
   ZB_Undefined,
-  /// \brief The returned value is numeric_limits<T>::max()
+  /// The returned value is numeric_limits<T>::max()
   ZB_Max,
-  /// \brief The returned value is numeric_limits<T>::digits
+  /// The returned value is numeric_limits<T>::digits
   ZB_Width
 };
 
@@ -101,7 +109,7 @@
 #endif
 } // namespace detail
 
-/// \brief Count number of 0's from the least significant bit to the most
+/// Count number of 0's from the least significant bit to the most
 ///   stopping at the first 1.
 ///
 /// Only unsigned integral types are allowed.
@@ -170,7 +178,7 @@
 #endif
 } // namespace detail
 
-/// \brief Count number of 0's from the most significant bit to the least
+/// Count number of 0's from the most significant bit to the least
 ///   stopping at the first 1.
 ///
 /// Only unsigned integral types are allowed.
@@ -185,7 +193,7 @@
   return llvm::detail::LeadingZerosCounter<T, sizeof(T)>::count(Val, ZB);
 }
 
-/// \brief Get the index of the first set bit starting from the least
+/// Get the index of the first set bit starting from the least
 ///   significant bit.
 ///
 /// Only unsigned integral types are allowed.
@@ -199,7 +207,7 @@
   return countTrailingZeros(Val, ZB_Undefined);
 }
 
-/// \brief Create a bitmask with the N right-most bits set to 1, and all other
+/// Create a bitmask with the N right-most bits set to 1, and all other
 /// bits set to 0.  Only unsigned types are allowed.
 template <typename T> T maskTrailingOnes(unsigned N) {
   static_assert(std::is_unsigned<T>::value, "Invalid type!");
@@ -208,25 +216,25 @@
   return N == 0 ? 0 : (T(-1) >> (Bits - N));
 }
 
-/// \brief Create a bitmask with the N left-most bits set to 1, and all other
+/// Create a bitmask with the N left-most bits set to 1, and all other
 /// bits set to 0.  Only unsigned types are allowed.
 template <typename T> T maskLeadingOnes(unsigned N) {
   return ~maskTrailingOnes<T>(CHAR_BIT * sizeof(T) - N);
 }
 
-/// \brief Create a bitmask with the N right-most bits set to 0, and all other
+/// Create a bitmask with the N right-most bits set to 0, and all other
 /// bits set to 1.  Only unsigned types are allowed.
 template <typename T> T maskTrailingZeros(unsigned N) {
   return maskLeadingOnes<T>(CHAR_BIT * sizeof(T) - N);
 }
 
-/// \brief Create a bitmask with the N left-most bits set to 0, and all other
+/// Create a bitmask with the N left-most bits set to 0, and all other
 /// bits set to 1.  Only unsigned types are allowed.
 template <typename T> T maskLeadingZeros(unsigned N) {
   return maskTrailingOnes<T>(CHAR_BIT * sizeof(T) - N);
 }
 
-/// \brief Get the index of the last set bit starting from the least
+/// Get the index of the last set bit starting from the least
 ///   significant bit.
 ///
 /// Only unsigned integral types are allowed.
@@ -243,7 +251,7 @@
          (std::numeric_limits<T>::digits - 1);
 }
 
-/// \brief Macro compressed bit reversal table for 256 bits.
+/// Macro compressed bit reversal table for 256 bits.
 ///
 /// http://graphics.stanford.edu/~seander/bithacks.html#BitReverseTable
 static const unsigned char BitReverseTable256[256] = {
@@ -256,7 +264,7 @@
 #undef R6
 };
 
-/// \brief Reverse the bits in \p Val.
+/// Reverse the bits in \p Val.
 template <typename T>
 T reverseBits(T Val) {
   unsigned char in[sizeof(Val)];
@@ -442,7 +450,7 @@
   return sys::SwapByteOrder_64(Value);
 }
 
-/// \brief Count the number of ones from the most significant bit to the first
+/// Count the number of ones from the most significant bit to the first
 /// zero bit.
 ///
 /// Ex. countLeadingOnes(0xFF0FFF00) == 8.
@@ -455,10 +463,10 @@
   static_assert(std::numeric_limits<T>::is_integer &&
                     !std::numeric_limits<T>::is_signed,
                 "Only unsigned integral types are allowed.");
-  return countLeadingZeros(~Value, ZB);
+  return countLeadingZeros<T>(~Value, ZB);
 }
 
-/// \brief Count the number of ones from the least significant bit to the first
+/// Count the number of ones from the least significant bit to the first
 /// zero bit.
 ///
 /// Ex. countTrailingOnes(0x00FF00FF) == 8.
@@ -471,7 +479,7 @@
   static_assert(std::numeric_limits<T>::is_integer &&
                     !std::numeric_limits<T>::is_signed,
                 "Only unsigned integral types are allowed.");
-  return countTrailingZeros(~Value, ZB);
+  return countTrailingZeros<T>(~Value, ZB);
 }
 
 namespace detail {
@@ -505,7 +513,7 @@
 };
 } // namespace detail
 
-/// \brief Count the number of set bits in a value.
+/// Count the number of set bits in a value.
 /// Ex. countPopulation(0xF000F000) = 8
 /// Returns 0 if the word is zero.
 template <typename T>
@@ -608,7 +616,7 @@
   return (A | B) & (1 + ~(A | B));
 }
 
-/// \brief Aligns \c Addr to \c Alignment bytes, rounding up.
+/// Aligns \c Addr to \c Alignment bytes, rounding up.
 ///
 /// Alignment should be a power of two.  This method rounds up, so
 /// alignAddr(7, 4) == 8 and alignAddr(8, 4) == 8.
@@ -621,7 +629,7 @@
   return (((uintptr_t)Addr + Alignment - 1) & ~(uintptr_t)(Alignment - 1));
 }
 
-/// \brief Returns the necessary adjustment for aligning \c Ptr to \c Alignment
+/// Returns the necessary adjustment for aligning \c Ptr to \c Alignment
 /// bytes, rounding up.
 inline size_t alignmentAdjustment(const void *Ptr, size_t Alignment) {
   return alignAddr(Ptr, Alignment) - (uintptr_t)Ptr;
diff --git a/linux-x64/clang/include/llvm/Support/MemAlloc.h b/linux-x64/clang/include/llvm/Support/MemAlloc.h
new file mode 100644
index 0000000..d06c659
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Support/MemAlloc.h
@@ -0,0 +1,49 @@
+//===- MemAlloc.h - Memory allocation functions -----------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+/// \file
+///
+/// This file defines counterparts of C library allocation functions defined in
+/// the namespace 'std'. The new allocation functions crash on allocation
+/// failure instead of returning null pointer.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_MEMALLOC_H
+#define LLVM_SUPPORT_MEMALLOC_H
+
+#include "llvm/Support/Compiler.h"
+#include "llvm/Support/ErrorHandling.h"
+#include <cstdlib>
+
+namespace llvm {
+
+LLVM_ATTRIBUTE_RETURNS_NONNULL inline void *safe_malloc(size_t Sz) {
+  void *Result = std::malloc(Sz);
+  if (Result == nullptr)
+    report_bad_alloc_error("Allocation failed");
+  return Result;
+}
+
+LLVM_ATTRIBUTE_RETURNS_NONNULL inline void *safe_calloc(size_t Count,
+                                                        size_t Sz) {
+  void *Result = std::calloc(Count, Sz);
+  if (Result == nullptr)
+    report_bad_alloc_error("Allocation failed");
+  return Result;
+}
+
+LLVM_ATTRIBUTE_RETURNS_NONNULL inline void *safe_realloc(void *Ptr, size_t Sz) {
+  void *Result = std::realloc(Ptr, Sz);
+  if (Result == nullptr)
+    report_bad_alloc_error("Allocation failed");
+  return Result;
+}
+
+}
+#endif
diff --git a/linux-x64/clang/include/llvm/Support/Memory.h b/linux-x64/clang/include/llvm/Support/Memory.h
index 3140dc6..fa026d4 100644
--- a/linux-x64/clang/include/llvm/Support/Memory.h
+++ b/linux-x64/clang/include/llvm/Support/Memory.h
@@ -25,7 +25,7 @@
   /// and a size. It is used by the Memory class (a friend) as the result of
   /// various memory allocation operations.
   /// @see Memory
-  /// @brief Memory block abstraction.
+  /// Memory block abstraction.
   class MemoryBlock {
   public:
     MemoryBlock() : Address(nullptr), Size(0) { }
@@ -42,7 +42,7 @@
   /// This class provides various memory handling functions that manipulate
   /// MemoryBlock instances.
   /// @since 1.4
-  /// @brief An abstraction for memory operations.
+  /// An abstraction for memory operations.
   class Memory {
   public:
     enum ProtectionFlags {
@@ -74,7 +74,7 @@
     /// \r a non-null MemoryBlock if the function was successful,
     /// otherwise a null MemoryBlock is with \p EC describing the error.
     ///
-    /// @brief Allocate mapped memory.
+    /// Allocate mapped memory.
     static MemoryBlock allocateMappedMemory(size_t NumBytes,
                                             const MemoryBlock *const NearBlock,
                                             unsigned Flags,
@@ -88,7 +88,7 @@
     /// \r error_success if the function was successful, or an error_code
     /// describing the failure if an error occurred.
     ///
-    /// @brief Release mapped memory.
+    /// Release mapped memory.
     static std::error_code releaseMappedMemory(MemoryBlock &Block);
 
     /// This method sets the protection flags for a block of memory to the
@@ -105,7 +105,7 @@
     /// \r error_success if the function was successful, or an error_code
     /// describing the failure if an error occurred.
     ///
-    /// @brief Set memory protection state.
+    /// Set memory protection state.
     static std::error_code protectMappedMemory(const MemoryBlock &Block,
                                                unsigned Flags);
 
diff --git a/linux-x64/clang/include/llvm/Support/MemoryBuffer.h b/linux-x64/clang/include/llvm/Support/MemoryBuffer.h
index 2997ae4..8933295 100644
--- a/linux-x64/clang/include/llvm/Support/MemoryBuffer.h
+++ b/linux-x64/clang/include/llvm/Support/MemoryBuffer.h
@@ -43,7 +43,6 @@
   const char *BufferStart; // Start of the buffer.
   const char *BufferEnd;   // End of the buffer.
 
-
 protected:
   MemoryBuffer() = default;
 
diff --git a/linux-x64/clang/include/llvm/Support/MipsABIFlags.h b/linux-x64/clang/include/llvm/Support/MipsABIFlags.h
index 40e62e7..12c3500 100644
--- a/linux-x64/clang/include/llvm/Support/MipsABIFlags.h
+++ b/linux-x64/clang/include/llvm/Support/MipsABIFlags.h
@@ -43,7 +43,8 @@
   AFL_ASE_MIPS16 = 0x00000400,    // MIPS16 ASE
   AFL_ASE_MICROMIPS = 0x00000800, // MICROMIPS ASE
   AFL_ASE_XPA = 0x00001000,       // XPA ASE
-  AFL_ASE_CRC = 0x00008000        // CRC ASE
+  AFL_ASE_CRC = 0x00008000,       // CRC ASE
+  AFL_ASE_GINV = 0x00020000       // GINV ASE
 };
 
 // Values for the isa_ext word of an ABI flags structure.
diff --git a/linux-x64/clang/include/llvm/Support/Mutex.h b/linux-x64/clang/include/llvm/Support/Mutex.h
index 0f4e61a..680d94b 100644
--- a/linux-x64/clang/include/llvm/Support/Mutex.h
+++ b/linux-x64/clang/include/llvm/Support/Mutex.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_MUTEX_H
 #define LLVM_SUPPORT_MUTEX_H
 
+#include "llvm/Config/llvm-config.h"
 #include "llvm/Support/Compiler.h"
 #include "llvm/Support/Threading.h"
 #include <cassert>
@@ -22,7 +23,7 @@
 {
   namespace sys
   {
-    /// @brief Platform agnostic Mutex class.
+    /// Platform agnostic Mutex class.
     class MutexImpl
     {
     /// @name Constructors
@@ -33,11 +34,11 @@
       /// to false, the lock will not be recursive which makes it cheaper but
       /// also more likely to deadlock (same thread can't acquire more than
       /// once).
-      /// @brief Default Constructor.
+      /// Default Constructor.
       explicit MutexImpl(bool recursive = true);
 
       /// Releases and removes the lock
-      /// @brief Destructor
+      /// Destructor
       ~MutexImpl();
 
     /// @}
@@ -48,14 +49,14 @@
       /// Attempts to unconditionally acquire the lock. If the lock is held by
       /// another thread, this method will wait until it can acquire the lock.
       /// @returns false if any kind of error occurs, true otherwise.
-      /// @brief Unconditionally acquire the lock.
+      /// Unconditionally acquire the lock.
       bool acquire();
 
       /// Attempts to release the lock. If the lock is held by the current
       /// thread, the lock is released allowing other threads to acquire the
       /// lock.
       /// @returns false if any kind of error occurs, true otherwise.
-      /// @brief Unconditionally release the lock.
+      /// Unconditionally release the lock.
       bool release();
 
       /// Attempts to acquire the lock without blocking. If the lock is not
@@ -63,7 +64,7 @@
       /// the lock is available, it is acquired.
       /// @returns false if any kind of error occurs or the lock is not
       /// available, true otherwise.
-      /// @brief Try to acquire the lock.
+      /// Try to acquire the lock.
       bool tryacquire();
 
     //@}
diff --git a/linux-x64/clang/include/llvm/Support/MutexGuard.h b/linux-x64/clang/include/llvm/Support/MutexGuard.h
index 07b64b6..641d64d 100644
--- a/linux-x64/clang/include/llvm/Support/MutexGuard.h
+++ b/linux-x64/clang/include/llvm/Support/MutexGuard.h
@@ -23,7 +23,7 @@
   /// these on the stack at the top of some scope to be assured that C++
   /// destruction of the object will always release the Mutex and thus avoid
   /// a host of nasty multi-threading problems in the face of exceptions, etc.
-  /// @brief Guard a section of code with a Mutex.
+  /// Guard a section of code with a Mutex.
   class MutexGuard {
     sys::Mutex &M;
     MutexGuard(const MutexGuard &) = delete;
diff --git a/linux-x64/clang/include/llvm/Support/OnDiskHashTable.h b/linux-x64/clang/include/llvm/Support/OnDiskHashTable.h
index 3ef004b..912e270 100644
--- a/linux-x64/clang/include/llvm/Support/OnDiskHashTable.h
+++ b/linux-x64/clang/include/llvm/Support/OnDiskHashTable.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief Defines facilities for reading and writing on-disk hash tables.
+/// Defines facilities for reading and writing on-disk hash tables.
 ///
 //===----------------------------------------------------------------------===//
 #ifndef LLVM_SUPPORT_ONDISKHASHTABLE_H
@@ -25,7 +25,7 @@
 
 namespace llvm {
 
-/// \brief Generates an on disk hash table.
+/// Generates an on disk hash table.
 ///
 /// This needs an \c Info that handles storing values into the hash table's
 /// payload and computes the hash for a given key. This should provide the
@@ -57,7 +57,7 @@
 /// };
 /// \endcode
 template <typename Info> class OnDiskChainedHashTableGenerator {
-  /// \brief A single item in the hash table.
+  /// A single item in the hash table.
   class Item {
   public:
     typename Info::key_type Key;
@@ -75,7 +75,7 @@
   offset_type NumEntries;
   llvm::SpecificBumpPtrAllocator<Item> BA;
 
-  /// \brief A linked list of values in a particular hash bucket.
+  /// A linked list of values in a particular hash bucket.
   struct Bucket {
     offset_type Off;
     unsigned Length;
@@ -85,7 +85,7 @@
   Bucket *Buckets;
 
 private:
-  /// \brief Insert an item into the appropriate hash bucket.
+  /// Insert an item into the appropriate hash bucket.
   void insert(Bucket *Buckets, size_t Size, Item *E) {
     Bucket &B = Buckets[E->Hash & (Size - 1)];
     E->Next = B.Head;
@@ -93,7 +93,7 @@
     B.Head = E;
   }
 
-  /// \brief Resize the hash table, moving the old entries into the new buckets.
+  /// Resize the hash table, moving the old entries into the new buckets.
   void resize(size_t NewSize) {
     Bucket *NewBuckets = static_cast<Bucket *>(
         safe_calloc(NewSize, sizeof(Bucket)));
@@ -112,14 +112,14 @@
   }
 
 public:
-  /// \brief Insert an entry into the table.
+  /// Insert an entry into the table.
   void insert(typename Info::key_type_ref Key,
               typename Info::data_type_ref Data) {
     Info InfoObj;
     insert(Key, Data, InfoObj);
   }
 
-  /// \brief Insert an entry into the table.
+  /// Insert an entry into the table.
   ///
   /// Uses the provided Info instead of a stack allocated one.
   void insert(typename Info::key_type_ref Key,
@@ -130,7 +130,7 @@
     insert(Buckets, NumBuckets, new (BA.Allocate()) Item(Key, Data, InfoObj));
   }
 
-  /// \brief Determine whether an entry has been inserted.
+  /// Determine whether an entry has been inserted.
   bool contains(typename Info::key_type_ref Key, Info &InfoObj) {
     unsigned Hash = InfoObj.ComputeHash(Key);
     for (Item *I = Buckets[Hash & (NumBuckets - 1)].Head; I; I = I->Next)
@@ -139,18 +139,18 @@
     return false;
   }
 
-  /// \brief Emit the table to Out, which must not be at offset 0.
+  /// Emit the table to Out, which must not be at offset 0.
   offset_type Emit(raw_ostream &Out) {
     Info InfoObj;
     return Emit(Out, InfoObj);
   }
 
-  /// \brief Emit the table to Out, which must not be at offset 0.
+  /// Emit the table to Out, which must not be at offset 0.
   ///
   /// Uses the provided Info instead of a stack allocated one.
   offset_type Emit(raw_ostream &Out, Info &InfoObj) {
     using namespace llvm::support;
-    endian::Writer<little> LE(Out);
+    endian::Writer LE(Out, little);
 
     // Now we're done adding entries, resize the bucket list if it's
     // significantly too large. (This only happens if the number of
@@ -233,7 +233,7 @@
   ~OnDiskChainedHashTableGenerator() { std::free(Buckets); }
 };
 
-/// \brief Provides lookup on an on disk hash table.
+/// Provides lookup on an on disk hash table.
 ///
 /// This needs an \c Info that handles reading values from the hash table's
 /// payload and computes the hash for a given key. This should provide the
@@ -339,14 +339,14 @@
     bool operator!=(const iterator &X) const { return X.Data != Data; }
   };
 
-  /// \brief Look up the stored data for a particular key.
+  /// Look up the stored data for a particular key.
   iterator find(const external_key_type &EKey, Info *InfoPtr = nullptr) {
     const internal_key_type &IKey = InfoObj.GetInternalKey(EKey);
     hash_value_type KeyHash = InfoObj.ComputeHash(IKey);
     return find_hashed(IKey, KeyHash, InfoPtr);
   }
 
-  /// \brief Look up the stored data for a particular key with a known hash.
+  /// Look up the stored data for a particular key with a known hash.
   iterator find_hashed(const internal_key_type &IKey, hash_value_type KeyHash,
                        Info *InfoPtr = nullptr) {
     using namespace llvm::support;
@@ -404,7 +404,7 @@
 
   Info &getInfoObj() { return InfoObj; }
 
-  /// \brief Create the hash table.
+  /// Create the hash table.
   ///
   /// \param Buckets is the beginning of the hash table itself, which follows
   /// the payload of entire structure. This is the value returned by
@@ -424,7 +424,7 @@
   }
 };
 
-/// \brief Provides lookup and iteration over an on disk hash table.
+/// Provides lookup and iteration over an on disk hash table.
 ///
 /// \copydetails llvm::OnDiskChainedHashTable
 template <typename Info>
@@ -440,7 +440,7 @@
   typedef typename base_type::offset_type       offset_type;
 
 private:
-  /// \brief Iterates over all of the keys in the table.
+  /// Iterates over all of the keys in the table.
   class iterator_base {
     const unsigned char *Ptr;
     offset_type NumItemsInBucketLeft;
@@ -497,7 +497,7 @@
       : base_type(NumBuckets, NumEntries, Buckets, Base, InfoObj),
         Payload(Payload) {}
 
-  /// \brief Iterates over all of the keys in the table.
+  /// Iterates over all of the keys in the table.
   class key_iterator : public iterator_base {
     Info *InfoObj;
 
@@ -543,7 +543,7 @@
     return make_range(key_begin(), key_end());
   }
 
-  /// \brief Iterates over all the entries in the table, returning the data.
+  /// Iterates over all the entries in the table, returning the data.
   class data_iterator : public iterator_base {
     Info *InfoObj;
 
@@ -586,7 +586,7 @@
     return make_range(data_begin(), data_end());
   }
 
-  /// \brief Create the hash table.
+  /// Create the hash table.
   ///
   /// \param Buckets is the beginning of the hash table itself, which follows
   /// the payload of entire structure. This is the value returned by
diff --git a/linux-x64/clang/include/llvm/Support/Options.h b/linux-x64/clang/include/llvm/Support/Options.h
index 9019804..dd321c6 100644
--- a/linux-x64/clang/include/llvm/Support/Options.h
+++ b/linux-x64/clang/include/llvm/Support/Options.h
@@ -56,7 +56,7 @@
 
 } // namespace detail
 
-/// \brief Singleton class used to register debug options.
+/// Singleton class used to register debug options.
 ///
 /// The OptionRegistry is responsible for managing lifetimes of the options and
 /// provides interfaces for option registration and reading values from options.
@@ -66,7 +66,7 @@
 private:
   DenseMap<void *, cl::Option *> Options;
 
-  /// \brief Adds a cl::Option to the registry.
+  /// Adds a cl::Option to the registry.
   ///
   /// \param Key unique key for option
   /// \param O option to map to \p Key
@@ -79,10 +79,10 @@
   ~OptionRegistry();
   OptionRegistry() {}
 
-  /// \brief Returns a reference to the singleton instance.
+  /// Returns a reference to the singleton instance.
   static OptionRegistry &instance();
 
-  /// \brief Registers an option with the OptionRegistry singleton.
+  /// Registers an option with the OptionRegistry singleton.
   ///
   /// \tparam ValT type of the option's data
   /// \tparam Base class used to key the option
@@ -100,7 +100,7 @@
     instance().addOption(&detail::OptionKey<ValT, Base, Mem>::ID, Option);
   }
 
-  /// \brief Returns the value of the option.
+  /// Returns the value of the option.
   ///
   /// \tparam ValT type of the option's data
   /// \tparam Base class used to key the option
diff --git a/linux-x64/clang/include/llvm/Support/Parallel.h b/linux-x64/clang/include/llvm/Support/Parallel.h
index 01b2bcd..1462265 100644
--- a/linux-x64/clang/include/llvm/Support/Parallel.h
+++ b/linux-x64/clang/include/llvm/Support/Parallel.h
@@ -100,7 +100,7 @@
 #else
 const ptrdiff_t MinParallelSize = 1024;
 
-/// \brief Inclusive median.
+/// Inclusive median.
 template <class RandomAccessIterator, class Comparator>
 RandomAccessIterator medianOf3(RandomAccessIterator Start,
                                RandomAccessIterator End,
@@ -118,7 +118,7 @@
                          const Comparator &Comp, TaskGroup &TG, size_t Depth) {
   // Do a sequential sort for small inputs.
   if (std::distance(Start, End) < detail::MinParallelSize || Depth == 0) {
-    std::sort(Start, End, Comp);
+    llvm::sort(Start, End, Comp);
     return;
   }
 
@@ -200,7 +200,7 @@
           const Comparator &Comp = Comparator()) {
   static_assert(is_execution_policy<Policy>::value,
                 "Invalid execution policy!");
-  std::sort(Start, End, Comp);
+  llvm::sort(Start, End, Comp);
 }
 
 template <class Policy, class IterTy, class FuncTy>
diff --git a/linux-x64/clang/include/llvm/Support/Path.h b/linux-x64/clang/include/llvm/Support/Path.h
index e597967..c4cc937 100644
--- a/linux-x64/clang/include/llvm/Support/Path.h
+++ b/linux-x64/clang/include/llvm/Support/Path.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/iterator.h"
 #include "llvm/Support/DataTypes.h"
 #include <iterator>
+#include <system_error>
 
 namespace llvm {
 namespace sys {
@@ -30,7 +31,7 @@
 /// @name Lexical Component Iterator
 /// @{
 
-/// @brief Path iterator.
+/// Path iterator.
 ///
 /// This is an input iterator that iterates over the individual components in
 /// \a path. The traversal order is as follows:
@@ -66,11 +67,11 @@
   const_iterator &operator++();    // preincrement
   bool operator==(const const_iterator &RHS) const;
 
-  /// @brief Difference in bytes between this and RHS.
+  /// Difference in bytes between this and RHS.
   ptrdiff_t operator-(const const_iterator &RHS) const;
 };
 
-/// @brief Reverse path iterator.
+/// Reverse path iterator.
 ///
 /// This is an input iterator that iterates over the individual components in
 /// \a path in reverse order. The traversal order is exactly reversed from that
@@ -91,26 +92,26 @@
   reverse_iterator &operator++();    // preincrement
   bool operator==(const reverse_iterator &RHS) const;
 
-  /// @brief Difference in bytes between this and RHS.
+  /// Difference in bytes between this and RHS.
   ptrdiff_t operator-(const reverse_iterator &RHS) const;
 };
 
-/// @brief Get begin iterator over \a path.
+/// Get begin iterator over \a path.
 /// @param path Input path.
 /// @returns Iterator initialized with the first component of \a path.
 const_iterator begin(StringRef path, Style style = Style::native);
 
-/// @brief Get end iterator over \a path.
+/// Get end iterator over \a path.
 /// @param path Input path.
 /// @returns Iterator initialized to the end of \a path.
 const_iterator end(StringRef path);
 
-/// @brief Get reverse begin iterator over \a path.
+/// Get reverse begin iterator over \a path.
 /// @param path Input path.
 /// @returns Iterator initialized with the first reverse component of \a path.
 reverse_iterator rbegin(StringRef path, Style style = Style::native);
 
-/// @brief Get reverse end iterator over \a path.
+/// Get reverse end iterator over \a path.
 /// @param path Input path.
 /// @returns Iterator initialized to the reverse end of \a path.
 reverse_iterator rend(StringRef path);
@@ -119,7 +120,7 @@
 /// @name Lexical Modifiers
 /// @{
 
-/// @brief Remove the last component from \a path unless it is the root dir.
+/// Remove the last component from \a path unless it is the root dir.
 ///
 /// @code
 ///   directory/filename.cpp => directory/
@@ -131,7 +132,7 @@
 /// @param path A path that is modified to not have a file component.
 void remove_filename(SmallVectorImpl<char> &path, Style style = Style::native);
 
-/// @brief Replace the file extension of \a path with \a extension.
+/// Replace the file extension of \a path with \a extension.
 ///
 /// @code
 ///   ./filename.cpp => ./filename.extension
@@ -146,7 +147,7 @@
 void replace_extension(SmallVectorImpl<char> &path, const Twine &extension,
                        Style style = Style::native);
 
-/// @brief Replace matching path prefix with another path.
+/// Replace matching path prefix with another path.
 ///
 /// @code
 ///   /foo, /old, /new => /foo
@@ -163,7 +164,7 @@
                          const StringRef &OldPrefix, const StringRef &NewPrefix,
                          Style style = Style::native);
 
-/// @brief Append to path.
+/// Append to path.
 ///
 /// @code
 ///   /foo  + bar/f => /foo/bar/f
@@ -181,7 +182,7 @@
 void append(SmallVectorImpl<char> &path, Style style, const Twine &a,
             const Twine &b = "", const Twine &c = "", const Twine &d = "");
 
-/// @brief Append to path.
+/// Append to path.
 ///
 /// @code
 ///   /foo  + [bar,f] => /foo/bar/f
@@ -215,7 +216,7 @@
 /// @param path A path that is transformed to native format.
 void native(SmallVectorImpl<char> &path, Style style = Style::native);
 
-/// @brief Replaces backslashes with slashes if Windows.
+/// Replaces backslashes with slashes if Windows.
 ///
 /// @param path processed path
 /// @result The result of replacing backslashes with forward slashes if Windows.
@@ -227,7 +228,7 @@
 /// @name Lexical Observers
 /// @{
 
-/// @brief Get root name.
+/// Get root name.
 ///
 /// @code
 ///   //net/hello => //net
@@ -239,7 +240,7 @@
 /// @result The root name of \a path if it has one, otherwise "".
 StringRef root_name(StringRef path, Style style = Style::native);
 
-/// @brief Get root directory.
+/// Get root directory.
 ///
 /// @code
 ///   /goo/hello => /
@@ -252,7 +253,7 @@
 ///               "".
 StringRef root_directory(StringRef path, Style style = Style::native);
 
-/// @brief Get root path.
+/// Get root path.
 ///
 /// Equivalent to root_name + root_directory.
 ///
@@ -260,7 +261,7 @@
 /// @result The root path of \a path if it has one, otherwise "".
 StringRef root_path(StringRef path, Style style = Style::native);
 
-/// @brief Get relative path.
+/// Get relative path.
 ///
 /// @code
 ///   C:\hello\world => hello\world
@@ -272,7 +273,7 @@
 /// @result The path starting after root_path if one exists, otherwise "".
 StringRef relative_path(StringRef path, Style style = Style::native);
 
-/// @brief Get parent path.
+/// Get parent path.
 ///
 /// @code
 ///   /          => <empty>
@@ -284,7 +285,7 @@
 /// @result The parent path of \a path if one exists, otherwise "".
 StringRef parent_path(StringRef path, Style style = Style::native);
 
-/// @brief Get filename.
+/// Get filename.
 ///
 /// @code
 ///   /foo.txt    => foo.txt
@@ -298,7 +299,7 @@
 ///         of \a path.
 StringRef filename(StringRef path, Style style = Style::native);
 
-/// @brief Get stem.
+/// Get stem.
 ///
 /// If filename contains a dot but not solely one or two dots, result is the
 /// substring of filename ending at (but not including) the last dot. Otherwise
@@ -316,7 +317,7 @@
 /// @result The stem of \a path.
 StringRef stem(StringRef path, Style style = Style::native);
 
-/// @brief Get extension.
+/// Get extension.
 ///
 /// If filename contains a dot but not solely one or two dots, result is the
 /// substring of filename starting at (and including) the last dot, and ending
@@ -332,18 +333,18 @@
 /// @result The extension of \a path.
 StringRef extension(StringRef path, Style style = Style::native);
 
-/// @brief Check whether the given char is a path separator on the host OS.
+/// Check whether the given char is a path separator on the host OS.
 ///
 /// @param value a character
 /// @result true if \a value is a path separator character on the host OS
 bool is_separator(char value, Style style = Style::native);
 
-/// @brief Return the preferred separator for this platform.
+/// Return the preferred separator for this platform.
 ///
 /// @result StringRef of the preferred separator, null-terminated.
 StringRef get_separator(Style style = Style::native);
 
-/// @brief Get the typical temporary directory for the system, e.g.,
+/// Get the typical temporary directory for the system, e.g.,
 /// "/var/tmp" or "C:/TEMP"
 ///
 /// @param erasedOnReboot Whether to favor a path that is erased on reboot
@@ -354,13 +355,13 @@
 /// @param result Holds the resulting path name.
 void system_temp_directory(bool erasedOnReboot, SmallVectorImpl<char> &result);
 
-/// @brief Get the user's home directory.
+/// Get the user's home directory.
 ///
 /// @param result Holds the resulting path name.
 /// @result True if a home directory is set, false otherwise.
 bool home_directory(SmallVectorImpl<char> &result);
 
-/// @brief Get the user's cache directory.
+/// Get the user's cache directory.
 ///
 /// Expect the resulting path to be a directory shared with other
 /// applications/services used by the user. Params \p Path1 to \p Path3 can be
@@ -376,7 +377,7 @@
 bool user_cache_directory(SmallVectorImpl<char> &Result, const Twine &Path1,
                           const Twine &Path2 = "", const Twine &Path3 = "");
 
-/// @brief Has root name?
+/// Has root name?
 ///
 /// root_name != ""
 ///
@@ -384,7 +385,7 @@
 /// @result True if the path has a root name, false otherwise.
 bool has_root_name(const Twine &path, Style style = Style::native);
 
-/// @brief Has root directory?
+/// Has root directory?
 ///
 /// root_directory != ""
 ///
@@ -392,7 +393,7 @@
 /// @result True if the path has a root directory, false otherwise.
 bool has_root_directory(const Twine &path, Style style = Style::native);
 
-/// @brief Has root path?
+/// Has root path?
 ///
 /// root_path != ""
 ///
@@ -400,7 +401,7 @@
 /// @result True if the path has a root path, false otherwise.
 bool has_root_path(const Twine &path, Style style = Style::native);
 
-/// @brief Has relative path?
+/// Has relative path?
 ///
 /// relative_path != ""
 ///
@@ -408,7 +409,7 @@
 /// @result True if the path has a relative path, false otherwise.
 bool has_relative_path(const Twine &path, Style style = Style::native);
 
-/// @brief Has parent path?
+/// Has parent path?
 ///
 /// parent_path != ""
 ///
@@ -416,7 +417,7 @@
 /// @result True if the path has a parent path, false otherwise.
 bool has_parent_path(const Twine &path, Style style = Style::native);
 
-/// @brief Has filename?
+/// Has filename?
 ///
 /// filename != ""
 ///
@@ -424,7 +425,7 @@
 /// @result True if the path has a filename, false otherwise.
 bool has_filename(const Twine &path, Style style = Style::native);
 
-/// @brief Has stem?
+/// Has stem?
 ///
 /// stem != ""
 ///
@@ -432,7 +433,7 @@
 /// @result True if the path has a stem, false otherwise.
 bool has_stem(const Twine &path, Style style = Style::native);
 
-/// @brief Has extension?
+/// Has extension?
 ///
 /// extension != ""
 ///
@@ -440,25 +441,25 @@
 /// @result True if the path has a extension, false otherwise.
 bool has_extension(const Twine &path, Style style = Style::native);
 
-/// @brief Is path absolute?
+/// Is path absolute?
 ///
 /// @param path Input path.
 /// @result True if the path is absolute, false if it is not.
 bool is_absolute(const Twine &path, Style style = Style::native);
 
-/// @brief Is path relative?
+/// Is path relative?
 ///
 /// @param path Input path.
 /// @result True if the path is relative, false if it is not.
 bool is_relative(const Twine &path, Style style = Style::native);
 
-/// @brief Remove redundant leading "./" pieces and consecutive separators.
+/// Remove redundant leading "./" pieces and consecutive separators.
 ///
 /// @param path Input path.
 /// @result The cleaned-up \a path.
 StringRef remove_leading_dotslash(StringRef path, Style style = Style::native);
 
-/// @brief In-place remove any './' and optionally '../' components from a path.
+/// In-place remove any './' and optionally '../' components from a path.
 ///
 /// @param path processed path
 /// @param remove_dot_dot specify if '../' (except for leading "../") should be
@@ -467,6 +468,10 @@
 bool remove_dots(SmallVectorImpl<char> &path, bool remove_dot_dot = false,
                  Style style = Style::native);
 
+#if defined(_WIN32)
+std::error_code widenPath(const Twine &Path8, SmallVectorImpl<wchar_t> &Path16);
+#endif
+
 } // end namespace path
 } // end namespace sys
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/Support/PointerLikeTypeTraits.h b/linux-x64/clang/include/llvm/Support/PointerLikeTypeTraits.h
index 794230d..1710b57 100644
--- a/linux-x64/clang/include/llvm/Support/PointerLikeTypeTraits.h
+++ b/linux-x64/clang/include/llvm/Support/PointerLikeTypeTraits.h
@@ -16,6 +16,7 @@
 #define LLVM_SUPPORT_POINTERLIKETYPETRAITS_H
 
 #include "llvm/Support/DataTypes.h"
+#include <assert.h>
 #include <type_traits>
 
 namespace llvm {
@@ -111,6 +112,39 @@
   enum { NumLowBitsAvailable = 0 };
 };
 
+/// Provide suitable custom traits struct for function pointers.
+///
+/// Function pointers can't be directly given these traits as functions can't
+/// have their alignment computed with `alignof` and we need different casting.
+///
+/// To rely on higher alignment for a specialized use, you can provide a
+/// customized form of this template explicitly with higher alignment, and
+/// potentially use alignment attributes on functions to satisfy that.
+template <int Alignment, typename FunctionPointerT>
+struct FunctionPointerLikeTypeTraits {
+  enum { NumLowBitsAvailable = detail::ConstantLog2<Alignment>::value };
+  static inline void *getAsVoidPointer(FunctionPointerT P) {
+    assert((reinterpret_cast<uintptr_t>(P) &
+            ~((uintptr_t)-1 << NumLowBitsAvailable)) == 0 &&
+           "Alignment not satisfied for an actual function pointer!");
+    return reinterpret_cast<void *>(P);
+  }
+  static inline FunctionPointerT getFromVoidPointer(void *P) {
+    return reinterpret_cast<FunctionPointerT>(P);
+  }
+};
+
+/// Provide a default specialization for function pointers that assumes 4-byte
+/// alignment.
+///
+/// We assume here that functions used with this are always at least 4-byte
+/// aligned. This means that, for example, thumb functions won't work or systems
+/// with weird unaligned function pointers won't work. But all practical systems
+/// we support satisfy this requirement.
+template <typename ReturnT, typename... ParamTs>
+struct PointerLikeTypeTraits<ReturnT (*)(ParamTs...)>
+    : FunctionPointerLikeTypeTraits<4, ReturnT (*)(ParamTs...)> {};
+
 } // end namespace llvm
 
 #endif
diff --git a/linux-x64/clang/include/llvm/Support/Process.h b/linux-x64/clang/include/llvm/Support/Process.h
index 82b0d9f..f9f1cac 100644
--- a/linux-x64/clang/include/llvm/Support/Process.h
+++ b/linux-x64/clang/include/llvm/Support/Process.h
@@ -26,7 +26,6 @@
 #define LLVM_SUPPORT_PROCESS_H
 
 #include "llvm/ADT/Optional.h"
-#include "llvm/Config/llvm-config.h"
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/Chrono.h"
 #include "llvm/Support/DataTypes.h"
@@ -39,13 +38,13 @@
 namespace sys {
 
 
-/// \brief A collection of legacy interfaces for querying information about the
+/// A collection of legacy interfaces for querying information about the
 /// current executing process.
 class Process {
 public:
   static unsigned getPageSize();
 
-  /// \brief Return process memory usage.
+  /// Return process memory usage.
   /// This static function will return the total amount of memory allocated
   /// by the process. This only counts the memory allocated via the malloc,
   /// calloc and realloc functions and includes any "free" holes in the
@@ -67,10 +66,10 @@
   /// This function makes the necessary calls to the operating system to
   /// prevent core files or any other kind of large memory dumps that can
   /// occur when a program fails.
-  /// @brief Prevent core file generation.
+  /// Prevent core file generation.
   static void PreventCoreFiles();
 
-  /// \brief true if PreventCoreFiles has been called, false otherwise.
+  /// true if PreventCoreFiles has been called, false otherwise.
   static bool AreCoreFilesPrevented();
 
   // This function returns the environment variable \arg name's value as a UTF-8
@@ -90,14 +89,6 @@
   static Optional<std::string> FindInEnvPath(StringRef EnvName,
                                              StringRef FileName);
 
-  /// This function returns a SmallVector containing the arguments passed from
-  /// the operating system to the program.  This function expects to be handed
-  /// the vector passed in from main.
-  static std::error_code
-  GetArgumentVector(SmallVectorImpl<const char *> &Args,
-                    ArrayRef<const char *> ArgsFromMain,
-                    SpecificBumpPtrAllocator<char> &ArgAllocator);
-
   // This functions ensures that the standard file descriptors (input, output,
   // and error) are properly mapped to a file descriptor before we use any of
   // them.  This should only be called by standalone programs, library
diff --git a/linux-x64/clang/include/llvm/Support/Program.h b/linux-x64/clang/include/llvm/Support/Program.h
index 06fd350..1f4dbdc 100644
--- a/linux-x64/clang/include/llvm/Support/Program.h
+++ b/linux-x64/clang/include/llvm/Support/Program.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Config/llvm-config.h"
 #include "llvm/Support/ErrorOr.h"
 #include <system_error>
 
@@ -27,35 +28,32 @@
   // a colon on Unix or a semicolon on Windows.
 #if defined(LLVM_ON_UNIX)
   const char EnvPathSeparator = ':';
-#elif defined (LLVM_ON_WIN32)
+#elif defined (_WIN32)
   const char EnvPathSeparator = ';';
 #endif
 
-/// @brief This struct encapsulates information about a process.
-struct ProcessInfo {
-#if defined(LLVM_ON_UNIX)
-  typedef pid_t ProcessId;
-#elif defined(LLVM_ON_WIN32)
-  typedef unsigned long ProcessId; // Must match the type of DWORD on Windows.
-  typedef void * HANDLE; // Must match the type of HANDLE on Windows.
-  /// The handle to the process (available on Windows only).
-  HANDLE ProcessHandle;
+#if defined(_WIN32)
+  typedef unsigned long procid_t; // Must match the type of DWORD on Windows.
+  typedef void *process_t;        // Must match the type of HANDLE on Windows.
 #else
-#error "ProcessInfo is not defined for this platform!"
+  typedef pid_t procid_t;
+  typedef procid_t process_t;
 #endif
 
-  enum : ProcessId { InvalidPid = 0 };
+  /// This struct encapsulates information about a process.
+  struct ProcessInfo {
+    enum : procid_t { InvalidPid = 0 };
 
-  /// The process identifier.
-  ProcessId Pid;
+    procid_t Pid;      /// The process identifier.
+    process_t Process; /// Platform-dependent process object.
 
-  /// The return code, set after execution.
-  int ReturnCode;
+    /// The return code, set after execution.
+    int ReturnCode;
 
-  ProcessInfo();
-};
+    ProcessInfo();
+  };
 
-  /// \brief Find the first executable file \p Name in \p Paths.
+  /// Find the first executable file \p Name in \p Paths.
   ///
   /// This does not perform hashing as a shell would but instead stats each PATH
   /// entry individually so should generally be avoided. Core LLVM library
@@ -91,12 +89,13 @@
   int ExecuteAndWait(
       StringRef Program, ///< Path of the program to be executed. It is
       ///< presumed this is the result of the findProgramByName method.
-      const char **Args, ///< A vector of strings that are passed to the
+      ArrayRef<StringRef> Args, ///< An array of strings that are passed to the
       ///< program.  The first element should be the name of the program.
-      ///< The list *must* be terminated by a null char* entry.
-      const char **Env = nullptr, ///< An optional vector of strings to use for
-      ///< the program's environment. If not provided, the current program's
-      ///< environment will be used.
+      ///< The array should **not** be terminated by an empty StringRef.
+      Optional<ArrayRef<StringRef>> Env = None, ///< An optional vector of
+      ///< strings to use for the program's environment. If not provided, the
+      ///< current program's environment will be used.  If specified, the
+      ///< vector should **not** be terminated by an empty StringRef.
       ArrayRef<Optional<StringRef>> Redirects = {}, ///<
       ///< An array of optional paths. Should have a size of zero or three.
       ///< If the array is empty, no redirections are performed.
@@ -125,8 +124,8 @@
   /// \note On Microsoft Windows systems, users will need to either call
   /// \see Wait until the process finished execution or win32 CloseHandle() API
   /// on ProcessInfo.ProcessHandle to avoid memory leaks.
-  ProcessInfo ExecuteNoWait(StringRef Program, const char **Args,
-                            const char **Env = nullptr,
+  ProcessInfo ExecuteNoWait(StringRef Program, ArrayRef<StringRef> Args,
+                            Optional<ArrayRef<StringRef>> Env,
                             ArrayRef<Optional<StringRef>> Redirects = {},
                             unsigned MemoryLimit = 0,
                             std::string *ErrMsg = nullptr,
@@ -135,6 +134,11 @@
   /// Return true if the given arguments fit within system-specific
   /// argument length limits.
   bool commandLineFitsWithinSystemLimits(StringRef Program,
+                                         ArrayRef<StringRef> Args);
+
+  /// Return true if the given arguments fit within system-specific
+  /// argument length limits.
+  bool commandLineFitsWithinSystemLimits(StringRef Program,
                                          ArrayRef<const char *> Args);
 
   /// File encoding options when writing contents that a non-UTF8 tool will
@@ -191,6 +195,14 @@
       ///< string is non-empty upon return an error occurred while invoking the
       ///< program.
       );
+
+#if defined(_WIN32)
+  /// Given a list of command line arguments, quote and escape them as necessary
+  /// to build a single flat command line appropriate for calling CreateProcess
+  /// on
+  /// Windows.
+  std::string flattenWindowsCommandLine(ArrayRef<StringRef> Args);
+#endif
   }
 }
 
diff --git a/linux-x64/clang/include/llvm/Support/RWMutex.h b/linux-x64/clang/include/llvm/Support/RWMutex.h
index 85f4fc0..5ac3e55 100644
--- a/linux-x64/clang/include/llvm/Support/RWMutex.h
+++ b/linux-x64/clang/include/llvm/Support/RWMutex.h
@@ -21,7 +21,7 @@
 namespace llvm {
 namespace sys {
 
-    /// @brief Platform agnostic RWMutex class.
+    /// Platform agnostic RWMutex class.
     class RWMutexImpl
     {
     /// @name Constructors
@@ -29,7 +29,7 @@
     public:
 
       /// Initializes the lock but doesn't acquire it.
-      /// @brief Default Constructor.
+      /// Default Constructor.
       explicit RWMutexImpl();
 
     /// @}
@@ -40,7 +40,7 @@
     /// @}
 
       /// Releases and removes the lock
-      /// @brief Destructor
+      /// Destructor
       ~RWMutexImpl();
 
     /// @}
@@ -52,24 +52,24 @@
       /// lock is held by a writer, this method will wait until it can acquire
       /// the lock.
       /// @returns false if any kind of error occurs, true otherwise.
-      /// @brief Unconditionally acquire the lock in reader mode.
+      /// Unconditionally acquire the lock in reader mode.
       bool reader_acquire();
 
       /// Attempts to release the lock in reader mode.
       /// @returns false if any kind of error occurs, true otherwise.
-      /// @brief Unconditionally release the lock in reader mode.
+      /// Unconditionally release the lock in reader mode.
       bool reader_release();
 
       /// Attempts to unconditionally acquire the lock in reader mode. If the
       /// lock is held by any readers, this method will wait until it can
       /// acquire the lock.
       /// @returns false if any kind of error occurs, true otherwise.
-      /// @brief Unconditionally acquire the lock in writer mode.
+      /// Unconditionally acquire the lock in writer mode.
       bool writer_acquire();
 
       /// Attempts to release the lock in writer mode.
       /// @returns false if any kind of error occurs, true otherwise.
-      /// @brief Unconditionally release the lock in write mode.
+      /// Unconditionally release the lock in write mode.
       bool writer_release();
 
     //@}
diff --git a/linux-x64/clang/include/llvm/Support/Regex.h b/linux-x64/clang/include/llvm/Support/Regex.h
index f498835..d901eb1 100644
--- a/linux-x64/clang/include/llvm/Support/Regex.h
+++ b/linux-x64/clang/include/llvm/Support/Regex.h
@@ -86,11 +86,11 @@
     std::string sub(StringRef Repl, StringRef String,
                     std::string *Error = nullptr);
 
-    /// \brief If this function returns true, ^Str$ is an extended regular
+    /// If this function returns true, ^Str$ is an extended regular
     /// expression that matches Str and only Str.
     static bool isLiteralERE(StringRef Str);
 
-    /// \brief Turn String into a regex by escaping its special characters.
+    /// Turn String into a regex by escaping its special characters.
     static std::string escape(StringRef String);
 
   private:
diff --git a/linux-x64/clang/include/llvm/Support/SMLoc.h b/linux-x64/clang/include/llvm/Support/SMLoc.h
index 5b8be55..c74feff 100644
--- a/linux-x64/clang/include/llvm/Support/SMLoc.h
+++ b/linux-x64/clang/include/llvm/Support/SMLoc.h
@@ -44,8 +44,8 @@
 /// Represents a range in source code.
 ///
 /// SMRange is implemented using a half-open range, as is the convention in C++.
-/// In the string "abc", the range (1,3] represents the substring "bc", and the
-/// range (2,2] represents an empty range between the characters "b" and "c".
+/// In the string "abc", the range [1,3) represents the substring "bc", and the
+/// range [2,2) represents an empty range between the characters "b" and "c".
 class SMRange {
 public:
   SMLoc Start, End;
@@ -54,7 +54,7 @@
   SMRange(NoneType) {}
   SMRange(SMLoc St, SMLoc En) : Start(St), End(En) {
     assert(Start.isValid() == End.isValid() &&
-           "Start and end should either both be valid or both be invalid!");
+           "Start and End should either both be valid or both be invalid!");
   }
 
   bool isValid() const { return Start.isValid(); }
diff --git a/linux-x64/clang/include/llvm/Support/SaveAndRestore.h b/linux-x64/clang/include/llvm/Support/SaveAndRestore.h
index ef154ac..8e11789 100644
--- a/linux-x64/clang/include/llvm/Support/SaveAndRestore.h
+++ b/linux-x64/clang/include/llvm/Support/SaveAndRestore.h
@@ -32,18 +32,6 @@
   T OldValue;
 };
 
-/// Similar to \c SaveAndRestore.  Operates only on bools; the old value of a
-/// variable is saved, and during the dstor the old value is or'ed with the new
-/// value.
-struct SaveOr {
-  SaveOr(bool &X) : X(X), OldValue(X) { X = false; }
-  ~SaveOr() { X |= OldValue; }
-
-private:
-  bool &X;
-  const bool OldValue;
-};
-
 } // namespace llvm
 
 #endif
diff --git a/linux-x64/clang/include/llvm/Support/ScaledNumber.h b/linux-x64/clang/include/llvm/Support/ScaledNumber.h
index cfbdbc7..3bd3cce 100644
--- a/linux-x64/clang/include/llvm/Support/ScaledNumber.h
+++ b/linux-x64/clang/include/llvm/Support/ScaledNumber.h
@@ -33,16 +33,16 @@
 namespace llvm {
 namespace ScaledNumbers {
 
-/// \brief Maximum scale; same as APFloat for easy debug printing.
+/// Maximum scale; same as APFloat for easy debug printing.
 const int32_t MaxScale = 16383;
 
-/// \brief Maximum scale; same as APFloat for easy debug printing.
+/// Maximum scale; same as APFloat for easy debug printing.
 const int32_t MinScale = -16382;
 
-/// \brief Get the width of a number.
+/// Get the width of a number.
 template <class DigitsT> inline int getWidth() { return sizeof(DigitsT) * 8; }
 
-/// \brief Conditionally round up a scaled number.
+/// Conditionally round up a scaled number.
 ///
 /// Given \c Digits and \c Scale, round up iff \c ShouldRound is \c true.
 /// Always returns \c Scale unless there's an overflow, in which case it
@@ -61,19 +61,19 @@
   return std::make_pair(Digits, Scale);
 }
 
-/// \brief Convenience helper for 32-bit rounding.
+/// Convenience helper for 32-bit rounding.
 inline std::pair<uint32_t, int16_t> getRounded32(uint32_t Digits, int16_t Scale,
                                                  bool ShouldRound) {
   return getRounded(Digits, Scale, ShouldRound);
 }
 
-/// \brief Convenience helper for 64-bit rounding.
+/// Convenience helper for 64-bit rounding.
 inline std::pair<uint64_t, int16_t> getRounded64(uint64_t Digits, int16_t Scale,
                                                  bool ShouldRound) {
   return getRounded(Digits, Scale, ShouldRound);
 }
 
-/// \brief Adjust a 64-bit scaled number down to the appropriate width.
+/// Adjust a 64-bit scaled number down to the appropriate width.
 ///
 /// \pre Adding 64 to \c Scale will not overflow INT16_MAX.
 template <class DigitsT>
@@ -91,24 +91,24 @@
                              Digits & (UINT64_C(1) << (Shift - 1)));
 }
 
-/// \brief Convenience helper for adjusting to 32 bits.
+/// Convenience helper for adjusting to 32 bits.
 inline std::pair<uint32_t, int16_t> getAdjusted32(uint64_t Digits,
                                                   int16_t Scale = 0) {
   return getAdjusted<uint32_t>(Digits, Scale);
 }
 
-/// \brief Convenience helper for adjusting to 64 bits.
+/// Convenience helper for adjusting to 64 bits.
 inline std::pair<uint64_t, int16_t> getAdjusted64(uint64_t Digits,
                                                   int16_t Scale = 0) {
   return getAdjusted<uint64_t>(Digits, Scale);
 }
 
-/// \brief Multiply two 64-bit integers to create a 64-bit scaled number.
+/// Multiply two 64-bit integers to create a 64-bit scaled number.
 ///
 /// Implemented with four 64-bit integer multiplies.
 std::pair<uint64_t, int16_t> multiply64(uint64_t LHS, uint64_t RHS);
 
-/// \brief Multiply two 32-bit integers to create a 32-bit scaled number.
+/// Multiply two 32-bit integers to create a 32-bit scaled number.
 ///
 /// Implemented with one 64-bit integer multiply.
 template <class DigitsT>
@@ -121,31 +121,31 @@
   return multiply64(LHS, RHS);
 }
 
-/// \brief Convenience helper for 32-bit product.
+/// Convenience helper for 32-bit product.
 inline std::pair<uint32_t, int16_t> getProduct32(uint32_t LHS, uint32_t RHS) {
   return getProduct(LHS, RHS);
 }
 
-/// \brief Convenience helper for 64-bit product.
+/// Convenience helper for 64-bit product.
 inline std::pair<uint64_t, int16_t> getProduct64(uint64_t LHS, uint64_t RHS) {
   return getProduct(LHS, RHS);
 }
 
-/// \brief Divide two 64-bit integers to create a 64-bit scaled number.
+/// Divide two 64-bit integers to create a 64-bit scaled number.
 ///
 /// Implemented with long division.
 ///
 /// \pre \c Dividend and \c Divisor are non-zero.
 std::pair<uint64_t, int16_t> divide64(uint64_t Dividend, uint64_t Divisor);
 
-/// \brief Divide two 32-bit integers to create a 32-bit scaled number.
+/// Divide two 32-bit integers to create a 32-bit scaled number.
 ///
 /// Implemented with one 64-bit integer divide/remainder pair.
 ///
 /// \pre \c Dividend and \c Divisor are non-zero.
 std::pair<uint32_t, int16_t> divide32(uint32_t Dividend, uint32_t Divisor);
 
-/// \brief Divide two 32-bit numbers to create a 32-bit scaled number.
+/// Divide two 32-bit numbers to create a 32-bit scaled number.
 ///
 /// Implemented with one 64-bit integer divide/remainder pair.
 ///
@@ -167,19 +167,19 @@
   return divide32(Dividend, Divisor);
 }
 
-/// \brief Convenience helper for 32-bit quotient.
+/// Convenience helper for 32-bit quotient.
 inline std::pair<uint32_t, int16_t> getQuotient32(uint32_t Dividend,
                                                   uint32_t Divisor) {
   return getQuotient(Dividend, Divisor);
 }
 
-/// \brief Convenience helper for 64-bit quotient.
+/// Convenience helper for 64-bit quotient.
 inline std::pair<uint64_t, int16_t> getQuotient64(uint64_t Dividend,
                                                   uint64_t Divisor) {
   return getQuotient(Dividend, Divisor);
 }
 
-/// \brief Implementation of getLg() and friends.
+/// Implementation of getLg() and friends.
 ///
 /// Returns the rounded lg of \c Digits*2^Scale and an int specifying whether
 /// this was rounded up (1), down (-1), or exact (0).
@@ -206,7 +206,7 @@
   return std::make_pair(Floor + Round, Round ? 1 : -1);
 }
 
-/// \brief Get the lg (rounded) of a scaled number.
+/// Get the lg (rounded) of a scaled number.
 ///
 /// Get the lg of \c Digits*2^Scale.
 ///
@@ -215,7 +215,7 @@
   return getLgImpl(Digits, Scale).first;
 }
 
-/// \brief Get the lg floor of a scaled number.
+/// Get the lg floor of a scaled number.
 ///
 /// Get the floor of the lg of \c Digits*2^Scale.
 ///
@@ -225,7 +225,7 @@
   return Lg.first - (Lg.second > 0);
 }
 
-/// \brief Get the lg ceiling of a scaled number.
+/// Get the lg ceiling of a scaled number.
 ///
 /// Get the ceiling of the lg of \c Digits*2^Scale.
 ///
@@ -235,7 +235,7 @@
   return Lg.first + (Lg.second < 0);
 }
 
-/// \brief Implementation for comparing scaled numbers.
+/// Implementation for comparing scaled numbers.
 ///
 /// Compare two 64-bit numbers with different scales.  Given that the scale of
 /// \c L is higher than that of \c R by \c ScaleDiff, compare them.  Return -1,
@@ -244,7 +244,7 @@
 /// \pre 0 <= ScaleDiff < 64.
 int compareImpl(uint64_t L, uint64_t R, int ScaleDiff);
 
-/// \brief Compare two scaled numbers.
+/// Compare two scaled numbers.
 ///
 /// Compare two scaled numbers.  Returns 0 for equal, -1 for less than, and 1
 /// for greater than.
@@ -271,7 +271,7 @@
   return -compareImpl(RDigits, LDigits, LScale - RScale);
 }
 
-/// \brief Match scales of two numbers.
+/// Match scales of two numbers.
 ///
 /// Given two scaled numbers, match up their scales.  Change the digits and
 /// scales in place.  Shift the digits as necessary to form equivalent numbers,
@@ -324,7 +324,7 @@
   return LScale;
 }
 
-/// \brief Get the sum of two scaled numbers.
+/// Get the sum of two scaled numbers.
 ///
 /// Get the sum of two scaled numbers with as much precision as possible.
 ///
@@ -352,19 +352,19 @@
   return std::make_pair(HighBit | Sum >> 1, Scale + 1);
 }
 
-/// \brief Convenience helper for 32-bit sum.
+/// Convenience helper for 32-bit sum.
 inline std::pair<uint32_t, int16_t> getSum32(uint32_t LDigits, int16_t LScale,
                                              uint32_t RDigits, int16_t RScale) {
   return getSum(LDigits, LScale, RDigits, RScale);
 }
 
-/// \brief Convenience helper for 64-bit sum.
+/// Convenience helper for 64-bit sum.
 inline std::pair<uint64_t, int16_t> getSum64(uint64_t LDigits, int16_t LScale,
                                              uint64_t RDigits, int16_t RScale) {
   return getSum(LDigits, LScale, RDigits, RScale);
 }
 
-/// \brief Get the difference of two scaled numbers.
+/// Get the difference of two scaled numbers.
 ///
 /// Get LHS minus RHS with as much precision as possible.
 ///
@@ -395,7 +395,7 @@
   return std::make_pair(LDigits, LScale);
 }
 
-/// \brief Convenience helper for 32-bit difference.
+/// Convenience helper for 32-bit difference.
 inline std::pair<uint32_t, int16_t> getDifference32(uint32_t LDigits,
                                                     int16_t LScale,
                                                     uint32_t RDigits,
@@ -403,7 +403,7 @@
   return getDifference(LDigits, LScale, RDigits, RScale);
 }
 
-/// \brief Convenience helper for 64-bit difference.
+/// Convenience helper for 64-bit difference.
 inline std::pair<uint64_t, int16_t> getDifference64(uint64_t LDigits,
                                                     int16_t LScale,
                                                     uint64_t RDigits,
@@ -443,7 +443,7 @@
   }
 };
 
-/// \brief Simple representation of a scaled number.
+/// Simple representation of a scaled number.
 ///
 /// ScaledNumber is a number represented by digits and a scale.  It uses simple
 /// saturation arithmetic and every operation is well-defined for every value.
@@ -534,7 +534,7 @@
   int16_t getScale() const { return Scale; }
   DigitsType getDigits() const { return Digits; }
 
-  /// \brief Convert to the given integer type.
+  /// Convert to the given integer type.
   ///
   /// Convert to \c IntT using simple saturating arithmetic, truncating if
   /// necessary.
@@ -548,17 +548,17 @@
     return Digits == DigitsType(1) << -Scale;
   }
 
-  /// \brief The log base 2, rounded.
+  /// The log base 2, rounded.
   ///
   /// Get the lg of the scalar.  lg 0 is defined to be INT32_MIN.
   int32_t lg() const { return ScaledNumbers::getLg(Digits, Scale); }
 
-  /// \brief The log base 2, rounded towards INT32_MIN.
+  /// The log base 2, rounded towards INT32_MIN.
   ///
   /// Get the lg floor.  lg 0 is defined to be INT32_MIN.
   int32_t lgFloor() const { return ScaledNumbers::getLgFloor(Digits, Scale); }
 
-  /// \brief The log base 2, rounded towards INT32_MAX.
+  /// The log base 2, rounded towards INT32_MAX.
   ///
   /// Get the lg ceiling.  lg 0 is defined to be INT32_MIN.
   int32_t lgCeiling() const {
@@ -574,7 +574,7 @@
 
   bool operator!() const { return isZero(); }
 
-  /// \brief Convert to a decimal representation in a string.
+  /// Convert to a decimal representation in a string.
   ///
   /// Convert to a string.  Uses scientific notation for very large/small
   /// numbers.  Scientific notation is used roughly for numbers outside of the
@@ -597,7 +597,7 @@
     return ScaledNumberBase::toString(Digits, Scale, Width, Precision);
   }
 
-  /// \brief Print a decimal representation.
+  /// Print a decimal representation.
   ///
   /// Print a string.  See toString for documentation.
   raw_ostream &print(raw_ostream &OS,
@@ -634,7 +634,7 @@
   void shiftLeft(int32_t Shift);
   void shiftRight(int32_t Shift);
 
-  /// \brief Adjust two floats to have matching exponents.
+  /// Adjust two floats to have matching exponents.
   ///
   /// Adjust \c this and \c X to have matching exponents.  Returns the new \c X
   /// by value.  Does nothing if \a isZero() for either.
@@ -647,7 +647,7 @@
   }
 
 public:
-  /// \brief Scale a large number accurately.
+  /// Scale a large number accurately.
   ///
   /// Scale N (multiply it by this).  Uses full precision multiplication, even
   /// if Width is smaller than 64, so information is not lost.
@@ -693,7 +693,7 @@
     return countLeadingZeros32(Digits) + Width - 32;
   }
 
-  /// \brief Adjust a number to width, rounding up if necessary.
+  /// Adjust a number to width, rounding up if necessary.
   ///
   /// Should only be called for \c Shift close to zero.
   ///
diff --git a/linux-x64/clang/include/llvm/Support/ScopedPrinter.h b/linux-x64/clang/include/llvm/Support/ScopedPrinter.h
index 964d254..062439b 100644
--- a/linux-x64/clang/include/llvm/Support/ScopedPrinter.h
+++ b/linux-x64/clang/include/llvm/Support/ScopedPrinter.h
@@ -138,7 +138,7 @@
       }
     }
 
-    std::sort(SetFlags.begin(), SetFlags.end(), &flagName<TFlag>);
+    llvm::sort(SetFlags.begin(), SetFlags.end(), &flagName<TFlag>);
 
     startLine() << Label << " [ (" << hex(Value) << ")\n";
     for (const auto &Flag : SetFlags) {
diff --git a/linux-x64/clang/include/llvm/Support/Signals.h b/linux-x64/clang/include/llvm/Support/Signals.h
index dec5f58..f25a049 100644
--- a/linux-x64/clang/include/llvm/Support/Signals.h
+++ b/linux-x64/clang/include/llvm/Support/Signals.h
@@ -29,7 +29,7 @@
 
   /// This function registers signal handlers to ensure that if a signal gets
   /// delivered that the named file is removed.
-  /// @brief Remove a file if a fatal signal occurs.
+  /// Remove a file if a fatal signal occurs.
   bool RemoveFileOnSignal(StringRef Filename, std::string* ErrMsg = nullptr);
 
   /// This function removes a file from the list of files to be removed on
@@ -38,7 +38,7 @@
 
   /// When an error signal (such as SIGABRT or SIGSEGV) is delivered to the
   /// process, print a stack trace and then exit.
-  /// \brief Print a stack trace if a fatal signal occurs.
+  /// Print a stack trace if a fatal signal occurs.
   /// \param Argv0 the current binary name, used to find the symbolizer
   ///        relative to the current binary before searching $PATH; can be
   ///        StringRef(), in which case we will only search $PATH.
@@ -50,16 +50,18 @@
   /// Disable all system dialog boxes that appear when the process crashes.
   void DisableSystemDialogsOnCrash();
 
-  /// \brief Print the stack trace using the given \c raw_ostream object.
+  /// Print the stack trace using the given \c raw_ostream object.
   void PrintStackTrace(raw_ostream &OS);
 
   // Run all registered signal handlers.
   void RunSignalHandlers();
 
-  /// AddSignalHandler - Add a function to be called when an abort/kill signal
-  /// is delivered to the process.  The handler can have a cookie passed to it
-  /// to identify what instance of the handler it is.
-  void AddSignalHandler(void (*FnPtr)(void *), void *Cookie);
+  using SignalHandlerCallback = void (*)(void *);
+
+  /// Add a function to be called when an abort/kill signal is delivered to the
+  /// process. The handler can have a cookie passed to it to identify what
+  /// instance of the handler it is.
+  void AddSignalHandler(SignalHandlerCallback FnPtr, void *Cookie);
 
   /// This function registers a function to be called when the user "interrupts"
   /// the program (typically by pressing ctrl-c).  When the user interrupts the
@@ -69,7 +71,7 @@
   /// functions.  An null interrupt function pointer disables the current
   /// installed function.  Note also that the handler may be executed on a
   /// different thread on some platforms.
-  /// @brief Register a function to be called when ctrl-c is pressed.
+  /// Register a function to be called when ctrl-c is pressed.
   void SetInterruptFunction(void (*IF)());
 } // End sys namespace
 } // End llvm namespace
diff --git a/linux-x64/clang/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h b/linux-x64/clang/include/llvm/Support/SmallVectorMemoryBuffer.h
similarity index 71%
rename from linux-x64/clang/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h
rename to linux-x64/clang/include/llvm/Support/SmallVectorMemoryBuffer.h
index 0f00ad0..c4a600e 100644
--- a/linux-x64/clang/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h
+++ b/linux-x64/clang/include/llvm/Support/SmallVectorMemoryBuffer.h
@@ -1,4 +1,4 @@
-//===- ObjectMemoryBuffer.h - SmallVector-backed MemoryBuffrer  -*- C++ -*-===//
+//===- SmallVectorMemoryBuffer.h --------------------------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -21,34 +21,37 @@
 
 namespace llvm {
 
-/// \brief SmallVector-backed MemoryBuffer instance.
+/// SmallVector-backed MemoryBuffer instance.
 ///
 /// This class enables efficient construction of MemoryBuffers from SmallVector
 /// instances. This is useful for MCJIT and Orc, where object files are streamed
 /// into SmallVectors, then inspected using ObjectFile (which takes a
 /// MemoryBuffer).
-class ObjectMemoryBuffer : public MemoryBuffer {
+class SmallVectorMemoryBuffer : public MemoryBuffer {
 public:
-
-  /// \brief Construct an ObjectMemoryBuffer from the given SmallVector r-value.
+  /// Construct an SmallVectorMemoryBuffer from the given SmallVector
+  /// r-value.
   ///
   /// FIXME: It'd be nice for this to be a non-templated constructor taking a
   /// SmallVectorImpl here instead of a templated one taking a SmallVector<N>,
   /// but SmallVector's move-construction/assignment currently only take
   /// SmallVectors. If/when that is fixed we can simplify this constructor and
   /// the following one.
-  ObjectMemoryBuffer(SmallVectorImpl<char> &&SV)
-    : SV(std::move(SV)), BufferName("<in-memory object>") {
+  SmallVectorMemoryBuffer(SmallVectorImpl<char> &&SV)
+      : SV(std::move(SV)), BufferName("<in-memory object>") {
     init(this->SV.begin(), this->SV.end(), false);
   }
 
-  /// \brief Construct a named ObjectMemoryBuffer from the given SmallVector
-  ///        r-value and StringRef.
-  ObjectMemoryBuffer(SmallVectorImpl<char> &&SV, StringRef Name)
-    : SV(std::move(SV)), BufferName(Name) {
+  /// Construct a named SmallVectorMemoryBuffer from the given
+  /// SmallVector r-value and StringRef.
+  SmallVectorMemoryBuffer(SmallVectorImpl<char> &&SV, StringRef Name)
+      : SV(std::move(SV)), BufferName(Name) {
     init(this->SV.begin(), this->SV.end(), false);
   }
 
+  // Key function.
+  ~SmallVectorMemoryBuffer() override;
+
   StringRef getBufferIdentifier() const override { return BufferName; }
 
   BufferKind getBufferKind() const override { return MemoryBuffer_Malloc; }
diff --git a/linux-x64/clang/include/llvm/Support/SourceMgr.h b/linux-x64/clang/include/llvm/Support/SourceMgr.h
index c08bf85..63ac893 100644
--- a/linux-x64/clang/include/llvm/Support/SourceMgr.h
+++ b/linux-x64/clang/include/llvm/Support/SourceMgr.h
@@ -18,6 +18,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/None.h"
+#include "llvm/ADT/PointerUnion.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
@@ -57,8 +58,38 @@
     /// The memory buffer for the file.
     std::unique_ptr<MemoryBuffer> Buffer;
 
+    /// Helper type for OffsetCache below: since we're storing many offsets
+    /// into relatively small files (often smaller than 2^8 or 2^16 bytes),
+    /// we select the offset vector element type dynamically based on the
+    /// size of Buffer.
+    using VariableSizeOffsets = PointerUnion4<std::vector<uint8_t> *,
+                                              std::vector<uint16_t> *,
+                                              std::vector<uint32_t> *,
+                                              std::vector<uint64_t> *>;
+
+    /// Vector of offsets into Buffer at which there are line-endings
+    /// (lazily populated). Once populated, the '\n' that marks the end of
+    /// line number N from [1..] is at Buffer[OffsetCache[N-1]]. Since
+    /// these offsets are in sorted (ascending) order, they can be
+    /// binary-searched for the first one after any given offset (eg. an
+    /// offset corresponding to a particular SMLoc).
+    mutable VariableSizeOffsets OffsetCache;
+
+    /// Populate \c OffsetCache and look up a given \p Ptr in it, assuming
+    /// it points somewhere into \c Buffer. The static type parameter \p T
+    /// must be an unsigned integer type from uint{8,16,32,64}_t large
+    /// enough to store offsets inside \c Buffer.
+    template<typename T>
+    unsigned getLineNumber(const char *Ptr) const;
+
     /// This is the location of the parent include, or null if at the top level.
     SMLoc IncludeLoc;
+
+    SrcBuffer() = default;
+    SrcBuffer(SrcBuffer &&);
+    SrcBuffer(const SrcBuffer &) = delete;
+    SrcBuffer &operator=(const SrcBuffer &) = delete;
+    ~SrcBuffer();
   };
 
   /// This is all of the buffers that we are reading from.
@@ -67,10 +98,6 @@
   // This is the list of directories we should search for include files in.
   std::vector<std::string> IncludeDirectories;
 
-  /// This is a cache for line number queries, its implementation is really
-  /// private to SourceMgr.cpp.
-  mutable void *LineNoCache = nullptr;
-
   DiagHandlerTy DiagHandler = nullptr;
   void *DiagContext = nullptr;
 
@@ -80,7 +107,7 @@
   SourceMgr() = default;
   SourceMgr(const SourceMgr &) = delete;
   SourceMgr &operator=(const SourceMgr &) = delete;
-  ~SourceMgr();
+  ~SourceMgr() = default;
 
   void setIncludeDirs(const std::vector<std::string> &Dirs) {
     IncludeDirectories = Dirs;
diff --git a/linux-x64/clang/include/llvm/Support/StringSaver.h b/linux-x64/clang/include/llvm/Support/StringSaver.h
index e85b289..6b77d48 100644
--- a/linux-x64/clang/include/llvm/Support/StringSaver.h
+++ b/linux-x64/clang/include/llvm/Support/StringSaver.h
@@ -10,23 +10,49 @@
 #ifndef LLVM_SUPPORT_STRINGSAVER_H
 #define LLVM_SUPPORT_STRINGSAVER_H
 
+#include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/Support/Allocator.h"
 
 namespace llvm {
 
-/// \brief Saves strings in the inheritor's stable storage and returns a
+/// Saves strings in the provided stable storage and returns a
 /// StringRef with a stable character pointer.
 class StringSaver final {
   BumpPtrAllocator &Alloc;
 
 public:
   StringSaver(BumpPtrAllocator &Alloc) : Alloc(Alloc) {}
+
+  // All returned strings are null-terminated: *save(S).end() == 0.
   StringRef save(const char *S) { return save(StringRef(S)); }
   StringRef save(StringRef S);
   StringRef save(const Twine &S) { return save(StringRef(S.str())); }
   StringRef save(const std::string &S) { return save(StringRef(S)); }
 };
+
+/// Saves strings in the provided stable storage and returns a StringRef with a
+/// stable character pointer. Saving the same string yields the same StringRef.
+///
+/// Compared to StringSaver, it does more work but avoids saving the same string
+/// multiple times.
+///
+/// Compared to StringPool, it performs fewer allocations but doesn't support
+/// refcounting/deletion.
+class UniqueStringSaver final {
+  StringSaver Strings;
+  llvm::DenseSet<llvm::StringRef> Unique;
+
+public:
+  UniqueStringSaver(BumpPtrAllocator &Alloc) : Strings(Alloc) {}
+
+  // All returned strings are null-terminated: *save(S).end() == 0.
+  StringRef save(const char *S) { return save(StringRef(S)); }
+  StringRef save(StringRef S);
+  StringRef save(const Twine &S) { return save(StringRef(S.str())); }
+  StringRef save(const std::string &S) { return save(StringRef(S)); }
+};
+
 }
 #endif
diff --git a/linux-x64/clang/include/llvm/Support/SystemUtils.h b/linux-x64/clang/include/llvm/Support/SystemUtils.h
index 2997b1b..bd60793 100644
--- a/linux-x64/clang/include/llvm/Support/SystemUtils.h
+++ b/linux-x64/clang/include/llvm/Support/SystemUtils.h
@@ -21,7 +21,7 @@
 /// Determine if the raw_ostream provided is connected to a terminal. If so,
 /// generate a warning message to errs() advising against display of bitcode
 /// and return true. Otherwise just return false.
-/// @brief Check for output written to a console
+/// Check for output written to a console
 bool CheckBitcodeOutputToConsole(
   raw_ostream &stream_to_check, ///< The stream to be checked
   bool print_warning = true     ///< Control whether warnings are printed
diff --git a/linux-x64/clang/include/llvm/Support/TargetOpcodes.def b/linux-x64/clang/include/llvm/Support/TargetOpcodes.def
index 0614a00..9143e5b 100644
--- a/linux-x64/clang/include/llvm/Support/TargetOpcodes.def
+++ b/linux-x64/clang/include/llvm/Support/TargetOpcodes.def
@@ -77,6 +77,9 @@
 /// DBG_VALUE - a mapping of the llvm.dbg.value intrinsic
 HANDLE_TARGET_OPCODE(DBG_VALUE)
 
+/// DBG_LABEL - a mapping of the llvm.dbg.label intrinsic
+HANDLE_TARGET_OPCODE(DBG_LABEL)
+
 /// REG_SEQUENCE - This variadic instruction is used to form a register that
 /// represents a consecutive sequence of sub-registers. It's used as a
 /// register coalescing / allocation aid and must be eliminated before code
@@ -183,10 +186,14 @@
 /// PATCHABLE_RET which specifically only works for return instructions.
 HANDLE_TARGET_OPCODE(PATCHABLE_TAIL_CALL)
 
-/// Wraps a logging call and its arguments with nop sleds. At runtime, this can be
-/// patched to insert instrumentation instructions.
+/// Wraps a logging call and its arguments with nop sleds. At runtime, this can
+/// be patched to insert instrumentation instructions.
 HANDLE_TARGET_OPCODE(PATCHABLE_EVENT_CALL)
 
+/// Wraps a typed logging call and its argument with nop sleds. At runtime, this
+/// can be patched to insert instrumentation instructions.
+HANDLE_TARGET_OPCODE(PATCHABLE_TYPED_EVENT_CALL)
+
 HANDLE_TARGET_OPCODE(ICALL_BRANCH_FUNNEL)
 
 /// The following generic opcodes are not supposed to appear after ISel.
@@ -261,9 +268,15 @@
 /// COPY is the relevant instruction.
 HANDLE_TARGET_OPCODE(G_BITCAST)
 
-/// Generic load.
+/// Generic load (including anyext load)
 HANDLE_TARGET_OPCODE(G_LOAD)
 
+/// Generic signext load
+HANDLE_TARGET_OPCODE(G_SEXTLOAD)
+
+/// Generic zeroext load
+HANDLE_TARGET_OPCODE(G_ZEXTLOAD)
+
 /// Generic store.
 HANDLE_TARGET_OPCODE(G_STORE)
 
@@ -451,15 +464,36 @@
 /// Generic shufflevector.
 HANDLE_TARGET_OPCODE(G_SHUFFLE_VECTOR)
 
+/// Generic count trailing zeroes.
+HANDLE_TARGET_OPCODE(G_CTTZ)
+
+/// Same as above, undefined for zero inputs.
+HANDLE_TARGET_OPCODE(G_CTTZ_ZERO_UNDEF)
+
+/// Generic count leading zeroes.
+HANDLE_TARGET_OPCODE(G_CTLZ)
+
+/// Same as above, undefined for zero inputs.
+HANDLE_TARGET_OPCODE(G_CTLZ_ZERO_UNDEF)
+
+/// Generic count bits.
+HANDLE_TARGET_OPCODE(G_CTPOP)
+
 /// Generic byte swap.
 HANDLE_TARGET_OPCODE(G_BSWAP)
 
+/// Generic AddressSpaceCast.
+HANDLE_TARGET_OPCODE(G_ADDRSPACE_CAST)
+
+/// Generic block address
+HANDLE_TARGET_OPCODE(G_BLOCK_ADDR)
+
 // TODO: Add more generic opcodes as we move along.
 
 /// Marker for the end of the generic opcode.
 /// This is used to check if an opcode is in the range of the
 /// generic opcodes.
-HANDLE_TARGET_OPCODE_MARKER(PRE_ISEL_GENERIC_OPCODE_END, G_BSWAP)
+HANDLE_TARGET_OPCODE_MARKER(PRE_ISEL_GENERIC_OPCODE_END, G_BLOCK_ADDR)
 
 /// BUILTIN_OP_END - This must be the last enum value in this list.
 /// The target-specific post-isel opcode values start here.
diff --git a/linux-x64/clang/include/llvm/Support/TargetParser.h b/linux-x64/clang/include/llvm/Support/TargetParser.h
index 8fba995..08ad42d 100644
--- a/linux-x64/clang/include/llvm/Support/TargetParser.h
+++ b/linux-x64/clang/include/llvm/Support/TargetParser.h
@@ -86,6 +86,8 @@
   AEK_RAS =         1 << 12,
   AEK_SVE =         1 << 13,
   AEK_DOTPROD =     1 << 14,
+  AEK_SHA2    =     1 << 15,
+  AEK_AES     =     1 << 16,
   // Unsupported extensions.
   AEK_OS = 0x8000000,
   AEK_IWMMXT = 0x10000000,
@@ -171,7 +173,11 @@
   AEK_SVE =         1 << 9,
   AEK_DOTPROD =     1 << 10,
   AEK_RCPC =        1 << 11,
-  AEK_RDM =         1 << 12
+  AEK_RDM =         1 << 12,
+  AEK_SM4 =         1 << 13,
+  AEK_SHA3 =        1 << 14,
+  AEK_SHA2 =        1 << 15,
+  AEK_AES =         1 << 16,
 };
 
 StringRef getCanonicalArchName(StringRef Arch);
@@ -200,6 +206,7 @@
 unsigned  getDefaultFPU(StringRef CPU, ArchKind AK);
 unsigned  getDefaultExtensions(StringRef CPU, ArchKind AK);
 StringRef getDefaultCPU(StringRef Arch);
+AArch64::ArchKind getCPUArchKind(StringRef CPU);
 
 // Parser
 unsigned parseFPU(StringRef FPU);
@@ -212,6 +219,8 @@
 ARM::ProfileKind parseArchProfile(StringRef Arch);
 unsigned parseArchVersion(StringRef Arch);
 
+bool isX18ReservedByDefault(const Triple &TT);
+
 } // namespace AArch64
 
 namespace X86 {
diff --git a/linux-x64/clang/include/llvm/Support/TargetRegistry.h b/linux-x64/clang/include/llvm/Support/TargetRegistry.h
index 0fc8c38..1bafc4e 100644
--- a/linux-x64/clang/include/llvm/Support/TargetRegistry.h
+++ b/linux-x64/clang/include/llvm/Support/TargetRegistry.h
@@ -46,6 +46,7 @@
 class MCInstPrinter;
 class MCInstrAnalysis;
 class MCInstrInfo;
+class MCObjectWriter;
 class MCRegisterInfo;
 class MCRelocationInfo;
 class MCStreamer;
@@ -60,27 +61,44 @@
 class TargetOptions;
 
 MCStreamer *createNullStreamer(MCContext &Ctx);
-MCStreamer *createAsmStreamer(MCContext &Ctx,
-                              std::unique_ptr<formatted_raw_ostream> OS,
-                              bool isVerboseAsm, bool useDwarfDirectory,
-                              MCInstPrinter *InstPrint, MCCodeEmitter *CE,
-                              MCAsmBackend *TAB, bool ShowInst);
+// Takes ownership of \p TAB and \p CE.
 
-/// Takes ownership of \p TAB and \p CE.
+/// Create a machine code streamer which will print out assembly for the native
+/// target, suitable for compiling with a native assembler.
+///
+/// \param InstPrint - If given, the instruction printer to use. If not given
+/// the MCInst representation will be printed.  This method takes ownership of
+/// InstPrint.
+///
+/// \param CE - If given, a code emitter to use to show the instruction
+/// encoding inline with the assembly. This method takes ownership of \p CE.
+///
+/// \param TAB - If given, a target asm backend to use to show the fixup
+/// information in conjunction with encoding information. This method takes
+/// ownership of \p TAB.
+///
+/// \param ShowInst - Whether to show the MCInst representation inline with
+/// the assembly.
+MCStreamer *
+createAsmStreamer(MCContext &Ctx, std::unique_ptr<formatted_raw_ostream> OS,
+                  bool isVerboseAsm, bool useDwarfDirectory,
+                  MCInstPrinter *InstPrint, std::unique_ptr<MCCodeEmitter> &&CE,
+                  std::unique_ptr<MCAsmBackend> &&TAB, bool ShowInst);
+
 MCStreamer *createELFStreamer(MCContext &Ctx,
                               std::unique_ptr<MCAsmBackend> &&TAB,
-                              raw_pwrite_stream &OS,
+                              std::unique_ptr<MCObjectWriter> &&OW,
                               std::unique_ptr<MCCodeEmitter> &&CE,
                               bool RelaxAll);
 MCStreamer *createMachOStreamer(MCContext &Ctx,
                                 std::unique_ptr<MCAsmBackend> &&TAB,
-                                raw_pwrite_stream &OS,
+                                std::unique_ptr<MCObjectWriter> &&OW,
                                 std::unique_ptr<MCCodeEmitter> &&CE,
                                 bool RelaxAll, bool DWARFMustBeAtTheEnd,
                                 bool LabelSections = false);
 MCStreamer *createWasmStreamer(MCContext &Ctx,
                                std::unique_ptr<MCAsmBackend> &&TAB,
-                               raw_pwrite_stream &OS,
+                               std::unique_ptr<MCObjectWriter> &&OW,
                                std::unique_ptr<MCCodeEmitter> &&CE,
                                bool RelaxAll);
 
@@ -143,22 +161,22 @@
   using ELFStreamerCtorTy =
       MCStreamer *(*)(const Triple &T, MCContext &Ctx,
                       std::unique_ptr<MCAsmBackend> &&TAB,
-                      raw_pwrite_stream &OS,
+                      std::unique_ptr<MCObjectWriter> &&OW,
                       std::unique_ptr<MCCodeEmitter> &&Emitter, bool RelaxAll);
   using MachOStreamerCtorTy =
       MCStreamer *(*)(MCContext &Ctx, std::unique_ptr<MCAsmBackend> &&TAB,
-                      raw_pwrite_stream &OS,
+                      std::unique_ptr<MCObjectWriter> &&OW,
                       std::unique_ptr<MCCodeEmitter> &&Emitter, bool RelaxAll,
                       bool DWARFMustBeAtTheEnd);
   using COFFStreamerCtorTy =
       MCStreamer *(*)(MCContext &Ctx, std::unique_ptr<MCAsmBackend> &&TAB,
-                      raw_pwrite_stream &OS,
+                      std::unique_ptr<MCObjectWriter> &&OW,
                       std::unique_ptr<MCCodeEmitter> &&Emitter, bool RelaxAll,
                       bool IncrementalLinkerCompatible);
   using WasmStreamerCtorTy =
       MCStreamer *(*)(const Triple &T, MCContext &Ctx,
                       std::unique_ptr<MCAsmBackend> &&TAB,
-                      raw_pwrite_stream &OS,
+                      std::unique_ptr<MCObjectWriter> &&OW,
                       std::unique_ptr<MCCodeEmitter> &&Emitter, bool RelaxAll);
   using NullTargetStreamerCtorTy = MCTargetStreamer *(*)(MCStreamer &S);
   using AsmTargetStreamerCtorTy = MCTargetStreamer *(*)(
@@ -441,12 +459,12 @@
   /// \param T The target triple.
   /// \param Ctx The target context.
   /// \param TAB The target assembler backend object. Takes ownership.
-  /// \param OS The stream object.
+  /// \param OW The stream object.
   /// \param Emitter The target independent assembler object.Takes ownership.
   /// \param RelaxAll Relax all fixups?
   MCStreamer *createMCObjectStreamer(const Triple &T, MCContext &Ctx,
                                      std::unique_ptr<MCAsmBackend> &&TAB,
-                                     raw_pwrite_stream &OS,
+                                     std::unique_ptr<MCObjectWriter> &&OW,
                                      std::unique_ptr<MCCodeEmitter> &&Emitter,
                                      const MCSubtargetInfo &STI, bool RelaxAll,
                                      bool IncrementalLinkerCompatible,
@@ -457,32 +475,35 @@
       llvm_unreachable("Unknown object format");
     case Triple::COFF:
       assert(T.isOSWindows() && "only Windows COFF is supported");
-      S = COFFStreamerCtorFn(Ctx, std::move(TAB), OS, std::move(Emitter),
-                             RelaxAll, IncrementalLinkerCompatible);
+      S = COFFStreamerCtorFn(Ctx, std::move(TAB), std::move(OW),
+                             std::move(Emitter), RelaxAll,
+                             IncrementalLinkerCompatible);
       break;
     case Triple::MachO:
       if (MachOStreamerCtorFn)
-        S = MachOStreamerCtorFn(Ctx, std::move(TAB), OS, std::move(Emitter),
-                                RelaxAll, DWARFMustBeAtTheEnd);
+        S = MachOStreamerCtorFn(Ctx, std::move(TAB), std::move(OW),
+                                std::move(Emitter), RelaxAll,
+                                DWARFMustBeAtTheEnd);
       else
-        S = createMachOStreamer(Ctx, std::move(TAB), OS, std::move(Emitter),
-                                RelaxAll, DWARFMustBeAtTheEnd);
+        S = createMachOStreamer(Ctx, std::move(TAB), std::move(OW),
+                                std::move(Emitter), RelaxAll,
+                                DWARFMustBeAtTheEnd);
       break;
     case Triple::ELF:
       if (ELFStreamerCtorFn)
-        S = ELFStreamerCtorFn(T, Ctx, std::move(TAB), OS, std::move(Emitter),
-                              RelaxAll);
+        S = ELFStreamerCtorFn(T, Ctx, std::move(TAB), std::move(OW),
+                              std::move(Emitter), RelaxAll);
       else
-        S = createELFStreamer(Ctx, std::move(TAB), OS, std::move(Emitter),
-                              RelaxAll);
+        S = createELFStreamer(Ctx, std::move(TAB), std::move(OW),
+                              std::move(Emitter), RelaxAll);
       break;
     case Triple::Wasm:
       if (WasmStreamerCtorFn)
-        S = WasmStreamerCtorFn(T, Ctx, std::move(TAB), OS, std::move(Emitter),
-                               RelaxAll);
+        S = WasmStreamerCtorFn(T, Ctx, std::move(TAB), std::move(OW),
+                               std::move(Emitter), RelaxAll);
       else
-        S = createWasmStreamer(Ctx, std::move(TAB), OS, std::move(Emitter),
-                               RelaxAll);
+        S = createWasmStreamer(Ctx, std::move(TAB), std::move(OW),
+                               std::move(Emitter), RelaxAll);
       break;
     }
     if (ObjectTargetStreamerCtorFn)
@@ -493,12 +514,14 @@
   MCStreamer *createAsmStreamer(MCContext &Ctx,
                                 std::unique_ptr<formatted_raw_ostream> OS,
                                 bool IsVerboseAsm, bool UseDwarfDirectory,
-                                MCInstPrinter *InstPrint, MCCodeEmitter *CE,
-                                MCAsmBackend *TAB, bool ShowInst) const {
+                                MCInstPrinter *InstPrint,
+                                std::unique_ptr<MCCodeEmitter> &&CE,
+                                std::unique_ptr<MCAsmBackend> &&TAB,
+                                bool ShowInst) const {
     formatted_raw_ostream &OSRef = *OS;
-    MCStreamer *S = llvm::createAsmStreamer(Ctx, std::move(OS), IsVerboseAsm,
-                                            UseDwarfDirectory, InstPrint, CE,
-                                            TAB, ShowInst);
+    MCStreamer *S = llvm::createAsmStreamer(
+        Ctx, std::move(OS), IsVerboseAsm, UseDwarfDirectory, InstPrint,
+        std::move(CE), std::move(TAB), ShowInst);
     createAsmTargetStreamer(*S, OSRef, InstPrint, IsVerboseAsm);
     return S;
   }
diff --git a/linux-x64/clang/include/llvm/Support/TaskQueue.h b/linux-x64/clang/include/llvm/Support/TaskQueue.h
new file mode 100644
index 0000000..49981ad
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Support/TaskQueue.h
@@ -0,0 +1,139 @@
+//===-- llvm/Support/TaskQueue.h - A TaskQueue implementation ---*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines a crude C++11 based task queue.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_TASK_QUEUE_H
+#define LLVM_SUPPORT_TASK_QUEUE_H
+
+#include "llvm/Config/llvm-config.h"
+#include "llvm/Support/ThreadPool.h"
+#include "llvm/Support/thread.h"
+
+#include <atomic>
+#include <cassert>
+#include <condition_variable>
+#include <deque>
+#include <functional>
+#include <future>
+#include <memory>
+#include <mutex>
+#include <utility>
+
+namespace llvm {
+/// TaskQueue executes serialized work on a user-defined Thread Pool.  It
+/// guarantees that if task B is enqueued after task A, task B begins after
+/// task A completes and there is no overlap between the two.
+class TaskQueue {
+  // Because we don't have init capture to use move-only local variables that
+  // are captured into a lambda, we create the promise inside an explicit
+  // callable struct. We want to do as much of the wrapping in the
+  // type-specialized domain (before type erasure) and then erase this into a
+  // std::function.
+  template <typename Callable> struct Task {
+    using ResultTy = typename std::result_of<Callable()>::type;
+    explicit Task(Callable C, TaskQueue &Parent)
+        : C(std::move(C)), P(std::make_shared<std::promise<ResultTy>>()),
+          Parent(&Parent) {}
+
+    template<typename T>
+    void invokeCallbackAndSetPromise(T*) {
+      P->set_value(C());
+    }
+
+    void invokeCallbackAndSetPromise(void*) {
+      C();
+      P->set_value();
+    }
+
+    void operator()() noexcept {
+      ResultTy *Dummy = nullptr;
+      invokeCallbackAndSetPromise(Dummy);
+      Parent->completeTask();
+    }
+
+    Callable C;
+    std::shared_ptr<std::promise<ResultTy>> P;
+    TaskQueue *Parent;
+  };
+
+public:
+  /// Construct a task queue with no work.
+  TaskQueue(ThreadPool &Scheduler) : Scheduler(Scheduler) { (void)Scheduler; }
+
+  /// Blocking destructor: the queue will wait for all work to complete.
+  ~TaskQueue() {
+    Scheduler.wait();
+    assert(Tasks.empty());
+  }
+
+  /// Asynchronous submission of a task to the queue. The returned future can be
+  /// used to wait for the task (and all previous tasks that have not yet
+  /// completed) to finish.
+  template <typename Callable>
+  std::future<typename std::result_of<Callable()>::type> async(Callable &&C) {
+#if !LLVM_ENABLE_THREADS
+    static_assert(false,
+                  "TaskQueue requires building with LLVM_ENABLE_THREADS!");
+#endif
+    Task<Callable> T{std::move(C), *this};
+    using ResultTy = typename std::result_of<Callable()>::type;
+    std::future<ResultTy> F = T.P->get_future();
+    {
+      std::lock_guard<std::mutex> Lock(QueueLock);
+      // If there's already a task in flight, just queue this one up.  If
+      // there is not a task in flight, bypass the queue and schedule this
+      // task immediately.
+      if (IsTaskInFlight)
+        Tasks.push_back(std::move(T));
+      else {
+        Scheduler.async(std::move(T));
+        IsTaskInFlight = true;
+      }
+    }
+    return std::move(F);
+  }
+
+private:
+  void completeTask() {
+    // We just completed a task.  If there are no more tasks in the queue,
+    // update IsTaskInFlight to false and stop doing work.  Otherwise
+    // schedule the next task (while not holding the lock).
+    std::function<void()> Continuation;
+    {
+      std::lock_guard<std::mutex> Lock(QueueLock);
+      if (Tasks.empty()) {
+        IsTaskInFlight = false;
+        return;
+      }
+
+      Continuation = std::move(Tasks.front());
+      Tasks.pop_front();
+    }
+    Scheduler.async(std::move(Continuation));
+  }
+
+  /// The thread pool on which to run the work.
+  ThreadPool &Scheduler;
+
+  /// State which indicates whether the queue currently is currently processing
+  /// any work.
+  bool IsTaskInFlight = false;
+
+  /// Mutex for synchronizing access to the Tasks array.
+  std::mutex QueueLock;
+
+  /// Tasks waiting for execution in the queue.
+  std::deque<std::function<void()>> Tasks;
+};
+} // namespace llvm
+
+#endif // LLVM_SUPPORT_TASK_QUEUE_H
diff --git a/linux-x64/clang/include/llvm/Support/ThreadLocal.h b/linux-x64/clang/include/llvm/Support/ThreadLocal.h
index 427a67e..885bd18 100644
--- a/linux-x64/clang/include/llvm/Support/ThreadLocal.h
+++ b/linux-x64/clang/include/llvm/Support/ThreadLocal.h
@@ -24,7 +24,7 @@
     // YOU SHOULD NEVER USE THIS DIRECTLY.
     class ThreadLocalImpl {
       typedef uint64_t ThreadLocalDataTy;
-      /// \brief Platform-specific thread local data.
+      /// Platform-specific thread local data.
       ///
       /// This is embedded in the class and we avoid malloc'ing/free'ing it,
       /// to make this class more safe for use along with CrashRecoveryContext.
diff --git a/linux-x64/clang/include/llvm/Support/ThreadPool.h b/linux-x64/clang/include/llvm/Support/ThreadPool.h
index fb82559..4fdbd52 100644
--- a/linux-x64/clang/include/llvm/Support/ThreadPool.h
+++ b/linux-x64/clang/include/llvm/Support/ThreadPool.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_THREAD_POOL_H
 #define LLVM_SUPPORT_THREAD_POOL_H
 
+#include "llvm/Config/llvm-config.h"
 #include "llvm/Support/thread.h"
 
 #include <future>
diff --git a/linux-x64/clang/include/llvm/Support/Threading.h b/linux-x64/clang/include/llvm/Support/Threading.h
index 6d813bc..e8021f6 100644
--- a/linux-x64/clang/include/llvm/Support/Threading.h
+++ b/linux-x64/clang/include/llvm/Support/Threading.h
@@ -72,7 +72,7 @@
 
   enum InitStatus { Uninitialized = 0, Wait = 1, Done = 2 };
 
-  /// \brief The llvm::once_flag structure
+  /// The llvm::once_flag structure
   ///
   /// This type is modeled after std::once_flag to use with llvm::call_once.
   /// This structure must be used as an opaque object. It is a struct to force
@@ -83,7 +83,7 @@
 
 #endif
 
-  /// \brief Execute the function specified as a parameter once.
+  /// Execute the function specified as a parameter once.
   ///
   /// Typical usage:
   /// \code
@@ -139,17 +139,17 @@
   /// not available.
   unsigned hardware_concurrency();
 
-  /// \brief Return the current thread id, as used in various OS system calls.
+  /// Return the current thread id, as used in various OS system calls.
   /// Note that not all platforms guarantee that the value returned will be
   /// unique across the entire system, so portable code should not assume
   /// this.
   uint64_t get_threadid();
 
-  /// \brief Get the maximum length of a thread name on this platform.
+  /// Get the maximum length of a thread name on this platform.
   /// A value of 0 means there is no limit.
   uint32_t get_max_thread_name_length();
 
-  /// \brief Set the name of the current thread.  Setting a thread's name can
+  /// Set the name of the current thread.  Setting a thread's name can
   /// be helpful for enabling useful diagnostics under a debugger or when
   /// logging.  The level of support for setting a thread's name varies
   /// wildly across operating systems, and we only make a best effort to
@@ -157,7 +157,7 @@
   /// or failure is returned.
   void set_thread_name(const Twine &Name);
 
-  /// \brief Get the name of the current thread.  The level of support for
+  /// Get the name of the current thread.  The level of support for
   /// getting a thread's name varies wildly across operating systems, and it
   /// is not even guaranteed that if you can successfully set a thread's name
   /// that you can later get it back.  This function is intended for diagnostic
diff --git a/linux-x64/clang/include/llvm/Support/Timer.h b/linux-x64/clang/include/llvm/Support/Timer.h
index 198855a..bfffbc3 100644
--- a/linux-x64/clang/include/llvm/Support/Timer.h
+++ b/linux-x64/clang/include/llvm/Support/Timer.h
@@ -10,6 +10,7 @@
 #ifndef LLVM_SUPPORT_TIMER_H
 #define LLVM_SUPPORT_TIMER_H
 
+#include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/DataTypes.h"
 #include <cassert>
@@ -194,6 +195,10 @@
 
 public:
   explicit TimerGroup(StringRef Name, StringRef Description);
+
+  explicit TimerGroup(StringRef Name, StringRef Description,
+                      const StringMap<TimeRecord> &Records);
+
   ~TimerGroup();
 
   void setName(StringRef NewName, StringRef NewDescription) {
@@ -207,6 +212,8 @@
   /// This static method prints all timers and clears them all out.
   static void printAll(raw_ostream &OS);
 
+  const char *printJSONValues(raw_ostream &OS, const char *delim);
+
   /// Prints all timers as JSON key/value pairs, and clears them all out.
   static const char *printAllJSONValues(raw_ostream &OS, const char *delim);
 
@@ -223,7 +230,6 @@
   void PrintQueuedTimers(raw_ostream &OS);
   void printJSONValue(raw_ostream &OS, const PrintRecord &R,
                       const char *suffix, double Value);
-  const char *printJSONValues(raw_ostream &OS, const char *delim);
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/Support/ToolOutputFile.h b/linux-x64/clang/include/llvm/Support/ToolOutputFile.h
index 7fd5f20..cf3bc2f 100644
--- a/linux-x64/clang/include/llvm/Support/ToolOutputFile.h
+++ b/linux-x64/clang/include/llvm/Support/ToolOutputFile.h
@@ -35,7 +35,7 @@
     /// The flag which indicates whether we should not delete the file.
     bool Keep;
 
-    explicit CleanupInstaller(StringRef ilename);
+    explicit CleanupInstaller(StringRef Filename);
     ~CleanupInstaller();
   } Installer;
 
diff --git a/linux-x64/clang/include/llvm/Support/TrailingObjects.h b/linux-x64/clang/include/llvm/Support/TrailingObjects.h
index cb5a52b..490bd94 100644
--- a/linux-x64/clang/include/llvm/Support/TrailingObjects.h
+++ b/linux-x64/clang/include/llvm/Support/TrailingObjects.h
@@ -89,25 +89,25 @@
 };
 
 /// This helper template works-around MSVC 2013's lack of useful
-/// alignas() support. The argument to LLVM_ALIGNAS(), in MSVC, is
+/// alignas() support. The argument to alignas(), in MSVC, is
 /// required to be a literal integer. But, you *can* use template
-/// specialization to select between a bunch of different LLVM_ALIGNAS
+/// specialization to select between a bunch of different alignas()
 /// expressions...
 template <int Align>
 class TrailingObjectsAligner : public TrailingObjectsBase {};
 template <>
-class LLVM_ALIGNAS(1) TrailingObjectsAligner<1> : public TrailingObjectsBase {};
+class alignas(1) TrailingObjectsAligner<1> : public TrailingObjectsBase {};
 template <>
-class LLVM_ALIGNAS(2) TrailingObjectsAligner<2> : public TrailingObjectsBase {};
+class alignas(2) TrailingObjectsAligner<2> : public TrailingObjectsBase {};
 template <>
-class LLVM_ALIGNAS(4) TrailingObjectsAligner<4> : public TrailingObjectsBase {};
+class alignas(4) TrailingObjectsAligner<4> : public TrailingObjectsBase {};
 template <>
-class LLVM_ALIGNAS(8) TrailingObjectsAligner<8> : public TrailingObjectsBase {};
+class alignas(8) TrailingObjectsAligner<8> : public TrailingObjectsBase {};
 template <>
-class LLVM_ALIGNAS(16) TrailingObjectsAligner<16> : public TrailingObjectsBase {
+class alignas(16) TrailingObjectsAligner<16> : public TrailingObjectsBase {
 };
 template <>
-class LLVM_ALIGNAS(32) TrailingObjectsAligner<32> : public TrailingObjectsBase {
+class alignas(32) TrailingObjectsAligner<32> : public TrailingObjectsBase {
 };
 
 // Just a little helper for transforming a type pack into the same
diff --git a/linux-x64/clang/include/llvm/Support/Unicode.h b/linux-x64/clang/include/llvm/Support/Unicode.h
index 815484f..983acaf 100644
--- a/linux-x64/clang/include/llvm/Support/Unicode.h
+++ b/linux-x64/clang/include/llvm/Support/Unicode.h
@@ -60,7 +60,7 @@
 ///   * 1 for each of the remaining characters.
 int columnWidthUTF8(StringRef Text);
 
-/// Fold input unicode character according the the Simple unicode case folding
+/// Fold input unicode character according the Simple unicode case folding
 /// rules.
 int foldCharSimple(int C);
 
diff --git a/linux-x64/clang/include/llvm/Support/UnicodeCharRanges.h b/linux-x64/clang/include/llvm/Support/UnicodeCharRanges.h
index 4c65583..3cf4a6d 100644
--- a/linux-x64/clang/include/llvm/Support/UnicodeCharRanges.h
+++ b/linux-x64/clang/include/llvm/Support/UnicodeCharRanges.h
@@ -23,7 +23,7 @@
 namespace llvm {
 namespace sys {
 
-/// \brief Represents a closed range of Unicode code points [Lower, Upper].
+/// Represents a closed range of Unicode code points [Lower, Upper].
 struct UnicodeCharRange {
   uint32_t Lower;
   uint32_t Upper;
@@ -36,14 +36,14 @@
   return Range.Upper < Value;
 }
 
-/// \brief Holds a reference to an ordered array of UnicodeCharRange and allows
+/// Holds a reference to an ordered array of UnicodeCharRange and allows
 /// to quickly check if a code point is contained in the set represented by this
 /// array.
 class UnicodeCharSet {
 public:
   typedef ArrayRef<UnicodeCharRange> CharRanges;
 
-  /// \brief Constructs a UnicodeCharSet instance from an array of
+  /// Constructs a UnicodeCharSet instance from an array of
   /// UnicodeCharRanges.
   ///
   /// Array pointed by \p Ranges should have the lifetime at least as long as
@@ -63,31 +63,31 @@
   }
 #endif
 
-  /// \brief Returns true if the character set contains the Unicode code point
+  /// Returns true if the character set contains the Unicode code point
   /// \p C.
   bool contains(uint32_t C) const {
     return std::binary_search(Ranges.begin(), Ranges.end(), C);
   }
 
 private:
-  /// \brief Returns true if each of the ranges is a proper closed range
+  /// Returns true if each of the ranges is a proper closed range
   /// [min, max], and if the ranges themselves are ordered and non-overlapping.
   bool rangesAreValid() const {
     uint32_t Prev = 0;
     for (CharRanges::const_iterator I = Ranges.begin(), E = Ranges.end();
          I != E; ++I) {
       if (I != Ranges.begin() && Prev >= I->Lower) {
-        DEBUG(dbgs() << "Upper bound 0x");
-        DEBUG(dbgs().write_hex(Prev));
-        DEBUG(dbgs() << " should be less than succeeding lower bound 0x");
-        DEBUG(dbgs().write_hex(I->Lower) << "\n");
+        LLVM_DEBUG(dbgs() << "Upper bound 0x");
+        LLVM_DEBUG(dbgs().write_hex(Prev));
+        LLVM_DEBUG(dbgs() << " should be less than succeeding lower bound 0x");
+        LLVM_DEBUG(dbgs().write_hex(I->Lower) << "\n");
         return false;
       }
       if (I->Upper < I->Lower) {
-        DEBUG(dbgs() << "Upper bound 0x");
-        DEBUG(dbgs().write_hex(I->Lower));
-        DEBUG(dbgs() << " should not be less than lower bound 0x");
-        DEBUG(dbgs().write_hex(I->Upper) << "\n");
+        LLVM_DEBUG(dbgs() << "Upper bound 0x");
+        LLVM_DEBUG(dbgs().write_hex(I->Lower));
+        LLVM_DEBUG(dbgs() << " should not be less than lower bound 0x");
+        LLVM_DEBUG(dbgs().write_hex(I->Upper) << "\n");
         return false;
       }
       Prev = I->Upper;
diff --git a/linux-x64/clang/include/llvm/Support/UniqueLock.h b/linux-x64/clang/include/llvm/Support/UniqueLock.h
index b4675f4..91dc911 100644
--- a/linux-x64/clang/include/llvm/Support/UniqueLock.h
+++ b/linux-x64/clang/include/llvm/Support/UniqueLock.h
@@ -24,7 +24,7 @@
   /// an associated mutex, which is guaranteed to be locked upon creation
   /// and unlocked after destruction. unique_lock can also unlock the mutex
   /// and re-lock it freely during its lifetime.
-  /// @brief Guard a section of code with a mutex.
+  /// Guard a section of code with a mutex.
   template<typename MutexT>
   class unique_lock {
     MutexT *M = nullptr;
diff --git a/linux-x64/clang/include/llvm/Support/VCSRevision.h b/linux-x64/clang/include/llvm/Support/VCSRevision.h
index 8510ea2..914d51a 100644
--- a/linux-x64/clang/include/llvm/Support/VCSRevision.h
+++ b/linux-x64/clang/include/llvm/Support/VCSRevision.h
@@ -1 +1 @@
-#define LLVM_REVISION "git-1d739ffb036"
+#define LLVM_REVISION "git-c822c63a8c6"
diff --git a/linux-x64/clang/include/llvm/Support/VersionTuple.h b/linux-x64/clang/include/llvm/Support/VersionTuple.h
new file mode 100644
index 0000000..e85a188
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Support/VersionTuple.h
@@ -0,0 +1,154 @@
+//===- VersionTuple.h - Version Number Handling -----------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+///
+/// \file
+/// Defines the llvm::VersionTuple class, which represents a version in
+/// the form major[.minor[.subminor]].
+///
+//===----------------------------------------------------------------------===//
+#ifndef LLVM_SUPPORT_VERSIONTUPLE_H
+#define LLVM_SUPPORT_VERSIONTUPLE_H
+
+#include "llvm/ADT/Optional.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/raw_ostream.h"
+#include <string>
+#include <tuple>
+
+namespace llvm {
+
+/// Represents a version number in the form major[.minor[.subminor[.build]]].
+class VersionTuple {
+  unsigned Major : 32;
+
+  unsigned Minor : 31;
+  unsigned HasMinor : 1;
+
+  unsigned Subminor : 31;
+  unsigned HasSubminor : 1;
+
+  unsigned Build : 31;
+  unsigned HasBuild : 1;
+
+public:
+  VersionTuple()
+      : Major(0), Minor(0), HasMinor(false), Subminor(0), HasSubminor(false),
+        Build(0), HasBuild(false) {}
+
+  explicit VersionTuple(unsigned Major)
+      : Major(Major), Minor(0), HasMinor(false), Subminor(0),
+        HasSubminor(false), Build(0), HasBuild(false) {}
+
+  explicit VersionTuple(unsigned Major, unsigned Minor)
+      : Major(Major), Minor(Minor), HasMinor(true), Subminor(0),
+        HasSubminor(false), Build(0), HasBuild(false) {}
+
+  explicit VersionTuple(unsigned Major, unsigned Minor, unsigned Subminor)
+      : Major(Major), Minor(Minor), HasMinor(true), Subminor(Subminor),
+        HasSubminor(true), Build(0), HasBuild(false) {}
+
+  explicit VersionTuple(unsigned Major, unsigned Minor, unsigned Subminor,
+                        unsigned Build)
+      : Major(Major), Minor(Minor), HasMinor(true), Subminor(Subminor),
+        HasSubminor(true), Build(Build), HasBuild(true) {}
+
+  /// Determine whether this version information is empty
+  /// (e.g., all version components are zero).
+  bool empty() const {
+    return Major == 0 && Minor == 0 && Subminor == 0 && Build == 0;
+  }
+
+  /// Retrieve the major version number.
+  unsigned getMajor() const { return Major; }
+
+  /// Retrieve the minor version number, if provided.
+  Optional<unsigned> getMinor() const {
+    if (!HasMinor)
+      return None;
+    return Minor;
+  }
+
+  /// Retrieve the subminor version number, if provided.
+  Optional<unsigned> getSubminor() const {
+    if (!HasSubminor)
+      return None;
+    return Subminor;
+  }
+
+  /// Retrieve the build version number, if provided.
+  Optional<unsigned> getBuild() const {
+    if (!HasBuild)
+      return None;
+    return Build;
+  }
+
+  /// Determine if two version numbers are equivalent. If not
+  /// provided, minor and subminor version numbers are considered to be zero.
+  friend bool operator==(const VersionTuple &X, const VersionTuple &Y) {
+    return X.Major == Y.Major && X.Minor == Y.Minor &&
+           X.Subminor == Y.Subminor && X.Build == Y.Build;
+  }
+
+  /// Determine if two version numbers are not equivalent.
+  ///
+  /// If not provided, minor and subminor version numbers are considered to be
+  /// zero.
+  friend bool operator!=(const VersionTuple &X, const VersionTuple &Y) {
+    return !(X == Y);
+  }
+
+  /// Determine whether one version number precedes another.
+  ///
+  /// If not provided, minor and subminor version numbers are considered to be
+  /// zero.
+  friend bool operator<(const VersionTuple &X, const VersionTuple &Y) {
+    return std::tie(X.Major, X.Minor, X.Subminor, X.Build) <
+           std::tie(Y.Major, Y.Minor, Y.Subminor, Y.Build);
+  }
+
+  /// Determine whether one version number follows another.
+  ///
+  /// If not provided, minor and subminor version numbers are considered to be
+  /// zero.
+  friend bool operator>(const VersionTuple &X, const VersionTuple &Y) {
+    return Y < X;
+  }
+
+  /// Determine whether one version number precedes or is
+  /// equivalent to another.
+  ///
+  /// If not provided, minor and subminor version numbers are considered to be
+  /// zero.
+  friend bool operator<=(const VersionTuple &X, const VersionTuple &Y) {
+    return !(Y < X);
+  }
+
+  /// Determine whether one version number follows or is
+  /// equivalent to another.
+  ///
+  /// If not provided, minor and subminor version numbers are considered to be
+  /// zero.
+  friend bool operator>=(const VersionTuple &X, const VersionTuple &Y) {
+    return !(X < Y);
+  }
+
+  /// Retrieve a string representation of the version number.
+  std::string getAsString() const;
+
+  /// Try to parse the given string as a version number.
+  /// \returns \c true if the string does not match the regular expression
+  ///   [0-9]+(\.[0-9]+){0,3}
+  bool tryParse(StringRef string);
+};
+
+/// Print a version number.
+raw_ostream &operator<<(raw_ostream &Out, const VersionTuple &V);
+
+} // end namespace llvm
+#endif // LLVM_SUPPORT_VERSIONTUPLE_H
diff --git a/linux-x64/clang/include/llvm/Support/Win64EH.h b/linux-x64/clang/include/llvm/Support/Win64EH.h
index f6c4927..928eb90 100644
--- a/linux-x64/clang/include/llvm/Support/Win64EH.h
+++ b/linux-x64/clang/include/llvm/Support/Win64EH.h
@@ -101,40 +101,40 @@
   // For more information please see MSDN at:
   // http://msdn.microsoft.com/en-us/library/ddssxxy8.aspx
 
-  /// \brief Return pointer to language specific data part of UnwindInfo.
+  /// Return pointer to language specific data part of UnwindInfo.
   void *getLanguageSpecificData() {
     return reinterpret_cast<void *>(&UnwindCodes[(NumCodes+1) & ~1]);
   }
 
-  /// \brief Return pointer to language specific data part of UnwindInfo.
+  /// Return pointer to language specific data part of UnwindInfo.
   const void *getLanguageSpecificData() const {
     return reinterpret_cast<const void *>(&UnwindCodes[(NumCodes + 1) & ~1]);
   }
 
-  /// \brief Return image-relative offset of language-specific exception handler.
+  /// Return image-relative offset of language-specific exception handler.
   uint32_t getLanguageSpecificHandlerOffset() const {
     return *reinterpret_cast<const support::ulittle32_t *>(
                getLanguageSpecificData());
   }
 
-  /// \brief Set image-relative offset of language-specific exception handler.
+  /// Set image-relative offset of language-specific exception handler.
   void setLanguageSpecificHandlerOffset(uint32_t offset) {
     *reinterpret_cast<support::ulittle32_t *>(getLanguageSpecificData()) =
         offset;
   }
 
-  /// \brief Return pointer to exception-specific data.
+  /// Return pointer to exception-specific data.
   void *getExceptionData() {
     return reinterpret_cast<void *>(reinterpret_cast<uint32_t *>(
                                                   getLanguageSpecificData())+1);
   }
 
-  /// \brief Return pointer to chained unwind info.
+  /// Return pointer to chained unwind info.
   RuntimeFunction *getChainedFunctionEntry() {
     return reinterpret_cast<RuntimeFunction *>(getLanguageSpecificData());
   }
 
-  /// \brief Return pointer to chained unwind info.
+  /// Return pointer to chained unwind info.
   const RuntimeFunction *getChainedFunctionEntry() const {
     return reinterpret_cast<const RuntimeFunction *>(getLanguageSpecificData());
   }
diff --git a/linux-x64/clang/include/llvm/Support/WithColor.h b/linux-x64/clang/include/llvm/Support/WithColor.h
index 39c9953..85fc5fa 100644
--- a/linux-x64/clang/include/llvm/Support/WithColor.h
+++ b/linux-x64/clang/include/llvm/Support/WithColor.h
@@ -10,8 +10,13 @@
 #ifndef LLVM_SUPPORT_WITHCOLOR_H
 #define LLVM_SUPPORT_WITHCOLOR_H
 
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/CommandLine.h"
+
 namespace llvm {
 
+extern cl::OptionCategory ColorCategory;
+
 class raw_ostream;
 
 // Symbolic names for various syntax elements.
@@ -41,6 +46,20 @@
 
   raw_ostream &get() { return OS; }
   operator raw_ostream &() { return OS; }
+
+  /// Convenience method for printing "error: " to stderr.
+  static raw_ostream &error();
+  /// Convenience method for printing "warning: " to stderr.
+  static raw_ostream &warning();
+  /// Convenience method for printing "note: " to stderr.
+  static raw_ostream &note();
+
+  /// Convenience method for printing "error: " to the given stream.
+  static raw_ostream &error(raw_ostream &OS, StringRef Prefix = "");
+  /// Convenience method for printing "warning: " to the given stream.
+  static raw_ostream &warning(raw_ostream &OS, StringRef Prefix = "");
+  /// Convenience method for printing "note: " to the given stream.
+  static raw_ostream &note(raw_ostream &OS, StringRef Prefix = "");
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/Support/X86DisassemblerDecoderCommon.h b/linux-x64/clang/include/llvm/Support/X86DisassemblerDecoderCommon.h
index eeffb9c..185b357 100644
--- a/linux-x64/clang/include/llvm/Support/X86DisassemblerDecoderCommon.h
+++ b/linux-x64/clang/include/llvm/Support/X86DisassemblerDecoderCommon.h
@@ -93,6 +93,10 @@
                                         "operands change width")               \
   ENUM_ENTRY(IC_XS_OPSIZE,          3,  "requires an OPSIZE prefix, so "       \
                                         "operands change width")               \
+  ENUM_ENTRY(IC_XD_ADSIZE,          3,  "requires an ADSIZE prefix, so "       \
+                                        "operands change width")               \
+  ENUM_ENTRY(IC_XS_ADSIZE,          3,  "requires an ADSIZE prefix, so "       \
+                                        "operands change width")               \
   ENUM_ENTRY(IC_64BIT_REXW,         5,  "requires a REX.W prefix, so operands "\
                                         "change width; overrides IC_OPSIZE")   \
   ENUM_ENTRY(IC_64BIT_REXW_ADSIZE,  6,  "requires a REX.W prefix and 0x67 "    \
@@ -106,6 +110,8 @@
   ENUM_ENTRY(IC_64BIT_XS,           6,  "Just as meaningful as IC_64BIT_XD")   \
   ENUM_ENTRY(IC_64BIT_XD_OPSIZE,    3,  "Just as meaningful as IC_XD_OPSIZE")  \
   ENUM_ENTRY(IC_64BIT_XS_OPSIZE,    3,  "Just as meaningful as IC_XS_OPSIZE")  \
+  ENUM_ENTRY(IC_64BIT_XD_ADSIZE,    3,  "Just as meaningful as IC_XD_ADSIZE")  \
+  ENUM_ENTRY(IC_64BIT_XS_ADSIZE,    3,  "Just as meaningful as IC_XS_ADSIZE")  \
   ENUM_ENTRY(IC_64BIT_REXW_XS,      7,  "OPSIZE could mean a different "       \
                                         "opcode")                              \
   ENUM_ENTRY(IC_64BIT_REXW_XD,      7,  "Just as meaningful as "               \
@@ -446,7 +452,7 @@
 };
 #undef ENUM_ENTRY
 
-/// \brief The specification for how to extract and interpret one operand.
+/// The specification for how to extract and interpret one operand.
 struct OperandSpecifier {
   uint8_t encoding;
   uint8_t type;
diff --git a/linux-x64/clang/include/llvm/Support/X86TargetParser.def b/linux-x64/clang/include/llvm/Support/X86TargetParser.def
index 5c8c576..e4af065 100644
--- a/linux-x64/clang/include/llvm/Support/X86TargetParser.def
+++ b/linux-x64/clang/include/llvm/Support/X86TargetParser.def
@@ -65,6 +65,8 @@
 X86_CPU_TYPE                  ("k8",          AMD_K8)
 X86_CPU_TYPE                  ("k8-sse3",     AMD_K8SSE3)
 X86_CPU_TYPE                  ("goldmont",    INTEL_GOLDMONT)
+X86_CPU_TYPE                  ("goldmont-plus", INTEL_GOLDMONT_PLUS)
+X86_CPU_TYPE                  ("tremont",     INTEL_TREMONT)
 #undef X86_CPU_TYPE_COMPAT_WITH_ALIAS
 #undef X86_CPU_TYPE_COMPAT
 #undef X86_CPU_TYPE
diff --git a/linux-x64/clang/include/llvm/Support/YAMLParser.h b/linux-x64/clang/include/llvm/Support/YAMLParser.h
index 7333ad9..5b031a9 100644
--- a/linux-x64/clang/include/llvm/Support/YAMLParser.h
+++ b/linux-x64/clang/include/llvm/Support/YAMLParser.h
@@ -64,26 +64,26 @@
 class Scanner;
 struct Token;
 
-/// \brief Dump all the tokens in this stream to OS.
+/// Dump all the tokens in this stream to OS.
 /// \returns true if there was an error, false otherwise.
 bool dumpTokens(StringRef Input, raw_ostream &);
 
-/// \brief Scans all tokens in input without outputting anything. This is used
+/// Scans all tokens in input without outputting anything. This is used
 ///        for benchmarking the tokenizer.
 /// \returns true if there was an error, false otherwise.
 bool scanTokens(StringRef Input);
 
-/// \brief Escape \a Input for a double quoted scalar; if \p EscapePrintable
+/// Escape \a Input for a double quoted scalar; if \p EscapePrintable
 /// is true, all UTF8 sequences will be escaped, if \p EscapePrintable is
 /// false, those UTF8 sequences encoding printable unicode scalars will not be
 /// escaped, but emitted verbatim.
 std::string escape(StringRef Input, bool EscapePrintable = true);
 
-/// \brief This class represents a YAML stream potentially containing multiple
+/// This class represents a YAML stream potentially containing multiple
 ///        documents.
 class Stream {
 public:
-  /// \brief This keeps a reference to the string referenced by \p Input.
+  /// This keeps a reference to the string referenced by \p Input.
   Stream(StringRef Input, SourceMgr &, bool ShowColors = true,
          std::error_code *EC = nullptr);
 
@@ -110,7 +110,7 @@
   std::unique_ptr<Document> CurrentDoc;
 };
 
-/// \brief Abstract base class for all Nodes.
+/// Abstract base class for all Nodes.
 class Node {
   virtual void anchor();
 
@@ -145,15 +145,15 @@
 
   void operator delete(void *) noexcept = delete;
 
-  /// \brief Get the value of the anchor attached to this node. If it does not
+  /// Get the value of the anchor attached to this node. If it does not
   ///        have one, getAnchor().size() will be 0.
   StringRef getAnchor() const { return Anchor; }
 
-  /// \brief Get the tag as it was written in the document. This does not
+  /// Get the tag as it was written in the document. This does not
   ///   perform tag resolution.
   StringRef getRawTag() const { return Tag; }
 
-  /// \brief Get the verbatium tag for a given Node. This performs tag resoluton
+  /// Get the verbatium tag for a given Node. This performs tag resoluton
   ///   and substitution.
   std::string getVerbatimTag() const;
 
@@ -181,11 +181,11 @@
 private:
   unsigned int TypeID;
   StringRef Anchor;
-  /// \brief The tag as typed in the document.
+  /// The tag as typed in the document.
   StringRef Tag;
 };
 
-/// \brief A null value.
+/// A null value.
 ///
 /// Example:
 ///   !!null null
@@ -199,7 +199,7 @@
   static bool classof(const Node *N) { return N->getType() == NK_Null; }
 };
 
-/// \brief A scalar node is an opaque datum that can be presented as a
+/// A scalar node is an opaque datum that can be presented as a
 ///        series of zero or more Unicode scalar values.
 ///
 /// Example:
@@ -221,7 +221,7 @@
   // utf8).
   StringRef getRawValue() const { return Value; }
 
-  /// \brief Gets the value of this node as a StringRef.
+  /// Gets the value of this node as a StringRef.
   ///
   /// \param Storage is used to store the content of the returned StringRef iff
   ///        it requires any modification from how it appeared in the source.
@@ -240,7 +240,7 @@
                                  SmallVectorImpl<char> &Storage) const;
 };
 
-/// \brief A block scalar node is an opaque datum that can be presented as a
+/// A block scalar node is an opaque datum that can be presented as a
 ///        series of zero or more Unicode scalar values.
 ///
 /// Example:
@@ -259,7 +259,7 @@
     SourceRange = SMRange(Start, End);
   }
 
-  /// \brief Gets the value of this node as a StringRef.
+  /// Gets the value of this node as a StringRef.
   StringRef getValue() const { return Value; }
 
   static bool classof(const Node *N) {
@@ -270,7 +270,7 @@
   StringRef Value;
 };
 
-/// \brief A key and value pair. While not technically a Node under the YAML
+/// A key and value pair. While not technically a Node under the YAML
 ///        representation graph, it is easier to treat them this way.
 ///
 /// TODO: Consider making this not a child of Node.
@@ -284,14 +284,14 @@
   KeyValueNode(std::unique_ptr<Document> &D)
       : Node(NK_KeyValue, D, StringRef(), StringRef()) {}
 
-  /// \brief Parse and return the key.
+  /// Parse and return the key.
   ///
   /// This may be called multiple times.
   ///
   /// \returns The key, or nullptr if failed() == true.
   Node *getKey();
 
-  /// \brief Parse and return the value.
+  /// Parse and return the value.
   ///
   /// This may be called multiple times.
   ///
@@ -315,7 +315,7 @@
   Node *Value = nullptr;
 };
 
-/// \brief This is an iterator abstraction over YAML collections shared by both
+/// This is an iterator abstraction over YAML collections shared by both
 ///        sequences and maps.
 ///
 /// BaseT must have a ValueT* member named CurrentEntry and a member function
@@ -395,7 +395,7 @@
       i->skip();
 }
 
-/// \brief Represents a YAML map created from either a block map for a flow map.
+/// Represents a YAML map created from either a block map for a flow map.
 ///
 /// This parses the YAML stream as increment() is called.
 ///
@@ -442,7 +442,7 @@
   void increment();
 };
 
-/// \brief Represents a YAML sequence created from either a block sequence for a
+/// Represents a YAML sequence created from either a block sequence for a
 ///        flow sequence.
 ///
 /// This parses the YAML stream as increment() is called.
@@ -498,7 +498,7 @@
   Node *CurrentEntry = nullptr;
 };
 
-/// \brief Represents an alias to a Node with an anchor.
+/// Represents an alias to a Node with an anchor.
 ///
 /// Example:
 ///   *AnchorName
@@ -518,20 +518,20 @@
   StringRef Name;
 };
 
-/// \brief A YAML Stream is a sequence of Documents. A document contains a root
+/// A YAML Stream is a sequence of Documents. A document contains a root
 ///        node.
 class Document {
 public:
   Document(Stream &ParentStream);
 
-  /// \brief Root for parsing a node. Returns a single node.
+  /// Root for parsing a node. Returns a single node.
   Node *parseBlockNode();
 
-  /// \brief Finish parsing the current document and return true if there are
+  /// Finish parsing the current document and return true if there are
   ///        more. Return false otherwise.
   bool skip();
 
-  /// \brief Parse and return the root level node.
+  /// Parse and return the root level node.
   Node *getRoot() {
     if (Root)
       return Root;
@@ -544,18 +544,18 @@
   friend class Node;
   friend class document_iterator;
 
-  /// \brief Stream to read tokens from.
+  /// Stream to read tokens from.
   Stream &stream;
 
-  /// \brief Used to allocate nodes to. All are destroyed without calling their
+  /// Used to allocate nodes to. All are destroyed without calling their
   ///        destructor when the document is destroyed.
   BumpPtrAllocator NodeAllocator;
 
-  /// \brief The root node. Used to support skipping a partially parsed
+  /// The root node. Used to support skipping a partially parsed
   ///        document.
   Node *Root;
 
-  /// \brief Maps tag prefixes to their expansion.
+  /// Maps tag prefixes to their expansion.
   std::map<StringRef, StringRef> TagMap;
 
   Token &peekNext();
@@ -563,20 +563,20 @@
   void setError(const Twine &Message, Token &Location) const;
   bool failed() const;
 
-  /// \brief Parse %BLAH directives and return true if any were encountered.
+  /// Parse %BLAH directives and return true if any were encountered.
   bool parseDirectives();
 
-  /// \brief Parse %YAML
+  /// Parse %YAML
   void parseYAMLDirective();
 
-  /// \brief Parse %TAG
+  /// Parse %TAG
   void parseTAGDirective();
 
-  /// \brief Consume the next token and error if it is not \a TK.
+  /// Consume the next token and error if it is not \a TK.
   bool expectToken(int TK);
 };
 
-/// \brief Iterator abstraction for Documents over a Stream.
+/// Iterator abstraction for Documents over a Stream.
 class document_iterator {
 public:
   document_iterator() = default;
diff --git a/linux-x64/clang/include/llvm/Support/YAMLTraits.h b/linux-x64/clang/include/llvm/Support/YAMLTraits.h
index b874ad5..4b8c4e9 100644
--- a/linux-x64/clang/include/llvm/Support/YAMLTraits.h
+++ b/linux-x64/clang/include/llvm/Support/YAMLTraits.h
@@ -540,11 +540,14 @@
     case '.':
     case ',':
     case ' ':
-    // TAB (0x9), LF (0xA), CR (0xD) and NEL (0x85) are allowed.
+    // TAB (0x9) is allowed in unquoted strings.
     case 0x9:
+      continue;
+    // LF(0xA) and CR(0xD) may delimit values and so require at least single
+    // quotes.
     case 0xA:
     case 0xD:
-    case 0x85:
+      MaxQuotingNeeded = QuotingType::Single;
       continue;
     // DEL (0x7F) are excluded from the allowed character range.
     case 0x7F:
@@ -1311,7 +1314,7 @@
   Output(raw_ostream &, void *Ctxt = nullptr, int WrapColumn = 70);
   ~Output() override;
 
-  /// \brief Set whether or not to output optional values which are equal
+  /// Set whether or not to output optional values which are equal
   /// to the default value.  By default, when outputting if you attempt
   /// to write a value that is equal to the default, the value gets ignored.
   /// Sometimes, it is useful to be able to see these in the resulting YAML
diff --git a/linux-x64/clang/include/llvm/Support/raw_ostream.h b/linux-x64/clang/include/llvm/Support/raw_ostream.h
index d11f5a8..b9ea9b5 100644
--- a/linux-x64/clang/include/llvm/Support/raw_ostream.h
+++ b/linux-x64/clang/include/llvm/Support/raw_ostream.h
@@ -33,7 +33,9 @@
 
 namespace sys {
 namespace fs {
+enum FileAccess : unsigned;
 enum OpenFlags : unsigned;
+enum CreationDisposition : unsigned;
 } // end namespace fs
 } // end namespace sys
 
@@ -218,7 +220,7 @@
   raw_ostream &write_uuid(const uuid_t UUID);
 
   /// Output \p Str, turning '\\', '\t', '\n', '"', and anything that doesn't
-  /// satisfy std::isprint into an escape sequence.
+  /// satisfy llvm::isPrint into an escape sequence.
   raw_ostream &write_escaped(StringRef Str, bool UseHexEscapes = false);
 
   raw_ostream &write(unsigned char C);
@@ -242,6 +244,9 @@
   /// indent - Insert 'NumSpaces' spaces.
   raw_ostream &indent(unsigned NumSpaces);
 
+  /// write_zeros - Insert 'NumZeros' nulls.
+  raw_ostream &write_zeros(unsigned NumZeros);
+
   /// Changes the foreground color of text that will be output from this point
   /// forward.
   /// @param Color ANSI color to use, the special SAVEDCOLOR can be used to
@@ -293,9 +298,6 @@
   /// \invariant { Size > 0 }
   virtual void write_impl(const char *Ptr, size_t Size) = 0;
 
-  // An out of line virtual method to provide a home for the class vtable.
-  virtual void handle();
-
   /// Return the current position within the stream, not counting the bytes
   /// currently in the buffer.
   virtual uint64_t current_pos() const = 0;
@@ -329,6 +331,8 @@
   /// Copy data into the buffer. Size must not be greater than the number of
   /// unused bytes in the buffer.
   void copy_to_buffer(const char *Ptr, size_t Size);
+
+  virtual void anchor();
 };
 
 /// An abstract base class for streams implementations that also support a
@@ -336,6 +340,7 @@
 /// but needs to patch in a header that needs to know the output size.
 class raw_pwrite_stream : public raw_ostream {
   virtual void pwrite_impl(const char *Ptr, size_t Size, uint64_t Offset) = 0;
+  void anchor() override;
 
 public:
   explicit raw_pwrite_stream(bool Unbuffered = false)
@@ -383,6 +388,8 @@
   /// Set the flag indicating that an output error has been encountered.
   void error_detected(std::error_code EC) { this->EC = EC; }
 
+  void anchor() override;
+
 public:
   /// Open the specified file for writing. If an error occurs, information
   /// about the error is put into EC, and the stream should be immediately
@@ -392,7 +399,15 @@
   /// As a special case, if Filename is "-", then the stream will use
   /// STDOUT_FILENO instead of opening a file. This will not close the stdout
   /// descriptor.
+  raw_fd_ostream(StringRef Filename, std::error_code &EC);
   raw_fd_ostream(StringRef Filename, std::error_code &EC,
+                 sys::fs::CreationDisposition Disp);
+  raw_fd_ostream(StringRef Filename, std::error_code &EC,
+                 sys::fs::FileAccess Access);
+  raw_fd_ostream(StringRef Filename, std::error_code &EC,
+                 sys::fs::OpenFlags Flags);
+  raw_fd_ostream(StringRef Filename, std::error_code &EC,
+                 sys::fs::CreationDisposition Disp, sys::fs::FileAccess Access,
                  sys::fs::OpenFlags Flags);
 
   /// FD is the file descriptor that this writes to.  If ShouldClose is true,
diff --git a/linux-x64/clang/include/llvm/Support/type_traits.h b/linux-x64/clang/include/llvm/Support/type_traits.h
index cc08783..55d84f1 100644
--- a/linux-x64/clang/include/llvm/Support/type_traits.h
+++ b/linux-x64/clang/include/llvm/Support/type_traits.h
@@ -54,7 +54,7 @@
   static const bool value = isPodLike<T>::value && isPodLike<U>::value;
 };
 
-/// \brief Metafunction that determines whether the given type is either an
+/// Metafunction that determines whether the given type is either an
 /// integral type or an enumeration type, including enum classes.
 ///
 /// Note that this accepts potentially more integral types than is_integral
@@ -73,7 +73,7 @@
        std::is_convertible<UnderlyingT, unsigned long long>::value);
 };
 
-/// \brief If T is a pointer, just return it. If it is not, return T&.
+/// If T is a pointer, just return it. If it is not, return T&.
 template<typename T, typename Enable = void>
 struct add_lvalue_reference_if_not_pointer { using type = T &; };
 
@@ -83,7 +83,7 @@
   using type = T;
 };
 
-/// \brief If T is a pointer to X, return a pointer to const X. If it is not,
+/// If T is a pointer to X, return a pointer to const X. If it is not,
 /// return const T.
 template<typename T, typename Enable = void>
 struct add_const_past_pointer { using type = const T; };
@@ -104,12 +104,51 @@
   using type = typename add_const_past_pointer<T>::type;
 };
 
+namespace detail {
+/// Internal utility to detect trivial copy construction.
+template<typename T> union copy_construction_triviality_helper {
+    T t;
+    copy_construction_triviality_helper() = default;
+    copy_construction_triviality_helper(const copy_construction_triviality_helper&) = default;
+    ~copy_construction_triviality_helper() = default;
+};
+/// Internal utility to detect trivial move construction.
+template<typename T> union move_construction_triviality_helper {
+    T t;
+    move_construction_triviality_helper() = default;
+    move_construction_triviality_helper(move_construction_triviality_helper&&) = default;
+    ~move_construction_triviality_helper() = default;
+};
+} // end namespace detail
+
+/// An implementation of `std::is_trivially_copy_constructible` since we have
+/// users with STLs that don't yet include it.
+template <typename T>
+struct is_trivially_copy_constructible
+    : std::is_copy_constructible<
+          ::llvm::detail::copy_construction_triviality_helper<T>> {};
+template <typename T>
+struct is_trivially_copy_constructible<T &> : std::true_type {};
+template <typename T>
+struct is_trivially_copy_constructible<T &&> : std::false_type {};
+
+/// An implementation of `std::is_trivially_move_constructible` since we have
+/// users with STLs that don't yet include it.
+template <typename T>
+struct is_trivially_move_constructible
+    : std::is_move_constructible<
+          ::llvm::detail::move_construction_triviality_helper<T>> {};
+template <typename T>
+struct is_trivially_move_constructible<T &> : std::true_type {};
+template <typename T>
+struct is_trivially_move_constructible<T &&> : std::true_type {};
+
 } // end namespace llvm
 
 // If the compiler supports detecting whether a class is final, define
 // an LLVM_IS_FINAL macro. If it cannot be defined properly, this
 // macro will be left undefined.
-#if __cplusplus >= 201402L
+#if __cplusplus >= 201402L || defined(_MSC_VER)
 #define LLVM_IS_FINAL(Ty) std::is_final<Ty>()
 #elif __has_feature(is_final) || LLVM_GNUC_PREREQ(4, 7, 0)
 #define LLVM_IS_FINAL(Ty) __is_final(Ty)
diff --git a/linux-x64/clang/include/llvm/Support/xxhash.h b/linux-x64/clang/include/llvm/Support/xxhash.h
index f7ca460..6fd67ff 100644
--- a/linux-x64/clang/include/llvm/Support/xxhash.h
+++ b/linux-x64/clang/include/llvm/Support/xxhash.h
@@ -38,10 +38,12 @@
 #ifndef LLVM_SUPPORT_XXHASH_H
 #define LLVM_SUPPORT_XXHASH_H
 
+#include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
 
 namespace llvm {
 uint64_t xxHash64(llvm::StringRef Data);
+uint64_t xxHash64(llvm::ArrayRef<uint8_t> Data);
 }
 
 #endif
diff --git a/linux-x64/clang/include/llvm/TableGen/Record.h b/linux-x64/clang/include/llvm/TableGen/Record.h
index 3b2ebaa..e022bc8 100644
--- a/linux-x64/clang/include/llvm/TableGen/Record.h
+++ b/linux-x64/clang/include/llvm/TableGen/Record.h
@@ -54,7 +54,7 @@
 
 class RecTy {
 public:
-  /// \brief Subclass discriminator (for dyn_cast<> et al.)
+  /// Subclass discriminator (for dyn_cast<> et al.)
   enum RecTyKind {
     BitRecTyKind,
     BitsRecTyKind,
@@ -287,7 +287,7 @@
 
 class Init {
 protected:
-  /// \brief Discriminator enum (for isa<>, dyn_cast<>, et al.)
+  /// Discriminator enum (for isa<>, dyn_cast<>, et al.)
   ///
   /// This enum is laid out by a preorder traversal of the inheritance
   /// hierarchy, and does not contain an entry for abstract classes, as per
@@ -1357,30 +1357,31 @@
   unsigned ID;
 
   bool IsAnonymous;
+  bool IsClass;
 
-  void init();
   void checkName();
 
 public:
   // Constructs a record.
   explicit Record(Init *N, ArrayRef<SMLoc> locs, RecordKeeper &records,
-                  bool Anonymous = false) :
-    Name(N), Locs(locs.begin(), locs.end()), TrackedRecords(records),
-    ID(LastID++), IsAnonymous(Anonymous) {
-    init();
+                  bool Anonymous = false, bool Class = false)
+    : Name(N), Locs(locs.begin(), locs.end()), TrackedRecords(records),
+      ID(LastID++), IsAnonymous(Anonymous), IsClass(Class) {
+    checkName();
   }
 
-  explicit Record(StringRef N, ArrayRef<SMLoc> locs, RecordKeeper &records)
-      : Record(StringInit::get(N), locs, records) {}
+  explicit Record(StringRef N, ArrayRef<SMLoc> locs, RecordKeeper &records,
+                  bool Class = false)
+      : Record(StringInit::get(N), locs, records, false, Class) {}
 
   // When copy-constructing a Record, we must still guarantee a globally unique
   // ID number.  Don't copy TheInit either since it's owned by the original
   // record. All other fields can be copied normally.
-  Record(const Record &O) :
-    Name(O.Name), Locs(O.Locs), TemplateArgs(O.TemplateArgs),
-    Values(O.Values), SuperClasses(O.SuperClasses),
-    TrackedRecords(O.TrackedRecords), ID(LastID++),
-    IsAnonymous(O.IsAnonymous) { }
+  Record(const Record &O)
+    : Name(O.Name), Locs(O.Locs), TemplateArgs(O.TemplateArgs),
+      Values(O.Values), SuperClasses(O.SuperClasses),
+      TrackedRecords(O.TrackedRecords), ID(LastID++),
+      IsAnonymous(O.IsAnonymous), IsClass(O.IsClass) { }
 
   static unsigned getNewUID() { return LastID++; }
 
@@ -1407,6 +1408,8 @@
   /// get the corresponding DefInit.
   DefInit *getDefInit();
 
+  bool isClass() const { return IsClass; }
+
   ArrayRef<Init *> getTemplateArgs() const {
     return TemplateArgs;
   }
@@ -1452,13 +1455,6 @@
   void addValue(const RecordVal &RV) {
     assert(getValue(RV.getNameInit()) == nullptr && "Value already added!");
     Values.push_back(RV);
-    if (Values.size() > 1)
-      // Keep NAME at the end of the list.  It makes record dumps a
-      // bit prettier and allows TableGen tests to be written more
-      // naturally.  Tests can use CHECK-NEXT to look for Record
-      // fields they expect to see after a def.  They can't do that if
-      // NAME is the first Record field.
-      std::swap(Values[Values.size() - 2], Values[Values.size() - 1]);
   }
 
   void removeValue(Init *Name) {
@@ -1600,17 +1596,6 @@
 
 raw_ostream &operator<<(raw_ostream &OS, const Record &R);
 
-struct MultiClass {
-  Record Rec;  // Placeholder for template args and Name.
-  using RecordVector = std::vector<std::unique_ptr<Record>>;
-  RecordVector DefPrototypes;
-
-  void dump() const;
-
-  MultiClass(StringRef Name, SMLoc Loc, RecordKeeper &Records) :
-    Rec(Name, Loc, Records) {}
-};
-
 class RecordKeeper {
   friend class RecordRecTy;
   using RecordMap = std::map<std::string, std::unique_ptr<Record>>;
@@ -1780,11 +1765,6 @@
 
 raw_ostream &operator<<(raw_ostream &OS, const RecordKeeper &RK);
 
-/// Return an Init with a qualifier prefix referring
-/// to CurRec's name.
-Init *QualifyName(Record &CurRec, MultiClass *CurMultiClass,
-                  Init *Name, StringRef Scoper);
-
 //===----------------------------------------------------------------------===//
 //  Resolvers
 //===----------------------------------------------------------------------===//
@@ -1905,6 +1885,23 @@
   Init *resolve(Init *VarName) override;
 };
 
+/// Do not resolve anything, but keep track of whether a given variable was
+/// referenced.
+class HasReferenceResolver final : public Resolver {
+  Init *VarNameToTrack;
+  bool Found = false;
+
+public:
+  explicit HasReferenceResolver(Init *VarNameToTrack)
+      : Resolver(nullptr), VarNameToTrack(VarNameToTrack) {}
+
+  bool found() const { return Found; }
+
+  Init *resolve(Init *VarName) override;
+};
+
+void EmitJSON(RecordKeeper &RK, raw_ostream &OS);
+
 } // end namespace llvm
 
 #endif // LLVM_TABLEGEN_RECORD_H
diff --git a/linux-x64/clang/include/llvm/TableGen/SearchableTable.td b/linux-x64/clang/include/llvm/TableGen/SearchableTable.td
index 12aaf60..1089d36 100644
--- a/linux-x64/clang/include/llvm/TableGen/SearchableTable.td
+++ b/linux-x64/clang/include/llvm/TableGen/SearchableTable.td
@@ -8,32 +8,127 @@
 //===----------------------------------------------------------------------===//
 //
 // This file defines the key top-level classes needed to produce a reasonably
-// generic table that can be binary-searched via int and string entries.
+// generic table that can be binary-searched. Three types of objects can be
+// defined using the classes in this file:
 //
-// Each table must instantiate "Mappingkind", listing the fields that should be
-// included and fields that shoould be searchable. Only two kinds of fields are
-// searchable at the moment: "strings" (which are compared case-insensitively),
-// and "bits".
+// 1. (Generic) Enums. By instantiating the GenericEnum class once, an enum with
+// the name of the def is generated. It is guarded by the preprocessor define
+// GET_name_DECL, where name is the name of the def.
 //
-// For each "MappingKind" the generated header will create GET_MAPPINGKIND_DECL
-// and GET_MAPPINGKIND_IMPL guards.
+// 2. (Generic) Tables and search indices. By instantiating the GenericTable
+// class once, a table with the name of the instantiating def is generated and
+// guarded by the GET_name_IMPL preprocessor guard.
 //
-// Inside the DECL guard will be a set of function declarations:
-// "lookup{InstanceClass}By{SearchableField}", returning "const {InstanceClass}
-// *" and accepting either a StringRef or a uintN_t. Additionally, if
-// EnumNameField is still defined, there will be an "enum {InstanceClass}Values"
-// allowing C++ code to reference either the primary data table's entries (if
-// EnumValueField is not defined) or some other field (e.g. encoding) if it is.
-//
-// Inside the IMPL guard will be a primary data table "{InstanceClass}sList" and
-// as many searchable indexes as requested
-// ("{InstanceClass}sBy{SearchableField}"). Additionally implementations of the
-// lookup function will be provided.
+// Both a primary key and additional secondary keys / search indices can also
+// be defined, which result in the generation of lookup functions. Their
+// declarations and definitions are all guarded by GET_name_DECL and
+// GET_name_IMPL, respectively, where name is the name of the underlying table.
 //
 // See AArch64SystemOperands.td and its generated header for example uses.
 //
 //===----------------------------------------------------------------------===//
 
+// Define a record derived from this class to generate a generic enum.
+//
+// The name of the record is used as the type name of the C++ enum.
+class GenericEnum {
+  // Name of a TableGen class. The enum will have one entry for each record
+  // that derives from that class.
+  string FilterClass;
+
+  // (Optional) Name of a field that is present in all collected records and
+  // contains the name of enum entries.
+  //
+  // If NameField is not set, the record names will be used instead.
+  string NameField;
+
+  // (Optional) Name of a field that is present in all collected records and
+  // contains the numerical value of enum entries.
+  //
+  // If ValueField is not set, enum values will be assigned automatically,
+  // starting at 0, according to a lexicographical sort of the entry names.
+  string ValueField;
+}
+
+// Define a record derived from this class to generate a generic table. This
+// table can have a searchable primary key, and it can also be referenced by
+// external search indices.
+//
+// The name of the record is used as the name of the global primary array of
+// entries of the table in C++.
+class GenericTable {
+  // Name of a class. The table will have one entry for each record that
+  // derives from that class.
+  string FilterClass;
+
+  // Name of the C++ struct/class type that holds table entries. The
+  // declaration of this type is not generated automatically.
+  string CppTypeName = FilterClass;
+
+  // List of the names of fields of collected records that contain the data for
+  // table entries, in the order that is used for initialization in C++.
+  //
+  // For each field of the table named XXX, TableGen will look for a value
+  // called TypeOf_XXX and use that as a more detailed description of the
+  // type of the field if present. This is required for fields whose type
+  // cannot be deduced automatically, such as enum fields. For example:
+  //
+  //   def MyEnum : GenericEnum {
+  //     let FilterClass = "MyEnum";
+  //     ...
+  //   }
+  //
+  //   class MyTableEntry {
+  //     MyEnum V;
+  //     ...
+  //   }
+  //
+  //   def MyTable : GenericTable {
+  //     let FilterClass = "MyTableEntry";
+  //     let Fields = ["V", ...];
+  //     GenericEnum TypeOf_V = MyEnum;
+  //   }
+  //
+  // Fields of type bit, bits<N>, string, Intrinsic, and Instruction (or
+  // derived classes of those) are supported natively.
+  //
+  // Additionally, fields of type `code` can appear, where the value is used
+  // verbatim as an initializer. However, these fields cannot be used as
+  // search keys.
+  list<string> Fields;
+
+  // (Optional) List of fields that make up the primary key.
+  list<string> PrimaryKey;
+
+  // (Optional) Name of the primary key search function.
+  string PrimaryKeyName;
+
+  // See SearchIndex.EarlyOut
+  bit PrimaryKeyEarlyOut = 0;
+}
+
+// Define a record derived from this class to generate an additional search
+// index for a generic table that has been defined earlier.
+//
+// The name of the record will be used as the name of the C++ lookup function.
+class SearchIndex {
+  // Table that this search index refers to.
+  GenericTable Table;
+
+  // List of fields that make up the key.
+  list<string> Key;
+
+  // If true, the lookup function will check the first field of the key against
+  // the minimum and maximum values in the index before entering the binary
+  // search. This is convenient for tables that add extended data for a subset
+  // of a larger enum-based space, e.g. extended data about a subset of
+  // instructions.
+  //
+  // Can only be used when the first field is an integral (non-string) type.
+  bit EarlyOut = 0;
+}
+
+// Legacy table type with integrated enum.
 class SearchableTable {
   list<string> SearchableFields;
   string EnumNameField = "Name";
diff --git a/linux-x64/clang/include/llvm/Target/GenericOpcodes.td b/linux-x64/clang/include/llvm/Target/GenericOpcodes.td
index 1af6a9a..90c121d 100644
--- a/linux-x64/clang/include/llvm/Target/GenericOpcodes.td
+++ b/linux-x64/clang/include/llvm/Target/GenericOpcodes.td
@@ -120,12 +120,54 @@
   let mayStore = 1;
 }
 
+def G_CTLZ : GenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src);
+  let hasSideEffects = 0;
+}
+
+def G_CTLZ_ZERO_UNDEF : GenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src);
+  let hasSideEffects = 0;
+}
+
+def G_CTTZ : GenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src);
+  let hasSideEffects = 0;
+}
+
+def G_CTTZ_ZERO_UNDEF : GenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src);
+  let hasSideEffects = 0;
+}
+
+def G_CTPOP : GenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src);
+  let hasSideEffects = 0;
+}
+
 def G_BSWAP : GenericInstruction {
   let OutOperandList = (outs type0:$dst);
   let InOperandList = (ins type0:$src);
   let hasSideEffects = 0;
 }
 
+def G_ADDRSPACE_CAST : GenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type1:$src);
+  let hasSideEffects = 0;
+}
+
+def G_BLOCK_ADDR : GenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins unknown:$ba);
+  let hasSideEffects = 0;
+}
+
 //------------------------------------------------------------------------------
 // Binary ops.
 //------------------------------------------------------------------------------
@@ -482,6 +524,22 @@
   let mayLoad = 1;
 }
 
+// Generic sign-extended load. Expects a MachineMemOperand in addition to explicit operands.
+def G_SEXTLOAD : GenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins ptype1:$addr);
+  let hasSideEffects = 0;
+  let mayLoad = 1;
+}
+
+// Generic zero-extended load. Expects a MachineMemOperand in addition to explicit operands.
+def G_ZEXTLOAD : GenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins ptype1:$addr);
+  let hasSideEffects = 0;
+  let mayLoad = 1;
+}
+
 // Generic store. Expects a MachineMemOperand in addition to explicit operands.
 def G_STORE : GenericInstruction {
   let OutOperandList = (outs);
diff --git a/linux-x64/clang/include/llvm/Target/GlobalISel/SelectionDAGCompat.td b/linux-x64/clang/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
index 0d3b4a4..d487759 100644
--- a/linux-x64/clang/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+++ b/linux-x64/clang/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
@@ -28,6 +28,13 @@
   // (ISD::LOAD, ISD::ATOMIC_LOAD, ISD::STORE, ISD::ATOMIC_STORE) but GlobalISel
   // stores this information in the MachineMemoryOperand.
   bit CheckMMOIsNonAtomic = 0;
+
+  // SelectionDAG has one node for all loads and uses predicates to
+  // differentiate them. GlobalISel on the other hand uses separate opcodes.
+  // When this is true, the resulting opcode is G_LOAD/G_SEXTLOAD/G_ZEXTLOAD
+  // depending on the predicates on the node.
+  Instruction IfSignExtend = ?;
+  Instruction IfZeroExtend = ?;
 }
 
 // These are defined in the same order as the G_* instructions.
@@ -80,11 +87,15 @@
 // Broadly speaking G_LOAD is equivalent to ISD::LOAD but there are some
 // complications that tablegen must take care of. For example, Predicates such
 // as isSignExtLoad require that this is not a perfect 1:1 mapping since a
-// sign-extending load is (G_SEXT (G_LOAD x)) in GlobalISel. Additionally,
+// sign-extending load is (G_SEXTLOAD x) in GlobalISel. Additionally,
 // G_LOAD handles both atomic and non-atomic loads where as SelectionDAG had
 // separate nodes for them. This GINodeEquiv maps the non-atomic loads to
 // G_LOAD with a non-atomic MachineMemOperand.
-def : GINodeEquiv<G_LOAD, ld> { let CheckMMOIsNonAtomic = 1; }
+def : GINodeEquiv<G_LOAD, ld> {
+  let CheckMMOIsNonAtomic = 1;
+  let IfSignExtend = G_SEXTLOAD;
+  let IfZeroExtend = G_ZEXTLOAD;
+}
 // Broadly speaking G_STORE is equivalent to ISD::STORE but there are some
 // complications that tablegen must take care of. For example, predicates such
 // as isTruncStore require that this is not a perfect 1:1 mapping since a
diff --git a/linux-x64/clang/include/llvm/Target/Target.td b/linux-x64/clang/include/llvm/Target/Target.td
index 0a09e9b..b746505 100644
--- a/linux-x64/clang/include/llvm/Target/Target.td
+++ b/linux-x64/clang/include/llvm/Target/Target.td
@@ -384,6 +384,11 @@
 }
 
 //===----------------------------------------------------------------------===//
+// Pull in the common support for MCPredicate (portable scheduling predicates).
+//
+include "llvm/Target/TargetInstrPredicate.td"
+
+//===----------------------------------------------------------------------===//
 // Pull in the common support for scheduling
 //
 include "llvm/Target/TargetSchedule.td"
@@ -437,11 +442,13 @@
   bit isIndirectBranch = 0; // Is this instruction an indirect branch?
   bit isCompare    = 0;     // Is this instruction a comparison instruction?
   bit isMoveImm    = 0;     // Is this instruction a move immediate instruction?
+  bit isMoveReg    = 0;     // Is this instruction a move register instruction?
   bit isBitcast    = 0;     // Is this instruction a bitcast instruction?
   bit isSelect     = 0;     // Is this instruction a select instruction?
   bit isBarrier    = 0;     // Can control flow fall through this instruction?
   bit isCall       = 0;     // Is this instruction a call instruction?
   bit isAdd        = 0;     // Is this instruction an add instruction?
+  bit isTrap       = 0;     // Is this instruction a trap instruction?
   bit canFoldAsLoad = 0;    // Can this be folded as a simple memory operand?
   bit mayLoad      = ?;     // Is it possible for this inst to read memory?
   bit mayStore     = ?;     // Is it possible for this inst to write memory?
@@ -568,6 +575,12 @@
   /// can be queried via the getNamedOperandIdx() function which is generated
   /// by TableGen.
   bit UseNamedOperandTable = 0;
+
+  /// Should FastISel ignore this instruction. For certain ISAs, they have
+  /// instructions which map to the same ISD Opcode, value type operands and
+  /// instruction selection predicates. FastISel cannot handle such cases, but
+  /// SelectionDAG can.
+  bit FastISelShouldIgnore = 0;
 }
 
 /// PseudoInstExpansion - Expansion information for a pseudo-instruction.
@@ -997,6 +1010,12 @@
   let AsmString = "DBG_VALUE";
   let hasSideEffects = 0;
 }
+def DBG_LABEL : StandardPseudoInstruction {
+  let OutOperandList = (outs);
+  let InOperandList = (ins unknown:$label);
+  let AsmString = "DBG_LABEL";
+  let hasSideEffects = 0;
+}
 def REG_SEQUENCE : StandardPseudoInstruction {
   let OutOperandList = (outs unknown:$dst);
   let InOperandList = (ins unknown:$supersrc, variable_ops);
@@ -1099,7 +1118,7 @@
   let hasSideEffects = 0;
 }
 def PATCHABLE_RET : StandardPseudoInstruction {
-  let OutOperandList = (outs unknown:$dst);
+  let OutOperandList = (outs);
   let InOperandList = (ins variable_ops);
   let AsmString = "# XRay Function Patchable RET.";
   let usesCustomInserter = 1;
@@ -1116,7 +1135,7 @@
   let isReturn = 0; // Original return instruction will follow
 }
 def PATCHABLE_TAIL_CALL : StandardPseudoInstruction {
-  let OutOperandList = (outs unknown:$dst);
+  let OutOperandList = (outs);
   let InOperandList = (ins variable_ops);
   let AsmString = "# XRay Tail Call Exit.";
   let usesCustomInserter = 1;
@@ -1133,6 +1152,16 @@
   let mayStore = 1;
   let hasSideEffects = 1;
 }
+def PATCHABLE_TYPED_EVENT_CALL : StandardPseudoInstruction {
+  let OutOperandList = (outs);
+  let InOperandList = (ins i16imm:$type, ptr_rc:$event, i32imm:$size);
+  let AsmString = "# XRay Typed Event Log.";
+  let usesCustomInserter = 1;
+  let isCall = 1;
+  let mayLoad = 1;
+  let mayStore = 1;
+  let hasSideEffects = 1;
+}
 def FENTRY_CALL : StandardPseudoInstruction {
   let OutOperandList = (outs unknown:$dst);
   let InOperandList = (ins variable_ops);
@@ -1298,7 +1327,7 @@
 /// InstAlias - This defines an alternate assembly syntax that is allowed to
 /// match an instruction that has a different (more canonical) assembly
 /// representation.
-class InstAlias<string Asm, dag Result, int Emit = 1> {
+class InstAlias<string Asm, dag Result, int Emit = 1, string VariantName = ""> {
   string AsmString = Asm;      // The .s format to match the instruction with.
   dag ResultInst = Result;     // The MCInst to generate.
 
@@ -1322,7 +1351,7 @@
 
   // Assembler variant name to use for this alias. If not specified then
   // assembler variants will be determined based on AsmString
-  string AsmVariantName = "";
+  string AsmVariantName = VariantName;
 }
 
 //===----------------------------------------------------------------------===//
diff --git a/linux-x64/clang/include/llvm/Target/TargetCallingConv.td b/linux-x64/clang/include/llvm/Target/TargetCallingConv.td
index 3d8639d..95d2b42 100644
--- a/linux-x64/clang/include/llvm/Target/TargetCallingConv.td
+++ b/linux-x64/clang/include/llvm/Target/TargetCallingConv.td
@@ -1,10 +1,10 @@
 //===- TargetCallingConv.td - Target Calling Conventions ---*- tablegen -*-===//
-// 
+//
 //                     The LLVM Compiler Infrastructure
 //
 // This file is distributed under the University of Illinois Open Source
 // License. See LICENSE.TXT for details.
-// 
+//
 //===----------------------------------------------------------------------===//
 //
 // This file defines the target-independent interfaces with which targets
diff --git a/linux-x64/clang/include/llvm/Target/TargetInstrPredicate.td b/linux-x64/clang/include/llvm/Target/TargetInstrPredicate.td
new file mode 100644
index 0000000..8925e4b
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Target/TargetInstrPredicate.td
@@ -0,0 +1,227 @@
+//===- TargetInstrPredicate.td - ---------------------------*- tablegen -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines MCInstPredicate classes and its subclasses.
+//
+// MCInstPredicate is used to describe constraints on the opcode/operand(s) of
+// an instruction. Each MCInstPredicate class has a well-known semantic, and it
+// is used by a PredicateExpander to generate code for MachineInstr and/or
+// MCInst.
+//
+// MCInstPredicate definitions can be used to construct MCSchedPredicate
+// definitions. An MCSchedPredicate can be used in place of a SchedPredicate
+// when defining SchedReadVariant and SchedWriteVariant used by a processor
+// scheduling model.
+//
+// Here is an example of MCInstPredicate definition:
+//
+// def MCInstPredicateExample : CheckAll<[
+//    CheckOpcode<[BLR]>,
+//    CheckIsRegOperand<0>,
+//    CheckNot<CheckRegOperand<0, LR>>]>;
+//
+// Predicate `MCInstPredicateExample` checks that the machine instruction in
+// input is a BLR, and that operand at index 0 is register `LR`.
+//
+// That predicate could be used to rewrite the following definition (from
+// AArch64SchedExynosM3.td):
+//
+// def M3BranchLinkFastPred  : SchedPredicate<[{
+//    MI->getOpcode() == AArch64::BLR &&
+//    MI->getOperand(0).isReg() &&
+//    MI->getOperand(0).getReg() != AArch64::LR}]>;
+//
+// MCInstPredicate definitions are used to construct MCSchedPredicate (see the
+// definition of class MCSchedPredicate in llvm/Target/TargetSchedule.td).  An
+// MCSchedPredicate can be used by a `SchedVar` to associate a predicate with a
+// list of SchedReadWrites. Note that `SchedVar` are used to create SchedVariant
+// definitions.
+//
+// Each MCInstPredicate class has a well known semantic. For example,
+// `CheckOpcode` is only used to check the instruction opcode value.
+//
+// MCInstPredicate classes allow the definition of predicates in a declarative
+// way.  These predicates don't require a custom block of C++, and can be used
+// to define conditions on instructions without being bound to a particular
+// representation (i.e. MachineInstr vs MCInst).
+//
+// It also means that tablegen backends must know how to parse and expand them
+// into code that works on MCInst (or MachineInst).
+//
+// Instances of class PredicateExpander (see utils/Tablegen/PredicateExpander.h)
+// know how to expand a predicate. For each MCInstPredicate class, there must be
+// an "expand" method available in the PredicateExpander interface.
+//
+// For example, a `CheckOpcode` predicate is expanded using method
+// `PredicateExpander::expandCheckOpcode()`.
+//
+// New MCInstPredicate classes must be added to this file. For each new class
+// XYZ, an "expandXYZ" method must be added to the PredicateExpander.
+//
+//===----------------------------------------------------------------------===//
+
+// Forward declarations.
+class Instruction;
+
+// A generic machine instruction predicate.
+class MCInstPredicate;
+
+class MCTrue  : MCInstPredicate;   // A predicate that always evaluates to True.
+class MCFalse : MCInstPredicate;   // A predicate that always evaluates to False.
+def TruePred  : MCTrue;
+def FalsePred : MCFalse;
+
+// A predicate used to negate the outcome of another predicate.
+// It allows to easily express "set difference" operations. For example, it
+// makes it easy to describe a check that tests if an opcode is not part of a
+// set of opcodes.
+class CheckNot<MCInstPredicate P> : MCInstPredicate {
+  MCInstPredicate Pred = P;
+}
+
+// This class is used as a building block to define predicates on instruction
+// operands. It is used to reference a specific machine operand.
+class MCOperandPredicate<int Index> : MCInstPredicate {
+  int OpIndex = Index;
+}
+
+// Return true if machine operand at position `Index` is a register operand.
+class CheckIsRegOperand<int Index> : MCOperandPredicate<Index>;
+
+// Return true if machine operand at position `Index` is an immediate operand.
+class CheckIsImmOperand<int Index> : MCOperandPredicate<Index>;
+
+// Check if machine operands at index `First` and index `Second` both reference
+// the same register.
+class CheckSameRegOperand<int First, int Second> : MCInstPredicate {
+  int FirstIndex = First;
+  int SecondIndex = Second;
+}
+
+// Check that the machine register operand at position `Index` references
+// register R. This predicate assumes that we already checked that the machine
+// operand at position `Index` is a register operand.
+class CheckRegOperand<int Index, Register R> : MCOperandPredicate<Index> {
+  Register Reg = R;
+}
+
+// Check if register operand at index `Index` is the invalid register.
+class CheckInvalidRegOperand<int Index> : MCOperandPredicate<Index>;
+
+// Check that the operand at position `Index` is immediate `Imm`.
+class CheckImmOperand<int Index, int Imm> : MCOperandPredicate<Index> {
+  int ImmVal = Imm;
+}
+
+// Similar to CheckImmOperand, however the immediate is not a literal number.
+// This is useful when we want to compare the value of an operand against an
+// enum value, and we know the actual integer value of that enum.
+class CheckImmOperand_s<int Index, string Value> : MCOperandPredicate<Index> {
+  string ImmVal = Value;
+}
+
+// Check that the operand at position `Index` is immediate value zero.
+class CheckZeroOperand<int Index> : CheckImmOperand<Index, 0>;
+
+// Check that the instruction has exactly `Num` operands.
+class CheckNumOperands<int Num> : MCInstPredicate {
+  int NumOps = Num;
+}
+
+// Check that the instruction opcode is one of the opcodes in set `Opcodes`.
+// This is a simple set membership query. The easier way to check if an opcode
+// is not a member of the set is by using a `CheckNot<CheckOpcode<[...]>>`
+// sequence.
+class CheckOpcode<list<Instruction> Opcodes> : MCInstPredicate {
+  list<Instruction> ValidOpcodes = Opcodes;
+}
+
+// Check that the instruction opcode is a pseudo opcode member of the set
+// `Opcodes`.  This check is always expanded to "false" if we are generating
+// code for MCInst.
+class CheckPseudo<list<Instruction> Opcodes> : CheckOpcode<Opcodes>;
+
+// A non-portable predicate. Only to use as a last resort when a block of code
+// cannot possibly be converted in a declarative way using other MCInstPredicate
+// classes. This check is always expanded to "false" when generating code for
+// MCInst.
+class CheckNonPortable<string Code> : MCInstPredicate {
+  string CodeBlock = Code;
+}
+
+// A sequence of predicates. It is used as the base class for CheckAll, and
+// CheckAny. It allows to describe compositions of predicates.
+class CheckPredicateSequence<list<MCInstPredicate> Preds> : MCInstPredicate {
+  list<MCInstPredicate> Predicates = Preds;
+}
+
+// Check that all of the predicates in `Preds` evaluate to true.
+class CheckAll<list<MCInstPredicate> Sequence>
+    : CheckPredicateSequence<Sequence>;
+
+// Check that at least one of the predicates in `Preds` evaluates to true.
+class CheckAny<list<MCInstPredicate> Sequence>
+    : CheckPredicateSequence<Sequence>;
+
+
+// Used to expand the body of a function predicate. See the definition of
+// TIIPredicate below.
+class MCStatement;
+
+// Expands to a return statement. The return expression is a boolean expression
+// described by a MCInstPredicate.
+class MCReturnStatement<MCInstPredicate predicate> : MCStatement {
+  MCInstPredicate Pred = predicate;
+}
+
+// Used to automatically construct cases of a switch statement where the switch
+// variable is an instruction opcode. There is a 'case' for every opcode in the
+// `opcodes` list, and each case is associated with MCStatement `caseStmt`.
+class MCOpcodeSwitchCase<list<Instruction> opcodes, MCStatement caseStmt> {
+  list<Instruction> Opcodes = opcodes;
+  MCStatement CaseStmt = caseStmt;
+}
+
+// Expands to a switch statement. The switch variable is an instruction opcode.
+// The auto-generated switch is populated by a number of cases based on the
+// `cases` list in input. A default case is automatically generated, and it
+// evaluates to `default`.
+class MCOpcodeSwitchStatement<list<MCOpcodeSwitchCase> cases,
+                              MCStatement default> : MCStatement {
+  list<MCOpcodeSwitchCase> Cases = cases;
+  MCStatement DefaultCase = default;
+}
+
+// Check that a call to method `Name` in class "XXXGenInstrInfo" (where XXX is
+// the `Target` name) returns true.
+//
+// TIIPredicate definitions are used to model calls to the target-specific
+// InstrInfo. A TIIPredicate is treated specially by the InstrInfoEmitter
+// tablegen backend, which will use it to automatically generate a definition in
+// the target specific `GenInstrInfo` class.
+class TIIPredicate<string Target, string Name, MCStatement body>
+    : MCInstPredicate {
+  string TargetName = Target;
+  string FunctionName = Name;
+  MCStatement Body = body;
+}
+
+// A function predicate that takes as input a machine instruction, and returns
+// a boolean value.
+//
+// This predicate is expanded into a function call by the PredicateExpander.
+// In particular, the PredicateExpander would either expand this predicate into
+// a call to `MCInstFn`, or into a call to`MachineInstrFn` depending on whether
+// it is lowering predicates for MCInst or MachineInstr.
+//
+// In this context, `MCInstFn` and `MachineInstrFn` are both function names.
+class CheckFunctionPredicate<string MCInstFn, string MachineInstrFn> : MCInstPredicate {
+  string MCInstFnName = MCInstFn;
+  string MachineInstrFnName = MachineInstrFn;
+}
diff --git a/linux-x64/clang/include/llvm/Target/TargetLoweringObjectFile.h b/linux-x64/clang/include/llvm/Target/TargetLoweringObjectFile.h
index d5ac3cd..40b77c3 100644
--- a/linux-x64/clang/include/llvm/Target/TargetLoweringObjectFile.h
+++ b/linux-x64/clang/include/llvm/Target/TargetLoweringObjectFile.h
@@ -45,6 +45,13 @@
 protected:
   bool SupportIndirectSymViaGOTPCRel = false;
   bool SupportGOTPCRelWithOffset = true;
+  bool SupportDebugThreadLocalLocation = true;
+
+  /// PersonalityEncoding, LSDAEncoding, TTypeEncoding - Some encoding values
+  /// for EH.
+  unsigned PersonalityEncoding = 0;
+  unsigned LSDAEncoding = 0;
+  unsigned TTypeEncoding = 0;
 
   /// This section contains the static constructor pointer list.
   MCSection *StaticCtorSection = nullptr;
@@ -71,8 +78,7 @@
                                     const MCSymbol *Sym) const;
 
   /// Emit the module-level metadata that the platform cares about.
-  virtual void emitModuleMetadata(MCStreamer &Streamer, Module &M,
-                                  const TargetMachine &TM) const {}
+  virtual void emitModuleMetadata(MCStreamer &Streamer, Module &M) const {}
 
   /// Given a constant with the SectionKind, return a section that it should be
   /// placed in.
@@ -136,6 +142,10 @@
                                             const TargetMachine &TM,
                                             MachineModuleInfo *MMI) const;
 
+  unsigned getPersonalityEncoding() const { return PersonalityEncoding; }
+  unsigned getLSDAEncoding() const { return LSDAEncoding; }
+  unsigned getTTypeEncoding() const { return TTypeEncoding; }
+
   const MCExpr *getTTypeReference(const MCSymbolRefExpr *Sym, unsigned Encoding,
                                   MCStreamer &Streamer) const;
 
@@ -149,7 +159,7 @@
     return StaticDtorSection;
   }
 
-  /// \brief Create a symbol reference to describe the given TLS variable when
+  /// Create a symbol reference to describe the given TLS variable when
   /// emitting the address in debug info.
   virtual const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const;
 
@@ -159,19 +169,24 @@
     return nullptr;
   }
 
-  /// \brief Target supports replacing a data "PC"-relative access to a symbol
+  /// Target supports replacing a data "PC"-relative access to a symbol
   /// through another symbol, by accessing the later via a GOT entry instead?
   bool supportIndirectSymViaGOTPCRel() const {
     return SupportIndirectSymViaGOTPCRel;
   }
 
-  /// \brief Target GOT "PC"-relative relocation supports encoding an additional
+  /// Target GOT "PC"-relative relocation supports encoding an additional
   /// binary expression with an offset?
   bool supportGOTPCRelWithOffset() const {
     return SupportGOTPCRelWithOffset;
   }
 
-  /// \brief Get the target specific PC relative GOT entry relocation
+  /// Target supports TLS offset relocation in debug section?
+  bool supportDebugThreadLocalLocation() const {
+    return SupportDebugThreadLocalLocation;
+  }
+
+  /// Get the target specific PC relative GOT entry relocation
   virtual const MCExpr *getIndirectSymViaGOTPCRel(const MCSymbol *Sym,
                                                   const MCValue &MV,
                                                   int64_t Offset,
diff --git a/linux-x64/clang/include/llvm/Target/TargetMachine.h b/linux-x64/clang/include/llvm/Target/TargetMachine.h
index 6f5d86e..1ca68c8 100644
--- a/linux-x64/clang/include/llvm/Target/TargetMachine.h
+++ b/linux-x64/clang/include/llvm/Target/TargetMachine.h
@@ -154,7 +154,7 @@
     return DL.getPointerSize(DL.getAllocaAddrSpace());
   }
 
-  /// \brief Reset the target options based on the function's attributes.
+  /// Reset the target options based on the function's attributes.
   // FIXME: Remove TargetOptions that affect per-function code generation
   // from TargetMachine.
   void resetTargetOptions(const Function &F) const;
@@ -195,13 +195,19 @@
   /// Returns the optimization level: None, Less, Default, or Aggressive.
   CodeGenOpt::Level getOptLevel() const;
 
-  /// \brief Overrides the optimization level.
+  /// Overrides the optimization level.
   void setOptLevel(CodeGenOpt::Level Level);
 
   void setFastISel(bool Enable) { Options.EnableFastISel = Enable; }
   bool getO0WantsFastISel() { return O0WantsFastISel; }
   void setO0WantsFastISel(bool Enable) { O0WantsFastISel = Enable; }
   void setGlobalISel(bool Enable) { Options.EnableGlobalISel = Enable; }
+  void setMachineOutliner(bool Enable) {
+    Options.EnableMachineOutliner = Enable;
+  }
+  void setSupportsDefaultOutlining(bool Enable) {
+    Options.SupportsDefaultOutlining = Enable;
+  }
 
   bool shouldPrintMachineCode() const { return Options.PrintMachineCode; }
 
@@ -219,14 +225,14 @@
     return Options.FunctionSections;
   }
 
-  /// \brief Get a \c TargetIRAnalysis appropriate for the target.
+  /// Get a \c TargetIRAnalysis appropriate for the target.
   ///
   /// This is used to construct the new pass manager's target IR analysis pass,
   /// set up appropriately for this target machine. Even the old pass manager
   /// uses this to answer queries about the IR.
   TargetIRAnalysis getTargetIRAnalysis();
 
-  /// \brief Return a TargetTransformInfo for a given function.
+  /// Return a TargetTransformInfo for a given function.
   ///
   /// The returned TargetTransformInfo is specialized to the subtarget
   /// corresponding to \p F.
@@ -252,7 +258,7 @@
   /// \p MMI is an optional parameter that, if set to non-nullptr,
   /// will be used to set the MachineModuloInfo for this PM.
   virtual bool addPassesToEmitFile(PassManagerBase &, raw_pwrite_stream &,
-                                   CodeGenFileType,
+                                   raw_pwrite_stream *, CodeGenFileType,
                                    bool /*DisableVerify*/ = true,
                                    MachineModuleInfo *MMI = nullptr) {
     return true;
@@ -299,14 +305,14 @@
 class LLVMTargetMachine : public TargetMachine {
 protected: // Can only create subclasses.
   LLVMTargetMachine(const Target &T, StringRef DataLayoutString,
-                    const Triple &TargetTriple, StringRef CPU, StringRef FS,
+                    const Triple &TT, StringRef CPU, StringRef FS,
                     const TargetOptions &Options, Reloc::Model RM,
                     CodeModel::Model CM, CodeGenOpt::Level OL);
 
   void initAsmInfo();
 
 public:
-  /// \brief Get a TargetTransformInfo implementation for the target.
+  /// Get a TargetTransformInfo implementation for the target.
   ///
   /// The TTI returned uses the common code generator to answer queries about
   /// the IR.
@@ -321,7 +327,8 @@
   /// \p MMI is an optional parameter that, if set to non-nullptr,
   /// will be used to set the MachineModuloInfofor this PM.
   bool addPassesToEmitFile(PassManagerBase &PM, raw_pwrite_stream &Out,
-                           CodeGenFileType FileType, bool DisableVerify = true,
+                           raw_pwrite_stream *DwoOut, CodeGenFileType FileType,
+                           bool DisableVerify = true,
                            MachineModuleInfo *MMI = nullptr) override;
 
   /// Add passes to the specified pass manager to get machine code emitted with
@@ -329,7 +336,7 @@
   /// fills the MCContext Ctx pointer which can be used to build custom
   /// MCStreamer.
   bool addPassesToEmitMC(PassManagerBase &PM, MCContext *&Ctx,
-                         raw_pwrite_stream &OS,
+                         raw_pwrite_stream &Out,
                          bool DisableVerify = true) override;
 
   /// Returns true if the target is expected to pass all machine verifier
@@ -338,10 +345,11 @@
   /// EXPENSIVE_CHECKS is enabled.
   virtual bool isMachineVerifierClean() const { return true; }
 
-  /// \brief Adds an AsmPrinter pass to the pipeline that prints assembly or
+  /// Adds an AsmPrinter pass to the pipeline that prints assembly or
   /// machine code from the MI representation.
   bool addAsmPrinter(PassManagerBase &PM, raw_pwrite_stream &Out,
-                     CodeGenFileType FileTYpe, MCContext &Context);
+                     raw_pwrite_stream *DwoOut, CodeGenFileType FileTYpe,
+                     MCContext &Context);
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/Target/TargetOptions.h b/linux-x64/clang/include/llvm/Target/TargetOptions.h
index 844031f..07ed773 100644
--- a/linux-x64/clang/include/llvm/Target/TargetOptions.h
+++ b/linux-x64/clang/include/llvm/Target/TargetOptions.h
@@ -108,8 +108,10 @@
           DisableIntegratedAS(false), RelaxELFRelocations(false),
           FunctionSections(false), DataSections(false),
           UniqueSectionNames(true), TrapUnreachable(false),
-          EmulatedTLS(false), ExplicitEmulatedTLS(false),
-          EnableIPRA(false), EmitStackSizeSection(false) {}
+          NoTrapAfterNoreturn(false), EmulatedTLS(false),
+          ExplicitEmulatedTLS(false), EnableIPRA(false),
+          EmitStackSizeSection(false), EnableMachineOutliner(false),
+          SupportsDefaultOutlining(false), EmitAddrsig(false) {}
 
     /// PrintMachineCode - This flag is enabled when the -print-machineinstrs
     /// option is specified on the command line, and should enable debugging
@@ -213,6 +215,10 @@
     /// Emit target-specific trap instruction for 'unreachable' IR instructions.
     unsigned TrapUnreachable : 1;
 
+    /// Do not emit a trap instruction for 'unreachable' IR instructions behind
+    /// noreturn calls, even if TrapUnreachable is true.
+    unsigned NoTrapAfterNoreturn : 1;
+
     /// EmulatedTLS - This flag enables emulated TLS model, using emutls
     /// function in the runtime library..
     unsigned EmulatedTLS : 1;
@@ -226,6 +232,15 @@
     /// Emit section containing metadata on function stack sizes.
     unsigned EmitStackSizeSection : 1;
 
+    /// Enables the MachineOutliner pass.
+    unsigned EnableMachineOutliner : 1;
+
+    /// Set if the target supports default outlining behaviour.
+    unsigned SupportsDefaultOutlining : 1;
+
+    /// Emit address-significance table.
+    unsigned EmitAddrsig : 1;
+
     /// FloatABIType - This setting is set by -float-abi=xxx option is specfied
     /// on the command line. This setting may either be Default, Soft, or Hard.
     /// Default selects the target's default behavior. Soft selects the ABI for
diff --git a/linux-x64/clang/include/llvm/Target/TargetSchedule.td b/linux-x64/clang/include/llvm/Target/TargetSchedule.td
index 8fa9bae..6858084 100644
--- a/linux-x64/clang/include/llvm/Target/TargetSchedule.td
+++ b/linux-x64/clang/include/llvm/Target/TargetSchedule.td
@@ -280,10 +280,9 @@
 // ProcResources indicates the set of resources consumed by the write.
 // Optionally, ResourceCycles indicates the number of cycles the
 // resource is consumed. Each ResourceCycles item is paired with the
-// ProcResource item at the same position in its list. Since
-// ResourceCycles are rarely specialized, the list may be
-// incomplete. By default, resources are consumed for a single cycle,
-// regardless of latency, which models a fully pipelined processing
+// ProcResource item at the same position in its list. ResourceCycles
+// can be `[]`: in that case, all resources are consumed for a single
+// cycle, regardless of latency, which models a fully pipelined processing
 // unit. A value of 0 for ResourceCycles means that the resource must
 // be available but is not consumed, which is only relevant for
 // unbuffered resources.
@@ -354,13 +353,23 @@
   code Code = c;
 }
 
+// Base class for scheduling predicates.
+class SchedPredicateBase;
+
+// A scheduling predicate whose logic is defined by a MCInstPredicate.
+// This can directly be used by SchedWriteVariant definitions.
+class MCSchedPredicate<MCInstPredicate P> : SchedPredicateBase {
+  MCInstPredicate Pred = P;
+  SchedMachineModel SchedModel = ?;
+}
+
 // Define a predicate to determine which SchedVariant applies to a
 // particular MachineInstr. The code snippet is used as an
 // if-statement's expression. Available variables are MI, SchedModel,
 // and anything defined in a PredicateProlog.
 //
 // SchedModel silences warnings but is ignored.
-class SchedPredicate<code pred> {
+class SchedPredicate<code pred> : SchedPredicateBase {
   SchedMachineModel SchedModel = ?;
   code Predicate = pred;
 }
@@ -375,8 +384,8 @@
 // operands. In this case, latency is not additive. If the current Variant
 // is already part of a Sequence, then that entire chain leading up to
 // the Variant is distributed over the variadic operands.
-class SchedVar<SchedPredicate pred, list<SchedReadWrite> selected> {
-  SchedPredicate Predicate = pred;
+class SchedVar<SchedPredicateBase pred, list<SchedReadWrite> selected> {
+  SchedPredicateBase Predicate = pred;
   list<SchedReadWrite> Selected = selected;
 }
 
@@ -442,3 +451,102 @@
   SchedReadWrite AliasRW = alias;
   SchedMachineModel SchedModel = ?;
 }
+
+// Allow the definition of processor register files for register renaming
+// purposes.
+//
+// Each processor register file declares:
+//  - The set of registers that can be renamed.
+//  - The number of physical registers which can be used for register renaming
+//    purpose.
+//  - The cost of a register rename.
+//
+// The cost of a rename is the number of physical registers allocated by the
+// register alias table to map the new definition. By default, register can be
+// renamed at the cost of a single physical register.  Note that register costs
+// are defined at register class granularity (see field `Costs`).
+//
+// The set of registers that are subject to register renaming is declared using
+// a list of register classes (see field `RegClasses`). An empty list of
+// register classes means: all the logical registers defined by the target can
+// be fully renamed.
+//
+// A register R can be renamed if its register class appears in the `RegClasses`
+// set. When R is written, a new alias is allocated at the cost of one or more
+// physical registers; as a result, false dependencies on R are removed.
+//
+// A sub-register V of register R is implicitly part of the same register file.
+// However, V is only renamed if its register class is part of `RegClasses`.
+// Otherwise, the processor keeps it (as well as any other different part
+// of R) together with R, and a write of V always causes a compulsory read of R.
+//
+// This is what happens for example on AMD processors (at least from Bulldozer
+// onwards), where AL and AH are not treated as independent from AX, and AX is
+// not treated as independent from EAX. A write to AL has an implicity false
+// dependency on the last write to EAX (or a portion of EAX).  As a consequence,
+// a write to AL cannot go in parallel with a write to AH.
+//
+// There is no false dependency if the partial register write belongs to a
+// register class that is in `RegClasses`.
+// There is also no penalty for writes that "clear the content a super-register"
+// (see MC/MCInstrAnalysis.h - method MCInstrAnalysis::clearsSuperRegisters()).
+// On x86-64, 32-bit GPR writes implicitly zero the upper half of the underlying
+// physical register, effectively removing any false dependencies with the
+// previous register definition.
+//
+// TODO: This implementation assumes that there is no limit in the number of
+// renames per cycle, which might not be true for all hardware or register
+// classes. Also, there is no limit to how many times the same logical register
+// can be renamed during the same cycle.
+//
+// TODO: we don't currently model merge penalties for the case where a write to
+// a part of a register is followed by a read from a larger part of the same
+// register. On some Intel chips, different parts of a GPR can be stored in
+// different physical registers. However, there is a cost to pay for when the
+// partial write is combined with the previous super-register definition.  We
+// should add support for these cases, and correctly model merge problems with
+// partial register accesses.
+class RegisterFile<int numPhysRegs, list<RegisterClass> Classes = [],
+                   list<int> Costs = []> {
+  list<RegisterClass> RegClasses = Classes;
+  list<int> RegCosts = Costs;
+  int NumPhysRegs = numPhysRegs;
+  SchedMachineModel SchedModel = ?;
+}
+
+// Describe the retire control unit.
+// A retire control unit specifies the size of the reorder buffer, as well as
+// the maximum number of opcodes that can be retired every cycle.
+// A value less-than-or-equal-to zero for field 'ReorderBufferSize' means: "the
+// size is unknown". The idea is that external tools can fall-back to using
+// field MicroOpBufferSize in SchedModel if the reorder buffer size is unknown.
+// A zero or negative value for field 'MaxRetirePerCycle' means "no
+// restrictions on the number of instructions retired per cycle".
+// Models can optionally specify up to one instance of RetireControlUnit per
+// scheduling model.
+class RetireControlUnit<int bufferSize, int retirePerCycle> {
+  int ReorderBufferSize = bufferSize;
+  int MaxRetirePerCycle = retirePerCycle;
+  SchedMachineModel SchedModel = ?;
+}
+
+// Allow the definition of hardware counters.
+class PfmCounter {
+  SchedMachineModel SchedModel = ?;
+}
+
+// Each processor can define how to measure cycles by defining a
+// PfmCycleCounter.
+class PfmCycleCounter<string counter> : PfmCounter {
+  string Counter = counter;
+}
+
+// Each ProcResourceUnits can define how to measure issued uops by defining
+// a PfmIssueCounter.
+class PfmIssueCounter<ProcResourceUnits resource, list<string> counters>
+    : PfmCounter{
+  // The resource units on which uops are issued.
+  ProcResourceUnits Resource = resource;
+  // The list of counters that measure issue events.
+  list<string> Counters = counters;
+}
diff --git a/linux-x64/clang/include/llvm/Target/TargetSelectionDAG.td b/linux-x64/clang/include/llvm/Target/TargetSelectionDAG.td
index 7ba8f7e..b4debef 100644
--- a/linux-x64/clang/include/llvm/Target/TargetSelectionDAG.td
+++ b/linux-x64/clang/include/llvm/Target/TargetSelectionDAG.td
@@ -615,14 +615,18 @@
 // compact and readable.
 //
 
-/// PatFrag - Represents a pattern fragment.  This can match something on the
-/// DAG, from a single node to multiple nested other fragments.
+/// PatFrags - Represents a set of pattern fragments.  Each single fragment
+/// can match something on the DAG, from a single node to multiple nested other
+/// fragments.   The whole set of fragments matches if any of the single
+/// fragemnts match.  This allows e.g. matching and "add with overflow" and
+/// a regular "add" with the same fragment set.
 ///
-class PatFrag<dag ops, dag frag, code pred = [{}],
-              SDNodeXForm xform = NOOP_SDNodeXForm> : SDPatternOperator {
+class PatFrags<dag ops, list<dag> frags, code pred = [{}],
+               SDNodeXForm xform = NOOP_SDNodeXForm> : SDPatternOperator {
   dag Operands = ops;
-  dag Fragment = frag;
+  list<dag> Fragments = frags;
   code PredicateCode = pred;
+  code GISelPredicateCode = [{}];
   code ImmediateCode = [{}];
   SDNodeXForm OperandTransform = xform;
 
@@ -681,6 +685,11 @@
   ValueType ScalarMemoryVT = ?;
 }
 
+// PatFrag - A version of PatFrags matching only a single fragment.
+class PatFrag<dag ops, dag frag, code pred = [{}],
+              SDNodeXForm xform = NOOP_SDNodeXForm>
+  : PatFrags<ops, [frag], pred, xform>;
+
 // OutPatFrag is a pattern fragment that is used as part of an output pattern
 // (not an input pattern). These do not have predicates or transforms, but are
 // used to avoid repeated subexpressions in output patterns.
@@ -1058,6 +1067,15 @@
   let MemoryVT = f32;
 }
 
+def nonvolatile_load : PatFrag<(ops node:$ptr),
+                               (load node:$ptr), [{
+  return !cast<LoadSDNode>(N)->isVolatile();
+}]>;
+def nonvolatile_store : PatFrag<(ops node:$val, node:$ptr),
+                                (store node:$val, node:$ptr), [{
+  return !cast<StoreSDNode>(N)->isVolatile();
+}]>;
+
 // nontemporal store fragments.
 def nontemporalstore : PatFrag<(ops node:$val, node:$ptr),
                                (store node:$val, node:$ptr), [{
diff --git a/linux-x64/clang/include/llvm/Testing/Support/Error.h b/linux-x64/clang/include/llvm/Testing/Support/Error.h
index 50889b9..0e5b540 100644
--- a/linux-x64/clang/include/llvm/Testing/Support/Error.h
+++ b/linux-x64/clang/include/llvm/Testing/Support/Error.h
@@ -38,7 +38,7 @@
 
   bool MatchAndExplain(const ExpectedHolder<T> &Holder,
                        testing::MatchResultListener *listener) const override {
-    if (!Holder.Success)
+    if (!Holder.Success())
       return false;
 
     bool result = Matcher.MatchAndExplain(*Holder.Exp, listener);
@@ -82,6 +82,53 @@
   M Matcher;
 };
 
+template <typename InfoT>
+class ErrorMatchesMono : public testing::MatcherInterface<const ErrorHolder &> {
+public:
+  explicit ErrorMatchesMono(Optional<testing::Matcher<InfoT &>> Matcher)
+      : Matcher(std::move(Matcher)) {}
+
+  bool MatchAndExplain(const ErrorHolder &Holder,
+                       testing::MatchResultListener *listener) const override {
+    if (Holder.Success())
+      return false;
+
+    if (Holder.Infos.size() > 1) {
+      *listener << "multiple errors";
+      return false;
+    }
+
+    auto &Info = *Holder.Infos[0];
+    if (!Info.isA<InfoT>()) {
+      *listener << "Error was not of given type";
+      return false;
+    }
+
+    if (!Matcher)
+      return true;
+
+    return Matcher->MatchAndExplain(static_cast<InfoT &>(Info), listener);
+  }
+
+  void DescribeTo(std::ostream *OS) const override {
+    *OS << "failed with Error of given type";
+    if (Matcher) {
+      *OS << " and the error ";
+      Matcher->DescribeTo(OS);
+    }
+  }
+
+  void DescribeNegationTo(std::ostream *OS) const override {
+    *OS << "succeeded or did not fail with the error of given type";
+    if (Matcher) {
+      *OS << " or the error ";
+      Matcher->DescribeNegationTo(OS);
+    }
+  }
+
+private:
+  Optional<testing::Matcher<InfoT &>> Matcher;
+};
 } // namespace detail
 
 #define EXPECT_THAT_ERROR(Err, Matcher)                                        \
@@ -94,8 +141,19 @@
 #define ASSERT_THAT_EXPECTED(Err, Matcher)                                     \
   ASSERT_THAT(llvm::detail::TakeExpected(Err), Matcher)
 
-MATCHER(Succeeded, "") { return arg.Success; }
-MATCHER(Failed, "") { return !arg.Success; }
+MATCHER(Succeeded, "") { return arg.Success(); }
+MATCHER(Failed, "") { return !arg.Success(); }
+
+template <typename InfoT>
+testing::Matcher<const detail::ErrorHolder &> Failed() {
+  return MakeMatcher(new detail::ErrorMatchesMono<InfoT>(None));
+}
+
+template <typename InfoT, typename M>
+testing::Matcher<const detail::ErrorHolder &> Failed(M Matcher) {
+  return MakeMatcher(new detail::ErrorMatchesMono<InfoT>(
+      testing::SafeMatcherCast<InfoT &>(Matcher)));
+}
 
 template <typename M>
 detail::ValueMatchesPoly<M> HasValue(M Matcher) {
diff --git a/linux-x64/clang/include/llvm/Testing/Support/SupportHelpers.h b/linux-x64/clang/include/llvm/Testing/Support/SupportHelpers.h
index d7f0c71..96264ac 100644
--- a/linux-x64/clang/include/llvm/Testing/Support/SupportHelpers.h
+++ b/linux-x64/clang/include/llvm/Testing/Support/SupportHelpers.h
@@ -17,8 +17,9 @@
 namespace llvm {
 namespace detail {
 struct ErrorHolder {
-  bool Success;
-  std::string Message;
+  std::vector<std::shared_ptr<ErrorInfoBase>> Infos;
+
+  bool Success() const { return Infos.empty(); }
 };
 
 template <typename T> struct ExpectedHolder : public ErrorHolder {
@@ -29,15 +30,22 @@
 };
 
 inline void PrintTo(const ErrorHolder &Err, std::ostream *Out) {
-  *Out << (Err.Success ? "succeeded" : "failed");
-  if (!Err.Success) {
-    *Out << "  (" << StringRef(Err.Message).trim().str() << ")";
+  raw_os_ostream OS(*Out);
+  OS << (Err.Success() ? "succeeded" : "failed");
+  if (!Err.Success()) {
+    const char *Delim = "  (";
+    for (const auto &Info : Err.Infos) {
+      OS << Delim;
+      Delim = "; ";
+      Info->log(OS);
+    }
+    OS << ")";
   }
 }
 
 template <typename T>
 void PrintTo(const ExpectedHolder<T> &Item, std::ostream *Out) {
-  if (Item.Success) {
+  if (Item.Success()) {
     *Out << "succeeded with value " << ::testing::PrintToString(*Item.Exp);
   } else {
     PrintTo(static_cast<const ErrorHolder &>(Item), Out);
diff --git a/linux-x64/clang/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h b/linux-x64/clang/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h
index a318d18..f970acd 100644
--- a/linux-x64/clang/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h
+++ b/linux-x64/clang/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h
@@ -10,8 +10,8 @@
 ///
 /// This file provides the primary interface to the aggressive instcombine pass.
 /// This pass is suitable for use in the new pass manager. For a pass that works
-/// with the legacy pass manager, please look for
-/// \c createAggressiveInstCombinerPass() in Scalar.h.
+/// with the legacy pass manager, please use
+/// \c createAggressiveInstCombinerPass().
 ///
 //===----------------------------------------------------------------------===//
 
@@ -29,6 +29,13 @@
 public:
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
+
+//===----------------------------------------------------------------------===//
+//
+// AggressiveInstCombiner - Combine expression patterns to form expressions with
+// fewer, simple instructions. This pass does not modify the CFG.
+//
+FunctionPass *createAggressiveInstCombinerPass();
 }
 
 #endif
diff --git a/linux-x64/clang/include/llvm/Transforms/IPO.h b/linux-x64/clang/include/llvm/Transforms/IPO.h
index 1514335..ebc76bf 100644
--- a/linux-x64/clang/include/llvm/Transforms/IPO.h
+++ b/linux-x64/clang/include/llvm/Transforms/IPO.h
@@ -222,7 +222,7 @@
   Export, ///< Export information to summary.
 };
 
-/// \brief This pass lowers type metadata and the llvm.type.test intrinsic to
+/// This pass lowers type metadata and the llvm.type.test intrinsic to
 /// bitsets.
 ///
 /// The behavior depends on the summary arguments:
@@ -235,10 +235,10 @@
 ModulePass *createLowerTypeTestsPass(ModuleSummaryIndex *ExportSummary,
                                      const ModuleSummaryIndex *ImportSummary);
 
-/// \brief This pass export CFI checks for use by external modules.
+/// This pass export CFI checks for use by external modules.
 ModulePass *createCrossDSOCFIPass();
 
-/// \brief This pass implements whole-program devirtualization using type
+/// This pass implements whole-program devirtualization using type
 /// metadata.
 ///
 /// The behavior depends on the summary arguments:
diff --git a/linux-x64/clang/include/llvm/Transforms/IPO/FunctionImport.h b/linux-x64/clang/include/llvm/Transforms/IPO/FunctionImport.h
index 5fedde1..120a34e 100644
--- a/linux-x64/clang/include/llvm/Transforms/IPO/FunctionImport.h
+++ b/linux-x64/clang/include/llvm/Transforms/IPO/FunctionImport.h
@@ -33,11 +33,17 @@
 /// based on the provided summary informations.
 class FunctionImporter {
 public:
-  /// Set of functions to import from a source module. Each entry is a map
-  /// containing all the functions to import for a source module.
-  /// The keys is the GUID identifying a function to import, and the value
-  /// is the threshold applied when deciding to import it.
-  using FunctionsToImportTy = std::map<GlobalValue::GUID, unsigned>;
+  /// Set of functions to import from a source module. Each entry is a set
+  /// containing all the GUIDs of all functions to import for a source module.
+  using FunctionsToImportTy = std::unordered_set<GlobalValue::GUID>;
+
+  /// Map of callee GUID considered for import into a given module to a pair
+  /// consisting of the largest threshold applied when deciding whether to
+  /// import it and, if we decided to import, a pointer to the summary instance
+  /// imported. If we decided not to import, the summary will be nullptr.
+  using ImportThresholdsTy =
+      DenseMap<GlobalValue::GUID,
+               std::pair<unsigned, const GlobalValueSummary *>>;
 
   /// The map contains an entry for every module to import from, the key being
   /// the module identifier to pass to the ModuleLoader. The value is the set of
@@ -143,9 +149,9 @@
     std::map<std::string, GVSummaryMapTy> &ModuleToSummariesForIndex);
 
 /// Emit into \p OutputFilename the files module \p ModulePath will import from.
-std::error_code
-EmitImportsFiles(StringRef ModulePath, StringRef OutputFilename,
-                 const FunctionImporter::ImportMapTy &ModuleImports);
+std::error_code EmitImportsFiles(
+    StringRef ModulePath, StringRef OutputFilename,
+    const std::map<std::string, GVSummaryMapTy> &ModuleToSummariesForIndex);
 
 /// Resolve WeakForLinker values in \p TheModule based on the information
 /// recorded in the summaries during global summary-based analysis.
diff --git a/linux-x64/clang/include/llvm/Transforms/IPO/Inliner.h b/linux-x64/clang/include/llvm/Transforms/IPO/Inliner.h
index eda8cf4..610e450 100644
--- a/linux-x64/clang/include/llvm/Transforms/IPO/Inliner.h
+++ b/linux-x64/clang/include/llvm/Transforms/IPO/Inliner.h
@@ -96,12 +96,17 @@
 public:
   InlinerPass(InlineParams Params = getInlineParams())
       : Params(std::move(Params)) {}
+  ~InlinerPass();
+  InlinerPass(InlinerPass &&Arg)
+      : Params(std::move(Arg.Params)),
+        ImportedFunctionsStats(std::move(Arg.ImportedFunctionsStats)) {}
 
   PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
                         LazyCallGraph &CG, CGSCCUpdateResult &UR);
 
 private:
   InlineParams Params;
+  std::unique_ptr<ImportedFunctionsInliningStatistics> ImportedFunctionsStats;
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/Transforms/IPO/LowerTypeTests.h b/linux-x64/clang/include/llvm/Transforms/IPO/LowerTypeTests.h
index 3bcfe65..bc44838 100644
--- a/linux-x64/clang/include/llvm/Transforms/IPO/LowerTypeTests.h
+++ b/linux-x64/clang/include/llvm/Transforms/IPO/LowerTypeTests.h
@@ -26,6 +26,7 @@
 namespace llvm {
 
 class Module;
+class ModuleSummaryIndex;
 class raw_ostream;
 
 namespace lowertypetests {
@@ -197,6 +198,11 @@
 
 class LowerTypeTestsPass : public PassInfoMixin<LowerTypeTestsPass> {
 public:
+  ModuleSummaryIndex *ExportSummary;
+  const ModuleSummaryIndex *ImportSummary;
+  LowerTypeTestsPass(ModuleSummaryIndex *ExportSummary,
+                     const ModuleSummaryIndex *ImportSummary)
+      : ExportSummary(ExportSummary), ImportSummary(ImportSummary) {}
   PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
 };
 
diff --git a/linux-x64/clang/include/llvm/Transforms/IPO/WholeProgramDevirt.h b/linux-x64/clang/include/llvm/Transforms/IPO/WholeProgramDevirt.h
index 1aa4c6f..bf2c79b 100644
--- a/linux-x64/clang/include/llvm/Transforms/IPO/WholeProgramDevirt.h
+++ b/linux-x64/clang/include/llvm/Transforms/IPO/WholeProgramDevirt.h
@@ -28,6 +28,7 @@
 template <typename T> class MutableArrayRef;
 class Function;
 class GlobalVariable;
+class ModuleSummaryIndex;
 
 namespace wholeprogramdevirt {
 
@@ -218,6 +219,13 @@
 } // end namespace wholeprogramdevirt
 
 struct WholeProgramDevirtPass : public PassInfoMixin<WholeProgramDevirtPass> {
+  ModuleSummaryIndex *ExportSummary;
+  const ModuleSummaryIndex *ImportSummary;
+  WholeProgramDevirtPass(ModuleSummaryIndex *ExportSummary,
+                         const ModuleSummaryIndex *ImportSummary)
+      : ExportSummary(ExportSummary), ImportSummary(ImportSummary) {
+    assert(!(ExportSummary && ImportSummary));
+  }
   PreservedAnalyses run(Module &M, ModuleAnalysisManager &);
 };
 
diff --git a/linux-x64/clang/include/llvm/Transforms/InstCombine/InstCombine.h b/linux-x64/clang/include/llvm/Transforms/InstCombine/InstCombine.h
index 6bd22dc..ab25fe0 100644
--- a/linux-x64/clang/include/llvm/Transforms/InstCombine/InstCombine.h
+++ b/linux-x64/clang/include/llvm/Transforms/InstCombine/InstCombine.h
@@ -10,8 +10,7 @@
 ///
 /// This file provides the primary interface to the instcombine pass. This pass
 /// is suitable for use in the new pass manager. For a pass that works with the
-/// legacy pass manager, please look for \c createInstructionCombiningPass() in
-/// Scalar.h.
+/// legacy pass manager, use \c createInstructionCombiningPass().
 ///
 //===----------------------------------------------------------------------===//
 
@@ -37,7 +36,7 @@
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief The legacy pass manager's instcombine pass.
+/// The legacy pass manager's instcombine pass.
 ///
 /// This is a basic whole-function wrapper around the instcombine utility. It
 /// will try to combine all instructions in the function.
@@ -56,6 +55,20 @@
   void getAnalysisUsage(AnalysisUsage &AU) const override;
   bool runOnFunction(Function &F) override;
 };
+
+//===----------------------------------------------------------------------===//
+//
+// InstructionCombining - Combine instructions to form fewer, simple
+// instructions. This pass does not modify the CFG, and has a tendency to make
+// instructions dead, so a subsequent DCE pass is useful.
+//
+// This pass combines things like:
+//    %Y = add int 1, %X
+//    %Z = add int 1, %Y
+// into:
+//    %Z = add int 2, %X
+//
+FunctionPass *createInstructionCombiningPass(bool ExpensiveCombines = true);
 }
 
 #endif
diff --git a/linux-x64/clang/include/llvm/Transforms/InstCombine/InstCombineWorklist.h b/linux-x64/clang/include/llvm/Transforms/InstCombine/InstCombineWorklist.h
index 271e891..f860b4b 100644
--- a/linux-x64/clang/include/llvm/Transforms/InstCombine/InstCombineWorklist.h
+++ b/linux-x64/clang/include/llvm/Transforms/InstCombine/InstCombineWorklist.h
@@ -40,7 +40,7 @@
   /// in it.
   void Add(Instruction *I) {
     if (WorklistMap.insert(std::make_pair(I, Worklist.size())).second) {
-      DEBUG(dbgs() << "IC: ADD: " << *I << '\n');
+      LLVM_DEBUG(dbgs() << "IC: ADD: " << *I << '\n');
       Worklist.push_back(I);
     }
   }
@@ -57,7 +57,8 @@
     assert(Worklist.empty() && "Worklist must be empty to add initial group");
     Worklist.reserve(List.size()+16);
     WorklistMap.reserve(List.size());
-    DEBUG(dbgs() << "IC: ADDING: " << List.size() << " instrs to worklist\n");
+    LLVM_DEBUG(dbgs() << "IC: ADDING: " << List.size()
+                      << " instrs to worklist\n");
     unsigned Idx = 0;
     for (Instruction *I : reverse(List)) {
       WorklistMap.insert(std::make_pair(I, Idx++));
diff --git a/linux-x64/clang/include/llvm/Transforms/Instrumentation.h b/linux-x64/clang/include/llvm/Transforms/Instrumentation.h
index b1e13f1..4a346c8 100644
--- a/linux-x64/clang/include/llvm/Transforms/Instrumentation.h
+++ b/linux-x64/clang/include/llvm/Transforms/Instrumentation.h
@@ -133,7 +133,8 @@
 FunctionPass *createMemorySanitizerPass(int TrackOrigins = 0,
                                         bool Recover = false);
 
-FunctionPass *createHWAddressSanitizerPass(bool Recover = false);
+FunctionPass *createHWAddressSanitizerPass(bool CompileKernel = false,
+                                           bool Recover = false);
 
 // Insert ThreadSanitizer (race detection) instrumentation
 FunctionPass *createThreadSanitizerPass();
@@ -186,7 +187,7 @@
 ModulePass *createSanitizerCoverageModulePass(
     const SanitizerCoverageOptions &Options = SanitizerCoverageOptions());
 
-/// \brief Calculate what to divide by to scale counts.
+/// Calculate what to divide by to scale counts.
 ///
 /// Given the maximum count, calculate a divisor that will scale all the
 /// weights to strictly less than std::numeric_limits<uint32_t>::max().
@@ -196,7 +197,7 @@
              : MaxCount / std::numeric_limits<uint32_t>::max() + 1;
 }
 
-/// \brief Scale an individual branch count.
+/// Scale an individual branch count.
 ///
 /// Scale a 64-bit weight down to 32-bits using \c Scale.
 ///
diff --git a/linux-x64/clang/include/llvm/Transforms/Instrumentation/CGProfile.h b/linux-x64/clang/include/llvm/Transforms/Instrumentation/CGProfile.h
new file mode 100644
index 0000000..c06c1a2
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Transforms/Instrumentation/CGProfile.h
@@ -0,0 +1,31 @@
+//===- Transforms/Instrumentation/CGProfile.h -------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+/// \file
+/// This file provides the interface for LLVM's Call Graph Profile pass.
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TRANSFORMS_CGPROFILE_H
+#define LLVM_TRANSFORMS_CGPROFILE_H
+
+#include "llvm/ADT/MapVector.h"
+#include "llvm/IR/PassManager.h"
+
+namespace llvm {
+class CGProfilePass : public PassInfoMixin<CGProfilePass> {
+public:
+  PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
+
+private:
+  void addModuleFlags(
+      Module &M,
+      MapVector<std::pair<Function *, Function *>, uint64_t> &Counts) const;
+};
+} // end namespace llvm
+
+#endif // LLVM_TRANSFORMS_CGPROFILE_H
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar.h b/linux-x64/clang/include/llvm/Transforms/Scalar.h
index 84c7bd4..9491e1b 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar.h
@@ -80,7 +80,6 @@
 // values.
 FunctionPass *createCallSiteSplittingPass();
 
-
 //===----------------------------------------------------------------------===//
 //
 // AggressiveDCE - This pass uses the SSA based Aggressive DCE algorithm.  This
@@ -89,7 +88,6 @@
 //
 FunctionPass *createAggressiveDCEPass();
 
-
 //===----------------------------------------------------------------------===//
 //
 // GuardWidening - An optimization over the @llvm.experimental.guard intrinsic
@@ -101,6 +99,16 @@
 
 //===----------------------------------------------------------------------===//
 //
+// LoopGuardWidening - Analogous to the GuardWidening pass, but restricted to a
+// single loop at a time for use within a LoopPassManager.  Desired effect is
+// to widen guards into preheader or a single guard within loop if that's not
+// possible.
+//
+Pass *createLoopGuardWideningPass();
+
+
+//===----------------------------------------------------------------------===//
+//
 // BitTrackingDCE - This pass uses a bit-tracking DCE algorithm in order to
 // remove computations of dead bits.
 //
@@ -128,27 +136,6 @@
 
 //===----------------------------------------------------------------------===//
 //
-// InstructionCombining - Combine instructions to form fewer, simple
-// instructions. This pass does not modify the CFG, and has a tendency to make
-// instructions dead, so a subsequent DCE pass is useful.
-//
-// This pass combines things like:
-//    %Y = add int 1, %X
-//    %Z = add int 1, %Y
-// into:
-//    %Z = add int 2, %X
-//
-FunctionPass *createInstructionCombiningPass(bool ExpensiveCombines = true);
-
-//===----------------------------------------------------------------------===//
-//
-// AggressiveInstCombiner - Combine expression patterns to form expressions with
-// fewer, simple instructions. This pass does not modify the CFG.
-//
-FunctionPass *createAggressiveInstCombinerPass();
-
-//===----------------------------------------------------------------------===//
-//
 // LICM - This pass is a loop invariant code motion and memory promotion pass.
 //
 Pass *createLICMPass();
@@ -189,6 +176,12 @@
 
 //===----------------------------------------------------------------------===//
 //
+// LoopInstSimplify - This pass simplifies instructions in a loop's body.
+//
+Pass *createLoopInstSimplifyPass();
+
+//===----------------------------------------------------------------------===//
+//
 // LoopUnroll - This pass is a simple loop unrolling pass.
 //
 Pass *createLoopUnrollPass(int OptLevel = 2, int Threshold = -1, int Count = -1,
@@ -199,6 +192,12 @@
 
 //===----------------------------------------------------------------------===//
 //
+// LoopUnrollAndJam - This pass is a simple loop unroll and jam pass.
+//
+Pass *createLoopUnrollAndJamPass(int OptLevel = 2);
+
+//===----------------------------------------------------------------------===//
+//
 // LoopReroll - This pass is a simple loop rerolling pass.
 //
 Pass *createLoopRerollPass();
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/CallSiteSplitting.h b/linux-x64/clang/include/llvm/Transforms/Scalar/CallSiteSplitting.h
index 5ab951a..b2ca2a1 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/CallSiteSplitting.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/CallSiteSplitting.h
@@ -21,7 +21,7 @@
 namespace llvm {
 
 struct CallSiteSplittingPass : PassInfoMixin<CallSiteSplittingPass> {
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/ConstantHoisting.h b/linux-x64/clang/include/llvm/Transforms/Scalar/ConstantHoisting.h
index d3322dc..84589bf 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/ConstantHoisting.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/ConstantHoisting.h
@@ -60,7 +60,7 @@
 /// clients.
 namespace consthoist {
 
-/// \brief Keeps track of the user of a constant and the operand index where the
+/// Keeps track of the user of a constant and the operand index where the
 /// constant is used.
 struct ConstantUser {
   Instruction *Inst;
@@ -71,7 +71,7 @@
 
 using ConstantUseListType = SmallVector<ConstantUser, 8>;
 
-/// \brief Keeps track of a constant candidate and its uses.
+/// Keeps track of a constant candidate and its uses.
 struct ConstantCandidate {
   ConstantUseListType Uses;
   ConstantInt *ConstInt;
@@ -79,14 +79,14 @@
 
   ConstantCandidate(ConstantInt *ConstInt) : ConstInt(ConstInt) {}
 
-  /// \brief Add the user to the use list and update the cost.
+  /// Add the user to the use list and update the cost.
   void addUser(Instruction *Inst, unsigned Idx, unsigned Cost) {
     CumulativeCost += Cost;
     Uses.push_back(ConstantUser(Inst, Idx));
   }
 };
 
-/// \brief This represents a constant that has been rebased with respect to a
+/// This represents a constant that has been rebased with respect to a
 /// base constant. The difference to the base constant is recorded in Offset.
 struct RebasedConstantInfo {
   ConstantUseListType Uses;
@@ -98,7 +98,7 @@
 
 using RebasedConstantListType = SmallVector<RebasedConstantInfo, 4>;
 
-/// \brief A base constant and all its rebased constants.
+/// A base constant and all its rebased constants.
 struct ConstantInfo {
   ConstantInt *BaseConstant;
   RebasedConstantListType RebasedConstants;
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/EarlyCSE.h b/linux-x64/clang/include/llvm/Transforms/Scalar/EarlyCSE.h
index dca3b2d..faf03a4 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/EarlyCSE.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/EarlyCSE.h
@@ -21,7 +21,7 @@
 
 class Function;
 
-/// \brief A simple and fast domtree-based CSE pass.
+/// A simple and fast domtree-based CSE pass.
 ///
 /// This pass does a simple depth-first walk over the dominator tree,
 /// eliminating trivially redundant instructions and using instsimplify to
@@ -31,7 +31,7 @@
 struct EarlyCSEPass : PassInfoMixin<EarlyCSEPass> {
   EarlyCSEPass(bool UseMemorySSA = false) : UseMemorySSA(UseMemorySSA) {}
 
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 
   bool UseMemorySSA;
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/GVN.h b/linux-x64/clang/include/llvm/Transforms/Scalar/GVN.h
index 440d3f6..319bd56 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/GVN.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/GVN.h
@@ -28,7 +28,7 @@
 #include "llvm/IR/PassManager.h"
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/Compiler.h"
-#include "llvm/Transforms/Utils/OrderedInstructions.h"
+#include "llvm/Transforms/Utils/ImplicitControlFlowTracking.h"
 #include <cstdint>
 #include <utility>
 #include <vector>
@@ -69,7 +69,7 @@
 public:
   struct Expression;
 
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 
   /// This removes the specified instruction from
@@ -158,11 +158,8 @@
   AssumptionCache *AC;
   SetVector<BasicBlock *> DeadBlocks;
   OptimizationRemarkEmitter *ORE;
-  // Maps a block to the topmost instruction with implicit control flow in it.
-  DenseMap<const BasicBlock *, const Instruction *>
-      FirstImplicitControlFlowInsts;
+  ImplicitControlFlowTracking *ICF;
 
-  OrderedInstructions *OI;
   ValueTable VN;
 
   /// A mapping from value numbers to lists of Value*'s that
@@ -291,17 +288,17 @@
 /// loads are eliminated by the pass.
 FunctionPass *createGVNPass(bool NoLoads = false);
 
-/// \brief A simple and fast domtree-based GVN pass to hoist common expressions
+/// A simple and fast domtree-based GVN pass to hoist common expressions
 /// from sibling branches.
 struct GVNHoistPass : PassInfoMixin<GVNHoistPass> {
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Uses an "inverted" value numbering to decide the similarity of
+/// Uses an "inverted" value numbering to decide the similarity of
 /// expressions and sinks similar expressions into successors.
 struct GVNSinkPass : PassInfoMixin<GVNSinkPass> {
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/GVNExpression.h b/linux-x64/clang/include/llvm/Transforms/Scalar/GVNExpression.h
index 99dae15..8b34696 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/GVNExpression.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/GVNExpression.h
@@ -159,7 +159,7 @@
     return ET > ET_BasicStart && ET < ET_BasicEnd;
   }
 
-  /// \brief Swap two operands. Used during GVN to put commutative operands in
+  /// Swap two operands. Used during GVN to put commutative operands in
   /// order.
   void swapOperands(unsigned First, unsigned Second) {
     std::swap(Operands[First], Operands[Second]);
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/InstSimplifyPass.h b/linux-x64/clang/include/llvm/Transforms/Scalar/InstSimplifyPass.h
new file mode 100644
index 0000000..da79a13
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/InstSimplifyPass.h
@@ -0,0 +1,46 @@
+//===- InstSimplifyPass.h ---------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+/// \file
+///
+/// Defines passes for running instruction simplification across chunks of IR.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TRANSFORMS_UTILS_INSTSIMPLIFYPASS_H
+#define LLVM_TRANSFORMS_UTILS_INSTSIMPLIFYPASS_H
+
+#include "llvm/IR/PassManager.h"
+
+namespace llvm {
+
+class FunctionPass;
+
+/// Run instruction simplification across each instruction in the function.
+///
+/// Instruction simplification has useful constraints in some contexts:
+/// - It will never introduce *new* instructions.
+/// - There is no need to iterate to a fixed point.
+///
+/// Many passes use instruction simplification as a library facility, but it may
+/// also be useful (in tests and other contexts) to have access to this very
+/// restricted transform at a pass granularity. However, for a much more
+/// powerful and comprehensive peephole optimization engine, see the
+/// `instcombine` pass instead.
+class InstSimplifyPass : public PassInfoMixin<InstSimplifyPass> {
+public:
+  PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
+};
+
+/// Create a legacy pass that does instruction simplification on each
+/// instruction in a function.
+FunctionPass *createInstSimplifyLegacyPass();
+
+} // end namespace llvm
+
+#endif // LLVM_TRANSFORMS_UTILS_INSTSIMPLIFYPASS_H
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/JumpThreading.h b/linux-x64/clang/include/llvm/Transforms/Scalar/JumpThreading.h
index b3493a2..c8376dd 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/JumpThreading.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/JumpThreading.h
@@ -23,6 +23,7 @@
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/Analysis/BlockFrequencyInfo.h"
 #include "llvm/Analysis/BranchProbabilityInfo.h"
+#include "llvm/IR/DomTreeUpdater.h"
 #include "llvm/IR/ValueHandle.h"
 #include <memory>
 #include <utility>
@@ -34,7 +35,7 @@
 class BranchInst;
 class CmpInst;
 class Constant;
-class DeferredDominance;
+class DomTreeUpdater;
 class Function;
 class Instruction;
 class IntrinsicInst;
@@ -78,7 +79,7 @@
   TargetLibraryInfo *TLI;
   LazyValueInfo *LVI;
   AliasAnalysis *AA;
-  DeferredDominance *DDT;
+  DomTreeUpdater *DTU;
   std::unique_ptr<BlockFrequencyInfo> BFI;
   std::unique_ptr<BranchProbabilityInfo> BPI;
   bool HasProfileData = false;
@@ -109,8 +110,8 @@
 
   // Glue for old PM.
   bool runImpl(Function &F, TargetLibraryInfo *TLI_, LazyValueInfo *LVI_,
-               AliasAnalysis *AA_, DeferredDominance *DDT_,
-               bool HasProfileData_, std::unique_ptr<BlockFrequencyInfo> BFI_,
+               AliasAnalysis *AA_, DomTreeUpdater *DTU_, bool HasProfileData_,
+               std::unique_ptr<BlockFrequencyInfo> BFI_,
                std::unique_ptr<BranchProbabilityInfo> BPI_);
 
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h b/linux-x64/clang/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
index 5eddd5f..e1b3379 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
@@ -15,7 +15,7 @@
 
 namespace llvm {
 
-/// \brief Printer pass for the \c LoopAccessInfo results.
+/// Printer pass for the \c LoopAccessInfo results.
 class LoopAccessInfoPrinterPass
     : public PassInfoMixin<LoopAccessInfoPrinterPass> {
   raw_ostream &OS;
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/LoopDataPrefetch.h b/linux-x64/clang/include/llvm/Transforms/Scalar/LoopDataPrefetch.h
index 12c7a03..e1ad67a 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/LoopDataPrefetch.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/LoopDataPrefetch.h
@@ -24,7 +24,7 @@
 public:
   LoopDataPrefetchPass() = default;
 
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/LoopInstSimplify.h b/linux-x64/clang/include/llvm/Transforms/Scalar/LoopInstSimplify.h
new file mode 100644
index 0000000..04dc79c
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/LoopInstSimplify.h
@@ -0,0 +1,34 @@
+//===- LoopInstSimplify.h - Loop Inst Simplify Pass -------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This pass performs lightweight instruction simplification on loop bodies.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TRANSFORMS_SCALAR_LOOPINSTSIMPLIFY_H
+#define LLVM_TRANSFORMS_SCALAR_LOOPINSTSIMPLIFY_H
+
+#include "llvm/Analysis/LoopAnalysisManager.h"
+#include "llvm/IR/PassManager.h"
+
+namespace llvm {
+
+class Loop;
+class LPMUpdater;
+
+/// Performs Loop Inst Simplify Pass.
+class LoopInstSimplifyPass : public PassInfoMixin<LoopInstSimplifyPass> {
+public:
+  PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
+                        LoopStandardAnalysisResults &AR, LPMUpdater &U);
+};
+
+} // end namespace llvm
+
+#endif // LLVM_TRANSFORMS_SCALAR_LOOPINSTSIMPLIFY_H
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/LoopPassManager.h b/linux-x64/clang/include/llvm/Transforms/Scalar/LoopPassManager.h
index 56a45ed..5f61c39 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/LoopPassManager.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/LoopPassManager.h
@@ -71,7 +71,7 @@
 extern template class PassManager<Loop, LoopAnalysisManager,
                                   LoopStandardAnalysisResults &, LPMUpdater &>;
 
-/// \brief The Loop pass manager.
+/// The Loop pass manager.
 ///
 /// See the documentation for the PassManager template for details. It runs
 /// a sequence of Loop passes over each Loop that the manager is run over. This
@@ -253,7 +253,7 @@
       : Worklist(Worklist), LAM(LAM) {}
 };
 
-/// \brief Adaptor that maps from a function to its loops.
+/// Adaptor that maps from a function to its loops.
 ///
 /// Designed to allow composition of a LoopPass(Manager) and a
 /// FunctionPassManager. Note that if this pass is constructed with a \c
@@ -270,7 +270,7 @@
     LoopCanonicalizationFPM.addPass(LCSSAPass());
   }
 
-  /// \brief Runs the loop passes across every loop in the function.
+  /// Runs the loop passes across every loop in the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM) {
     // Before we even compute any loop analyses, first run a miniature function
     // pass pipeline to put loops into their canonical form. Note that we can
@@ -381,7 +381,7 @@
   FunctionPassManager LoopCanonicalizationFPM;
 };
 
-/// \brief A function to deduce a loop pass type and wrap it in the templated
+/// A function to deduce a loop pass type and wrap it in the templated
 /// adaptor.
 template <typename LoopPassT>
 FunctionToLoopPassAdaptor<LoopPassT>
@@ -389,7 +389,7 @@
   return FunctionToLoopPassAdaptor<LoopPassT>(std::move(Pass), DebugLogging);
 }
 
-/// \brief Pass for printing a loop's contents as textual IR.
+/// Pass for printing a loop's contents as textual IR.
 class PrintLoopPass : public PassInfoMixin<PrintLoopPass> {
   raw_ostream &OS;
   std::string Banner;
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h b/linux-x64/clang/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
new file mode 100644
index 0000000..fc69aa3
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
@@ -0,0 +1,35 @@
+//===- LoopUnrollAndJamPass.h -----------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TRANSFORMS_SCALAR_LOOPUNROLLANDJAMPASS_H
+#define LLVM_TRANSFORMS_SCALAR_LOOPUNROLLANDJAMPASS_H
+
+#include "llvm/Analysis/LoopAnalysisManager.h"
+#include "llvm/Analysis/LoopInfo.h"
+#include "llvm/IR/PassManager.h"
+
+namespace llvm {
+
+class Loop;
+struct LoopStandardAnalysisResults;
+class LPMUpdater;
+
+/// A simple loop rotation transformation.
+class LoopUnrollAndJamPass : public PassInfoMixin<LoopUnrollAndJamPass> {
+  const int OptLevel;
+
+public:
+  explicit LoopUnrollAndJamPass(int OptLevel = 2) : OptLevel(OptLevel) {}
+  PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
+                        LoopStandardAnalysisResults &AR, LPMUpdater &U);
+};
+
+} // end namespace llvm
+
+#endif // LLVM_TRANSFORMS_SCALAR_LOOPUNROLLANDJAMPASS_H
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h b/linux-x64/clang/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h
index ab9dec0..b6ee652 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h
@@ -22,7 +22,7 @@
 namespace llvm {
 
 struct LowerExpectIntrinsicPass : PassInfoMixin<LowerExpectIntrinsicPass> {
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   ///
   /// This will lower all of the expect intrinsic calls in this function into
   /// branch weight metadata. That metadata will subsequently feed the analysis
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h b/linux-x64/clang/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h
index 3cad7bb..48df09c 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 //
 //! \file
-//! \brief This pass performs merges of loads and stores on both sides of a
+//! This pass performs merges of loads and stores on both sides of a
 //  diamond (hammock). It hoists the loads and sinks the stores.
 //
 // The algorithm iteratively hoists two loads to the same address out of a
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/NewGVN.h b/linux-x64/clang/include/llvm/Transforms/Scalar/NewGVN.h
index 05db255..3f75418 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/NewGVN.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/NewGVN.h
@@ -23,7 +23,7 @@
 
 class NewGVNPass : public PassInfoMixin<NewGVNPass> {
 public:
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, AnalysisManager<Function> &AM);
 };
 
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/Reassociate.h b/linux-x64/clang/include/llvm/Transforms/Scalar/Reassociate.h
index 9997dfa..ba7586d 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/Reassociate.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/Reassociate.h
@@ -29,6 +29,7 @@
 #include "llvm/IR/IRBuilder.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/ValueHandle.h"
+#include <deque>
 
 namespace llvm {
 
@@ -54,7 +55,7 @@
   return LHS.Rank > RHS.Rank; // Sort so that highest rank goes to start.
 }
 
-/// \brief Utility class representing a base and exponent pair which form one
+/// Utility class representing a base and exponent pair which form one
 /// factor of some product.
 struct Factor {
   Value *Base;
@@ -69,9 +70,14 @@
 
 /// Reassociate commutative expressions.
 class ReassociatePass : public PassInfoMixin<ReassociatePass> {
+public:
+  using OrderedSet =
+      SetVector<AssertingVH<Instruction>, std::deque<AssertingVH<Instruction>>>;
+
+protected:
   DenseMap<BasicBlock *, unsigned> RankMap;
   DenseMap<AssertingVH<Value>, unsigned> ValueRankMap;
-  SetVector<AssertingVH<Instruction>> RedoInsts;
+  OrderedSet RedoInsts;
 
   // Arbitrary, but prevents quadratic behavior.
   static const unsigned GlobalReassociateLimit = 10;
@@ -108,8 +114,7 @@
                      SmallVectorImpl<reassociate::ValueEntry> &Ops);
   Value *RemoveFactorFromExpression(Value *V, Value *Factor);
   void EraseInst(Instruction *I);
-  void RecursivelyEraseDeadInsts(Instruction *I,
-                                 SetVector<AssertingVH<Instruction>> &Insts);
+  void RecursivelyEraseDeadInsts(Instruction *I, OrderedSet &Insts);
   void OptimizeInst(Instruction *I);
   Instruction *canonicalizeNegConstExpr(Instruction *I);
   void BuildPairMap(ReversePostOrderTraversal<Function *> &RPOT);
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/SROA.h b/linux-x64/clang/include/llvm/Transforms/Scalar/SROA.h
index 4a321e7..b36c6f4 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/SROA.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/SROA.h
@@ -45,7 +45,7 @@
 
 } // end namespace sroa
 
-/// \brief An optimization pass providing Scalar Replacement of Aggregates.
+/// An optimization pass providing Scalar Replacement of Aggregates.
 ///
 /// This pass takes allocations which can be completely analyzed (that is, they
 /// don't escape) and tries to turn them into scalar SSA values. There are
@@ -68,7 +68,7 @@
   DominatorTree *DT = nullptr;
   AssumptionCache *AC = nullptr;
 
-  /// \brief Worklist of alloca instructions to simplify.
+  /// Worklist of alloca instructions to simplify.
   ///
   /// Each alloca in the function is added to this. Each new alloca formed gets
   /// added to it as well to recursively simplify unless that alloca can be
@@ -77,12 +77,12 @@
   /// already present to ensure it is re-visited.
   SetVector<AllocaInst *, SmallVector<AllocaInst *, 16>> Worklist;
 
-  /// \brief A collection of instructions to delete.
+  /// A collection of instructions to delete.
   /// We try to batch deletions to simplify code and make things a bit more
   /// efficient.
   SetVector<Instruction *, SmallVector<Instruction *, 8>> DeadInsts;
 
-  /// \brief Post-promotion worklist.
+  /// Post-promotion worklist.
   ///
   /// Sometimes we discover an alloca which has a high probability of becoming
   /// viable for SROA after a round of promotion takes place. In those cases,
@@ -92,17 +92,17 @@
   /// the event they are deleted.
   SetVector<AllocaInst *, SmallVector<AllocaInst *, 16>> PostPromotionWorklist;
 
-  /// \brief A collection of alloca instructions we can directly promote.
+  /// A collection of alloca instructions we can directly promote.
   std::vector<AllocaInst *> PromotableAllocas;
 
-  /// \brief A worklist of PHIs to speculate prior to promoting allocas.
+  /// A worklist of PHIs to speculate prior to promoting allocas.
   ///
   /// All of these PHIs have been checked for the safety of speculation and by
   /// being speculated will allow promoting allocas currently in the promotable
   /// queue.
   SetVector<PHINode *, SmallVector<PHINode *, 2>> SpeculatablePHIs;
 
-  /// \brief A worklist of select instructions to speculate prior to promoting
+  /// A worklist of select instructions to speculate prior to promoting
   /// allocas.
   ///
   /// All of these select instructions have been checked for the safety of
@@ -113,7 +113,7 @@
 public:
   SROA() = default;
 
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 
 private:
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h b/linux-x64/clang/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
index 63bfe63..eed50ec 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
@@ -17,9 +17,9 @@
 
 namespace llvm {
 
-/// This pass transforms loops that contain branches on loop-invariant
-/// conditions to have multiple loops. For example, it turns the left into the
-/// right code:
+/// This pass transforms loops that contain branches or switches on loop-
+/// invariant conditions to have multiple loops. For example, it turns the left
+/// into the right code:
 ///
 ///  for (...)                  if (lic)
 ///    A                          for (...)
@@ -35,6 +35,31 @@
 /// This pass expects LICM to be run before it to hoist invariant conditions out
 /// of the loop, to make the unswitching opportunity obvious.
 ///
+/// There is a taxonomy of unswitching that we use to classify different forms
+/// of this transformaiton:
+///
+/// - Trival unswitching: this is when the condition can be unswitched without
+///   cloning any code from inside the loop. A non-trivial unswitch requires
+///   code duplication.
+///
+/// - Full unswitching: this is when the branch or switch is completely moved
+///   from inside the loop to outside the loop. Partial unswitching removes the
+///   branch from the clone of the loop but must leave a (somewhat simplified)
+///   branch in the original loop. While theoretically partial unswitching can
+///   be done for switches, the requirements are extreme - we need the loop
+///   invariant input to the switch to be sufficient to collapse to a single
+///   successor in each clone.
+///
+/// This pass always does trivial, full unswitching for both branches and
+/// switches. For branches, it also always does trivial, partial unswitching.
+///
+/// If enabled (via the constructor's `NonTrivial` parameter), this pass will
+/// additionally do non-trivial, full unswitching for branches and switches, and
+/// will do non-trivial, partial unswitching for branches.
+///
+/// Because partial unswitching of switches is extremely unlikely to be possible
+/// in practice and significantly complicates the implementation, this pass does
+/// not currently implement that in any mode.
 class SimpleLoopUnswitchPass : public PassInfoMixin<SimpleLoopUnswitchPass> {
   bool NonTrivial;
 
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/SimplifyCFG.h b/linux-x64/clang/include/llvm/Transforms/Scalar/SimplifyCFG.h
index 6198957..ce0a35f 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/SimplifyCFG.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/SimplifyCFG.h
@@ -15,7 +15,7 @@
 #ifndef LLVM_TRANSFORMS_SCALAR_SIMPLIFYCFG_H
 #define LLVM_TRANSFORMS_SCALAR_SIMPLIFYCFG_H
 
-#include "llvm/Analysis/Utils/Local.h"
+#include "llvm/Transforms/Utils/Local.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/PassManager.h"
 
@@ -46,7 +46,7 @@
   /// Construct a pass with optional optimizations.
   SimplifyCFGPass(const SimplifyCFGOptions &PassOptions);
 
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h b/linux-x64/clang/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h
index f39e03d..4a0bfd7 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h
@@ -102,7 +102,7 @@
 /// here are relatively simple ones around execution and codesize cost, without
 /// any need to consider simplifications or other transformations.
 struct SpeculateAroundPHIsPass : PassInfoMixin<SpeculateAroundPHIsPass> {
-  /// \brief Run the pass over the function.
+  /// Run the pass over the function.
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
diff --git a/linux-x64/clang/include/llvm/Transforms/Scalar/SpeculativeExecution.h b/linux-x64/clang/include/llvm/Transforms/Scalar/SpeculativeExecution.h
index 068f817..d00e950 100644
--- a/linux-x64/clang/include/llvm/Transforms/Scalar/SpeculativeExecution.h
+++ b/linux-x64/clang/include/llvm/Transforms/Scalar/SpeculativeExecution.h
@@ -82,7 +82,7 @@
   bool considerHoistingFromTo(BasicBlock &FromBlock, BasicBlock &ToBlock);
 
   // If true, this pass is a nop unless the target architecture has branch
-  // divergence.  
+  // divergence.
   const bool OnlyIfDivergentTarget = false;
 
   TargetTransformInfo *TTI = nullptr;
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils.h b/linux-x64/clang/include/llvm/Transforms/Utils.h
index cfb89d1..0d997ce 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils.h
@@ -110,13 +110,6 @@
 Pass *createLoopSimplifyPass();
 extern char &LoopSimplifyID;
 
-//===----------------------------------------------------------------------===//
-//
-// InstructionSimplifier - Remove redundant instructions.
-//
-FunctionPass *createInstructionSimplifierPass();
-extern char &InstructionSimplifierID;
-
 /// This function returns a new pass that downgrades the debug info in the
 /// module to line tables only.
 ModulePass *createStripNonLineTableDebugInfoPass();
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/BasicBlockUtils.h b/linux-x64/clang/include/llvm/Transforms/Utils/BasicBlockUtils.h
index 6f0d2de..63b5e6c 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/BasicBlockUtils.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/BasicBlockUtils.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/IR/BasicBlock.h"
 #include "llvm/IR/CFG.h"
+#include "llvm/IR/DomTreeUpdater.h"
 #include "llvm/IR/InstrTypes.h"
 #include <cassert>
 
@@ -27,8 +28,8 @@
 
 class BlockFrequencyInfo;
 class BranchProbabilityInfo;
-class DeferredDominance;
 class DominatorTree;
+class DomTreeUpdater;
 class Function;
 class Instruction;
 class LoopInfo;
@@ -39,7 +40,7 @@
 class Value;
 
 /// Delete the specified block, which must have no predecessors.
-void DeleteDeadBlock(BasicBlock *BB, DeferredDominance *DDT = nullptr);
+void DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU = nullptr);
 
 /// We know that BB has one predecessor. If there are any single-entry PHI nodes
 /// in it, fold them away. This handles the case when all entries to the PHI
@@ -56,7 +57,7 @@
 
 /// Attempts to merge a block into its predecessor, if possible. The return
 /// value indicates success or failure.
-bool MergeBlockIntoPredecessor(BasicBlock *BB, DominatorTree *DT = nullptr,
+bool MergeBlockIntoPredecessor(BasicBlock *BB, DomTreeUpdater *DTU = nullptr,
                                LoopInfo *LI = nullptr,
                                MemoryDependenceResults *MemDep = nullptr);
 
@@ -228,7 +229,8 @@
 /// value defined by a PHI, propagate the right value into the return. It
 /// returns the new return instruction in the predecessor.
 ReturnInst *FoldReturnIntoUncondBranch(ReturnInst *RI, BasicBlock *BB,
-                                       BasicBlock *Pred);
+                                       BasicBlock *Pred,
+                                       DomTreeUpdater *DTU = nullptr);
 
 /// Split the containing block at the specified instruction - everything before
 /// SplitBefore stays in the old basic block, and the rest of the instructions
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/BuildLibCalls.h b/linux-x64/clang/include/llvm/Transforms/Utils/BuildLibCalls.h
index 3a71559..bdcdf6f 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/BuildLibCalls.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/BuildLibCalls.h
@@ -111,15 +111,54 @@
   Value *emitFPutC(Value *Char, Value *File, IRBuilder<> &B,
                    const TargetLibraryInfo *TLI);
 
-  /// Emit a call to the puts function. Str is required to be a pointer and
+  /// Emit a call to the fputc_unlocked function. This assumes that Char is an
+  /// i32, and File is a pointer to FILE.
+  Value *emitFPutCUnlocked(Value *Char, Value *File, IRBuilder<> &B,
+                           const TargetLibraryInfo *TLI);
+
+  /// Emit a call to the fputs function. Str is required to be a pointer and
   /// File is a pointer to FILE.
   Value *emitFPutS(Value *Str, Value *File, IRBuilder<> &B,
                    const TargetLibraryInfo *TLI);
 
+  /// Emit a call to the fputs_unlocked function. Str is required to be a
+  /// pointer and File is a pointer to FILE.
+  Value *emitFPutSUnlocked(Value *Str, Value *File, IRBuilder<> &B,
+                           const TargetLibraryInfo *TLI);
+
   /// Emit a call to the fwrite function. This assumes that Ptr is a pointer,
   /// Size is an 'intptr_t', and File is a pointer to FILE.
   Value *emitFWrite(Value *Ptr, Value *Size, Value *File, IRBuilder<> &B,
                     const DataLayout &DL, const TargetLibraryInfo *TLI);
+
+  /// Emit a call to the malloc function.
+  Value *emitMalloc(Value *Num, IRBuilder<> &B, const DataLayout &DL,
+                    const TargetLibraryInfo *TLI);
+
+  /// Emit a call to the calloc function.
+  Value *emitCalloc(Value *Num, Value *Size, const AttributeList &Attrs,
+                    IRBuilder<> &B, const TargetLibraryInfo &TLI);
+
+  /// Emit a call to the fwrite_unlocked function. This assumes that Ptr is a
+  /// pointer, Size is an 'intptr_t', N is nmemb and File is a pointer to FILE.
+  Value *emitFWriteUnlocked(Value *Ptr, Value *Size, Value *N, Value *File,
+                            IRBuilder<> &B, const DataLayout &DL,
+                            const TargetLibraryInfo *TLI);
+
+  /// Emit a call to the fgetc_unlocked function. File is a pointer to FILE.
+  Value *emitFGetCUnlocked(Value *File, IRBuilder<> &B,
+                           const TargetLibraryInfo *TLI);
+
+  /// Emit a call to the fgets_unlocked function. Str is required to be a
+  /// pointer, Size is an i32 and File is a pointer to FILE.
+  Value *emitFGetSUnlocked(Value *Str, Value *Size, Value *File, IRBuilder<> &B,
+                           const TargetLibraryInfo *TLI);
+
+  /// Emit a call to the fread_unlocked function. This assumes that Ptr is a
+  /// pointer, Size is an 'intptr_t', N is nmemb and File is a pointer to FILE.
+  Value *emitFReadUnlocked(Value *Ptr, Value *Size, Value *N, Value *File,
+                           IRBuilder<> &B, const DataLayout &DL,
+                           const TargetLibraryInfo *TLI);
 }
 
 #endif
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/Cloning.h b/linux-x64/clang/include/llvm/Transforms/Utils/Cloning.h
index cd02ca6..e4d6053 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/Cloning.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/Cloning.h
@@ -22,6 +22,7 @@
 #include "llvm/ADT/Twine.h"
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/Analysis/AssumptionCache.h"
+#include "llvm/Analysis/InlineCost.h"
 #include "llvm/IR/CallSite.h"
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/Transforms/Utils/ValueMapper.h"
@@ -232,15 +233,18 @@
 /// and all varargs at the callsite will be passed to any calls to
 /// ForwardVarArgsTo. The caller of InlineFunction has to make sure any varargs
 /// are only used by ForwardVarArgsTo.
-bool InlineFunction(CallInst *C, InlineFunctionInfo &IFI,
-                    AAResults *CalleeAAR = nullptr, bool InsertLifetime = true);
-bool InlineFunction(InvokeInst *II, InlineFunctionInfo &IFI,
-                    AAResults *CalleeAAR = nullptr, bool InsertLifetime = true);
-bool InlineFunction(CallSite CS, InlineFunctionInfo &IFI,
-                    AAResults *CalleeAAR = nullptr, bool InsertLifetime = true,
-                    Function *ForwardVarArgsTo = nullptr);
+InlineResult InlineFunction(CallInst *C, InlineFunctionInfo &IFI,
+                            AAResults *CalleeAAR = nullptr,
+                            bool InsertLifetime = true);
+InlineResult InlineFunction(InvokeInst *II, InlineFunctionInfo &IFI,
+                            AAResults *CalleeAAR = nullptr,
+                            bool InsertLifetime = true);
+InlineResult InlineFunction(CallSite CS, InlineFunctionInfo &IFI,
+                            AAResults *CalleeAAR = nullptr,
+                            bool InsertLifetime = true,
+                            Function *ForwardVarArgsTo = nullptr);
 
-/// \brief Clones a loop \p OrigLoop.  Returns the loop and the blocks in \p
+/// Clones a loop \p OrigLoop.  Returns the loop and the blocks in \p
 /// Blocks.
 ///
 /// Updates LoopInfo and DominatorTree assuming the loop is dominated by block
@@ -252,7 +256,7 @@
                              DominatorTree *DT,
                              SmallVectorImpl<BasicBlock *> &Blocks);
 
-/// \brief Remaps instructions in \p Blocks using the mapping in \p VMap.
+/// Remaps instructions in \p Blocks using the mapping in \p VMap.
 void remapInstructionsInBlocks(const SmallVectorImpl<BasicBlock *> &Blocks,
                                ValueToValueMapTy &VMap);
 
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/CodeExtractor.h b/linux-x64/clang/include/llvm/Transforms/Utils/CodeExtractor.h
index 63d3451..0e5254a 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/CodeExtractor.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/CodeExtractor.h
@@ -34,7 +34,7 @@
 class Type;
 class Value;
 
-  /// \brief Utility class for extracting code into a new function.
+  /// Utility class for extracting code into a new function.
   ///
   /// This utility provides a simple interface for extracting some sequence of
   /// code into its own function, replacing it with a call to that function. It
@@ -65,20 +65,22 @@
     Type *RetTy;
 
   public:
-    /// \brief Create a code extractor for a sequence of blocks.
+    /// Create a code extractor for a sequence of blocks.
     ///
     /// Given a sequence of basic blocks where the first block in the sequence
     /// dominates the rest, prepare a code extractor object for pulling this
     /// sequence out into its new function. When a DominatorTree is also given,
     /// extra checking and transformations are enabled. If AllowVarArgs is true,
     /// vararg functions can be extracted. This is safe, if all vararg handling
-    /// code is extracted, including vastart.
+    /// code is extracted, including vastart. If AllowAlloca is true, then
+    /// extraction of blocks containing alloca instructions would be possible,
+    /// however code extractor won't validate whether extraction is legal.
     CodeExtractor(ArrayRef<BasicBlock *> BBs, DominatorTree *DT = nullptr,
                   bool AggregateArgs = false, BlockFrequencyInfo *BFI = nullptr,
                   BranchProbabilityInfo *BPI = nullptr,
-                  bool AllowVarArgs = false);
+                  bool AllowVarArgs = false, bool AllowAlloca = false);
 
-    /// \brief Create a code extractor for a loop body.
+    /// Create a code extractor for a loop body.
     ///
     /// Behaves just like the generic code sequence constructor, but uses the
     /// block sequence of the loop.
@@ -86,27 +88,19 @@
                   BlockFrequencyInfo *BFI = nullptr,
                   BranchProbabilityInfo *BPI = nullptr);
 
-    /// \brief Check to see if a block is valid for extraction.
-    ///
-    /// Blocks containing EHPads, allocas and invokes are not valid. If
-    /// AllowVarArgs is true, blocks with vastart can be extracted. This is
-    /// safe, if all vararg handling code is extracted, including vastart.
-    static bool isBlockValidForExtraction(const BasicBlock &BB,
-                                          bool AllowVarArgs);
-
-    /// \brief Perform the extraction, returning the new function.
+    /// Perform the extraction, returning the new function.
     ///
     /// Returns zero when called on a CodeExtractor instance where isEligible
     /// returns false.
     Function *extractCodeRegion();
 
-    /// \brief Test whether this code extractor is eligible.
+    /// Test whether this code extractor is eligible.
     ///
     /// Based on the blocks used when constructing the code extractor,
     /// determine whether it is eligible for extraction.
     bool isEligible() const { return !Blocks.empty(); }
 
-    /// \brief Compute the set of input values and output values for the code.
+    /// Compute the set of input values and output values for the code.
     ///
     /// These can be used either when performing the extraction or to evaluate
     /// the expected size of a call to the extracted function. Note that this
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/Evaluator.h b/linux-x64/clang/include/llvm/Transforms/Utils/Evaluator.h
index 0e987b9..9908ae6 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/Evaluator.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/Evaluator.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/BasicBlock.h"
+#include "llvm/IR/CallSite.h"
 #include "llvm/IR/GlobalVariable.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/Casting.h"
@@ -73,6 +74,18 @@
     ValueStack.back()[V] = C;
   }
 
+  /// Given call site return callee and list of its formal arguments
+  Function *getCalleeWithFormalArgs(CallSite &CS,
+                                    SmallVector<Constant *, 8> &Formals);
+
+  /// Given call site and callee returns list of callee formal argument
+  /// values converting them when necessary
+  bool getFormalParams(CallSite &CS, Function *F,
+                       SmallVector<Constant *, 8> &Formals);
+
+  /// Casts call result to a type of bitcast call expression
+  Constant *castCallResultIfNeeded(Value *CallExpr, Constant *RV);
+
   const DenseMap<Constant*, Constant*> &getMutatedMemory() const {
     return MutatedMemory;
   }
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/FunctionComparator.h b/linux-x64/clang/include/llvm/Transforms/Utils/FunctionComparator.h
index 7698a06..35ba095 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/FunctionComparator.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/FunctionComparator.h
@@ -18,7 +18,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/IR/Attributes.h"
-#include "llvm/IR/Instructions.h" 
+#include "llvm/IR/Instructions.h"
 #include "llvm/IR/Operator.h"
 #include "llvm/IR/ValueMap.h"
 #include "llvm/Support/AtomicOrdering.h"
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/ImplicitControlFlowTracking.h b/linux-x64/clang/include/llvm/Transforms/Utils/ImplicitControlFlowTracking.h
new file mode 100644
index 0000000..d45c013
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/ImplicitControlFlowTracking.h
@@ -0,0 +1,62 @@
+//===-- ImplicitControlFlowTracking.h ---------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+// This class allows to keep track on instructions with implicit control flow.
+// These are instructions that may not pass execution to their successors. For
+// example, throwing calls and guards do not always do this. If we need to know
+// for sure that some instruction is guaranteed to execute if the given block
+// is reached, then we need to make sure that there is no implicit control flow
+// instruction (ICFI) preceeding it. For example, this check is required if we
+// perform PRE moving non-speculable instruction to other place.
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TRANSFORMS_UTILS_IMPLICITCONTROLFLOWTRACKING_H
+#define LLVM_TRANSFORMS_UTILS_IMPLICITCONTROLFLOWTRACKING_H
+
+#include "llvm/IR/Dominators.h"
+#include "llvm/Transforms/Utils/OrderedInstructions.h"
+
+namespace llvm {
+
+class ImplicitControlFlowTracking {
+public:
+  ImplicitControlFlowTracking(DominatorTree *DT)
+      : OI(OrderedInstructions(DT)) {}
+
+  // Returns the topmost instruction with implicit control flow from the given
+  // basic block. Returns nullptr if there is no such instructions in the block.
+  const Instruction *getFirstICFI(const BasicBlock *BB);
+
+  // Returns true if at least one instruction from the given basic block has
+  // implicit control flow.
+  bool hasICF(const BasicBlock *BB);
+
+  // Returns true if the first ICFI of Insn's block exists and dominates Insn.
+  bool isDominatedByICFIFromSameBlock(const Instruction *Insn);
+
+  // Clears information about this particular block.
+  void invalidateBlock(const BasicBlock *BB);
+
+  // Invalidates all information from this tracking.
+  void clear();
+
+private:
+  // Fills information about the given block's implicit control flow.
+  void fill(const BasicBlock *BB);
+
+  // Maps a block to the topmost instruction with implicit control flow in it.
+  DenseMap<const BasicBlock *, const Instruction *>
+      FirstImplicitControlFlowInsts;
+  OrderedInstructions OI;
+  // Blocks for which we have the actual information.
+  SmallPtrSet<const BasicBlock *, 8> KnownBlocks;
+};
+
+} // llvm
+
+#endif // LLVM_TRANSFORMS_UTILS_IMPLICITCONTROLFLOWTRACKING_H
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h b/linux-x64/clang/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h
index b7a3d13..b55a989 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h
@@ -22,7 +22,7 @@
 namespace llvm {
 class Module;
 class Function;
-/// \brief Calculate and dump ThinLTO specific inliner stats.
+/// Calculate and dump ThinLTO specific inliner stats.
 /// The main statistics are:
 /// (1) Number of inlined imported functions,
 /// (2) Number of imported functions inlined into importing module (indirect),
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/IntegerDivision.h b/linux-x64/clang/include/llvm/Transforms/Utils/IntegerDivision.h
index 0ec3321..5d9927e 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/IntegerDivision.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/IntegerDivision.h
@@ -29,7 +29,7 @@
   /// e.g. when more information about the operands are known. Implements both
   /// 32bit and 64bit scalar division.
   ///
-  /// @brief Replace Rem with generated code.
+  /// Replace Rem with generated code.
   bool expandRemainder(BinaryOperator *Rem);
 
   /// Generate code to divide two integers, replacing Div with the generated
@@ -38,7 +38,7 @@
   /// when more information about the operands are known. Implements both
   /// 32bit and 64bit scalar division.
   ///
-  /// @brief Replace Div with generated code.
+  /// Replace Div with generated code.
   bool expandDivision(BinaryOperator* Div);
 
   /// Generate code to calculate the remainder of two integers, replacing Rem
@@ -46,26 +46,26 @@
   /// makes it useful for targets with little or no support for less than
   /// 32 bit arithmetic.
   ///
-  /// @brief Replace Rem with generated code.
+  /// Replace Rem with generated code.
   bool expandRemainderUpTo32Bits(BinaryOperator *Rem);
 
   /// Generate code to calculate the remainder of two integers, replacing Rem
   /// with the generated code. Uses ExpandReminder with a 64bit Rem.
   ///
-  /// @brief Replace Rem with generated code.
+  /// Replace Rem with generated code.
   bool expandRemainderUpTo64Bits(BinaryOperator *Rem);
 
   /// Generate code to divide two integers, replacing Div with the generated
   /// code. Uses ExpandDivision with a 32bit Div which makes it useful for
   /// targets with little or no support for less than 32 bit arithmetic.
   ///
-  /// @brief Replace Rem with generated code.
+  /// Replace Rem with generated code.
   bool expandDivisionUpTo32Bits(BinaryOperator *Div);
 
   /// Generate code to divide two integers, replacing Div with the generated
   /// code. Uses ExpandDivision with a 64bit Div.
   ///
-  /// @brief Replace Rem with generated code.
+  /// Replace Rem with generated code.
   bool expandDivisionUpTo64Bits(BinaryOperator *Div);
 
 } // End llvm namespace
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/Local.h b/linux-x64/clang/include/llvm/Transforms/Utils/Local.h
new file mode 100644
index 0000000..97f4a51
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/Local.h
@@ -0,0 +1,480 @@
+//===- Local.h - Functions to perform local transformations -----*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This family of functions perform various local transformations to the
+// program.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TRANSFORMS_UTILS_LOCAL_H
+#define LLVM_TRANSFORMS_UTILS_LOCAL_H
+
+#include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/STLExtras.h"
+#include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/TinyPtrVector.h"
+#include "llvm/Analysis/AliasAnalysis.h"
+#include "llvm/Analysis/Utils/Local.h"
+#include "llvm/IR/CallSite.h"
+#include "llvm/IR/Constant.h"
+#include "llvm/IR/Constants.h"
+#include "llvm/IR/DataLayout.h"
+#include "llvm/IR/DomTreeUpdater.h"
+#include "llvm/IR/Dominators.h"
+#include "llvm/IR/GetElementPtrTypeIterator.h"
+#include "llvm/IR/Operator.h"
+#include "llvm/IR/Type.h"
+#include "llvm/IR/User.h"
+#include "llvm/IR/Value.h"
+#include "llvm/Support/Casting.h"
+#include <cstdint>
+#include <limits>
+
+namespace llvm {
+
+class AllocaInst;
+class AssumptionCache;
+class BasicBlock;
+class BranchInst;
+class CallInst;
+class DbgVariableIntrinsic;
+class DbgValueInst;
+class DIBuilder;
+class Function;
+class Instruction;
+class LazyValueInfo;
+class LoadInst;
+class MDNode;
+class PHINode;
+class StoreInst;
+class TargetLibraryInfo;
+class TargetTransformInfo;
+
+/// A set of parameters used to control the transforms in the SimplifyCFG pass.
+/// Options may change depending on the position in the optimization pipeline.
+/// For example, canonical form that includes switches and branches may later be
+/// replaced by lookup tables and selects.
+struct SimplifyCFGOptions {
+  int BonusInstThreshold;
+  bool ForwardSwitchCondToPhi;
+  bool ConvertSwitchToLookupTable;
+  bool NeedCanonicalLoop;
+  bool SinkCommonInsts;
+  AssumptionCache *AC;
+
+  SimplifyCFGOptions(unsigned BonusThreshold = 1,
+                     bool ForwardSwitchCond = false,
+                     bool SwitchToLookup = false, bool CanonicalLoops = true,
+                     bool SinkCommon = false,
+                     AssumptionCache *AssumpCache = nullptr)
+      : BonusInstThreshold(BonusThreshold),
+        ForwardSwitchCondToPhi(ForwardSwitchCond),
+        ConvertSwitchToLookupTable(SwitchToLookup),
+        NeedCanonicalLoop(CanonicalLoops),
+        SinkCommonInsts(SinkCommon),
+        AC(AssumpCache) {}
+
+  // Support 'builder' pattern to set members by name at construction time.
+  SimplifyCFGOptions &bonusInstThreshold(int I) {
+    BonusInstThreshold = I;
+    return *this;
+  }
+  SimplifyCFGOptions &forwardSwitchCondToPhi(bool B) {
+    ForwardSwitchCondToPhi = B;
+    return *this;
+  }
+  SimplifyCFGOptions &convertSwitchToLookupTable(bool B) {
+    ConvertSwitchToLookupTable = B;
+    return *this;
+  }
+  SimplifyCFGOptions &needCanonicalLoops(bool B) {
+    NeedCanonicalLoop = B;
+    return *this;
+  }
+  SimplifyCFGOptions &sinkCommonInsts(bool B) {
+    SinkCommonInsts = B;
+    return *this;
+  }
+  SimplifyCFGOptions &setAssumptionCache(AssumptionCache *Cache) {
+    AC = Cache;
+    return *this;
+  }
+};
+
+//===----------------------------------------------------------------------===//
+//  Local constant propagation.
+//
+
+/// If a terminator instruction is predicated on a constant value, convert it
+/// into an unconditional branch to the constant destination.
+/// This is a nontrivial operation because the successors of this basic block
+/// must have their PHI nodes updated.
+/// Also calls RecursivelyDeleteTriviallyDeadInstructions() on any branch/switch
+/// conditions and indirectbr addresses this might make dead if
+/// DeleteDeadConditions is true.
+bool ConstantFoldTerminator(BasicBlock *BB, bool DeleteDeadConditions = false,
+                            const TargetLibraryInfo *TLI = nullptr,
+                            DomTreeUpdater *DTU = nullptr);
+
+//===----------------------------------------------------------------------===//
+//  Local dead code elimination.
+//
+
+/// Return true if the result produced by the instruction is not used, and the
+/// instruction has no side effects.
+bool isInstructionTriviallyDead(Instruction *I,
+                                const TargetLibraryInfo *TLI = nullptr);
+
+/// Return true if the result produced by the instruction would have no side
+/// effects if it was not used. This is equivalent to checking whether
+/// isInstructionTriviallyDead would be true if the use count was 0.
+bool wouldInstructionBeTriviallyDead(Instruction *I,
+                                     const TargetLibraryInfo *TLI = nullptr);
+
+/// If the specified value is a trivially dead instruction, delete it.
+/// If that makes any of its operands trivially dead, delete them too,
+/// recursively. Return true if any instructions were deleted.
+bool RecursivelyDeleteTriviallyDeadInstructions(Value *V,
+                                        const TargetLibraryInfo *TLI = nullptr);
+
+/// Delete all of the instructions in `DeadInsts`, and all other instructions
+/// that deleting these in turn causes to be trivially dead.
+///
+/// The initial instructions in the provided vector must all have empty use
+/// lists and satisfy `isInstructionTriviallyDead`.
+///
+/// `DeadInsts` will be used as scratch storage for this routine and will be
+/// empty afterward.
+void RecursivelyDeleteTriviallyDeadInstructions(
+    SmallVectorImpl<Instruction *> &DeadInsts,
+    const TargetLibraryInfo *TLI = nullptr);
+
+/// If the specified value is an effectively dead PHI node, due to being a
+/// def-use chain of single-use nodes that either forms a cycle or is terminated
+/// by a trivially dead instruction, delete it. If that makes any of its
+/// operands trivially dead, delete them too, recursively. Return true if a
+/// change was made.
+bool RecursivelyDeleteDeadPHINode(PHINode *PN,
+                                  const TargetLibraryInfo *TLI = nullptr);
+
+/// Scan the specified basic block and try to simplify any instructions in it
+/// and recursively delete dead instructions.
+///
+/// This returns true if it changed the code, note that it can delete
+/// instructions in other blocks as well in this block.
+bool SimplifyInstructionsInBlock(BasicBlock *BB,
+                                 const TargetLibraryInfo *TLI = nullptr);
+
+//===----------------------------------------------------------------------===//
+//  Control Flow Graph Restructuring.
+//
+
+/// Like BasicBlock::removePredecessor, this method is called when we're about
+/// to delete Pred as a predecessor of BB. If BB contains any PHI nodes, this
+/// drops the entries in the PHI nodes for Pred.
+///
+/// Unlike the removePredecessor method, this attempts to simplify uses of PHI
+/// nodes that collapse into identity values.  For example, if we have:
+///   x = phi(1, 0, 0, 0)
+///   y = and x, z
+///
+/// .. and delete the predecessor corresponding to the '1', this will attempt to
+/// recursively fold the 'and' to 0.
+void RemovePredecessorAndSimplify(BasicBlock *BB, BasicBlock *Pred,
+                                  DomTreeUpdater *DTU = nullptr);
+
+/// BB is a block with one predecessor and its predecessor is known to have one
+/// successor (BB!). Eliminate the edge between them, moving the instructions in
+/// the predecessor into BB. This deletes the predecessor block.
+void MergeBasicBlockIntoOnlyPred(BasicBlock *BB, DomTreeUpdater *DTU = nullptr);
+
+/// BB is known to contain an unconditional branch, and contains no instructions
+/// other than PHI nodes, potential debug intrinsics and the branch. If
+/// possible, eliminate BB by rewriting all the predecessors to branch to the
+/// successor block and return true. If we can't transform, return false.
+bool TryToSimplifyUncondBranchFromEmptyBlock(BasicBlock *BB,
+                                             DomTreeUpdater *DTU = nullptr);
+
+/// Check for and eliminate duplicate PHI nodes in this block. This doesn't try
+/// to be clever about PHI nodes which differ only in the order of the incoming
+/// values, but instcombine orders them so it usually won't matter.
+bool EliminateDuplicatePHINodes(BasicBlock *BB);
+
+/// This function is used to do simplification of a CFG.  For example, it
+/// adjusts branches to branches to eliminate the extra hop, it eliminates
+/// unreachable basic blocks, and does other peephole optimization of the CFG.
+/// It returns true if a modification was made, possibly deleting the basic
+/// block that was pointed to. LoopHeaders is an optional input parameter
+/// providing the set of loop headers that SimplifyCFG should not eliminate.
+bool simplifyCFG(BasicBlock *BB, const TargetTransformInfo &TTI,
+                 const SimplifyCFGOptions &Options = {},
+                 SmallPtrSetImpl<BasicBlock *> *LoopHeaders = nullptr);
+
+/// This function is used to flatten a CFG. For example, it uses parallel-and
+/// and parallel-or mode to collapse if-conditions and merge if-regions with
+/// identical statements.
+bool FlattenCFG(BasicBlock *BB, AliasAnalysis *AA = nullptr);
+
+/// If this basic block is ONLY a setcc and a branch, and if a predecessor
+/// branches to us and one of our successors, fold the setcc into the
+/// predecessor and use logical operations to pick the right destination.
+bool FoldBranchToCommonDest(BranchInst *BI, unsigned BonusInstThreshold = 1);
+
+/// This function takes a virtual register computed by an Instruction and
+/// replaces it with a slot in the stack frame, allocated via alloca.
+/// This allows the CFG to be changed around without fear of invalidating the
+/// SSA information for the value. It returns the pointer to the alloca inserted
+/// to create a stack slot for X.
+AllocaInst *DemoteRegToStack(Instruction &X,
+                             bool VolatileLoads = false,
+                             Instruction *AllocaPoint = nullptr);
+
+/// This function takes a virtual register computed by a phi node and replaces
+/// it with a slot in the stack frame, allocated via alloca. The phi node is
+/// deleted and it returns the pointer to the alloca inserted.
+AllocaInst *DemotePHIToStack(PHINode *P, Instruction *AllocaPoint = nullptr);
+
+/// Try to ensure that the alignment of \p V is at least \p PrefAlign bytes. If
+/// the owning object can be modified and has an alignment less than \p
+/// PrefAlign, it will be increased and \p PrefAlign returned. If the alignment
+/// cannot be increased, the known alignment of the value is returned.
+///
+/// It is not always possible to modify the alignment of the underlying object,
+/// so if alignment is important, a more reliable approach is to simply align
+/// all global variables and allocation instructions to their preferred
+/// alignment from the beginning.
+unsigned getOrEnforceKnownAlignment(Value *V, unsigned PrefAlign,
+                                    const DataLayout &DL,
+                                    const Instruction *CxtI = nullptr,
+                                    AssumptionCache *AC = nullptr,
+                                    const DominatorTree *DT = nullptr);
+
+/// Try to infer an alignment for the specified pointer.
+inline unsigned getKnownAlignment(Value *V, const DataLayout &DL,
+                                  const Instruction *CxtI = nullptr,
+                                  AssumptionCache *AC = nullptr,
+                                  const DominatorTree *DT = nullptr) {
+  return getOrEnforceKnownAlignment(V, 0, DL, CxtI, AC, DT);
+}
+
+///===---------------------------------------------------------------------===//
+///  Dbg Intrinsic utilities
+///
+
+/// Inserts a llvm.dbg.value intrinsic before a store to an alloca'd value
+/// that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic.
+void ConvertDebugDeclareToDebugValue(DbgVariableIntrinsic *DII,
+                                     StoreInst *SI, DIBuilder &Builder);
+
+/// Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value
+/// that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic.
+void ConvertDebugDeclareToDebugValue(DbgVariableIntrinsic *DII,
+                                     LoadInst *LI, DIBuilder &Builder);
+
+/// Inserts a llvm.dbg.value intrinsic after a phi that has an associated
+/// llvm.dbg.declare or llvm.dbg.addr intrinsic.
+void ConvertDebugDeclareToDebugValue(DbgVariableIntrinsic *DII,
+                                     PHINode *LI, DIBuilder &Builder);
+
+/// Lowers llvm.dbg.declare intrinsics into appropriate set of
+/// llvm.dbg.value intrinsics.
+bool LowerDbgDeclare(Function &F);
+
+/// Propagate dbg.value intrinsics through the newly inserted PHIs.
+void insertDebugValuesForPHIs(BasicBlock *BB,
+                              SmallVectorImpl<PHINode *> &InsertedPHIs);
+
+/// Finds all intrinsics declaring local variables as living in the memory that
+/// 'V' points to. This may include a mix of dbg.declare and
+/// dbg.addr intrinsics.
+TinyPtrVector<DbgVariableIntrinsic *> FindDbgAddrUses(Value *V);
+
+/// Finds the llvm.dbg.value intrinsics describing a value.
+void findDbgValues(SmallVectorImpl<DbgValueInst *> &DbgValues, Value *V);
+
+/// Finds the debug info intrinsics describing a value.
+void findDbgUsers(SmallVectorImpl<DbgVariableIntrinsic *> &DbgInsts, Value *V);
+
+/// Replaces llvm.dbg.declare instruction when the address it
+/// describes is replaced with a new value. If Deref is true, an
+/// additional DW_OP_deref is prepended to the expression. If Offset
+/// is non-zero, a constant displacement is added to the expression
+/// (between the optional Deref operations). Offset can be negative.
+bool replaceDbgDeclare(Value *Address, Value *NewAddress,
+                       Instruction *InsertBefore, DIBuilder &Builder,
+                       bool DerefBefore, int Offset, bool DerefAfter);
+
+/// Replaces llvm.dbg.declare instruction when the alloca it describes
+/// is replaced with a new value. If Deref is true, an additional
+/// DW_OP_deref is prepended to the expression. If Offset is non-zero,
+/// a constant displacement is added to the expression (between the
+/// optional Deref operations). Offset can be negative. The new
+/// llvm.dbg.declare is inserted immediately after AI.
+bool replaceDbgDeclareForAlloca(AllocaInst *AI, Value *NewAllocaAddress,
+                                DIBuilder &Builder, bool DerefBefore,
+                                int Offset, bool DerefAfter);
+
+/// Replaces multiple llvm.dbg.value instructions when the alloca it describes
+/// is replaced with a new value. If Offset is non-zero, a constant displacement
+/// is added to the expression (after the mandatory Deref). Offset can be
+/// negative. New llvm.dbg.value instructions are inserted at the locations of
+/// the instructions they replace.
+void replaceDbgValueForAlloca(AllocaInst *AI, Value *NewAllocaAddress,
+                              DIBuilder &Builder, int Offset = 0);
+
+/// Assuming the instruction \p I is going to be deleted, attempt to salvage
+/// debug users of \p I by writing the effect of \p I in a DIExpression.
+/// Returns true if any debug users were updated.
+bool salvageDebugInfo(Instruction &I);
+
+/// Point debug users of \p From to \p To or salvage them. Use this function
+/// only when replacing all uses of \p From with \p To, with a guarantee that
+/// \p From is going to be deleted.
+///
+/// Follow these rules to prevent use-before-def of \p To:
+///   . If \p To is a linked Instruction, set \p DomPoint to \p To.
+///   . If \p To is an unlinked Instruction, set \p DomPoint to the Instruction
+///     \p To will be inserted after.
+///   . If \p To is not an Instruction (e.g a Constant), the choice of
+///     \p DomPoint is arbitrary. Pick \p From for simplicity.
+///
+/// If a debug user cannot be preserved without reordering variable updates or
+/// introducing a use-before-def, it is either salvaged (\ref salvageDebugInfo)
+/// or deleted. Returns true if any debug users were updated.
+bool replaceAllDbgUsesWith(Instruction &From, Value &To, Instruction &DomPoint,
+                           DominatorTree &DT);
+
+/// Remove all instructions from a basic block other than it's terminator
+/// and any present EH pad instructions.
+unsigned removeAllNonTerminatorAndEHPadInstructions(BasicBlock *BB);
+
+/// Insert an unreachable instruction before the specified
+/// instruction, making it and the rest of the code in the block dead.
+unsigned changeToUnreachable(Instruction *I, bool UseLLVMTrap,
+                             bool PreserveLCSSA = false,
+                             DomTreeUpdater *DTU = nullptr);
+
+/// Convert the CallInst to InvokeInst with the specified unwind edge basic
+/// block.  This also splits the basic block where CI is located, because
+/// InvokeInst is a terminator instruction.  Returns the newly split basic
+/// block.
+BasicBlock *changeToInvokeAndSplitBasicBlock(CallInst *CI,
+                                             BasicBlock *UnwindEdge);
+
+/// Replace 'BB's terminator with one that does not have an unwind successor
+/// block. Rewrites `invoke` to `call`, etc. Updates any PHIs in unwind
+/// successor.
+///
+/// \param BB  Block whose terminator will be replaced.  Its terminator must
+///            have an unwind successor.
+void removeUnwindEdge(BasicBlock *BB, DomTreeUpdater *DTU = nullptr);
+
+/// Remove all blocks that can not be reached from the function's entry.
+///
+/// Returns true if any basic block was removed.
+bool removeUnreachableBlocks(Function &F, LazyValueInfo *LVI = nullptr,
+                             DomTreeUpdater *DTU = nullptr);
+
+/// Combine the metadata of two instructions so that K can replace J. Some
+/// metadata kinds can only be kept if K does not move, meaning it dominated
+/// J in the original IR.
+///
+/// Metadata not listed as known via KnownIDs is removed
+void combineMetadata(Instruction *K, const Instruction *J,
+                     ArrayRef<unsigned> KnownIDs, bool DoesKMove = true);
+
+/// Combine the metadata of two instructions so that K can replace J. This
+/// specifically handles the case of CSE-like transformations.
+///
+/// Unknown metadata is removed.
+void combineMetadataForCSE(Instruction *K, const Instruction *J);
+
+/// Patch the replacement so that it is not more restrictive than the value
+/// being replaced. It assumes that the replacement does not get moved from
+/// its original position.
+void patchReplacementInstruction(Instruction *I, Value *Repl);
+
+// Replace each use of 'From' with 'To', if that use does not belong to basic
+// block where 'From' is defined. Returns the number of replacements made.
+unsigned replaceNonLocalUsesWith(Instruction *From, Value *To);
+
+/// Replace each use of 'From' with 'To' if that use is dominated by
+/// the given edge.  Returns the number of replacements made.
+unsigned replaceDominatedUsesWith(Value *From, Value *To, DominatorTree &DT,
+                                  const BasicBlockEdge &Edge);
+/// Replace each use of 'From' with 'To' if that use is dominated by
+/// the end of the given BasicBlock. Returns the number of replacements made.
+unsigned replaceDominatedUsesWith(Value *From, Value *To, DominatorTree &DT,
+                                  const BasicBlock *BB);
+
+/// Return true if the CallSite CS calls a gc leaf function.
+///
+/// A leaf function is a function that does not safepoint the thread during its
+/// execution.  During a call or invoke to such a function, the callers stack
+/// does not have to be made parseable.
+///
+/// Most passes can and should ignore this information, and it is only used
+/// during lowering by the GC infrastructure.
+bool callsGCLeafFunction(ImmutableCallSite CS, const TargetLibraryInfo &TLI);
+
+/// Copy a nonnull metadata node to a new load instruction.
+///
+/// This handles mapping it to range metadata if the new load is an integer
+/// load instead of a pointer load.
+void copyNonnullMetadata(const LoadInst &OldLI, MDNode *N, LoadInst &NewLI);
+
+/// Copy a range metadata node to a new load instruction.
+///
+/// This handles mapping it to nonnull metadata if the new load is a pointer
+/// load instead of an integer load and the range doesn't cover null.
+void copyRangeMetadata(const DataLayout &DL, const LoadInst &OldLI, MDNode *N,
+                       LoadInst &NewLI);
+
+//===----------------------------------------------------------------------===//
+//  Intrinsic pattern matching
+//
+
+/// Try to match a bswap or bitreverse idiom.
+///
+/// If an idiom is matched, an intrinsic call is inserted before \c I. Any added
+/// instructions are returned in \c InsertedInsts. They will all have been added
+/// to a basic block.
+///
+/// A bitreverse idiom normally requires around 2*BW nodes to be searched (where
+/// BW is the bitwidth of the integer type). A bswap idiom requires anywhere up
+/// to BW / 4 nodes to be searched, so is significantly faster.
+///
+/// This function returns true on a successful match or false otherwise.
+bool recognizeBSwapOrBitReverseIdiom(
+    Instruction *I, bool MatchBSwaps, bool MatchBitReversals,
+    SmallVectorImpl<Instruction *> &InsertedInsts);
+
+//===----------------------------------------------------------------------===//
+//  Sanitizer utilities
+//
+
+/// Given a CallInst, check if it calls a string function known to CodeGen,
+/// and mark it with NoBuiltin if so.  To be used by sanitizers that intend
+/// to intercept string functions and want to avoid converting them to target
+/// specific instructions.
+void maybeMarkSanitizerLibraryCallNoBuiltin(CallInst *CI,
+                                            const TargetLibraryInfo *TLI);
+
+//===----------------------------------------------------------------------===//
+//  Transform predicates
+//
+
+/// Given an instruction, is it legal to set operand OpIdx to a non-constant
+/// value?
+bool canReplaceOperandWithVariable(const Instruction *I, unsigned OpIdx);
+
+} // end namespace llvm
+
+#endif // LLVM_TRANSFORMS_UTILS_LOCAL_H
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/LoopRotationUtils.h b/linux-x64/clang/include/llvm/Transforms/Utils/LoopRotationUtils.h
index ea4d2cd..231e5bb 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/LoopRotationUtils.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/LoopRotationUtils.h
@@ -24,11 +24,16 @@
 struct SimplifyQuery;
 class TargetTransformInfo;
 
-/// \brief Convert a loop into a loop with bottom test.
-bool LoopRotation(Loop *L, unsigned MaxHeaderSize, LoopInfo *LI,
-                  const TargetTransformInfo *TTI, AssumptionCache *AC,
-                  DominatorTree *DT, ScalarEvolution *SE,
-                  const SimplifyQuery &SQ);
+/// Convert a loop into a loop with bottom test. It may
+/// perform loop latch simplication as well if the flag RotationOnly
+/// is false. The flag Threshold represents the size threshold of the loop
+/// header. If the loop header's size exceeds the threshold, the loop rotation
+/// will give up. The flag IsUtilMode controls the heuristic used in the
+/// LoopRotation. If it is true, the profitability heuristic will be ignored.
+bool LoopRotation(Loop *L, LoopInfo *LI, const TargetTransformInfo *TTI,
+                  AssumptionCache *AC, DominatorTree *DT, ScalarEvolution *SE,
+                  const SimplifyQuery &SQ, bool RotationOnly,
+                  unsigned Threshold, bool IsUtilMode);
 
 } // namespace llvm
 
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/LoopSimplify.h b/linux-x64/clang/include/llvm/Transforms/Utils/LoopSimplify.h
index f3828bc..166da27 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/LoopSimplify.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/LoopSimplify.h
@@ -52,7 +52,7 @@
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Simplify each loop in a loop nest recursively.
+/// Simplify each loop in a loop nest recursively.
 ///
 /// This takes a potentially un-simplified loop L (and its children) and turns
 /// it into a simplified loop nest with preheaders and single backedges. It will
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/LoopUtils.h b/linux-x64/clang/include/llvm/Transforms/Utils/LoopUtils.h
index 131a4b0..33dcc2a 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/LoopUtils.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/LoopUtils.h
@@ -289,16 +289,16 @@
   /// induction, the induction descriptor \p D will contain the data describing
   /// this induction. If by some other means the caller has a better SCEV
   /// expression for \p Phi than the one returned by the ScalarEvolution
-  /// analysis, it can be passed through \p Expr. If the def-use chain 
+  /// analysis, it can be passed through \p Expr. If the def-use chain
   /// associated with the phi includes casts (that we know we can ignore
   /// under proper runtime checks), they are passed through \p CastsToIgnore.
-  static bool 
+  static bool
   isInductionPHI(PHINode *Phi, const Loop* L, ScalarEvolution *SE,
                  InductionDescriptor &D, const SCEV *Expr = nullptr,
                  SmallVectorImpl<Instruction *> *CastsToIgnore = nullptr);
 
   /// Returns true if \p Phi is a floating point induction in the loop \p L.
-  /// If \p Phi is an induction, the induction descriptor \p D will contain 
+  /// If \p Phi is an induction, the induction descriptor \p D will contain
   /// the data describing this induction.
   static bool isFPInductionPHI(PHINode *Phi, const Loop* L,
                                ScalarEvolution *SE, InductionDescriptor &D);
@@ -334,11 +334,11 @@
       Instruction::BinaryOpsEnd;
   }
 
-  /// Returns a reference to the type cast instructions in the induction 
+  /// Returns a reference to the type cast instructions in the induction
   /// update chain, that are redundant when guarded with a runtime
   /// SCEV overflow check.
-  const SmallVectorImpl<Instruction *> &getCastInsts() const { 
-    return RedundantCasts; 
+  const SmallVectorImpl<Instruction *> &getCastInsts() const {
+    return RedundantCasts;
   }
 
 private:
@@ -385,7 +385,7 @@
 bool formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist,
                               DominatorTree &DT, LoopInfo &LI);
 
-/// \brief Put loop into LCSSA form.
+/// Put loop into LCSSA form.
 ///
 /// Looks at all instructions in the loop which have uses outside of the
 /// current loop. For each, an LCSSA PHI node is inserted and the uses outside
@@ -398,7 +398,7 @@
 /// Returns true if any modifications are made to the loop.
 bool formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE);
 
-/// \brief Put a loop nest into LCSSA form.
+/// Put a loop nest into LCSSA form.
 ///
 /// This recursively forms LCSSA for a loop nest.
 ///
@@ -410,7 +410,7 @@
 bool formLCSSARecursively(Loop &L, DominatorTree &DT, LoopInfo *LI,
                           ScalarEvolution *SE);
 
-/// \brief Walk the specified region of the CFG (defined by all blocks
+/// Walk the specified region of the CFG (defined by all blocks
 /// dominated by the specified block, and that are in the current loop) in
 /// reverse depth first order w.r.t the DominatorTree. This allows us to visit
 /// uses before definitions, allowing us to sink a loop body in one pass without
@@ -423,7 +423,7 @@
                 AliasSetTracker *, LoopSafetyInfo *,
                 OptimizationRemarkEmitter *ORE);
 
-/// \brief Walk the specified region of the CFG (defined by all blocks
+/// Walk the specified region of the CFG (defined by all blocks
 /// dominated by the specified block, and that are in the current loop) in depth
 /// first order w.r.t the DominatorTree.  This allows us to visit definitions
 /// before uses, allowing us to hoist a loop body in one pass without iteration.
@@ -449,7 +449,7 @@
 void deleteDeadLoop(Loop *L, DominatorTree *DT, ScalarEvolution *SE,
                     LoopInfo *LI);
 
-/// \brief Try to promote memory values to scalars by sinking stores out of
+/// Try to promote memory values to scalars by sinking stores out of
 /// the loop and moving loads to before the loop.  We do this by looping over
 /// the stores in the loop, looking for stores to Must pointers which are
 /// loop invariant. It takes a set of must-alias values, Loop exit blocks
@@ -470,10 +470,10 @@
 SmallVector<DomTreeNode *, 16> collectChildrenInLoop(DomTreeNode *N,
                                                      const Loop *CurLoop);
 
-/// \brief Returns the instructions that use values defined in the loop.
+/// Returns the instructions that use values defined in the loop.
 SmallVector<Instruction *, 8> findDefsUsedOutsideOfLoop(Loop *L);
 
-/// \brief Find string metadata for loop
+/// Find string metadata for loop
 ///
 /// If it has a value (e.g. {"llvm.distribute", 1} return the value as an
 /// operand or null otherwise.  If the string metadata is not found return
@@ -481,11 +481,11 @@
 Optional<const MDOperand *> findStringMetadataForLoop(Loop *TheLoop,
                                                       StringRef Name);
 
-/// \brief Set input string into loop metadata by keeping other values intact.
+/// Set input string into loop metadata by keeping other values intact.
 void addStringMetadataToLoop(Loop *TheLoop, const char *MDString,
                              unsigned V = 0);
 
-/// \brief Get a loop's estimated trip count based on branch weight metadata.
+/// Get a loop's estimated trip count based on branch weight metadata.
 /// Returns 0 when the count is estimated to be 0, or None when a meaningful
 /// estimate can not be made.
 Optional<unsigned> getLoopEstimatedTripCount(Loop *L);
@@ -497,23 +497,32 @@
 /// getAnalysisUsage.
 void getLoopAnalysisUsage(AnalysisUsage &AU);
 
-/// Returns true if the hoister and sinker can handle this instruction.
-/// If SafetyInfo is null, we are checking for sinking instructions from
-/// preheader to loop body (no speculation).
-/// If SafetyInfo is not null, we are checking for hoisting/sinking
-/// instructions from loop body to preheader/exit. Check if the instruction
-/// can execute speculatively.
+/// Returns true if is legal to hoist or sink this instruction disregarding the
+/// possible introduction of faults.  Reasoning about potential faulting
+/// instructions is the responsibility of the caller since it is challenging to
+/// do efficiently from within this routine.
+/// \p TargetExecutesOncePerLoop is true only when it is guaranteed that the
+/// target executes at most once per execution of the loop body.  This is used
+/// to assess the legality of duplicating atomic loads.  Generally, this is
+/// true when moving out of loop and not true when moving into loops.  
 /// If \p ORE is set use it to emit optimization remarks.
 bool canSinkOrHoistInst(Instruction &I, AAResults *AA, DominatorTree *DT,
                         Loop *CurLoop, AliasSetTracker *CurAST,
-                        LoopSafetyInfo *SafetyInfo,
+                        bool TargetExecutesOncePerLoop,
                         OptimizationRemarkEmitter *ORE = nullptr);
 
+/// Generates an ordered vector reduction using extracts to reduce the value.
+Value *
+getOrderedReduction(IRBuilder<> &Builder, Value *Acc, Value *Src, unsigned Op,
+                    RecurrenceDescriptor::MinMaxRecurrenceKind MinMaxKind =
+                        RecurrenceDescriptor::MRK_Invalid,
+                    ArrayRef<Value *> RedOps = None);
+
 /// Generates a vector reduction using shufflevectors to reduce the value.
 Value *getShuffleReduction(IRBuilder<> &Builder, Value *Src, unsigned Op,
                            RecurrenceDescriptor::MinMaxRecurrenceKind
                                MinMaxKind = RecurrenceDescriptor::MRK_Invalid,
-                           ArrayRef<Value *> RedOps = ArrayRef<Value *>());
+                           ArrayRef<Value *> RedOps = None);
 
 /// Create a target reduction of the given vector. The reduction operation
 /// is described by the \p Opcode parameter. min/max reductions require
@@ -525,7 +534,7 @@
                             unsigned Opcode, Value *Src,
                             TargetTransformInfo::ReductionFlags Flags =
                                 TargetTransformInfo::ReductionFlags(),
-                            ArrayRef<Value *> RedOps = ArrayRef<Value *>());
+                            ArrayRef<Value *> RedOps = None);
 
 /// Create a generic target reduction using a recurrence descriptor \p Desc
 /// The target is queried to determine if intrinsics or shuffle sequences are
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/LoopVersioning.h b/linux-x64/clang/include/llvm/Transforms/Utils/LoopVersioning.h
index fa5d784..fcd734b 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/LoopVersioning.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/LoopVersioning.h
@@ -28,14 +28,14 @@
 class LoopInfo;
 class ScalarEvolution;
 
-/// \brief This class emits a version of the loop where run-time checks ensure
+/// This class emits a version of the loop where run-time checks ensure
 /// that may-alias pointers can't overlap.
 ///
 /// It currently only supports single-exit loops and assumes that the loop
 /// already has a preheader.
 class LoopVersioning {
 public:
-  /// \brief Expects LoopAccessInfo, Loop, LoopInfo, DominatorTree as input.
+  /// Expects LoopAccessInfo, Loop, LoopInfo, DominatorTree as input.
   /// It uses runtime check provided by the user. If \p UseLAIChecks is true,
   /// we will retain the default checks made by LAI. Otherwise, construct an
   /// object having no checks and we expect the user to add them.
@@ -43,7 +43,7 @@
                  DominatorTree *DT, ScalarEvolution *SE,
                  bool UseLAIChecks = true);
 
-  /// \brief Performs the CFG manipulation part of versioning the loop including
+  /// Performs the CFG manipulation part of versioning the loop including
   /// the DominatorTree and LoopInfo updates.
   ///
   /// The loop that was used to construct the class will be the "versioned" loop
@@ -58,38 +58,38 @@
   ///        transform L
   void versionLoop() { versionLoop(findDefsUsedOutsideOfLoop(VersionedLoop)); }
 
-  /// \brief Same but if the client has already precomputed the set of values
+  /// Same but if the client has already precomputed the set of values
   /// used outside the loop, this API will allows passing that.
   void versionLoop(const SmallVectorImpl<Instruction *> &DefsUsedOutside);
 
-  /// \brief Returns the versioned loop.  Control flows here if pointers in the
+  /// Returns the versioned loop.  Control flows here if pointers in the
   /// loop don't alias (i.e. all memchecks passed).  (This loop is actually the
   /// same as the original loop that we got constructed with.)
   Loop *getVersionedLoop() { return VersionedLoop; }
 
-  /// \brief Returns the fall-back loop.  Control flows here if pointers in the
+  /// Returns the fall-back loop.  Control flows here if pointers in the
   /// loop may alias (i.e. one of the memchecks failed).
   Loop *getNonVersionedLoop() { return NonVersionedLoop; }
 
-  /// \brief Sets the runtime alias checks for versioning the loop.
+  /// Sets the runtime alias checks for versioning the loop.
   void setAliasChecks(
       SmallVector<RuntimePointerChecking::PointerCheck, 4> Checks);
 
-  /// \brief Sets the runtime SCEV checks for versioning the loop.
+  /// Sets the runtime SCEV checks for versioning the loop.
   void setSCEVChecks(SCEVUnionPredicate Check);
 
-  /// \brief Annotate memory instructions in the versioned loop with no-alias
+  /// Annotate memory instructions in the versioned loop with no-alias
   /// metadata based on the memchecks issued.
   ///
   /// This is just wrapper that calls prepareNoAliasMetadata and
   /// annotateInstWithNoAlias on the instructions of the versioned loop.
   void annotateLoopWithNoAlias();
 
-  /// \brief Set up the aliasing scopes based on the memchecks.  This needs to
+  /// Set up the aliasing scopes based on the memchecks.  This needs to
   /// be called before the first call to annotateInstWithNoAlias.
   void prepareNoAliasMetadata();
 
-  /// \brief Add the noalias annotations to \p VersionedInst.
+  /// Add the noalias annotations to \p VersionedInst.
   ///
   /// \p OrigInst is the instruction corresponding to \p VersionedInst in the
   /// original loop.  Initialize the aliasing scopes with
@@ -98,50 +98,50 @@
                                const Instruction *OrigInst);
 
 private:
-  /// \brief Adds the necessary PHI nodes for the versioned loops based on the
+  /// Adds the necessary PHI nodes for the versioned loops based on the
   /// loop-defined values used outside of the loop.
   ///
   /// This needs to be called after versionLoop if there are defs in the loop
   /// that are used outside the loop.
   void addPHINodes(const SmallVectorImpl<Instruction *> &DefsUsedOutside);
 
-  /// \brief Add the noalias annotations to \p I.  Initialize the aliasing
+  /// Add the noalias annotations to \p I.  Initialize the aliasing
   /// scopes with prepareNoAliasMetadata once before this can be called.
   void annotateInstWithNoAlias(Instruction *I) {
     annotateInstWithNoAlias(I, I);
   }
 
-  /// \brief The original loop.  This becomes the "versioned" one.  I.e.,
+  /// The original loop.  This becomes the "versioned" one.  I.e.,
   /// control flows here if pointers in the loop don't alias.
   Loop *VersionedLoop;
-  /// \brief The fall-back loop.  I.e. control flows here if pointers in the
+  /// The fall-back loop.  I.e. control flows here if pointers in the
   /// loop may alias (memchecks failed).
   Loop *NonVersionedLoop;
 
-  /// \brief This maps the instructions from VersionedLoop to their counterpart
+  /// This maps the instructions from VersionedLoop to their counterpart
   /// in NonVersionedLoop.
   ValueToValueMapTy VMap;
 
-  /// \brief The set of alias checks that we are versioning for.
+  /// The set of alias checks that we are versioning for.
   SmallVector<RuntimePointerChecking::PointerCheck, 4> AliasChecks;
 
-  /// \brief The set of SCEV checks that we are versioning for.
+  /// The set of SCEV checks that we are versioning for.
   SCEVUnionPredicate Preds;
 
-  /// \brief Maps a pointer to the pointer checking group that the pointer
+  /// Maps a pointer to the pointer checking group that the pointer
   /// belongs to.
   DenseMap<const Value *, const RuntimePointerChecking::CheckingPtrGroup *>
       PtrToGroup;
 
-  /// \brief The alias scope corresponding to a pointer checking group.
+  /// The alias scope corresponding to a pointer checking group.
   DenseMap<const RuntimePointerChecking::CheckingPtrGroup *, MDNode *>
       GroupToScope;
 
-  /// \brief The list of alias scopes that a pointer checking group can't alias.
+  /// The list of alias scopes that a pointer checking group can't alias.
   DenseMap<const RuntimePointerChecking::CheckingPtrGroup *, MDNode *>
       GroupToNonAliasingScopeList;
 
-  /// \brief Analyses used.
+  /// Analyses used.
   const LoopAccessInfo &LAI;
   LoopInfo *LI;
   DominatorTree *DT;
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/ModuleUtils.h b/linux-x64/clang/include/llvm/Transforms/Utils/ModuleUtils.h
index 4b9bc82..14615c2 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/ModuleUtils.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/ModuleUtils.h
@@ -49,7 +49,7 @@
 Function *declareSanitizerInitFunction(Module &M, StringRef InitName,
                                        ArrayRef<Type *> InitArgTypes);
 
-/// \brief Creates sanitizer constructor function, and calls sanitizer's init
+/// Creates sanitizer constructor function, and calls sanitizer's init
 /// function from it.
 /// \return Returns pair of pointers to constructor, and init functions
 /// respectively.
@@ -62,10 +62,10 @@
 /// the list of public globals in the module.
 bool nameUnamedGlobals(Module &M);
 
-/// \brief Adds global values to the llvm.used list.
+/// Adds global values to the llvm.used list.
 void appendToUsed(Module &M, ArrayRef<GlobalValue *> Values);
 
-/// \brief Adds global values to the llvm.compiler.used list.
+/// Adds global values to the llvm.compiler.used list.
 void appendToCompilerUsed(Module &M, ArrayRef<GlobalValue *> Values);
 
 /// Filter out potentially dead comdat functions where other entries keep the
@@ -84,7 +84,7 @@
 void filterDeadComdatFunctions(
     Module &M, SmallVectorImpl<Function *> &DeadComdatFunctions);
 
-/// \brief Produce a unique identifier for this module by taking the MD5 sum of
+/// Produce a unique identifier for this module by taking the MD5 sum of
 /// the names of the module's strong external symbols that are not comdat
 /// members.
 ///
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/OrderedInstructions.h b/linux-x64/clang/include/llvm/Transforms/Utils/OrderedInstructions.h
index 165d4bd..7f57fde 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/OrderedInstructions.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/OrderedInstructions.h
@@ -35,6 +35,11 @@
   /// The dominator tree of the parent function.
   DominatorTree *DT;
 
+  /// Return true if the first instruction comes before the second in the
+  /// same basic block. It will create an ordered basic block, if it does
+  /// not yet exist in OBBMap.
+  bool localDominates(const Instruction *, const Instruction *) const;
+
 public:
   /// Constructor.
   OrderedInstructions(DominatorTree *DT) : DT(DT) {}
@@ -42,6 +47,12 @@
   /// Return true if first instruction dominates the second.
   bool dominates(const Instruction *, const Instruction *) const;
 
+  /// Return true if the first instruction comes before the second in the
+  /// dominator tree DFS traversal if they are in different basic blocks,
+  /// or if the first instruction comes before the second in the same basic
+  /// block.
+  bool dfsBefore(const Instruction *, const Instruction *) const;
+
   /// Invalidate the OrderedBasicBlock cache when its basic block changes.
   /// i.e. If an instruction is deleted or added to the basic block, the user
   /// should call this function to invalidate the OrderedBasicBlock cache for
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/PredicateInfo.h b/linux-x64/clang/include/llvm/Transforms/Utils/PredicateInfo.h
index 8150f15..b53eda7 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/PredicateInfo.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/PredicateInfo.h
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief  This file implements the PredicateInfo analysis, which creates an Extended
+///  This file implements the PredicateInfo analysis, which creates an Extended
 /// SSA form for operations used in branch comparisons and llvm.assume
 /// comparisons.
 ///
@@ -31,7 +31,7 @@
 /// %cmp = icmp eq i32, %x, 50
 /// br i1 %cmp, label %true, label %false
 /// true:
-/// %x.0 = call @llvm.ssa_copy.i32(i32 %x)
+/// %x.0 = call \@llvm.ssa_copy.i32(i32 %x)
 /// ret i32 %x.0
 /// false:
 /// ret i32 1
@@ -54,6 +54,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/SmallSet.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/ilist.h"
 #include "llvm/ADT/ilist_node.h"
@@ -69,6 +70,7 @@
 #include "llvm/IR/Use.h"
 #include "llvm/IR/User.h"
 #include "llvm/IR/Value.h"
+#include "llvm/IR/ValueHandle.h"
 #include "llvm/Pass.h"
 #include "llvm/PassAnalysisSupport.h"
 #include "llvm/Support/Casting.h"
@@ -193,7 +195,7 @@
 struct ValueDFS;
 }
 
-/// \brief Encapsulates PredicateInfo, including all data associated with memory
+/// Encapsulates PredicateInfo, including all data associated with memory
 /// accesses.
 class PredicateInfo {
 private:
@@ -261,6 +263,8 @@
   // The set of edges along which we can only handle phi uses, due to critical
   // edges.
   DenseSet<std::pair<BasicBlock *, BasicBlock *>> EdgeUsesOnly;
+  // The set of ssa_copy declarations we created with our custom mangling.
+  SmallSet<AssertingVH<Function>, 20> CreatedDeclarations;
 };
 
 // This pass does eager building and then printing of PredicateInfo. It is used
@@ -275,7 +279,7 @@
   void getAnalysisUsage(AnalysisUsage &AU) const override;
 };
 
-/// \brief Printer pass for \c PredicateInfo.
+/// Printer pass for \c PredicateInfo.
 class PredicateInfoPrinterPass
     : public PassInfoMixin<PredicateInfoPrinterPass> {
   raw_ostream &OS;
@@ -285,7 +289,7 @@
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 
-/// \brief Verifier pass for \c PredicateInfo.
+/// Verifier pass for \c PredicateInfo.
 struct PredicateInfoVerifierPass : PassInfoMixin<PredicateInfoVerifierPass> {
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/PromoteMemToReg.h b/linux-x64/clang/include/llvm/Transforms/Utils/PromoteMemToReg.h
index bb8a61a..5ddfbe2 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/PromoteMemToReg.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/PromoteMemToReg.h
@@ -23,7 +23,7 @@
 class AliasSetTracker;
 class AssumptionCache;
 
-/// \brief Return true if this alloca is legal for promotion.
+/// Return true if this alloca is legal for promotion.
 ///
 /// This is true if there are only loads, stores, and lifetime markers
 /// (transitively) using this alloca. This also enforces that there is only
@@ -31,7 +31,7 @@
 /// markers.
 bool isAllocaPromotable(const AllocaInst *AI);
 
-/// \brief Promote the specified list of alloca instructions into scalar
+/// Promote the specified list of alloca instructions into scalar
 /// registers, inserting PHI nodes as appropriate.
 ///
 /// This function makes use of DominanceFrontier information.  This function
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdater.h b/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdater.h
index 6cd9f15..4a79116 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdater.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdater.h
@@ -30,7 +30,7 @@
 class Use;
 class Value;
 
-/// \brief Helper class for SSA formation on a set of values defined in
+/// Helper class for SSA formation on a set of values defined in
 /// multiple blocks.
 ///
 /// This is used when code duplication or another unstructured
@@ -62,25 +62,25 @@
   SSAUpdater &operator=(const SSAUpdater &) = delete;
   ~SSAUpdater();
 
-  /// \brief Reset this object to get ready for a new set of SSA updates with
+  /// Reset this object to get ready for a new set of SSA updates with
   /// type 'Ty'.
   ///
   /// PHI nodes get a name based on 'Name'.
   void Initialize(Type *Ty, StringRef Name);
 
-  /// \brief Indicate that a rewritten value is available in the specified block
+  /// Indicate that a rewritten value is available in the specified block
   /// with the specified value.
   void AddAvailableValue(BasicBlock *BB, Value *V);
 
-  /// \brief Return true if the SSAUpdater already has a value for the specified
+  /// Return true if the SSAUpdater already has a value for the specified
   /// block.
   bool HasValueForBlock(BasicBlock *BB) const;
 
-  /// \brief Construct SSA form, materializing a value that is live at the end
+  /// Construct SSA form, materializing a value that is live at the end
   /// of the specified block.
   Value *GetValueAtEndOfBlock(BasicBlock *BB);
 
-  /// \brief Construct SSA form, materializing a value that is live in the
+  /// Construct SSA form, materializing a value that is live in the
   /// middle of the specified block.
   ///
   /// \c GetValueInMiddleOfBlock is the same as \c GetValueAtEndOfBlock except
@@ -102,7 +102,7 @@
   /// merge the appropriate values, and this value isn't live out of the block.
   Value *GetValueInMiddleOfBlock(BasicBlock *BB);
 
-  /// \brief Rewrite a use of the symbolic value.
+  /// Rewrite a use of the symbolic value.
   ///
   /// This handles PHI nodes, which use their value in the corresponding
   /// predecessor. Note that this will not work if the use is supposed to be
@@ -111,7 +111,7 @@
   /// be below it.
   void RewriteUse(Use &U);
 
-  /// \brief Rewrite a use like \c RewriteUse but handling in-block definitions.
+  /// Rewrite a use like \c RewriteUse but handling in-block definitions.
   ///
   /// This version of the method can rewrite uses in the same block as
   /// a definition, because it assumes that all uses of a value are below any
@@ -122,7 +122,7 @@
   Value *GetValueAtEndOfBlockInternal(BasicBlock *BB);
 };
 
-/// \brief Helper class for promoting a collection of loads and stores into SSA
+/// Helper class for promoting a collection of loads and stores into SSA
 /// Form using the SSAUpdater.
 ///
 /// This handles complexities that SSAUpdater doesn't, such as multiple loads
@@ -139,32 +139,32 @@
                        SSAUpdater &S, StringRef Name = StringRef());
   virtual ~LoadAndStorePromoter() = default;
 
-  /// \brief This does the promotion.
+  /// This does the promotion.
   ///
   /// Insts is a list of loads and stores to promote, and Name is the basename
   /// for the PHIs to insert. After this is complete, the loads and stores are
   /// removed from the code.
   void run(const SmallVectorImpl<Instruction *> &Insts) const;
 
-  /// \brief Return true if the specified instruction is in the Inst list.
+  /// Return true if the specified instruction is in the Inst list.
   ///
   /// The Insts list is the one passed into the constructor. Clients should
   /// implement this with a more efficient version if possible.
   virtual bool isInstInList(Instruction *I,
                             const SmallVectorImpl<Instruction *> &Insts) const;
 
-  /// \brief This hook is invoked after all the stores are found and inserted as
+  /// This hook is invoked after all the stores are found and inserted as
   /// available values.
   virtual void doExtraRewritesBeforeFinalDeletion() const {}
 
-  /// \brief Clients can choose to implement this to get notified right before
+  /// Clients can choose to implement this to get notified right before
   /// a load is RAUW'd another value.
   virtual void replaceLoadWithValue(LoadInst *LI, Value *V) const {}
 
-  /// \brief Called before each instruction is deleted.
+  /// Called before each instruction is deleted.
   virtual void instructionDeleted(Instruction *I) const {}
 
-  /// \brief Called to update debug info associated with the instruction.
+  /// Called to update debug info associated with the instruction.
   virtual void updateDebugInfo(Instruction *I) const {}
 };
 
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdaterBulk.h b/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdaterBulk.h
new file mode 100644
index 0000000..53a608f
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdaterBulk.h
@@ -0,0 +1,92 @@
+//===- SSAUpdaterBulk.h - Unstructured SSA Update Tool ----------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file declares the SSAUpdaterBulk class.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H
+#define LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H
+
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/IR/PredIteratorCache.h"
+
+namespace llvm {
+
+class BasicBlock;
+class PHINode;
+template <typename T> class SmallVectorImpl;
+class Type;
+class Use;
+class Value;
+class DominatorTree;
+
+/// Helper class for SSA formation on a set of values defined in multiple
+/// blocks.
+///
+/// This is used when code duplication or another unstructured transformation
+/// wants to rewrite a set of uses of one value with uses of a set of values.
+/// The update is done only when RewriteAllUses is called, all other methods are
+/// used for book-keeping. That helps to share some common computations between
+/// updates of different uses (which is not the case when traditional SSAUpdater
+/// is used).
+class SSAUpdaterBulk {
+  struct RewriteInfo {
+    DenseMap<BasicBlock *, Value *> Defines;
+    SmallVector<Use *, 4> Uses;
+    StringRef Name;
+    Type *Ty;
+    RewriteInfo(){};
+    RewriteInfo(StringRef &N, Type *T) : Name(N), Ty(T){};
+  };
+  SmallVector<RewriteInfo, 4> Rewrites;
+
+  PredIteratorCache PredCache;
+
+  Value *computeValueAt(BasicBlock *BB, RewriteInfo &R, DominatorTree *DT);
+
+public:
+  explicit SSAUpdaterBulk(){};
+  SSAUpdaterBulk(const SSAUpdaterBulk &) = delete;
+  SSAUpdaterBulk &operator=(const SSAUpdaterBulk &) = delete;
+  ~SSAUpdaterBulk(){};
+
+  /// Add a new variable to the SSA rewriter. This needs to be called before
+  /// AddAvailableValue or AddUse calls. The return value is the variable ID,
+  /// which needs to be passed to AddAvailableValue and AddUse.
+  unsigned AddVariable(StringRef Name, Type *Ty);
+
+  /// Indicate that a rewritten value is available in the specified block with
+  /// the specified value.
+  void AddAvailableValue(unsigned Var, BasicBlock *BB, Value *V);
+
+  /// Record a use of the symbolic value. This use will be updated with a
+  /// rewritten value when RewriteAllUses is called.
+  void AddUse(unsigned Var, Use *U);
+
+  /// Return true if the SSAUpdater already has a value for the specified
+  /// variable in the specified block.
+  bool HasValueForBlock(unsigned Var, BasicBlock *BB);
+
+  /// Perform all the necessary updates, including new PHI-nodes insertion and
+  /// the requested uses update.
+  ///
+  /// The function requires dominator tree DT, which is used for computing
+  /// locations for new phi-nodes insertions. If a nonnull pointer to a vector
+  /// InsertedPHIs is passed, all the new phi-nodes will be added to this
+  /// vector.
+  void RewriteAllUses(DominatorTree *DT,
+                      SmallVectorImpl<PHINode *> *InsertedPHIs = nullptr);
+};
+
+} // end namespace llvm
+
+#endif // LLVM_TRANSFORMS_UTILS_SSAUPDATERBULK_H
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdaterImpl.h b/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
index 3c8bd17..b7649ba 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
@@ -379,7 +379,7 @@
         Traits::AddPHIOperand(PHI, PredInfo->AvailableVal, Pred);
       }
 
-      DEBUG(dbgs() << "  Inserted PHI: " << *PHI << "\n");
+      LLVM_DEBUG(dbgs() << "  Inserted PHI: " << *PHI << "\n");
 
       // If the client wants to know about all new instructions, tell it.
       if (InsertedPHIs) InsertedPHIs->push_back(PHI);
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/SimplifyInstructions.h b/linux-x64/clang/include/llvm/Transforms/Utils/SimplifyInstructions.h
deleted file mode 100644
index 3f83861..0000000
--- a/linux-x64/clang/include/llvm/Transforms/Utils/SimplifyInstructions.h
+++ /dev/null
@@ -1,31 +0,0 @@
-//===- SimplifyInstructions.h - Remove redundant instructions ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This is a utility pass used for testing the InstructionSimplify analysis.
-// The analysis is applied to every instruction, and if it simplifies then the
-// instruction is replaced by the simplification.  If you are looking for a pass
-// that performs serious instruction folding, use the instcombine pass instead.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TRANSFORMS_UTILS_SIMPLIFYINSTRUCTIONS_H
-#define LLVM_TRANSFORMS_UTILS_SIMPLIFYINSTRUCTIONS_H
-
-#include "llvm/IR/PassManager.h"
-
-namespace llvm {
-
-/// This pass removes redundant instructions.
-class InstSimplifierPass : public PassInfoMixin<InstSimplifierPass> {
-public:
-  PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
-};
-} // end namespace llvm
-
-#endif // LLVM_TRANSFORMS_UTILS_SIMPLIFYINSTRUCTIONS_H
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/SimplifyLibCalls.h b/linux-x64/clang/include/llvm/Transforms/Utils/SimplifyLibCalls.h
index 73a62f5..d007f90 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/SimplifyLibCalls.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/SimplifyLibCalls.h
@@ -30,7 +30,7 @@
 class Function;
 class OptimizationRemarkEmitter;
 
-/// \brief This class implements simplifications for calls to fortified library
+/// This class implements simplifications for calls to fortified library
 /// functions (__st*cpy_chk, __memcpy_chk, __memmove_chk, __memset_chk), to,
 /// when possible, replace them with their non-checking counterparts.
 /// Other optimizations can also be done, but it's possible to disable them and
@@ -45,7 +45,7 @@
   FortifiedLibCallSimplifier(const TargetLibraryInfo *TLI,
                              bool OnlyLowerUnknownSize = false);
 
-  /// \brief Take the given call instruction and return a more
+  /// Take the given call instruction and return a more
   /// optimal value to replace the instruction with or 0 if a more
   /// optimal form can't be found.
   /// The call must not be an indirect call.
@@ -60,7 +60,7 @@
   Value *optimizeStrpCpyChk(CallInst *CI, IRBuilder<> &B, LibFunc Func);
   Value *optimizeStrpNCpyChk(CallInst *CI, IRBuilder<> &B, LibFunc Func);
 
-  /// \brief Checks whether the call \p CI to a fortified libcall is foldable
+  /// Checks whether the call \p CI to a fortified libcall is foldable
   /// to the non-fortified version.
   bool isFortifiedCallFoldable(CallInst *CI, unsigned ObjSizeOp,
                                unsigned SizeOp, bool isString);
@@ -78,13 +78,13 @@
   bool UnsafeFPShrink;
   function_ref<void(Instruction *, Value *)> Replacer;
 
-  /// \brief Internal wrapper for RAUW that is the default implementation.
+  /// Internal wrapper for RAUW that is the default implementation.
   ///
   /// Other users may provide an alternate function with this signature instead
   /// of this one.
   static void replaceAllUsesWithDefault(Instruction *I, Value *With);
 
-  /// \brief Replace an instruction's uses with a value using our replacer.
+  /// Replace an instruction's uses with a value using our replacer.
   void replaceAllUsesWith(Instruction *I, Value *With);
 
 public:
@@ -124,6 +124,7 @@
   Value *optimizeMemCpy(CallInst *CI, IRBuilder<> &B);
   Value *optimizeMemMove(CallInst *CI, IRBuilder<> &B);
   Value *optimizeMemSet(CallInst *CI, IRBuilder<> &B);
+  Value *optimizeRealloc(CallInst *CI, IRBuilder<> &B);
   Value *optimizeWcslen(CallInst *CI, IRBuilder<> &B);
   // Wrapper for all String/Memory Library Call Optimizations
   Value *optimizeStringMemoryLibCall(CallInst *CI, IRBuilder<> &B);
@@ -150,15 +151,22 @@
   Value *optimizeIsDigit(CallInst *CI, IRBuilder<> &B);
   Value *optimizeIsAscii(CallInst *CI, IRBuilder<> &B);
   Value *optimizeToAscii(CallInst *CI, IRBuilder<> &B);
+  Value *optimizeAtoi(CallInst *CI, IRBuilder<> &B);
+  Value *optimizeStrtol(CallInst *CI, IRBuilder<> &B);
 
   // Formatting and IO Library Call Optimizations
   Value *optimizeErrorReporting(CallInst *CI, IRBuilder<> &B,
                                 int StreamArg = -1);
   Value *optimizePrintF(CallInst *CI, IRBuilder<> &B);
   Value *optimizeSPrintF(CallInst *CI, IRBuilder<> &B);
+  Value *optimizeSnPrintF(CallInst *CI, IRBuilder<> &B);
   Value *optimizeFPrintF(CallInst *CI, IRBuilder<> &B);
   Value *optimizeFWrite(CallInst *CI, IRBuilder<> &B);
+  Value *optimizeFRead(CallInst *CI, IRBuilder<> &B);
   Value *optimizeFPuts(CallInst *CI, IRBuilder<> &B);
+  Value *optimizeFGets(CallInst *CI, IRBuilder<> &B);
+  Value *optimizeFPutc(CallInst *CI, IRBuilder<> &B);
+  Value *optimizeFGetc(CallInst *CI, IRBuilder<> &B);
   Value *optimizePuts(CallInst *CI, IRBuilder<> &B);
 
   // Helper methods
@@ -169,6 +177,7 @@
                       SmallVectorImpl<CallInst *> &SinCosCalls);
   Value *optimizePrintFString(CallInst *CI, IRBuilder<> &B);
   Value *optimizeSPrintFString(CallInst *CI, IRBuilder<> &B);
+  Value *optimizeSnPrintFString(CallInst *CI, IRBuilder<> &B);
   Value *optimizeFPrintFString(CallInst *CI, IRBuilder<> &B);
 
   /// hasFloatVersion - Checks if there is a float version of the specified
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/SymbolRewriter.h b/linux-x64/clang/include/llvm/Transforms/Utils/SymbolRewriter.h
index e0caf77..5f6488e 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/SymbolRewriter.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/SymbolRewriter.h
@@ -134,7 +134,7 @@
 private:
   void loadAndParseMapFiles();
 
-  SymbolRewriter::RewriteDescriptorList Descriptors;  
+  SymbolRewriter::RewriteDescriptorList Descriptors;
 };
 
 } // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/Transforms/Utils/UnrollLoop.h b/linux-x64/clang/include/llvm/Transforms/Utils/UnrollLoop.h
index 3983637..a6b84af 100644
--- a/linux-x64/clang/include/llvm/Transforms/Utils/UnrollLoop.h
+++ b/linux-x64/clang/include/llvm/Transforms/Utils/UnrollLoop.h
@@ -19,11 +19,13 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Analysis/TargetTransformInfo.h"
+#include "llvm/Transforms/Utils/ValueMapper.h"
 
 namespace llvm {
 
 class AssumptionCache;
 class BasicBlock;
+class DependenceInfo;
 class DominatorTree;
 class Loop;
 class LoopInfo;
@@ -73,11 +75,52 @@
                       TargetTransformInfo::UnrollingPreferences &UP,
                       unsigned &TripCount, ScalarEvolution &SE);
 
+bool canPeel(Loop *L);
+
 bool peelLoop(Loop *L, unsigned PeelCount, LoopInfo *LI, ScalarEvolution *SE,
               DominatorTree *DT, AssumptionCache *AC, bool PreserveLCSSA);
 
+LoopUnrollResult UnrollAndJamLoop(Loop *L, unsigned Count, unsigned TripCount,
+                                  unsigned TripMultiple, bool UnrollRemainder,
+                                  LoopInfo *LI, ScalarEvolution *SE,
+                                  DominatorTree *DT, AssumptionCache *AC,
+                                  OptimizationRemarkEmitter *ORE);
+
+bool isSafeToUnrollAndJam(Loop *L, ScalarEvolution &SE, DominatorTree &DT,
+                          DependenceInfo &DI);
+
+bool computeUnrollCount(Loop *L, const TargetTransformInfo &TTI,
+                        DominatorTree &DT, LoopInfo *LI, ScalarEvolution &SE,
+                        const SmallPtrSetImpl<const Value *> &EphValues,
+                        OptimizationRemarkEmitter *ORE, unsigned &TripCount,
+                        unsigned MaxTripCount, unsigned &TripMultiple,
+                        unsigned LoopSize,
+                        TargetTransformInfo::UnrollingPreferences &UP,
+                        bool &UseUpperBound);
+
+BasicBlock *foldBlockIntoPredecessor(BasicBlock *BB, LoopInfo *LI,
+                                     ScalarEvolution *SE, DominatorTree *DT);
+
+void remapInstruction(Instruction *I, ValueToValueMapTy &VMap);
+
+void simplifyLoopAfterUnroll(Loop *L, bool SimplifyIVs, LoopInfo *LI,
+                             ScalarEvolution *SE, DominatorTree *DT,
+                             AssumptionCache *AC);
+
 MDNode *GetUnrollMetadata(MDNode *LoopID, StringRef Name);
 
+TargetTransformInfo::UnrollingPreferences gatherUnrollingPreferences(
+    Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI, int OptLevel,
+    Optional<unsigned> UserThreshold, Optional<unsigned> UserCount,
+    Optional<bool> UserAllowPartial, Optional<bool> UserRuntime,
+    Optional<bool> UserUpperBound, Optional<bool> UserAllowPeeling);
+
+unsigned ApproximateLoopSize(const Loop *L, unsigned &NumCalls,
+                             bool &NotDuplicatable, bool &Convergent,
+                             const TargetTransformInfo &TTI,
+                             const SmallPtrSetImpl<const Value *> &EphValues,
+                             unsigned BEInsns);
+
 } // end namespace llvm
 
 #endif // LLVM_TRANSFORMS_UTILS_UNROLLLOOP_H
diff --git a/linux-x64/clang/include/llvm/Transforms/Vectorize.h b/linux-x64/clang/include/llvm/Transforms/Vectorize.h
index 19845e4..950af7f 100644
--- a/linux-x64/clang/include/llvm/Transforms/Vectorize.h
+++ b/linux-x64/clang/include/llvm/Transforms/Vectorize.h
@@ -21,88 +21,88 @@
 class Pass;
 
 //===----------------------------------------------------------------------===//
-/// @brief Vectorize configuration.
+/// Vectorize configuration.
 struct VectorizeConfig {
   //===--------------------------------------------------------------------===//
   // Target architecture related parameters
 
-  /// @brief The size of the native vector registers.
+  /// The size of the native vector registers.
   unsigned VectorBits;
 
-  /// @brief Vectorize boolean values.
+  /// Vectorize boolean values.
   bool VectorizeBools;
 
-  /// @brief Vectorize integer values.
+  /// Vectorize integer values.
   bool VectorizeInts;
 
-  /// @brief Vectorize floating-point values.
+  /// Vectorize floating-point values.
   bool VectorizeFloats;
 
-  /// @brief Vectorize pointer values.
+  /// Vectorize pointer values.
   bool VectorizePointers;
 
-  /// @brief Vectorize casting (conversion) operations.
+  /// Vectorize casting (conversion) operations.
   bool VectorizeCasts;
 
-  /// @brief Vectorize floating-point math intrinsics.
+  /// Vectorize floating-point math intrinsics.
   bool VectorizeMath;
 
-  /// @brief Vectorize bit intrinsics.
+  /// Vectorize bit intrinsics.
   bool VectorizeBitManipulations;
 
-  /// @brief Vectorize the fused-multiply-add intrinsic.
+  /// Vectorize the fused-multiply-add intrinsic.
   bool VectorizeFMA;
 
-  /// @brief Vectorize select instructions.
+  /// Vectorize select instructions.
   bool VectorizeSelect;
 
-  /// @brief Vectorize comparison instructions.
+  /// Vectorize comparison instructions.
   bool VectorizeCmp;
 
-  /// @brief Vectorize getelementptr instructions.
+  /// Vectorize getelementptr instructions.
   bool VectorizeGEP;
 
-  /// @brief Vectorize loads and stores.
+  /// Vectorize loads and stores.
   bool VectorizeMemOps;
 
-  /// @brief Only generate aligned loads and stores.
+  /// Only generate aligned loads and stores.
   bool AlignedOnly;
 
   //===--------------------------------------------------------------------===//
   // Misc parameters
 
-  /// @brief The required chain depth for vectorization.
+  /// The required chain depth for vectorization.
   unsigned ReqChainDepth;
 
-  /// @brief The maximum search distance for instruction pairs.
+  /// The maximum search distance for instruction pairs.
   unsigned SearchLimit;
 
-  /// @brief The maximum number of candidate pairs with which to use a full
+  /// The maximum number of candidate pairs with which to use a full
   ///        cycle check.
   unsigned MaxCandPairsForCycleCheck;
 
-  /// @brief Replicating one element to a pair breaks the chain.
+  /// Replicating one element to a pair breaks the chain.
   bool SplatBreaksChain;
 
-  /// @brief The maximum number of pairable instructions per group.
+  /// The maximum number of pairable instructions per group.
   unsigned MaxInsts;
 
-  /// @brief The maximum number of candidate instruction pairs per group.
+  /// The maximum number of candidate instruction pairs per group.
   unsigned MaxPairs;
 
-  /// @brief The maximum number of pairing iterations.
+  /// The maximum number of pairing iterations.
   unsigned MaxIter;
 
-  /// @brief Don't try to form odd-length vectors.
+  /// Don't try to form odd-length vectors.
   bool Pow2LenOnly;
 
-  /// @brief Don't boost the chain-depth contribution of loads and stores.
+  /// Don't boost the chain-depth contribution of loads and stores.
   bool NoMemOpBoost;
 
-  /// @brief Use a fast instruction dependency analysis.
+  /// Use a fast instruction dependency analysis.
   bool FastDep;
 
-  /// @brief Initialize the VectorizeConfig from command line options.
+  /// Initialize the VectorizeConfig from command line options.
   VectorizeConfig();
 };
 
@@ -120,7 +120,7 @@
 Pass *createSLPVectorizerPass();
 
 //===----------------------------------------------------------------------===//
-/// @brief Vectorize the BasicBlock.
+/// Vectorize the BasicBlock.
 ///
 /// @param BB The BasicBlock to be vectorized
 /// @param P  The current running pass, should require AliasAnalysis and
diff --git a/linux-x64/clang/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h b/linux-x64/clang/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
new file mode 100644
index 0000000..224879c
--- /dev/null
+++ b/linux-x64/clang/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
@@ -0,0 +1,482 @@
+//===- llvm/Transforms/Vectorize/LoopVectorizationLegality.h ----*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+/// \file
+/// This file defines the LoopVectorizationLegality class. Original code
+/// in Loop Vectorizer has been moved out to its own file for modularity
+/// and reusability.
+///
+/// Currently, it works for innermost loop vectorization. Extending this to
+/// outer loop vectorization is a TODO item.
+///
+/// Also provides:
+/// 1) LoopVectorizeHints class which keeps a number of loop annotations
+/// locally for easy look up. It has the ability to write them back as
+/// loop metadata, upon request.
+/// 2) LoopVectorizationRequirements class for lazy bail out for the purpose
+/// of reporting useful failure to vectorize message.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TRANSFORMS_VECTORIZE_LOOPVECTORIZATIONLEGALITY_H
+#define LLVM_TRANSFORMS_VECTORIZE_LOOPVECTORIZATIONLEGALITY_H
+
+#include "llvm/ADT/MapVector.h"
+#include "llvm/Analysis/LoopAccessAnalysis.h"
+#include "llvm/Analysis/OptimizationRemarkEmitter.h"
+#include "llvm/Transforms/Utils/LoopUtils.h"
+
+namespace llvm {
+
+/// Create an analysis remark that explains why vectorization failed
+///
+/// \p PassName is the name of the pass (e.g. can be AlwaysPrint).  \p
+/// RemarkName is the identifier for the remark.  If \p I is passed it is an
+/// instruction that prevents vectorization.  Otherwise \p TheLoop is used for
+/// the location of the remark.  \return the remark object that can be
+/// streamed to.
+OptimizationRemarkAnalysis createLVMissedAnalysis(const char *PassName,
+                                                  StringRef RemarkName,
+                                                  Loop *TheLoop,
+                                                  Instruction *I = nullptr);
+
+/// Utility class for getting and setting loop vectorizer hints in the form
+/// of loop metadata.
+/// This class keeps a number of loop annotations locally (as member variables)
+/// and can, upon request, write them back as metadata on the loop. It will
+/// initially scan the loop for existing metadata, and will update the local
+/// values based on information in the loop.
+/// We cannot write all values to metadata, as the mere presence of some info,
+/// for example 'force', means a decision has been made. So, we need to be
+/// careful NOT to add them if the user hasn't specifically asked so.
+class LoopVectorizeHints {
+  enum HintKind { HK_WIDTH, HK_UNROLL, HK_FORCE, HK_ISVECTORIZED };
+
+  /// Hint - associates name and validation with the hint value.
+  struct Hint {
+    const char *Name;
+    unsigned Value; // This may have to change for non-numeric values.
+    HintKind Kind;
+
+    Hint(const char *Name, unsigned Value, HintKind Kind)
+        : Name(Name), Value(Value), Kind(Kind) {}
+
+    bool validate(unsigned Val);
+  };
+
+  /// Vectorization width.
+  Hint Width;
+
+  /// Vectorization interleave factor.
+  Hint Interleave;
+
+  /// Vectorization forced
+  Hint Force;
+
+  /// Already Vectorized
+  Hint IsVectorized;
+
+  /// Return the loop metadata prefix.
+  static StringRef Prefix() { return "llvm.loop."; }
+
+  /// True if there is any unsafe math in the loop.
+  bool PotentiallyUnsafe = false;
+
+public:
+  enum ForceKind {
+    FK_Undefined = -1, ///< Not selected.
+    FK_Disabled = 0,   ///< Forcing disabled.
+    FK_Enabled = 1,    ///< Forcing enabled.
+  };
+
+  LoopVectorizeHints(const Loop *L, bool DisableInterleaving,
+                     OptimizationRemarkEmitter &ORE);
+
+  /// Mark the loop L as already vectorized by setting the width to 1.
+  void setAlreadyVectorized() {
+    IsVectorized.Value = 1;
+    Hint Hints[] = {IsVectorized};
+    writeHintsToMetadata(Hints);
+  }
+
+  bool allowVectorization(Function *F, Loop *L, bool AlwaysVectorize) const;
+
+  /// Dumps all the hint information.
+  void emitRemarkWithHints() const;
+
+  unsigned getWidth() const { return Width.Value; }
+  unsigned getInterleave() const { return Interleave.Value; }
+  unsigned getIsVectorized() const { return IsVectorized.Value; }
+  enum ForceKind getForce() const { return (ForceKind)Force.Value; }
+
+  /// If hints are provided that force vectorization, use the AlwaysPrint
+  /// pass name to force the frontend to print the diagnostic.
+  const char *vectorizeAnalysisPassName() const;
+
+  bool allowReordering() const {
+    // When enabling loop hints are provided we allow the vectorizer to change
+    // the order of operations that is given by the scalar loop. This is not
+    // enabled by default because can be unsafe or inefficient. For example,
+    // reordering floating-point operations will change the way round-off
+    // error accumulates in the loop.
+    return getForce() == LoopVectorizeHints::FK_Enabled || getWidth() > 1;
+  }
+
+  bool isPotentiallyUnsafe() const {
+    // Avoid FP vectorization if the target is unsure about proper support.
+    // This may be related to the SIMD unit in the target not handling
+    // IEEE 754 FP ops properly, or bad single-to-double promotions.
+    // Otherwise, a sequence of vectorized loops, even without reduction,
+    // could lead to different end results on the destination vectors.
+    return getForce() != LoopVectorizeHints::FK_Enabled && PotentiallyUnsafe;
+  }
+
+  void setPotentiallyUnsafe() { PotentiallyUnsafe = true; }
+
+private:
+  /// Find hints specified in the loop metadata and update local values.
+  void getHintsFromMetadata();
+
+  /// Checks string hint with one operand and set value if valid.
+  void setHint(StringRef Name, Metadata *Arg);
+
+  /// Create a new hint from name / value pair.
+  MDNode *createHintMetadata(StringRef Name, unsigned V) const;
+
+  /// Matches metadata with hint name.
+  bool matchesHintMetadataName(MDNode *Node, ArrayRef<Hint> HintTypes);
+
+  /// Sets current hints into loop metadata, keeping other values intact.
+  void writeHintsToMetadata(ArrayRef<Hint> HintTypes);
+
+  /// The loop these hints belong to.
+  const Loop *TheLoop;
+
+  /// Interface to emit optimization remarks.
+  OptimizationRemarkEmitter &ORE;
+};
+
+/// This holds vectorization requirements that must be verified late in
+/// the process. The requirements are set by legalize and costmodel. Once
+/// vectorization has been determined to be possible and profitable the
+/// requirements can be verified by looking for metadata or compiler options.
+/// For example, some loops require FP commutativity which is only allowed if
+/// vectorization is explicitly specified or if the fast-math compiler option
+/// has been provided.
+/// Late evaluation of these requirements allows helpful diagnostics to be
+/// composed that tells the user what need to be done to vectorize the loop. For
+/// example, by specifying #pragma clang loop vectorize or -ffast-math. Late
+/// evaluation should be used only when diagnostics can generated that can be
+/// followed by a non-expert user.
+class LoopVectorizationRequirements {
+public:
+  LoopVectorizationRequirements(OptimizationRemarkEmitter &ORE) : ORE(ORE) {}
+
+  void addUnsafeAlgebraInst(Instruction *I) {
+    // First unsafe algebra instruction.
+    if (!UnsafeAlgebraInst)
+      UnsafeAlgebraInst = I;
+  }
+
+  void addRuntimePointerChecks(unsigned Num) { NumRuntimePointerChecks = Num; }
+
+  bool doesNotMeet(Function *F, Loop *L, const LoopVectorizeHints &Hints);
+
+private:
+  unsigned NumRuntimePointerChecks = 0;
+  Instruction *UnsafeAlgebraInst = nullptr;
+
+  /// Interface to emit optimization remarks.
+  OptimizationRemarkEmitter &ORE;
+};
+
+/// LoopVectorizationLegality checks if it is legal to vectorize a loop, and
+/// to what vectorization factor.
+/// This class does not look at the profitability of vectorization, only the
+/// legality. This class has two main kinds of checks:
+/// * Memory checks - The code in canVectorizeMemory checks if vectorization
+///   will change the order of memory accesses in a way that will change the
+///   correctness of the program.
+/// * Scalars checks - The code in canVectorizeInstrs and canVectorizeMemory
+/// checks for a number of different conditions, such as the availability of a
+/// single induction variable, that all types are supported and vectorize-able,
+/// etc. This code reflects the capabilities of InnerLoopVectorizer.
+/// This class is also used by InnerLoopVectorizer for identifying
+/// induction variable and the different reduction variables.
+class LoopVectorizationLegality {
+public:
+  LoopVectorizationLegality(
+      Loop *L, PredicatedScalarEvolution &PSE, DominatorTree *DT,
+      TargetLibraryInfo *TLI, AliasAnalysis *AA, Function *F,
+      std::function<const LoopAccessInfo &(Loop &)> *GetLAA, LoopInfo *LI,
+      OptimizationRemarkEmitter *ORE, LoopVectorizationRequirements *R,
+      LoopVectorizeHints *H, DemandedBits *DB, AssumptionCache *AC)
+      : TheLoop(L), LI(LI), PSE(PSE), TLI(TLI), DT(DT), GetLAA(GetLAA),
+        ORE(ORE), Requirements(R), Hints(H), DB(DB), AC(AC) {}
+
+  /// ReductionList contains the reduction descriptors for all
+  /// of the reductions that were found in the loop.
+  using ReductionList = DenseMap<PHINode *, RecurrenceDescriptor>;
+
+  /// InductionList saves induction variables and maps them to the
+  /// induction descriptor.
+  using InductionList = MapVector<PHINode *, InductionDescriptor>;
+
+  /// RecurrenceSet contains the phi nodes that are recurrences other than
+  /// inductions and reductions.
+  using RecurrenceSet = SmallPtrSet<const PHINode *, 8>;
+
+  /// Returns true if it is legal to vectorize this loop.
+  /// This does not mean that it is profitable to vectorize this
+  /// loop, only that it is legal to do so.
+  /// Temporarily taking UseVPlanNativePath parameter. If true, take
+  /// the new code path being implemented for outer loop vectorization
+  /// (should be functional for inner loop vectorization) based on VPlan.
+  /// If false, good old LV code.
+  bool canVectorize(bool UseVPlanNativePath);
+
+  /// Returns the primary induction variable.
+  PHINode *getPrimaryInduction() { return PrimaryInduction; }
+
+  /// Returns the reduction variables found in the loop.
+  ReductionList *getReductionVars() { return &Reductions; }
+
+  /// Returns the induction variables found in the loop.
+  InductionList *getInductionVars() { return &Inductions; }
+
+  /// Return the first-order recurrences found in the loop.
+  RecurrenceSet *getFirstOrderRecurrences() { return &FirstOrderRecurrences; }
+
+  /// Return the set of instructions to sink to handle first-order recurrences.
+  DenseMap<Instruction *, Instruction *> &getSinkAfter() { return SinkAfter; }
+
+  /// Returns the widest induction type.
+  Type *getWidestInductionType() { return WidestIndTy; }
+
+  /// Returns True if V is a Phi node of an induction variable in this loop.
+  bool isInductionPhi(const Value *V);
+
+  /// Returns True if V is a cast that is part of an induction def-use chain,
+  /// and had been proven to be redundant under a runtime guard (in other
+  /// words, the cast has the same SCEV expression as the induction phi).
+  bool isCastedInductionVariable(const Value *V);
+
+  /// Returns True if V can be considered as an induction variable in this
+  /// loop. V can be the induction phi, or some redundant cast in the def-use
+  /// chain of the inducion phi.
+  bool isInductionVariable(const Value *V);
+
+  /// Returns True if PN is a reduction variable in this loop.
+  bool isReductionVariable(PHINode *PN) { return Reductions.count(PN); }
+
+  /// Returns True if Phi is a first-order recurrence in this loop.
+  bool isFirstOrderRecurrence(const PHINode *Phi);
+
+  /// Return true if the block BB needs to be predicated in order for the loop
+  /// to be vectorized.
+  bool blockNeedsPredication(BasicBlock *BB);
+
+  /// Check if this pointer is consecutive when vectorizing. This happens
+  /// when the last index of the GEP is the induction variable, or that the
+  /// pointer itself is an induction variable.
+  /// This check allows us to vectorize A[idx] into a wide load/store.
+  /// Returns:
+  /// 0 - Stride is unknown or non-consecutive.
+  /// 1 - Address is consecutive.
+  /// -1 - Address is consecutive, and decreasing.
+  /// NOTE: This method must only be used before modifying the original scalar
+  /// loop. Do not use after invoking 'createVectorizedLoopSkeleton' (PR34965).
+  int isConsecutivePtr(Value *Ptr);
+
+  /// Returns true if the value V is uniform within the loop.
+  bool isUniform(Value *V);
+
+  /// Returns the information that we collected about runtime memory check.
+  const RuntimePointerChecking *getRuntimePointerChecking() const {
+    return LAI->getRuntimePointerChecking();
+  }
+
+  const LoopAccessInfo *getLAI() const { return LAI; }
+
+  unsigned getMaxSafeDepDistBytes() { return LAI->getMaxSafeDepDistBytes(); }
+
+  uint64_t getMaxSafeRegisterWidth() const {
+    return LAI->getDepChecker().getMaxSafeRegisterWidth();
+  }
+
+  bool hasStride(Value *V) { return LAI->hasStride(V); }
+
+  /// Returns true if vector representation of the instruction \p I
+  /// requires mask.
+  bool isMaskRequired(const Instruction *I) { return (MaskedOp.count(I) != 0); }
+
+  unsigned getNumStores() const { return LAI->getNumStores(); }
+  unsigned getNumLoads() const { return LAI->getNumLoads(); }
+
+  // Returns true if the NoNaN attribute is set on the function.
+  bool hasFunNoNaNAttr() const { return HasFunNoNaNAttr; }
+
+private:
+  /// Return true if the pre-header, exiting and latch blocks of \p Lp and all
+  /// its nested loops are considered legal for vectorization. These legal
+  /// checks are common for inner and outer loop vectorization.
+  /// Temporarily taking UseVPlanNativePath parameter. If true, take
+  /// the new code path being implemented for outer loop vectorization
+  /// (should be functional for inner loop vectorization) based on VPlan.
+  /// If false, good old LV code.
+  bool canVectorizeLoopNestCFG(Loop *Lp, bool UseVPlanNativePath);
+
+  /// Return true if the pre-header, exiting and latch blocks of \p Lp
+  /// (non-recursive) are considered legal for vectorization.
+  /// Temporarily taking UseVPlanNativePath parameter. If true, take
+  /// the new code path being implemented for outer loop vectorization
+  /// (should be functional for inner loop vectorization) based on VPlan.
+  /// If false, good old LV code.
+  bool canVectorizeLoopCFG(Loop *Lp, bool UseVPlanNativePath);
+
+  /// Check if a single basic block loop is vectorizable.
+  /// At this point we know that this is a loop with a constant trip count
+  /// and we only need to check individual instructions.
+  bool canVectorizeInstrs();
+
+  /// When we vectorize loops we may change the order in which
+  /// we read and write from memory. This method checks if it is
+  /// legal to vectorize the code, considering only memory constrains.
+  /// Returns true if the loop is vectorizable
+  bool canVectorizeMemory();
+
+  /// Return true if we can vectorize this loop using the IF-conversion
+  /// transformation.
+  bool canVectorizeWithIfConvert();
+
+  /// Return true if we can vectorize this outer loop. The method performs
+  /// specific checks for outer loop vectorization.
+  bool canVectorizeOuterLoop();
+
+  /// Return true if all of the instructions in the block can be speculatively
+  /// executed. \p SafePtrs is a list of addresses that are known to be legal
+  /// and we know that we can read from them without segfault.
+  bool blockCanBePredicated(BasicBlock *BB, SmallPtrSetImpl<Value *> &SafePtrs);
+
+  /// Updates the vectorization state by adding \p Phi to the inductions list.
+  /// This can set \p Phi as the main induction of the loop if \p Phi is a
+  /// better choice for the main induction than the existing one.
+  void addInductionPhi(PHINode *Phi, const InductionDescriptor &ID,
+                       SmallPtrSetImpl<Value *> &AllowedExit);
+
+  /// Create an analysis remark that explains why vectorization failed
+  ///
+  /// \p RemarkName is the identifier for the remark.  If \p I is passed it is
+  /// an instruction that prevents vectorization.  Otherwise the loop is used
+  /// for the location of the remark.  \return the remark object that can be
+  /// streamed to.
+  OptimizationRemarkAnalysis
+  createMissedAnalysis(StringRef RemarkName, Instruction *I = nullptr) const {
+    return createLVMissedAnalysis(Hints->vectorizeAnalysisPassName(),
+                                  RemarkName, TheLoop, I);
+  }
+
+  /// If an access has a symbolic strides, this maps the pointer value to
+  /// the stride symbol.
+  const ValueToValueMap *getSymbolicStrides() {
+    // FIXME: Currently, the set of symbolic strides is sometimes queried before
+    // it's collected.  This happens from canVectorizeWithIfConvert, when the
+    // pointer is checked to reference consecutive elements suitable for a
+    // masked access.
+    return LAI ? &LAI->getSymbolicStrides() : nullptr;
+  }
+
+  /// The loop that we evaluate.
+  Loop *TheLoop;
+
+  /// Loop Info analysis.
+  LoopInfo *LI;
+
+  /// A wrapper around ScalarEvolution used to add runtime SCEV checks.
+  /// Applies dynamic knowledge to simplify SCEV expressions in the context
+  /// of existing SCEV assumptions. The analysis will also add a minimal set
+  /// of new predicates if this is required to enable vectorization and
+  /// unrolling.
+  PredicatedScalarEvolution &PSE;
+
+  /// Target Library Info.
+  TargetLibraryInfo *TLI;
+
+  /// Dominator Tree.
+  DominatorTree *DT;
+
+  // LoopAccess analysis.
+  std::function<const LoopAccessInfo &(Loop &)> *GetLAA;
+
+  // And the loop-accesses info corresponding to this loop.  This pointer is
+  // null until canVectorizeMemory sets it up.
+  const LoopAccessInfo *LAI = nullptr;
+
+  /// Interface to emit optimization remarks.
+  OptimizationRemarkEmitter *ORE;
+
+  //  ---  vectorization state --- //
+
+  /// Holds the primary induction variable. This is the counter of the
+  /// loop.
+  PHINode *PrimaryInduction = nullptr;
+
+  /// Holds the reduction variables.
+  ReductionList Reductions;
+
+  /// Holds all of the induction variables that we found in the loop.
+  /// Notice that inductions don't need to start at zero and that induction
+  /// variables can be pointers.
+  InductionList Inductions;
+
+  /// Holds all the casts that participate in the update chain of the induction
+  /// variables, and that have been proven to be redundant (possibly under a
+  /// runtime guard). These casts can be ignored when creating the vectorized
+  /// loop body.
+  SmallPtrSet<Instruction *, 4> InductionCastsToIgnore;
+
+  /// Holds the phi nodes that are first-order recurrences.
+  RecurrenceSet FirstOrderRecurrences;
+
+  /// Holds instructions that need to sink past other instructions to handle
+  /// first-order recurrences.
+  DenseMap<Instruction *, Instruction *> SinkAfter;
+
+  /// Holds the widest induction type encountered.
+  Type *WidestIndTy = nullptr;
+
+  /// Allowed outside users. This holds the induction and reduction
+  /// vars which can be accessed from outside the loop.
+  SmallPtrSet<Value *, 4> AllowedExit;
+
+  /// Can we assume the absence of NaNs.
+  bool HasFunNoNaNAttr = false;
+
+  /// Vectorization requirements that will go through late-evaluation.
+  LoopVectorizationRequirements *Requirements;
+
+  /// Used to emit an analysis of any legality issues.
+  LoopVectorizeHints *Hints;
+
+  /// The demanded bits analsyis is used to compute the minimum type size in
+  /// which a reduction can be computed.
+  DemandedBits *DB;
+
+  /// The assumption cache analysis is used to compute the minimum type size in
+  /// which a reduction can be computed.
+  AssumptionCache *AC;
+
+  /// While vectorizing these instructions we have to generate a
+  /// call to the appropriate masked intrinsic
+  SmallPtrSet<const Instruction *, 8> MaskedOp;
+};
+
+} // namespace llvm
+
+#endif // LLVM_TRANSFORMS_VECTORIZE_LOOPVECTORIZATIONLEGALITY_H
diff --git a/linux-x64/clang/include/llvm/Transforms/Vectorize/LoopVectorize.h b/linux-x64/clang/include/llvm/Transforms/Vectorize/LoopVectorize.h
index 32b56d3..d79d846 100644
--- a/linux-x64/clang/include/llvm/Transforms/Vectorize/LoopVectorize.h
+++ b/linux-x64/clang/include/llvm/Transforms/Vectorize/LoopVectorize.h
@@ -26,6 +26,14 @@
 //    of vectorization. It decides on the optimal vector width, which
 //    can be one, if vectorization is not profitable.
 //
+// There is a development effort going on to migrate loop vectorizer to the
+// VPlan infrastructure and to introduce outer loop vectorization support (see
+// docs/Proposal/VectorizationPlan.rst and
+// http://lists.llvm.org/pipermail/llvm-dev/2017-December/119523.html). For this
+// purpose, we temporarily introduced the VPlan-native vectorization path: an
+// alternative vectorization path that is natively implemented on top of the
+// VPlan infrastructure. See EnableVPlanNativePath for enabling.
+//
 //===----------------------------------------------------------------------===//
 //
 // The reduction-variable vectorization is based on the paper:
diff --git a/linux-x64/clang/include/llvm/Transforms/Vectorize/SLPVectorizer.h b/linux-x64/clang/include/llvm/Transforms/Vectorize/SLPVectorizer.h
index 979d5ef..3152e81 100644
--- a/linux-x64/clang/include/llvm/Transforms/Vectorize/SLPVectorizer.h
+++ b/linux-x64/clang/include/llvm/Transforms/Vectorize/SLPVectorizer.h
@@ -82,7 +82,7 @@
                OptimizationRemarkEmitter *ORE_);
 
 private:
-  /// \brief Collect store and getelementptr instructions and organize them
+  /// Collect store and getelementptr instructions and organize them
   /// according to the underlying object of their pointer operands. We sort the
   /// instructions by their underlying objects to reduce the cost of
   /// consecutive access queries.
@@ -91,23 +91,23 @@
   ///       every time we run into a memory barrier.
   void collectSeedInstructions(BasicBlock *BB);
 
-  /// \brief Try to vectorize a chain that starts at two arithmetic instrs.
+  /// Try to vectorize a chain that starts at two arithmetic instrs.
   bool tryToVectorizePair(Value *A, Value *B, slpvectorizer::BoUpSLP &R);
 
-  /// \brief Try to vectorize a list of operands.
+  /// Try to vectorize a list of operands.
   /// \param UserCost Cost of the user operations of \p VL if they may affect
   /// the cost of the vectorization.
   /// \returns true if a value was vectorized.
   bool tryToVectorizeList(ArrayRef<Value *> VL, slpvectorizer::BoUpSLP &R,
                           int UserCost = 0, bool AllowReorder = false);
 
-  /// \brief Try to vectorize a chain that may start at the operands of \p I.
+  /// Try to vectorize a chain that may start at the operands of \p I.
   bool tryToVectorize(Instruction *I, slpvectorizer::BoUpSLP &R);
 
-  /// \brief Vectorize the store instructions collected in Stores.
+  /// Vectorize the store instructions collected in Stores.
   bool vectorizeStoreChains(slpvectorizer::BoUpSLP &R);
 
-  /// \brief Vectorize the index computations of the getelementptr instructions
+  /// Vectorize the index computations of the getelementptr instructions
   /// collected in GEPs.
   bool vectorizeGEPIndices(BasicBlock *BB, slpvectorizer::BoUpSLP &R);
 
@@ -133,7 +133,7 @@
   bool vectorizeSimpleInstructions(SmallVectorImpl<WeakVH> &Instructions,
                                    BasicBlock *BB, slpvectorizer::BoUpSLP &R);
 
-  /// \brief Scan the basic block and look for patterns that are likely to start
+  /// Scan the basic block and look for patterns that are likely to start
   /// a vectorization chain.
   bool vectorizeChainsInBlock(BasicBlock *BB, slpvectorizer::BoUpSLP &R);
 
diff --git a/linux-x64/clang/include/llvm/XRay/XRayRecord.h b/linux-x64/clang/include/llvm/XRay/XRayRecord.h
index 5c5e9f4..7687344 100644
--- a/linux-x64/clang/include/llvm/XRay/XRayRecord.h
+++ b/linux-x64/clang/include/llvm/XRay/XRayRecord.h
@@ -75,6 +75,9 @@
   /// The thread ID for the currently running thread.
   uint32_t TId;
 
+  /// The process ID for the currently running process.
+  uint32_t PId;
+
   /// The function call arguments.
   std::vector<uint64_t> CallArgs;
 };
diff --git a/linux-x64/clang/include/llvm/XRay/YAMLXRayRecord.h b/linux-x64/clang/include/llvm/XRay/YAMLXRayRecord.h
index b436aef..0de9ea0 100644
--- a/linux-x64/clang/include/llvm/XRay/YAMLXRayRecord.h
+++ b/linux-x64/clang/include/llvm/XRay/YAMLXRayRecord.h
@@ -37,6 +37,7 @@
   std::string Function;
   uint64_t TSC;
   uint32_t TId;
+  uint32_t PId;
   std::vector<uint64_t> CallArgs;
 };
 
@@ -79,6 +80,7 @@
     IO.mapOptional("args", Record.CallArgs);
     IO.mapRequired("cpu", Record.CPU);
     IO.mapRequired("thread", Record.TId);
+    IO.mapOptional("process", Record.PId, 0U);
     IO.mapRequired("kind", Record.Type);
     IO.mapRequired("tsc", Record.TSC);
   }